Investor's wiki

Turing Lengkap

Turing Lengkap

Turing Complete merujuk kepada mesin yang, diberi masa dan ingatan yang mencukupi bersama dengan arahan yang diperlukan, boleh menyelesaikan sebarang masalah pengiraan, tidak kira betapa rumitnya. Istilah ini biasanya digunakan untuk menggambarkan bahasa pengaturcaraan moden kerana kebanyakannya adalah Turing Complete (C++, Python, JavaScript, dll.).

Apakah Mesin Turing?

Sebelum komputer zaman moden, Alan Turing membuat hipotesis bahawa suatu hari nanti akan ada mesin yang boleh menyelesaikan sebarang masalah. Mesin ini dikenali sebagai Mesin Turing.

Alan membayangkan mesinnya sebagai sekeping pita panjang dengan maklumat tertulis di atasnya dalam bentuk kod binari (1s dan 0s). Mesin juga akan mempunyai kepala baca/tulis yang bergerak di sepanjang pita membaca setiap petak, satu demi satu. Kod itu akan menanyakan masalah pengiraan kepada mesin, dan pita itu akan selama yang diperlukan untuk mencapai penyelesaian.

Apabila kepala bergerak di sepanjang pita, mesin mengikut arahan mudah yang mengawal cara ia bertindak balas. Ia membaca pita, mengikut arahan dan melakukan tindakan tertentu untuk menulis kod baharu semasa ia bergerak bersama. Corak kod baharu ini adalah jawapan kepada masalah tersebut. Mesin hipotesis Turing boleh menjawab sebarang masalah pengiraan yang boleh dinyatakan dalam kod (dan yang mempunyai jawapan yang boleh dikira).

Peranti atau bahasa pengaturcaraan dianggap sebagai Turing Complete apabila ia boleh mereplikasi Mesin Turing dengan menjalankan sebarang program atau menyelesaikan sebarang masalah yang boleh dijalankan atau diselesaikan oleh Mesin Turing. Sebaliknya, jika peranti atau bahasa pengaturcaraan tidak dapat melakukannya, maka ia dikatakan Turing Incomplete.

Kalkulator mudah ialah contoh sistem yang Turing Tidak Lengkap kerana ia hanya boleh melakukan beberapa jenis pengiraan. Sebaliknya, kalkulator saintifik boleh atur cara (boleh melakukan semua jenis pengiraan) boleh dianggap sebagai Mesin Turing.

Blockchain dan Kelengkapan Turing

Walaupun beberapa aplikasi teknologi blockchain adalah Turing Complete, yang lain adalah Turing Incomplete. Ini berbeza mengikut teknologi skrip yang dilaksanakan. Sebagai contoh, bahasa skrip yang digunakan dalam Bitcoin sengaja direka sebagai Turing Incomplete kerana ia memenuhi tujuannya dan peningkatan kerumitan berpotensi menimbulkan masalah. Dengan menjadikannya mudah, pembangun boleh meramalkan dengan ketepatan yang tinggi bagaimana ia akan bertindak balas dalam bilangan terhingga situasi di mana ia digunakan.

Ethereum, sebaliknya, dibina sebagai rantaian Turing Complete. Ini penting kerana ia perlu memahami perjanjian yang membentuk kontrak pintar. Dengan menjadi Turing Complete, Ethereum mempunyai keupayaan untuk memahami dan melaksanakan sebarang perjanjian masa depan, walaupun yang belum difikirkan lagi. Dalam erti kata lain, Kelengkapan Turing Ethereum bermakna ia boleh menggunakan asas kodnya untuk melaksanakan hampir sebarang tugas, selagi ia mempunyai arahan yang betul, masa yang mencukupi dan kuasa pemprosesan.