450 likes | 1.03k Views
TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR). Oleh : Bagus Adhi Kusuma Teori Bahasa dan Otomata STIMIK AMIKOM Purwokerto Program Studi Teknik Informatika 2013/2014. CFG ( Bahasa Bebas Konteks ). sebuah tata bahasa dimana tidak terdapat pembatasan pada hasil produksinya.
E N D
TATA BAHASA BEBAS KONTEKS(CONTEXT FREE GRAMMAR) Oleh: BagusAdhiKusuma TeoriBahasadanOtomata STIMIK AMIKOM Purwokerto Program StudiTeknikInformatika 2013/2014
CFG (BahasaBebasKonteks) sebuahtatabahasadimanatidakterdapatpembatasanpadahasilproduksinya Contohpadaaturanproduksi : α → β batasannyahanyalahruaskiri (α) adalahsebuahsimbolvariabel.
CFG (BahasaBebasKonteks) contohaturanproduksi yang termasukCFG: B → CDeFg D → BcDe
Pohonpenurunan(derivation tree/parse tree) untukmenggambarkansimbol-simbolvariabelmenjadisimbol-simbol terminal setiapsimbolvariabelakanditurunkanmenjadi terminal sampaitidakada yang belumtergantikan.
CONTOH terdapat CFG denganaturanproduksisebagaiberikutdengansimbolawal S : S aAB A bBb B A | λ
DERIVATION leftmost derivation Suatupenguraian /penurunandikatakanleftmost derivation bilasetiaptahapanpenurunanvariabel / non terminal terkiri yang diuraikan. rightmost derivation Apabilasetiaptahapanpenurunanvariabel / non terminal paling kanan yang diuraikandisebutrightmost derivation
CONTOH : G=({A,B,S}, {a,b},S,P} denganaturanproduksi P : S AB A aaA | λ B Bb | λ Leftmost derivation untukmenghasilkan string aab S => AB => aaAB => aaB => aaBb => aab Righmost derivation untukmenghasilkan string aab S => AB => ABb => aaABb => aaAb => aab
CONTOH : G=({A,B,S}, {a,b},S,P} denganaturanproduksi P : S aAB A bBb B A | λ Leftmost derivation untukmenghasilkan string abbbb S => aAB => abBbB => abAbB => abbBbbB => abbbbB => abbbb
Righmost derivation untukmenghasilkan string abbbb S => aAB => aA => abBb => abAb => abbBbb => abbbb
PARSING & KEANGGOTAAN Untukmenentukanapakah string w beradadi L(G), dengancarasecarasistematismembangunsemuakemungkinanpenurunan, danmencocokkanhasilnyaapakahada yang samadengan string w. (disebut exhaustive search parsing)
Parsing prosespembacaan string dalambahasasesuai CFG tertentu, prosesiniharusmematuhiaturanproduksidalam CFG tersebut. PROSES PARSING
CONTOH menentukanapakahstring abberada padabahasa yang dibentukoleh grammar denganaturanproduksi: S SS | aSb | bSa | λ
Untukpenguraianpertama 1. S => SS 2. S => aSb 3. S => bSa 4. S => λ Penguraianpertamatsbmembentuk 1a. S => SS => SSS 1b. S => SS => aSbS 1c. S => SS => bSaS 1d. S => SS => S
Penguraian 2 membentuk 2a. S => aSb => aSSb 2b. S => aSb => aaSbb 2c. S => aSb => abSab 2d. S => aSb => ab Penguraiannomor 3 dan 4 tidakperludilanjutkan.
AMBIGUITAS Terjadibilaterdapatlebihdarisatupohonpenurunan yang berbedauntukmemperolehsuatu string. Paling sedikitada 2 pohon
Misalkanterdapattatabahasasebagaiberikut: S SS | aSb | λ Untuk memperoleh untai ‘aabb’ bisa terdapat dua cara penurunan sebagai berikut :
Penyederhanaan Tata BahasaBebasKonteks Tujuan Melakukanpembatasansehinggatidak menghasilkanpohonpenurunan yang memilikikerumitan yang tidakperluatauaturanproduksiyang tidakberarti.
Contoh 1: S AB | a A a Aturanproduksi S AB tidakberartikarena B tidakmemilikipenurunan
Contoh 2: S A A B B C C D D a | A Memilikikelemahanterlalupanjangjalannya padahalberujungpada S a, produksi D A jugamenyebabkankerumitan.
Cara Penyederhanaan: • Penghilanganproduksi useless ( tidakberguna ) • Penggantianproduksi unit • Penghilanganproduksiε
PenghilanganProduksi Useless Produksi useless didefinisikansebagai : • Produksi yang memuat symbol variabel yang tidakmemilikipenurunan yang akanmenghasilkan terminal-terminal seluruhnya. • Produksi yang tidakakanpernahdicapaidenganpenurunanapapundarisimbolawal, sehinggaproduksiituredundan (berlebih/rangkap)
Contoh: S aSa | Abd | Bde A Ada B BBB | a Makasimbolvariabel A tidakmemilikipenurunan yang menujuterminal, sehinggabisadihilangkan Konsekuensi : aturanproduksi S Abdtidakmemilikipenurunan
Penyederhanaanmenjadi: S aSa | Bde B BBB | a
PenggantianProduksi Unit • Produksidimanaruaskiridankananaturanproduksihanyaberupasatusimbolvariabel, • misalkan: A B, C D. • Keberadaannyamembuattatabahasamemilikikerumitan yang takperlu. • Penyederhanaandilakukandenganmelakukanpenggantianaturanproduksiunit
Contoh S Sb S C C D C ef D dd Dilakukanpenggantianberturutanmulaidariaturanproduksiyang paling dekat menujukepenurunan terminal-terminal (‘=>’ dibaca‘menjadi’): C D => C dd S C => S dd | ef
Sehinggaaturanproduksisetelahpenyederhanaan: S Sb S dd | ef C dd C ef D dd
PenghilanganProduksiε • Produksiε adalahproduksidalambentukαε ataubisadianggapsebagaiproduksikosong ( empty ). Penghilanganproduksiε dilakukandenganmelakukanpenggantianproduksi yang memuatvariabel yang bisamenujuproduksiε, ataubiasadisebutnullable
Prinsippenggantiannyabisadilihatkasusberikut: S bcAd A ε A nullableserta A ε satu-satunyaproduksidari A, makavariabelA bisaditiadakan, hasilpenyederhanaantatabahasabebaskonteksmenjadi: S bcd
Tetapibilakasusnya: S bcAd A bd | ε A nullable , tapi A ε bukansatusatunyaproduksidari A, makahasilpenyederhanaan: S bcAd | bcd A bd
Contohdalam Tata BahasaBebasKonteks S AaCD A CD | AB B b | ε C d | ε D ε V ariabel yang nullableadalah B, C, D. Kemudiandari A CD, makavariabel A juganulable ( A ε )
Karena D hanyamemilikipenurunan D ε, makakitasederhanakandulu: S AaCD => S AaC A CD => A C D ε kitahapus Selanjutnyakitalihatvariabel B dan C memilikipenurunanε, meskipunbukansatusatunyapenurunan, makadilakukanpenggantian: A AB => A AB | A | B S AaC => S AaC | aC | Aa | a B ε dan C ε kitahapus
Setelahpenyederhanaan: S AaC | aC | Aa | a A C | AB | A | B B b C d
LatihanSoal Sederhanakandenganpenghilanganproduksi useless: S aAb | c E B A dBE | eeC B ff C ae D h
LatihanSoal Sederhanakandenganpenghilanganproduksi useless: S aAb | c E B A dBE | eeC B ff C ae D h S aAb A eeC C ae
LatihanSoal Sederhanakandenganpenggantianproduksiunit: S A S Aa A B B C B b C D C ab D b
LatihanSoal Sederhanakandenganpenggantianproduksiunit: S A S Aa A ab|b B ab B b C b C ab D b S A S Aa A B B C B b C D C ab D b
LatihanSoal Sederhanakandenganpenghilanganproduksiε: S dA | Bd A bc A ε B c
LatihanSoal Sederhanakandenganpenghilanganproduksiε: S dA | Bd A bc A ε B c S dA | Bd | d A bc B c