Способ мышления-Форт


Глава 5. Разработка: элементы Форт-стиля - часть 5


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

------------------------------------------------------------ СОВЕТ Используйте абсолютные номера блоков в блоке загрузки задачи. Используйте относительные номера в блоках загрузки глав или разделов. ------------------------------------------------------------

Есть два способа реализации относительной загрузки. Наиболее часто определяют:

: +LOAD ( смещение -- ) BLK @ + LOAD ;

и

: +THRU ( смещение-от смещение-до -- ) 1+ SWAP DO I +LOAD LOOP ;

Лично мне кажется более целесообразным иной путь, при котором требуется только одно слово, FH (его определение смотрите в приложении В).

Фраза

1 FH LOAD

читается как "1-й отсюда (From Here) загрузить" и эквивалентно 1 +LOAD.

Точно так же

2 FH 5 FH THRU

читается как "от 2-го отсюда до 5-го отсюда сквозь".

Некоторые программисты начинают каждую главу с подставного слова типа

: ВИДЕО-ПРИМИТИВЫ ;

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

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

Некоторые из наиболее озабоченных стилистикой Фортовых писателей начинают каждую главу с "преамбулы", в которой в общих словах обсуждаются основы работы компонентов этой главы. Рисунок 5-3 - это пример блоков-преамбул, показывающих формат, принятый на фирме Moore Products Co.




Начало  Назад  Вперед