TEORI BAHASA & AUTOMATA Pertemuan 6
CFG / Tata Bahasa Bebas Konteks Pada tata bahasa bebas konteks tidak terdapat pembatasan hasil produksinya. Batasan ruas kiri adalah sebuah simbol variabel. Contoh : CFG : B → CDeFg D → BcDe Pd bhs regular, bagian yg belum terturunkan tsb selalu terjadi pd suatu ujung. Pd bhs bebas konteks/CFG bisa terdapat lebih banyak bagian yg belum terturunkan itu, dan bisa terjadi dimana saja. Bhs bebas konteks mjd dasar dlm pembentukan suatu parser / proses analisis sintaksis.
Tree : suatu graph terhubung tidak sirkuler, yg memiliki satu simpul (node) / vertex disebut akar (root) dan situ memiliki lintasan setiap simpul. Pohon penurunan berguna untuk menggambarkan bagaimana memperoleh suatu string (untai) dgn cara menurunkan simbol2 variabel mjd simbol2 terminal sampai tdk ada yg belum tergantikan. Misal : Bhs bebas konteks S → AB A → aA | a B → bB | b
Digambar pohon penurunan utk untai : ‘aabbb’ S Simbol awal menjadi root. Setiap kali penurunan dipilih aturan produksi yg menuju ke solusi. A B b a A B a b B b
Proses penurunan / parsing : Penurunan terkiri / leftmost derivation : simbol variabel paling kiri yg diperluas terlebih dulu. Penurunan terkanan / rightmost derivation : simbol variabel terkanan yg diperluas dulu.
CONTOH : S → aAS | a A → SbA | ba Untuk memperoleh untai :’aabbaa’ Penurunan terkiri : S → aAS → aSbAS → aabAS → aabbaS → aabbaa Penurunan terkanan : S → aAS → aAa → aSbAa → aSbbaa S S a A S b A a a b a
LATIHAN : S → aB | bA A → a | aS | bAA B → b | bS | aBB Utk untai ‘aaabbabbba’
AMBIGUITAS Terjadi bila terdapat lebih dari 1 pohon penurunan yg berbeda utk memperolah suatu untai. Contoh : S → A | B A → a B → a Utk untai : ‘a’ terdapat 2 cara penurunan : S → A → a S → B → a
S → SbS | ScS | a Utk untai : ‘abaca’ terdapat 2 cara penurunan : S → SbS → abS → abScS → abacS → abaca S → ScS → SbScS → abScS → abacS → abaca S s S b S S c S a S S c S b S a a a a a
LATIHAN : S → aAd | aB A → b | c B → ccd | ddc Utk memperoleh untai : ‘accd’ Buktikan bahwa tata bahasa bebas konteks berikut ambigu : S → aB | bA A → a | aS | bAA B → b | bS | aBB Untuk memperoleh untai : ‘aabbab’