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


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


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

Событие 1: Создается определяющее слово для компиляции слов-детей с определенным типом поведения.

Событие 2: Исполняется определяющее слово для того, чтобы создать слово-ребенок со своим содержимым и поведением.

Событие 3: Исполняется слово-ребенок в соответствии с тем, что слово-родитель научило слово-ребенка делать со своим содержимым.

Может показаться мистическим, что одно слово способно определить, как будет исполняться другое слово, но в самом деле это совсем просто. Когда определяющее слово порождает слово-ребенка, то кроме записи его содержимого слово-родитель записывает в него также адрес машинного кода стадии исполнения. Код стадии исполнения - это программа на машинном языке, которая описывает, как должно вести себя слово-ребенок, т.е. что оно должно делать со своим содержимым. Так как каждое определяющее слово записывает адрес специфического кода стадии исполнения во вес свои слова-дети, они и исполняются одинаково. (В гл.15 мы более детально рассмотрим действие кода стадии исполнения в словах, определенных через двоеточие.)

Определяющие слова

Мы рассмотрели, как используются определяющие слова (слова-определители) для порождения своих "отпрысков", но как же создаются сами определяющие слова? С первого взгляда может показаться, что можно ответить на этот вопрос, просматривая содержимое этих слов в словаре.


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