BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA

dokumen-dokumen yang mirip
PushDown Automata(PDA) Definisi : PDA adalah pasangan 7 tuple M = (Q,, q 0. ), dimana :

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

BAB III CFG DAN PARSING

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

PALINDROM CONTEXT FREE GRAMMAR PADA MESIN PUSH DOWN AUTOMATA

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

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

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

anggota alfabet dinamakan simbol terminal atau token.

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

TEORI BAHASA DAN OTOMATA [TBO]

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

Teori Bahasa Formal dan Automata

SILABUS MATAKULIAH. Indikator Pokok Bahasan/Materi Aktifitas Pembelajaran

SATUAN ACARA PERKULIAHAN (SAP) Semester Penempatan

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

GARIS-GARIS BESAR PROGRAM PENGAJARAN (GBPP)

IF-UTAMA 1. Definisi. Grammar. Definisi

POHON PENURUNAN Context Free Grammar

Teori Bahasa dan Otomata 1

MODUL 11: PUSHDOWN AUTOMATON

TEORI BAHASA DAN AUTOMATA

SATUAN ACARA PERKULIAHAN (SAP)

Komponen sebuah Kompilator

RENCANA PROGRAM KEGIATAN PERKULIAHAN SEMESTER (RPKPS)

TEORI BAHASA DAN OTOMATA [TBO]

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

UNIVERSITAS GUNADARMA

Contents.

PENYEDERHANAAN Context Free Grammar

KONSEP GRAMMAR DAN BAHASA

Tata Bahasa Kelas Tata Bahasa. Konsep Bahasa (1)

TEORI BAHASA DAN OTOMATA

TEORI BAHASA DAN AUTOMATA

BAB I TEORI BAHASA DAN AUTOMATA

Teori Bahasa Formal dan Automata

BAB II SINTAKS 2.1. SINTAKS

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

Teori Bahasa Formal dan Automata

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

Grammar dan Tingkat Bahasa

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

Pemodelan CNF Parser dengan Memanfaatkan Pohon Biner

DIKTAT TEORI BAHASA DAN OTOMATA

MODUL MATA KULIAH TEORI BAHASA DAN OTOMATA DOSEN:

MODUL 17. BAHASA-BAHASA REKURSIF DAN RECURSIVELY ENUMERABLE

BAB VI METODE PARSING

TEORI BAHASA DAN AUTOMATA

TEKNIK KOMPILASI Konsep & Notasi Bahasa

Penyederhanaan Tata Bahasa Bebas Konteks dalam Bentuk Normal Chomsky Menggunakan PHP

Amir Hamzah AKPRIND PRESS 2009

TEORI BAHASA & OPERASI MATEMATIS (2)

TEORI BAHASA DAN OTOMATA [TBO]

Lecture Notes Teori Bahasa dan Automata

Analisis Sintaksis (syntactic analyzer atau parser)

GRAMMAR AND LANGUAGE

BAB I PENDAHULUAN 1-1

Pendahuluan. Push Down Atomata. Perbedaan FA dan PDA [7] 4/25/2012 IF-UTAMA 1. Grammar-machine equivalence [3] Latar belakang munculnya konsep PDA

ALGORITMA PEMROGRAMAN 1C SINTAKS

Teori Komputasi 11/2/2016. Bab 5: Otomata (Automata) Hingga. Otomata (Automata) Hingga. Otomata (Automata) Hingga

TATA BAHASA BEBAS KONTEKS (CONTEXT FREE GRAMMAR)

TEORI BAHASA DAN OTOMATA [TBO]

Sumarni Adi TEKNIK INFORMATIKA STMIK AMIKOM YOGYAKARTA 2013

BAB IV ANALISA SINTAKS

SATUAN ACARA PERKULIAHAN (SAP) MATA KULIAH PENGANTAR TEKNIK KOMPILASI

Konsep dan Notasi Bahasa. Istiqomah, S.Kom

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

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

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

Teori Bahasa Formal dan Automata

SATUAN ACARA PERKULIAHAN STMIK UBUDIYAH INDONESIA SEMESTER GENAP TAHUN AKADEMIK 2013/2014

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

Dasar Teori Bahasa & Grammar

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

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

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

TEORI BAHASA DAN OTOMATA [TBO]

Aplikasi Simulator Mesin Turing Pita Tunggal

TUGAS MAKALAH TEORI BAHASA & AUTOMATA

Finite State Machine dapat berupa suatu mesin yang tidak memiliki output. Finite State Machine yang tidak mengeluarkan output ini dikenal

Parsing dapat dilakukan dengan cara : Penurunan terkiri (leftmost derivation) : simbol variable yang paling kiri diturunkan (tuntas) dahulu

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

Aplikasi Rekursif dalam Analisis Sintaks Program

TEORI BAHASA DAN OTOMATA PENGANTAR

TEORI BAHASA DAN OTOMATA

Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya. Bahasa-bahasa yang diterima oleh suatu finite state

BAB III AUTOMATA HINGGA NON-DETERMINISTIK DAN EKUIVALENSI AHN AHD - GR

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

EKSPRESI REGULAR PADA SUATU DETERMINISTIC FINITE STATE AUTOMATA

Teori Bahasa & Otomata

RENCANA PEMBELAJARAN SEMESTER

Deterministic Finite Automata

MODUL 1: PENGANTAR TEORI BAHASA

Penerapan Program Dinamis dalam Algoritma Cocke- Younger-Kasami dan Earley untuk Pemrosesan Bahasa Natural

TEORI BAHASA DAN AUTOMATA

TEORI BAHASA DAN AUTOMATA

Tujuan Penyederhanaan

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

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

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

Transkripsi:

Bab V Context Free Grammar dan Push Down Automata 26 BAB V CONTEXT FREE GRAMMAR DAN PUSH DOWN AUTOMATA TUJUAN PRAKTIKUM 1. Memahami CFG dan PDA 2. Memahami Context Free Grammar 3. Memahami Push Down Automata 4. Mengerti Tentang Operasi - Operasi yang dilakukan TEORI PENUNJANG 5.1 Context Free Grammar (CFG) Terinspirasi dari bahasa natural manusia, ilmuwan-ilmuwan ilmu komputer yang mengembangkan bahasa pemrograman turut serta memberikan tata bahasa (pemrograman) secara formal. Tata bahasa ini diciptakan secara bebas-konteks dan disebut CFG (Context Free Grammar). Hasilnya, dengan pendekatan formal ini, kompiler suatu bahasa pemrograman dapat dibuat lebih mudah dan menghindari ambiguitas ketika parsing bahasa tersebut. Contoh desain CFG untuk parser, misal : B -> BB (B) e untuk mengenali bahasa dengan hanya tanda kurung { (, ) } sebagai terminal-nya. Proses parsing adalah proses pembacaan untai dalam bahasa sesuai CFG tertentu, proses ini harus mematuhi aturan produksi dalam CFG tersebut. Secara formal, CFG didefinisikan [2] : CFG G = (V,T,P,S), dimana V adalah daftar variabel produksi T, adalah daftar simbol atau terminal yang dipakai dalam CFG P, adalah aturan produksi CFG S, adalah variabel start aturan produksi CFG dapat dinormalkan dengan pola tersendiri supaya tidak ambigu dan lebih sederhana, meskipun normalisasi CFG kadang membuat aturan produksi menjadi lebih banyak dari sebelumnya. Teknik normalisasi yang digunakan dalam makalah ini adalah CNF (Chomsky Normal Form).

Bab V Context Free Grammar dan Push Down Automata 27 Gambar 5.1. Gambaran parsing bahasa natural (Inggris) Contoh desain CNF dari bahasa CFG, semisal CFGberikut: S -> aa bb (1) A-> Baa ba B -> baa ab CFG (1) tersebut ekivalen dengan CFG dibawah ini,dimana symbol terminal memiliki variabel produksi tersendiri: S -> DA EB (2) A -> BDD ED B -> EAA DE D -> a E -> b CNF yang dihasilkan dari CFG (2) diatas ialah: S -> DA EB (3) A -> BF ED B -> EH DE F -> DD H -> AA D -> a E -> b

Bab V Context Free Grammar dan Push Down Automata 28 Setelah terbentuk CFG yang telah dinormalkan secara CNF, dalam implementasi parsing, terdapat algoritma yang berguna untuk menentukan apakah suatu untai valid, atau dapat diciptakan dari aturan-aturan CFG yang ada. Salah satu algoritma yang dapat dipakai adalah Algoritma Cocke-Younger-Kasami (CYK). Algoritma ini menyelesaikan masalah analisa kembali sebuah sub-untai yang sama karena seharusnya analisa sub-untai independen terhadap parsing sub-untai yang diparsing setelahnya. Dengan Program Dinamis, independensi yang diinginkan dapat dicapai ketika parsing. Algoritma CYK termasuk dalam bidang Program Dinamis karena algoritma ini membangun tabel status dua dimensi ketika parsing dimana penentuan parsing selanjutnya diturunkan atau dihasilkan dari parsing sebelumnya, hingga akhir untai. Selain untuk mengetahui validitas untai dalam suatu CFG, algoritma CYK yang dimodifikasi dapat dipergunakan pula untuk membangun pohon parsing. Gambar 5.2 Pohon parsing yang terbentuk dari sebuah bahasa natural Contoh 1 : Diketahui grammar G 1 = {I H I H IA, H a b c... z, A 0 1 2... 9} dengan I adalah simbol awal. Berikut ini kedua cara analisa sintaks untuk kalimat x23b.

Bab V Context Free Grammar dan Push Down Automata 29 cara 1 (derivasi) I IH IAH IAAH HAAH xaah x2ah x23h x23b cara 2 (parsing) Sebuah kalimat dapat saja mempunyai lebih dari satu pohon. Contoh 2 : Diketahui grammar G 2 = {S SOS A, O * +, A 0 1 2... 9} Kalimat : 2*3+7 mempunyai dua pohon sintaks berikut : Sebuah kalimat yang mempunyai lebih dari satu pohon sintaks disebut kalimat ambigu (ambiguous). Grammar yang menghasilkan paling sedikit sebuah kalimat ambigu disebut grammar ambigu.

Bab V Context Free Grammar dan Push Down Automata 30 5.2 Push Down Automata (PDA) PDA adalah mesin otomata dari TBBK yang diimplementasikan dengan stack sehingga hanya terdapat operasi push dan pop Stack (tumpukan) adalah suatu struktur data yang menggunakan prinsip LIFO (Last In First Out). Sebuah stack selalu memiliki top of stack dan elemen-elemen stack itu yang akan masuk ke dalam stack dengan method push dan akan keluar dari stack dengan method pop. Definisi : PDA adalah pasangan 7 tuple M = (Q, Σ, Γ, q 0, Z 0, δ, A), dimana : Q : himpunan hingga stata, Σ : alfabet input, Γ : alfabet stack, q 0 Q : stata awal, Z 0 Γ : simbol awal stack, A Q : himpunan stata penerima, Q Γ* fungsi transisi δ : Q (Σ {ε}) Γ 2 (himpunan bagian dari Q Γ*) Untuk stata q Q, simbol input a Σ, dan simbol stack X Γ, δ(q, a, X) = (p, α) berarti : PDA bertransisi ke stata p dan mengganti X pada stack dengan string α. Konfigurasi PDA pada suatu saat dinyatakan sebagai triple (q, x, α), dimana : q Q : stata pada saat tersebut, x Σ* : bagian string input yang belum dibaca, dan α Γ* : string yang menyatakan isi stack dengan karakter terkiri menyatakan top of stack. Misalkan (p, ay, Xβ) adalah sebuah konfigurasi, dimana : a Σ, y Σ*, X Γ, dan β Γ*. Misalkan pula δ(p, a, X) = (q, γ) untuk q Q dan γ Γ*. Dapat kita tuliskan bahwa : (p, ay, Xβ) (q, y, γβ). Sebuah PDA dinyatakan dengan : Q = himpunan state Σ = himpunan simbol input T = simbol stack = fungsi transisi S = state awal F = state akhir Z = top of stack

Bab V Context Free Grammar dan Push Down Automata 31 PDA memiliki 2 jenis transisi, yaitu yang merima simbol input, simbol top of stack, dan state. Setiap pilihan terdiri dari state berikutnya dan simbol- simbol. Penggantian isi stack dilakukan dengan opersi push dan pop. Jenis transisi yang kedua adalah transisi ε. Transisi ε tidak melakukan pembacaan input namun hanya menerima simbol top of stack dan state. Transisi ini memungkinkan PDA untuk memanipulasi isi stack dan berpindah antar state tanpa membaca input. Contoh 14 (PDA Deterministik): PDA M = (Q, Σ, Γ, q 0, Z 0, δ, A) pengenal palindrome L = {xcx T x (a b)*}, dimana x T adalah cermin(x), mempunyai tuple : Q = {q 0, q 1, q 2 }, A = { q 2 }, Σ = {a, b, c}, Γ = {a, b, Z 0 }, dan fungsi transisi δ terdefinisi melalui tabel berikut : Sebagai contoh, perhatikan bahwa fungsi transisi No. 1 dapat dinyatakan sebagai : δ(q 0, a, Z 0 ) = (q 0, az 0 ). Pada tabel transisi tersebut terlihat bahwa pada stata q 0 PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi stata ke stata q 1 jika mendapat input c. Pada stata q 1 PDA akan melakukan POP. Berikut ini pengenalan dua string oleh PDA di atas : 1. abcba : (q 0, abcba, Z 0 ), bcba, az 0 ) (1), cba, baz 0 ) (4), ba, baz 0 ) (9), a, az 0 ) (11), ε, Z 0 ) (10) (q 2, ε, Z 0 ) (12) (diterima)

Bab V Context Free Grammar dan Push Down Automata 32 2. acb : (q 0, acb, Z 0 ), cb, az 0 ) (1), b, az 0 ) (8), (crash ditolak) 3. ab : (q 0, ab, Z 0 ), b, az 0 ) (1), ε, baz 0 ) (4) (crash ditolak) Penerimaan dan penolakan tiga string di atas dapat dijelaskan sebagai berikut : 1. string abcba diterima karena tracing sampai di stata penerima (q 2 ) dan string abcba selesai dibaca (string yang belum dibaca = ε) 2. string acb ditolak karena konfigurasi akhir (q 1, b, a Z 0 ) sedangkan fungsi transisi δ(q 1, b, a) tidak terdefinsi 3. string ab ditolak karena konfigurasi akhir (q 0, ε, baz 0 ) sedangkan fungsi transisi δ(q 0, ε, b) tidak terdefinsi Ilustrasi graf fungsi transisi PDA di atas ditunjukkan melalui gambar berikut : Notasi (p, ay, Xβ) (q, y, γβ) dapat diperluas menjadi : (p, x, α) * (q, y, β), yang berarti konfigurasi (q, y, β) dicapai melalui sejumlah (0 atau lebih) transisi. Ada dua cara penerimaan sebuah kalimat oleh PDA, yang masing-masing terlihat dari konfigurasi akhir, sebagaimana penjelasan berikut :

Bab V Context Free Grammar dan Push Down Automata 33 Jika M = (Q, Σ, Γ, q 0, Z 0, δ, A) adalah PDA dan x Σ*, maka x diterima dengan stata akhir (accepted by final state) oleh PDA M jika : (q 0, x, Z 0 ) * (q, ε, α) untuk α Γ * dan q A. x diterima dengan stack hampa (accepted by empty stack) oleh PDA M jika : (q 0, x, Z 0 ) * (q, ε, ε) untuk q Q. Contoh 15 (PDA Non-Deterministik): PDA M = (Q, Σ, Γ, q 0, Z 0, δ, A) pengenal palindrome L = {xx T x (a b)*} mempunyai komponen tuple berikut : Q = {q 0, q 1, q 2 }, A = { q 2 }, Σ = {a, b}, Γ = {a, b, Z 0 }, dan fungsi transisi δ terdefinisi melalui tabel berikut : Pada tabel transisi tersebut terlihat bahwa pada stata q 0 PDA akan melakukan PUSH jika mendapat input a atau b dan melakukan transisi stata ke stata q 1 jika mendapat input ε. Pada stata q 1 PDA akan melakukan POP. Contoh 14 dan 15 menunjukkan bahwa PDA dapat dinyatakan sebagai mesin PUSH-POP. Berikut ini pengenalan string baab oleh PDA di atas : 1. (q 0 ), aab, bz 0 ) (2 kiri), ab, abz 0 ) (5 kiri), ab, abz 0 ) (3 kanan), b, bz 0 ) (11), ε, Z 0 ) (10) (q 2, ε, Z 0 ) (12) (diterima)

Bab V Context Free Grammar dan Push Down Automata 34 2. (q 0 ) ) (2 kanan) (crash ditolak) 3. (q 0 ), aab, bz 0 ) (2 kiri), ab, abz 0 ) (5 kiri), b, aabz 0 ) (3 kiri), b, aabz 0 ) (4 kanan) (crash ditolak) 4. (q 0 ), aab, bz 0 ) (2 kiri), ab, abz 0 ) (5 kiri), b, aabz 0 ) (3 kiri), ε, baabz 0 ) (4 kiri), ε, baabz 0 ) (9) (crash ditolak)