Chapter 03. 언어 설계와 파서 구현 프로그래밍 언어론 원리와 실제 - 창병모 교수님 3.1 프로그래밍 언어 S 1) 언어 설계 목표 간단한 교육용 언어로 쉽게 이해하고 구현할 수 있도록 설계한다 대화형 인터프리터 방시으로도 동작할 수 있도록 설계한다 프로그래밍 언어의 주요 개념을 쉽게 이해할 수 있도록 설계한다. 수식, 실행 문장, 변수 선언, 함수 정의, 예외 처리, 타입 검사 등을 포함한다. 블록 중첩을 허용하는 블록 구조 언어를 설계한다. 전역 변수, 지역 변수, 유효범위 등의 개념을 포함 실행 전에 타입 검사를 수행하는 강한 타입 언어로 설계한다. 안전한 타입 시스템을 설계하고 이를 바탕으로 타입 검사기를 구현 주요 기능을 점차적으로 추가하면서 이 언어의 어휘분석기, 파서, AST, 타입..
Chapter 02. 구문법(Syntax) 프로그래밍 언어론 원리와 실제 - 창병모 교수님 2.1 구문 및 문법 Q. 가능한 문장 혹은 프로그램의 개수가 무한하지 않은가? 무한한 것들을 어떻게 유한하게 정의할 수 있는가? A. 점화식 혹은 재귀식(recursive relation)을 이용하여 해결할 수 있음 1) 이진수의 구문법 - 이진수를 구성하는 방법 (1) 숫자(D)는 '0' 혹은 '1'이다. (2) 이진수(N)를 구성하는 방법은 두 가지가 있는데 첫 번째 방법은 숫자(D) 하나로 구성하는 것이다. 두 번째 방법은 이진수(N) 다음에 숫자(D)를 하나 붙여서 구성하는 것이다. - 논리 규칙 형태 - 문법 형태 N → D N → ND or N → D | ND - 이진수의 의미: 보통 이진수의 의미를 ..