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


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


CREATE |ВСТАВКА 64 ALLOT \ { 1# | 63текст }

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

"Битовый комментарий" использует такой же формат для отображения значения битов в байте или слове. К примеру, битовый комментарий

{ 1занят? | 1принят? | 2x | 6входное-устройство | 6выходное-устройство }

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

Если одну и ту же последовательность элементов использует более, чем одна структура данных, выпишите комментарий только один раз (возможно, в преамбуле), и дайте имя этой последовательности для последующих ссылок. К примеру, если в преамбуле вышеприведенной битовой последовательности дано имя "статус", то это имя можно употреблять в стековых комментариях для указания функции соответствующих чисел:

: СТАТУС? ( -- статус) ... ;

Если переменная двойной длины типа 2VARIABLE содержит одно число двойной длины, то комментарий должен быть стековой картинкой, показывающей это содержимое:

2VARIABLE ЦЕНА \ цена в копейках

Если 2VARIABLE содержит два элемента одинарной длины, стековая картинка должна отображать то, что окажется на стеке после исполнения 2@. То есть:

2VARIABLE ИЗМЕРЕНИЯ ( высота масса )

Это отличается от того, каким был бы комментарий, если бы ИЗМЕРЕНИЯ были бы определены через CREATE:

CREATE ИЗМЕРЕНИЯ 4 ALLOT \ { 2масса | 2высота }

(Хотя в словаре оба определения будут представлены одинаково, использование 2VARIABLE предполагает, что значения будут обычно извлекаться и загружаться туда одновременно, с помощью 2! и 2@, и поэтому мы используем `стековый` комментарий. Число, появляющееся на вершине стека, указывается справа.


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