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

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

Tujuan Penyederhanaan

PENYEDERHANAAN Context Free Grammar

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)

TEORI BAHASA DAN OTOMATA [TBO]

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

TEORI BAHASA DAN AUTOMATA

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

Tata Bahasa Bebas Konteks

Teori Bahasa Formal dan Automata

DIKTAT TEORI BAHASA DAN OTOMATA

BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

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

Penghilangan Rekursif Kiri

TEORI BAHASA DAN OTOMATA [TBO]

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

MODUL XIII TEORI BAHASA DAN AUTOMATA

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

Lecture Notes Teori Bahasa dan Automata

TEORI BAHASA & OPERASI MATEMATIS (2)

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

POHON PENURUNAN Context Free Grammar

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN OTOMATA

Teori Bahasa dan Otomata 1

TEORI BAHASA DAN AUTOMATA

BENTUK NORMAL GREIBACH

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

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

TEORI BAHASA DAN OTOMATA

BAB VI METODE PARSING

BAB III CFG DAN PARSING

anggota alfabet dinamakan simbol terminal atau token.

KONSEP GRAMMAR DAN BAHASA

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP

TEORI BAHASA DAN OTOMATA [TBO]

ALGORITMA PEMROGRAMAN 1C SINTAKS

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

Contents.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB IV PENGUJIAN DAN ANALISIS

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

Grammar dan Tingkat Bahasa

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

Dasar Teori Bahasa & Grammar

BAB IV ANALISA SINTAKS

GRAMMAR AND LANGUAGE

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

Teori Bahasa & Otomata

TEKNIK KOMPILASI Konsep & Notasi Bahasa

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

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

TEORI BAHASA DAN OTOMATA

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

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

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

PENYEDERHANAAN DENGAN KARNAUGH MAP

DAFTAR ISI Nida Uddini Amatulloh,2014

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

Algoritma Puzzle Pencarian Kata

LOMBA MATEMATIKA NASIONAL KE-27

Diktat Kuliah. Oleh:

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

MSH1B3 LOGIKA MATEMATIKA Aljabar Boolean (Lanjutan)

BAB III ANALISIS SISTEM

BAB II DASAR TEORI. Gambar 2.1. Proses Enkripsi Dekripsi

Algoritma Cipher Block EZPZ

II. M A T R I K S ... A... Contoh II.1 : Macam-macam ukuran matriks 2 A. 1 3 Matrik A berukuran 3 x 1. Matriks B berukuran 1 x 3

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

JURUSAN PENDIDIKAN FISIKA FPMIPA UPI 2009

Teori Bahasa Formal dan Automata

IF-UTAMA 1. Definisi. Grammar. Definisi

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

Teknik Kompilasi. Notasi Bahasa

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) Edisi Volume Bulan20.. ISSN :

Parsing. A -> a as baa B -> b bs abb

PENDAHULUAN Teori Bahasa

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

SOAL 1. Diketahui bangun persegi panjang berukuran 4 6 dengan beberapa ruas garis, seperti pada gambar.

Problem A Divisible compfest1.c / compfest1.cpp / compfest1.pas Runtime-limit: 0.5 detik Memory-limit: 64 MB

Kebalikan Transformasi Laplace

Teori Himpunan. Author-IKN. MUG2B3/ Logika Matematika 9/8/15

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

PETA KARNAUGH 3.1 Peta Karnaugh Untuk Dua Peubah

Penerapan BFS dan DFS pada Pencarian Solusi

BAB I TEORI BAHASA DAN AUTOMATA

Simulasi Komputer Untuk Menentukan Kombinasi Perlakuan Dengan Disain Faktorial Setengah Replikasi

Pertemuan 3. Prinsip Dasar Menghitung

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

Aplikasi Rekursif dalam Analisis Sintaks Program

PRESENTASI TUGAS AKHIR KI091391

Amir Hamzah AKPRIND PRESS 2009

Tentukan semua bilangan bulat x sedemikian sehingga x 1 (mod 10). Jawab. x 1 (mod 10) jika dan hanya jika x 1 = 10 k untuk setiap k bilangan bulat.

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

BAB II SINTAKS 2.1. SINTAKS

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

PEMBUATAN LAPORAN PEMBUKUAN SIMPAN PINJAM

OSN MATEMATIKA SMA Hari 1 Soal 1. Buktikan bahwa untuk sebarang bilangan asli a dan b, bilangan. n = F P B(a, b) + KP K(a, b) a b

TEORI BAHASA & AUTOMATA

Prestasi itu diraih bukan didapat!!! SOLUSI SOAL

Transkripsi:

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

Transformasi TBBK Dimaksudkan untuk memperoleh TBBK yang memenuhi kriteria-kriteria tertentu yang lebih efisien. Transformasi boleh dilakukan asalkan tidak mengganggu maksud dan bahasa yang dihasilkan dari TBBK baru. TBBK dapat disederhanakan dengan: Penghilangan produksi useless Penghilangan produksi unit Penghilangan produksi himpunan kosong

Transformasi TBBK Penyederhanaan TBBK bertujuan untuk melakukan pembatasan sehingga tidak menghasilkan pohon sintaks yang rumit dan tidak berarti. Contoh : S => AB a A => a. Kelemahannya adalah aturan produksi S => AB tidak berarti (useless) karena B tidak memiliki penurunan.

TBBK Kompleks Contoh lain: S => A A => B B => C C => D D = a A Kelemahan : jalannya terlalu panjang, padahal berujung pada S => a produksi D => A juga dapat menyebabkan kerumitan (rekursif)

Produksi Useless Adalah produksi yang memuat simbol variabel yang tidak memiliki penurunan yang akan menghasilkan terminal seluruhnya / hasil akhir menuju terminal Produksi ini tidak berguna karena bila diturunkan tidak akan selesai (masih ada simbol variabel yang tersisa). Produksi ini juga tidak akan dicapai dengan cara apapun sehingga produksi ini redundan. Contoh : S => asa Abd Bde A => Ada B => BBB a

Produksi Useless (2) S => asa Abd Bde A => Ada B => BBB a Dapat dilihat bahwa: Simbol A tidak memiliki penurunan yang menuju terminal sehingga bisa dihilangkan. Maka A => Ada dihilangkan dan S => Abd tidak memiliki penurunan Sehingga dapat disederhanakan sebagai berikut: S => asa Bde B => BBB a

Produksi Useless (3) Contoh lain: S => Aa B A => ab D B => b E C => bb E => aea Bisa dilihat bahwa: Pada A => D, simbol D tidak mengalami penurunan. Pada C => bb, bila kita mencoba melakukan penurunan dari S, tidak akan mencapai C. Simbol E => aea tidak memiliki terminal, sehingga konsekuensinya B => E juga tidak akan selesai.

Produksi Useless (4) S => Aa B A => ab D B => b E C => bb E => aea Dari aturan produksi diatas, maka aturan produksi yang useless: A => D C => bb E => aea B => E Maka TBBK tersebut dapat disederhanakan menjadi: S => Aa B A => ab B => b

Produksi Himpunan Kosong (ε) Produksi ε adalah produksi yang berbentuk: A => ε Penghilangan produksi ε dilakukan dengan melakukan penggantian semua produksi yang memuat variabel yang bisa menuju produksi ε. Contoh : S => bcad A => ε Karena A => ε, maka variabel A bisa ditiadakan, sehingga: S => bcd

Produksi Himpunan Kosong (2) Contoh: S => bcad A => bd ε Karena A => ε bukan satu-satunya produksi dari A, maka hasil penyederhanaan: S => bcad bcd A => bd

Produksi Himpunan Kosong (3) Contoh: S => AaCD A => CD AB B => b ε C => d ε D => ε Variabel yang nullable (ε) adalah B, C, dan D Kita lihat A => CD maka berarti akan sama dengan A => ε, Karena D hanya menurunkan ε, D => ε maka kita sederhanakan D dulu: S => AaCD menjadi S => AaC A => CD menjadi A => C D => ε kita hapus.

Produksi Himpunan Kosong (4) Kemudian variabel B dan C juga menurunkan ε, walapun bukan satu-satunya penurunan, sehingga: A => AB menjadi A => AB A S => AaC menjadi S => AaC Aa B => ε dan C => ε dihapus Sehingga hasil akhir : S => AaC Aa A => C AB A B => b C => d

Produksi Himpunan Kosong (5) Contoh: S => asbs bsas ε Maka hilangkan S => ε S => asbs bsas asb abs ab bsa bas ba

Produksi Unit (Tunggal) Produksi unit adalah produksi dimana ruas kiri dan kanan adalah simbol variabel. Hal ini membuat TBBK menjadi rumit dan panjang. Contoh: S => Sb S => C C => D C => ef D => dd //produksi unit //produksi unit Proses penggantian, dimulai dari aturan produksi yang paling dekat menuju ke penurunan terminal-terminal. C => D menjadi C => dd S => C ; C => ef atau C => dd, maka menjadi S => dd ef Sehingga mengalami penyederhanaan: S => Sb S => dd ef C => dd C => ef D => dd

Produksi Unit (2) Contoh TBBK: S => A //produksi unit S => Aa A => B //produksi unit B => C //produksi unit B => b C => D //produksi unit C => ab D => b Penggantian: C => D menjadi C => b B => C menjadi B => b ab karena B => b sudah ada, maka cukup ditulis B => ab A => B menjadi A => ab b S => A menjadi S => ab b Maka hasil akhir: S => ab b Aa A => ab b B => ab b C => b ab D => b

Produksi Unit (3) Contoh: S => S + T T => T * F F F => (S) a Maka hilangkan T => F //produksi unit Karena F => (S) a, maka: T => T * F (S) a Jadi: S=> S + T T => T * F (S) a F => (S) a

Prakteknya Pada prakteknya ketiga penyederhanaan tersebut dilakukan bersama-sama yang akan mempersiapakan TBBK tesebut menuju ke bentuk normal Chomsky (CNF). Penghilangan produksi ε dapat menghasilkan produksi unit, penghilangan produksi unit tidak akan menghasilkan produksi ε, penghilangan produksi useless tidak akan menghasilkan produksi ε dan produksi unit. Jadi urutan pengerjaannya adalah: Hilangkan produksi ε Hilangkan produksi unit Hilangkan produksi useless

Contoh praktek Contoh: S => AA C bd A => Bd ε B => AB d C => de Kita hilangkan produksi ε S => A AA C bd A => Bd B => AB B d C => de Penghilangan produksi unit: S => Bd AA de bd A => Bd B => AB d C => de Penghilangan produksi useless: C => de tidak berguna, S => Bd AA de bd A => Bd B => AB d

Bentuk CNF Bentuk normal Chomsky (CNF) Adalah suatu TBBK yang telah mengalami penghilangan produksi unit, produksi useless, dan produksi ε. CNF ruas kanannya memiliki tepat berupa sebuah terminal atau dua non terminal. Contoh CNF : A => BC b B => a C => BA d

Algoritma CYK oleh J. Cocke, DH Younger dab T. Kasami Algoritma ini digunakan untuk parsing dari keanggotaan TBBK yang CNF. Obyektifnya adalah apakah suatu string diterima oleh suatu TBBK Algoritma CYK: 1. Start 2. for x=1 to n do: 3. Vx1 := (A A => a aturan produksi dimana simbol ke-x adalah a) 4. for j=2 to n do begin 5. for i=1 to (n-j+1) do begin 6. Vij = ε (inisialisasi) 7. for k=1 to (j-1) do 8. Vij = Vij union ( A A => BC, adalah suatu produksi dimana B di Vik dan C di Vi+k,j-k 9. end for i 10. end for j 11. finish

Algoritma CYK (2) Keterangan: Dimana n adalah panjang string, i adalah kolom ke dan j adalah baris ke Tahapan no 1 dan 2 untuk mengisi tabel baris pertama kolom ke 1 s/d n Tahapan no 3, iterasi dari baris 2 sampai ke n Tahapan no 4 untuk mengisi kolom 1 sampai (n-baris+1) pada suatu baris tertentu Tahapan no 5 inisialisasi Vij dengan himpunan kosong Tahapan no 6 dan 7 iterasi untuk memeriksa mana saja yang menjadi anggota Vij Contoh CNF: S => AB BC A => BA a B => CC b C => AB a Periksa apakah string baaba masuk dalam TBBK tersebut!

Contoh CYK Tabel awal untuk Vij (V kolom, baris) N = 5, maka inisialisasi baris pertama adalah: V 11 kita menerima input b. TBBK yang bisa menurunkan b adalah B => b sehingga kita isi V 11 = {B} V 21 kita menerima input a. TBBK yang bisa menurunkan a adalah A => a dan C => a sehingga kita isi V 21 = {A,C} V 31 kita menerima input a. TBBK yang bisa menurunkan a adalah A => a dan C => a sehingga kita isi V 31 = {A,C} V 41 kita menerima input b. TBBK yang bisa menurunkan b adalah B => b sehingga kita isi V 41 = {B} V 51 kita menerima input a. TBBK yang bisa menurunkan a adalah A => a dan C => a sehingga kita isi V 51 = {A,C}

Contoh CYK (2) Baris 2 sampai n adalah: Pada baris 2 (j=2) (i=1 s/d (5-2+1)) (k=1 s/d (2-1)): V 12, periksa V ik -V i+k, j-k, berarti V 11 -V 21, yaitu B dan A,C. Yang menurunkan BA atau BC adalah S dan A maka kita isi V 12 = {S,A} V 22, periksa V ik -V i+k, j-k, berarti V 21 -V 31, yaitu AC dan AC. Yang menurunkan AA, AC, CA, atau CC adalah B maka kita isi V 22 = {B} V 32, periksa V ik -V i+k, j-k, berarti V 31 -V 41, yaitu AC dan B. Yang menurunkan AB dan CB adalah S dan C maka kita isi V 32 = {S,C} V 42, periksa V ik -V i+k, j-k, berarti V 41 -V 51, yaitu BA dan C. Yang menurunkan BA dan BC adalah S dan A maka kita isi V 42 = {S,A}

Contoh CYK (3) Baris ke-3 (j=3) (i=1 s/d (5-3+1)) (k=1 s/d (3-1)) V 13, periksa V ik -V i+k, j-k, berarti V 11 -V 22 & V 12 -V 31 yaitu B-B dan SA- AC. Yang menurunkan BB, SA, SC, AA atau AC adalah tidak ada (ε) maka kita isi V 13 = {ε} V 23, periksa V ik -V i+k, j-k, berarti V 21 -V 32 & V 22 -V 41 yaitu AC-SC dan B-B. Yang menurunkan AS, AC, CS, CC atau BB adalah B maka kita isi V 23 = {B} V 33, periksa V ik -V i+k, j-k, berarti V 31 -V 42 & V 32 -V 51 yaitu AC-SA dan SC-AC. Yang menurunkan AS, AA, CS, CA, SA, SC, CA atau CC adalah B maka kita isi V 33 = {B}

Contoh CYK (4) Baris 4 (j=4) (i=1 s/d (5-4+1)) (k=1 s/d 3) V 14, periksa V ik -V i+k, j-k, berarti V 11 -V 23 & V 12 -V 32 & V 13 -V 41 yaitu B-B & SA-SC & ε-b. Yang menurunkan BB, SS, SC, AS, atau AC adalah tidak ada maka kita isi V 14 = {ε} V 24, periksa V ik -V i+k, j-k, berarti V 21 -V 33 & V 22 -V 42 & V 23 -V 51 yaitu AC-B & BS-A & BA-C. Yang menurunkan AC, AB, BS, BA, atau BC adalah S,C,A maka kita isi V 24 = {S,C,A}

Contoh CYK (5) Baris ke-5 (j=5) (i=1 s/d (5-5+1)) (k=1 s/d 4) V 15, periksa V ik -V i+k, j-k, berarti V 11 -V 24 & V 12 -V 33 & V 13 - V 42 & V 14 -V 51 yaitu B-SAC & SA-B & ε-sa & ε-ac. Yang menurunkan BA, BC, SA, SB atau AB adalah A, S, C maka kita isi V 15 = {A, S, C}

Contoh CYK (6) Syarat suatu string diterima oleh TBBK adalah V1n memuat simbol awal (S). Terlihat bahwa pada V15 memuat simbol S, maka string baaba diterima Bagaimana: aaab?

NEXT Normal Geibach PDA Semantic Analisys Tabel Symbol