Поле данных: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
(не показаны 23 промежуточные версии этого же участника)
Строка 1: Строка 1:
'''Поле данных''' (англ. Data Field), оно же '''поле параметров''' (англ. Parameter Field) — наиболее разнообразная часть [[Словарная статья|словарной статьи]], расположенная сразу после [[Поле кода|поля кода]]. Содержание ''поля данных'' уникально для каждого слова и сильно зависит от его обработчика, адрес которого находится в [[поле кода]]. Адрес ''поля данных'' называется [[PFA]] (от ''англ.'' Parameter Field Address).
'''Поле данных''' (англ. Data Field), оно же '''поле параметров''' (англ. Parameter Field) — основная и наиболее разнообразная часть [[Словарная статья|словарной статьи]], расположенная сразу после [[Поле кода|поля кода]]. Содержание ''поля данных'' уникально для каждого слова и сильно зависит от его обработчика, адрес которого находится в [[поле кода]]. Адрес ''поля данных'' называется [[PFA]] (от ''англ.'' Parameter Field Address). ''Поле данных'' имеет переменную длину, установить которую в общем случае можно, лишь зная адрес следующей [[Словарная статья|словарной статьи]].


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


Конечно, помимо ''поля данных'', на результат [[EXECUTE|исполнения слова]] (конкретного запуска обработчика) влияют аргументы, передаваемые через [[Стек данных|стек]], и многое другое.
Конечно, помимо ''поля данных'', на результат [[EXECUTE|исполнения слова]] (конкретного запуска обработчика) также могут влиять аргументы, передаваемые более традиционно (через [[Стек данных|стек]]), [[VARIABLE|глобальные переменные]] и многое другое.


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


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


== Поле данных высокоуровневого слова ==
== Поле данных слов высокого уровня ==
Слова высокого уровня определяются с помощью [[∶ (Каллисто)|:]] и компилируются в шитый код. Этот шитый код и располагается в ''поле данных''.
Высокоуровневые слова определяются с помощью [[Слово :|двоеточия]] и компилируются в [[шитый код]]. Этот [[шитый код]] состоит из последовательности [[xt|токенов]] других слов [[Каллисто]] (как высокого уровня, так и [[примитив]]ов) и располагается в ''поле данных''.


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


== Поле данных целочисленной константы ==
== Поле данных целочисленной константы ==
Целочисленную константу создаёт порождающее слово [[CONSTANT]]. Поле данных целочисленной константы занимает одну [[Ячейка (Каллисто)|ячейку]], в которую при создании целочисленной константы заносится её значение.
Целочисленную константу создаёт порождающее слово [[CONSTANT]]. ''Поле данных'' целочисленной константы занимает одну [[Ячейка (Каллисто)|ячейку]], в которую при создании целочисленной константы заносится её значение.


== Поле данных целочисленной переменной ==
== Поле данных целочисленной переменной ==
Целочисленные переменные создаются с помощью слова [[VARIABLE]]. Их поле данных занимает одну [[Ячейка (Каллисто)|ячейку]], которая хранит значение целочисленной переменной.
Целочисленную переменную создаёт порождающее слова [[VARIABLE]]. Её ''поле данных'' представляет собой одну [[Ячейка (Каллисто)|ячейку]], содержащую значение этой переменной.


== Поле данных десятичной переменной ==
== Поле данных десятичной переменной ==
Десятичные переменные создаются с помощью слова [[VALUE]]. Поле параметров десятичной переменной состоит из одной [[Ячейка (Каллисто)|ячейки]], которая содержит номер [[Регистр десятичных данных|десятичного регистра]], соответствующего данной десятичной переменной.
Десятичную переменную создаёт порождающее слова [[VALUE]]. ''Поле параметров'' десятичной переменной состоит из одной [[Ячейка (Каллисто)|ячейки]] с номером [[Регистр десятичных данных|десятичного регистра]], соответствующего данной десятичной переменной.
 
{{Поля словарной статьи}}


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Каллисто]]
[[Категория:Каллисто]]

Текущая версия от 00:51, 4 июня 2016

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

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

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

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

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

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

Поле данных слов высокого уровня[править]

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

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

Поле данных целочисленной константы[править]

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

Поле данных целочисленной переменной[править]

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

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

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

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


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


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