Содержание:
Теоретические сведения о Prolog
История
Пролог был разработан в Марсельском университете во Франции Алэном Колмероэ и другими членами «группы искусственного интеллекта» в 1973 году. Данная команда энтузиастов разработала программу, предназначенную для доказательства теорем. Написана она была на Фортране, и использовалась при построении систем обработки текстов на естественном языке. Работала программа довольно медленно и назвалась Prolog (от Programmation en Logique на франц.). Программа послужила прообразом Пролога.
Язык логического программирования prolog — декларативный, что означает, что программа, написанная на нем, выглядит как набор логических описаний, определяющих цель, ради которой она и написана.
В основе Пролога лежит раздел математической логики, называемый исчисление предикатов. Его базис составляет процедура доказательства теорем методом резолюции для хорновских дизъюнктов.
По сути, Prolog представляет собой не столько язык для программирования, сколько средство для описания данных и логики их обработки. Поскольку язык не алгоритмический, то и программа на Прологе не содержит явных алгоритмических конструкций типа условных или циклических операторов, т.е. не является программой в классическом понимании. Написанная на Прологе, она представляет собой модель фрагмента предметной области на решение проблемы которой и направлена задача. Само решение задачи записывается не в терминах компьютера, как это принято в императивных языках, а в терминах предметной области решаемой задачи, по сути, в духе объектно-ориентированного программирования.
Пролог включает механизм вывода, который основан на сопоставлении образцов, с помощью подбора ответов на запросы он извлекает хранящуюся (известную) информацию.
Области применения языка Prolog и декларативных языков в целом
- Реализация систем искусственного интеллекта.
- Создание экспертных систем и оболочек экспертных систем.
- Разработка систем помощи принятия решений.
- Разработка систем обработки естественного языка.
- Построение планов действий роботов.
- и т.п.
Особенности языка
- Описание проблемы и правил ее решения.
- Нахождение всех возможных решений с помощью механизма поиска с возвратом (backtracking).
- Легкий синтаксис.
Версии и компиляторы
На сегодня существует довольно много реализаций Пролога. Но самый первый компилятор языка был создан Уорреном и Перейрой в 1977 году в Эдинбурге, компилятор предназначался для ЭВМ DEC–10. Тот самый компилятор, известный как реализация под названием «эдинбургская версия», фактически стал первым и единственным стандартом языка и послужил прототипом для многих последующих реализаций Пролога. Интересным фактом является то, что компилятор был написан на самом Прологе.
Изучать Пролог без привязки к конкретной его версии не совсем целесообразно. Версий Пролога очень много, но мы выберем наиболее известную в России и довольно эффективную версию Пролога — Турбо Пролог. Начинала разработку версии (реализации) фирма Borland International совместно с датской компанией Prolog Development Center (PDC). Первая версия вышла в 1986 году. Последняя совместная версия 1988 года вышла под номером 2.0.
Остальные версии начиная с 1990 года, когда PDC получила монопольное право на Турбо Пролог, продвигались под названием PDC Prolog.
Таким образом, в 1992 году вышла версия PDC Prolog 3.31, а в 1996 году, при участии группы питерских программистов, PDC выпустила систему Visual Prolog 4.0, у которой много достоинств, но мы не будем на них останавливаться.
Для работы мы выберем самый простой компилятор TPtolog (Турбо Пролог).
К достоинствам Турбо Пролога относится возможность присоединять к программе на этом языке процедуры, написанные на Паскале, Си, Фортране или ассемблере.
Загрузка Tprolog через Dosbox
Для работы в Tprolog с 68 битной системой необходимо использовать программу для эмуляции DOS (например, dosbox).
Алгоритм работы с программой следующий:
- запуск dosbox
- mount c c:\dos\TProlog
- c: => enter
- prolog => enter
- Набор кода программы в редакторе «notepad++» и сохранение с расширением
.PRO
в папке tprolog\labs
Работа в Tprolog
Горячие клавиши и основные команды:
- F10, Esc — переход в главное меню.
- Esc — выход из текущего пункта / отмена.
- Меню Edit — переход к редактированию кода.
- Меню Files -> New File — создание нового файла.
- Меню Compile -> Memory -> Меню Run — компиляция и запуск программы.
i
.Запуск программы осуществляется двумя способами:
- Через написание раздела
GOAL
и запуска программы в менюcompile
иrun
. -
Работа с окном
DIALOG
(в таком случае разделGOAL
в программе не нужен).
Запуск программы при использовании раздела GOAL
- Compile — компилируем
- Run — запускаем
- Esc – выход в меню
Работа с окном dialog
- Команда Run.
- Окно dialog.
- Запрос в виде: postroil (jack,house).