Fascination
article thumbnail
[PL] Chapter 04. 변수 및 유효범위
Study/Programming Language 2022. 4. 25. 05:36

↓Chapter 04. 변수 및 유효 범위 프로그래밍 언어론 원리와 실제 - 창병모 교수님 4.1 변수 선언 1) 변수 선언과 유효 범위 - 사용 전 선언(declaration before use): 변수는 사용하기 전에 선언되어야 함 - 변수의 유효 범위(scope) 선언된 변수가 유효한(사용될 수 있는) 프로그램 내의 범위/영역 변수 이름뿐 아니라 함수 등 다른 이름도 생각해야 함 - 정적 유효 범위(Static scope) 선언된 이름은 선언된 블록 내에서만 유효함 대부분 언어에서 표준 규칙으로 사용됨 2) 블록과 변수 선언 - 구문법 → ... | id = ; | let in end → { id [=];} → {} → int | bool | string - 의미 변수 id는 타입 변수이며 초기화가..

article thumbnail
[PL] Chapter 03. 언어 설계와 파서 구현
Study/Programming Language 2022. 4. 24. 04:05

Chapter 03. 언어 설계와 파서 구현 프로그래밍 언어론 원리와 실제 - 창병모 교수님 3.1 프로그래밍 언어 S 1) 언어 설계 목표 간단한 교육용 언어로 쉽게 이해하고 구현할 수 있도록 설계한다 대화형 인터프리터 방시으로도 동작할 수 있도록 설계한다 프로그래밍 언어의 주요 개념을 쉽게 이해할 수 있도록 설계한다. 수식, 실행 문장, 변수 선언, 함수 정의, 예외 처리, 타입 검사 등을 포함한다. 블록 중첩을 허용하는 블록 구조 언어를 설계한다. 전역 변수, 지역 변수, 유효범위 등의 개념을 포함 실행 전에 타입 검사를 수행하는 강한 타입 언어로 설계한다. 안전한 타입 시스템을 설계하고 이를 바탕으로 타입 검사기를 구현 주요 기능을 점차적으로 추가하면서 이 언어의 어휘분석기, 파서, AST, 타입..

article thumbnail
[PL] Chapter 02. 구문법(Syntax)
Study/Programming Language 2022. 4. 24. 02:00

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 - 이진수의 의미: 보통 이진수의 의미를 ..

article thumbnail
[PL] Chapter 01. 서론
Study/Programming Language 2022. 4. 23. 21:51

Chapter 01. 서론 프로그래밍 언어론 원리와 실제 - 창병모 교수님 1.1 프로그래밍 언어란 무엇인가? 1) 프로그래밍 언어란 무엇인가? - 프로그래밍 언어: 계산 과정을 기계가 읽을 수 있고 사람이 읽을 수 있도록 기술하기 위한 일종의 표기법. 즉, 기계가 해석할 수 있고 사람이 이해할 수 있어야 함 계산(Computation): 컴퓨터가 할 수 있는 연산들을 나타내며 덧셈, 뺄셈, 비교와 같은 데이터 조작, 문자 입출력과 같은 텍스트 처리, 정보 저장 및 검색 등을 의미 기계 읽기(machine readability): 효율적인 번역 혹은 실행이 가능해야 함을 뜻함 사람 읽기(human readability): 사람이 쉽게 프로그래밍할 수 있도록 편의성을 제공해야 하며 컴퓨터 연산들이 이해하기..