Teori Bahasa Formal dan Automata Pertemuan 12 Semester Genap T.A. 2017/2018 Rahman Indra Kesuma, S.Kom., M.Cs. T. Informatika - ITERA
POKOK BAHASAN Penghilangan ε-production Penghilangan Unit Production Penyederhanaan Grammar Chomsky Normal Form (CNF)
PENYEDERHANAAN GRAMMAR Menghilangkan construct yang melambatkan parsing grammar Terbentuknya suatu normal form untuk bahasa Context Free
PENGHILANGAN ε-production ε-production (A ε) dapat melambatkan parser. Definisi : X V adalah nullable jika X ε Ide (dalam menemukan simbol nullable secara rekursif) : Basis : jika P berisi A ε maka labeli A sebagai nullable. Induksi : untuk semua aturan produksi X X 1 X 2 X k, jika masingmasing X i adalah nullable, maka labeli X sebagai nullable. Berhenti : jika tidak ada simbol lagi yang dapat dikategorikan sebagai nullable.
PENCARIAN SIMBOL NULLABLE Contoh : jika diberikan grammar G1 diberikan oleh: S ABC BCB A ab a B CC b C S ε Menemukan simbol-simbol nullable: Basis : {C} Induksi 1 : {B, C} Induksi 2 : {S, B, C}
PENGHILANGAN ε-production Andaikan dilakukan penghapusan simbol nullable langsung, maka: Sebagai contoh dari slide sebelumnya, dapat dilakukan derivasi S BCB, S CB, S BC, S BB, S B Namun, jika aturan produksi C ε langsung dihilangkan begitu saja, maka derivasi tersebut tidak dapat dilakukan lagi. Maka dari itu, perlu ditambahkan semua derivasi yang mungkin menggunakan ε production, dengan membuat aturan produksi baru.
PENGHILANGAN ε-production ALGORITMA : a) Identifikasi semua simbol nullable b) Gantikan semua aturan produksi berbentuk X X 1 X 2 X k dengan sebuah himpunan dari aturan produksi yang berbentuk X α 1 α 2 α k, dimana: i. α i = X i (jika X i tidak nullable) ii. α i = X i atau ε (jika X i nullable) c) Hilangkan semua ε-production
Lanjutan Contoh : PENGHILANGAN ε-production a) Simbol-simbol yang nullable : {S, B, C} b) Maka akan diperoleh grammar berikut (G 2 ): S ABC AB AC A BCB BC CB BB B C ε A ab a B CC C ε b C S ε c) Setelah dihilangkan ε production (G 3 ): S ABC AB AC A BCB BC CB BB B C A ab a B CC C b C S Catatan : Di awal S ε mungkin, sekarang tidak. Oleh karena itu ε L(G 1 ) namun ε L(G 3 ). Hal ini tidak dapat dihindari.
LATIHAN 1 Jika diberikan grammar sebagai berikut : S aaa bbb ε A C a B C b C CDE ε D A B ab Hilangkan semua ε production dari grammar tersebut!
PENGHILANGAN UNIT PRODUCTION Unit production (A B) dapat melambatkan parser. Algoritma: 1. Hilangkan semua ε-production. 2. Untuk semua X, Y V jika X Y dan Y α bukan unit production maka tambahkan X α ke aturan produksi. 3. Hilangkan semua unit production.
PENGHILANGAN UNIT PRODUCTION Contoh Grammar G 1 dibangun dengan : S A B A Sa a B S b Algoritma: S A, S B, B S, B A. Dari itu akan diperoleh grammar baru (G 2 ) : S Sa a b S A B A Sa a B Sa a b S A B Setelah semua unit production dihilangkan, maka terbentuk (G 3 ) : S Sa a b A Sa a B Sa a b
LATIHAN 2 Dengan grammar yang sama seperti latihan 1 : S aaa bbb ε A C a B C b C CDE ε D A B ab Lanjutkan dengan menghilangkan unit production dari hasil penghilangan ε production yang telah di peroleh!
PENGHILANGAN SIMBOL TAK BERGUNA Simbol dikatakan berguna (useful symbol) jika memenuhi kondisi: S αxβ w Dimana X T* dan α, β (V U T)* Useless symbol merupakan simbol-simbol yang tidak berpartisipasi pada derivasi string-string dalam suatu bahasa Sebuah simbol dikatakan tidak berguna (useless) jika simbol tersebut Non-Generating (???) atau Unreacheble (???).
PENGHILANGAN SIMBOL TAK BERGUNA Definisi : X (V U T) adalah generating jika X w untuk suatu w T* X (V U T) adalah reacheble jika S αxβ untuk suatu α, β (V U T)* X adalah useful jika X generating dan reacheble. Generating : simbol yang jika ditelusuri dapat menghasilkan string dalam suatu bahasa Reacheble : simbol yang dapat dicapai dari suatu derivasi yang berawal di S
PENGHILANGAN SIMBOL TAK BERGUNA Langkah penghilangan simbol tidak berguna : 1. Hilangkan X yang Non-Generating 2. Hilangkan X yang Unreacheble Algoritma penghilangan simbol yang Non-Generating : 1. Basis : labeli semua terminal sebagai generating 2. Induksi : untuk semua aturan produksi X X 1 X 2 X k jika masingmasing X i adalah generating, maka X dapat dilabeli generating 3. Berhenti : jika tidak ditemukan simbol generating lagi
PENGHILANGAN SIMBOL TAK BERGUNA Algoritma penghilangan simbol yang Unreacheble : 1. Basis : labeli S sebagai reachecle 2. Induksi : untuk semua aturan produksi X X 1 X 2 X k jika X adalah reacheble, maka masing-masing X i dapat dilabeli dengan reacheble 3. Berhenti : jika tidak ditemukan simbol reacheble lagi
PENGHILANGAN SIMBOL TAK BERGUNA Contoh : Jika diberikan Grammar G 1 S AB AC CD A BB B AC ab C Ca CC D BC b d Penghilangan simbol yang Non-Generating Basis : {a, b, d} Induksi 1 : {a, b, d, B, D} Induksi 2 : {a, b, d, B, D, A} Induksi 3 : {a, b, d, B, D, A, S} Maka diperoleh simbol C adalah Non-Generating. Sehingga hilangkan C dan semua aturan produksi yang berisi C di LHS ataupun RHS.
PENGHILANGAN SIMBOL TAK BERGUNA Contoh : Hasil dari proses sebelumnya akan memunculkan grammar G 2 S AB A BB B ab D b d Penghilangan simbol yang Unreacheble Basis : {S} Induksi 1 : {S, A, B} Induksi 2 : {S, A, B, a, b} Maka diperoleh simbol D dan d adalah Unreacheble. Hilangkan simbol dan aturan produksi yang mengandung D atau d baik itu yang berada di LHS ataupun RHS.
PENGHILANGAN SIMBOL TAK BERGUNA Hasil Akhir : setelah dua proses dilakukan, maka terbentuk grammar G 3 S AB A BB B ab
LATIHAN 3 Masih dengan grammar pada latihan 1 : S aaa bbb ε A C a B C b C CDE ε D A B ab Lanjutkan dengan menghilangkan useless symbol dari hasil penghilangan unit production yang telah di peroleh pada latihan 2!
CHOMSKY NORMAL FORM CFG G memiliki format CNF jika semua aturan produksinya berbentu: a) A a, b) A XY, dimana A, X, Y V dan a T. Algoritma: 1) Hilangkan ε-production, unit production serta useless symbol 2) Hilangkan mixed bodies 3) Faktorisasi semua aturan produksi yang panjang
Menghilangkan Mixed Bodies KONSTRUKSI Untuk masing-masing a T, tambahkan variabel baru V a dan V a a Di masing-masing aturan produksi yang menggandung a, maka gantikan a dengan V a Maka akan diperoleh aturan produksi yang berbentuk: i. A a ii. A A 1 A 2 A k (k 2) Dengan A 1, A 2,, A k V
KONSTRUKSI Faktorisasi Aturan Produksi yang Panjang Untuk A A 1 A 2 A k (k 3), tambahkan variabel baru B 1, B 2,, B k-2 Sehingga terbentuk aturan produksi baru yaitu:
LATIHAN 4 Masih dengan grammar pada latihan 1 : S aaa bbb ε A C a B C b C CDE ε D A B ab Bawalah grammar yang diperoleh dari latihan 3 ke bentuk Chomsky Normal Form (CNF)!
PUSTAKA John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, Introduction To Automata Theory, Languages, and Computation Dr.-Ing. Reza Pulungan, M.Sc. Bahan Ajar Teori Komputasi. JIKE UGM.
Terima Kasih!