Трассировка программы
Трассировка предполагает пошаговую выдачу информации о выполнении предикатов и значениях передаваемых переменных. Для включения трассировки вначале программы записывается директива компилятора trace или shorttrace. Включение директивы trace приостанавливает выполнение программы после каждой попытки удовлетворить подцель. В этот момент в окне трассировки выводится значение переменных и другая информация, назначение которой определяется следующими словами.
CALL – каждый раз при выводе предиката в окне трассировки отображается имя предиката и входные значения его параметров.
RETURN – предложение завершено успешно и управление передается вызывающему предикату (обратный ход). Если имеются другие предложения из раздела clauses, удовлетворяющие входным параметрам, то выводится *, обозначающая , что это предложение является точкой возврата.
FAIL – выводится, если предикат несогласовывется, за этим словом выводится имя невыполнимого предиката.
REDO – имеется возврат к предудущему состоянию (переход без изменения параметров к другому предложению для данного предикаат. Имя предиката, который повторно выполняется, вместе со значением его параметров отображается в окне трассировки.
Для продолжения выполнения программы необходимо нажать F10. Прервать выполнение программы можно клавишей ESC. Комбинация Ctrl-T во время пошагового выполнения программы позволяет включать и выключать трассировку по желанию. Если требуется производить трассировку только нескольких предикатов, то перечень этих предикатов разделяется запятыми и записывается после слова trace.
Директива shorttrace является аналогм trace, с той разницей, что в окно трассировки выводится более краткая информация. В некоторых случаях возникает необходимость получить трассировку лишь отдельного фрагмента программы. Для этйо цели в начале и конце этого фрагмента записывается стандартный предикат trace c соответствующим параметром статуса on или off. Формат стандартного предиката trace (Статус) (symbol) : (i) (o).
Директива компидятора diagnostics
Если эта директива имеется в начале программы, то выдается диагностическая таблица, в которй содержится список предикатов и их важнейшие свойства.
Type – указывает, является ли предикат локальным, глобальным или внешне определенным.
Determ – помещается информация, является ли предикат однозначным.
Size – даетс яразмер кода предиката, кроме того выводится поточный шаблон предиката и типы его параметров .
Диагностическая таблица будет выдана только при наличии в программе раздела goal.