Penghilangan Rekursif Kiri By Kustanto Materi ke 5 2/17/2019
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 dS B adB Produksi dalam bentuk: A A merupakan aturan produksi rekursif Kiri contohnya: S S d B B ad Materi ke 5 2/17/2019
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 2/17/2019
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 2/17/2019
Tahapan Penghilangan Rekursif Kiri 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 Dari pers diatas dapat ditentukan simbol ruas kiri yang sama yaitu : 1, 2,…, n dan 1, 2,…, n Materi ke 5 2/17/2019
Lanjutan … 2 Z 1 | 2 | ... | n 3 Z 1 Z | 2 Z | ... | n Z 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 Pergantian di atas dilakukan untuk setiap aturan produksi dengan simbol ruas kiri yang sama, bisa muncul variabel baru Z1, Z2 dst, sesuai dengan variabel yang menghasilkan rekurisif kiri Materi ke 5 2/17/2019
Lanjutan … Hasil akhir berupa aturan produksi pengganti ditambah dengan aturan produksi semula yang tidak rekursif kiri. Tahapan tersebut seperti terlihat pada gambar berikut: Tata bahasa bebas konteks (CFG) yang mengandung aturan produksi yang rekursif kiri Aturan produksi yang tidak rekursif kiri Aturan produksi yang rekursif kiri Lakukan penggantian, munculkan aturan produksi baru dan symbol variable baru CFG bebas dari aturan produksi yang rekursif kiri Materi ke 5 2/17/2019
Lanjutan … Contoh: Tata Bahasa Context free S Sab | aSc | dd | ff | Sbd Pertama pisahkan aturan produksi yang rekursif kiri S Sab | Sbd Dari situ kita tentukan untuk simbol Ruas Kiri S: 1=ab , 2=bd Aturan Produksi yang tidak rekursif kiri S aSc | dd | ff dari situ didapat untuk simbol Ruas Kiri: S: 1 = aSc, 2 = dd, 3= ff Materi ke 5 2/17/2019
Lanjutan … Langkah berikutnya adalah dilakukan penggantian yang rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sbd, digantikan dengan 1. S aScZ1 | ddZ1 | ffZ1 2. Z1 ab | bd 3. Z1 abZ1 | bdZ1 Hasil akhir yang didapat setelah menghilangkan rekursif kiri adalah sebagai Berikut: S aSc | dd | ff S aScZ1 | ddZ1 | ffZ1 Z1 ab | bd Z1 abZ1 | bdZ1 Pada kasus di atas S adalah satu-satunya simbol variabel yang menghasilkan produksi rekursif kiri Materi ke 5 2/17/2019
Contoh 2. S: 1=ab , 2=b S: 1= cA, A:1= a, 2= bd Terdapat tata bahasa bebas konteks : SSab | Sb | cA A Aa | a | bd Langkah penyelesaiaannya: Pertama pemisahan aturan produksi yang rekursif kiri: SSab | Sb A Aa Kedua Tentukan simbol ruas kiri: S: 1=ab , 2=b A: 1=a Aturan produksi yang tidak rekursif kiri: ScA Aa | bd Simbol ruas kiri : S: 1= cA, A:1= a, 2= bd Materi ke 5 2/17/2019
Lanjutan … Ketiga penggantian aturan produksi rekursif kiri: Untuk yang memiliki simbol ruas kiri S: S Sab | Sb, digantikan dengan 1. S cAZ1 2. Z1 ab | b 3. Z1 abZ1 | bZ1 Untuk yang memiliki simbol ruas kiri A: A Aa, diganti oleh: 1. A aZ2 | bdZ2 2. Z2 a 3. Z2 aZ2 Materi ke 5 2/17/2019
Lanjutan …. Hasil akhir setelah penghilangan rekursif kiri adalah: ScA Aa | bd ScAZ1 Z1ab | b Z1abZ1 | bZ1 AaZ2 | bdZ2 Z2a Z2aZ2 * Perhatikan bahwa penghilangan rekursif kiri memunculkan simbol variabel baru, dan aturan produksi baru yang rekursif kanan Materi ke 5 2/17/2019
Latihan dan dikumpulkan! Lakukan penghilangan rekursif kiri pada tata bahasa bebas konteks berikut: 1. SSa | aAc | c | ε AAb | ba 2. A Aa | aBc 3. AAbAB | ε BBAa | A | ε 4. SSBa | Ab ASa | AAb | a BSb | BBa | b 5. SSSC | SSB | abg Babc | BSb | BCd Cab Materi ke 5 2/17/2019
Selesai Materi ke 5 2/17/2019