Язык программирования Форт


Глава 11. Создание слов-определителей - часть 7


Эти упражнения показывают, что для хранения-извлечения и манипулирования с данными на диске могут быть полезными специальные определяющие слова и специализированные массивы. Такого рода специализированные слова особенно полезны при создании новых версий языка Форт для разработки программ обработки данных. Например, можно определить типы массивов для хранения данных в полях различных размеров, в частности для файлов инвентаризации, файла медицинских наблюдений и т.д. Имея специализированные типы массивов и специализированные определяющие слова, проще организовать слежение за тем, где и в каком формате хранятся данные. Например, массив BP-BLK (блок_давления_крови) может содержать записи о кровяном давлении пациентов, и если он организован по вышеописанной схеме, то вам не надо помнить, в каком блоке он записан. Эту идею можно распространить на соответствующие блоки для веса, роста и других показателей пациентов. Возможности здесь не ограничены.

Создание новых определяющих слов

Каждый раз, когда слово CREATE используется внутри определения через двоеточие, мы создаем новые определяющие слова. В упражнениях вы имели дело с разнообразными определяющими словами, которые по-разному действовали при компиляции слов-детей, но все порожденные слова-дети действовали одинаково при исполнении: они оставляли адрес своего содержимого в стеке. Слово DOES> нужно для того, чтобы определяющее слово задало способ поведения слова-ребенка на стадии исполнения. Теперь мы можем определить константу следующим образом: : CONSTANT CREATE , DOES> @ ;

На первой стадии деятельность слова CONSTANT проявляется во время его компиляции. Если слово CONSTANT исполняется, например, для компиляции слова 1024 CONSTANT 1K то на второй стадии действия слова CONSTANT можно расчленить следующим образом: CONSTANT Начинает исполнение определяющего слова CREATE Заносит в словарь имя "1K" Запоминает адрес кода стадии исполнения в слове 1K , Компилирует число 1024, взятое из стека

Из присутствия в определении DOES> @ мы узнаем, что на третьей стадии действие слова CONSTANT (при исполнении 1K) более сложное, чем в случае VARIABLE.


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