Definisi Grammar Bahasa adalah himpunan kata-kata atau kalimat yang telah disepakati, contoh : {makan, tidur, bermain, belajar} Bahasa Indonesia {shit, sheet, damn, kiss, smell} Bahasa Inggris {konichiwa, kombanwa, arigato, hon, susumu} Bahasa Jepang {qirdun, asamaun, samaun, adzab} Bahasa Arab Tata Bahasa adalah Himpunan dari aturan-aturan struktural yang didefinisikan dan berlaku pada suatu kalimat yang dibentuk dalam suatu bahasa [2] Cara mendeskripsikan bahasa [5] Pertemuan : 4 Dosen Pembina :Danang Junaedi IF-UTAMA 1 IF-UTAMA 2 Definisi Tata Bahasa adalah (contd) Kumpulan dari himpunan himpunan variabel, simbol simbol terminal, simbol awal dan aturanaturan produksi, dimana Simbol terminal : simbol yg tidak dapat diturunkan lagi (biasanya ditulis dalam huruf kecil) Aturan produksi : Menspesifikasikan bagaimana suatu tata bahasa melakukan transformasi suatu string ke bentuk lainnya. Simbol Non terminal (Variabel) : simbol yang masih bisa diturunkan lagi (biasanya ditulis dalam huruf kapital) Dua sifat penting yang harus dipenuhi oleh suatu tata bahasa [2] Simbol terminal dan non terminal harus disjoint (tidak memiliki elemen yang sama) Setiap aturan produksi harus memuat paling sedikit satu simbol nonterminal pada anggota bagian kiri. IF-UTAMA 3 IF-UTAMA 4 IF-UTAMA 1
Manfaat & Motivasi Tata Bahasa Motivasi menjelaskan bahasa alami, contoh bahasa alami <kalimat> <subyek> <predikat> <obyek> <subyek> <kata benda> <predikat> <kata kerja> <obyek> <kata benda> <kata benda> dosen, mahasiswa <kata kerja> mengajar kalimat atau bahasa alami yang dihasilkan salah satunya adalah dosen mengajar mahasiswa Manfaat mendeskripsikan aturan tata bahasa sebuah bahasa pemrograman seperti C, Pascal dts. IF-UTAMA 5 Tahun 1959 ahli bahasa bernama Noam Chomsky melakukan penggolongan tingkat bahasa (Hirarki Chomsky) : Bahasa Mesin Otomata Batasan aturan produksi Regular / tipe3 Bebas Konteks / context free / tipe2 Context Sensitive / tipe1 Unrestricted / Phase structure / Natural languange / tipe 0 Finite State Automata meliputi Deterministic Finite Automata (DFA) & Non Detereministik Finite Automata (NFA) Push Down Automata (PDA) Linier Bounded Automata Mesin Turing α adalah sebuah simbol variabel β maksimal memiliki sebuah simbol variabel yang bila ada terletak diposisi paling kanan α berupa sebuah simbol variabel α β Tidak ada batasan IF-UTAMA 6 Definisi Formal Regular Grammar [3] Contoh 1 : Regular Grammar A B (dibaca A menghasilkan B atau A menurunkan B) B = (Vt)* U Vn Kumpulan aturan produksi : A B 1 A B 2.. A B k Bisa ditulis menjadi A B 1 B 2.. B k IF-UTAMA 7 G = {{S,A,B},{a,b,ε},S,P} S ab S ba S ε A abas B babs S ab ba ε A abas B babs Studi Kasus : Mana yang termasuk alfabet non terminal, alfabet terminal, simbol awal, dan himpunan aturan produksi dari bahasa formal pada contoh ini??? IF-UTAMA 8 IF-UTAMA 2
Definisi Formal Context Free Grammar [4] Context Free Languages (CFL) [1] A B (dibaca A menghasilkan B atau A menurunkan B) B = (Vn U Vt)* IF-UTAMA 9 The language generated by a CFG G, denoted by L(G), is : L(G) = {ω ω T* and S ω } Therefore, * every string consists solely of terminals, G and every string can be derived from S It is called a context free language (CFL). Notice that: We must start with the start symbol We can use any production any number of times. The final string can only contain terminals. IF-UTAMA 10 Contoh 2 : Context Free Grammar Definisi Formal Context Sensitive Grammar G = {{S},{a,b},S,P} S asb S ab S asb ab G = {{E},{E},E,P} E E + E E E * E E (E) E id E E+E E*E (E) id Studi Kasus : Mana yang termasuk alfabet non terminal, alfabet terminal, simbol awal, dan himpunan aturan produksi dari bahasa formal pada contoh ini??? A B (dibaca A menghasilkan B atau A menurunkan B) B = (Vn U Vt)*, dimana panjang B A Contoh aturan produksi pada Context Sensitive Grammar S as S ab asb asab IF-UTAMA 11 IF-UTAMA 12 IF-UTAMA 3
Aturan Ekspresi Reguler ke Tata Bahasa Reguler Linier Kanan 4 1. Bacalah ER dari kiri ke kanan, tulis X, X sebagai simbol awal. 2. Jika yang terbaca adalah a, tuliskan a. 3. Jika yang terbaca a*, tuliskan simbol non terminal baru, misalnya Y, kemudian tuliskan Y ay. 4. Jika yang terbaca (a + b), tuliskan Y, kemudian tuliskan Y az bz dan Z. Y dan Z adalah simbol non terminal baru. Ruas kanan dari Z ditentukan oleh hasil pembacaan ER berikutnya. 5. Jika yang terbaca (a + b)*, tuliskan simbol non terminal baru, misalnya Y, kemudian tuliskan Y ay by. 6. Tuliskan ε jika seluruh ER sudah habis terbaca. 7. Jika yang terbaca berbentuk (r + s), di mana r atau s berbentuk a* atau (a + b)*, tuliskan RY SY, kemudian tuliskan Y, R, dan S. Ruas kanan dari aturan Y ditentukan oleh hasil pembacaan ER berikutnya. Ruas kanan aturan R dan S.. ditentukan dengan jalan menganggap ekspresi r dan s sebagai ekspresi terpisah. Contoh Ekspresi Reguler ke Tata Bahasa Reguler Linier Kanan 4 ER = 001*0 Menurut aturan 2, 00 menghasilkan X 00. Menurut aturan 3, 1* menghasilkan X 00Y, Y 1Y. Menurut aturan 2, 0 menghasilkan 0 sehingga Y 1Y 0 Menurut aturan 6, tuliskan ε sehingga X 00Y, Y 1Y 0. Jadi ; Vn = {X, Y} ; Vt = {0, 1} ; S = X ; P = { X 00Y, Y 1Y 0 }. ER = 00(0 + 1)*0 Menurut aturan 2, 00 menghasilkan X 00. Menurut aturan 5, (0 + 1)* menghasilkan X 00Y, Y 0Y 1Y. Menurut aturan 2, 0 menghasilkan 0 sehingga Y 0Y 1Y 0. Menurut aturan 6, tulis ε sehingga X 00Y, Y 0Y 1Y 0 ε. Jadi ; Vn = {X, Y} ; Vt = {0, 1} ; S = X ; P = { X 00Y, Y 0Y 1Y 0 }. ER = 0(0 + 1)0* Aturan 2, 0 menghasilkan X 0. Aturan 4, (0 + 1) menghasilkan X 0Y, Y 0Z 1Z, Z. Aturan 3, 0* menghasilkan A 0A. Aturan 6, tulis ε. Dengan demikian aturan produksi yang dihasilkan adalah X 0Y, Y 0Z 1Z, Z A, A 0A ε. Aturan produksi ini bisa disederhanakan menjadi X 0Y, Y 0Z 1Z, Z 0Z ε IF-UTAMA 13 IF-UTAMA 14 Contoh Konversi dari Tata Bahasa Linier Kanan Reguler ke Ekspresi Reguler 4 1. Tuliskan ekspresi dari kiri ke kanan, mulai dari simbol awal. 2. Jika aturan produksi berbentuk X a, tuliskan a. 3. Jika aturan produksi berbentuk X a b, tuliskan (a+b) 4. Jika aturan produksi berbentuk X ax, tuliskan a* 5. Jika aturan produksi berbentuk X ax bx, tuliskan (a + b)* 6. Jika aturan produksi berbentuk X ay, dan terdapat aturan produksi berbentuk Y., tuliskan ay, kemudian Y diganti sesuai aturan 2 sampai 6. 7. Jika aturan produksi berbentuk X ay bz, tuliskan (ay + bz), Y dan Z harus diganti sesuai dengan aturan 2 sampai 7. IF-UTAMA 15 Contoh Konversi dari Tata Bahasa Reguler Linier Kanan ke Ekspresi Reguler 4 ; Vn = { X } ; Vt = {0, 1} ; S = X ; P = { X 0X 1 } Menurut aturan 4, X 0X mengharuskan menulis 0* sehingga ER sekarang berisi 0*. Menurut aturan 2, X 1 mengharuskan menulis 1 sehingga ER sekarang berisi 0*1 ; Vn = { X,Y } ; Vt = {0, 1, 2} ; S = X ; P = { X 1Y, Y 0Y 1Y 1 2 } Menurut aturan 6, X 1Y 4mengharuskan menulis 1Y sehingga ER sekarang berisi 1Y. Sekarang kita pikirkan pengganti Y. Menurut aturan 5, Y 0Y 1Y mengharuskan menulis (0+1)*. Menurut aturan 3, Y 1 2 mengharuskan menulis (1+2). Jadi Y pada ER 1Y harus diganti dengan (0+1)*(1+2) sehingga ER yang terbentuk sekarang adalah 1(0+1)*(1+2). ; Vn = { X, Y, Z } ; Vt = {0, 1} ; S = X ; P = { X Y Z, Y 0Y ε, Z 1Z ε } Menurut aturan 7, X Y Z mengharuskan menulis (Y + Z) sehingga ER sekarang berisi (Y + Z). Apakah pengganti Y dan Z? Menurut aturan 4, Y 0Y mengharuskan menulis 0*. Menurut aturan 2, Y e mengharuskan menuliskan ε. Jadi Y pada ekspresi (Y + Z) diganti dengan 0* (e tidak perlu ditulis). Z 1Z ε menghasilkan 1* sehingga Z pada (Y + Z) dapat diganti dengan 1*. Dengan demikian ER untuk G IF-UTAMA di atas adalah ( 0* + 1* ) 16 IF-UTAMA 4
Studi Kasus [1 & 4] Studi Kasus [1] 1. Tulis Ekspresi Regular berdasarkan aturan produksi dari Context Free Grammar berikut ini : G = {{S,A,B,C,D},{0,1, ε}, S, P} Dimana P terdiri dari S BC B AB ε A 011 1 C DC ε D 01 2. Tulis Context Free Grammar berdasarkan bahasa berikut ini : Gh = ({K, H, N, T, X}, {a, b, c, d, e, f, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, H,P) Dimana P terdiri dari H X X KT X NT T KT T NT T ε K a b c d e f N 0 1 2 3 4 5 6 7 8 9 IF-UTAMA 17 Tulis Context Free Grammar berdasarkan bahasa berikut ini : 3. {0 i 1 i+k 0 k i, k 1} 4. {0 i 1 j 0 k i, j, k 0, j i+k} 5. (0 + 1)*1(0 + 1)*0 6. (01)*(0 + 11)(01)*0 IF-UTAMA 18 Referensi 1. http://www.cse.cuhk.edu.hk/~csc3130/ 2. Swinglly Purba, Otomata dan Bahasa Formal, Graha Ilmu,Yogyakarta, 2008 3. Firrar Utdirartatmo, Teori Bahasa Otomata, Graha Ilmu, Yogyakarta, 2005 dan 4. Roni Djuliawan, M.T., Diktat & Handout Kuliah Teori Bahasa & Otomata, Teknik Informatika Universitas Widyatama, 2003 5. http://idhaclassroom.com/download/teknik- Otomasi-Bahasa-Kompilasi/Bahasa- Kompilasi.pdf IF-UTAMA 19 IF-UTAMA 5