lecture8 1 Chương 8 Ngôn ngữ lập trình logic Giảng viên Ph D Nguyễn Văn Hòa Khoa KT CN MT – ðH An Giang 2 Nội dung � Giới thiệu lập trình logic � Mệnh ñề � Ngôn ngữ Turbo ProLog 3 Giới thiệu lập trình[.]
Chương 8: Ngơn ngữ lập trình logic Giảng viên: Ph.D Nguyễn Văn Hòa Khoa KT-CN-MT – ðH An Giang Nội dung Giới thiệu lập trình logic Mệnh đề Ngơn ngữ Turbo ProLog Giới thiệu lập trình logic Các họ ngơn ngữ lập trình bậc cao Lập trình mệnh lệnh (imparative) Thủ tục (procedural) Hướng đối tượng (object) Lập trình khai báo (declarative) Hàm (functional) Logic Giới thiệu lập trình logic Phương thức lập trình khai báo khác với phương thức LT mệnh lệnh ñiểm nào? LT logic LT khai báo (declarative) Dùng ngơn ngữ mơ tả để đặc tả vấn ñề Nhấn mạnh kết mong ñợi cách thức nhận ñược kết Ứng dụng nhiều xử lý ngơn ngữ tự nhiên Trí tuệ nhân tạo Giới thiệu lập trình logic Một chương trình logic (Prolog) tập hợp mệnh đề Mỗi mệnh ñề ñược xây từ nhiều vị từ Vị từ phát biểu ñối tượng sai → Chương trình Prolog = ñối tượng liệu quan hệ ñối tượng liệu Giới thiệu lập trình logic Hạng (term) xem đối tượng liệu Hạng gồm: Hạng sơ cấp (elementary term) hằng, biến Hạng phức hợp (compound term) hàm tử (functor) có chứa đối, có dạng: Tên_hàm_tử(ñối1, ñối2, …) VD student(an) Giới thiệu lập trình logic Tam đoạn luận Socrates người Mọi người ñều phải chết ⇒ Socrates phải chết nguoi(socrates) chet(X):- nguoi(X) robber(jerry) childof(tom,john) rich(john) rich(X):- childof(X,Y), rich(Y) Rich(X):- robber(X) Jerry kẻ cướp Tom John John giàu có X kẻ giàu có X có cha giàu có X kẻ cướp Mệnh đề Một mệnh đề có hai hình thức sau: Sự kiện (fact): khẳng định thực thể có vài tính chất; woman(thuy), man(an) Luật: định nghĩa quan hệ ñựa vào quan hệ; wife(A,B):- husband(B,A) Chương trình prolog tập hợp kiện luật xử lí mơ tả quan hệ đối tượng Qui ước kiện: P(A): A có tính chất P; student(an) P(A,B): A P ñối với B; husband(an,thuy) P(A1,A2,…, An): P tên tính chất; A1…An ñối; nguyentu(atom, symbol) Mệnh ñề Luật: Từ viết «:-» Prolog Luật gồm có phần Phần bên trái kết luận, ñược gọi ñầu (head) luật Phần bên phải ñiều kiện, ñược gọi thân luật Nếu có nhiều điều kiện chúng cách dấu phẩy Sự khác kiện luật Sự kiện khẳng ñịnh ln ln Luật điều kiện phần thân định nên sai robber(jerry) childof(tom,john) rich(john) rich(X):- childof(X,Y), rich(Y) Rich(X):- robber(X) Ngôn ngữ Turbo Prolog Prolog: Programming in logic Ra ñời vào năm 1973 C.Camerauer (ðại học Marseilles, Pháp) nhóm đồng phát triển Prolog ngơn ngữ cấp cao Có đặc điểm gần với ngơn ngữ tự nhiên Turbo Prolog phát triển Borland 10