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



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


: WORD \ имя ( с -- а) \ сканировать с символом-ограничителем с, получить по а ... ;

КОММЕНТАРИИ К ОПРЕДЕЛЯЮЩИМ СЛОВАМ.

При определении определяющего слова надо описывать два типа поведений:

определяющего слова, когда оно создает своего "потомка", и самого потомка (работу в режиме исполнения).

Эти два вида поведения следует комментировать по-отдельности.

------------------------------------------------------------ СОВЕТ Пишите комментарий к определяющему слову в режиме компиляции обычным образом; в режиме же исполнения отдельно, после слова DOES> (или ;CODE). ------------------------------------------------------------

К примеру,

: CONSTANT ( n ) CREATE , DOES> ( -- n ) @ ;

Комментарий изменений на стеке для поведения времени исполнения (т.е. потомка) показывает действие, производимое словом-потомком. При этом он не включает в себя изображение адреса, возвращаемого словом DOES>, хотя этот адрес и находится на стеке в начале исполнения потомка.

`Плохо` (комментарий времени исполнения содержит apf):

: МАССИВ \ имя ( #ячеек -- ) CREATE 2* ALLOT DOES> ( i apf -- 'ячейки) SWAP 2* + ;

`Хорошо:`

: МАССИВ \ имя ( #ячеек -- ) CREATE 2* ALLOT DOES> ( i -- 'ячейки) SWAP 2* + ;

Слова, определенные через МАССИВ, будут производить следующие действия на стеке:

( i -- 'ячейки)

Если определяющее слово не специфицирует поведения во время исполнения, это время все равно существует и может быть описано:

: VARIABLE ( имя ( -- ) CREATE 2 ALLOT ; \ does> ( -- адр)

КОММЕНТАРИИ ДЛЯ КОМПИЛИРУЮЩИХ СЛОВ.

Так же, как и для определяющих слов, большинство компилирующих слов дают два типа поведения:

1. Поведение компилирующего слова, когда оно появляется при компиляции очередного определения; 2. Поведение программы периода исполнения, когда вызвано слово, скомпилированное через данное компилирующее слово. И вновь нам нужно писать комментарии раздельно для каждого из типов.

------------------------------------------------------------ СОВЕТ Пишите комментарий для поведения компилирующего слова в период исполнения обычным образом; комментируйте его поведение в режиме компиляции отдельно, начиная с пометки "Compile:" ("Компиляция:). ------------------------------------------------------------




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