Penghilangan Rekursif Kiri By Kustanto Materi ke 5
Penghilangan Rekursif Kiri By Kustanto Materi ke 5 11/5/2020 1
Aturan Produksi Rekursif Aturan Produksi yang rekursif, memiliki ruas kanan (hasil produksi) yang memuat simbol variabel pada ruas kiri Sebuah aturan produksi dalam bentuk : A A ; merupakan aturan produksi rekursif kanan =(V∪T)* atau kumpulan simbol variabel dan terminal Contoh aturan produk yang rekursif kanan: S d. S B ad. B Produksi dalam bentuk: A A merupakan aturan produksi rekursif Kiri contohnya: S Sd B B ad Materi ke 5 11/5/2020 2
Lanjutan…. Produksi yang rekursif kanan akan menyebabkan pohon penurunan tumbuh kekanan, Sedangkan produksi yang rekursif kiri akan menyebabkan penurunan tumbuh ke kiri. Contoh: Context free Grammar (CFG) dengan aturan produksi sebagai berikut: Materi ke 5 11/5/2020 3
Lanjutan … Untuk menghindari penurunan kiri yang looping, perlu dihilangkan sifat rekursif kiri dari aturan produksi. Penghilangan rekursif kiri disini memungkinkan suatu tata bahasa bebas konteks nantinya diubah ke dalam bentuk normal Greibach. Materi ke 5 11/5/2020 4
Tahapan Penghilangan Rekursif Kiri q Pisahkan Aturan produksi yang rekursif kiri dan yang tidak; misalnya Aturan produksi yang rekursif kiri A A 1 | A 2 |. . . | A n Aturan produksi yang tidak rekursif kiri A 1 | 2 |. . . | n q Dari pers diatas dapat ditentukan simbol ruas kiri yang sama yaitu : 1, 2, …, n dan 1, 2, …, n Materi ke 5 11/5/2020 5
Lanjutan … q lakukan peng-ganti-an aturan produksi yang rekursif kiri, menjadi sebagai berikut: 1. A 1 Z | 2 Z |. . . | n Z 2 Z 1 | 2 |. . . | n 3 Z 1 Z | 2 Z |. . . | n Z n Pergantian di atas dilakukan untuk setiap aturan produksi dengan simbol ruas kiri yang sama, bisa muncul variabel baru Z 1, Z 2 dst, sesuai dengan variabel yang menghasilkan rekurisif kiri Materi ke 5 11/5/2020 6
Lanjutan … § Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri. Tahapan tersebut seperti terlihat pada gambar berikut: Aturan produksi yang tidak rekursif kiri Tata bahasa bebas konteks (CFG) yang mengandung aturan produksi yang rekursif kiri Aturan produksi yang rekursif kiri Lakukan penggantian, munculkan aturan produksi baru dan symbol variable baru Materi ke 5 CFG bebas dari aturan produksi yang rekursif kiri 11/5/2020 7
Lanjutan … Contoh: Tata Bahasa Context free S Sab | a. Sc | dd | ff | Sbd n Pertama pisahkan aturan produksi yang rekursif kiri S Sab | Sbd Dari situ kita tentukan untuk simbol Ruas Kiri S: 1=ab , 2=bd n Aturan Produksi yang tidak rekursif kiri S a. Sc | dd | ff dari situ didapat untuk simbol Ruas Kiri: S: 1 = a. Sc, 2 = dd, 3= ff Materi ke 5 11/5/2020 8
Lanjutan … n Langkah berikutnya adalah dilakukan penggantian yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sbd, digantikan dengan 1. S a. Sc. Z 1 | dd. Z 1 | ff. Z 1 2. Z 1 ab | bd 3. Z 1 ab. Z 1 | bd. Z 1 n Hasil akhir yang didapat setelah menghilangkan rekursif kiri adalah sebagai Berikut: S a. Sc | dd | ff S a. Sc. Z 1 | dd. Z 1 | ff. Z 1 ab | bd Z 1 ab. Z 1 | bd. Z 1 Pada kasus di atas S adalah satu-satunya simbol variabel yang menghasilkan produksi rekursif kiri Materi ke 5 11/5/2020 9
Contoh 2. � Terdapat tata bahasa bebas konteks : S Sab | Sb | c. A A Aa | bd Langkah penyelesaiaannya: Pertama pemisahan aturan produksi yang rekursif kiri: S Sab | Sb A Aa Kedua Tentukan simbol ruas kiri: S: 1=ab , 2=b A: 1=a Aturan produksi yang tidak rekursif kiri: Simbol ruas kiri : S c. A A a | bd S: 1= c. A, A: 1= a, 2= bd Materi ke 5 11/5/2020 10
Lanjutan … � Ketiga penggantian aturan produksi rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sb, digantikan dengan 1. S c. AZ 1 2. Z 1 ab | b 3. Z 1 ab. Z 1 | b. Z 1 Untuk yang memiliki simbol ruas kiri A: A Aa, diganti oleh: 1. A a. Z 2 | bd. Z 2 2. Z 2 a 3. Z 2 a. Z 2 Materi ke 5 11/5/2020 11
Lanjutan …. � Hasil akhir setelah penghilangan rekursif kiri adalah: S c. A A a | bd S c. AZ 1 ab | b Z 1 ab. Z 1 | b. Z 1 A a. Z 2 | bd. Z 2 a. Z 2 * Perhatikan bahwa penghilangan rekursif kiri memunculkan simbol variabel baru, dan aturan produksi baru yang rekursif kanan Materi ke 5 11/5/2020 12
Latihan dikumpulkan! � Lakukan penghilangan rekursif kiri pada tata bahasa bebas konteks berikut: 1. S Sa | a. Ac | ε A Ab | ba 2. A Aa | a. Bc 3. A Ab. AB | ε B BAa | A | ε 4. S SBa | Ab A Sa | AAb | a B Sb | BBa | b 5. S SSC | SSB | abg B abc | BSb | BCd C ab Materi ke 5 11/5/2020 13
Selesai Materi ke 5 11/5/2020 14
- Slides: 14