Ini sulit dijawab karena, seperti halnya dengan kecerdasan buatan, setelah kita menyelesaikan ini, itu karena kita akan menulis sebuah program yang melakukannya. Dan kritikus akan berkata, "Yah, mesin ini tidak benar-benar pemrograman itu sendiri! Itu hanya mengikuti persis program yang Anda berikan itu!"
Baiklah. Apa pun yang akan kita capai dengan komputer, kita akan lakukan dengan memberikannya beberapa program dan akan menjalankannya. Jika itu argumen yang menentang, maka kita tidak bisa mencapai apa pun. Namun, pada titik tertentu, orang-orang berpikir komputer bermain catur akan jelas-jelas cerdas. Sekarang mereka bisa, dan kami tahu persis bagaimana, dan kami tidak berpikir itu cerdas. Kapal selam masih belum bisa berenang.
Jadi - perhatikan beberapa contoh.
Sejak puluhan tahun, kami memiliki generator parser . Anda memberi mereka deskripsi bahasa, itu diproses dan hasilnya adalah kode untuk parser untuk bahasa itu. Kita tahu persis bagaimana itu dilakukan, tetapi bukankah itu pemrograman komputer itu sendiri?
Editor kedua yang memberi tahu Anda bahwa Anda membuat kesalahan (kesalahan sintaks, variabel yang tidak ada, dll.). Itu tidak memprogram apa pun itu sendiri, tetapi dapat memberitahu Anda bahwa Anda melakukan sesuatu yang salah. Ini sangat banyak di permukaan saja.
Bahasa tempat Anda cukup mengeklik dan menarik kontrol UI, dan kode yang benar-benar membuatnya berfungsi dihasilkan secara otomatis.
Kompiler JIT. Perangkat lunak yang dapat mengenali hotspot dalam perangkat lunak yang saat ini berjalan dan menggantinya dengan kode terkompilasi yang sangat dioptimalkan, secara optimal mengoptimalkan dirinya saat dijalankan. Saya pikir ini adalah contoh dari apa yang tampaknya menjadi pemrograman mesin itu sendiri, sampai Anda tahu persis bagaimana hal itu terjadi, dan kemudian ternyata hanya melakukan apa yang dikatakan oleh programmer, seperti biasa.
Bermain game umum. Ini adalah bidang penelitian yang menarik, di mana para peneliti menulis program yang dapat membaca deskripsi aturan permainan, yang kemudian dimainkan oleh program-program tersebut. Jadi alih-alih program tic-tac-toe atau program catur, ini adalah program yang membaca aturan tic-tac-toe atau catur atau permainan baru yang dibuat di tempat, dan kemudian dapat memainkannya. Program ini tidak memprogram dirinya sendiri, tetapi bermain catur tanpa aturan catur yang telah dikodekan. Ada saat ketika ini jelas akan dianggap komputer yang mengajarkan sesuatu.
Kami telah mengambil banyak langkah kecil ke arah umum.
Tapi saya tidak bisa memikirkan program apa pun yang menulis ulang sendiri berdasarkan hasil dari berjalan sebelumnya, atau yang dapat mengenali rutinitas usang atau tidak efisien dalam kode mereka sendiri. Saya pikir suatu hari nanti kita akan memilikinya, dan kita akan menganggapnya tidak ada yang istimewa sama sekali, karena itu hanya beberapa fitur dari kompiler terbaru ...