Ringkasan: Menurut teorema Rice, semuanya tidak mungkin. Namun, saya melakukan hal - hal yang dianggap mustahil sepanjang waktu!
Tentu saja, teorema Rice tidak hanya mengatakan "semuanya tidak mungkin". Itu mengatakan sesuatu yang lebih spesifik: "Setiap properti dari program komputer tidak dapat dikomputasi."
(Jika Anda ingin membagi rambut, setiap properti "non-sepele". Yaitu, properti yang dimiliki semua program atau tidak ada program yang dapat dihitung secara sepele. Tetapi properti lainnya tidak dapat dihitung.)
Itulah yang dikatakan teorema, atau tampaknya dikatakan. Dan mungkin sejumlah besar orang yang sangat pintar telah dengan cermat memverifikasi kebenaran teorema ini. Tetapi tampaknya benar-benar menentang logika! Ada banyak properti program yang mudah untuk dihitung !! Sebagai contoh:
Berapa banyak langkah yang dijalankan suatu program sebelum berhenti? Memutuskan apakah angka ini terbatas atau tidak terbatas justru merupakan Masalah Pemutusan, yang tidak dapat dihitung. Untuk memutuskan apakah angka ini lebih besar atau kurang dari beberapa hingga adalah sepele! Jalankan saja program hingga n langkah dan lihat apakah itu berhenti atau tidak. Mudah!
Demikian pula, apakah program menggunakan lebih atau kurang dari unit memori dalam langkah-langkah eksekusi m pertamanya ? Komputasi sepele.
Apakah teks program menyebutkan variabel bernama ? Analisis tekstual yang sepele akan mengungkapkan jawabannya.
Apakah program memanggil perintah ? Sekali lagi, pindai teks program mencari nama perintah itu.
Saya dapat melihat banyak properti yang memang terlihat tidak dapat dikomputasi juga; misalnya, berapa banyak penambahan yang dijalankan oleh program secara lengkap? Yah, itu hampir sama dengan menanyakan berapa banyak langkah yang dilakukan oleh program, yang sebenarnya adalah Masalah Berhenti. Tapi sepertinya ada banyak program properti yang sangat, sangat mudah untuk dihitung. Namun, teorema Rice menegaskan bahwa tidak satupun dari mereka yang dapat dihitung.
Apa yang kulewatkan di sini?