Lecture Notes Teori Bahasa dan Automata

dokumen-dokumen yang mirip
Teori Bahasa Formal dan Automata

Memiliki kelemahan terlalu panjang jalannya padahal berujung pada S a, produksi D A juga menyebabkan kerumitan.

PENYEDERHANAAN Context Free Grammar

TEORI BAHASA DAN OTOMATA [TBO]

Lecture Notes Teori Bahasa dan Automata

Lecture Notes Teori Bahasa dan Automata

Teori Bahasa Formal dan Automata

Tujuan Penyederhanaan

Penyederhanaan Tata Bahasa Bebas Konteks. Kuliah Online : TBA [2012/2013]

TEORI BAHASA DAN AUTOMATA

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)

Ekspresi Reguler. Pertemuan Ke-8. Sri Handayaningsih, S.T., M.T. Teknik Informatika

KONSEP GRAMMAR DAN BAHASA

anggota alfabet dinamakan simbol terminal atau token.

GRAMMAR AND LANGUAGE

BAB II TINJAUAN PUSTAKA. Bahasa menurut kamus Websters adalah the body of words and methods of

Teori Bahasa Formal dan Automata

Teknik Kompiler 7. oleh: antonius rachmat c, s.kom

Dasar Teori Bahasa & Grammar

Tata Bahasa Bebas Konteks

Tanggal Revisi : Tanggal : SATUAN ACARA PERKULIAHAN

MODUL XIII TEORI BAHASA DAN AUTOMATA

TEORI BAHASA & OPERASI MATEMATIS (2)

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

BAB I TEORI BAHASA DAN AUTOMATA

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

IF-UTAMA 1. Definisi. Grammar. Definisi

MODUL 12: BENTUK-BENTUK SEDERHANA DAN BENTUK-BENTUK NORMAL

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

SATUAN ACARA PERKULIAHAN (SAP)

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP

BAB I PENDAHULUAN 1-1

POHON PENURUNAN Context Free Grammar

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

Penghilangan Rekursif Kiri

TEORI BAHASA DAN OTOMATA [TBO]

Teori Bahasa dan Otomata 1

Teori Komputasi 11/23/2016. Bab 6: Context-Free Grammar & Parsing. Context-Free Grammar. Context-Free Grammar

IF-UTAMA 1. Penurunan (Derivation) [2] Penurunan (Derivation) Contoh Penurunan [1] Parse Tree [1]

DIKTAT TEORI BAHASA DAN OTOMATA

BAHASA BEBAS KONTEKS UNTUK KOMPLEMEN DARI STRING BERULANG CONTEXT FREE LANGUAGE FOR COMPLEMENT OF REPEATED STRING

TEORI BAHASA DAN OTOMATA

BENTUK NORMAL GREIBACH

Teknik Kompiler 6. oleh: antonius rachmat c, s.kom

Tata Bahasa Pemrograman

Teori Bahasa Formal dan Automata

Mesin Turing. Pertemuan Ke-14. Sri Handayaningsih, S.T., M.T. Teknik Informatika

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

Mahasiswa memahami bahasa sebagai himpunan dan operasi 2 -nya, cara mendefinisikan bahasa, serta cara mengenali anggota 2 bahasa

BAB II TINJAUAN PUSTAKA. konsep, fakta, termasuk simbol simbol serta aturan agar mempunyai makna.

UNIVERSITAS GADJAH MADA FMIPA/DIKE/ILMU KOMPUTER Gedung SIC Lantai 1, Sekip, Bulaksumur, 55281, Yogyakarta

BAB III CFG DAN PARSING

Bahasa adalah kumpulan kalimat. Kalimat adalah rangkaian kata. Kata adalah komponen terkecil kalimat yang tidak bisa dipisahkan lagi.

Grammar dan Tingkat Bahasa

Translasi Context-Free Grammar Menjadi Parsing Tree Berbasis Algoritma Cocke-Younger-Kasami

Teori Bahasa & Otomata

SATUAN ACARA PERKULIAHAN (SAP) TEORI BAHASA DAN OTOMATA

APLIKASI PROGRAM DINAMIS DALAM ALGORITMA COCKE- YOUNGER -KASAMI (CYK)

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA

Language Is Cool. The Chomsky Hierarchy. Normal Forms. Chomsky Normal Form (CNF) & Greibach Normal Form (GNF) Teori Bahasa & Otomata - Danang Junaedi

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

Aplikasi Pengubah Bentuk Normal Chomsky Menjadi Bentuk Normal Greibach dengan Metode Substitusi

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

Amir Hamzah AKPRIND PRESS 2009

Teori Bahasa Formal dan Automata

Prestasi itu diraih bukan didapat!!! SOLUSI SOAL

TEORI BAHASA DAN OTOMATA [TBO]

ALGORITMA PEMROGRAMAN 1C SINTAKS

Contents.

TEKNIK KOMPILASI Konsep & Notasi Bahasa

Analisis Sintaksis (syntactic analyzer atau parser)

Teori Bahasa Formal dan Automata

BAB VI METODE PARSING

TEORI BAHASA & AUTOMATA

Teknik Informatika PERTEMUAN 2. TEORI BAHASA & OTOMATA Imam Riadi, M.Kom Shofwatul Uyun, M.Kom. Teknik Informatika

Komponen sebuah Kompilator

PENDAHULUAN Teori Bahasa

Teori Matematika Terkait dengan TBO

Teori Bahasa dan Operasi Matematis.

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Aplikasi Simulator Mesin Turing Pita Tunggal

1. AB = 16 cm, CE = 8 cm, BD = 5 cm, CD = 3 cm. Tentukan panjang EF! 20 PEMBAHASAN : BCD : Lihat ABE : Lihat AFE : Lihat

SATUAN ACARA PERKULIAHAN MATA KULIAH : TEORI BAHASA DAN AUTOMATA (TBA) KODE / SKS : KK / 3 SKS

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

Fr*snd*mffi. Fakultns tlmu Komputer, l;nivrrsitfls. f&,# d *-B. ,, :..:.4 t:,{;. ${r= st :rir"l, r;t. .j"s*l!&,. '":*& \',?Srlrlfu. :1i-,=-+n 3r: lvqd

TEORI BAHASA DAN OTOMATA

BAB I PENDAHULUAN. memiliki tata bahasa dan aturan yang lebih luas dan luwes, sehingga tidak

SINTAKS. Sintaks dari bahasa pemrograman di defenisikan dengan 2 kumpulan aturan, yaitu:

TEORI BAHASA & OTOMATA (KONSEP & NOTASI BAHASA) PERTEMUAN IX Y A N I S U G I Y A N I

Tujuan perancangan bhs program

Teknik Kompiler 5. oleh: antonius rachmat c, s.kom, m.cs

TEORI BAHASA DAN OTOMATA [TBO]

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

BAB IV ANALISA SINTAKS

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

21/11/2016. Pohon Sintaks. Syntax?? Proses Penurunan. Analisis Syntax (Parser) Metode Parsing ANALISIS SINTAKS TEKNIK KOMPILASI

2. Review TeoriBahasaFormal danotomata

TEORI BAHASA DAN AUTOMATA

Teori Himpunan. Matematika Dasar untuk Teori Bahasa Otomata. Operasi pada Himpunan. Himpunan Tanpa Elemen. Notasi. Powerset & Cartesian Product

Transkripsi:

Penyederhanaan CFG (edisi 1) 1/8 Lecture Notes Teori Bahasa dan Automata Penyederhanaan Context Free Grammar Thompson Susabda Ngoen Pendahuluan Context Free Grammar (CFG) terdiri atas sejumlah production yang berbentuk A α dengan α berupa sejumlah simbol terminal dan non-terminal. Selain contex-free grammar terdapat jenis grammar lain yang disebut context-sensitive grammar (CSG). Perbedaannya dengan CFG adalah pada bentuk production. Bagian head production (simbol di kiri tanda panah) CFG selalu berupa satu simbol non terminal. Bagian head production CSG boleh terdiri atas sejumlah simbol. Production berikut milik sebuah CFG 1. P 0P0 2. P 1P1 3. P 0 4. P 1 5. P ε Derivasi yang dapat dibentuk diantaranya P 1P1 10P01 101P101 101101 sentential form 1P1 diturunkan dari sentential form P berdasarkan production 2. sentential form 10P01 diturunkan dari sentential form 1P1 berdasarkan production 1. Production berikut milik sebuah CSG 1. P 0P0 2. 0P 01P1 3. P 0 4. P 1 5. P ε Derivasi yang dapat dibentuk diantaranya P 0P0 01P10 01110 Production nomor 2, 0P 01P1, menyatakan simbol P boleh diderivasi dengan 1P1 hanya jika P berada di dalam konteks tertentu yaitu di sebelah kiri P terdapat simbol 0. Jadi P tidak free diderivasi menjadi 1P1, maksudnya tidak bisa membentuk derivasi P 1P1 11P11 1111 Sepaham dengan namanya, production pada CFG mempunyai susunan body (simbolsimbol di kanan tanda panah) yang bebas, tidak ada ketentuan tentang jenis dan jumlah simbol pembentuk body suatu production. Terlalu bebasnya bentuk production CFG akan merepotkan implementasi. Eliminasi Useless Production Apakah semua production suatu CFG memang berguna (usefull)? Simbol X pada grammar G = (V,T, P, S) disebut berguna jika terdapat derivasi S αxβ w dengan w terdiri atas simbol terminal. Dua persyaratan harus dipenuhi X untuk dianggap berguna: 1. generating, yaitu X w maksudnya X dapat menghasilkan minimum satu buah string 2. reachable, yaitu S αxβ Maksudnya dimulai dari start symbol harus bisa dihasilkan derivasi yang mengandung X

Penyederhanaan CFG (edisi 1) 2/8 Apakah production berikut usefull? 1. S asa 2. S Abd 3. S Bde 4. A Ada 5. B BBB 6. B a Uji generating dengan menggunakan production 6 diperoleh B a, artinya B generating dengan menggunakan production 3 diperoleh S Bde pada derivasi berikut kita akan menggantikan simbol B karena B generating maka S generating dengan menggunakan production 4 diperoleh A Ada Adada jika derivasi ini diteruskan maka tidak akan menghasilkan string karena simbol A tidak bisa diganti dengan simbol terminal, A tidak generating, Production yang mengandung A dibagian head atau body dibuang, diperoleh 1. S asa 3. S Bde 5. B BBB 6. B a Uji reachable S Bde artinya B reachable dari S 1. S asa 2. S Bde 3. B BBB 4. B a Apakah production berikut usefull? 1. S Aa 2. S B 3. A ab 4. A D 5. B b 6. B E 7. C bb 8. E aea Uji generating dengan menggunakan production 3 diperoleh A ab, artinya A generating dengan menggunakan production 5 diperoleh B b, artinya B generating dengan menggunakan production 7 diperoleh C bb, artinya C generating dengan menggunakan production 2 diperoleh S B, karena B generating maka S juga generating tidak tedapat production dengan D sebagai head, D tidak generating dengan menggunakan production 8 diperoleh E aea aaeaa jika derivasi ini diteruskan maka tidak akan menghasilkan string karena simbol E tidak bisa diganti dengan simbol terminal, E tidak generating, 1. S Aa 2. S B 3. A ab 5. B b 7. C bb

Penyederhanaan CFG (edisi 1) 3/8 Uji reachable S Aa A reachable dari S S B B reachable dari S Tidak terdapat derivasi S αcβ sehingga C tidak reachable dari S Dengan demikian production yang usefull adalah 1. S Aa 2. S B 3. A ab 4. B b Eliminasi ε-production Di dalam CFG mungkin terdapat ε-production, production berbentuk A ε. Production ini bermanfaat untuk membentuk empty string atau untuk mengakhiri suatu pengulangan. Production di bawah ini 1. P 0P0 2. P 1P1 3. P 0 4. P 1 5. P ε menggunakan P ε untuk membentuk empty string (P ε) dan mengakhiri pengulangan pada P 0P0 00. Jika sebuah language L mempunyai grammar CFG maka L {ε} mempunyai CFG yang tidak mengandung ε-production. Menghilang ε-production pada CFG diawali dengan mendeteksi variabel yang nullable. Sebuah simbol non terminal atau variabel A disebut nullable jika A ε. Apabila A muncul pada body production misalnya B CAD maka production ini diubah menjadi dua versi, satu dengan A dan yang lain tanpa A. Hilangkan ε-production di bawah ini 1. S aab 2. A aab 3. A ε Contoh string yang dihasilkan dari production di atas: 1) S aab ab production 1, 3 2) S aab aaabb aabb production 1, 2, 3 3) S aab aaabb aaaabbb aaabbb production 1, 2, 2, 3 Dengan menggunakan production 3 diperoleh A ε, artinya A nullable Apakah S nullable? S aab ab, artinya S tidak nullable Pada production S aab terdapat sebuah simbol nullable yaitu A, Bentuk dua production: S aab S ab Pada production A aab terdapat sebuah simbol nullable yaitu A, Bentuk dua production: A aab A ab

Penyederhanaan CFG (edisi 1) 4/8 1. S aab 2. S ab 3. A aab 4. A ab Contoh string yang dihasilkan dari keempat production tersebut: 1) S ab production 2 2) S aab aabb production 1, 4 3) S aab aaabb aaabbb production 1, 3, 4 Hilangkan ε-production di bawah ini 1. S ABaC 2. A BC 3. B b ε 4. C D ε 5. D d Contoh string yang dihasilkan dari production di atas: 1) S ABaC BCBaC CBaC BaC ac a production 1, 2, 3b, 4b, 3b, 4b 2) S ABaC BCBaC bcbac production 1, 2, 3a bdbac bdbac bdac bda production 4a, 5, 3b, 4b Dengan menggunakan production 3 diperoleh B ε, artinya B nullable Dengan menggunakan production 4 diperoleh C ε, artinya C nullable Dengan menggunakan production 2 diperoleh A BC Karena B dan C nullable maka A juga nullable D dan S tidak nullable Production S ABaC mengandung 3 simbol nullable maka akan terbentuk 2 3 production: S ABaC BaC AaC ABa ac Ba Aa a Production A BC mengandung 2 simbol nullable, akan terbentuk 2 2 production: A BC B C Salah lagi mana? A ε, tidak digunakan 1. S ABaC 2. S BaC 3. S AaC 4. S ABa 5. S ac 6. S Ba 7. S Aa 8. S a 9. A BC 10. A B 11. A C 12. B b 13. C D 14. D d Contoh string yang dihasilkan keempat production tersebut: 1) S a production 8 2) S Aa BCa bca bda bda production 7, 9, 12, 13, 14

Penyederhanaan CFG (edisi 1) 5/8 Eliminasi unit Production Production berikut menghasilkan expression bahasa pemrograman 1. E T E + T 2. T F T * F 3. F I (E) 4. I a b String b * (a + b) diperoleh dari derivasi: E T T * F F * F I * F b * F b * (E) b * (E + T) b * (T + T) b * (F + T) b * (I + T) b * (a + T) b * (a + F) b * (a + I) b * (a + b) Derivasinya cukup panjang dan parse tree-nya cukup panjang. Penyebabnya adalah unit production. Unit production ialah production berbentuk A B, pada contoh di atas berupa E T T F F I Apabila unit production dihilangkan maka derivasi akan lebih singkat dan parse tree akan lebih pendek. Variabel A membentuk unit pair (A,A). Jika (A,A) adalah unit pair dan A B adalah production maka terbentuk unit pair (A,B). Jika (A,B) adalah unit pair dan B C adalah production maka terbentuk unit pair (A,C). Unit pair (X,Y) dan production Y α membentuk production X α (E, E) dan E T membentuk unit pair (E, T) (E, T) dan T T * F membentuk production E T * F (E, T) dan T F membentuk unit pair (E, F) (E, F) dan F (E) membentuk production E (E) (E, F) dan F I membentuk unit pair (E, I) (E, I) dan I a b membentuk production E a b (T, T) dan T F membentuk unit pair (T, F) (T, F) dan F (E) membentuk production T (E) (T, F) dan F I membentuk unit pair (T, I) (T, I) dan I a b membentuk production T a b (F, F) dan F I membentuk unit pair (F,I) (F, I) dan I a b membentuk production F a b 1. E E + T T * F ( E ) a b 2. T T * F ( E ) a b 3. F ( E ) a b 4. I a b String b * (a + b) diperoleh dari derivasi: E T * F b * F b * (E) b * (E + T) b * (a + T) b * (a + b)

Penyederhanaan CFG (edisi 1) 6/8 Hilangkan unit production di bawah ini 1. S Aa B 2. A a bc B 3. B A bb Contoh string yang dihasilkan: 1) S Aa Ba bba production 1a, 2c, 3b 2) S B A bc production 1b, 3a, 2b Unit production: S B B A A B (S, S) dan S B membentuk unit pair (S, B) (S, B) dan B bb membentuk production S bb (S, B) dan B A membentuk unit pair (S, A) (S, A) dan A a bc membentuk production S a bc (B, B) dan B A membentuk unit pair (B. A) (B, A) dan A a bc membentuk production B a bc (A, A) dan A B membentuk unit pair (A, B) (A, B) dan B bb membentuk production A bb Jika dikumpulkan semua maka hasilnya 1. S Aa a bb bc 2. A a bb bc 3. B a bb bc Contoh string yang dihasilkan: 1) S Aa bba production 1a, 2b 2) S bc production 1c Chomsky Normal Form Kita telah melakukan penyederhaan production CFG dengan mengeliminasi simbol yang tidak berguna, ε-production, dan unit production. Ketiga proses ini tidak menjamin terbentuknya production yang seragam, misalnya bagian body tidak lebih dari dua simbol. Chomsky Normal Form (CNF) adalah bentuk production A BC A a dengan A, B, dan C berjenis simbol non terminal dan a simbol terminal. CFG yang tidak mengandung ε-production dapat diubah sehingga semua production-nya berbentuk CNF, dengan cara: 1. apabila body mengandung simbol terminal dan panjang body lebih dari satu maka gunakan variabel pembantu untuk menggantikan simbol terminal. S abcd diuraikan menjadi S ABCD A a C c 2. uraikan body yang panjangnya tiga atau lebih menjadi sejumlah production yang panjangnya masing-masing dua dengan bantuan variabel baru. S ABCD diuraikan menjadi S AE E BF F CD

Penyederhanaan CFG (edisi 1) 7/8 Ubah production berikut menjadi CNF 1. S ABa 2. A aab 3. B Ac Ubah simbol terminal 1. S ABa menjadi S ABC (1a) C a (1b) 2. A aab menjadi A CCD (2a) D b (2b) 3. B Ac menjadi B AE (3a) E c (3b) Ubah body yang panjang lebih dari dua 1a. S ABC menjadi S AF F BC 2a. A CCD menjadi A CG G CD 1. S AF 2. F BC 3. C a 4. A CG 5. G CD 6. D b 7. B AE 8. E c Ubah production berikut menjadi CNF 1. E E + T T * F ( E ) a b 2. T T * F ( E ) a b 3. F ( E ) a b 4. I a b Ubah simbol terminal 1a. E E + T menjadi E EPT (a) P + 1b. E T * F menjadi E TMF (b) M * 1c. E (E) menjadi E LER (c) L ( R ) Ubah body yang panjangnya lebih dari dua (a). E EPT menjadi E EC 1 C 1 PT

Penyederhanaan CFG (edisi 1) 8/8 (b). E TMF menjadi E TC 2 C 2 MF (c). E LER menjadi E LC 3 C 3 ER 1. E EC 1 TC 2 LC 3 a b 2. T TC 2 LC 3 a b 3. F LC 3 a b 4. I a b 5. P + 6. M * 7. L ( 8. R ) 9. C 1 PT 10. C 2 MF 11. C 3 ER Referensi Hopcroft, E. John, Rajeev Motwani, Jeffrey D. Ullman, (2001), Introduction to Automata Theory, Languages, and Computation, 2 nd edition, Addison-Wesley Linz, P., (1990), An Introduction to Formal Languages and Automata, D.C. Heath and Co. Martin, J. C. (1991), Introduction to Languages and the Theory of Computation, McGraw-Hill