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


         

При определении определяющего слова надо


: 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:" ("Компиляция:). ------------------------------------------------------------

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