Общая информация
Visual Prolog – это современная среда разработки программ на языке Пролог (от словосочетания «ПРОграммирование в ЛОГике»), для которой характерен принцип визуального программирования.
Интерфейс Visual Prolog включает в себя следующие стандартные компоненты: главное меню, панель инструментов и окно проекта с его файлами.
Язык логического программирования Пролог позволяет решать различные задачи (в особенности из области искусственного интеллекта), не применяя при этом известные традиционные принципы, характерные для алгоритмических языков.
Являясь декларативным (а не императивным) языком программирования, Пролог основывается на том, что программист для решения задачи с помощью компьютера в коде программы указывает «что решать», а не «каким способом», то есть здесь особое внимание уделяется именно описанию задачи.
Это означает, что Пролог ориентирован не столько на разработку решений, сколько на систематизированное и формализованное описание задачи, из которого можно будет получить правильные выводы, отвечая на поставленные в ней вопросы. Поэтому основные конструкции языка Prolog строятся по принципам математической логики, которая использует формализованный способ для представления знаний.
Таким образом, с помощью языка программирования Prolog можно наиболее естественным способом решать различные логические задачи, моделируя в программе процесс размышления человека, который в ходе рассуждений на пути к выводу опирается на известные факты и существующие правила. Среда программирования Visual Prolog позволяет создавать рабочие программы на языке Prolog, предоставляя для этого удобный интерфейс.
Особенности логического программирования
При формализованном подходе к решению задач применяется аксиоматический метод, который представляет собой способ получения истинных выводов из существующего ряда основополагающих, не требующих доказательств положений, называемыми аксиомами или постулатами. При этом формулы формальной системы непосредственно не несут в себе никакого содержательного смысла, они строятся из произвольных знаков или символов, исходя лишь из соображений удобства.
Перечислим требования, предъявляемые к любой аксиоматической системе:
- Непротиворечивость аксиом (истина не может быть ложью).
- Независимость (минимальность), т.е. система не должна содержать бесполезных аксиом и правил вывода.
- Полнота (взаимность адекватности).
Программа на языке Prolog состоит из ряда утверждений, среди которых различаются факты, правила и запросы. Заданные в программе факты образует её базу данных. Правила позволяют устанавливать различные взаимоотношения между объектами задачи, используя имеющиеся факты – истинные утверждения, не требующие доказательства.
При выполнении программы на Прологе осуществляется поиск ответов на вопросы, задаваемые при помощи запросов к базе данных, которая состоит из фактов и правил, т.е. происходит проверка соответствия между предикатами вопросов и обозначенными в базе данных утверждениями.
Принцип получения логических выводов здесь следующий. Он основан на сопоставлении образцов, где с помощью подбора ответов на различные запросы Prolog извлекает всю необходимую для решения задачи известную информацию, принимая во внимание утверждённую истинность отдельных фактов. При этом происходит не только прямой поиск ответа на поставленный вопрос, но и находятся все возможные альтернативные решения. В отличие от любого процедурного языка программирования Turbo Prolog не просто выполняет код программы от его начала до конца, а может возвращаться назад в ходе решения задачи и просматривать все возможные пути при поиске ответов к каждой её отдельной части. Такой процесс называется "поиск с возвратом".
Программирование в среде Visual Prolog
Программа в Visual Prolog состоит из нескольких разделов, среди которых основными являются:
- CONSTANTS – секция для описания используемых в программе констант;
- DOMAINS – секция для описания нестандартных доменов (типов объектов);
- FACTS – секция, которая содержит описание предикатов динамической (внутренней) базы данных;
- PREDICATES – секция для описания нестандартных предикатов;
- CLAUSES – секция предложений, в которой записываются все известные из условия задачи факты и правила, необходимые для дальнейшего осуществления вывода;
- GOAL – секция описания цели, в которой записывается запрос (вопрос, на который в задаче требуется найти ответ).
Как правило, три последних из перечисленных разделов являются в программах обязательными.
Visual Prolog, являясь средством разработки различных логических программ, предоставляет возможности по работе с математическими функциями, списками, а также позволяет решать задачи, используя рекурсивные процедуры, и создавать экспертные системы.