May 20, 2013

Dẫn nhập đầu tiên về Prolog và swi-Prolog.

Các ví dụ và hướng dẫn trong blog này sử dụng swi-prolog. Có thể tải phiên bản mới nhất ở đây. Bài này giới thiệu sơ lược về Prolog và trình thông dịch swi-prolog.

Prolog là một ngôn ngữ lập trình logic, khá với các ngôn ngữ C/C++ là lập trình thủ tục, Haskell lập trình hàm, và Java/C# là lập trình hướng đối tượng. Mô hình của Prolog là lập trình logic. Chính vì vậy, Prolog được giảng dạy và nghiên cứu chủ yếu ở các mảng liên quan đến khoa học máy tính, phục vụ cho trí tuệ nhân tạoxử lý ngôn ngữ tự nhiên.

Về nguồn gốc của Prolog. Cái tên xuất phát từ tên tiếng Pháp: Programmation en logique. Được Alain Colmerauer giới thiệu vào những năm 1970. Đây cũng chính là một trong những ngôn ngũ lập trình logic đầu tiên của thế giới.

Sử dụng SWI-Prolog

Bàn qua một chút về Prolog. Vì là ngôn ngữ lập trình logic, Prolog gồm có 2 phần: 1 phần qui định các mệnh đề và các luật (facts and rules). Và một phần dùng để truy vấn (query ) từ các tập mệnh đề và luật đã được định nghĩa trước đó.
Phần mở rộng của phần swi-prolog là .pl (lưu ý: ngôn ngữ Perl cũng có phần mở rộng tương tự).

Đối với môi trường Windows. Tạm thời tham khảo link sau.
Đối với môi trường Linux. Ta viết các luật ở file xx.pl. Sau đó dùng terminal mở chương trình swipl lên, lưu ý là mở ngay chỗ file xx.pl đã được viết. Sau đó dùng lệnh sau để load các luật.
[tên file không chứa phần mở rộng]
Ví dụ:
[xx]
Sau khi load xong các luật, ta có thể dùng các truy vấn một cách thuận tiện.

Ví dụ

Trong file laptop.pl:
laptop(aa).
laptop(bb).
laptop(cc).

Sau khi lưu xong, ta mở swipl và gõ lệnh:
[laptop].
laptop(aa).
laptop(dd).
Nếu sau lệnh laptop(aa). trả về truelaptop(dd). trả về False thì coi như thành công. Mặc xác ta không hiểu nó là cái chi chi :)).