Điều này thật khó để trả lời bởi vì, giống như với trí tuệ nhân tạo, một khi chúng ta đã hoàn thành điều này thì đó là vì chúng ta sẽ viết một chương trình thực hiện nó. Và các nhà phê bình sẽ nói, "tốt, chiếc máy này không thực sự tự lập trình! Nó chỉ tuân theo chính xác chương trình bạn đã đưa ra!"
Vâng vâng. Bất cứ điều gì chúng ta sẽ thực hiện với máy tính, chúng ta sẽ làm bằng cách cung cấp cho nó một số chương trình và nó sẽ thực hiện nó. Nếu đó là một cuộc tranh cãi, thì chúng ta không thể hoàn thành bất cứ điều gì. Tuy nhiên, tại một số điểm, mọi người nghĩ rằng một máy tính chơi cờ sẽ rõ ràng là thông minh. Bây giờ họ có thể, và chúng tôi biết chính xác làm thế nào và chúng tôi không nghĩ rằng đó là thông minh. Tàu ngầm vẫn không biết bơi.
Vì vậy - hãy xem xét một vài ví dụ.
Từ nhiều thập kỷ, chúng tôi đã có trình tạo phân tích cú pháp . Bạn cung cấp cho họ một mô tả về một ngôn ngữ, nó được xử lý và kết quả là mã cho trình phân tích cú pháp cho ngôn ngữ đó. Chúng tôi biết chính xác làm thế nào nó được thực hiện, nhưng đó không phải là một chương trình máy tính chính nó?
Thứ hai - các biên tập viên cho bạn biết bạn đã mắc lỗi (lỗi cú pháp, biến không tồn tại, v.v.). Nó không tự lập trình bất cứ điều gì, nhưng nó có thể cho bạn biết rằng bạn đã làm sai điều gì đó. Nó chỉ có rất nhiều trên bề mặt.
Các ngôn ngữ mà bạn có thể chỉ cần nhấp và kéo các điều khiển UI và mã thực sự sẽ khiến chúng hoạt động được tạo tự động.
Trình biên dịch JIT. Phần mềm có thể nhận ra các điểm nóng trong phần mềm hiện đang chạy và thay thế một số phần mềm đó bằng mã được biên dịch tối ưu hóa cao, tối ưu hóa chính nó trong khi chạy. Tôi nghĩ rằng đây là một ví dụ về những gì dường như là một chương trình máy móc, cho đến khi bạn biết chính xác nó xảy ra như thế nào, và sau đó nó chỉ là làm những gì mà lập trình viên đã nói với nó, như mọi khi.
Chơi trò chơi nói chung. Đây là một lĩnh vực nghiên cứu thú vị, trong đó các nhà nghiên cứu viết các chương trình có thể đọc các mô tả về các quy tắc của trò chơi, rằng các chương trình sau đó chơi với nhau. Vì vậy, thay vì chương trình tic-tac-toe hoặc chương trình cờ vua, đây là những chương trình đọc các quy tắc của tic-tac-toe hoặc cờ vua hoặc một số trò chơi mới được tạo ra tại chỗ, và sau đó có thể chơi chúng. Chương trình không tự lập trình, nhưng nó chơi cờ mà không có luật cờ đã bị mã hóa cứng. Đã có lúc điều này rõ ràng sẽ được coi là máy tính tự dạy mình một cái gì đó.
Chúng tôi đã thực hiện rất nhiều bước nhỏ theo hướng chung.
Nhưng tôi không thể nghĩ ra bất kỳ chương trình nào tự viết lại dựa trên kết quả của các lần chạy trước đó hoặc có thể nhận ra các thói quen lỗi thời hoặc không hiệu quả trong mã của riêng họ. Tôi nghĩ rằng một ngày nào đó chúng ta sẽ có điều đó, và chúng ta sẽ coi nó không có gì đặc biệt, vì nó sẽ chỉ là một số tính năng của trình biên dịch mới nhất ...