Pertemuan 8 CONTEXT FREE GRAMMAR (CFG) Matakuliah
Download
Report
Transcript Pertemuan 8 CONTEXT FREE GRAMMAR (CFG) Matakuliah
Matakuliah
Tahun
: T0162/Teori Bahasa dan Automata
: 2009
Pertemuan 8
CONTEXT FREE GRAMMAR
(CFG)
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• << TIK-99 >>
• << TIK-99>>
2
Outline Materi
•
•
•
•
•
Materi 1
Materi 2
Materi 3
Materi 4
Materi 5
3
CONTEXT FREE GRAMMAR (CFG)
• Mendefinisikan programming language
• Formalitas konsep Parsing
• Mendefinisikan ekspresi aritmatik
Komponen CFG :
• Simbol Non-terminal / variabel
• Simbol Terminal (alphabet language)
4
CONTEXT FREE GRAMMAR (CFG)
• Production : aturan yang diperbolehkan
untuk melakukan substitusi variable
• Simbol Production :
• Context Free Grammar : setiap variabel
dapat disubstitusi sesuai dengan
produksinya, tidak tergantung pada posisi/
konteksnya.
• Satu simbol variabel sebagai start.
5
CFG
Definisi formal CFG :
G = (V, T, P, S)
dimana :
V
:
himpunan variabel
T
:
himpunan terminal
V T = (disjoint)
P
:
himpunan produksi : A
A
:
variabel
( V T )
S
:
start symbol
6
CONTEXT FREE GRAMMAR (CFG)
Contoh Production :
1. <kalimat>
2. <subjek>
3. <predikat>
4. <objek>
5. <kata benda>
6. <kata kerja>
< ….. >
<subjek> <predikat>
<kata benda>
<kata kerja> <objek>
<kata benda>
anjing nasi orang
makan memukul
: variabel
: pilihan
7
CONTEXT FREE GRAMMAR (CFG)
Aplikasi produksi di atas melalui proses
“derivasi” secara berulang akan
menghasilkan suatu kalimat yang utuh,
misalnya :
“orang makan nasi”,
“anjing makan anjing”,
“anjing memukul orang”
Kalimat yang salah:
“makan nasi orang”
8
Derivasi
• Derivasi : Proses penurunan produksi dari atas
ke bawah (head to body)
• Simbol Derivasi :
• Left Most Derivation (LMD): derivasi dilakukan
pada variable yang paling kiri.
• Right Most Derivation (RMD): derivasi dilakukan
pada variabel yang paling kanan.
9
CONTEXT FREE GRAMMAR (CFG)
Contoh Derivasi “anjing makan anjing” :
<kalimat> <subjek> <predikat>
<subjek> <kata kerja> <objek>
<subjek> <kata kerja> <kata
benda>
<subjek> <kata kerja> anjing
<subjek> makan anjing
<kata benda> makan anjing
anjing makan anjing
10
CONTEXT FREE GRAMMAR (CFG)
CFG untuk penulisan ekspresi aritmatik.
Produksi untuk ekspressi aritmatik :
EE+E
EE*E
E (E)
Ea|b|c|d
11
CONTEXT FREE GRAMMAR (CFG)
Menurunkan ekspresi aritmatika : “(a+b)*c”
E E E (E) E (E + E) E
(a + E) E (a + b) E
(a + b) c
• Notasi Derivasi berulang kali :
m
: Derivasi m kali secara berturutan
G
dalam grammar G
* : Derivasi 0 atau lebih kali secara berturutan
G
dalam grammar G
12
Misalkan :
1, 2, …, m string dalam (V T)*, m 1
1 2, 2 3, …, m m+1
maka :
m
*
1 m+1 atau 1
m+1
* : refleksive, transitive closure dari
13
CONTEXT FREE GRAMMAR (CFG)
Konvensi penggunaan simbol :
1. A, B, C, D, E dan S : variabel
2. Huruf kecil dan digit : terminal
3. X, Y, Z : terminal atau variabel
4. Huruf kecil : u, v, w, x, y, dan z : string
variabel
5. Huruf kecil : , , : sentential form (VT)*
Jika A 1, A 2, …, A n, ditulis
A 1 2 … k
14
Derivation Tree
Derivation Tree :
Penggambaran Derivasi dalam bentuk
tree
A XYZ
Tree :
A
X
Y
Z
15
Parse Tree
• Parse Tree untuk : - (id + id)
E
E
(
E
)
E
+
E
id
id
16
Language untuk CFG
Definisi :
• Language untuk CFG G :
* w}
L (G) = { w w T* dan S
dimana :
w T* : terminal
S * w : diturunkan dari S.
L adalah “Context Free Language” jika
terdapat CFG G, sehingga L = L(G).
17
Language untuk CFG
Contoh CFG :
G = (V, T, P, S)
dimana V = {S}
T = {a, b}
P = {S aSb, S ab }
Derivasi grammar:
S aSb aaSbb … anbn
Maka :
L(G) = { anbn n 1}
18
<< CLOSING>>
19