SWI-Prolog
Материал из GedeminWiki
(Различия между версиями)
Latunov (обсуждение | вклад) м |
Latunov (обсуждение | вклад) м |
||
| Строка 1: | Строка 1: | ||
| + | __TOC__ | ||
| + | <br/> | ||
| + | ---- | ||
== Система логического программирования на встроенном [http://www.swi-prolog.org/ SWI‑Prolog] == | == Система логического программирования на встроенном [http://www.swi-prolog.org/ SWI‑Prolog] == | ||
=== Файлы и ресурсы === | === Файлы и ресурсы === | ||
| Строка 185: | Строка 188: | ||
| https://upload.wikimedia.org/wikipedia/commons/d/d9/Swi_profiler.png | | https://upload.wikimedia.org/wikipedia/commons/d/d9/Swi_profiler.png | ||
|} | |} | ||
| + | ---- | ||
== Литература по языку Пролог == | == Литература по языку Пролог == | ||
* [http://www.e-reading.club/book.php?book=96404 У.Клоксин, К.Меллиш. Программирование на языке Пролог] | * [http://www.e-reading.club/book.php?book=96404 У.Клоксин, К.Меллиш. Программирование на языке Пролог] | ||
Версия 10:00, 15 июля 2015
Содержание |
Система логического программирования на встроенном SWI‑Prolog
Файлы и ресурсы
Расположение файлов см. Список файлов дистрибутива платформы Гедымин
Системные файлы DLL
| Имя | Описание | Примечание |
|---|---|---|
| libswipl.dll | библиотека ядра | The Prolog kernel |
| pthreadGC2.dll | библиотека потоков выполнения | POSIX thread runtime library (32-bits) |
| libgmp-10.dll | библиотека арифметики повышенной точности | The GNU Multiple Precision Arithmetic Library |
Файлы DLL для расширения системы (плагины)
| Имя | Описание | Примечание |
|---|---|---|
| memfile.dll | библиотека временных файлов в памяти | Memory files |
| readutil.dll | библиотека утилиты быстрого чтения | Reading lines, streams and files |
Ресурсные архивы
| Имя | Описание | Примечание |
|---|---|---|
| gd_pl_state.dat | файл сохраненного состояния | Generating Runtime Applications |
Для разработчиков
| Ссылка на ресурс | Описание |
|---|---|
| gd_pl.pl | генерация файла сохраненного состояния |
| gd_pl_state | папка с файлами для сохраненного состояния, не входящими в стандартную поставку SWI-Prolog |
PL-классы
Под термином PL-класс понимается класс, предназначенный на для взаимодействия со встроенным SWI‑Prolog.
Соответственно, экземпляр PL-класса будет называться PL‑объект.
TgsPLClient
- Класс клиента SWI-Prolog.
- Иерархия
TObject
- Методы
Initialise(AParams: String): Boolean
- Инициализация SWI-Prolog.
IsInitialised: Boolean
- Проверка инициализации SWI-Prolog.
Call(APredicateName: String; AParams: TgsPLTermv): Boolean
- Краткая форма для OpenQuery, NextSolution, Cut объекта TgsPLQuery, порождающая одно решение.
Call2(AGoal: String): Boolean
- Выполнение терма (аналог предиката once/1).
Compound(AGoal: Unsigned short; AFunctor: String; ATermv: TgsPLTermv)
- Компоновка терма из функтора (имени терма) и аргументов (вектора термов).
LoadScript(AScriptID: Integer): Boolean
- Загрузка Пролог-скрипта по идентификатору.
LoadScriptByName(AScriptName: String): Boolean
- Загрузка Пролог-скрипта по имени.
ExtractData(ADataSet: TClientDataSet; APredicateName: String; ATermv: TgsPLTermv)
- Извлечение данных Пролог-запроса в клиентский набор данных.
MakePredicatesOfSQLSelect(ASQL: String; ATr: TIBTransaction; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
- Формирование Пролог-фактов на основе SQL-запроса.
MakePredicatesOfDataSet(ADataSet: TDataSet; AFieldList: String; APredicateName: String; AFileName: String; AnAppend: Boolean): Integer
- Формирование Пролог-фактов на основе клиентского набора данных.
SavePredicatesToFile(APredicateName: String; ATermv: TgsPLTermv; AFileName: String)
- Выгрузка данных Пролог-запроса в файл.
- Свойства
Debug: Boolean
- Режим отладки.
TgsPLQuery
- Класс запроса SWI-Prolog.
- Иерархия
TObject
- Методы
Close
- Закрытие Пролог-запроса.
Cut
- Отсечение следующих решений Пролог-запроса (выполнения предиката).
NextSolution
- Поиск следующего решения Пролог-запроса (выполнения предиката).
OpenQuery
- Открытие Пролог-запроса и поиск первого решения (выполнение предиката).
- Свойства
Eof: Boolean
- Признак поиска решения Пролог-запроса (выполнения предиката).
PredicateName: String
- Имя предиката (функтор).
Termv: TgsPLTermv
- Аргументы предиката (вектор термов).
TgsPLTermv
- Класс вектора термов SWI‑Prolog.
- Иерархия
TObject
- Методы
PutAtom(Idx: Unsigned short; AValue: String)
- Передача по ссылке в терм данных типа Atom.
PutDate(Idx: Unsigned short; AValue: Date)
- Передача по ссылке в терм данных типа Date.
PutDateTime(Idx: Unsigned short; AValue: Date)
- Передача по ссылке в терм данных типа DateTime.
PutFloat(Idx: Unsigned short; AValue: Real)
- Передача по ссылке в терм данных типа Float.
PutInt64(Idx: Unsigned short; AValue: Int64)
- Передача по ссылке в терм данных типа Int64.
PutInteger(Idx: Unsigned short; AValue: Integer)
- Передача по ссылке в терм данных типа Integer.
PutString(Idx: Unsigned short; AValue: String)
- Передача по ссылке в терм данных типа String.
PutVariable(Idx: Unsigned short)
- Передача по ссылке в терм данных типа Variable (сброс ссылки в изначальное состояние).
ReadAtom(Idx: Unsigned short): String
- Считывание по ссылке из терма данных типа Atom.
ReadDate(Idx: Unsigned short): Date
- Считывание по ссылке из терма данных типа Date.
ReadDateTime(Idx: Unsigned short): Date
- Считывание по ссылке из терма данных типа DateTime.
ReadFloat(Idx: Unsigned short): Real
- Считывание по ссылке из терма данных типа Float.
ReadInt64(Idx: Unsigned short): Int64
- Считывание по ссылке из терма данных типа Int64.
ReadInteger(Idx: Unsigned short): Integer
- Считывание по ссылке из терма данных типа Integer.
ReadString(Idx: Unsigned short): String
- Считывание по ссылке из терма данных типа String.
Reset
- Сброс вектора термов (выполнение метода PutVariable для всего вектора термов).
ToString(Idx: Unsigned short): String
- Считывание по ссылке терма и преобразование к строке.
ToTrimQuotesString(Idx: Unsigned short): String
- Считывание по ссылке терма и преобразование к строке без обрамляющих кавычек.
- Свойства
DataType(Idx: Unsigned short): Integer
- Тип данных.
Size: Unsigned short
- Размер вектора термов.
Term(Idx: Unsigned short): Unsigned short
- Ссылка на терм.
Пролог-скрипты
|
Примеры использования PL-объектов
|
Учебный пример. Игра крестики-нолики
|
Средства разработки
SWI-Prolog Editor
|
SWI-Prolog graphical tracer
|
SWI-Prolog profiler
|