Year : 2012
Session 10
Greibach Normal Form
Learning Outcomes
At the end of this meeting, students are
Expected will be able to:
3
GREIBACH NORMAL FORM
Theorem : (Greibach Normal Form)
Setiap CFL tanpa dapat dihasilkan oleh suatu CFG
yang produksinya berbentuk :
A a
4
GNF
Konversi CFG ke bentuk GNF ekuivalen.
1. Bentuk produksi:
A a , dengan dalam (VT)*
Substitusi semua terminal dalam dengan variabel.
Contoh : A aaB
Ubah menjadi : A aCB (GNF)
C a (GNF)
6
GNF
2. Bentuk produksi :
A B (dimulai dengan variabel)
Jika produksi B sudah diawali dengan terminal, gunakan untuk
mensubstitusi variabel B di atas.
Contoh : A BC
B aB | b
Diubah menjadi:
A aBC | bC (GNF)
B aB | b (GNF)
7
• Lemma G1 :
Misalkan G = (V,T,P,S) suatu CFG.
A 1B2 suatu produksi dalam P dan
B 12…r himpunan produksi B.
Misalkan G1 = (V,T,P1,S) diperoleh dengan
menghilangkan semua produksi dalam
bentuk A 1B2 dari P dan menambahkan
produksi dalam bentuk :
A 112122…1r2
8
3. Bentuk produksi :
A A (diawali dengan variabel yang sama). Dalam hal ini
tidak dapat diubah hanya dengan substitusi, tetapi harus
mengintroduksi variabel baru.
• Lemma G2 :
Misalkan G = (V,T,P,S) suatu CFG.
A A1A2…Ar adalah himpunan
sebagian produksi A, sedangkan produksi
lainnya dalam bentuk :
A 12…s
9
Misalkan G1 = (V {B},T,P1,S} dibentuk dengan
menambahkan variabel B ke V dan mengganti semua
produksi A dengan produksi dalam bentuk :
1. 1js
A
j
A B
j
2. B i 1 i r
B iB
maka L(G1) = L(G)
10
Pembuktian Lemma G2 :
• Derivasi leftmost dari G untuk produksi
A AI berakhir dengan produksi
A j sebagai berikut :
A Ai1 Ai2i1 … Aipip-1 …i1
j ipip-1…i1
11
Dalam Parse-Tree kedua derivasi di atas
berbentuk :
A A
i1 j
A B
i2 ip
A B
ip i2
A B
j i1
G G1
12
Contoh :
Ubah produksi grammar berikut ke dalam bentuk
Greibach Normal Form :
G = ({A1, A2, A3}, {a, b}, P, A1)
Urutan A1<A2<A3
dimana P terdiri dari :
1. A1 A2 A3 A1 < A2 Ok
2. A2 A3 A1 b A2 < A3 Ok
3. A3 A1 A2 a A3 > A1 subtitusi
sampai ketemu Ai < Aj
13
14
15
Selanjutnya aplikasi Lemma G2 pada
produksi (3) diperoleh :
A3 A3 A1 A3 A2 b A3 A2 a
I 1 2
1. A3 b A3 A2 | a
2. A3 b A3 A2 B3 | a B3
3. B3 A1 A3 A2
4. B3 A1 A3 A2 B3
16
Dengan demikian P menjadi :
1. A1 A2 A3
2. A2 A3 A1 b
3. A3 bA3 A2 B3 aB3 bA3 A2 a
4. B3 A1 A3 A2 A1 A3 A2 B3
17
18
Tahap 2 :
Dengan menggunakan produksi (3) secara
substitusi ke dalam produksi lainnya di peroleh :
2. A2 bA3 A2 B3 A1 aB3 A1 bA3 A2 A1
a A 1 b
1. A1 A2 A3
21