250 likes | 625 Views
12. PENGHILANGAN REKURSIF KIRI. 12.1 Aturan Produksi Rekursif Aturan produksi yang rekursif adalah aturan produksi yang hasil produksinya ( ruas kanan ) mengandung variabel yang sama dengan ruas kiri . Aturan produksi berikut adalah aturan produksi yang rekursif , S dS
E N D
12.1 AturanProduksiRekursif Aturanproduksi yang rekursifadalahaturan produksi yang hasilproduksinya (ruaskanan) mengandungvariabel yang samadenganruaskiri. Aturanproduksiberikutadalahaturanproduksi yang rekursif, S dS A Ab B adB Perhatikanaturanproduksidiatas! Setiaphasilproduksi (ruaskanan) mengandungvariabel yang samadenganruaskiri.
Aturanproduksi yang rekursifdibagimenjadidua, yaiturekursifkiridanrekursifkanan. Aturanproduksidikatakanrekursifkirijikapadaawalhasilproduksimengandungvariabel yang samadenganruaskiri. Bentukumumaturanproduksirekursifkiri : A A ; = (V⋃T)* Sebagaicontoh: S Sa A Ab B Bad
Aturanproduksidikatakanrekursifkananjikapadaakhirhasilproduksimengandungvariabel yang samadenganruaskiri. Bentukumumaturanproduksirekursifkanan : A A ; = (V⋃T)* Sebagaicontoh: S aS A bdA B aB
Produksi yang rekursifkananmenyebabkanpohonpenurunan tumbuhkekanan, sedangkanproduksi yang rekursifkiri menyebabkanpohonpenurunantumbuhkekiri. Sebagaicontoh: S aAc A Ab c a A b b b A A A Dalambanyakpenerapantatabahasa , rekursifkiritakdiinginkankarenamengakibatkanpenurunan yang menghasilkanloop, sehinggakitaperlumenghilangkanrekursifkiridariaturanproduksi.
12.2 TahapanPenghilanganRekursifKiri Langkah-langkahpenghilanganpenghilangan rekursifkiri. Pisahkanaturanproduksi yang rekursifkiri dengan yang tidakrekursifkiri. Sebagaicontoh: Aturanproduksi yang rekursifkiri, A A1 | A2 | A3 | … | An Aturanproduksi yang bukanrekursifkiri, A 1 | 2 | 3 | … | m
ii) Tentukansimbol-simbol1, 2, 3, … , ndan 1, 2, 3, … , mdarisetiapaturanproduksi yang memilikisimbolruaskiri yang sama. iii) Lakukanpenggantianaturanproduksi yang rekursifkirimenjadisebagaiberikut: A 1 Z | 2 Z | 3 Z | … | m Z Z 1 | 2 | 3 | … | n Z 1 Z | 2 Z | 3 Z | … | n Z
CFG yang mengandung aturanproduksirekursifkiri Aturanproduksi yang rekursifkiri Aturanproduksi yang tidakrekursifkiri Lakukan penggantian CFG yang bebasdariaturanproduksi yang rekursifkiri
Contoh 12.1 Hilangkanrekursifkiridariaturanproduksiberikut! S Sab | aSc | dd | ff | Sbd Penyelesaian: Aturanproduksirekursifkiri: S Sab | Sbd 1 = ab ; 2 = bd Aturanproduksitidakrekursifkiri: S aSc | dd | ff 1 = aSc ; 2 = dd ; 3 = ff
Aturanproduksirekursifkiri, S Sab | Sbddigantikanoleh: S aScZ1 | dd Z1 | ff Z1 Z1 ab | bd Z1 abZ1 | bdZ1 Hasilakhirsetelahpenghilanganrekursifkiriadalah: S aSc | dd | ff S aScZ1 | dd Z1 | ff Z1 Z1 ab | bd Z1 abZ1 | bdZ1
Contoh 12.2 Hilangkanrekursifkiridariaturanproduksiberikut! S Sab | Sb | cA A Aa | a | bd Penyelesaian: Aturanproduksirekursifkiri, S Sab | Sb 1 = ab ; 2 = b Aturanproduksirekursifkiri, A Aa 1 = a Aturanproduksitidakrekursifkiri, S cA 1 = cA Aturanproduksitidakrekursifkiri, A a | bd 1 = a ; 2 = bd
Pergantianaturan produksirekursifkiri: S Sab | Sbdigantikan oleh: S caZ1 Z1 ab | b Z1 abZ1 | bZ1 Pergantianaturan produksirekursifkiri: A Aadigantikan oleh: A aZ2 | bdZ2 Z2 a Z2 aZ2 Hasilakhirsetelah penghilanganrekursif kiriadalah: S cA A a | bd S caZ1 Z1 ab | b Z1 abZ1 | bZ1 A aZ2 | bdZ2 Z2 a Z2 aZ2
Contoh 12.3 Hilangkanrekursifkiridariaturanproduksiberikut! S Sa | aAc | c | A Ab | ba Penyelesaian: Aturanproduksirekursifkiri, S Sa 1 = a Aturanproduksirekursifkiri, A Ab 1 = b Aturanproduksitidakrekursifkiri, S aAC | c | 1 = aAc ; 2 = c ; 3 = Aturanproduksitidakrekursifkiri, A ba 1 = ba
Pergantianaturan produksirekursifkiri: S Sa digantikan oleh: S aAcZ1 | cZ1 | Z1 Z1 a Z1 aZ1 Pergantianaturan produksirekursifkiri: A Abdigantikan oleh: A baZ2 Z2 b Z2 bZ2 Hasilakhirsetelah penghilanganrekursif kiriadalah: S aAC | c | S aAcZ1 | cZ1 | Z1 A ba A baZ2 Z1 a Z1 aZ1 Z2 b Z2 bZ2
Contoh 12.4 Hilangkanrekursifkiridariaturanproduksiberikut! S Sab | aSc | dd | ff | Sbd Penyelesaian: Aturanproduksitidakrekursifkiri: S aSc | dd | ff
Hasilakhirsetelahpenghilanganrekursifkiriadalah: S aSc | dd | ff S aScZ1 | dd Z1 | ff Z1 Z1 ab | bd Z1 abZ1 | bdZ1
Contoh 12.5 Hilangkanrekursifkiridariaturanproduksiberikut! S Sab | Sb | cA A Aa | a | bd Penyelesaian: Aturanproduksitidakrekursifkiri, S cA A a | bd
Hasilakhirsetelah penghilanganrekursif kiriadalah: S cA A a | bd S caZ1 Z1 ab | b Z1 abZ1 | bZ1 A aZ2 | bdZ2 Z2 a Z2 aZ2 S caZ1 | cA A aZ2 | bdZ2 | a | bd S caZ1 Z1 abZ1 | bZ1 | ab | b Z2 aZ2 | a
Latihan Lakukanpenghilanganrekursifkiripada tatabahasabebaskonteksberikut! A Aa | aBc 2. A Aa | aBc B BAa | A |