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

Отладочные команды

< возврат каретки > Отладчик будет печатать отладочные строки для всех процедур (это — максимальный уровень детализации отла­дочной информации).

s (skip — пропустить). Отладчик ничего не будет печатать до тех пор пока при данном вызове процедуры не встре­тятся отладочные сообщения "Exit" или "Fail".

l (leap — перескочить). Отладчик ничего не будет печатать до следующего вызова процедуры, в которой установ­лена контрольная точка.

n (nodebug — отключить отладку). Выключает отладчик до того момента, пока система не выйдет на сообщение-подсказку верхнего уровня.

a (abort — прекратить). Останавливает выполнение про­граммы и вызывает возврат к сообщению-подсказке верхнего уровня.

Если нужно воспользоваться отладчиком для наблюдения только за выполнением одной процедуры, то программист должен установить контрольную точку в этой процедуре, запустить программу на счет и далее вводить команду / (leap) в ответ на каждое сообщение-подсказку отладчи­ка. Команда / предписывает отладчику ничего не печатать, вплоть до сле­дующего вызова процедуры с контрольной точкой.

Команду s (skip) можно применять для пропуска отладочной инфор­мации вплоть до выхода из процедуры или ее неудачи. Предположим, что в точке вызова тщательно отлаживаемой процедуры (такой как "эле­мент") отладчик печатает сообщение. Если воспользоваться командой s, то все излишние подробности того, как процедура "элемент" достигает успеха или неудачи, не будут показаны.

Компилятор

Для СиПролога нет компилятора.

Запомненные состояния

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

| ?- consult('a. pi').

да

| ?- save ('a. save').

да

| ?— halt. % конец сеанса.

Для того чтобы опять запустить СиПролог и восстановить запомненное состояние, пользователь должен вызвать СиПролог из среды операционной системы, указав в качестве аргумента имя файла с запомненным состоя­нием:

$cprolog a.save Для больших программ восстановление запомненного состояния обычно выполняется гораздо быстрее, чем просмотр интерпретатором исходного файла. Однако файлы с запомненными состояниями, как правило, имеют большой размер.

Интересным свойством запомненных состояний является то, что любые невыполненные во время сеанса работы запросы также запоминаются и выполняются, как только будет произведено восстановление. В ниже­следующем примере пользователь указывает, что после восстановления запомненного состояния требуется выполнить запрос к процедуре "start":

| ?-save('a.pl'), start(8).

да

Таким образом, можно воспользоваться запомненными состояниями для создания "выполнимой" версии Пролог – программы, в которой само существование интерпретатора Пролога будет полностью скрыто от поль­зователя программы.

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