NFA

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.

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

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

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

История

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

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

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


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