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



             

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


Программы на языке Форт — определения слов — кодируются и вводятся в ЭВМ методом «снизу вверх», т.е. начиная с элементарных, использующих только стандартные слова форт-системы, и кончая определением главного слова, использующего уже введенные. Такой порядок естественным образом предполагает немедленную отладку вводимых определений, поскольку определение готово к исполнению сразу же после ввода. Отладка облегчается тем, что механизм взаимодействия модулей упрощен до предела: через стек данных, который программист может сам заполнить значениями параметров перед вызовом отлаживаемого слова.

Для распечатки текущего состояния стека данных и стека возвратов многие реализации имеют слова S. и R. . В сочетании со словом DUMP, которое распечатывает область памяти, и словом ?

: ? ( А ---> ) @ . ;

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

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

Например, по специальному слову ON-NEXT (ПРИ-СЛЕД) строится список слов (в виде списка адресов компиляции), подлежащих отслеживанию. В частности, его можно задать, как все слова, определения которых расположены в словаре выше некоторого адреса. Для всех этих слов указываются отладочные действия, состоящие, как правило, из распечатки имени слова и стека данных в момент перехода к его исполнению.


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