Otomata dan Pengantar Kompilasi Ekspresi Reguler Heru Cahya

  • Slides: 20
Download presentation
Otomata dan Pengantar Kompilasi Ekspresi Reguler Heru Cahya R, S. Si. , M. T.

Otomata dan Pengantar Kompilasi Ekspresi Reguler Heru Cahya R, S. Si. , M. T. Rifki Indra, S. Kom. , M. Eng Materi dapat diunduh di http: //rifki. upnyk. ac. id Atau segera join ke http: //learning. upnyk. ac. id 1

Deskripsi 2 Ekspresi reguler dan hubungannya dengan Automata

Deskripsi 2 Ekspresi reguler dan hubungannya dengan Automata

Tujuan Instruksional Khusus (TIK) 1. 2. 3. 3 Menjelaskan ekspresi reguler Menentukan bahasa reguler

Tujuan Instruksional Khusus (TIK) 1. 2. 3. 3 Menjelaskan ekspresi reguler Menentukan bahasa reguler dari ekspresi reguler, dan sebaliknya Membuat FA dengan ekspresi reguler

Gagasan Ekspresi Reguler Pada tahun 1940, 2 orang neuro-physiologist, Warren Mc. Culloch dan Walter

Gagasan Ekspresi Reguler Pada tahun 1940, 2 orang neuro-physiologist, Warren Mc. Culloch dan Walter Pitts mengembangkan sebuah model sistem syaraf yang disebut Finite Automata. Matematikawan Stephen Kleene memformalkan model tersebut melalui sebuah sistem aljabar yang berbentuk himpunan regular. Selanjutnya himpunan ini disebut sebagai Regular Expression.

Teorema Ekspresi Reguler Dikarenakan peruntukkannya, regular expression sering disebut sebagai language-defining expression atau language-defining

Teorema Ekspresi Reguler Dikarenakan peruntukkannya, regular expression sering disebut sebagai language-defining expression atau language-defining tool. Atau alat untuk mendefinisikan sebuah bahasa. Sebarang bahasa apapun yang dapat terdefinisi melalui alat ini disebut sebagai regular language. Sebuah himpunan regular expression dapat didefinisikan melalui aturan berikut : 1. adalah regular expression; 2. Jika R dan S masing 2 adalah regular expression, maka : (i). (R) dan (S) masing 2 adalah regular expression (ii). Produk concatenate : RS adalah regular expression (iii). Produk union : R+S adalah regular expression (iv). Produk kleen closure : R* atau S* masing 2 adalah regular expression 3. Tidak ada aturan lain untuk membentuk regular expression, selain kedua

Ekspresi Reguler Ekspresi bahasa seperti di bawah ini : L 2 = { ,

Ekspresi Reguler Ekspresi bahasa seperti di bawah ini : L 2 = { , x, xxx, xxxx, … } Dapat ditulis berbasiskan simbol seperti berikut : S = {x} L 2 = S* Atau, bahasa L 2 dapat pula dinyatakan sebagai : L 2 = Language(x*) RE FSA NFA atau DFA

Bahasa Reguler Apabila r adalah RE, maka L(r) adalah bahasa reguler yang dibentuk menggunakan

Bahasa Reguler Apabila r adalah RE, maka L(r) adalah bahasa reguler yang dibentuk menggunakan ekspresi reguler r. Ex 0 : (a+b) --- bahasa yang dihasilkan : a atau b salah satu Ex 1 : ab*cc ( bahasa yang dihasilkan dari bentuk tersebut : acc, abbcc, abbbcc) – b bisa tidak muncul atau muncul sejumlah berhingga kali Ex 2: 010* ( bahasa yang dihasilkan dari bentuk tersebut : 01, 0100, 01000) – 0 bisa tidak muncul atau muncul berhingga kali Ex 3: (a+b)* ( bahasa yang dihasilkan dari bentuk tersebut : a, b, abb, aaaa, bbbb, aaaabbbbb) – a dan b boleh tdk muncul, atau a atau b boleh muncul sampai berhingga kali Ex 4: (0+1)*00(0+1)* (bhs yg dihasilkan 7 0000, 0001, 0000, 100011, 1001, . . ) - himpunan biner yang

Ekspresi Reguler Contoh : Terdapat himpunan alphabet = {a, b} Dan didefinisikan sebuah bahasa

Ekspresi Reguler Contoh : Terdapat himpunan alphabet = {a, b} Dan didefinisikan sebuah bahasa L = {a, abb, abbbb, … } Melalui RE, L dapat dinyatakan sebagai L = Language(ab*) Contoh : Terdapat himpunan alphabet = {x} Dan didefinisikan sebuah bahasa L = {x, xxx, … } Melalui RE, L dapat dinyatakan sebagai L = Language(x+)

Ekspresi Reguler Contoh : Terdapat himpunan alphabet = {a, b} Dan didefinisikan sebuah bahasa

Ekspresi Reguler Contoh : Terdapat himpunan alphabet = {a, b} Dan didefinisikan sebuah bahasa L = {a, b, aa, ab, bb, aaa, aab, … } Melalui RE, L dapat dinyatakan sebagai L = Language(a*b*) INGAT : a*b* (ab)* Contoh : Jika terdapat 2 himpunan bahasa P = {a, bbbb} dan Q = { , bb} Maka P. Q = {a, bbbb, abb, bbbbbb} Dan RE dari bahasa tersebut adalah a*(bb)* Contoh : Jika terdapat 2 himpunan bahasa M = { , x, xx} dan Q = { , y, yyy, … } Maka PQ = { , y, yyy, …, x, xyy, xyyy, …, xxy, xxyyy, … } Dan RE dari bahasa tersebut adalah y* + xy*+ xxy*

Bahasa Reguler Ex 1. Tentukan bahasa reguler yang dibentuk oleh r=(aa)* Jawab L(r) =

Bahasa Reguler Ex 1. Tentukan bahasa reguler yang dibentuk oleh r=(aa)* Jawab L(r) = L( (aa)* ) = { , aaaa, aaaaaa, . . . } = { a 2 n | n 0 } menyatakan himpunan string a dengan jumlah genap Ex 2. Tentukan bahasa reguler yang dibentuk oleh r=(aa)*(bb)*b Jawab L(r) = L( (aa)* (bb)*b ) = { a 2 n b 2 m+1 | n, m 0 } Ex 3. Tentukan ekspresi reguler pada = {0, 1}, yaitu L(r) = { w * | w memiliki substring ‘ 00’ } Jawab RE= (0+1)*00(0+1)* 10

Hubungan RE dan Finite Automata - ER bisa digunakan untuk membentuk diagram state -

Hubungan RE dan Finite Automata - ER bisa digunakan untuk membentuk diagram state - ER dapat membentuk FA dengan DFA/NDFA/emove …. (akan dijelaskan di. BAB 5 -6 -7) 11

Hubungan RE dan diagram state. . (2) Ekspresi FSA ɛ q 0=q 1 Ø

Hubungan RE dan diagram state. . (2) Ekspresi FSA ɛ q 0=q 1 Ø q 0 a a*b q 0 12 q 1 a ɛ q 1 b q 2 q 0 b q 1

Ekspresi FSA ab a q 0 a+b (ab)* q 0=q 1 q 0 b

Ekspresi FSA ab a q 0 a+b (ab)* q 0=q 1 q 0 b q 1 a, b q 0 q 1 a q 1 b (aa) 13 q 0 aa q 2 q 1

Hubungan RE dan NFA. . (4) > 14 q 0 a b q 1

Hubungan RE dan NFA. . (4) > 14 q 0 a b q 1

Bagaimana ER menerima string? ? Diberikan ER : 1*01*01*, Selidiki apakah string 110100, 10011

Bagaimana ER menerima string? ? Diberikan ER : 1*01*01*, Selidiki apakah string 110100, 10011 diterima atau tidak dengan asumsi bahwa (final state=state paling akhir) dan (inisial state=state terdepan)? Misal statenya adalah q 0, q 1, q 2…. , qn Inisial state adalah q 0 Final state adalah qn 15

1*01*01* Diagram state-nya : 1 > 16 qo 1 0 q 1 1 0

1*01*01* Diagram state-nya : 1 > 16 qo 1 0 q 1 1 0 q 2

Tabel transisi Dari diagram state diatas, kita mendapat tabel transisi : q->0, 1 0

Tabel transisi Dari diagram state diatas, kita mendapat tabel transisi : q->0, 1 0 1 q 0 q 1 q 2 - q 2 Dari diagram state diatas dapat diketahui S = qo dan F = q 2 17

Tabel transisi 1. 110100 (q 0, 110100)├(q 0, 10100)├ (q 0, 0100) ├ (q

Tabel transisi 1. 110100 (q 0, 110100)├(q 0, 10100)├ (q 0, 0100) ├ (q 1, 00) ├ (q 2, 0) ├ (X) (tidak terdefinisi) sehingga tidak diterima 2. 10011 (q 0, 10011) ├ (q 0, 0011) ├ (q 1, 011) ├ (q 2, 1) ├ (q 2) ├ sehingga diterima. Karena string sudah terserap habis dan berhenti di state akhir q 2, maka string diterima oleh ER. 18

Latihan soal 1. 2. 3. 1. 2. 3. 4. 19 Carilah ER dari semua

Latihan soal 1. 2. 3. 1. 2. 3. 4. 19 Carilah ER dari semua kemungkinan string pada L((a+b)*b(a+ab)*) dengan panjang string kurang dari 4. . Tentukan ekspresi reguler pembentuk bahasa pada = {a, b, c}, yaitu a. L(r) = { w * | w memiliki tepat sebuah simbol ‘a’ } b. L(r) = { w * | w minimal 3 buah simbol ‘a’} c. L(r) = { w * | w mengandung substring 'abc'} Tentukan ekspresi reguler pembentuk bahasa pada = {0, 1}, yaitu a. L(r) = { w * | w diakhiri dengan string 01 } b. L(r) ={ w * | w tidak diakhiri dengan string 01 } c. L(r) ={ w * | w mengandung simbol ‘ 0’ sebanyak 2 } Buatlah diagram state (FSA) untuk ER dibawah ini dan cari 3 string panjangnya min |4| yg bisa dibentuk dari ER tsb : a. (0+1)*00 b. (0+1)*001*01 c. (0+1)*1(0+1)

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 20