GRAMMER ATAU TATA BAHASA Grammer adalah sebagai kumpulan
GRAMMER ATAU TATA BAHASA
• Grammer adalah sebagai kumpulan dari himpunan-himpunan variabel, simbol 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 G 1 dengan Q 1 = {S → a. B, B → b}. Ruas kiri semua produksinya terdiri dari sebuah VN maka G 1 kemungkinan tipe CFG atau RG. Selanjutnya karena semua ruas kanannya terdiri dari sebuah VT atau string VT VN maka G 1 adalah RG
• Grammar G 2 dengan Q 2 = {S → Ba, B → Bb, B → b}. Ruas kiri semua produksinya terdiri dari sebuah VN maka G 2 kemungkinan tipe CFG atau RG. Selanjutnya karena semua ruas kanannya terdiri dari sebuah VT atau string VN VT maka G 2 adalah RG
• Grammar G 3 dengan Q 3 = {S → Ba, B → b. B, B → b}. Ruas kiri semua produksinya terdiri dari sebuah VN maka G 3 kemungkinan tipe CFG atau RG. Selanjutnya karena ruas kanannya mengandung string VT VN (yaitu b. B) dan juga string VN VT (Ba) maka G 3 bukan RG, dengan kata lain G 3 adalah CFG
• Grammar G 4 dengan Q 4 = {S → a. Ab, B → a. B}. Ruas kiri semua produksinya terdiri dari sebuah VN maka G 4 kemungkinan tipe CFG atau RG. Selanjutnya karena ruas kanannya mengandung string yang panjangnya lebih dari 2 (yaitu a. Ab) maka G 4 bukan RG, dengan kata lain G 4 adalah CFG
• Grammar G 5 dengan Q 5 = {S → a. A, S → a. B, a. Ab → a. BCb}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 (yaitu a. Ab) maka G 5 kemungkinan tipe CSG atau UG. Selanjutnya karena semua ruas kirinya lebih pendek atau sama dengan ruas kananya maka G 5 adalah CSG
• Grammar G 6 dengan Q 6 = {a. S → ab, SAc → bc}. Ruas kirinya mengandung string yang panjangnya lebih dari 1 maka G 6 kemungkinan tipe CSG atau UG. Selanjutnya karena terdapat ruas kirinya yang lebih panjang daripada ruas kananya (yaitu SAc) maka G 6 adalah UG
Menentukan Grammar Sebuah Bahasa • Tentukan sebuah grammer regular untuk bahasa L 1 = { an | n ≥ 1} • Jawab : Q 1 (L 1 ) = {S → a. S | a} S a atau S aaa
• Tentukan sebuah grammer bebas konteks untuk bahasa : L 2 : 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) Q 2 (L 2 ) = {S → J|GS|JS, G → 0|2|4|6|8, J → 1|3|5|7|9}
• Tentukan sebuah gramar bebas konteks untuk bahasa : L 3 = 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) Q 3 (L 3 ) = {S → H|HT, T → AT|HT|H|A, H → a|b|c|…, A → 0|1|2|…}
• Contoh : • G 1 : VT = {I, Love, Miss, You}, V = {S, A, B, C}, P = {S ABC, A I, B Love | Miss, C You} • S ABC • I love. You • L(G 1)={I love You, I Miss You}
• Tentukan apakah produksi-produksi berikut memenuhi aturan grammer Reguler : A b B bd. B B C B b. C B Ad B bcdef A a. Sa A a. SS Ad d. B
• Tentukan apakah produksi-produksi berikut memenuhi aturan grammer Bebas Konteks : A a. Sa B Ace B ab B bcdef. G B a. SS A BCDEF A AAAA Ad d. B
• Tentukan apakah produksi-produksi berikut memenuhi aturan grammer Konteks Sensitive : A bcdef. G B a. Sa B a. SS B BCDEF Ad d. B ad b ab. C DE abc. Def ghijkl AB cde AAA BBB
• Tentukan apakah produksi-produksi berikut memenuhi aturan grammer Unrestricted : ad b ab. C DE AB cde ABCDEFG h b. A CDEFG
- Slides: 24