Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''Поле данных''' (англ. Data Field), оно же '''поле параметров''' (англ. Parameter Field) — основная и наиболее разнообразная часть [[Словарная статья|словарной статьи]], расположенная сразу после [[Поле кода|поля кода]]. Содержание ''поля данных'' уникально для каждого слова и сильно зависит от его обработчика, адрес которого находится в [[поле кода]]. Адрес ''поля данных'' называется [[PFA]] (от ''англ.'' Parameter Field Address). ''Поле данных'' имеет переменную длину, установить которую в общем случае можно, лишь зная адрес следующей [[Словарная статья|словарной статьи]]. | | '''Поле данных''' (англ. Data Field), оно же '''поле параметров''' (англ. Parameter Field) — наименее формализованная часть [[Словарная статья|словарной статьи]], расположенная сразу после [[Поле кода|поля кода]]. Содержание ''поля данных'' уникально для каждого слова и сильно зависит от обработчика, на который указывает [[поле кода]]. |
|
| |
|
| При [[EXECUTE|исполнении слова]] его ''поле данных'' интерпретируется обработчиком — ''поле данных'' передаётся обработчику, как в процедурных языках процедурам передаётся список параметров. Можно сказать, что ''поле параметров'' «настраивает» обработчик (который в большинстве случаев используется повторно, для исполнения различных слов) под конкретное слово. Если по каким-то причинам такая настройка обработчику не требуется, ''поле данных'' может отсутствовать. | | При исполнении слова его обработчик интерпретирует поле данных. Можно сказать, что поле параметров «настраивает» обработчик (который используется для исполнение различных слов) под конкретное слово. |
|
| |
|
| Конечно, помимо ''поля данных'', на результат [[EXECUTE|исполнения слова]] (конкретного запуска обработчика) также могут влиять аргументы, передаваемые более традиционно (через [[Стек данных|стек]]), [[VARIABLE|глобальные переменные]] и многое другое.
| |
|
| |
| ''Поле данных'' тесно связано с [[Поле кода|полем кода]], задающим его обработчик. Когда их проще объединить вместе, говорят о [[Тело словарной статьи|теле словарной статьи]] в противоположность её [[Заголовок словарной статьи|заголовку]] ([[поле имени]] и [[поле связи]]).
| |
|
| |
|
| == Поле данных примитива == | | == Поле данных примитива == |
| Обработчик [[примитив]]а написан на [[ЯМК]] и обычно находится в его ''поле данных''. В этом наиболее типичном случае [[поле кода]] [[примитив]]а указывает на его ''поле параметров'', то есть содержит [[PFA]].
| | Примитив — слово [[Каллисто]], написанное на [[ЯМК]]. |
| | |
| == Поле данных слов высокого уровня ==
| |
| Высокоуровневые слова определяются с помощью [[Слово :|двоеточия]] и компилируются в [[шитый код]]. Этот [[шитый код]] состоит из последовательности [[xt|токенов]] других слов [[Каллисто]] (как высокого уровня, так и [[примитив]]ов) и располагается в ''поле данных''.
| |
| | |
| [[Шитый код]] исполняется адресным интерпретатором, поэтому [[поле кода]] высокоуровневого слова содержит адрес точки CALL адресного интерпретатора.
| |
| | |
| == Поле данных целочисленной константы ==
| |
| Целочисленную константу создаёт порождающее слово [[CONSTANT]]. ''Поле данных'' целочисленной константы занимает одну [[Ячейка (Каллисто)|ячейку]], в которую при создании целочисленной константы заносится её значение.
| |
| | |
| == Поле данных целочисленной переменной ==
| |
| Целочисленную переменную создаёт порождающее слова [[VARIABLE]]. Её ''поле данных'' представляет собой одну [[Ячейка (Каллисто)|ячейку]], содержащую значение этой переменной.
| |
|
| |
|
| == Поле данных десятичной переменной ==
| | Поле данных [[примитив]]а содержит его обработчик, написанный на [[ЯМК]]. В примитиве [[поле кода]] указывает на поле данных, то есть содержит [[PFA]]. |
| Десятичную переменную создаёт порождающее слова [[VALUE]]. ''Поле параметров'' десятичной переменной состоит из одной [[Ячейка (Каллисто)|ячейки]] с номером [[Регистр десятичных данных|десятичного регистра]], соответствующего данной десятичной переменной.
| |
|
| |
|
| {{Поля словарной статьи}}
| |
|
| |
|
| {{нет иллюстраций}} | | {{нет иллюстраций}} |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Каллисто]] | | [[Категория:Каллисто]] |