Penyederhanaan Bahasa Bebas Context Kelompok 4
Nama Kelompok Ragil Satria Wicaksana Arita Windi Astuti M. Salahudin Endra Setiawan Vidya Noer Firdausy Dinda Sigmawaty
Tata Bahasa Bebas Konteks (Context Free Grammar) Tata bahasa bebas konteks, selanjutnya disingkat CFG, tidak mempunyai batasan pada hasil produksinya. Pada aturan produksi yang dibatasi hanya ruas kiri saja atau yang merupakan sebuah simbol variabel. Contoh aturan produksi CFG, B CDeFg D BcDe
Tata bahasa bebas konteks digunakan sebagai cara untuk menunjukkan bagaimana menghasilkan untai-untai dalam sebuah bahasa. Pada saat menurunkan untai, simbol-simbol variabel akan mewakili bagian-bagian yang belum diturunkan dari untai tersebut. Bahasa bebas konteks menjadi dasar dalam membentuk suatu parser / proses analisis sintaksis.
“The quick brown fox jumped over the lazy dog” Parsing Berikut sebuah pohon (tree) yang menguraikan kalimat “The quick brown fox jumped over the lazy dog”
“The quick brown fox jumped over the lazy dog” sentence subject predicate noun phrase verb phrase article noun phrase verb adverbial phrase the adjective noun phrase jumped proposision noun phrase over adjective noun phrase quick adjective noun phrase brown noun the adjective noun phrase fox lazy noun dog
Pohon Penurunan Pohon penurunan berguna untuk memperoleh untai dengan cara menurunkan variabel-variabel menjadi simbol-simbol terminal. Contoh : Misal terdapat tata bahasa bebas konteks (simbol awal S) dengan aturan produksi: S AB A aA | a B bB | b Gambarkan pohon penurunan untuk memperoleh untai ‘aabbb’
S AB A aA | a B bB | b S A B a A b B a b B b
Proses penurunan ( parsing) Proses penurunan dapat dilakukan dengan cara: Penurunan terkiri (leftmost derivation) Penurunan terkiri dilakukan dengan menurunkan variabel terkiri terlebih dahulu. Penurunan terkanan (rightmost derivation) Penurunan terkanan dilakukan dengan menurunkan variabel terkanan terlebih dahulu. Contoh 9.2 Dari aturan produksi: S aAS | a A SbA| ba, gambarkan pohon penurunan terkiri dan terkanan untuk mendapatkan untai ‘aabbaa’
Penurunan terkiri Penurunan terkanan S S a A S a A S S b A S a b A a b Proses penurunan juga dapat dilakukan dengan cara: S aAS aSbAS aabAS aabbaS aabbaa Atau: S aAS aAa aSbAa aSbbaa aabbaa
Ambiguitas Jika dari aturan produksi tata bahasa bebas konteks terdapat lebih dari satu cara membuat pohon penurunan untuk memperoleh suatu untai, maka dikatakan bahasa bebas konteks tersebut ambigu. Contoh 9.3 Buktikan bahwa tata bahasa bebas konteks berikut ambigu, S SbS | ScS | a Penyelesaian: Misal kita akan menurunkan untai ‘abaca’
Penurunan terkiri Penurunan terkanan S S S b S S c S a S c S S b S a a Proses penurunan juga dapat dilakukan dengan cara: S SbS abS abScS abacS abaca Atau: S ScS Sca SbSca Sbaca abaca
Karena bentuk pohon penurunan sebelah kiri berbeda dengan pohon penurunan sebelah kanan, maka dikatakan bahwa tata bahasa bebas konteks S SbS | ScS | a ambigu
Latihan Dari aturan produksi: S aS | bS | a | b, gambarkan pohon penurunan untuk mendapatkan untai ‘abbab’.
TUJUAN PENYEDERHANAAN Melakukan pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan yang tak perlu atau aturan produksi yang tidak berarti. contoh : S AB | a A a Kelemahannya : aturan produksi AB menjadi tidak berarti karena B tidak memiliki penurunan.
Untuk CFG berikut : S A A B B C C D D a | A Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.
Penyederhanaan CFG Suatu tata bahasa bebas konteks dapat disederhanakan dengan melakukan cara berikut ini : Penghilangan produksi useless Penghilangan produksi unit Penghilangan produksi ℰ
Penghilangan Produksi Useless Produksi useless adalah : Produksi yang memuat simbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya. Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal.
Contoh : Terdapat aturan produksi sebagai berikut : S -> aBD B -> cD | Ab D -> ef A -> Ed F -> dc
Analisa : 1) Pada aturan produksi A -> Ed, E tidak memiliki penurunan. sehingga dapat dihilangkan 2) Aturan produksi F -> dc, redudan. sehingga aturan produksi tersebut dapat dihilangkan Sisa aturan produksi yang telah disederhanakan adalah sebagai berikut : S -> aBD B -> cD | Ab D -> ef
Analisa kembali : aturan produksi B -> Ab, A tidak memiliki penurunan. sehingga didapat penyederhanaan lagi menjadi S -> aBD B-> cD D -> ef Kesimpulannya adalah bahwa produk useless yang dihilangkan adalah : A-> Ed F -> dc B-> Ab
Penghilangan Produksi Unit Produksi Unit adalah produksi dimana ruas kiri dan kanan aturan produksi hanya berupa satu simbol variabel. Contoh : A -> B, C -> D Contoh : S Sb S C C D C ef D dd
Kita lakukan penggantian berurutan mulai dari aturan produksi paling dekat menuju terminal- terminal C D C dd S C S dd | ef sehingga aturan produksi setelah penyederhanaan : S Sb S dd | ef C dd C ef D dd
Penghilangan Produksi ℰ Produksi ℰ adalah produksi dalam bentuk 𝜶 𝜺 atau bisa dianggap sebagai produksi kosong. Penghilangan produksi 𝜺 dilakukan dengan penggantian produksi yang memuat variabel yang bisa menuju produksi 𝜺 atau biasa disebut nullable.
Contoh : S bcAd A 𝜺 Pada kasus diatas A nullable, maka variabel A bisa ditiadakan. Hasil penyederhanaan S bcd
Contoh : S bcAd | bcd A bd | 𝜺 Hasil penyederhanaan A bd
Alur penyederhanaan Tata Bahasa Bebas Konteks CFG Penghilangan Produksi ℰ Penghilangan Produksi Unit Penghilangan produksi useless CFG yang sudah disederhanakan
Contoh : S A A B S aBD B CD| ab D ef A Ed C 𝜺 F dc Sederhanakan.