NFA

Материал из ПМК вики
Версия от 13:26, 21 июня 2016; AtH (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

NFA (англ. Name Field Address) — адрес поля имени словарной статьи.

В Каллисто адрес поля имени невозможно быстро и точно получить из адреса другого поля (LFA, CFA и PFA), поэтому чаще всего слово представлено в стеке своим NFA. Наоборот же, получить остальные адреса полей из NFA, сравнительно просто.

Стандартное слово ID. снимает NFA со стека и выводит на индикатор имя соответствующего слова.

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

В fig-Форте устанавливался старший бит первого и последнего символов имени, что позволяло легко путешествовать от начала поля имени к концу и обратно, но сильно затрудняло использование удобных для русского языка 8-битных кодировок.

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

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


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