Описание процесса выполнения программы, написанной на
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Языке Пролог

 

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

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

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

 



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

 

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

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

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

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

String - строка;

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

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

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

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

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

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

 

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

 

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

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

DBase IV и DBase for Windows;

Fox Pro;

MS Access.

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

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

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

Обращение к базе данных происходит так же, как к обычным предикатам, состоящим только из предложений-фактов.

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

 

Описание стандартных предикатов

 

Все стандартные предикаты выполняются только прямом пути алгоритма бэктрекинга. На обратном пути они ничего не делают.

Предикаты ввода с консоли.

ReadString(<свободная переменная>) - читает с консоли строку. В качестве параметра обязательно должна передаваться свободная переменная. В противном случае будет выдано сообщение об ошибке и программа закончит свою работу.

ReadInteger(<свободная переменная>) - читает с консоли целое число.

ReadReal(<свободная переменная>) - читает с консоли реальное число.

Дата: 2019-07-24, просмотров: 164.