Prolog là ngôn ngữ lập trình logic

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng (Trang 35 - 37)

Prolog là ngôn ngữ đƣợc sử dụng phổ biến nhất trong dòng các ngôn ngữ lập trình logic. Ngôn ngữ này do giáo sƣ ngƣời Pháp Alain Colmerauer và nhóm nghiên cứu của ông đề xuất lần đầu tiên tại đại học Marseillse đầu những năm 1970. Đến năm 1980 Prolog nhanh chóng đƣợc áp dụng rộng rãi ở châu Âu, đƣợc ngƣời Nhật chọn làm ngôn ngữ phát triển thế hệ máy tính thứ 5. Prolog đã đƣợc cài đặt trên máy vi tính Apple II, IBM-PC, Macintosh.

Từ đó đến nay, qua nhiều lần cải tiến, đặc biệt hãng Borland cho ra đời phần mềm TURBO PROLOG với nhiều ƣu điểm, thuận tiện cho ngƣời sử dụng. Để giải quyết một số vấn đề, ta nhận thấy sử dụng ngôn ngữ Prolog cho ta chƣơng trình gọn nhẹ hơn nhiều so với các ngôn ngữ khác.

Prolog là một ngôn ngữ cấp cao, có đặc điểm gần với ngôn ngữ tự nhiên, từ những ngƣời mới học đến những lập trình viên chuyên nghiệp đều có thể tiếp cận một cách nhanh chóng, viết ra một chƣơng trình ứng dụng hữu ích.

Khác với những ngôn ngữ cấu tr c nhƣ Pascal, hay C mà ta đã làm quen, Prolog là một ngôn ngữ mô tả, với một số sự kiện và quy luật suy diễn đã mô tả, Prolog sẽ suy luận cho ta các kết quả.

Prolog còn đƣợc gọi là ngôn ngữ lập trình ký hiệu (symbolic programming) tƣơng tự nhƣ các ngôn ngữ lập trình hàm (funtional programming) hay lập trình phi số (non-

numerical programming). Prolog rất thích hợp để giải quyết các bài toán liên quan đến

các đối tƣợng (object) và mối quan hệ (relation) giữa chúng.

Prolog đƣợc sử dụng phổ biến trong lĩnh vực trí tuệ nhân tạọ Nguyên lý lập trình logic dựa trên các mệnh đề Horn (Horn logic). Một mệnh đề Horn biểu diễn một sự kiện hay một sự việc nào đó là đ ng hoặc không đ ng, xảy ra hoặc không xảy ra,…

Ví dụ: Sau đây là một số mệnh đề Horn. (Theo TS. Phan Huy Khánh, “Lập trình logic trong Prolog”(2004), NXB Đại học quốc gia Hà Nội).

(1) Nếu một người già mà (và) khôn ngoan thì người đó hạnh phúc. (2) Jim là người hạnh phúc.

(3) Nếu X là cha mẹ của Y và Y là cha mẹ của Z thì X là ông của Z. (4) Tom là ông của Merỵ

(5) Tất cả mọi người đều chết(hoặc Nếu ai là người thì ai đó phải chết). (6) Socrat là ngườị

Trong các mệnh đề trên, mệnh đề (1), (3), (5) đƣợc gọi là các luật (rules), các mệnh đề còn lại gọi là các sự kiện (facts). Một chƣơng trình logic có thể đƣợc xem nhƣ là một CSDL gồm các mệnh đề Horn, hoặc dạng luật, hoặc dạng sự kiện, chẳng hạn nhƣ tất cả các sự kiện và luật từ (1) đến (6) ở trên. Ngƣời sử dụng gọi chạy một chƣơng trình logic bằng cách đặt câu hỏi truy vấn trên CSDL này, chẳng hạn câu hỏi:

Socrat có chết không?

(Tƣơng đƣơng khẳng định Socrat chết đ ng hay saỉ)

Một hệ thống logic sẽ thực hiện chƣơng trình theo cách “suy luận”-tìm kiếm dựa trên vốn “hiểu biết” đã có là chƣơng trình – CSDL, để minh chứng câu hỏi là một khẳng định, là đ ng (Yes) hoặc sai (No). Với câu hỏi trên hệ thống tìm kiếm trên CSDL khẳng định Socrat chết và “tìm thấy” luật (5) thỏa mãn (vế thì),vận dụng luật (5)

hệ thống nhận đƣợc Socrat là người(vế nếu) chính là sự kiện (5). Từ đó câu trả lời sẽ là Yes. Có nghĩa là Socrat chết là đ ng.

Một phần của tài liệu Luận văn thạc sĩ công nghệ thông tin Nghiên cứu cơ sở dữ liệu suy diễn và ứng dụng (Trang 35 - 37)