Teori Bahasa dan Otomata 2 sks Penyederhanaan CFG Versi 2 Rifki Indra Perwira, S.Kom rifkiindra@gmail.com Course Introduction
Cakupan Bahasan Tujuan penyederhanaan CFG Penghilangan produksi useless Penghilangan produksi unit Penghilangan produksi ɛ
Tujuan penyederhanaan Melakukan pembatasan pada pembentukan kalimat Agar tidak menghasilkan produksi yang sia-sia Agar tidak menghasilkan pohon penurunan yang punya tingkat kerumitan (redundan) Agar semuanya menghasilkan terminal
Apa dan bagaimana? Diketahui CFG : SA AB BC CD Bukti : Da | A SA, AB, BC, CD, Da Sehingga Sa atau SA Memiliki kelemahan terlalu panjang prosesnya pdhl finis di Sa, kemudian produksi DA juga mubazir.
I. Penghilangan useless Useless didefinisikan sebagai : Produksi yang memuat simbol variabel yang tidak memiliki penurunan sampai seluruhnya terminal Produksi yang tidak pernah dicapai oleh penurunan apapun DAN dari manapun
Contoh : Diketahui CFG : SaSa | Abd | Bde A Ada B BBB | a Coba cek satu per satu : S Abd, S Adabd (A tdk ada penurunan lagi) S Bde, SBBBde, Saaade atau SBde, Sade Jadi AAda dan S aSa | Abd bisa di hapus Sederhananya : S aSa | Bde BBBB | a
Contoh lain : Sederhananya : SAa | B Aab Bd Diberikan CFG : Aab | D Bd | E C bb EaEa Kita bisa lihat bahwa : 1. Aturan AD, D tdk punya turunan 2. Cbb, tdk akan dicapai dari DAN mencapai manapun 3. Simbol E tdk punya aturan yang menuju terminal. 4. Jika E di hapus maka BE juga dihapus Sederhananya : SAa | B Aab Bd
Contoh 3: Sederhananya : SaB Be CbCb | ab Diketahui CFG: SaB AbcD | dAC Be | Ab CbCb | adF | ab F cFB Sederhananya : SaB Be CbCb | ab Kita lihat sama-sama : AbcD, D tdk ada penerusnya shg bisa dihapus Imbasnya, AdAC juga hilang, karena A tdk punya turunan menuju terminal Imbas lain BAb juga hilang krn A tdk ada lagi F cFB juga mubazir Imbasnya CadF juga sia-sia krn F sdh dihilangkan
II. Penghilangan Produksi Unit Produksi unit adalah produksi dimana ruas kiri dan kanan aturan produksinya hanya berupa 1 simbol variable (non terminal). Misalkan DE, AB dsb.. Keberadaan produksi semacam ini menyebabkan tata bahasa mempunyai tingkat kerumitan yg tdk perlu atau menambah panjang penurunan. Penyederhanaan dilakukan dengan penggantian aturan produksi unit
Contoh 4: Diketahui CFG : S Sb SC CD Cef Ddd Alur : SSb SCb SDb Sddb, bisa dilakukan pergantian : CD => Cdd SC => Sef ; SC=>SD(dd) Sdd | ef Diketahui CFG : S Sb SC CD Cef Ddd Sehingga sederhananya : SSb Sdd | ef Cdd Cef Ddd
Contoh 5: CFG berikut : SA SAa AB BC Bb CD Cab Db Alur penyederhanaan : SA SAa SB;Sb atau SC; atau Sab AB;Ab AB;AC;Aab atau CD;Cb BC; CD atau Bab B b Cab Db
3. Penghilangan Produksi ɛ Produksi ɛ adalah produksi dalam bentuk αɛ (dianggap produksi kosong) Penghilangan produksi ɛ dilakukan dengan penggantian produksi yang memuat variable yang bisa menuju produksi ɛ atau di sebut nullable. SbcAd A ɛ Kasus Anullable, sehingga jadi Sbcd
Tetapi jika kasusnya : SbcAd Abd | ɛ Pada kasus ini A bukan satu2nya Nullable!! Sehingga bisa menjadi : SbcAd | bcd Abd
Contoh 6: Diket : SdA | Bd Abc Aɛ Bc A variable nullable, sehingga imbasnya SdA |d| Bd; Abc; Bc
Contoh 7 : Indentifikasi awal nullable : A,B,C termasuk nullable. Maka Diketahui CFG : SAB AabB | aCa | ɛ BbA | BB | ɛ C ɛ Indentifikasi awal nullable : A,B,C termasuk nullable. Maka perlu dilakukan penggantian : SAB | A | B | ɛ AabB; Aab AaCa;Aaa BbA; Bb BBB;BB