Saya tidak jelas tentang penggunaan frasa "tak terbatas" bahasa atau "terbatas" bahasa dalam teori komputer.
Saya pikir akar masalahnya adalah bahwa bahasa seperti tidak terbatas dalam arti bahwa ia dapat menghasilkan jumlah string yang tak terbatas (tetapi dapat dihitung). Namun, itu masih dapat dikenali oleh otomat keadaan terbatas .
Juga tidak membantu bahwa buku Sipser tidak benar-benar membuat perbedaan ini (setidaknya sejauh yang saya tahu). Sebuah pertanyaan tentang bahasa tak terbatas / terbatas dan hubungannya dengan bahasa biasa muncul dalam ujian sampel.
ab*
(bintang Kleene) berarti Anda dapat memiliki nol atau lebih kombinasi stringab
, ini termasuk jumlah string potensial tak hingga: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Namun Anda masih dapat membangun FSM yang mengenali bahasa ini karena pada kenyataannya tidak ada cara untuk menghasilkan string tanpa batas, ketika diproses oleh mesin semua string harus terbatas, tetapi itu tidak membuat bahasa itu sendiri terbatas. Bahasa tanpa batas adalah teoretis.Jawaban:
Astaga. Ini kelihatannya seperti kebingungan yang disebabkan oleh terminologi (sekolah tua) "bahasa negara terbatas" sebagai sinonim dari apa yang sekarang dikenal sebagai "bahasa biasa".
Bagaimanapun, definisi standar untuk terbatas / tidak terbatas yang diterima dewasa ini hanya memperhatikan ukuran bahasa:
terbatas selalu teratur.L.
tak terbatas dapat menjadi teratur (kadang-kadang disebut "finite-state"), dapat didekidasikan (kadang-kadang disebut "rekursif"), non-reguler (non-finite-state), tidak dapat decidable, dll.,L.
sumber
Bahasa adalah seperangkat string. Ini terbatas jika memiliki sejumlah string di dalamnya.
sumber
Masalah lain adalah bahwa teori bahasa formal agak aneh dalam bagaimana ia menggunakan istilah "bahasa".
Untuk semua orang di dunia ini kecuali orang-orang dalam teori bahasa formal, bahasa adalah sistem ujaran yang digunakan untuk berkomunikasi, sehingga setiap ujaran memiliki bentuk ( sintaksisnya ) dan semacam makna ( semantiknya ). Teori bahasa formal, setidaknya bagian yang digunakan dalam ilmu komputer, dikhususkan untuk masalah cara terbaik untuk mendefinisikan, secara formal, sintaks bahasa. Ini semua tentang hubungan antara sintaksis bahasa (seperti apa ujarannya) dan formalisme (bahasa!) Seperti ekspresi reguler yang digunakan untuk menentukan sintaksis bahasa.
Oleh karena itu, dalam teori bahasa formal, 'bahasa' didefinisikan secara sederhana sebagai 'seperangkat string'. Biasanya tidak memberikan arti pada string dalam bahasa.
Pada saat yang sama, formalisme yang digunakan untuk menggambarkan bahasa, seperti ekspresi reguler, juga membentuk bahasa dalam pengertian ini: misalnya, setiap ekspresi reguler adalah string, dan karenanya, rangkaian ekspresi reguler adalah bahasa. Namun, untuk formalisme ini, string dalam bahasa memang memiliki arti: misalnya, arti dari setiap ekspresi reguler adalah bahasa yang ditunjukkannya.
sumber