본문 바로가기

전체 글1428

컴파일러 문제 풀이, 파싱 테이블 LL 파서, 구문 분석 parser 구현 고급 컴파일러 문제 풀이, 파싱 테이블, LL 파서 4.9 다음 『파서 문법』을 생각해보시오 lexp ⟶ atom | listatom ⟶ number | identifierlist ⟶ (lex-seq)lexp-seq ⟶ lexp, lexp-seq | lexp a. 이 문법에 대한 좌측 인수 분해한 결과의 파서 문법을 구하시오. lexp ⟶ atom | listatom ⟶ number | identifierlist ⟶ (lexp-seq)lexp-seq ⟶ lexp lexp-seq'lexp-seq' ⟶ , lexp-seq | ε b. 결과 문법의 비단말기호에 대한 First와 Follow 집합을 생성하시오. First(lexp) = { number, identifier, ( }First(atom) = { n.. 2018. 10. 9.
C# Dictionary ContainsValue, 인덱서, Clear 예제 3개 C# Dictionary, ContainsValue, 인덱서, Clear 예제 3개 ContainsValue. 이 함수는 ContainsKey 보다 아주 느립니다. 전체를 순회하는 복잡한 선형 구조입니다. 모든 요소를 탐색하며 일치하는 항목을 찾거나, 순회가 끝나면 종료합니다. 123456789101112131415161718using System;using System.Collections.Generic; class Program{ static void Main() { Dictionary d = new Dictionary(); d.Add("cat", 1); d.Add("dog", 2); if (d.ContainsValue(1)) { Console.WriteLine(true); // True. } }} .. 2018. 10. 8.
C# 처리 속도 개선과 최적화 9가지 방법, 성능 튜닝 팁 C# 속도 최적화 9가지, 성능 튜닝 방법 타입 유추 일반적으로 C#에선 아래와 같이 (최적화 되기 전) 정의합니다. 1string MyString = “Hello World”;cs =의 우측에 하나의 데이터 타입(string)을 적어 선언하는 건 일반적입니다. (속도 또한 일반적) 근데, 이런 작업을 컴파일러가 대신하여 개선할 순 없을까요? 1var MyString = “Hello World”;cs 바로 위의 코드 또한 〈MyString〉라는 C# 문자열 변수를 생성합니다. 일반적인 상황에서 유추(inference)를 통해 처리 성능이 향상되진 않습니다. 컴파일 시, 어떤 작업 과정이든 데이터 타입을 먼저 생각하진 않습니다. 아래 예를 통해 유추를 알아볼 수 있습니다. 1234var SeniorStaf.. 2018. 10. 7.
일본판 개인저축계좌 ISA 제도란, 소액투자 비과세 설명 일본판 개인저축계좌 ISA 제도란, 소액투자 비과세 설명 2014년 일본판 개인 저축 계좌 제도(NISA) = 소액 투자 비과세 제도 시행. 1. NISA : Nippon Individual Savings Account - 은행 금융 그룹은 산하 은행과 증권사 간에 제휴를 통한 판매 전략 수립- 증권 금융 그룹은 2014년 한 해 1인당 1개 전용계좌 개설로 제한되었음- 증권사는 전용 상품과 기존 고객 선점에 주력함 주 요 내 용 1. 비과세 대상 상장주식 및 주식투자신탁의 양도차익과 배당소득 2. 비과세 투자액 연간 신규투자액 상항 100만엔 3. 비과세 투자총액 500만엔 (100만엔 * 5년) 4. 비과세 존속기간 최장 10년 5. 중도매각 제한없음 (단, 중도매각 금액만큼 재투자가 인정되지 않음).. 2018. 10. 6.