Matakuliah Tahun : T0162/Teori Bahasa dan Automata : 2009 Pertemuan 8 CONTEXT FREE GRAMMAR (CFG) 1 Learning Outcomes Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : • << TIK-99 >> • << TIK-99>> 2 Outline Materi • • • • • Materi 1 Materi 2 Materi 3 Materi 4 Materi 5 3 CONTEXT FREE GRAMMAR (CFG) • Mendefinisikan programming language • Formalitas konsep Parsing • Mendefinisikan ekspresi aritmatik Komponen CFG : • Simbol Non-terminal / variabel • Simbol Terminal (alphabet language) 4 CONTEXT FREE GRAMMAR (CFG) • Production : aturan yang diperbolehkan untuk melakukan substitusi variable • Simbol Production : • Context Free Grammar : setiap variabel dapat disubstitusi sesuai dengan produksinya, tidak tergantung pada posisi/ konteksnya. • Satu simbol variabel sebagai start. 5 CFG Definisi formal CFG : G = (V, T, P, S) dimana : V : himpunan variabel T : himpunan terminal V T = (disjoint) P : himpunan produksi : A A : variabel ( V T ) S : start symbol 6 CONTEXT FREE GRAMMAR (CFG) Contoh Production : 1. <kalimat> 2. <subjek> 3. <predikat> 4. <objek> 5. <kata benda> 6. <kata kerja> < ….. > <subjek> <predikat> <kata benda> <kata kerja> <objek> <kata benda> anjing nasi orang makan memukul : variabel : pilihan 7 CONTEXT FREE GRAMMAR (CFG) Aplikasi produksi di atas melalui proses “derivasi” secara berulang akan menghasilkan suatu kalimat yang utuh, misalnya : “orang makan nasi”, “anjing makan anjing”, “anjing memukul orang” Kalimat yang salah: “makan nasi orang” 8 Derivasi • Derivasi : Proses penurunan produksi dari atas ke bawah (head to body) • Simbol Derivasi : • Left Most Derivation (LMD): derivasi dilakukan pada variable yang paling kiri. • Right Most Derivation (RMD): derivasi dilakukan pada variabel yang paling kanan. 9 CONTEXT FREE GRAMMAR (CFG) Contoh Derivasi “anjing makan anjing” : <kalimat> <subjek> <predikat> <subjek> <kata kerja> <objek> <subjek> <kata kerja> <kata benda> <subjek> <kata kerja> anjing <subjek> makan anjing <kata benda> makan anjing anjing makan anjing 10 CONTEXT FREE GRAMMAR (CFG) CFG untuk penulisan ekspresi aritmatik. Produksi untuk ekspressi aritmatik : EE+E EE*E E (E) Ea|b|c|d 11 CONTEXT FREE GRAMMAR (CFG) Menurunkan ekspresi aritmatika : “(a+b)*c” E E E (E) E (E + E) E (a + E) E (a + b) E (a + b) c • Notasi Derivasi berulang kali : m : Derivasi m kali secara berturutan G dalam grammar G * : Derivasi 0 atau lebih kali secara berturutan G dalam grammar G 12 Misalkan : 1, 2, …, m string dalam (V T)*, m 1 1 2, 2 3, …, m m+1 maka : m * 1 m+1 atau 1 m+1 * : refleksive, transitive closure dari 13 CONTEXT FREE GRAMMAR (CFG) Konvensi penggunaan simbol : 1. A, B, C, D, E dan S : variabel 2. Huruf kecil dan digit : terminal 3. X, Y, Z : terminal atau variabel 4. Huruf kecil : u, v, w, x, y, dan z : string variabel 5. Huruf kecil : , , : sentential form (VT)* Jika A 1, A 2, …, A n, ditulis A 1 2 … k 14 Derivation Tree Derivation Tree : Penggambaran Derivasi dalam bentuk tree A XYZ Tree : A X Y Z 15 Parse Tree • Parse Tree untuk : - (id + id) E E ( E ) E + E id id 16 Language untuk CFG Definisi : • Language untuk CFG G : * w} L (G) = { w w T* dan S dimana : w T* : terminal S * w : diturunkan dari S. L adalah “Context Free Language” jika terdapat CFG G, sehingga L = L(G). 17 Language untuk CFG Contoh CFG : G = (V, T, P, S) dimana V = {S} T = {a, b} P = {S aSb, S ab } Derivasi grammar: S aSb aaSbb … anbn Maka : L(G) = { anbn n 1} 18 << CLOSING>> 19
© Copyright 2024 Paperzz