7.2. ОБЩИЕ ПЕРЕМЕННЫЕ

Будем говорить, что актор P "использует" переменную V (или что переменная V "соответствует", "принадлежит" актору P), если переменная V входит в состав подцели доказательства P или какой-либо другой подцели доказательства Q, построенной в ходе:

не считая тех подцелей доказательства Q, которые были построены в ходе доказательства акторов, вложенных по отношению к P.

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

Актуальными значениями общих переменных некоторого процесса называются значения, которые можно получить, унифицировав локальные значения всех общих переменных, соответствующих активным акторам этого процесса.

Во время унификации термов (в ходе исполнения процесса G) происходит замена тех (и только тех) вхождений переменных, которые соответствуют активным акторам (процесса G). Таким образом, локальные значения общих переменных любого активного актора процесса всегда равны актуальным значениям общих переменных этого процесса.

Производными значениями общих переменных некоторого процесса называются значения, которые можно получить (если они существуют), унифицировав локальные значения общих переменных всех активных и доказанных акторов этого процесса. В случае если общая переменная процесса (например, некоторый порт процесса) не соответствует ни одному из активных или доказанных акторов, ее производным значением считается анонимная переменная "_".

Акторы процесса считаются согласованными между собой, если:

  1. Все акторы, принадлежащие процессу, хотя бы один раз были доказаны.
  2. Существуют производные значения общих переменных этого процесса.

"Фиксированными" значениями общих переменных называются значения этих переменных, в составе которых все несвязанные переменные заменены спейсером #. "Фиксированием" терма называется заменена спейсером всех несвязанных переменных в составе терма. В соответствии с семантикой Акторного Пролога, фиксирование не распространяется на переменные в составе миров, являющихся компонентами фиксируемого терма.

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

В случае если некоторая общая переменная используется для передачи потоковых сообщений между процессами, в соответствие этой переменной ставятся:

  1. "Глобальное" значение - некоторый терм.
  2. Сорт текущего глобального значения - вспомогательное логическое значение: "защищенное" или "незащищенное".
  3. Производитель текущего глобального значения - процесс, построивший текущее глобальное значение.

Эти атрибуты являются едиными для всех процессов, передающих и принимающих потоковые сообщения через рассматриваемую переменную.

Считается, что изначально глобальное значение общей переменной равно пустому значению сорта "незащищенное", производителем которого является некоторый (уникальный) процесс, не совпадающий ни с одним из процессов программы.

Ссылки: активные акторы 7.1, актор 7.1, актуализация 8.2, анонимная переменная 2.1.1, вложенные акторы 7.1, доказанный актор 7.1, доказательство актора 6.3.1, значение переменной 3.1, исполнение предиката 6.3.1, исполнение процесса 5.2, мир 5.1, нейтральные акторы 7.1, несвязанная переменная 3.1, обработка потокового сообщения 7.4.3, передача потокового сообщения 7.4.3, переменная 2.1.1, подцель доказательства 6.3.1, порт 5.2.2, потоковые сообщения 7.4.3, принадлежать процессу 5.2, программа 4, процесс 5.2, пустое значение 7.4.3, сопоставление локальных значений 7.3.1, спейсер 3.1, терм 3, унификация 3.3.


Следующий: 7.2.1. ПОСТРОЕНИЕ ОБЩИХ ПЕРЕМЕННЫХ
Предыдущий: 7.1. АКТОРЫ


7. АКТОРЫ И ПОВТОРНЫЕ ДОКАЗАТЕЛЬСТВА
7.2.1. ПОСТРОЕНИЕ ОБЩИХ ПЕРЕМЕННЫХ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)