Язык Форт и его реализации



             

Средства отладки форт-программ - часть 2


В некоторых случаях можно проводить анализ стека возвратов и отслеживать возврат из определений, распечатывая результаты из стека данных на момент возврата. Специальные слова TRACE-ON (СЛЕЖ-ВКЛ) и TRACE-OFF (СЛЕЖ-ВЫКЛ) включают и выключают механизм отладочного слежения, подменяя или восстанавливая точку NEXT адресного интерпретатора.

С помощью этого же механизма можно ввести защиту от зацикливания, например подсчитывая в точке NEXT число исполненных слов и возобновляя диалог при достижении некоторого заданного значения этого счетчика. Если данная ЭВМ имеет встроенный таймер и операционная система позволяет обрабатывать асинхронные выходы по истечении заданного интервала времени, то этот механизм можно также использовать для предохранения от зацикливания. В процедуре обработки выхода по исчерпанию временного интервала нужно подменить точку NEXT на такую, которая выполнит возврат к диалогу с программистом. При этом программист может получить исчерпывающую информацию о месте такого «прерывания от таймера».

Другой полезный механизм отладочного слежения позволяет переключаться на диалог с программистом в момент исполнения заданного слова и реализуется через подмену поля кода в заданной словарной статье. Для выполнения такой подмены нужно определить специальное слово, например, STOP (стойте!), которое выбирает имя слова из входного потока и засылает в поле кода его словарной статьи адрес специального кода. Прежнее значение поля кода сохраняется в специально резервируемой для этого ячейке словаря. Новый код для подмененного таким образом слова состоит в переключении на текстовую интерпретацию входного потока, так что все необходимые отладочные распечатки и установки значений программист задает непосредственно в диалоге. Слово GO (идите!) завершает диалог и продолжает исполнение программы, при этом отлаживаемое слово, вызвавшее останов, исполняется в прежнем виде (для этого используется сохраненное «настоящее» значение из его поля кода). Можно предусмотреть специальное слово для продолжения работы без исполнения рассматриваемого слова.




Содержание  Назад  Вперед