Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prolog.doc
Скачиваний:
31
Добавлен:
12.03.2015
Размер:
929.28 Кб
Скачать

11.2. Установка контрольных точек

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

Применение контрольных точек дает возможность пользователю остановить выполнение программы при переходе к новой цели, про­верить состояние параметров и, возможно, воздействовать на даль­нейший процесс доказательства.

Метод контрольных точек аналогичен пошаговому режиму вы­полнения команд, применяемому при разработке программ на языке Ассемблера.

Возможные действия в контрольной точке

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

a (abort/прекратить) - вернуться на верхний уровень интерпре­татора;

b (backtrace/вернуться назад) - показать последние N выполнен­ных целевых утверждений;

f (fail/неудача) - установить результат «неудача» при доказа­тельстве текущей цели;

s (succeed/успе綮) - установить результат «успех» при доказа­тельстве текущей цели.

Включение и выключение режима контрольных точек

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

Приведем два типичных метода включения режима контрольных точек.

1. Использование механизма прерывания с клавиатуры, напри­мер одновременное нажатие клавиш CTRL и S. Повторное нажатие клавиш CTRL и S приводит к отключению режима контрольных то­чек. Программист имеет возможность применить данный метод при разработке программы за терминалом.

2. Применение предиката spy для включения режима контроль­ных точек и предиката nospy для выключения. Данный метод служит для проверки отдельных частей программы. Предикат spy необ­ходимо вставить в программу непосредственно перед проверяемым участком, а предикат nospy - сразу после него.

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

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

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

Необязательные параметры режима контрольных точек

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]