HƯỚNG DẪN PROLOG

Chương I: reviews Về Prolog

Prolog là ngôn từ được sử dụng thịnh hành nhất trong dòng những ngôn ngữ thiết kế lôgich (Prolog tức là PROgramming in LOGic). Ngữ điệu Prolog vị giáo sư fan Pháp Alain Colmerauer và nhóm nghiên cứu và phân tích của ông khuyến nghị lần thứ nhất tại trường Đại học Marseille đầu trong thời gian 1970. Đến năm 1980, Prolog gấp rút được áp dụng rộng thoải mái ở châu Âu, được người Nhật lựa chọn làm ngôn ngữphát triển dòng máy tính xách tay thế hệ 5. Prolog đã có cài đặt lên trên các trang bị vi tính táo apple II, IBM-PC, Macintosh.

Prolog còn được gọi là ngôn ngữ lập trình ký hiệu (symbolic programming) tương tự các ngôn ngữ lập trình hàm (functional programming), tuyệt lập trình phi số (nonnumerical programming). Prolog rất tương thích đểgiải quyết các bài toán tương quan đến các đối tượng (object) và mối quan hệ (relation) giữa chúng.

Prolog được sử dụng thông dụng trong nghành trí tuệnhân tạo. Nguyên tắc lập trình lô ghích dựa trên những mệnh đề Horn (Horn logic). Một mệnh đề Horn biễu diễn một sự kiện hay là 1 sự vấn đề nào sẽ là đúng hoặc không đúng, xảy ra hoặc không xảy ra (có hoặc không có, v.v…).

Bạn đang xem: Hướng dẫn prolog

SWI-Prolog thuộc mẫu họ Prolog Edinburgh vì giáo sư Jan Wielemaker xây dựng vào khoảng thời gian 1983 tại khoa Khoa học tin tức Xã hội, ngôi trường Đại học tập Amsterdam, Hà Lan. Đây là mã mối cung cấp mở cho những nhà trở nên tân tiến lập trình logic. SWI-Prolog bao gồm một thư viện vị từ, cùng tài liệu hướng dẫn phong phú. SWI-Prolog hoạt động theo khối hệ thống đơn thể, có giao diện trao đỏi hai chiều linh hoạt so với ngôn ngữ C. SWI-Prolog là một trong những ngôn ngũ sư phạm, vì thế bị hạn chế rất nhiều về vận tốc biên dịch chương trình.

SWI-Prolog vận động trên môi trường thiên nhiên đồ họa XPCE kim chỉ nan đối tương (GUI) X-windows. SWI-Prolog tương đối dễ thực hiện nhờ khai quật các đặc thù tương tác trang bị họa. SWI-Prolog cho những phiên phiên bản trên những hệ điều hành không giống nhau tương thích với mọi mội trường.

Công nạm SWI-Prolog là cách thức giúp lập trình xúc tích với thư viện vị từ phong phú và đa dạng và là 1 trong mã mối cung cấp mở. Để xem thêm về lý lẽ này có thể vào home của SWI-Prolog tại: http://www.swi-prolog.org/. Sau thời điểm download chúng ta có thể cài đặt theo công việc sau:

Bước 1: Chạy tệp tin SWI-Prolog_xxx.exe tiếp đến nhấn OK, tiếp đó thừa nhận I Agree (hình dưới)

*

Bước 2: Chọn môi trường xung quanh chạy, setup nhấn next để tiếp tục

*

Bước 3: chọn nơi thiết đặt và thừa nhận next nhằm tiếp tục. Xem xét đánh lốt lại thư mục thiết lập để liên kết tới môi trường thao tác làm việc khi liên kết với bối cảnh C#. Nếu đường truyền sai sẽ ảnh hưởng tới quá trình chạy trên hình ảnh C# sau này.

*

Bước 4: chọn đuôi mở rộng hoặc là *.pl, hay những *.pro, dấn Install để ban đầu cài đặt

*

Bước 5: sau khi chạy Install thừa trình thiết lập sẽ bắt đầu thực this au khi chấm dứt nhấn finished

*

Sau khi thiết lập xong sẽ xuất hiện thêm giao diện SWI-Prolog như sau:

*

Để xây dựng ngôn ngữ lô ghích Prolog ta hoàn toàn có thể viết trên bất kể trình biên soạn thảo văn bạn dạng nào tiếp nối lưu file bên dưới dang *.pl hoặc *.pro tùy vào phần không ngừng mở rộng bạn thiết đặt trước đó. Sau thời điểm thực hiện những câu lệnh lập trình xong, banjc ó thể chạy trược tiếp file *.pl, lúc đó của sổ SWI-Prolog sẽ chỉ ra nhằm giúp bạn thực hiện thắc mắc truy vấn. Để tham khảo thêm câu lênh bạn cũng có thể gõ: ?- help. Để hiển thị hỗ trợ về những câu lệnh truy hỏi vấn trong lập trinh Prolog

Để tạo bối cảnh cho ngôn ngữ logic Prolog ta hoàn toàn có thể kết nối chúng với các ngôn ngữ trực quan hơn hoàn toàn như C/C++, C#, Java,… sau đây chỉ là phía dẫn liên kết giữa Prolog với hình ảnh C#.

Trước không còn ta cần mày mò môi ngôi trường chạy lúc trước khi cài đặt, môi trường SWI_HOME_DIR giúp cho SWI_Prolog tất cả thể vận động trên môi trường xung quanh giao diện GUI. Để kết nối được hình ảnh ta buộc phải thư viện kết nối với căn nguyên .NET framework là Swi-cs-pl.

Xem thêm: Top 8 Dầu Gội Đen Tóc Tốt Nhất (Cập Nhật 2021), Rohm Semiconductor

Lưu ý: phiên phiên bản Prolog rất đặc biệt quan trọng trong bài toán sử dụng các thư viện kết nối (Các thư viện và phiên bản cài có thể tìm trên trang chủ của SWI-Prolog hoặc file đi cùng bài báo cáo này):

Nếu sử dụng windows 7/8 32bit thì sử dụng Prolog 32bit, nếu thực hiện windows7/8 thì thực hiện phiên phiên bản Prolog 64bit.

Nếu sử dụng Prolog 32bit thì thư viện bắt buộc là SwiPlCs.dll cùng nunit.framework.dll, nếu thực hiện Prolog 64bit thì thư viện sử dụng phải là SwiPlCs64.dll và nunit.framework.dll.

Sử dụng phiên phiên bản SWI-Prolog 6.3.3 cho bộ thư viện SwiPlCs.dll cùng nunit.framework.dll, áp dụng phiên bạn dạng SWI-Prolog 6.6.5 cho bộ thu viện SwiPlCs64.dll và nunit.framework.dll.

Cách liên kết C# với Prolog:

Bước 1: Copy 2 thư viện tương xứng vào folder Debug của Project tương xứng với bản cài đặt cũng như môi trường chạy, sau đó thêm 2 thư viện này vào References của Project

Bước 2: thực hiện kết nối với môi trường xung quanh tại tệp tin Program.cs

using SbsSW.SwiPlCs;namespace Prolog_Math static class Program static void Main() Environment.SetEnvironmentVariable("SWI_HOME_DIR",
"C:Program Files (x86)swipl"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (!PlEngine.IsInitialized) String<> empty_param = ""; PlEngine.Initialize(empty_param); Application.Run(new Prolog()); PlEngine.PlCleanup(); Lưu ý: môi trường thiên nhiên của SWI-Prolog phụ thuộc vào liên kết đường dẫn lúc thiết đặt đã được chú giải phía trên. Nếu như sai đường dẫn này coi như môi trường Prolog ko hoạt động. Ở trên đây mặc định mang lại hệ điều hành và quản lý 32bit là “C:Program Files (x86)swipl”, cùng hệ quản lý và điều hành 64 bit là “C:Program Filesswipl”

Sau lúc liên kết môi trường ta rất có thể tạo lớp đối tượng người sử dụng kết nối sau (Thực thi dưới dang class.cs):

using SbsSW.SwiPlCs;using NUnit.Framework;using System.Text.RegularExpressions;namespace Prolog_Math class QueryString public void Load_file(string s) s = s.Replace("\", "https://"); s = String.Format("consult("0")", s); string query = s.Replace("\", "https://"); try PlQuery q = new PlQuery(query); Assert.IsTrue(q.NextSolution()); catch (SbsSW.SwiPlCs.Exceptions.PlException e) System.Windows.Forms.MessageBox.Show(e.ToString(), "Error"); public string Query(string s) s.Trim(); Regex r = new Regex(
"*"); MatchCollection matches = r.Matches(s); string result = ""; try PlQuery q = new PlQuery(s); bool HasSolution = false; foreach (PlQueryVariables v in q.SolutionVariables) HasSolution = true; foreach (Match match in matches) result += v.ToString() + " ; "; if (matches.Count == 0) return HasSolution ? "true" : "false"; return result; catch (SbsSW.SwiPlCs.Exceptions.PlException ex) return "Error query: " + ex.Message; Sau cùng chúng ta có thể kết nối cùng file *pl của Prolog với đồ họa C# tùy nằm trong vào yêu thương cầu bài bác toán. Để cho đường truyền mặc định gọi tới tệp tin *.pl ta nên đưa tệp tin này vào folder Debug của Project nhằm tránh bài toán load đường dẫn tĩnh không mong muốn.