Download presentation
Presentation is loading. Please wait.
Published byHilary Gordon Modified over 8 years ago
1
EXAMPLES: FIRST, FOLLOW, LL PARSING SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY
2
EX 1: FIRST 구하기 다음 grammar 의 모든 nonterminal 의 FIRST 를 구하시오. 1.S Abe 2.A dB | aS | c 3.B AS | b (2013-1) Compiler 2 FIRST(S) = FIRST(A) = {d, a, c} FIRST(B) = {b} FIRST(S) = FIRST(S) (FIRST(A) FIRST(b) FIRST(e)) = {d, a, c} FIRST(B) = FIRST(B) (FIRST(A) FIRST(S)) = {b} {d, a, c} = {a, b, c, d}
3
EX 2: FIRST, FOLLOW 구하기 (1) 다음 grammar 의 각 nonterminal 의 First 와 Follow 를 구하시오. E TE’ E’ +TE’ | T FT’ T’ *FT’ | F (E) | id (2013-1) Compiler 3
4
EX 2: FIRST, FOLLOW 구하기 (2) FIRST(E) = FIRST(T) = FIRST(F) = { (, id } FIRST(E’) = { +, } FIRST(T’) = { *, } (2013-1) Compiler 4
5
EX 2: FIRST, FOLLOW 구하기 (3) FOLLOW(E) = FOLLOW(E’) = {), $} FOLLOW(T) = FOLLOW(T’) = {+, ), $} FOLLOW(F) = {+, *, ), $} (2013-1) Compiler 5
6
EX 3: FIRST, FOLLOW 구하기 (1) 다음 grammar 의 각 nonterminal 의 First 와 Follow 를 구하시오. 1.A aB = e 2.B CB | 3.C [eD] |.a 4.D eD | (2013-1) Compiler 6
7
EX 3: FIRST, FOLLOW 구하기 (2) FIRST(A) = { a } FIRST(B) = { [,., } FIRST(C) = { [,. } FIRST(D) = { e, } (2013-1) Compiler 7
8
EX 3: FIRST, FOLLOW 구하기 (3) FOLLOW(A) = { $ } FOLLOW(B) = { = } FOLLOW(C) = { [,., = } FOLLOW(D) = { ] } (2013-1) Compiler 8
9
EX 4: LL PARSING STEPS 다음 grammar 에 대한 LL(1) parsing table 을 이용하여 input “()” 에 대한 predictive parsing 과정을 기술하시오. Grammar: : S ( S ) S | (2013-1) Compiler 9
10
10 Parsing StackInputAction 1 $S()$S ( S ) S 2 $S)S(()$match 3 $S)S )$S 4 $S) )$match 5 $S $S 6 $ $accept reverse order M[N,T] ( ) $ S S ( S ) S S S
11
EX 5: LL(1) PARSING TABLE (1) 다음 grammar 에 대해 LL(1) parsing table 을 구하시오. 1.E TE’ 2.E’ +TE’ 3.E’ 4.T FT’ 5.T’ *FT’ 6.T’ 7.F (E) 8.F id (2013-1) Compiler 11
12
EX 5: LL(1) PARSING TABLE (2) P. 4, 5 의 FIRST, FOLLOW 를 이용 (2013-1) Compiler 12 id+*()$ E11 E’233 T44 T’6566 F87
13
EX 6: TABLE & PARSING (1) 다음 grammar 에 대해서 LL(1) parsing table 을 구성하고, abab 에 대해서 parsing 과정을 보이시오. 1.S aS’ 2.S’ A 3.S’ bA 4.A aA’ 5.A’ bA’ 6.A’ (2013-1) Compiler 13
14
EX 6: TABLE & PARSING (2) FIRST(S) = { a } FIRST(A) = { a } FIRST(S’) = { a, b } FIRST(A’) = { b, } FOLLOW(S) = { $ } FOLLOW(A) = { $ } FOLLOW(S’) = { $ } FOLLOW(A’) = { $ } (2013-1) Compiler 14
15
EX 6: TABLE & PARSING (3) Parsing table (2013-1) Compiler 15 ab$ S1 S’23 A4 A’56
16
EX 6: TABLE & PARSING (4) stepstackinputaction 1$Sabab$Expand 1 2$S’aabab$Pop 3$S’bab$Expand 3 4$Abbab$Pop 5$Aab$Expand 4 6$A’aab$Pop 7$A’b$Expand 5 8$A’bb$Pop 9$A’$Expand 6 10$$accept (2013-1) Compiler 16
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.