Реферат: Prolog. Реализация на ПЭВМ
и т. д.
Работа с командами операционной системы
Необходимым условием для работы с предикатами этой группы есть наличие подкаталога DOS, в котором бы был записан минимум command.com
system (<команда OS>)
(string) : (i) - передает команду OS
date (<год>, <месяц>, <день>)
(integer, integer, integer) : (i, i, i) (0, 0, 0) - устанавливает, если (i, i, i), или возвращает, если (0, 0, 0) системную дату
time ... - то же
dir (<маршрут>, <спецификатор файла>, <имя файла>)
(string, string, string) : (i, i, 0) - выдаются на экран специфицированные файлы из каталога по маршруту. Возможно выбрать из каталога имя одного файла с помощью стрелок управления курсором, при нажатии <Enter> имя этого файла присваивается третьему аргументу предиката
Специальные предикаты языка Turbo Prolog
bouncl (<переменная>) - “истина, если переменная является конкретизированной
free (<переменная>) - “истина, если переменная не является конкретизированной
fail - всегда ложн. вызывает возврат для проверки базы в правилах
! - (cat) - предикат отсечения, ограничивает возврат
exit - останавливает выполнение пользовательской программы и передает управление меню Turbo Prolog
trace - общее включение режима отладки. Указывается в начале исходной программы
trace (<статус>)
(symbol) : (i) (0) - устанавливает, если i, или возвращает, если 0, текущий режим отладки. В качестве статуса можно использовать on/off. Использование этого предиката предполагает наличие trace в начале программы
diagnostics - позволяет выдать анализ программы в процессе компиляции. Анализ включает имена используемых предикатов. Для каждого имени определяется, являются ли аргументы конкретного предиката фактами или указывается конкретность предиката.
nowarnings - отключает предупреждения в процессе компиляции
project “имя файла” - данная программа является частью проекта
include “имя файла” - в компиляцию включается файл с указанным именем
Управление ходом выполнения программ на языке ТР.
1. Рекурсия.
В механизм обработки программ на языке ТР заложена рекурсия, то есть вычисление значения функции с помощью той же функции, но с измененными параметрами. Рекурсия в ТР реализуется в 2 этапа:
1) исходная задача разбивается на более мелкие частные задачи и формируются частные решения и на основе которых затем будет получено общее решение задачи.
Процесс разбиения задачи на подзадачи наз-ся редукцией. Редукция завершается в том случае, если сформирована подзадача, которая может быть решена непосредственно.
2) сборка решения, начиная от самого (?) последнего к самому общему. Для использования рекурсии в программах необходимо использовать следующий формат правила рекурсии: