Seperti yang telah saya pelajari, memutuskan keteraturan bahasa bebas konteks tidak dapat diputuskan.
Namun, kita dapat menguji keteraturan menggunakan teorema Myhill – Nerode yang menyediakan kondisi yang diperlukan dan memadai. Jadi masalahnya harus diperhitungkan.
Di mana kesalahan saya?
Jawaban:
Myhill – Nerode memang memberikan karakterisasi bahasa biasa tapi itu tidak cukup untuk menunjukkan bahwa masalahnya dapat diputuskan. "Decidable" berarti ada algoritma (lebih formal, mesin Turing) yang berakhir untuk setiap input dan, tentu saja, selalu memberikan jawaban yang benar. Jadi, dalam hal ini, Anda perlu memberikan algoritma yang, diberi bahasa sebagai input, menentukan apakah relasi Myhill-Nerode memiliki jumlah kelas ekivalensi yang terbatas. Ternyata ini tidak dapat dilakukan untuk bahasa bebas konteks; rincian dalam buku teks bahasa formal favorit Anda.
Jika Anda ingin memutuskan apakah suatu bahasa umum itu teratur, yang lebih halus adalah Anda harus berhati-hati tentang apa yang menjadi input untuk algoritma Anda. Input harus berupa string hingga - jika tidak, bahkan hanya membaca input akan menjadi algoritma non-terminating. Dalam hal bahasa bebas konteks, Anda bisa menggunakan tata bahasa sebagai representasi terbatas dari bahasa tak terbatas. Untuk bahasa yang lebih umum, Anda perlu ... yah, sesuatu yang lebih umum. Namun, pada akhirnya, jika Anda ingin berurusan dengan semua bahasa, Anda akan dikutuk. Di atas setiap alfabet terbatas, ada banyak bahasa yang tak terhitung banyaknya tetapi hanya banyak string terbatas. Itu berarti Anda tidak dapat menjelaskan semua bahasa menggunakan string hingga. 1Oleh karena itu, mencoba menulis suatu algoritma untuk menentukan apakah bahasa arbitrer yang diberikan sebagai input adalah benar-benar gagal sebelum dimulai. Bukan hanya karena Anda tidak dapat menulis algoritme: Anda bahkan tidak dapat menulis input!
Perhatikan bahwa ini tidak berarti bahwa Anda, manusia, tidak dapat menggunakan Myhill – Nerode untuk menentukan apakah bahasa itu teratur. Itu hanya berarti bahwa Anda tidak dapat menuliskan satu set instruksi yang tepat untuk memberi tahu saya bagaimana melakukannya. Pada titik tertentu, seperangkat instruksi semacam itu harus mengatakan sesuatu seperti, "Dan kemudian bermain dengannya untuk melihat apa yang berhasil," atau "Dari sana, Anda harus mencari tahu sendiri."
sumber