Поле данных

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

Поле данных (англ. Data Field), оно же поле параметров (англ. Parameter Field) — основная и наиболее разнообразная часть словарной статьи, расположенная сразу после поля кода. Содержание поля данных уникально для каждого слова и сильно зависит от его обработчика, адрес которого находится в поле кода. Адрес поля данных называется PFA (от англ. Parameter Field Address). Поле данных имеет переменную длину, установить которую в общем случае можно, лишь зная адрес следующей словарной статьи.

При исполнении слова его поле данных интерпретируется обработчиком — поле данных передаётся обработчику, как в процедурных языках процедурам передаётся список параметров. Можно сказать, что поле параметров «настраивает» обработчик (который в большинстве случаев используется повторно, для исполнения различных слов) под конкретное слово. Если по каким-то причинам такая настройка обработчику не требуется, поле данных может отсутствовать.

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

Поле данных тесно связано с полем кода, задающим его обработчик. Когда их проще объединить вместе, говорят о теле словарной статьи в противоположность её заголовку (поле имени и поле связи).

Поле данных примитива

Обработчик примитива написан на ЯМК и обычно находится в его поле данных. В этом наиболее типичном случае поле кода примитива указывает на его поле параметров, то есть содержит PFA.

Поле данных слов высокого уровня

Высокоуровневые слова определяются с помощью двоеточия и компилируются в шитый код. Этот шитый код состоит из последовательности токенов других слов Каллисто (как высокого уровня, так и примитивов) и располагается в поле данных.

Шитый код исполняется адресным интерпретатором, поэтому поле кода высокоуровневого слова содержит адрес точки CALL адресного интерпретатора.

Поле данных целочисленной константы

Целочисленную константу создаёт порождающее слово CONSTANT. Поле данных целочисленной константы занимает одну ячейку, в которую при создании целочисленной константы заносится её значение.

Поле данных целочисленной переменной

Целочисленную переменную создаёт порождающее слова VARIABLE. Её поле данных представляет собой одну ячейку, содержащую значение этой переменной.

Поле данных десятичной переменной

Десятичную переменную создаёт порождающее слова VALUE. Поле параметров десятичной переменной состоит из одной ячейки с номером десятичного регистра, соответствующего данной десятичной переменной.

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


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


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.