Скачиваний:
16
Добавлен:
01.05.2014
Размер:
287.74 Кб
Скачать

Директивы

Если пользователь поставит в конце запроса восклицательный знак, то этот запрос будет выполнен, но никакая выходная информация при этом не будет выводиться. Запрос, после которого стоит восклицатель­ный знак» называется «командой». При просмотре файла интерпретатор трактует содержимое файла точно так же, как если бы оно непосредствен­но вводилось пользователем. Так, если факт в файле исходного текста заканчивается вопросительным знаком, то при просмотре этого файла данный факт будет рассматриваться как запрос, который будет выполнен до того, как интерпретатор перейдет к просмотру остальной части файла. Если факт завершается восклицательным знаком, то этот факт будет выполнен как команда (т.е. не будет выдаваться никакой выходной информации) до перехода к просмотру оставшейся части файла. Интерпретатор будет также рассматривать как команду и запрос, перед которым стоят символы :— и который заканчивается точкой.

Среда разработки программ

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

В УНСВ Прологе имеется встроенный предикат "ed/1", обеспечивающий переход к редактированию процедуры во время сеанса работы с Прологом. Перед запуском Пролога следует определить имя редактора операционной системы UNIX при помощи переменной "EDITOR" интер­претатора команд "shell" этой операционной системы. Для редактирования программы во время сеанса работы с Прологом вызывается предикат "ed/1 ", в качестве аргумента которого задается имя определенной в данный момент процедуры. Предикат "ed/1" перепишет все фразы указан­ной процедуры во временный файл, а затем запустит заданный редактор для корректировки временного файла. При этом редактор будет про­цессом-потомком Пролог-процесса. После окончания сеанса редактирова­ния старые фразы процедуры заменяются на фразы из временного файла, а сам в ременный файл уничтожается.

Отладчик

Отладчик Пролога-86 отдаленно напоминает отладчик СиПролога. Однако в Прологе-86 отсутствуют контрольные точки, нет диалоговых отладочных команд и нет возможности проследить за выполнением всех процедур, не указывая их имена. Отладчик включается при помощи вызова предиката "trace/1 ", аргументом которого является имя одной процеду­ры или список имен процедур. Когда при выполнении запроса встречаются трассируемые процедуры, отладчик печатает информацию о них в стандарт­ных четырех точках: call (вызов), exit (выход), fail (неудача) и redo(noвторное выполнение). В сообщениях отладчика отсутствует уникальная идентификация вызова процедуры, однако при помощи символов \ , рас­полагающихся перед самой подцелью, показывается количество предков этой подцели. Тем самым при выполнении запроса к рекурсивной проце­дуре получается интересное графическое представление. Пример выход­ной информации, выдаваемой при запросе к предикату "member":

: trace member?

** да

: member (а, [с, b,a])?

С | > member(a, [с, b, a])

С | |> member (a, [b, а])

С | | |> member (а, [а])

Е | | | < member (а, [а])

Е | | < member (a, [b, а])

Е | < member (а, [с, b, а])

* * да

Символ С, стоящий в начале строки, обозначает точку вызова, а сим­вол Е — точку выхода.

Соседние файлы в папке Гл.6,7,Прилож.,Допол