На этом шаге мы рассмотрим средства отладки в Turbo Prolog 2.0.
Turbo Prolog 2.0 не обладает таким разветвленными средствами отладки программ по сравнению с другими системами программирования, здесь они практически отсутствуют. Однако язык программирования Turbo Prolog предоставляет пользователю возможность трассировки программы. Для того, чтобы задействовать это средство, необходимо включить в программный файл директиву trace, которая должна размещаться в программе перед разделом predicates. Лучше всего разместить ее перед разделом domains.
Общий вид директивы trace следующий:
trace <список предикатов>,где список предикатов - перечень предикатов, перечисленных через запятую, для которых нужно выполнить трассировку.
Если список предикатов не указан, то трассировка начинается с выполнения самого первого предиката.
Выполнение директивы трассировки приостанавливает выполнение программы после каждой попытки удовлетворить подцель. В этот момент в окне трассировки (окно Trace среды программирования) печатаются значения переменных и некоторая другая информация (рис.1):
RETURN - после этого служебного слова размещается предикат, для которого были найдены все значения переменных;
CALL - после этого служебного слова размещается предикат, являющийся подцелью. Неизвестные переменные в нем обозначаются символами "_";
REDO - после этого служебного слова размещается предикат, являющийся подцелью. Данное сообщение появляется тогда, когда осуществляется переход от одной реализации предиката к другой;
FAIL - после этого служебного слова размещается предикат, для которого не были найдены все значения переменных. Это свидетельствует о том, что данная подцель не была разрешена. Для управления трассировкой можно использовать следующие клавиши (комбинации клавиш):
F10 - выполнение следующего шага программы;
Shift+F10 - изменение размеров и местоположения текущего окна;
Alt+T - изменение работы режима отладки. При нажатии этой комбинации клавиш на экране появляется "плавающее" окно, содержащее значения трех пунктов. Изменить значения можно с помощью клавиши Enter, убрать окно с экрана - клавиша F10. Перечислим пункты этого окна (по умолчанию все они имеют значения On):
Рис.1. Общий вид среды программирования Turbo Prolog 2.0 при включенной трассировке
Status - отключить режим отладки;
Trace Window - режим отладки работает, только не изменяется содержимое окна Trace;
Edit Window - режим отладки работает, но в окне редактора кода (окне Editor) отсутствует курсор, указывающий выполняемый предикат;
End - завершение выполнения программы.
Если нужно продолжить выполнение программы в обычном режиме, то для выключения трассировки применяется директива trace(off).
Кроме директивы trace можно использовать директиву shorttrace, которая является аналогом trace с той лишь разницей, что в окно Trace выдается более краткая информация.
Мы закончили изучение основ языка программирования Prolog.