Apakah ada bahasa pemrograman Turing yang lengkap sehingga untuk alfabet tetap (katakanlah, ASCII), setiap permutasi yang mungkin dari karakter-karakter tersebut adalah program yang secara semantik sah yang dapat dieksekusi?
Kami menganggap loop tak terbatas juga valid secara semantik.
Saya tahu beberapa format data, seperti Markdown, memiliki validitas semantik universal (setiap input valid), tetapi saya tidak bisa lepas tangan memikirkan bahasa pemrograman dengan properti ini.
Jawaban:
Setiap urutan oktet dapat ditafsirkan sebagai kode Z80 yang valid karena tidak ada opcode atau argumen yang tidak valid; Saya membayangkan hal yang sama akan berlaku untuk berbagai prosesor lain, saya pribadi kenal Z80.
Untuk hal-hal tingkat rendah seperti ini, Anda mungkin mulai mengalami pertanyaan tentang apa artinya "menjalankan program":
sumber
Pertanyaan semacam itu tentang bahasa pemrograman hampir secara universal dijawab dengan ya. Jika saat ini tidak ada bahasa yang memiliki properti yang diminta, Anda dapat bertaruh bahwa seseorang akan melihatnya sebagai tantangan untuk membuat bahasa (mainan) yang memiliki properti tersebut.
Sebagai contoh bahasa di mana setiap permutasi karakter alfabet secara sintaksis valid adalah bahasa spasi , di mana alfabet bahasa itu sendiri terdiri dari ruang, tab dan linefeed.
sumber
Mengapa puas dengan string (karakter)? Anda harus menguraikan kembali pertanyaan itu menjadi "serangkaian token". Bukan bit, bit komputerish begitu abad ke-20.
Jadi, loop tak terbatas OK, katamu. Bagaimana dengan pembagian dengan nol? Jika Anda cukup toleran dengan definisi valid Anda, Anda mungkin mendapat jawaban ya tetapi sebagian besar kombinasi masih tidak berarti. Jadi saya akan mengatakan Anda mungkin selalu mendapatkan program yang valid secara teknis tetapi hampir tidak pernah program yang semantik berlaku.
sumber