Presentasi Teori Bahasa dan Otomata

Download Report

Transcript Presentasi Teori Bahasa dan Otomata

Kelompok 4






Ragil Satria Wicaksana
Arita Windi Astuti
M. Salahudin
Endra Setiawan
Vidya Noer Firdausy
Dinda Sigmawaty
Tata Bahasa Bebas Konteks
(Context Free Grammar)
Tata bahasa bebas konteks, selanjutnya disingkat
CFG, tidak mempunyai batasan pada hasil
produksinya.
Pada aturan produksi    yang dibatasi hanya ruas
kiri saja atau  yang merupakan sebuah simbol
variabel.
Contoh aturan produksi CFG,
B  CDeFg
D  BcDe
Tata bahasa bebas konteks digunakan sebagai cara
untuk menunjukkan bagaimana menghasilkan untaiuntai dalam sebuah bahasa.
Pada saat menurunkan untai, simbol-simbol variabel
akan mewakili bagian-bagian yang belum diturunkan
dari untai tersebut.
Bahasa bebas konteks menjadi dasar dalam
membentuk suatu parser / proses analisis sintaksis.
Parsing
Berikut sebuah pohon (tree) yang menguraikan
kalimat
“The quick brown fox jumped over the lazy dog”
sentence
subject
verb phrase
noun phrase
article
verb
noun phrase
adjective
“The quick brown
fox jumped over the
lazy dog”
predicate
adverbial phrase
proposision
noun phrase
adjective noun phrase
adjective
noun
fox
quick
the
brown
noun phrase
noun phrase
adjective noun phrase
lazy
over
jumped
the
noun
dog
Pohon Penurunan
Pohon penurunan berguna untuk memperoleh untai
dengan cara menurunkan variabel-variabel menjadi
simbol-simbol terminal.
Contoh :
Misal terdapat tata bahasa bebas konteks (simbol awal S)
dengan aturan produksi:
S  AB
A  aA | a
B  bB | b
Gambarkan pohon penurunan untuk memperoleh untai
‘aabbb’
S  AB
A  aA | a
B  bB | b
S
B
A
a
B
A b
a
b
B
b
Proses penurunan ( parsing)
Proses penurunan dapat dilakukan dengan cara:
A. Penurunan terkiri (leftmost derivation)
Penurunan terkiri dilakukan dengan menurunkan
variabel terkiri terlebih dahulu.
B. Penurunan terkanan (rightmost derivation)
Penurunan terkanan dilakukan dengan menurunkan
variabel terkanan terlebih dahulu.
Contoh 9.2
Dari aturan produksi: S  aAS | a
A  SbA| ba,
gambarkan pohon penurunan terkiri dan terkanan
untuk mendapatkan untai ‘aabbaa’
Penurunan terkiri
Penurunan terkanan
S
S
A
a
S
a
S
A
b
b
a
a
Proses penurunan juga dapat
dilakukan dengan cara:
S  aAS  aSbAS  aabAS 
aabbaS  aabbaa
A
a
S
a
S
a
A
b
b
a
Atau:
S  aAS  aAa  aSbAa 
aSbbaa  aabbaa
Ambiguitas
Jika dari aturan produksi tata bahasa bebas konteks
terdapat lebih dari satu cara membuat pohon
penurunan untuk memperoleh suatu untai, maka
dikatakan bahasa bebas konteks tersebut ambigu.
Contoh 9.3
Buktikan bahwa tata bahasa bebas konteks berikut
ambigu,
S  SbS | ScS | a
Penyelesaian:
Misal kita akan menurunkan untai ‘abaca’
Penurunan terkiri
Penurunan terkanan
S
S
S
a
b
S
a
c
c
S
S
S
S
a
a
Proses penurunan juga dapat
dilakukan dengan cara:
S  SbS  abS  abScS 
abacS  abaca
b
S
S
a
a
Atau:
S  ScS  Sca  SbSca 
Sbaca  abaca
Karena bentuk pohon penurunan sebelah kiri berbeda
dengan pohon penurunan sebelah kanan, maka
dikatakan bahwa tata bahasa bebas konteks
S  SbS | ScS | a ambigu
Latihan
Dari aturan produksi: S  aS | bS | a | b,
gambarkan pohon penurunan untuk
mendapatkan untai ‘abbab’.

Melakukan pembatasan sehingga tidak
menghasilkan pohon penurunan yang
memiliki kerumitan yang tak perlu atau
aturan produksi yang tidak berarti.
contoh :
S  AB | a
Aa
Kelemahannya : aturan produksi AB menjadi
tidak berarti karena B tidak memiliki
penurunan.


Untuk CFG berikut :
SA
AB
BC
CD
Da|A
Memiliki kelemahan terlalu panjang jalannya
padahal berujung pada S  a, produksi D 
A juga menyebabkan kerumitan.
Suatu tata bahasa bebas konteks dapat
disederhanakan dengan melakukan cara berikut
ini :
1. Penghilangan produksi useless
2. Penghilangan produksi unit
3. Penghilangan produksi ℰ
Produksi useless adalah :
 Produksi yang memuat simbol variabel yang
tidak memiliki penurunan yang akan
menghasilkan terminal-terminal seluruhnya.
 Produksi yang tidak akan pernah dicapai
dengan penurunan apapun dari simbol awal.
Contoh :
Terdapat aturan produksi sebagai berikut :
S -> aBD
B -> cD | Ab
D -> ef
A -> Ed
F -> dc

Analisa :
1) Pada aturan produksi A -> Ed, E tidak memiliki
penurunan. sehingga dapat dihilangkan
2) Aturan produksi F -> dc, redudan. sehingga
aturan produksi tersebut dapat dihilangkan
Sisa aturan produksi yang telah disederhanakan
adalah sebagai berikut :
S -> aBD
B -> cD | Ab
D -> ef

Analisa kembali :
aturan produksi B -> Ab, A tidak memiliki
penurunan. sehingga didapat penyederhanaan lagi
menjadi
S -> aBD
B-> cD
D -> ef
Kesimpulannya adalah bahwa produk useless yang
dihilangkan adalah :
A-> Ed
F -> dc
B-> Ab

Produksi Unit adalah produksi dimana ruas kiri
dan kanan aturan produksi hanya berupa satu
simbol variabel. Contoh : A -> B, C -> D
Contoh :
S  Sb
SC
CD
C  ef
D  dd

Kita lakukan penggantian berurutan mulai
dari aturan produksi paling dekat menuju
terminal- terminal
C  D  C  dd
S  C  S  dd | ef
sehingga aturan produksi setelah
penyederhanaan :
S  Sb
S  dd | ef
C  dd
C  ef
D  dd


Produksi ℰ adalah produksi dalam bentuk
𝜶𝜺
atau bisa dianggap sebagai produksi kosong.
Penghilangan produksi 𝜺 dilakukan dengan
penggantian produksi yang memuat variabel
yang bisa menuju produksi 𝜺 atau biasa
disebut nullable.
Contoh :
S  bcAd
A𝜺
Pada kasus diatas A nullable, maka variabel A
bisa ditiadakan.
Hasil penyederhanaan
S  bcd
Contoh :
S  bcAd | bcd
A  bd | 𝜺
Hasil penyederhanaan
S  bcAd | bcd
A  bd
CFG
Penghilangan
Produksi ℰ
Penghilangan
Produksi Unit
Penghilangan
produksi
useless
CFG yang sudah
disederhanakan
Contoh :
SA
AB
S  aBD
B  CD| ab
D  ef
A  Ed
C𝜺
F  dc
Sederhanakan.