Tugas: Kuis Tekkom

1. Perhatikan CFG berikut

S ->S+A | S – A | A+S | A-S | B*A

B -> aB | B(a+B) | B*a | a(a+B)|b

A-> a

Tentukan first , follow & table dari produksi di atas

Jawab:

S -> A+SS’ | A – SS’ | B * AS’

S’ -> +AS’ | -AS’ | ε

 

S = >  AF | B * AS’

F -> +SS’ | -SS’

S’ -> +AS’ | -AS’ | ε

 

B -> aBB’ | a(a+B)B’ | bB’

B’-> (a+B)B’ | *aB’

 

B -> aG | bB’

G -> BB’ | (a+B)B’

B’ -> (a+B)B’ | *aB’

 

A -> a

 

First S -> {a,b}

First F -> {+,-}

First S’ -> {+,-, ε}

First B -> {a,b}

First G -> {a,b,(}

First B’ -> {(,*}

 

Follow S -> {$,+,-}

Follow S’ -> {$}

Follow B -> {$,a,b,)}

Follow B’ -> {$}

Follow F -> {$,+,-}

Follow G -> {$,a,b,)}

 

  a b + * ( ) $
S S -> AF S -> B*AS’            
S’     S->+AS’ S->-AS’       S-> ε
B B->aG B->bB’            
B’         B->*aB’ B’->(a
+b)B’
   
F     F->+SS’ F->-SS’        
G G->BB’ G->BB’  

 

    G->(a+b)B’    

 

 

2. S -> if E then S | if E then S else S | V:= E

S’->ε | else S

E-> TE’

E’-> TE’ | -TE’ | ε

T->FT’

T’-> FT’|/FT’|ε

F-> V|(E)|const

V-> id V’

V’-> ε|[E]

Tentukan first , follow & table dari produksi di atas

first(S) = {if, id}

first(S’) = {ε, else}

first(E) = { id, ( , const}

first(E’) = {+, -, ε}

first(T) = {id,(, const}

first(T’) = {*, /,ε }

first(F) = {id,(, const}

first(V) = {id}

first(V’) = {a b c}

 

follow(S) = {$}

follow(S’) = {$}

follow(E) = { then, $,),]}

follow(E’) = { then, $,),]}

follow(T) = {+, -}

follow(T’) = {+, -}

follow(F) = {*,/ }

follow(V) = {:}

follow(V’) = {:}

  if Id else ( const + * / [ $ then ) ] :
S S-> if E then S S’ S->V:=E                          
S’     S-> else S               S->

ε

       
E   E->TE’   E->

TE’

E->

TE’

                   
E’           E’->

TE’

E’->

TE’

E’->

TE’

    E->

ε

E->

ε

E->ε E->ε  
T   T->FT’   T->

FT’

T->

FT’

                   
T’           T’->

ε

T’->

ε

T’->

*FT’

T’->

/FT’

           
F   F->V   F->

(E)

F->

const

                   
V   V->idV’                          
V’                   V’->

[E]

        V->ε

 

 

 

 

3. Dari CFG berikut

S -> a=A

A ->a A’ | bA’

A’ -> +AA’ | ε

Tentukan first, follow & table dari produksi di atas

First (S) = {a}                                                                                                  Follow (S) = {$}

First (A)={a,b}                                                                                                Follow(A)={$,+}

First(A’)={+,ε }                                                                                              Follow(A’)={$,+}

  a b + $
S S -> a=A      
A A-> aA’ A-> bA’    
A’     A’ -> +AA’ A’ -> ε

 

4.  Diketahui Grammar:

be-> bt be’

be’ -> or bt be’

be’ -> e

bt-> bf bt’

bt’ -> and bf bt’

bt’-> ε

bf -> not bf

bf ->( be)

bf-> true

bf-> false

Perikas input sbb not(true or false) and true and false not(false) true

Jawab:

first (be) = not, (, true, false

first (be’) = or, ε

first (bt) = not, (, true, false

first (bt’) =  and, ε

first (bf) = not, (, true, false

 

follow (be) = { $, )}

follow (be’) = { $, )}

follow (bt) = { or, $, )}

follow (bt’) = {or,  $, )}

follow (bf) = {or, $, ), and}

  or not ( ) true false and $
be   be-> bt be’ be->bt be’   be-> bt be’ be->bt be’    
be’ be’-> or bt be’     be’-> ε       be’-> ε
bt   bt-> bf bt’ bt->bf bt’     bt->bf bt’ bt->bf bt’  
bt’ bt’-> ε     bt’-> ε     bt’-> and bf bt’ bt’-> ε
bf   bf -> not bf bf->(be)   bf->true bf->false    

No

Stack

Input

Output

1. be $ not (true or false) and true and true and false not (false) true be -> bt be’
2. bt be’ $ not (true or false) and true and true and false not (false) true bt -> bf bt’
3. bf bt’ be’ $ not (true or false) and true and true and false not (false) true bf -> not bf
4. not bf bt’ be’ $ not (true or false) and true and true and false not (false) true pop not
5. bf bt’ be’ $ (true or false) and true and true and false not (false) true bf -> (be)
6. (be) bt’ be’ $ (true or false) and true and true and false not (false) true pop (
7. be) bt’ be’ $ true or false) and true and true and false not (false) true be -> bt be’
8. bt be’) bt’ be’ $ true or false) and true and true and false not (false) true bt -> bf bt’
9. bf bt’ be’) bt’ be’ $ true or false) and true and true and false not (false) true bf -> true
10. true bt’ be’) bt’ be’ $ true or false) and true and true and false not (false) true pop true
11 bt’ be’) bt’ be’ $ or false) and true and true and false not (false) true bt’ -> ε
12 be’) bt’ be’ $ or false) and true and true and false not (false) true be’ ->or bt be’
13. or bt be’ ) bt’ be’ $ or false) and true and true and false not (false) true pop or
14. bt be’) bt’ be’ $ false) and true and true and false not (false) true bt -> bf bt’
15. bf bt’ be’) bt’ be’ $ false) and true and true and false not (false) true bf -> false
16. false bt’ be’) bt’ be’ $ false) and true and true and false not (false) true pop false
17. bt’ be’) bt’ be’ $ ) and true and true and false not (false) true bt’ -> ε
18. be’) bt’ be’ $ ) and true and true and false not (false) true be’ -> ε
19. ) bt’ be’ $ ) and true and true and false not (false) true pop )
20. bt’ be’ $ and true and true and false not (false) true bt’ -> and bf bt’
21. and bf bt’ be’ $ and true and true and false not (false) true pop and
22. bf bt’ be’ $ true and true and false not (false) true bf -> true
23. true bt’ be’ $ true and true and false not (false) true pop true
24. bt’ be’ $ and true and false not (false) true bt’ -> and bf bt’
25. and bf bt’ be’ $ and true and false not (false) true pop and
26. bf bt’ be’ $ true and false not (false) true bf -> true
27. true bt’ be’ $ true and false not (false) true pop true
28. bt’ be’ $ and false not (false) true bt’ -> and bf bt’
29. and bf bt’ be’ $ and false not (false) true pop and
30. bf bt’ be’ $ false not (false) true bf -> false
31. false bt’ be’ $ false not (false) true pop false
32. bt’ be’ $ not (false) true ditolak

 

 

 

 

 

 

 

 

www.binus.ac.id

Leave a Reply