- •Кафедра Информационных систем и вычислительной техники Национального минерально-сырьевого университета «Горный"
- •Содержание
- •История развития и современное состояние языка prolog
- •Тенденции в истории развития языка Prolog
- •Области применения языка Prolog
- •Современные реализации языка Prolog
- •Поддержка веб-технологий в реализацях Prolog
- •Основы разработки prolog-программ
- •Общие сведения о языке Prolog
- •Понятие факта, правила, запроса и процедуры
- •Механизм сопоставления и поиска с возвратом
- •Основные элементы языка Prolog
- •Среда разработки программ pie и система swi-prolog
- •Основы работы в консоли Prolog
- •Основы работы с программными файлами
- •Справка и помощь в среде swi-Prolog
- •Основы трассировки и отладки в среде pie и swi- Prolog
- •Графические интерфейсы на базе swi-Prolog/xpce
- •Загрузка и запуск программ swi-Prolog'a
- •Использование ярлыков для запуска программ
- •Использование командных и скриптовых сценариев
- •Среда разработки turbo-prolog
- •Структура программы на Turbo Prolog'e
- •Оболочка системы Turbo Prolog
- •Отладка и трассировка программ
- •Работа с простейшими программами в Turbo Prolog'e
- •Работа с графикой в Turbo Prolog'e
- •Среда разработки visual prolog
- •Интегрированная среда разработки
- •Разработка консольного проекта
- •Разработка gui проекта на Visual Prolog'e
- •Prolog — язык логического программирования
- •Системы основанные на знаниях
- •Логические модели и логическое программирование
- •Простейшие конструкции языка предикатов
- •Предикатные формулы
- •Определение правильно построенной формулы
- •Логический вывод
- •6.6.1. Правило резолюции для простых предложений
- •Правило резолюции для сложных предложений
- •Простая резолюция сверху вниз
- •Общая резолюция сверху вниз
- •Унификаторы и примеры унификации
- •Решение задач и извлечение ответа
- •Приложение 1. Запуск Turbo-Prolog в ос Windows 7
- •1. Стандартные предикаты ввода данных.
- •Предикаты преобразования данных
- •Предикаты работы с окнами.
- •Предикаты работы с файлами.
- •Предикаты управления экраном.
- •Предикаты обработки строк.
- •Предикаты работы с графикой.
- •Разные предикаты.
- •Правила вычисление атрибутов экрана.
- •Приложение 3. Пример программы построения дерева синтаксического анализа
- •Интеллектуальные информационные системы prolog - язык разработки интеллектуальных и экспертных систем
В программе 2.4 перенесите комментарий на строку выше и разберитесь - чем различаются значения poly и smooth.
Загрузка и запуск программ swi-Prolog'a
До текущего момента мы все программы разрабатывали, запускали и
исследовали в интерактивной среде SWI-Prolog^ или SWI-Prolog-Editor'а.
При этом SWI-Prolog-Editor представляет собой интегрированную среду,
которая обращается к SWI-Prolog'y и работать без него не может. Наступил момент, когда надо чуть подробнее взглянуть на SWI-Prolog. Причем, не как на среду разработки Prolog программ, а как на программный продукт.
Если обратиться к свойствам ярлыка рабочего стола или опции меню Windows, с помощью которых может быть запущен SWI-Prolog, то в поле командной строки вызова программы можно увидеть текст, аналогичный
"C:\Program Files (x86)\swipl\bin\swipl-win.exe" --win_app
Из него видно, где находится инсталляционный каталог SWI-Prolog^. Если теперь войти в его подкаталог \bin, то там, наряду с большим количеством библиотек, можно найти два исполняемых файла, а именно:
bin\swipl-win.exe - это графическое приложение для интерактивного использования, которое устанавливается по умолчанию.
bin\swipl.exe - консольная версия для использования в сценариях.
В зависимости от того, в каком режиме предполагается использовать SWI-Prolog, надо запускать ту или иную программу. Формат командной строки вызова любой из этих версий практически аналогичен и в общем случае имеет вид:
swipl.exe <--опции> -f <файл.р1> -g <цель> -t <цель>
где swipl.exe - имя вызываемого файла, за которым следует набор опций и ключей. Опции определяют настройку и режим работы программы, а ключи - набор действий, выполняемых SWI-Prolog'ом по загрузке и ходу выполнения Prolog программ. Подробно об их составе и назначении можно узнать из справки по системе, а здесь рассмотрим только основные из них.
Среди всего множества опций на первых шагах отметим только две из них: --win_app и --quiet. Если SWI-Prolog запущен с опцией --win_app, то в качестве рабочего будет установлен каталог \MyDocuments\Prolog. Если его нет, то система создаст его заново. Использование при вызове SWI- Prolog'а опции --quiet отключает вывод начального сообщения системы в окне консоли при старте программы. Ключ -q выполняет то же действие.
Что касается ключей, которые указываются в строке вызова, то с их помощью можно указать SWI-Prolog'v на необходимость при старте загрузить и откомпилировать определенные программные файлы, а также выполнить запросы для инициализации ряда целей или управления системой. Наиболее часто используются следующие ключи: -f, -s, -g , -t, -q.
Ключи -f <файл> или -s <файл> указывают на необходимость при старте системы загрузить соответствующий программный файл или файлы. Если при старте системы необходимо загрузить сразу несколько файлов, то их имена перечисляются после ключа, объединяясь знаком «+». Например, swipl-win.exe -f d:\prolog\prog_1.pl + d:\prolog\prog_1_rus.pl.
Ключи -g <цель> и -t <цель> определяют цели, которые должны быть иницилизированы при старте системы (-g) или после выполнения всех предикатов загруженных программных файлов (-t). Цель, которая указанна после ключа может включать в себя несколько предикатов, перечисляемых через запятую. К числу наиболее часто используемых терминальных целей относится предикат halt, который вызывает завершение работы Prolog^.
Использование строки запуска позволяет настроить среду SWI-Prolog^ для работы, но особенно это важно для программ с внешним интерфейсом. Когда мы работаем в интерактивной среде, то есть формируем прямо в ней файлы программ и вводим запросы в консоль, настройка строки запуска позволит ускорить переход от одной задачи к другой. При разработке приложения, которое будут использовать другие пользователи, и в котором предусматривается внешний интерфейс, то здесь без формирования строки запуска обойтись вообще затруднительно. Рассмотрим это на примерах.
