Bahasa Reguler dan Tata
Bahasa Reguler
Aji Purwinarko
Bahasa Reguler
•Kita telah mendefinisikan bahasa reguler, mempelajari beberapa cara di mana bahasa reguler dapat diwakili dan telah melihat beberapa contoh
kegunaannya.
•Pertanyaan pertama yang kita ajukan adalah apa yang terjadi ketika kita
melakukan operasi pada bahasa reguler?
•Operasi yang kita gunakan adalah operasi himpunan sederhana, seperti
penggabungan, serta operasi di mana setiap stringbahasa diubah.
•Apakah bahasa yang dihasilkan masih teratur? Kita menyebutnya
sebagai closure. Sifat-sifat closuresebagian besar digunakan untuk kepentingan
teoretis, membantu kita dalam membedakan berbagai rumpun bahasa yang
akan kita jumpai.
•Serangkaianpertanyaan kedua tentang rumpun bahasa berhubungan dengan kemampuan kita untuk memutuskan sifat-sifat tertentu. Misalnya, dapatkah kita mengetahui apakah suatu bahasa terbatas atau tidak? Seperti yang akan kita lihat, pertanyaan-pertanyaan seperti itu mudahdijawab untuk bahasa-bahasa biasa, tetapi tidak semudah itu untuk rumpun bahasa lain.
•Bagaimana kita dapat mengetahui apakah suatu bahasa tertentu teratur atau tidak?Jika bahasa tersebut sebenarnya reguler, kita selalu dapat menunjukkannya dengan memberikan beberapa DFA, ekspresi reguler, atautata bahasa reguler. Tapi jika tidak, kita perlu cara lain. Salah satu cara untuk menunjukkan suatu bahasa tidak teratur adalahdengan mempelajari sifat-sifat umum bahasa reguler, yaitukarakteristik yang dimiliki oleh semua bahasa reguler. Jika kita mengetahui beberapa sifat seperti itu, dan jika kita dapat menunjukkan bahwa bahasa kandidat tidak memilikinya, maka kita dapat mengatakan bahwa bahasa tersebut tidak teratur.
PenggabunganAutomata
•Penggabungandapatdilakukandng2 Cara
•Paralel
•Serial
•Untukpenggabunganparallel automata M dan N, darisymbol automata
yang baru, kitabentukkemungkinan2 transisiuntuksymbol awaldari
string. Transisipertamadariawalstate barukestate yang adapada state(M)
yang dapatdicapaidengansymbol tersebutsebagaiinput pertamapada M.
kemungkinantransisikeduauntuksymbol yang samasehinggamencapai
state pada state(N) jikatersebutadalahinputyang pertamapada N. daristete
iniautomata baruberaksisebagaiM atauN. Penyesuaianlain yang perlu
dilakukanadalahmembuatstate awalmenjadiaccepting jikaautomata menerimastring kosong. Automata iniakanmenerimaBahasa gabungan
dariBahasa yang diterimaoleh M dan N.
•Proses penggabungandariautomata A dan A’ dengancaraparallel untuk
membentuknon-deterministic automata M
1.Kita asumsikanbahwastate(A) dan state(A’) adalahdisjoint dan tak
satupundisebutstate awalS0
2.#$%$&'={S0}∪#$%$&)∪#$%$&()′)
3.#$%$&%.%/'=S0
4.Jika 01#$%$&()), makafungsitransisi$2%34545'(s,x)
=fungsi$2%34545)(4,0)
5.Jika 01#$%$&()′), makafungsitransisi$2%34545'(s,x)
=fungsi$2%34545)′(4,0)
6.Fungsi$2%34545(')(4,00)= fungsitransisi$2%34545())(s,State
awal(A))∪fungsitransisi$2%34545()′)(s,Stateawal(A’))
7.)FF&G$53H'=)FF&G$53H)∪)FF&G$53H)!, jikatidakada
salah satumesinyang menerimastring kosong, dan)FF&G$53H'=
)FF&G$53H)∪)FF&G$53H)!∪{#0}, jikaadasalah satumesin
yang menerimastring kosong
•Menggabungkan automata secaraserial adalahsuatuide untukmembentuknondeterministic automata yang menghasilkanstring yang terdiridaristring pada suatuBahasa diikutidenganstring pada Bahasa yang lain
•Proses penggabungandariautomata A dan A’ dengancaraserial untukmembentuknon-deterministic automata M
1.Kita asumsikanbahwastate(A) dan state(A’) adalahdisjoint dan taksatupundisebutstate awalS02.#$%$&'={S0}∪#$%$&)∪#$%$&()′)
3.#$%$&%.%/'=#$%$&)
4.Jika 01#$%$&()′), makafungsi$2%34545)′(s,x)=fungsi$2%34545)′(4,0)
5.Jika 01#$%$&()), dan 0bukanaccepting state,makafungsi$2%34545'(s,x)=fungsi$2%34545)(4,0)
6.Jika 01#$%$&()), dan 0accepting state, makafungsi$2%34545(')(4,0)= fungsitransisi$2%34545())(s,Stateawal(A))∪fungsitransisi$2%34545()′)(Stateawal(A’),x)
7.)GG&H$53I'=)GG&H$53I)∪)GG&H$53I)!, jikaA’ menerimastring kosong, dan )GG&H$53I'=)GG&H$53I()!), jikaA’ tidakmenerimastring kosong
EkspresiRegular
•EkspresiRegular(Regular Expression) adalahsuatucarakompak(compact way) untukmerepresentasikanataumenggambarkanBahasa
regular
•Notasiinimelibatkankombinasistring simboldaribeberapaalfabetyang
disimbolkanΣ, tandakurung, dan operator +, ., dan *. Kasuspaling
sederhanaadalahbahasa{#}, yang akandilambangkandenganekspresi
reguler#. Contohlain adalahbahasa{#,&,'}, di mana, menggunakan+
untukmenunjukkanunion(gabungan), kitamemilikiekspresireguler#+
&+'. Kita menggunakan·untukpenggabungan“dan”, dengancarayang
sama*untukstar-closureyang menunjukkanperulangan. Ekspresi(#+(&·'))∗adalahsingkatandaristar-closuredari{#}⋃; {&}, yaitubahasa
{.,#,&',##,#&',&'#,&'&',###,##&',...}.