Saya merenung sebentar apakah akan menambahkan jawaban lain. Jawaban yang lain fokus di tengah pertanyaannya (tentang "turing lengkap", "tautologi" dan sebagainya). Biarkan saya ambil bagian pertama dan terakhir, dan dengan demikian gambaran yang lebih besar dan sedikit filosofis:
Tapi apa artinya itu?
Apa artinya menjadi Turing lengkap?
Apakah ada cara untuk mendefinisikan kemampuan Turing Machine tanpa hanya mengatakan "mampu mensimulasikan Mesin Turing lain"?
Berbicara secara informal, menjadi Turing lengkap berarti mekanisme Anda dapat menjalankan algoritma apa pun yang dapat Anda pikirkan, tidak peduli seberapa kompleks, dalam, rekursif, rumit, panjang (dalam hal kode), dan tidak peduli berapa banyak penyimpanan atau waktu yang akan diperlukan untuk mengevaluasinya. Tak perlu dikatakan bahwa itu hanya berhasil jika masalah dapat dihitung, tetapi jika itu dapat dihitung, itu akan berhasil (berhenti).
(NB: untuk mencari tahu mengapa ini "informal", lihat tesis Gereja-Turing yang sejalan, dengan kata-kata yang lebih rumit; menjadi tesis, itu bisa atau tidak bisa benar. Terima kasih kepada @DavidRicherby untuk menunjukkan kelalaian kecil ini dalam komentar.)
"Algoritma" berarti apa yang biasanya kita pahami sebagai algoritma komputer saat ini; yaitu, serangkaian langkah-langkah terpisah memanipulasi penyimpanan, dengan beberapa logika kontrol bercampur. Namun, ini tidak seperti mesin Oracle, yaitu, ia tidak dapat "menebak".
Contoh untuk bahasa non-tc yang praktis
Jika Anda telah memprogram diri sendiri, Anda mungkin tahu ekspresi reguler, yang digunakan untuk mencocokkan string dengan beberapa pola.
Ini adalah salah satu contoh konstruksi yang tidak Turing Lengkap. Anda dapat dengan mudah menemukan latihan di mana tidak mungkin membuat ekspresi reguler yang cocok dengan frasa tertentu.
Sebagai contoh (dan ini pasti telah menyebalkan banyak programmer dalam aplikasi nyata yang sebenarnya), secara teoritis dan praktis tidak mungkin untuk membuat ekspresi reguler yang cocok dengan bahasa pemrograman atau dokumen XML: tidak mungkin bagi regexp untuk menemukan struktur blok ( do ... end
atau { ... }
dalam bahasa; membuka dan menutup tag dalam dokumen XML) jika diizinkan secara mendalam. Jika ada batasan di sana, misalnya Anda hanya dapat memiliki 3 level "rekursi", maka Anda dapat menemukan ekspresi reguler; tetapi jika tidak terbatas, maka itu tidak boleh.
Karena sangat mungkin untuk membuat program dalam bahasa Turing-complete (seperti C) untuk mengurai kode sumber (kompiler mana pun yang melakukannya), ekspresi reguler tidak akan pernah dapat mensimulasikan program tersebut, maka mereka secara definisi bukan Turing-complete
Motivasi
Gagasan mesin turing itu sendiri tidak praktis; misalnya, Turing tentu tidak menciptakannya untuk membuat komputer nyata atau sesuatu seperti itu, berlawanan dengan Charles Babbage atau von Neumann, misalnya. Inti dari konsep Mesin Turing adalah sangat sederhana. Ini terdiri dari hampir tidak ada. Ini mengurangi kemungkinan (dan aktual) komputer ke minimum paling sederhana yang bisa dibayangkan.
Inti dari penyederhanaan ini, pada gilirannya, adalah bahwa hal ini memudahkan (ish) untuk merenungkan pertanyaan-pertanyaan teoretis (seperti menghentikan masalah, kelas-kelas kompleksitas dan apa pun ilmu komputer teoretis yang mengganggu). Salah satu fitur khususnya adalah biasanya sangat mudah untuk memverifikasi apakah bahasa yang diberikan atau komputer dapat mensimulasikan Mesin Turing hanya dengan pemrograman kata Mesin Turing (yang sangat mudah!) Dalam bahasa itu.
Hingga tak terbatas
Perhatikan bahwa Anda tidak pernah membutuhkan waktu atau penyimpanan tanpa batas ; tetapi waktu dan penyimpanan tidak terbatas. Mereka akan memiliki nilai maksimal untuk setiap proses yang dapat dikomputasi, tetapi tidak ada batasan seberapa besar nilai tersebut dapat terjadi. Kenyataan bahwa komputer yang nyata pada akhirnya akan kehabisan RAM telah dipoles di sini; ini tentu saja merupakan batasan untuk komputer fisik apa pun, tetapi juga jelas dan tidak menarik bagi "kekuatan komputasi" teoretis mesin. Kami juga tidak tertarik tentang berapa lama waktu yang dibutuhkan. Jadi mesin kecil kami dapat menggunakan jumlah waktu dan ruang yang sewenang-wenang, yang membuatnya sangat tidak praktis.
... dan seterusnya
Satu mencengangkan titik terakhir, kemudian, adalah bahwa sederhana seperti itu, hal yang sederhana dapat melakukan segala sesuatu setiap komputer nyata dibayangkan bisa pernah , di seluruh alam semesta, mencapai (hanya sangat jauh lebih lambat) - setidaknya sejauh yang kita kenal sekarang.