Sie sind auf Seite 1von 8

TUGAS

TEKNIK KOMPILASI 102406179 102406040

NAMA dan NIM : 1. AHMAD ARIF ABDI D 2. VIVI SAUFINA KELAS : KOM C.

1. Diketahui grammar G = A Ba | bC B d | eBf C gc | g

a) Tunkjukkan yang mana dari string-string dibawah ini yang termasuk dalam L(G). bg bffd bggg edfa eedffa faae defa

b) Tuliskan turunan dari string yang termasuk dalam L(G).

Penyelesaian :

a)

bg :

bffd : String bffd tidak terdefenisi dalam grammar G.

bggg :

edfa :

eedffa :

faae : String faae tidak terdefenisi dalam grammar G.

defa : String defa tidak terdefenisi dalam grammar G.

b) Turunan dari String yang termasuk dalam L(G).

A bC bg A bC bgC bggC bggg A Ba eBfa edfa A Ba eBfa eeBffa eedffa

2.

Grammar yang umum untuk ekspresi aritmatika adalah :

E E+T|ET|T E T*F|F/T|F E (E) | i


Tidak dapat digunakan dalam prediktive parser left recursion. Seseorang ingin mengubah left recursion dengan caranya sendiri sebagai berikut :

E E+T|ET|T E T*F|F/T|F E (E) | i


Tunjukkan bahwa cara tersebut salah dengan cara : a b Menggambar parse tree untuk a-b-c baik dengan grammar asli dan modifikasi. Menggambar tree dengan nilai a=3 , b=5, dan c= 8.

Penyelesaian :

Dengan grammar asli :

grammar modifikasi :

3.

Untuk Grammar berikut ini :

A aQ Q bQ |
Carilah : a. FIRST (Q) dan b. FOLLOW(Q)

Penyelesaian :

FIRST (Q) : Argumen Return Defenisi : Q adalah sentential form yang dibentuk dari Grammar . : himpunan terminal : String yang dapat diturunkan dari Q dengan penurunan kiri jika

Q bQ | , dimana Q dimulai dengan terminal , maka terminal


tersebut didalam FIRST (Q). Hasil FIRST(Q) adalah = {b, }

FOLLOW (Q) : Argumen Return Defenisi : Q beberapa non terminal Grammar . : himpunan terminal : FOLLOW(Q) adalah himpunan semua terminal yang berada dikanan Q pada setiap bentuk sentensial dari Grammar. Jika Q dapat ditelusuri sampai akhir , maka FOLLOW(Q) Mengandung tanda akhir $.

Hasil FOLLOW(Q) adalah = {a} atau {$,a}

4.

Carilah himpunan FIRST dan FOLLOW untuk Grammar berikut :

S ABC A a | Cb | B c | dA | C e| f

Penyelesaian :

Defenisi formal dari fungsi FIRST adalah : FIRST () : Argumen : adalah sentential form yang dibentuk dari G. Return Defenisi : himpunan terminal : catat setiap String yang dapat diturunkan dari dengan penurunan

kiri jika , dimana dimulai dengan terminal , maka terminal tersebut didalm FIRST().

Defenisi formal dari fungsi FOLLOW adalah : FOLLOW (A) : Argumen : A beberapa non terminal dalam G Return Defenisi : himpunan terminal : FOLLOW(A) adalah himpunan semua terminal yang berada

dikanan A pada setiap bentuk sentensial dari L(G). jika A dapat ditelusuri sampai akhir , maka FOLLOW(A) mengandung tanda akhir $.

Jadi,himpunan FIRST dan FOLLOW untuk grammar diatas adalah FIRST(S) FIRST(A) FIRST(B) FIRST(C) = FIRST(ABC) = {a,c,d,e,f} = {a,f,e,} = {c,d,e} = FIRST (CB) = {e,f}

FOLLOW(S) = {$} FOLLOW (B) = {e,f} FOLLOW(A) = { c,d,e,f } FOLLOW (C) = { $,b}

5.

Buatlah table parser simple LR (SLR) untuk grammar berikut : (1). S E = E (2). S i (3). E E + i (4). E i

Tunjukkan dimana terjadi REDUCE/REDUCE CONFLIET ?

Penyelesaian :

Dibuat grammar tambahan sehingga menjadi 5 baris. (0) Z S (1) S E = E (2) S i (3) E E + i (4) E i

Dicari himpunan FIRST dan FOLLOW. FIRST(Z) FIRST(S) FIRST(E) = {i} = {i} = {i}

FOLLOW(S) = {$} FOLLOW(E) = {$,+,=}

Item untuk membuat state table : 1. [Z .S] 2. [Z S.] 3. [S .E = E] 4. [S E. = E] 5. [S E = .E] 6. [S E = E.] 7. [S .i] 8. [Z .S] 9. [E .E + i ] 10. [E E.+ i ] 11. [E E+. i ] 12. [E E+ i. ] 13. [E .i ] 14. [E i. ]

State table dibuat dengan langkah-langkah berikut : State 0 ( V[ ] ) : {[Z .S ], [S .E = E ], [S .i ], [E .E+ i ], [E .i ]} Transisi : Simbol S : next state 1 Simbol E : next state 2 Simbol i : next state 3

State 1 ( V[S] ) State 2 ( V[E] )

: {[Z S.]} : {[S E. = E], E E. + i}

Transisi : Simbol = : next state 4 Simbol + : next state 5

State 3 ( V[i] ) State 4 ( V[E=] ) Transisi

: {[S i.] , [ E i. ]} : {[S E = .E], [E .E + i],[ E .i] } :

Simbol E : next state 6 Simbol I : next state 7

State 5 ( V[E+] ) Transisi

: {[E E + .i]} :

Simbol i : next state 8

State 6 ( V[E = E] ) : {[S E = E.], [E E. + i]} Transisi :

Simbol + : next state 5

State 7 ( V[E= i] ) : {[E i.]} State 8 ( V[E + i] ) : { [E E + i.]}

State table :

Table LR konflik di baris 3, kolom 6 [$] : entry saat ini r2 ; entry r4.

Table LR :

Das könnte Ihnen auch gefallen