Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Teori Bahasa dan 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). q1 q0 q2 0,1,2,…9 0,1,…9 selain 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)* q1 q0 huruf atau digit huruf
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: (ab) Contoh string: a, b ER: (ab)* 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
q2 q0 q1 b a q0 q1 0,1 NFA untuk ER: ab q1 q0 q2 a b untuk ER: 0 (10)* NFA untuk ER: a b
10
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) q2 q1 q0 1 0,1 q1 q0 0,1
11
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
12
Ekuivalensi NFA ke DFA – Contoh
q1 q0 0,1 1 Mesin otomata NFA Buat Tabel Transisi 1 q0 q0, q1 q1 q1
13
Ekuivalensi NFA ke DFA – Contoh
Mulai dari state awal (q0) q0 Telusuri state berikutnya state q0 bila memperoleh input 0 menjadi state q0, q1 state q0 bila memperoleh input 1 menjadi state q1 q0, q1 q0 q1 1 Hasil dari penelusuran q0 * Setiap state dituliskan sebagai himpunan state
14
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
15
Ekuivalensi NFA ke DFA – Contoh
q0, q1 q0 q1 1 0,1 Hasil setelah penusuran q1 dan q0, q1 * merupakan sebuah state Telusuri state State menerima input 0 atau 1 menjadi state , atau (,1)= q0, q1 q0 q1 1 0,1
16
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 }} q0 1 0,1 q1 q0, q1 Mesin DFA yang ekivalen dengan NFA
17
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.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.