Поле имени

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

Поле имени (англ. Name Field) содержит имя слова в виде, напоминающем строку со счётчиком. Длина имени ограничена 31 литерой и упакована в 5 младших битах счётчика. Таким образом, поле имени имеет переменную длину, которая определяется значением его первого байта.

Из трёх старших разрядов байта счётчика один бит зарезервирован, а два используются под специальные признаки. Важнейший из них, признак немедленного исполнения, занимает старший разряд байта счётчика и устанавливается словом IMMEDIATE. Также в байте счётчика хранится признак видимости, изменяемый словом SMUDGE.

Адрес поля имени называется NFA (от англ. Name Field Address).

Если известен адрес поля имени, стандартное слово ID. поможет вывести на индикатор имя слова полностью. В словарной статье поле имени идёт первым, поэтому адрес поля имени совпадает с адресом словарной статьи, а также адресом её заголовка.

История[править]

Первые версии Форта, разработанные Чаком Муром и Forth Inc., использовали поле имени фиксированного размера, в котором хранили длину имени и его первые три символа.

Впервые поле имени переменного размера, вплоть до 31 символа, было реализовано в fig-Форте (1978 год). Это оказалось удобным для пользователя, поэтому к середине 1980'ых большинство систем Форта перешло на подобную реализацию. Хотя такое решение обеспечивает дружественность Каллисто 1.0, оно сильно ограничивает производительность текстового интерпретатора и затрудняет стандартные преобразования адресов полей.

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


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