Visual Prolog

Visual Prologобъектно-ориентированное расширение языка программирования PDC Prolog, развивавшегося из Turbo Prolog (Borland), семейства Prolog, а также система визуального программирования датской фирмы Prolog Development Center.

Visual Prolog
Тип Язык программирования
Разработчик Prolog Development Center
Операционная система MS Windows
Последняя версия 11.0 7 (16 февраля 2024)
Лицензия проприетарная
Сайт visual-prolog.com

Prolog Development Center затратил более трех лет на разработку системы Visual Prolog с поэтапным бета-тестированием, поставки коммерческой версии которой начались с февраля 1996.

Visual Prolog автоматизирует построение сложных процедур и освобождает программиста от выполнения тривиальных операций. С помощью Visual Prolog проектирование пользовательского интерфейса и связанных с ним окон, диалогов, меню, строки уведомлений о состояниях и т. д. производится в графической среде. С созданными объектами могут работать различные Кодовые Эксперты (Code Experts), которые используются для генерации базового и расширенного кодов на языке Prolog, необходимых для обеспечения их функционирования.

Мощность языка Prolog в сочетании с системой пользовательских интерфейсов упрощает разработку систем, основанных на знаниях, систем поддержки принятия решений, планирующих программ, развитых систем управления базами данных и т. д.

Язык программирования править

Язык программирования, реализованный в Visual (а ранее в Turbo) Prolog`е отличается от классического пролога тем, что он основан на строгой статической типизации. В него также добавлены средства объектно-ориентированного программирования, анонимные предикаты (лямбда-предикаты), факты-переменные и разрушающее присваивание для них, аргументы-домены (Generic Interfaces and Classes) и параметрический полиморфизм, мониторы (Monitors with guards), императивные конструкции (foreach, if...then...else), коллекторы списков ([...||...]) и пр.

Visual-среда разработки править

Среда разработки приложений системы Visual Prolog включает текстовый редактор, различные редакторы ресурсов, средства разработки справочных систем в гипертекстовом представлении, систему отслеживания изменений, которая обеспечивает перекомпиляцию и перегенерацию только измененных ресурсов и модулей, ряд экспертов Кода, оптимизирующий компилятор, набор средств просмотра различных типов информации о проекте и отладчик. Полная интеграция всех средств обеспечивает повышение скорости разработки приложений. Полученные приложения являются исполняемыми .EXE программами. В коммерческой версии Visual Prolog 7.x возможно создание .DLL-файлов, в персональной версии такая возможность существовала вплоть до версии 5.x.[1] Первая из возможностей, которые предоставляет IDE, заключается в управлении проектами. Поскольку среда рассчитана на создание достаточно масштабных приложений, то и средства управления файлами в рамках проекта приложения в ней представлены в достаточном для этого объёме. В среде есть встроенный редактор диалогов, который позволит организовать взаимодействие пользователя с программой при помощи графического интерфейса.

Совместимые библиотеки править

Система программирования пользовательских интерфейсов (GUI — Graphic User Interface) системы Visual Prolog является высокоуровневой абстракцией к функциям операционной системы.

В систему включен также интерфейс с базами данных типа SQL. Почти все типы баз данных доступны с использованием Windows ODBC интерфейса. Поддерживаются также обращения к базам данных Oracle.

В инсталляционный пакет входит 50 классов (Prolog Foundation Classes). Среди них есть GDI+, криптографический, компрессия данных, COM, интерпретатор Классического Пролога PIE (Prolog Inference Engine) и пр.

Примеры править

Реализация игры «Ханойские башни» на Visual Prolog:

class hanoi 
   predicates 
       hanoi : (unsigned N). 
end class hanoi 
 
implement hanoi 
   domains 
       pole = string. 
 
   clauses 
       hanoi(N) :- move(N, "left", "centre", "right"). 
 
   class predicates 
       move : (unsigned N, pole A, pole B, pole C). 
   clauses 
       move(0, _, _, _) :- !. 
       move(N, A, B, C) :- 
           move(N-1, A, C, B), 
           stdio::writef("move a disc from % pole to the % pole\n", A, C), 
           move(N-1, B, A, C). 
end implement hanoi 
 
goal 
   console::init(), 
   hanoi::hanoi(4).

Примечания править

  1. Differences between the Commercial and Personal Editions of Visual Prolog. Дата обращения: 27 мая 2012. Архивировано из оригинала 18 мая 2012 года.

Ссылки править