Словарная статья
Словарь состоит из словарных статей, каждая из которых описывает одно каллистянское слово. Словарная статья состоит из (необязательного) заголовка и тела.
Для Форта характерно большое разнообразие структур словарных статей и разновидностей шитого кода. Приложение, слишком глубоко «вгрызающееся» в структуру словарной статьи, может быть мощной, но стать зависимой от конкретной версии Каллисто. В приложениях лучше ограничиться высокоуровневыми словами вроде <BUILDS DOES> CREATE и не полагаться на последовательность и длину полей словарной статьи, по возможности используя для преобразования адресов стандартные слова >BODY NAME> и т.д.
Заголовок словарной статьи[править]
Заголовок словарной статьи это поле имени (переменной длины), сразу за которым идёт поле связи (2 байта). Длину заголовка можно вычислить, считав байт-счётчик, находящийся в первом байте поля имени. Адрес заголовка словарной статьи совпадает с адресом её поля имени и называется NFA. Именно он считается главным адресом слова в Каллисто.
Заголовок используется текстовым интерпретатором для поиска слова в словаре по его имени.
После компиляции информация в заголовках служит только для отладки и диалога с пользователем. Некоторые реализации Форта позволяют существенно уменьшить размер скомпилированного и уже отлаженного кода, удаляя из него заголовки словарных статей. По этой же причине в ядре Каллисто 1.0 есть несколько слов без заголовка.
Тело словарной статьи[править]
Тело словарной статьи содержит поле кода (обычно 2 байта) и поле параметров (переменной длины). Поле кода содержит ссылку на исполняемый код обработчика в памяти программ, который используется при интерпретации поля параметров.
Известна техника векторного поля кода, при котором поле кода занимает больше 2 байт и содержит ссылки на несколько интерпретаторов, по разному обрабатывающих одно и тоже поле параметров. Стандартные порождающие слова VALUE и DEFER создают словарные статьи, имеющие векторное поле кода.
Тело словарной статьи содержит полную информацию (адрес обработчика + его параметры), необходимую для исполнения данного слова. Адрес тела словарной статьи совпадает с адресом её поля кода и называется токеном (CFA). В Форте именно он считается адресом слова.
Ссылки[править]
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Under the Hood в книге Leo Brodie Starting Forth (англ.)
заголовок (header) | тело (body) | ||
---|---|---|---|
NFA | LFA | CFA (xt) | PFA |
Поле имени | Поле связи | Поле кода | Поле данных (параметров) |
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |