Редактирование: Поле данных

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

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


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


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


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


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


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


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


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


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


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


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Каллисто]]
[[Категория:Каллисто]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)