Языке Пролог
Выполнение программы, написанной на языке Пролог, ведется с использованием алгоритма бэктрекинга.
Предложение просматривает все свои условия последовательно и пытается найти решение для каждого из них. Найдя решение для первого условия, интерпретатор переходит к поиску решения для второго условия с учетом значений переменных, которые были изменены первыми условием. Если решение было найдено, то программа переходит к следующему условию. В противном случае интерпретатор должен вернуться к предыдущему условию и попытаться найти для него другое решение отличное от ранее найденного, а затем опять попытаться выполнить второе условие. Перед началом обратного пути уничтожаются все переменные, которые были созданы перед этим шагом и очищаются те переменные, которые были свободны. Такой процесс происходит до тех пор, пока не будет найдено общее решение верное для всех условий предложения. В этом случае предложение объявляется истинным и выполнение его прекращается. Если такого общего решения найдено не было, то предложение объявляется ложным.
Арифметические выражения и стандартные предикаты процесс бэктрекинга игнорируют и выполняются, так как выполняются однозначно.
Общие сведенья об интерпретаторе
Данная версия языка Пролог совместима по синтаксису с языком 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, просмотров: 198.