PENYEDERHANAAN TATA
BAHASA BEBAS KONTEKS
Sebuah bahasa formal adalah abstraksi terdiri dari
himpunan simbol-simbol dan aturan-aturan yang mana simbol-simbol tersebut bisa
dikombinasikan kedalam entitas yang disebut kalimat.
Bahasa adalah himpunan string-string dari
simbol-simbol untuk suatu alphabet atau rangkaian simbol-simbol yang mempunyai
makna.Bahasa Kosong adalah bahasa yang tidak terdiri dari string-string,
dinotasikan dengan ->. Bahasa kosong berbeda dengan bahasa yang terdiri dari
string kosong {ε}.
Melakukan pembatasan sehingga tidak menghasilkan
pohon penurunan yang memiliki kerumitan yang tidak perlu atau aturan produksi
yang tidak berarti. contoh Penyederhanaan tata bahasa dalam Teori bahasa dan
Otomata,berikut adalah :
Tujuan
Penyederhanaan
Melakukan
pembatasan sehingga tidak menghasilkan pohon penurunan yang memiliki kerumitan
yang tidak perlu atau aturan produksi yang tidak berarti.
Contoh 1 :
S -> AB | a
A -> a
• Aturan produksi S -> AB tidak berarti karena B tidak memiliki penurunan
Contoh 1 :
S -> AB | a
A -> a
• Aturan produksi S -> AB tidak berarti karena B tidak memiliki penurunan
Contoh 2 :
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.
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 ( tidak berguna )
2. Penghilangan produksi unit
3. Penghilangan produksi ε
1. Penghilangan produksi useless ( tidak berguna )
2. Penghilangan produksi unit
3. Penghilangan produksi ε
Penghilangan Produksi
Useless
Di sini produksi useless
didefinisikan sebagai :
• Produksi yang memuat symbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya.
• Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan ( berlebih ).
• Produksi yang memuat symbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal-terminal seluruhnya.
• Produksi yang tidak akan pernah dicapai dengan penurunan apapun dari simbol awal, sehingga produksi itu redundan ( berlebih ).
Contoh 1 :
S -> AB | C
B -> c | Ab
C -> bCb | adF | ab
F -> cFB
Dapat disimpulkan :
1. Aturan Produksi B
-> Ab ( A tidak memiliki penurunan)
2. Aturan Produksi F
-> cFB (F tidak memiliki penurunan yang menuju simbol terminal)
3. Aturan Produksi C
-> adF (F tidak memiliki penuruanan)
Maka produksi yang
useless :
B -> Ab
F -> cFB
C -> adF
Maka tata Bahasa bebas
konteks setelah disederhanakan menjadi:
S -> aB | C
B -> e
C -> bcb | ab
Contoh 2 :
S-> Aa | B
A->ab | D
B->b | E
C-> bb
E-> aEa
Dapat disimpulkan :
1) Aturan produksi A -> D, simbol variabel D tidak memiliki penurunan.
2) Aturan produksi C -> bb, Penurunan dari simbol S, dengan jalan manapun tidak akan pernah mencapai C.
3) Aturan produksi E -> aEa, Simbol variabel E tidak memiliki aturan produksi yang menuju terminal.
4) Konsekuensi no (3) Aturan produksi B -> E, simbol variabel E tidak memiliki penurunan.
1) Aturan produksi A -> D, simbol variabel D tidak memiliki penurunan.
2) Aturan produksi C -> bb, Penurunan dari simbol S, dengan jalan manapun tidak akan pernah mencapai C.
3) Aturan produksi E -> aEa, Simbol variabel E tidak memiliki aturan produksi yang menuju terminal.
4) Konsekuensi no (3) Aturan produksi B -> E, simbol variabel E tidak memiliki penurunan.
Maka produksi yang
useless :
A -> D
C -> bb
C -> bb
E -> aEa
B -> E
Maka tata Bahasa bebas
konteks setelah disederhanakan menjadi:
S -> Aa | B
A -> ab
B -> b
Penghilangan Produksi
Unit
• Produksi dimana ruas
kiri dan kanan aturan produksi hanya berupa satu simbol variabel, misalkan: A -> B, C > D.
• Keberadaannya membuat tata bahasa memiliki kerumitan yang tak perlu.
• Keberadaannya membuat tata bahasa memiliki kerumitan yang tak perlu.
• Penyederhanaan
dilakukan dengan melakukan penggantian aturan produksi unit.
Contoh 1 :
S -> Aa | B
B -> A | bb
A -> a | bc | b
Langkah – Langkah penggantian
yang dilakukan :
S -> Aa’
B -> bb
A -> a
A -> bc
Sehingga aturan produksi setelah
penyederhanaan :
S -> Aa | a | bc | bb
B -> a | bc | bb
A -> a | bc | bb
Contoh 2 :
S -> A | aa
A -> B
B -> c | b
C -> D | ab
D -> b
Langkah – Langkah
penggantian yang dilakukan :
C -> D | ab menjadi C
-> b | ab
B -> c | b
menjadi B -> b | ab , B -> ab | b
A -> B menjadi A ->
ab | b
S -> A menjadi S ->
ab | b | Aa
Sehingga aturan produksi
setelah penyederhanaan :
S -> ab | b | Aa
A -> ab | b
B -> ab | b
C -> b | ab
D -> b
Penghilangan Produksi ε
·
Produksi ε adalah produksi dalam bentuk
α -> ε atau bisa dianggap
sebagai produksi kosong ( empty ).
Penghilangan produksi ε
dilakukan dengan melakukan penggantian produksi yang memuat variabel yang bisa
menuju produksi ε, atau biasa disebut nullable.
Contoh 1 :
S -> AB
A -> bA | aca |
ε
B -> bA | BB |
ε
C -> ε
Variabel yang nullable
adalah A, B, C. dari S -> AB maka S juga disebut nullable
S -> AB menjadi S
-> AB | A | B
A -> abB menjadi A
-> abB | ab
A -> aca menjadi A -> aa
B -> bA menjadi B
-> bA | b
B -> BB menjadi B
-> BB | B
C -> ε , B -> ε dan
A -> ε maka dihafus
Hasil penyederhanaan
menjadi :
S -> AB | A | B
A -> abB | ab |
aa
B -> bA | b |
BB | B
Contoh 2 :
S -> aBcD | bb
| ε
A -> cDa | cf
B -> b | af | ε
C -> Bbc | ea
Variabel yang nullable
adalah S, B, D.
S -> aBcD menjadi S
-> aBc | ac
A -> cDa menjadi A
-> Ca
C -> Bbc menjadi C
-> Bbc | bc
S -> ε, B -> ε, dan
D -> ε maka dihafus
Hasil penyederhanaan
menjadi :
S -> aBc | ac | bb | A
A -> Ca | ef
B -> b | Af
C -> BbC | bc | εa
Latihan Kompleks
Lakukan Penyederhanaan
pada Himpunan produksi dengan penghilangan Empty + Unit + Useless sekaligus
S -> Baca
B -> Ac
A -> dc | ε
C -> D | ε
D -> d
Hasil
Penyederhanaan Empty (ε)
Langkah 1, hilangkan ε
dan C
S -> BACa | Baa
B -> AC | A
A -> dC | ε | d
C -> D
D -> d
Lankah 2, hilangkan ε
pada A
S -> BACa | Baa
B -> AC | A
A -> dC | ε | d
C -> D
D -> d
Langkah 3, hilangkan ε pada
B
S -> BACa | Baa | Ba |
Aca | Aa | Ca | a
B -> AC | A | C
A -> dC | d
C -> D
D -> d
-selesai- pada Langkah Penyederhanaan
empty (ε)
Hasil Penyederhanaan Unit
C -> diubah menjadi C
- d
B -> diubah menjadi B – d
B -> diubah mejadi B –
dC | d
Jadi
S -> BaCa | Baa |
BCa | Ba | Aca |
Aa | Ca | a
B -> AC | dC | d
A -> dC | d
C -> d
D -> d
-selesai pada Penyederhanaan Unit
Karena syarat Useless
tidak ada yang terpenuhi maka langkah penyederhanaan selesai.
Berikut ini video
penjelasan dari Latihan soal diatas :
Tidak ada komentar:
Posting Komentar