-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
목차
제1장 컴파일러의 개요
제2장 형식언어와 오토마타
제3장 어휘분석
제4장 Context-free 언어와 푸시다운 오토마타
제5장 구문분석(syntax analysis, parsing)
제6장 의미분석과 기호표(semantic analysis and symbol table)
제7장 중간언어와 중간코드 생성
제8장 코드의 최적화(code optimization)
제9장 코드의 생성(code generation)
* 각 장별 출제예상문제 (해설 포함) *
제2장 형식언어와 오토마타
제3장 어휘분석
제4장 Context-free 언어와 푸시다운 오토마타
제5장 구문분석(syntax analysis, parsing)
제6장 의미분석과 기호표(semantic analysis and symbol table)
제7장 중간언어와 중간코드 생성
제8장 코드의 최적화(code optimization)
제9장 코드의 생성(code generation)
* 각 장별 출제예상문제 (해설 포함) *
본문내용
제4장 Context-free언어와 푸시다운 오토마타
1. Context-free언어와 푸시다운(Push-Down) 오토마타
① 촘스키에 의하면 A α, A ∈ VN, α ∈ V*의 형태를 가짐
② 산술이나 블록구조를 표현하는데 효율적
③ 자연언어를 표현하기 위해서 도입됨
④ Context-free 언어는 정규언어보다 표현범위가 넓으나 push-down 오토마타를 구현하는 일은 유한 오토마타를 구현하는 것보다 훨씬 복잡하고 어렵다.
2. 유도트리
(1) 유도(derivation)
① 좌단유도: 유도과정의 각 단계에서 문장형태(sentential form)의 가장 왼쪽에 있는 논터미널기호를 계속해서 대체하는 경우
② 우단유도: 가장오른쪽의 논터미널기호를 계속해서 대체하는 경우
(2) 파스
① 좌파스(left parse): 좌단유도에 의해 적용된 일련의 생성규칙 순서
② 우파스(right parse): 우단유도에 의해 적용된 생성규칙 순서의 역순
(3) 유도트리(derivation tree) 또는 파스트리(parse tree)
① 구문분석과정에서 문장이 유도되는 과정을 트리형태로 표현
② CFG(Context Free 문법) G = (VN, VT, P, S)에 대한 유도트리는 다음과 같이 정의
- 모든 노드는 문법기호를 레이블로 가짐
- 루트(root)의 레이블은 시작기호 S이다.
- 만약 어떤 노드가 하나 이상의 자노드(child node)를 갖는다면, 이 노드는 논터미널 기호를 레이블로 가짐
- 왼쪽부터 순서적으로 X1, X2, ,,, Xn의 n개의 자노드를 갖는 어떤 노드 A가 존재한다면, 생성규칙 A X1X2 ,,, Xn이 존재
- 만약 어떤 노드가 자노드를 하나도 갖고 있지 않다면, 이 노드를 잎(leaf, termnal node)이라 하고, 잎은 터미널기호를 레이블로 가짐
- 중략 -
1. Context-free언어와 푸시다운(Push-Down) 오토마타
① 촘스키에 의하면 A α, A ∈ VN, α ∈ V*의 형태를 가짐
② 산술이나 블록구조를 표현하는데 효율적
③ 자연언어를 표현하기 위해서 도입됨
④ Context-free 언어는 정규언어보다 표현범위가 넓으나 push-down 오토마타를 구현하는 일은 유한 오토마타를 구현하는 것보다 훨씬 복잡하고 어렵다.
2. 유도트리
(1) 유도(derivation)
① 좌단유도: 유도과정의 각 단계에서 문장형태(sentential form)의 가장 왼쪽에 있는 논터미널기호를 계속해서 대체하는 경우
② 우단유도: 가장오른쪽의 논터미널기호를 계속해서 대체하는 경우
(2) 파스
① 좌파스(left parse): 좌단유도에 의해 적용된 일련의 생성규칙 순서
② 우파스(right parse): 우단유도에 의해 적용된 생성규칙 순서의 역순
(3) 유도트리(derivation tree) 또는 파스트리(parse tree)
① 구문분석과정에서 문장이 유도되는 과정을 트리형태로 표현
② CFG(Context Free 문법) G = (VN, VT, P, S)에 대한 유도트리는 다음과 같이 정의
- 모든 노드는 문법기호를 레이블로 가짐
- 루트(root)의 레이블은 시작기호 S이다.
- 만약 어떤 노드가 하나 이상의 자노드(child node)를 갖는다면, 이 노드는 논터미널 기호를 레이블로 가짐
- 왼쪽부터 순서적으로 X1, X2, ,,, Xn의 n개의 자노드를 갖는 어떤 노드 A가 존재한다면, 생성규칙 A X1X2 ,,, Xn이 존재
- 만약 어떤 노드가 자노드를 하나도 갖고 있지 않다면, 이 노드를 잎(leaf, termnal node)이라 하고, 잎은 터미널기호를 레이블로 가짐
- 중략 -