Sebuah komentar di tex.SE membuatku bertanya-tanya. Pernyataan itu pada dasarnya:
Jika saya dapat menulis kompiler untuk bahasa X dalam bahasa X, maka X adalah Turing-complete.
Dalam istilah komputasi dan bahasa formal, ini adalah:
Jika memutuskan dan , maka .L ⊆ L T M ⟨ M ⟩ ∈ L F L = R E
Berikut menunjukkan bahasa semua pengkodean mesin Turing dan menunjukkan set fungsi dihitung dengan mesin di . F L L
Apakah ini benar?
computability
turing-completeness
Raphael
sumber
sumber
Jawaban:
Pernyataan informal tidak benar, seperti yang ditunjukkan oleh bahasa pemrograman berikut. Setiap string, katakanlah, karakter ASCII adalah program yang valid dan makna setiap program adalah, "Keluarkan program yang hanya mengeluarkan salinan inputnya." Dengan demikian, setiap program dalam bahasa ini adalah kompiler untuk bahasa tersebut tetapi bahasanya tidak lengkap Turing.
Saya tidak yakin apakah "versi teori komputabilitas" Anda setara tetapi juga tidak benar. Dengan teorema rekursi kedua Kleene , untuk setiap pengkodean mesin Turing, ada TM yang menerima pengkodeannya sendiri dan menolak yang lainnya. 1 Mesin ini merupakan contoh berlawanan dengan proposisi. Lebih konkretnya, kita dapat mencapai hasilnya dengan memilih pengkodean. Misalnya, biarkan setiap kode angka ganjil yang didefinisikan oleh mesin "Jika input saya ganjil, terimalah; jika tidak, tolak" dan biarkan angka kode mesin yang dikodekan oleh dalam skema pengkodean favorit Anda sendiri untuk mesin Turing. dalam bahasa diterima oleh tetapiM 2x x ⟨M⟩ L M FL belum menyelesaikan Turing.
1 Teorema rekursi kedua Kleene mengatakan bahwa, untuk enumerasi apa pun dari fungsi rekursif parsial (yaitu, untuk setiap pengkodean program sebagai bilangan bulat), dan fungsi rekursif parsial , ada integer sehingga adalah fungsi yang memetakan ke . Jadi, khususnya, misalkan adalah fungsi yang menerima jika dan menolak sebaliknya. Dengan teorema, ada bilangan bulat yang mengkode program . Artinya, menerima coding sendiri(ϕi)i≥0 Q(x,y) p ϕp y Q(p,y) Q x=y p ϕp(y)=Q(p,y) ϕp p dan menolak semua input lainnya.
sumber