Литературная концепция отладки.
Необходимо стремиться делать как можно более выразительными преимущества того языка, на котором работаешь.
Иначе зачем?
Уверен, что многие сложные алгоритмы не реализованы потому, что отладка представлялась слишком сложной.
Потому, нужно бы «продвинутую» отладку.
Что может входить в продвинутую отладку.
Самое простое - воспользоваться свободой синтаксиса форта и создать некоторые дополнительные возможности для отладки. Например, то обстоятельство, что слова форта могут включать любые символы (а также управление комментариями свободно) способствует созданию «отладочно-комментирующих» слов. Что есть комментарий в С?
A = (b + c) * pow(a,d); /* комментарий - сумма чего-то помножается на для того, чтобы */теперь представим, что эта сумма не та, что нужно и нам трудно уловить момент, нужно добавить отладочную информацию
A = (b + c) * pow(a,d); /* комментарий - сумма чего-то помножается на для того, чтобы */printf( « что-то не то с (b + c): b = %d, c = %d, при лимите N \n»,b,c);/* не забыть поменять лимит если ... */Итак, нам потребовался ещё один комментарий - к отладочной информации, если же ситуация сложнее, то собственно код и код для отладки (и для тестирования иногда отдельно) перемешиваются и ...
какие преимущества даёт форт?
по крайней мере можно совместить комментарий и отладчный код
a d pow b c + * можно прокомментировать словом
a d pow b c + * (сумма-помножается-чтобы-) (сумма-помножается-чтобы-) - слово форта - одновременно комментарий и может быть отладочным
: (сумма-помножается-чтобы-) DUP LIMIT > IF ..... THEN ; можно заставить это слово печатать собственный заголовок и таким образом получить одинаковую фразу и в тексте и в процессе отладочного тестирования. Это делает код более читаемым
Можно даже задавать - компилировать слово собственно в тексте
Для этого запрограммировать нужно 3 разновидности комментария, кроме обычного нужен ещё такой, который компилировал бы отладочное слово-строку прямо в тексте
Напрмер, если комментарием является
!! (в фортране !
) то
a d pow b c + * (сумма-помножается-чтобы-) !! DUP LIMIT > IF ..... THEN означало бы скомпилировать
a d pow b c + * , затем из
DUP LIMIT > IF ..... THENсоздать слово (сумма-помножается-чтобы-)
причем
!! должно быть настолько хитрым, чтобы позволять отключить создание отладочного слова из кода, а в случае смены режима с отладочного на обычный
превратить слово (сумма-помножается-чтобы-) в
: ??? ; IMMEDIATE
в коде такое слово не будет отражено вообще
в этом случае перед нами два комментария - фактический - слово, которое ничего не компилирует : (сумма-помножается-чтобы-) ; IMMEDIATE и формальный
!! DUP LIMIT > IF ..... THEN , котор. ничем не отличается от ( DUP LIMIT > IF ..... THEN )