Upload
mubarock
View
13
Download
0
Embed Size (px)
DESCRIPTION
Materi Teori bahasa dan automata
Citation preview
Teori Bahasa & OtomataFitri Nuraeni, M.Kom
TATA BAHASA BEBAS KONTEKS
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
DERIVASI (PENURUNAN)
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 :
▫ E L | E+E | E*E | (E)▫ L L1|L0|L|0|1
• Inferensi bahwa 1*(1+000) ada pada bahasa variabel E dapat tercermin dalam derivasi untaiitu, diawali dari E. Berikut penurunannya :
• E E * E 1 * E 1 * (E) 1 * (E + E) 1 * (1 + E) 1 * (1 + L0) 1 * (1 + L00) 1 * (1 + 000)
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 :▫ E L | E+E | E*E | (E)▫ L L1|L0|L|0|1
• 1*(1+000), berikut penurunannya :• E E * E 1 * E 1 * (E) 1 * (E + E) 1 * (1 + E) 1 * (1 + L0) 1 * (1 + L00) 1 * (1 + 000)
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 :▫ E L | E+E | E*E | (E)▫ L L1|L0|L|0|1
• 1*(1+000), berikut penurunannya :• E E * E E * (E) E * (E+E) E * (E + E) E * (E + L0) E * (E + L00) E * (E+ 000) E * (1 + 000) 1 * (1 + 000)
Pohon UraiE
E * E
1 E( )
1 E+
L 0
L 0
0
Penyederhanaan TBBKNext….
LatihanLakukan pembuktian dengan pohon untai, derivasi paling
kiri, derivasi paling kanan1. Perhatikan tata bahasa :
S As|aSbS|є▫ Tunjukan bahwa untai ‘aab’ merupakan bagian dari
bahasa tersebut !2. Perhatikan tata bahasa :
E +EE|*EE|-EE|x|y▫ Tunjukan bahwa untai ‘+*-xyxy’ merupakan bagian dari
bahasa tersebut !3. Perhatikan tata bahasa :
E E+T | TT T*F | FF (E) | L
L a|b|La|Lb|L0|L1▫ Tunjukan bahwa untai ‘+*-xyxy’ merupakan bagian dari
bahasa tersebut !