Anda di halaman 1dari 13

Teori Bahasa & Otomata

Fitri Nuraeni, M.Kom

Tata Bahasa Bebas Konteks


TBBK adalah bahasa yang memiliki notasi rekursif alamiah TBBK memiliki peranan penting dalam teknologi kompiler sejak tahun 1960, dengan mengubah implementasi parser (fungsi menemukan struktur suatu program) TBBK digunakan untuk mendeskripsikan format dokumen, melalui apa yang dikenal dengan definisi tipe dokumen (Document-type Definition DTD) yang digunakan pada komunitas XML untuk pertukaran informasi di Web

Definisi TBBK
Terdapat himpunan hingga simbol-simbol yang membentuk untai bahasa tersebut menjadi terdefinisi. Biasanya alfabet ini disebut terminal Terdapat himpunan hingga variabel-variabel atau yang disebut NonTerminal. Masing-masing variabel menyatakan suatu bahasa yaitu himpunan untai Salah satu Variabel mewakili bahasa yang telah didefinisi, ini disebut variabel awal Terdapat himpunan hingga produksi atau aturan yang mewakili definisi rekursif mengenai bahasa. Dimana ditulis dengan notasi :

Definisi TBBK(2)
TBBK bahasa G dapat dinyatakan dengan keempat komponennya, yaitu: G= {V, T, S, P} Contoh :
Suatu bahasa yang terdiri dari alfabet {0,1} G = {{S,T},{0,1},S,P} P : S 0S0|1S1|T0|T1|T T 00

Jenis-jenis penurunan
Top Bottom
Memperluas simbol awal menggunakan salah satu produksinya. Selanjutnya memperluas untai yang dihasilkan dengan mengganti salah satu variabel dengan badan salah satu dari produksinya dan seterusnya sampai menurunkan suatu untai yang terdiri dari terminal saja.

Bottom Up
Melakukan perkiraan variabel yang menghasilkan setiap terminal pada untai sampai mencapai pada variabel awal.

Contoh :
G = ({E,L},{0,1,+,*,(,)}, E, P) dengan P :

Inferensi bahwa 1*(1+000) ada pada bahasa variabel E dapat tercermin dalam derivasi untaiitu, diawali dari E. Berikut penurunannya : EE*E 1*E 1 * (E) 1 * (E + E) 1 * (1 + E) 1 * (1 + L0) 1 * (1 + L00) 1 * (1 + 000)

E L | E+E | E*E | (E) L L1|L0|L|0|1

Penuruan Paling Kanan


Penggantian Variable dengan badan salah satu produksinya dimulai dari yang berada disebelah kanan satu per satu. G = ({E,L},{0,1,+,*,(,)}, E, P) dengan P :

1*(1+000), berikut penurunannya : EE*E 1*E 1 * (E) 1 * (E + E) 1 * (1 + E) 1 * (1 + L0) 1 * (1 + L00) 1 * (1 + 000)

E L | E+E | E*E | (E) L L1|L0|L|0|1

Penuruan Paling Kiri


Penggantian Variable dengan badan salah satu produksinya dimulai dari yang berada disebelah kiri satu per satu. G = ({E,L},{0,1,+,*,(,)}, E, P) dengan P :

1*(1+000), berikut penurunannya : EE*E E * (E) E * (E+E) E * (E + E) E * (E + L0) E * (E + L00) E * (E+ 000) E * (1 + 000) 1 * (1 + 000)

E L | E+E | E*E | (E) L L1|L0|L|0|1

Pohon Urai
E E

E L 0

L
0

Penyederhanaan TBBK
Next.

Latihan
Lakukan pembuktian dengan pohon untai, derivasi paling kiri, derivasi paling kanan

1. Perhatikan tata bahasa : S As|aSbS|

2. Perhatikan tata bahasa : E +EE|*EE|-EE|x|y 3. Perhatikan tata bahasa : E E+T | T T T*F | F F (E) | L L a|b|La|Lb|L0|L1

Tunjukan bahwa untai aab merupakan bagian dari bahasa tersebut ! Tunjukan bahwa untai +*-xyxy merupakan bagian dari bahasa tersebut !

Tunjukan bahwa untai +*-xyxy merupakan bagian dari bahasa tersebut !

Anda mungkin juga menyukai