Смекни!
smekni.com

Интерпретатор языка Пролог (стр. 9 из 15)

Рис. 3.4. Вид окна конструктора баз данных

Ввод предиката производится аналогично вводу нового типа.

Для редактирования элемента любого из списков можно дважды щелкнуть по нужному элементу. Для удаления элемента из списка нужно щелкнуть по нему, а затем нажать на кнопку минус.

При однократном нажатии на элемент с именем предиката текстовый курсор в окне редактора автоматически перейдет к тому месту в программе, где описывается данный предикат.

Текст программы вводится в окне редактора. Это окно состоит из панели инструментов и редактора. На панели инструментов находится кнопки для копирования, вырезания и вставки фрагмента текста, а также кнопка по установки контрольной точки в тексте. Из окна редактора можно мгновенно получить справку о любом стандартном предикате или функции, набрав имя предиката или функции в тексте и нажав кнопку F1.


Рис. 3.5. Вид окна редактора.

В процессе написания программы используются стандартные средства редактора операционной системы Windows. Окно редактора поддерживает стандартные операции с буфером обмена Windows, выполняемые по нажатию горячих клавиш, а также выделение областей текста. Поддерживаются следующие горячие клавиши:

Shift - стрелки вверх, вниз, вправо, влево, Home, End - выделение области текста для операций;

Ctrl-Insert или Ctrl-C - копировать выделенную область в буфер обмена;

Shift-Insert или Ctrl-V - вставить фрагмент из буфера обмена;

Shift-Del или Ctrl-X - вырезать фрагмент в буфер обмена.

Перед запуском программы в окне опций проекта необходимо установить имя базы алиаса (если используются базы данных) и имя запускаемого предиката. Если не задано имя запускаемого предиката, программа не запустится.

Рис. 3.6. Вид окна опций проекта.


3.3.4 Запуск программы на Прологе и ее отладка

Для запуска программы на главном окне надо нажать на кнопку "Запуск" или в меню "Проект" нажать на пункт с таким же названием. После нажатия на кнопку происходит компиляция программы. В статусной строке в главном окне появляется надпись "Компиляция". Если во время были найдены ошибки, то на экран появляется окно со списком найденных ошибок. При двойном щелчке по строке с названием ошибки текстовый курсор в окне редактора перейдет к месту в тексте, где была найдена ошибка.

Если процесс компиляции прошел нормально, то программа запускается на исполнение. Процесс выполнения программы может быть прерван нажатием на кнопки "Стоп" или "Пауза" в главном окне, а также, если программа приступила к обработке оператора, на котором установлена контрольная точка. При временной остановке на экран появляются два окна: окно трассировки и окно стека.

В окно "Трассировка" выводится протокол работы программы, то каждый вызов предиката, базы данных или арифметического выражения, а также возвращаемые ими значения.

Рис. 3.7. Вид окна трассировки.

В окне "Стек" можно просмотреть стек программы. Стек представлен в виде древовидной структуры. В корне дерева находятся вызовы предикатов. Развернув корневой элемент дерева можно увидеть параметры, с которыми был вызван предикат и переменные, которые были созданы в процессе выполнения предиката.

Общий вид корневого элемента дерева выглядит следующим образом: "Имя предиката n1 : n2", где n1 - номер предложения, n2 - номер условия в предложении.

Рис.3.8. Вид окна стека.

3.3.5 Работа с меню

Для удобства пользователя при выборе команд в программу введена система меню, которая содержит следующие пункты:

Файл

Окна

Проект

Настройка

Помощь

Меню Файл содержит следующие пункты.

Создать - позволяет создать новую программу на Прологе.

Открыть - позволяет открыть имеющийся файл и выводит стандартное окно Windows для открытия файла:


Рис.3.9. Вид окна для открытия файла.

При открытии файла в инспектор загружается информация о типах, базах данных и предикатах, а в редактор - текст программы. Если формат файла был нарушен, то он не будет загружен.

Вспомнить - за этим пунктом скрывается подменю, состоящее из имен последних восьми файлов, которые открывались Пролог-системой. Нажав на название нужного файла в этом подменю можно быстро загрузить его.

Сохранить - позволяет сохранить файл на диск. Если файл создавался с помощью пункта меню Создать, то выводится диалоговое окно, позволяющее присвоить имя сохраняемому файлу.

Сохранить как - позволяет присвоить новое имя файлу. При выборе этого пункта меню будет выведено на экран диалоговое окно для ввода имени файла.

Печать - формирует печатную форму из данных, содержащихся в инспекторе, окне редактора и окне опций проекта. После окончания процесса формирования печатной формы на экране появится окно, в котором можно будет просмотреть вид печатной формы. В этом окне можно выделить область текста и скопировать в буфер обмена. При нажатии в окне печати на кнопку "Печать" будет начат вывод на принтер. Общий вид печатной формы можно представить следующим образом:

<Имя печатаемого файла>

DOMAINS

<Объявления типов>

ALIAS

<Имя алиаса в Borland Database Engine, которое использует данная программа>

DATABASES

<Описание структур баз данных>

PREDICATES

<Описание параметров предикатов>

GOAL

<Имя запускаемого предиката>

CLAUSES

<Текст программы>

Выход - позволяет завершить работу программы интерпретатора Пролог.

Меню Окна позволяет открыть следующие окна:

Инспектор;

Консоль;

Редактор;

Контрольные точки;

Стек;

Трассировка.

Меню Проект содержит следующие пункты:

Опции - выводит на экран диалоговое окна с опциями проекта, в котором можно указать имя алиаса, которым будет пользоваться программа написанная на Прологе, а также имя запускаемого предиката.

Запуск - позволяет запустить Пролог-программу на исполнение.

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

Меню Помощь содержит следующие пункты:

Предметный указатель - загружает help-файл и показывает главную страницу.

О программе - выводит окно с информацией о программе.

3.4 Описание процесса выполнения программы, написанной на

языке Пролог

Выполнение программы, написанной на языке Пролог, ведется с использованием алгоритма бэктрекинга.

Предложение просматривает все свои условия последовательно и пытается найти решение для каждого из них. Найдя решение для первого условия, интерпретатор переходит к поиску решения для второго условия с учетом значений переменных, которые были изменены первыми условием. Если решение было найдено, то программа переходит к следующему условию. В противном случае интерпретатор должен вернуться к предыдущему условию и попытаться найти для него другое решение отличное от ранее найденного, а затем опять попытаться выполнить второе условие. Перед началом обратного пути уничтожаются все переменные, которые были созданы перед этим шагом и очищаются те переменные, которые были свободны. Такой процесс происходит до тех пор, пока не будет найдено общее решение верное для всех условий предложения. В этом случае предложение объявляется истинным и выполнение его прекращается. Если такого общего решения найдено не было, то предложение объявляется ложным.

Арифметические выражения и стандартные предикаты процесс бэктрекинга игнорируют и выполняются, так как выполняются однозначно.


3.5 Общие сведенья об интерпретаторе

Данная версия языка Пролог совместима по синтаксису с языком Turbo Prolog с некоторыми отличиями.

Поддерживаются следующие простые типы данных:

Integer - целочисленный тип;

Real - число с плавающей запятой;

String - строка;

Boolean - логический тип (имеет два значение True - истина и False - ложь).

Составные типы:

Список - используется для представления массивов данных. Количество элементов в списке не ограничено.

Структура - используется для представления массивов неоднородных данных. Количество полей в структуре не ограничено.

Составной тип - используется для совмещения нескольких типов под одним именем.

Комментарии внутри программы записываются внутри фигурных скобок.

3.6 Особенности работы Пролог-программы с базами данных

Данная версия Пролога работает со следующими видами баз данных:

Paradox 7 (или предыдущие версии);

DBase IV и DBase for Windows;

Fox Pro;

MS Access.

Для использования других видов баз данных (например, InterBase или Oracle) необходима установка драйверов этих баз данных.

Работа с базами данных производится под управлением Borland Database Engine, которая должны быть установлена на компьютер либо при установке Пролога, либо с какой-либо другой программой.

При выполнении программы база данных идентифицируется с помощью своего псевдонима, которое при вводе структуры базы данных средствами инспектора заносится в поле "Имя". Имя файла базы данных в тексте программы не используется, хотя псевдоним и имя файла могут совпадать.