Push Down Automata Otomata dan Pengantar Kompilasi Tujuan

  • Slides: 26
Download presentation
Push Down Automata Otomata dan Pengantar Kompilasi

Push Down Automata Otomata dan Pengantar Kompilasi

Tujuan Instruksional Khusus (TIK) Menjelaskan konsep-konsep dasar PDA Perbedaan PDA dengan DFA Menjelaskan cara

Tujuan Instruksional Khusus (TIK) Menjelaskan konsep-konsep dasar PDA Perbedaan PDA dengan DFA Menjelaskan cara kerja stack awal dan top stack 2

Pendahuluan PDA merupakan mesin berbasis CFG yang memiliki 7 tuple. FA mempunyai memori yg

Pendahuluan PDA merupakan mesin berbasis CFG yang memiliki 7 tuple. FA mempunyai memori yg terbatas sebaliknya PDA mempunyai memori yang tak terbatas disebut stack Stack adalah suatu tempat penyimpanan di PDA yang berlaku sifat LIFO (last in first out) 3

PDA • Kalau di FSA kita mengenal 5 tupel, akan tetapi untuk PDA ada

PDA • Kalau di FSA kita mengenal 5 tupel, akan tetapi untuk PDA ada 7 tupel : • M=(Q, ∑, δ, г, S, F, Z), dengan • Q: kumpulan state (simbol non terminal) Next state • ∑: input (simbol terminal) • δ: tabel transisi/produksi δ(q 1, ɛ, Z)={(q 2, Z)} • Г: simbol kumpulan stack Next • S: initial state stack State awal • F: final state Stack awal • Z: stack awal input 4

Cara kerja stack • Stack awal A B C A • dipop B C

Cara kerja stack • Stack awal A B C A • dipop B C D • dipush D B C 5

Bagaimana kalau LIFO di PDA? Kondisi stack awal/existing Dipush BC Dipush BB Dipop B

Bagaimana kalau LIFO di PDA? Kondisi stack awal/existing Dipush BC Dipush BB Dipop B C B C

Cara membaca stack Contoh transisi PDA: δ: δ(q 1, ɛ, Z)={(q 2, Z)} δ(q

Cara membaca stack Contoh transisi PDA: δ: δ(q 1, ɛ, Z)={(q 2, Z)} δ(q 1, a, Z)={(q 1, AZ)} δ(q 1, b, Z)={(q 1, BZ)} δ(q 1, b, A)={(q 1, ɛ)} δ(q 1, b, A)={(q 1, B)} = stack terkini sama spt stack sebelumnya • δ(q 1, ɛ, Z)={(q 2, Z)} state q 1 dgn stack awal Z, membaca input ɛ (tanpa membaca input) menghasilkan state q 2 dengan top stack/stack awal Z • δ(q 1, a, Z)={(q 1, AZ)} state q 1 dgn stack awal Z, membaca input a menghasilkan state q 1 dgn top stack AZ (push A) • δ(q 1, b, Z)={(q 1, BZ)} (push B) • δ(q 1, b, A)={(q 1, ɛ)} state q 1 dgn stack awal A, membaca input b, menghasilkan state q 1 dgn stack di pop 7

Contoh soal : Diket PDA sbb: n n n Q ={q 1, q 2}

Contoh soal : Diket PDA sbb: n n n Q ={q 1, q 2} ∑={a, b} Г={A, B, Z} S=q 1 F=q 2 Z=Z Dengan fungsi transisi sbb: δ: 1. δ(q 1, ɛ, Z)={(q 2, Z)} 2. δ(q 1, a, Z)={(q 1, AZ)} 3. δ(q 1, b, Z)={(q 1, BZ)} 4. δ(q 1, a, A)={(q 1, AA)} 5. δ(q 1, b, A)={(q 1, ɛ)} 6. δ(q 1, a, B)={(q 1, ɛ)} 7. δ(q 1, b, B)={(q 1, BB)} • Buktikan string “abba” dihasilkan PDA ini… 8

Jawaban : • δ(q 1, abba, Z) =(q 1, bba, AZ)---(2) =(q 1, ba,

Jawaban : • δ(q 1, abba, Z) =(q 1, bba, AZ)---(2) =(q 1, ba, Z)---(5) =(q 1, a, BZ)---(3) =(q 1, ɛ, Z)---(6) =(q 2, Z)---(1) • State terakhir ada di q 2 dan string terserap habis, sehingga string ‘abba’ dihasilkan oleh PDA diatas, dgn stack sisa Z (top stack). 9

PDA deterministik • PDA : M = (Q, , , S, Z , ,

PDA deterministik • PDA : M = (Q, , , S, Z , , F) • Q = {q 0 , q 1 , q 2 }, S={q 0}, F = { q 2 }, = {a, b, c}, = {A, B, Z }, Z={Z}, dan fungsi transisi : No State Input Top stack Hasil 1 q 0 a Z (q 0, AZ) 2 q 0 b Z (qo, BZ) 3 q 0 a A (q 0, AA) 4 q 0 b A (qo, BA) 5 q 0 a B (q 0, AB) 6 q 0 b B (q 0, BB) No Stat e Inpu t Top stac k Hasil 7 q 0 c Z (q 1, Z) 8 q 0 c A (q 1, A) 9 q 0 c B (q 1, B) 10 q 1 a A (q 1, ɛ) 11 q 1 b B (q 1, ɛ) 12 q 1 ɛ Z (q 2, Z) Bagaimana dengan acb, abcba, bbaacc? 10

Bagaimana dengan PDA tanpa tujuan? ? ? Jika menemukan kasus PDA tanpa final state

Bagaimana dengan PDA tanpa tujuan? ? ? Jika menemukan kasus PDA tanpa final state (F) yang jelas alias Ø, maka : 1. Diterima jika string terserap habis oleh fungsi transisi 2. Ditolak jika string tidak terserap habis oleh fungsi transisi

Contoh lain : • Diketahui Push. Down Automata (PDA) (Q, S, , T, Z,

Contoh lain : • Diketahui Push. Down Automata (PDA) (Q, S, , T, Z, F, ) dengan : • Q = {q 0 , q 1 }, S = q 0 , = {0, 1}, T = {X, Z}, F = Ø dan • fungsi transisi sebagai berikut : 1. (q 0, 1, Z) = (q 0, XZ) 2. (q 0, 1, X) = (q 0, XX) 3. (q 0, 0, X) = (q 1, X) 4. (q 0, ε, Z) = (q 0, ε) 5. (q 1, 1, X) = (q 1, ε) 6. (q 1, 0, Z) = (q 0, Z) • Periksalah apakah string 101, 110101, 111011 diterima atau ditolak?

PDA Non-deterministik NPDA : M = (Q, , , S, Z , , F)

PDA Non-deterministik NPDA : M = (Q, , , S, Z , , F) Q = {q 0 , q 1 , q 2 }, S={q 0}, F = { q 2 }, = {a, b}, = {A, B, Z }, Z= {Z}, dan fungsi transisi : No State Inp Top stack Hasil No Stat e Inp Top stack Hasil 1 q 0 a Z (q 0, AZ) ; (q 1, Z) 7 q 0 ɛ Z (q 1, Z) 2 q 0 b Z (qo, BZ) ; (q 1, Z) 8 q 0 ɛ A (q 1, A) 3 q 0 a A (q 0, AA) ; (q 1, A) 9 q 0 ɛ B (q 1, B) 4 q 0 b A (qo, BA) ; (q 1, A) 10 q 1 a A (q 1, ɛ) 5 q 0 a B (q 0, AB) ; (q 1, B) 11 q 1 b B (q 1, ɛ) 6 q 0 b B (q 0, BB) ; (q 1, B) 12 q 1 ɛ Z (q 2, ɛ) 13

Termasuk dalam L (M) ? ? ? String ‘aba’? String ‘baab’? Sting ‘abc’? 14

Termasuk dalam L (M) ? ? ? String ‘aba’? String ‘baab’? Sting ‘abc’? 14

“aba” • ‘aba’ (q 0, aba, Z) (q 0, ba, AZ) (1. kiri) (q

“aba” • ‘aba’ (q 0, aba, Z) (q 0, ba, AZ) (1. kiri) (q 0, ba, AZ) (q 0, a, BAZ) (4. kiri) (q 0, a, BAZ) (q 0, ɛ, ABAZ) (5. kiri) (q 0, ɛ, ABAZ) ditolak ‘aba’ (q 0, aba, Z) (q 0, ba, AZ) (1. kiri) (q 0, ba, AZ) (q 1, a, AZ) (4. kanan) (q 1, a, AZ) (q 1, ɛ, Z) (10) (q 1, ɛ, Z) (q 2, ɛ) finish di q 2 (diterima) 15

Komponen PDA (1) 1. Himpunan berhingga alphabet input string untuk PDA dibentuk dari himpunan

Komponen PDA (1) 1. Himpunan berhingga alphabet input string untuk PDA dibentuk dari himpunan ini 2. Sebuah state START state untuk memulai penelusuran 3. Satu atau lebih operator READ state untuk melakukan pembacaan karakter input string 4. Dua atau lebih halt state yang berbentuk state ACCEPTED dan REJECTED input string dikenali jika penelusuran berhenti pada state ACCEPTED IFUPN Pertemuan XII 16

Komponen PDA (2) Contoh : IFUPN Pertemuan XII 17

Komponen PDA (2) Contoh : IFUPN Pertemuan XII 17

Komponen PDA 5. (3) Sebuah INPUT TAPE yang berisi sel-sel untuk menampung karakter-karakter input

Komponen PDA 5. (3) Sebuah INPUT TAPE yang berisi sel-sel untuk menampung karakter-karakter input string 6. Sebuah PUSHDOWN STACK untuk menampung karakter yang telah terbaca 7. Jumlah outgoing edge = 1, tetapi incoming edge >= 1 Satu atau lebih operator PUSH untuk memasukkan karakter yang telah terbaca ke dalam stack 8. Satu atau lebih operator POP Jumlah incoming edge = jumlah outgoing edge untuk mengambil/menghapus karakter dari stack IFUPN Pertemuan XII 18

Komponen PDA (4) Contoh : Penelusuran untuk input string : aaabbb adalah seperti berikut

Komponen PDA (4) Contoh : Penelusuran untuk input string : aaabbb adalah seperti berikut : IFUPN Pertemuan XII 19

Komponen PDA (5) Contoh : Misal dibuat PDA untuk bahasa palindrome yang berbentuk s

Komponen PDA (5) Contoh : Misal dibuat PDA untuk bahasa palindrome yang berbentuk s X reverse(s) dimana s adalah substring dari (a + b)* Bagian depan dari PDA akan mempunyai bentuk : Misal jika diberi input string abb. Xbba, maka pemrosesan untuk substring abb adalah seperti berikut : IFUPN Pertemuan XII 20

Komponen PDA (6) Sedang bagian lain dibuat untuk mengakomodasi penelusuran substring reverse(s) : Dan

Komponen PDA (6) Sedang bagian lain dibuat untuk mengakomodasi penelusuran substring reverse(s) : Dan substring bba akan diproses seperti berikut : IFUPN Pertemuan XII 21

Komponen PDA (7) Bentuk keseluruhan PDA untuk palindrome s X reverse(s) adalah seperti berikut

Komponen PDA (7) Bentuk keseluruhan PDA untuk palindrome s X reverse(s) adalah seperti berikut : IFUPN Pertemuan XII 22

Membentuk PDA dari CFG (and vice versa) (1) 1. Sebuah non-terminal X 1 yang

Membentuk PDA dari CFG (and vice versa) (1) 1. Sebuah non-terminal X 1 yang menjadi Start Symbol akan direpresentasikan menjadi : 2. Sebuah production Xi Xj. Xk, akan direpresentasikan menjadi : 3. Sebuah production Xi b, direpresentasikan menjadi : 4. Sebuah production Xi , akan menjadi : IFUPN Pertemuan XII 23

Membentuk PDA dari CFG (and Contoh : S AB A BB B AB vice

Membentuk PDA dari CFG (and Contoh : S AB A BB B AB vice versa) (2) A a B b Proses pembentukan PDA dari CFG di atas adalah seperti berikut : Untuk Start Symbol S : Untuk production : S AB A BB B AB IFUPN Pertemuan XII 24

Membentuk PDA dari CFG (and Sedangkan untuk production : vice versa) (3) S a

Membentuk PDA dari CFG (and Sedangkan untuk production : vice versa) (3) S a A a B b Bentuk keseluruhan PDA tersebut adalah : IFUPN Pertemuan XII 25

Referensi Utama Firrar Utdirartatmo, Teori Bahasa dan Otomata, JJ Learning, 2001 Firrar Utdirartatmo, Teknik

Referensi Utama Firrar Utdirartatmo, Teori Bahasa dan Otomata, JJ Learning, 2001 Firrar Utdirartatmo, Teknik Kompilasi, JJ Learning, 2001 Pendamping Aho, Ulman. The Teory of Parsing Translation And Compiling. Prentice-Hall. 1972 Grune , Modern Compiler Design, John Wiley and Sons , 2002 Peter Linz, An Introduction to Formal Language and Automata, DC Healt & Co, 1990 26