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



             

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


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

Удобным вспомогательным средством, позволяющим быстро находить место останова в терминах входного текста на языке Форт, является символьная распечатка шитого кода. Поскольку скомпилированная ссылка представляет собой адрес поля кода словарной статьи, то по ней через слово >NAME можно вычислить адрес поля имени и напечатать это имя словом ID.:

: ID. ( NFA ---> ) COUNT 31 AND TYPE SPACE ;

Слово COUNT в качестве счетчика длины выдает значение первого байта поля имени; поскольку старшие разряды этого байта используются под специальные признаки, то необходимо специальное преобразование, определяемое представлением счетчика, чтобы получить истинную длину поля имени. Константа 31 как ограничение на длину имени слова даетея стандартом языка.

В программе распечатки последовательности ссылок надо предусмотреть специальную обработку некоторых адресов, вслед за которыми скомпилирована не ссылка на очередную статью, а некоторое другое значение. Такими «особыми» ссылками в стандарте языка являются слова для выполнения переходов BRANCH и ?BRANCH, для реализации циклов (DO), (LOOP) и (+LOOP), для исполнения литералов LIT и 2LIT и некоторые другие.




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