180 likes | 571 Views
POHON PENURUNAN. PENDAHULUAN. Bentuk umum produksi CFG adalah : α → β, α ∈ V N , β ∈ ( V N VT )*
E N D
PENDAHULUAN Bentukumumproduksi CFG adalah : α → β, α ∈ V N , β ∈ (V N VT )* Analisissintaksadalahpenelusuransebuahkalimat (atausentensial) sampaipadasimbolawal grammar. Analisis sintaks dapat dilakukan melalui derivasi atau parsing. Penelusuran melalui parsing menghasilkan pohon sintaks.
CONTOH 1 Diketahui grammar G 1 = {I → HI HIA, H → abc...z, A → 012...9} denganI adalahsimbolawal. Berikutinikeduacaraanalisasintaksuntukkalimat x23b.
CONTOH 2 Diketahui grammar G 2 = {S → SOSA , O → *+, A → 012...9} Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut :
Metoda Parsing Ada 2 metoda parsing : top-down dan bottom-up. • Parsing top-down : Diberikankalimat x sebagai input. Parsing dimulaidarisimbolawalS sampaikalimat x nyata (atautidaknyatajikakalimat x memangtidakbisaditurunkandari S) daripembacaansemualeaf daripohonparsing jika dibaca dari kiri ke kanan. • Parsing bottom-up : Diberikan kalimat x sebagai input. Parsing dimulai dari kalimat x yang nyatadaripembacaansemualeaf pohon parsing darikirikekanansampaitibadisimbolawal S (atautidaksampaidi S jikakalimat x memang tidak bisa diturunkan dari S).
Parsing Top-down Ada 2 kelasmetoda parsing top-down, yaitu: • Kelasmetodadenganbackup, contohmetodakelasdengan backup adalahmetoda Brute-Force, • Kelasmetodatanpabackup, contohmetodakelastanpa backup adalahmetoda recursive descent.
MetodaBrute-Force Kelasmetodadengan backup, termasukmetoda Brute-Force, adalahkelasmetodaparsing yang menggunakanproduksialternatif, jikaada, ketikahasilpenggunaansebuahproduksitidaksesuaidengansimbol input. Penggunaanproduksisesuaidengannomorurutproduksi.
CONTOH Diberikan grammar G = {S → aAdaB, A → bc, B → ccdddc}. GunakanmetodaBrute-Force untuk melakukan analisis sintaks terhadap kalimat x = accd.
MetodaBrute-Force tidakdapatmenggunakan grammar rekursikiri, yaitu grammar yang mengandungproduksirekursikiri (left recursion) : A → A∝. Produksirekursikiriakan menyebabkan parsing mengalami looping takhingga.
MetodaRecursive-Descent Kelas metoda tanpa backup, termasuk metoda recursive descent, adalah kelas metoda parsing yang tidakmenggunakanproduksialternatifketikahasilakibatpenggunaansebuah produksi tidak sesuai dengan simbol input. Jika produksi A mempunyai dua buahruaskananataulebihmakaproduksi yang dipilihuntukdigunakanadalahproduksidengansimbolpertamaruaskanannyasamadengan input yang sedangdibaca. Jikatidakadaproduksi yang demikianmakadikatakanbahwa parsing tidakdapatdilakukan.
Ketentuan produksi yang digunakan metoda recursive descent adalah : Jika terdapat duaataulebihproduksidenganruaskiri yang samamakakarakterpertamadarisemua ruas kanan produksi tersebut tidak boleh sama. Ketentuan ini tidak melarang adanyaproduksi yang bersifatrekursikiri.
CONTOH • Diketahui grammar G = {S → aBA, A → a, B → bd}. Gunakanmetodarecursive descent untukmelakukananalisissintaksterhadapkalimat x = ac.
Parsing Bottom-Up • Salah satu contoh menarik dari parsing bottom-up adalah parsing pada grammar preseden sederhana(GPS). Sebelumsampaike parsing tersebut, akandikemukakanbeberapapengertiandasarsertarelasi yang adapada GPS.
PengertianDasar • Jikaα dan x keduanyadiderivasidarisimbolawal grammar tertentu, makaα disebutsentensialjikaα ∈ (V T V N )*, dan x disebutkalimatjika x ∈ (V T )* • Misalkanα = Q 1 β Q 2 adalahsentensialdan A ∈ V N : - β adalahfrasedarisentensialα jika : S ⇒ … ⇒ Q 1 A Q 2 dan A⇒ … ⇒ β - β adalahsimple frasedarisentensialα jika : S ⇒ … ⇒ Q 1 A Q 2 dan A⇒ β - Simple frase terkiri dinamakan handel - frase, simple frase, dan handeladalahstringdenganpanjang 0 ataulebih..