Словарная статья

Материал из ПМК вики
Перейти к навигации Перейти к поиску

Словарь состоит из словарных статей, каждая из которых описывает одно каллистянское слово. Словарная статья состоит из (необязательного) заголовка и тела.

Для Форта характерно большое разнообразие структур словарных статей и разновидностей шитого кода. Приложение, слишком глубоко «вгрызающееся» в структуру словарной статьи, может быть мощной, но стать зависимой от конкретной версии Каллисто. В приложениях лучше ограничиться высокоуровневыми словами вроде <BUILDS DOES> CREATE и не полагаться на последовательность и длину полей словарной статьи, по возможности используя для преобразования адресов стандартные слова >BODY NAME> и т.д.

Заголовок словарной статьи[править]

Заголовок словарной статьи это поле имени (переменной длины), сразу за которым идёт поле связи (2 байта). Длину заголовка можно вычислить, считав байт-счётчик, находящийся в первом байте поля имени. Адрес заголовка словарной статьи совпадает с адресом её поля имени и называется NFA. Именно он считается главным адресом слова в Каллисто.

Заголовок используется текстовым интерпретатором для поиска слова в словаре по его имени.

После компиляции информация в заголовках служит только для отладки и диалога с пользователем. Некоторые реализации Форта позволяют существенно уменьшить размер скомпилированного и уже отлаженного кода, удаляя из него заголовки словарных статей. По этой же причине в ядре Каллисто 1.0 есть несколько слов без заголовка.

Тело словарной статьи[править]

Тело словарной статьи содержит поле кода (обычно 2 байта) и поле параметров (переменной длины). Поле кода содержит ссылку на исполняемый код обработчика в памяти программ, который используется при интерпретации поля параметров.

Известна техника векторного поля кода, при котором поле кода занимает больше 2 байт и содержит ссылки на несколько интерпретаторов, по разному обрабатывающих одно и тоже поле параметров. Стандартные порождающие слова VALUE и DEFER создают словарные статьи, имеющие векторное поле кода.

Тело словарной статьи содержит полную информацию (адрес обработчика + его параметры), необходимую для исполнения данного слова. Адрес тела словарной статьи совпадает с адресом её поля кода и называется токеном (CFA). В Форте именно он считается адресом слова.

Ссылки[править]


Устройство словарной статьи Каллисто
заголовок (header) тело (body)
NFA LFA CFA (xt) PFA
Поле имени Поле связи Поле кода Поле данных (параметров)


  Nopictures-icon.png У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.