Pohon penurunan dan Penyederhanaan Tata Bahasa Bebas Konteks Pertemuan 7 Mahasiswa mampu menerapkan pohon peneurunan dan konsep Penyederhanaan Tata Bahasa Bebas Konteks
Materi Pengertian Tata Bahasa Bebas Konteks Penerapan Tata Bahasa Bebas Konteks dengan pohon penurunan Penyederhanaan Tata Bahasa Bebas Konteks dengan Penghilangan Produksi Useless, Penghilangan Produksi Unit dan Penghilangan Produksi Ρ (empty)
Pengertian Tata Bahasa Bebas Konteks Sebuah grammar dikatakan context free jika semua sisi kirinya hanya terdiri dari satu simbol non-terminal (Variabel), dan sisi kanan setidaknya terdiri dari satu simbol terminal. contoh : πΈβΆπ | πΈ+π πβΆπΉ | πβπΉ πΉβΆπ | (πΈ)
Penerapan Tata Bahasa Bebas Konteks dengan pohon penurunan / derivasi pohon derivasi pohon merupakan Sebuah cara menunjukkan bagaimana sebuah tata bahasa bebas konteks berasal dari kata tertentu. Node daun dari pohon adalah terminal , node lain nonterminals / variabel contoh :
penyelesaian Pohon penurunan untuk βababaaβ
Proses penurunan Penurunan terkiri Penurunan terkanan Contoh : πΈβΆπ | πΈ+π πβΆπΉ | πβπΉ πΉβΆπ | (πΈ) Lakukan derivasi kiri dan kanan untuk string βπβ(π+π) β
penyelesaian Penurunan terkiri Penurunan terkanan πΈβΉπ βΉπβπΉ βΉπΉβπΉ βΉπβπΉ βΉπβ(πΈ) βΉπβ(πΈ+π) βΉπβ(π+π) βΉπβ(πΉ+π) βΉπβ(π+π) βΉπβ(π+πΉ) βΉπβ(π+π) βΉπβπΈ βΉπβ(πΈ+π) βΉπβ(πΈ+πΉ) βΉπβ(πΈ+π) βΉπβ(π+π) βΉπβ(πΉ+π) βΉπβ(π+π) βΉπΉβ(π+π)
Ambiguitas Sebuah grammar dikatakan ambigous atau ambigu ada sebuah word memiliki dua atau lebih syntax tree. contoh : buatlah proses dan pohon penurunan dari string βa + b * cβ
penyelesaian
Penyederhanaan Tata Bahasa Bebas Dapat dilakukan dengan : Penghilangan Produksi Ρ (empty) produksi Ρ (empty) : Ξ±β Ξ΅ contoh : Aβ Ξ΅ b. Penghilangan Produksi Unit Produksi Unit : Ξ±β Ξ² contoh : A β B Penghilangan Produksi Useless contoh : Aβ Ba |c B β b C β a (produksi ini tidak digunakan maka dihilangkan)
Penghilangan Produksi Ρ (empty) S β bcAd A β Ξ΅ Hasil dari penghilangan produksi Ξ΅ : Ξ΅ S β bcΞ΅d S β bcd
Penghilangan Produksi Unit S βSb | C C β D C β ef Dβ dd Lakukan penghilangan produksi unit : Termasuk produksi Unit : S βC, C β D
2. Menggantikan produksi unit menjadi tidak unit lagi 1. S β C βΉD |ef βΉ dd |ef S βC menjadi S βdd |ef 2. C β D βΉdd C β D menjadi C β dd
Hasil akhir dari penghilangan prosuksi unit Produksi unit Hasil Penghilangan produksi unit S βSb | C C β D C β ef Dβ dd S βSb | dd |ef C β dd
Penghilangan Produksi Useless S β aBD B β cD |Ab D β ef A β Ed F β dc Lakukan penghilanhan produksi Useless !
Penyelesaian Periksa produksi yang tidak memiliki penurunan S β aBD B β cD |Ab D β ef A β Ed F β dc Sehingga produksi hasil penghilangan produksi useless : B β cD (karena A dihilangkan maka B βAb dihilangkan) (E tidak dapat diturunkan maka dihilangkan) (tidak digunakan maka hilangkan)
Sederhanakan bahasa bebas konteks CFG Penghilangan produksi Ξ΅ (empty) Penghilangan produksi unit Penghilangan produksi useless (tidak berguna) CFG yang sudah sederhana Diketahui bahasa bebas konteks berikut : S βAA | C | bd A βBb | Ξ΅ BβAB | d Cβde Sederhanakan CFG diatas !
Penyelesaian : 1. Menghilangkan produksi Ξ΅ Produksi Ξ΅ : A β| Ξ΅ sehingga :BβAB | d A βBb | Ξ΅ S βAA βΉ S β Ξ΅Bb βΉ S β Ξ΅A βΉ S β A | βΉ S β Bb Ξ΅ βΉ S β A Ξ΅ βΉ S β A | βΉ S β Ξ΅ Ξ΅ βΉ S β Ξ΅ (dihilangkan) | βΉ S β BbBb βΉ S β A A sehingga S βAA |A |C | bd BβAB βΉ B β Ξ΅B βΉ Bβ B | βΉ B β BbB βΉ B β AB sehingga BβB |AB | d Hasil menghilangkan produksi Ξ΅ : S βAA |A |C | bd A βBb BβB |AB | d Cβde
2. Penghilangan Produksi Unit S βAA |A |C | bd A βBb BβB |AB | d Cβde Produksi unit : S βA |C BβB Penyelesaian : S βA βΉ S β Bd S βC βΉ S β de BβB βΉ B β Ab|d Hasil menghilangkan produksi unit : S βAA |Bd |de | bd BβAB | d
3. Penghilangan produksi useless S βAA |Bd |de | bd A βBb BβAB | d Cβde Produksi useless : Cβde (dihilangkan) Hasil menghilangkan produksi useless :
CFG yang telah sederhana CFG yang belum sederhana CFG yang sederhana S βAA | C | bd A βBb | Ξ΅ BβAB | d Cβde S βAA |Bd |de | bd A βBb