Transcript Pertemuan 6
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.
A
a
B
A
a
b
Setiap kali penurunan dipilih
aturan produksi yg menuju
ke solusi.
B
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
→ aabbaa
S
a
S
A
S b
a
A
b
a
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
a
b
s
S
S c
a
S
a
S
a
S
c
b
S
a
S
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’