SWI-Prolog
Тип | Логічне програмування |
---|---|
Розробник | Jan Wielemakerd |
Перший випуск | 1987 |
Стабільний випуск | 5.10.1 |
Операційна система | Багатоплатформність |
Мова програмування | C, C++ |
Доступні мови | Англійська |
Ліцензія | LGPL |
Репозиторій | github.com/SWI-Prolog/swipl |
Вебсайт | swi-prolog.org |
SWI-Prolog реалізація мови програмування Пролог, яка найчастіше використовується в навчанні, та програмуванні семантичної павутини. Має багато функцій, зокрема бібліотеки для програмування логіки обмежень[en], багатонитевості, модульного тестування, GUI, інтерфейси до Java, ODBC та інші, literate programming[en], веб-сервер, SGML, RDF, RDFS[en], інструменти для розробки (включно з IDE з графічним зневаджувачем та профайлером), та вичерпну документацію.
SWI-Prolog працює на платформах Unix, Windows, та Macintosh.
SWI-Prolog перебуває в постійній розробці з 1987. Його основним автором є Jan Wielemaker. Назва SWI успадкована від Sociaal-Wetenschappelijke Informatica ("Соціальна інформатика"), колишня назва групи в Університеті Амстердама, де працював Wielemaker. Назва групи була замінена на HCS (англ. Human-Computer Studies).
Інтерфейс користувача
SWI-Prolog запускається командою
swipl
або
prolog
Спочатку він очікує лише запитів, кожен із яких закінчується крапкою. Спроба написати програму спричинить помилку:
?- human(john). ERROR: Undefined procedure: human/1
Тут ?-
- привітання системи. Означає що вона очікує запиту.
Програми зберігаються в файлах, і потім передаються інтерпретатору Пролога, за допомогою запиту[1]
?-consult(file).
який можна написати скорочено:
?-[file].
Щоб ввести програму прямо з клавіатури, потрібно написати команду[1]
?-consult(user).
чи
?-[user].
Тоді все аж до наступного натиснення Ctrl+D дописується в базу даних.
XPCE
XPCE багатоплатформенний інструментарій GUI[en] для SWI-Prolog, Lisp та інших динамічно типізованих мов. І хоча XPCE створювався як незалежний від мови, він отримав популярність в основному завдяки Прологу. Розробка інструментарію XPCE почалась теж у 1987 разом з SWI-Prolog.
Підтримує кнопки, меню, слайдери, закладки і інші базові віджети GUI. XPCE доступний на всіх платформах доступних для SWI-Prolog.
PceEmacs
PceEmacs вбудований редактор SWI-Prolog. PceEmacs — клон Emacs реалізований мовою Пролог (та XPCE). Підтримує правильні відступи, підсвітку синтаксису, перевірку синтаксису парсером.
JPL
JPL — двосторонній інтерфейс між Java та Prolog[2]. Потребує SWI-Prolog та Java SDK[3], та встановлюється як елемент SWI-Prolog[4].