Presentation is loading. Please wait.

Presentation is loading. Please wait.

EXAMPLES: FIRST, FOLLOW, LL PARSING SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY.

Similar presentations


Presentation on theme: "EXAMPLES: FIRST, FOLLOW, LL PARSING SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY."— Presentation transcript:

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


Download ppt "EXAMPLES: FIRST, FOLLOW, LL PARSING SUNG-DONG KIM, DEPT. OF COMPUTER ENGINEERING, HANSUNG UNIVERSITY."

Similar presentations


Ads by Google