Teori-Bahasa-dan-Otomata Lecture #2 Konsep Grammar & Hirarki Chomsky
Outline Konsep Dasar Aturan Produksi Grammar & Chomsky
TERMINOLOGI BAHASA Manfaat bahasa adalah sebagai media komunikasi yang menggunakan sekumpulan simbol dan dikombinasikan menurut aturan sintaksis tertentu (grammar). Sementara Semantik bahasa mendefinisikan bagaimana sebuah kalimat dapat diinterpretasikan/diartikan secara benar (sesuai dengan grammar-nya). Terminologi penting di dalam memahami teori bahasa adalah pemahaman terhadap alphabet dan string.
TERMINOLOGI BAHASA (cont …) Bahasa = { Kalimat } Kalimat = { Kata atau String } Kata atau String = { Karakter } Karakter = { Alphabet Digit Symbol } Bahasa = { { {Alphabet Digit Symbol } } }
Konsep Dasar Tata bahasa (grammar) dibatasi oleh aturan-aturan produksi Aturan produksi adalah pusat dari tata bahasa yang menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya
Konsep Dasar (Cont …) Derivasi adalah proses pembentukan sebuah kalimat atau sentensial. Lambang: α ⇒ β Sentensial adalah string yang tersusun atas simbol-simbol terminal atau simbol-simbol non terminal atau campuran keduanya.
Konsep Dasar (Cont …) Sebuah produksi dilambangkan sebagai , artinya : dalam sebuah derivasi dapat dilakukan penggantian simbol dengan simbol . Simbol dalam produksi berbentuk disebut ruas kiri produksi sedangkan simbol disebut ruas kanan produksi. Pengertian terminal berasal dari kata terminate (berakhir), maksudnya derivasi berakhir jika sentensial yang dihasilkan adalah sebuah kalimat (yang tersusun atas simbol-simbol terminal itu). Pengertian non terminal berasal dari kata not terminate (belum/tidak berakhir), maksudnya derivasi belum/tidak berakhir jika sentensial yang dihasilkan mengandung simbol non terminal.
Konsep Dasar (Cont …) Simbol Terminal huruf kecil awal alfabet : a, b, c simbol operator +, −, dan × simbol tanda baca (, ), dan ; string yang tercetak tebal if, then, else. Simbol NonTerminal huruf besar awal alfabet : A, B, C Huruf S sebagai simbol awal String tercetak miring expr dan stmt
Aturan Produksi Contoh : T menghasilkan a T → a E menghasilkan T atau Semua aturan produksi dinyatakan dalam bentuk “ α β “ (bisa dibaca α menghasilkan β, atau dibaca α menurunkan β) Contoh : T → a T menghasilkan a E menghasilkan T atau E menghasilkan T + E E → T │ T + E
Metode Pendefinisian Bahasa (Cont …) Metode untuk mendefinisikan bahasa secara berhingga (untuk bahasa yang tidak berhingga) adalah melalui : Grammar kita dapat membangun sebuah kalimat dengan sintaksis yang benar sesuai dengan kaidah yang telah ditetapkan pada serangkaian aturan yang disebut production(s) Recognizer atau Finite Automata diberikan sebuah input string, maka recognizer akan melakukan penelusuran karakter per karakter untuk mengetahui apakah input string tersebut merupakan anggota suatu bahasa tertentu atau tidak
Metode Pendefinisian Bahasa (Cont …) Namun dalam kenyataannya, kedua metode tersebut sebenarnya teraplikasi untuk tujuan yang berbeda : Grammar lebih berfungsi sebagai pembangkit string dan sentence. Recognizer atau Finite Automata sesuai namanya, recognizer lebih berfungsi sebagai pengenal string atau sentence.
GRAMMAR Definisi konseptual : Grammar adalah sebuah sistem matematis yang digunakan untuk mendefinisikan bahasa. Definisi Formal Grammar G didefinisikan sebagai pasangan 4 tuple : VN, VT, S, dan Q, dan dituliskan sebagai G(VN, VT, 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
GRAMMAR (Cont ….) Contoh : Sub-himpunan nonterminal : VN = {I, L, D} Sub-himpunan terminal : VT = {a, b, c, …, z, 0, 1, 2, …, 9} Sub-himpunan start symbol : S = I Sub-himpunan poduction : = {I L, I IL, I ID, L a, L b, …, L z, D 0, D 1, D 2, …, D 9}
GRAMMAR (Cont ….) Contoh : Sebuah grammar G = (VN, VT, S, ) untuk pembentukan bilangan bulat positif. VN = {ANGKA, DIGIT_AWAL, DIGIT_LAIN} VT = {0, 1, 2, …, 9} S = ANGKA = {ANGKA DIGIT_AWAL, DIGIT_AWAL DIGIT_AWAL DIGIT_LAIN, DIGIT_AWAL 1, DIGIT_AWAL 2, …, DIGIT_AWAL 9, DIGIT_LAIN 0, DIGIT_LAIN 1, …, DIGIT_LAIN 9} Atau himpunan production di atas dapat pula diekspresikan dalam bentuk : ANGKA DIGIT_AWAL DIGIT_AWAL DIGIT_AWAL DIGIT_LAIN | 1 | 2 | … | 9 DIGIT_LAIN 0 | 1 | 2 | … | 9
GRAMMAR & Chomsky Berdasarkan komposisi bentuk ruas kiri dan ruas kanan produksinya ( ), Noam Chomsky mengklasifikasikan 4 tipe grammar : Grammar tipe ke-0 : Unrestricted Grammar (UG), Ciri : , (VTVN)*, > 0 Grammar tipe ke-1 : Context Sensitive Grammar (CSG), Ciri : , (VTVN)*, 0 < Grammar tipe ke-2 : Context Free Grammar (CFG), Ciri : V, (VTVN)* Grammar tipe ke-3 : Regular Grammar (RG), Ciri : V, {VT, VTVN} atau V, {VT, VNVT}, Ciri-ciri RG sering dituliskan sebagai : V, {a, bC} atau V, {a, Bc}
GRAMMAR & Chomsky (Cont ….) Grammar Klas 0 : Unrestricted Grammar Aturan-aturan sintaktik (productions) yang digunakan untuk membentuk kalimat tidak mempunyai batasan yang jelas. Contoh : G = ({S, A, B, C, D}, {a, b}, S, ), dengan adalah : S CD Aa aA C e C aCA | bCB Ab bA D e AD aD Ba aB BD bD Bb bB Bahasa yang didefinisikan grammar di atas adalah : L(G) = { ww | w {a, b}}
GRAMMAR & Chomsky (Cont ….) Grammar Klas 1 : Context-Sensitive Grammar Grammar dengan production berbentuk , dimana || || Contoh : G = ({S, A, B, C, D}, {a, b}, S, ), dengan adalah : S aSBC | aBC bB bb bC bc CB BC cC cc Misal diberi input string a2b2c2, maka proses derivasi akan tampak seperti berikut : S aSBC aabCBC aabBCC aabbCC aabbcC aabbcc
GRAMMAR & Chomsky (Cont ….) Grammar Klas 2 : Context-Free Grammar (CFG) Grammar dengan production yang berbentuk , dimana || || dengan Vn dan || = 1. Dengan demikian, production-production pada klas grammar ini hanya memiliki satu non-terminal di sisi kiri setiap productionnya. Bahasa yang didefinisikan oleh CFG ini disebut Context-Free Language. CFG merupakan satu-satunya klas grammar yang telah memiliki algoritma parsing yang optimal. Sehingga hampir semua bahasa pemrograman menggunakan CFG untuk mendefinifikan aturan-aturan sintaktik bahasanya. Contoh : Bahasa = { an b an | n 1 } didefinisikan melalui grammar berikut : S aCa C aCa | b Derivasi untuk input string a3 b a3 adalah sebagai berikut : S aCa aaCaa aaaCaaa aaabaaa
GRAMMAR & Chomsky (Cont ….) Grammar Klas 3 : Regular Grammar Grammar dengan production yang berbentuk , dimana || || dengan Vn dan || = 1. Sedangkan mempunyai bentuk aB atau a (a VT dan B VN). Bahasa yang didefinisikan oleh Regular Grammar ini disebut Regular Language. Bahasa pemrograman yang menggunakan aturan sintaktik bahasa regular ini antara lain adalah javascript, perl, dll. Contoh : Bahasa = { an b am | n 1 } didefinisikan melalui grammar berikut : S aS | aB C aC | a B bC Derivasi untuk input string a3 b a2 adalah sebagai berikut : S aS aaS aaaB aaabC aaabaC aaabaa
GRAMMAR & Chomsky (Cont ….) Si Kucing Kecil Menendang Bola Besar
GRAMMAR & Chomsky (Cont ….) Pohon sintaks dapat dituliskan dalam bentuk sebuah produksi : <Kalimat> <Subjek><Predikat> <Subjek> <Kata Sandang><Kata Benda><Kata Keadaan> <Predikat> <Kata Kerja><Objek> <Objek> <Kata Benda><Kata Keadaan> <Kata Sandang> Si <Kata Benda> Kucing | Bola <Kata Keadaan> Kecil | Besar <Kata Kerja> Menendang Untai terminal dapat dibentuk dengan melakukan sederetan produksi menggunakan produksi yang ada. Proses ini disebut dengan Derivasi.
GRAMMAR & Chomsky (Cont ….) Derivasi untuk untai di atas adalah : <Kalimat> <Subjek><Predikat> <Kata Sandang><Kata Benda><Kata Keadaan><Predikat> <Kata Sandang><Kata Benda><Kata Keadaan><Kata Kerja> <Objek> <Kata Sandang><Kata Benda><Kata Keadaan><Kata Kerja> <Kata Benda><Kata Keadaan> Si Kucing Kecil Menendang Bola Besar Untai lain yang bisa terbentuk : Si Bola Kecil Menendang Kucing Besar Si Kucing Besar Menendang Bola Kecil, dll.
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