GRAMMER ATAU TATA BAHASA

Download Report

Transcript GRAMMER ATAU TATA BAHASA

GRAMMER ATAU
TATA BAHASA
• Grammer adalah sebagai kumpulan dari
himpunan-himpunan variabel, simbolsimbol terminal, simbol awal, yang dibatasi
oleh aturan-aturan produksi.
• Aturan produksi merupakan pusat dari
grammer yang menspesifikasikan
bagaimana suatu grammer melakukan
transformasi suatu string atau karakter ke
bentuk lainnya.
• Semua aturan produksi dinyatakan dalam
bentuk “ α  β “ (bisa dibaca α
menghasilkan β, atau dibaca α
menurunkan β)
• α merupakan simbol-simbol pada ruas kiri
aturan produksi, sedangkan β merupakan
simbol-simbol ruas kanan aturan produksi
• Simbol-simbol tersebut dapat berupa
simbol terminal (Vt) atau simbol NONTerminal (Vn)/Variabel.
• Simbol Vn adalah simbol yang masih
dapat diturunkan, biasanya identik dengan
huruf besar (‘A’,’B’,’C’)
• Simbol Vt adalah simbol yang sudah tidak
dapat diturunkan lagi, biasanya identik
dengan huruf kecil (‘a’,’b’,’c’)
• Dengan menerapkan aturan produksi,
suatu grammer bisa menghasilkan
sejumlah string.
• Contoh aturan produksi :
E  T | T+E | T * E
Ta
• Dari aturan produksi di atas, menghasilkan
suatu variabel a atau variabel ekspresi
a+a atau a*a
• ET
Ta
• E  T+E
E  a+T
E  a+a
• E  T*E
E  a*T
E  a*a
Grammar dan Klasifikasi
Chomsky
Grammar G didefinisikan sebagai pasangan 4
tuple : VT , VN , S, dan Q, dan dituliskan
sebagai G(VT , VN , S, Q), dimana :
VT : himpunan simbol-simbol terminal (atau
himpunan token-token, atau alfabet)
VN : himpunan simbol-simbol non terminal
S Є VN : simbol awal (atau simbol start)
Q : himpunan produksi
Berdasarkan komposisi bentuk ruas kiri dan
ruas kanan produksinya (α → β), Noam
Chomsky mengklasifikasikan 4 tipe grammar :
• Grammar tipe ke-0 : Unrestricted Grammar (UG)
Ciri : α, β Є (VT | VN )*, |α|> 0 atau |α|> |β|
• Grammar tipe ke-1 : Context Sensitive Grammar
(CSG)
Ciri : α, β Є (VT | VN )*, 0 < |α| ≤ |β|
• Grammar tipe ke-2 : Context Free
Grammar (CFG)
Ciri : α Є VN , β Є (VT | VN )*
• Grammar tipe ke-3 : Regular Grammar
(RG)
Ciri : α Є VN , β Є {VT , VT VN } atau α Є
VN , β Є {VT , VN VT }
Contoh Analisa Penentuan Type
Grammar
• Grammar G1 dengan Q1 = {S → aB,
B → bB, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah VN maka
G1 kemungkinan tipe CFG atau RG.
Selanjutnya karena semua ruas kanannya
terdiri dari sebuah VT atau string
VT VN maka G1 adalah RG
• Grammar G2 dengan Q2 = {S → Ba,
B → Bb, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah VN maka
G2 kemungkinan tipe CFG atau RG.
Selanjutnya karena semua ruas kanannya
terdiri dari sebuah VT atau string
VN VT maka G2 adalah RG
• Grammar G3 dengan Q3 = {S → Ba,
B → bB, B → b}. Ruas kiri semua
produksinya terdiri dari sebuah VN maka
G3 kemungkinan tipe CFG atau RG.
Selanjutnya karena ruas kanannya
mengandung string VT VN (yaitu bB) dan
juga string VN VT (Ba) maka G3 bukan
RG, dengan kata lain G3 adalah CFG
• Grammar G4 dengan Q4 = {S → aAb,
B → aB}. Ruas kiri semua produksinya
terdiri dari sebuah VN maka G4
kemungkinan tipe CFG atau RG.
Selanjutnya karena ruas kanannya
mengandung string yang panjangnya lebih
dari 2 (yaitu aAb) maka G4 bukan RG,
dengan kata lain G4 adalah CFG
• Grammar G5 dengan Q5 = {S → aA,
S → aB, aAb → aBCb}. Ruas kirinya
mengandung string yang panjangnya lebih
dari 1 (yaitu aAb) maka G5 kemungkinan
tipe CSG atau UG. Selanjutnya karena
semua ruas kirinya lebih pendek atau
sama dengan ruas kananya maka G5
adalah CSG
• Grammar G6 dengan Q6 = {aS → ab,
SAc → bc}. Ruas kirinya mengandung
string yang panjangnya lebih dari 1 maka
G6 kemungkinan tipe CSG atau UG.
Selanjutnya karena terdapat ruas kirinya
yang lebih panjang daripada ruas kananya
(yaitu SAc) maka G6 adalah UG
Menentukan Grammar Sebuah
Bahasa
• Tentukan sebuah grammer regular untuk
bahasa L1 = { an | n ≥ 1}
• Jawab :
Q1 (L1 ) = {S → aS | a}
S  a atau
S  aS  aa atau
S  aS  aaS  aaa
• Tentukan sebuah grammer bebas konteks untuk
bahasa :
L2 : himpunan bilangan bulat non negatif ganjil
• Jawab :
Langkah kunci : digit terakhir bilangan harus
ganjil.
Buat dua buah himpunan bilangan terpisah :
genap (G) dan ganjil (J)
Q2 (L2 ) = {S → J|GS|JS, G → 0|2|4|6|8,
J → 1|3|5|7|9}
• Tentukan sebuah gramar bebas konteks
untuk bahasa :
L3 = himpunan semua identifier yang sah
menurut bahasa pemrograman Pascal
dengan batasan : terdiri dari simbol huruf
kecil dan angka, panjang identifier boleh
lebih dari 8 karakter
• Jawab :
Langkah kunci : karakter pertama identifier
harus huruf.
Buat dua buah himpunan bilangan
terpisah : huruf (H) dan angka (A)
Q3 (L3 ) = {S → H|HT, T → AT|HT|H|A, H
→ a|b|c|…, A → 0|1|2|…}
• Contoh :
• G1 : VT = {I, Love, Miss, You}, V =
{S,A,B,C}, P = {S  ABC, A I, B Love
| Miss, C You}
• S  ABC
•  I loveYou
• L(G1)={I love You, I Miss You}
• Tentukan apakah produksi-produksi
berikut memenuhi aturan grammer
Reguler :
Ab
B  bdB
BC
B  bC
B  Ad
B  bcdef
A  aSa
A  aSS
Ad  dB
• Tentukan apakah produksi-produksi
berikut memenuhi aturan grammer Bebas
Konteks :
A  aSa
B  Ace
B  ab
B  bcdef
B  bcdefG
B  aSS
A  BCDEF
A  AAAA
Ad  dB
• Tentukan apakah produksi-produksi berikut
memenuhi aturan grammer Konteks Sensitive :
A  bcdefG
B  aSa
B  aSS
B  BCDEF
Ad  dB
ad  b
abC  DE
abcDef  ghijkl
AB  cde
AAA  BBB
• Tentukan apakah produksi-produksi
berikut memenuhi aturan grammer
Unrestricted :
ad  b
abC  DE
AB  cde
ABCDEFG  h
bA  CDEFG