Saya tahu bahwa bahasa yang dapat didefinisikan menggunakan ekspresi reguler dan yang dikenali oleh DFA / NFA (finite automata) adalah setara. Juga tidak ada DFA untuk bahasa . Tetapi masih dapat ditulis menggunakan ekspresi reguler (dalam hal ini bahasa non-reguler dapat) sebagai . Tetapi kita tahu bahwa setiap bahasa yang memiliki ekspresi reguler memiliki DFA yang mengenalinya (bertentangan dengan pernyataan saya sebelumnya). Saya tahu ini adalah hal yang sepele, tetapi apakah definisi dari ekspresi reguler mencakup kondisi bahwa itu harus terbatas?
10
Jawaban:
Jika ekspresi reguler dibiarkan tanpa batas, maka bahasa apa pun akan teratur.
Mengingat bahasa , kita selalu dapat menentukan ekspresi reguler R = w 1 + w 2 + ⋯ , yang persis mendefinisikan L . (Contoh: ekspresi reguler R 1 = ϵ + 0 + 1 + 00 + 01 + 10 + 11 + ⋯ mendefinisikan L 1 = { 0 , 1L={w1,w2,…} R=w1+w2+⋯ L
R1=ϵ+0+1+00+01+10+11+⋯ .)L1={0,1}∗
Kita tahu bahwa beberapa bahasa tidak teratur, jadi ini menunjukkan bahwa ekspresi reguler yang tak terbatas menggambarkan kelas bahasa yang lebih besar daripada ekspresi reguler yang terbatas.
sumber
Ya, itu harus terbatas. Bayangkan Anda memiliki pasangan yang cocok tanpa batas, dan input Anda adalah
011
. Apakah Anda pernah bisa menolaknya? Apakah Anda pernah kehabisan pertandingan untuk memeriksa?Apakah ada bahasa yang, menurut definisi itu, tidak akan teratur ? Bagaimana dengan himpunan semua pasang program dan input sehingga program yang diberikan berhenti pada input yang diberikan?
Sekarang, jika Anda memiliki program yang menyebutkan string dalam bahasa dalam urutan leksikografis—
Memperbarui
Untuk mengklarifikasi sedikit berdasarkan umpan balik dalam komentar, alasan mengapa tidak semua bahasa dari formulir ini teratur menurut definisi. Jika, misalnya, Anda mencari bukti teorema Kleene, itu tergantung pada kenyataan bahwa ekspresi reguler harus terbatas untuk membuktikan bahwa itu menghasilkan mesin keadaan terbatas.
Mengapa kita mendefinisikan bahasa "biasa" dengan cara itu? Karena setiap bahasa formal adalah bagian dari string pada alfabet, dan setiap rangkaian string dapat dinyatakan sebagai gabungan dari lajang, jadi jika kita menyebut rangkaian string sebagai bahasa "biasa", bahasa biasa hanya akan menjadi sinonim untuk bahasa . Itu bukan definisi yang sangat berguna, terutama karena kita tidak bisa benar-benar mengimplementasikannya dalam perangkat keras atau perangkat lunak. Kami tidak dapat menyimpan daftar tak terbatas sembarang tempat atau membangun mesin kondisi tak terbatas.
Seperti yang saya sebutkan, jika Anda memiliki cara untuk menghitung semua string dalam suatu bahasa secara berurutan, Anda dapat membangun penentu dari itu (menerima ketika Anda melihat string yang tepat itu, menolak ketika Anda menemukan string yang datang setelah yang Anda sedang mencari) dan sebaliknya (untuk setiap string secara berurutan, jalankan melalui penentu dan output jika dan hanya jika itu diterima). Jadi, jika kita menganggap setiap bahasa enumerable teratur , setiap bahasa yang dapat dideklarasikan akan menjadi “reguler” dan kita akan membutuhkan istilah baru untuk bahasa yang dikenali oleh mesin negara berhingga dan penyandiannya yang setara sebagai ekspresi terbatas.
sumber
Misalkan ungkapan reguler diizinkan menjadi tak terbatas.
Dengan demikian bahasa yang didefinisikan oleh {ϵ} ∪ {01} ∪ {0011} ... akan teratur. Untuk setiap bahasa reguler ada NFA. Salah satu cara untuk mendapatkan NFA ini adalah memiliki masing-masing NFA untuk setiap {ϵ}, {01}, {0011} ... dan menggabungkannya menggunakan transisi ϵ. Karena ada ekspresi reguler berbeda yang tak terbatas, kita akan perlu sub-NFA tak terbatas untuk digabungkan. Namun NFA hanya dapat memiliki jumlah negara terbatas (definisi NFA).
Dengan demikian tidak ada NFA yang dapat mendefinisikan bahasa yang didefinisikan oleh penyatuan ekspresi reguler yang tak terbatas, yang menyiratkan bahasa tersebut tidak teratur.
Dengan demikian tidak ada ekspresi reguler yang dapat mendefinisikan bahasa yang sama dengan bahasa yang didefinisikan oleh penyatuan ekspresi reguler yang tak terbatas.
Dengan demikian, ekspresi reguler hanya dapat memiliki ekspresi terbatas.
sumber