Your SlideShare is downloading. ×
0
WELCOME TO A
JOURNEY TO
CS419

Dr. Hussien Sharaf
Computer Science Department

dr.sharaf@from-masr.com
FIRST


1.
2.
3.

Let X be a grammar symbol (a terminal or nonterminal or
), then the FIRST(X) can be computed by the fol...
FIRST SET EXAMPLE
Consider the following grammar:
E → TQ
Q → +TQ |
T → FR
R → *FR |
F → (E) | id
Then,
FIRST(E) = FIRST(T)...
FOLLOW
To compute FOLLOW(A) for all nonterminals A, then
apply the following rules until nothing can be added to
any FOLLO...
FOLLOW
If there is a production A → αB, or [a production A
→ αBβ where FIRST(β) contains (i.e β → )], then
everything in F...
FOLLOW SET EXAMPLE
Consider again the previous grammar:
E → TQ
Q → +TQ |
First (‘)’) ⊆
T → FR
Follow(E) because
F → (E)
R ...
FOLLOW SET EXAMPLE
Consider again the previous grammar:
E → TQ
Q → +TQ |
T → FR
R → *FR |
F → (E) | id
FOLLOW(E) = FOLLOW(...
EXAMPLE 1

[ Alfred V. Aho, Compilers Principles, Techniques, and
Tools, 1986, Addison-Wesley, page 188]

Construct the pa...
EXAMPLE 1 (CONT.)
The parsing table for the previous grammar is:
1. E
TQ
2. Q
+TQ |
3. T → FR
id
E E

+

(
E

Q

id

Dr. H...
FIRST AND FOLLOW EXAMPLE
S →A
 A → BC | DBC
 B → bB ΄|
 B ΄→ bB΄|
 C →c|
 D →a|d
FIRST(S) = { a, b, c, d,
FIRST(A) = ...
EXAMPLE 2 PAGE 156
The parsing table for the following grammar is:
1. S

If_Stat | other

2. If_Stat

if(Exp) S Else_part
...
EXAMPLE 3
The parsing table for the following grammar is:
1. E

TQ

6. R

*FR

2.
3.
4.
5.

+TQ
-TQ

7. R
8. R
9. F
10.F

...
THANK YOU
Upcoming SlideShare
Loading in...5
×

Cs419 lec9 constructing parsing table ll1

270

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
270
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Cs419 lec9 constructing parsing table ll1"

  1. 1. WELCOME TO A JOURNEY TO CS419 Dr. Hussien Sharaf Computer Science Department dr.sharaf@from-masr.com
  2. 2. FIRST  1. 2. 3. Let X be a grammar symbol (a terminal or nonterminal or ), then the FIRST(X) can be computed by the following rules: If X is terminal, then FIRST(X) is {X}. If X → is a production, then add to FIRST(X). If X is nontermianl and X → Y1 Y2 …… Yk is a production, then place a in FIRST(X) if for some i, a is in FIRST(Yi), and is in all of FIRST(Y1), ……., FIRST(Yi-1); that is, Y1 …...Yi-1 → . If is in FIRST(Yj) for all j = 1, 2, ……., k, then add to FIRST(X). For example ,everything in FIRST(Y1) is surely in FIRST(X). If Y1 doesn’t derive , then we add nothing more to FIRST(X), but if Y1 → , then we add FIRST(Y2) and so on. Ali Hussien Dr. Hussien M. Sharaf First(Ali) Ali 2
  3. 3. FIRST SET EXAMPLE Consider the following grammar: E → TQ Q → +TQ | T → FR R → *FR | F → (E) | id Then, FIRST(E) = FIRST(T) = FIRST(F) = {(, id}. FIRST(Q) = {+, } FIRST(R) = {*, }  Dr. Hussien M. Sharaf 3
  4. 4. FOLLOW To compute FOLLOW(A) for all nonterminals A, then apply the following rules until nothing can be added to any FOLLOW set: 1. Place $ in FOLLOW(S), where S is the start symbol and $ is the input right endmarker. i.e. $ ∈ FOLLOW(S) 2. If there is a production A → αBβ, then everything in FIRST(β) except for is placed in FOLLOW(B).  i.e. (FIRST(β) ~ ) ⊆ FOLLOW(B) Ali Plays Dr. Hussien M. Sharaf Follow of Ali Plays 4
  5. 5. FOLLOW If there is a production A → αB, or [a production A → αBβ where FIRST(β) contains (i.e β → )], then everything in FOLLOW(A) is in FOLLOW(B). i.e. FOLLOW(A) ⊆ FOLLOW(B) 3. Ali Plays Dr. Hussien M. Sharaf Follow of Ali Plays 5
  6. 6. FOLLOW SET EXAMPLE Consider again the previous grammar: E → TQ Q → +TQ | First (‘)’) ⊆ T → FR Follow(E) because F → (E) R → *FR | E is the start F → (E) | id symbol Then, First(Q) ⊆ Follow(T) Because 1. E → TQ FOLLOW(E) = FOLLOW(Q) = { ) , $ }. FOLLOW(T) = FOLLOW(R) ={ +, ), $ } Follow(E) ⊆ Follow(T) FOLLOW(F) = {*, +, ), $}  Because 2. Q → Dr. Hussien M. Sharaf First(Q) ⊆ Follow(T) Because E → TQ 6
  7. 7. FOLLOW SET EXAMPLE Consider again the previous grammar: E → TQ Q → +TQ | T → FR R → *FR | F → (E) | id FOLLOW(E) = FOLLOW(Q) = { ) , $ }. FOLLOW(T) = FOLLOW(R) ={ +, ), $ } FOLLOW(F) = { * , + , ) , $ }  First(R) ⊆ Follow(F) Because T→ FR Dr. Hussien M. Sharaf First(R) ⊆ Follow(F) Because 1. T→ FR Follow(T) ⊆ Follow(F) Because 2. R → 7
  8. 8. EXAMPLE 1 [ Alfred V. Aho, Compilers Principles, Techniques, and Tools, 1986, Addison-Wesley, page 188] Construct the parsing table for the following grammar: 1. E TQ 2. Q +TQ | 3. T → FR 4. R 5. F E Q Dr. Hussien M. Sharaf T R F First Set {(, id} {+, } {(, id} {*, } {(, id} *FR | (E) | id Follow set {$, )} {$, )} {+, ), $ } {+, ), $} {*, +, ), $} 8
  9. 9. EXAMPLE 1 (CONT.) The parsing table for the previous grammar is: 1. E TQ 2. Q +TQ | 3. T → FR id E E + ( E Q id Dr. Hussien M. Sharaf $ TQ Q Q R R T → FR R F *FR | (E) | id ) +TQ T → FR R F * TQ Q T 4. R 5. F R *FR F (E) 9
  10. 10. FIRST AND FOLLOW EXAMPLE S →A  A → BC | DBC  B → bB ΄|  B ΄→ bB΄|  C →c|  D →a|d FIRST(S) = { a, b, c, d, FIRST(A) = { a, b, c, d, FIRST(B) = { b, } FIRST(B ΄) = { b, } FIRST(C) = { c, } FIRST(D) = { a, d }  Dr. Hussien M. Sharaf } } FOLLOW(S) = { $ } FOLLOW(A) = { $ } FOLLOW(B) = { c, $ } FOLLOW(B ΄) ={ c, $ } FOLLOW(C) = { $ } FOLLOW(D) = { b, c, $ } 10
  11. 11. EXAMPLE 2 PAGE 156 The parsing table for the following grammar is: 1. S If_Stat | other 2. If_Stat if(Exp) S Else_part if S If_Stat S 3. Else_part If_Stat S other 4. Exp else else S | true | false true false $ other If_Stat if(exp) S Else_part Else_part Exp Dr. Hussien M. Sharaf Else_part else S Else_part exp true exp false 11
  12. 12. EXAMPLE 3 The parsing table for the following grammar is: 1. E TQ 6. R *FR 2. 3. 4. 5. +TQ -TQ 7. R 8. R 9. F 10.F /FR Q Q Q T FR + - * / E Q ( ) 1 2 3 F Dr. Hussien M. Sharaf 8 6 7 4 5 8 9 $ 1 5 8 id 4 T R (E) id 8 10 12
  13. 13. THANK YOU
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×