1 / 17

Teori Bahasa dan Automata

Teori Bahasa dan Automata. Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata. Ekspresi Regular – Introduction. Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya

pomona
Télécharger la présentation

Teori Bahasa dan Automata

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TeoriBahasadan Automata Ekspresi Regular Ekuivalensi Non Deterministic Finite Automata ke Deterministic Finite Automata

  2. Ekspresi Regular – Introduction • Sebuah bahasa dinyatakan regular jika terdapat finite state automata yang dapat menerimanya • Bahasa-bahasa yang diterima oleh suatu finite state automata bisa dinyatakan secara sederhana dengan ekspresi regular (regular expression)  ER. • Memberikan suatu pola (pattern) atau template untuk string dari suatu bahasa • String yang menyusun suatu bahasa regular akan cocok (match) dengan pola bahasa itu • Penerapan ekspresi regular yang tampak misalnya string search pada suatu file, biasanya fasilitas ini ada pada text editor.

  3. Ekspresi Regular – Introduction • Contoh : Suatu field masukan hanya menerima input bilangan (0..9). 0,1,…9 0,1,2,…9 q1 q0 selain 0,1,2,…9 selain 0,1,2,…9 q2 FSA menerima bilangan integer tak bertanda Ekrspresi Regular yang dihasilkan adalah (digit) (digit)* dengan digit 0..9

  4. Ekspresi Regular – Introduction • ER juga dapat diaplikasikan untuk melakukan analisis leksikal dalam sebuah kompilator. Yaitu mengidentifikasikan unit-unit leksikal (token) yang dikenal dalam program. • Token-token pada suatu bahasa pemrograman kebanyakan tanpa kecuali dinyatakan sebagai sebuah ER . • Contoh: Suatu identifier baik huruf besar atau huruf kecil yang kemudian diikuti huruf atau digit, dengan tanpa pembatasan jumlah panjang bisa dinyatakan sebagai: (huruf)(huruf+digit)* huruf atau digit huruf q0 q1

  5. Notasi ER Terdapat 5 notasi dalam ER yaitu: ‘*’ , ‘+’ , ‘+’ , ‘’ , ‘.’ • * (karakter asterisk), berarti bisa tidak muncul, bisa juga muncul berhingga kali (0-n) • + (pada posisi superscript/ diatas) berarti minimal muncul satu kali (1-n) • + atau  berarti union • . (titik) berarti konkatensi, biasanya titik bisa dihilangkan, misal ab bermakna seperti a.b

  6. Notasi ER - Contoh • ER: ab*cc Contoh string: abcc, abbcc, abbbcc, abbbbcc, acc, (b bisa tidak muncul atau muncul sejumlah berhingga kali) • ER: 010* Contoh string : 01, 010, 0100, 01000 (jumlah 0 diujung bisa tidak muncul, bisa muncul berhingga kali) • ER: a*d Contoh string : d, ad, aad, aaad • ER: a+d Contoh string: ad, aad, aaad --- (a minimal muncul sekali)

  7. Notasi ER -Contoh • ER: a*b* (ingat ‘’ berarti atau) Contoh string : a, b, aa, bb, aaa, bbb, aaaa, bbbb • ER: (ab) --- Contoh string: a, b • ER: (ab)* Contoh string : a, b, ab, ba, abb, bba, aaaa, bbbb (string yang memuat a atau b) ---- * perhatikan : notasi ‘’ kadang dituliskan juga sebagai ‘+’ --- • ER: 01*+0 Contoh string: 0, 01, 011, 0111, 01111, (string yang berawalan dengan 0, dan selanjutnya boleh diikuti deretan 1)

  8. Konstruksi NFA Dari ER Yang Ditentukan 0,1 NFA untuk ER: ab a q0 q1 b q2 0 q1 q0 q0 a q1 b untuk ER: 0 (10)* q2 NFA untuk ER: a b

  9. 0,1 0 q0 q1 0,1 0 q0 q1 0,1 1 q2 Ekuivalensi NFA ke DFA • Dari sebuah mesin Non-deterministic Finite Automata dapat dibuat mesin Deterministic Finite Automata-nya yang ekivalen (bersesuaian) • Ekivalen disini artinya mampu menerima bahasa yang sama L(M1) = L(M2)

  10. Ekuivalensi NFA ke DFA – Steps • Membuat tabel transisi • Mulai dari state awal • Ikuti transisinya untuk membentuk state-state baru • Untuk setiap state yang terbentuk diikuti lagi transisinya sampai ter’cover’ semua

  11. 0 1 q0 q1 0,1 1 Ekuivalensi NFA ke DFA – Contoh Mesin otomata NFA • Buat Tabel Transisi

  12. q0 q1 1 q0 q0, q1 0 Ekuivalensi NFA ke DFA – Contoh • Mulai dari state awal (q0) • Telusuri state berikutnya • state q0 bila memperoleh input 0 menjadi stateq0, q1 • state q0 bila memperoleh input 1 menjadi stateq1 Hasil dari penelusuran q0 * Setiap state dituliskan sebagai himpunan state

  13. Ekuivalensi NFA ke DFA – Contoh • Ikuti transisinya untuk membentuk state-state baru • state q1 bila memperoleh input 0 menjadi state • state q1 bila memperoleh input 1 menjadi stateq0, q1 • state q0, q1 bila memperoleh input 0 menjadi stateq0, • q1, ini di peroleh dari  (q0,0)= q0, q1 di gabung dengan •  (q1,0) =, maka hasilnya  (q0, q1, 0) =q0, q1 • state q0, q1 bila memperoleh input 1 menjadi stateq0, q1, • ini di peroleh dari  (q0,1)= q1 di gabung dengan  (q1,1) = q0, q1, • maka hasilnya  (q0, q1, 1) = q0, q1 * Setiap state dituliskan sebagai himpunan state

  14. q1 q1 1 1 0 0 q0 q0   1 1 q0, q1 q0, q1 0 0 0,1 0,1 Ekuivalensi NFA ke DFA – Contoh Hasilsetelahpenusuran q1danq0, q1 *  merupakan sebuah state • Telusuri state  State menerima input 0 atau 1 menjadi state, atau  (,1)=  0,1

  15. q1 1 0 q0 1  0,1 q0, q1 0 0,1 Ekuivalensi NFA ke DFA – Contoh Dari NFA, kita tahu bahwa himpunan state akhjr adalah q1, maka pada DFA yg dihasilkan state-state akhir merupakan semua state yg mengandung q1. F = {{q1 }, {q0, q1 }} Mesin DFA yang ekivalen dengan NFA

  16. Ekuivalensi NFA ke DFA – Contoh Pembuktian : String ‘001’ Dari diagram NFA kita bisa lihat bahwa ∂(q0,001) dapat diterima oleh NFA tsb. Untuk DFA kita lihat: ∂(q0,001) = ∂(q0, q1,01)= ∂ (q0, q1,1)= q0, q1 Karena stateq0, q1 termasuk state akhir, maka berarti string tersebut diterima.

More Related