8.2. АКТУАЛИЗАЦИЯ ПРОИЗВОДНЫХ ЗНАЧЕНИЙ

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

 Встроенный управляющий оператор

copy(V1,...,Vk)

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

Примечание. Обозначение оператора copy с помощью квадратных скобок рассмотрено в разделе 6.2.

Примечание. Использование оператора copy, в общем случае, может нарушить полноту программы относительно ее декларативной семантики.

Пример. Использование оператора copy.

Предположим, что некоторому процессу G принадлежит доказанный актор goal, которому соответствует локальное значение общей переменной x=100.

goal:-
     subgoal_a(x).
subgoal_a(100).
subgoal_b:-
     [x],
     write("Shared Data = ",x).
В результате исполнения предиката subgoal_b процесса G, будет напечатано:

Shared Data = 100

Ссылки: активные акторы 7.1, актор 7.1, встроенный оператор 8, доказанный актор 7.1, исполнение предиката 6.3.1, локальные значения 7.2, общие переменные 7.2, переменная 2.1.1, принадлежать процессу 5.2, программа 4, производные значения 7.2, процесс 5.2, унификация 3.3, goal 5.4.1.


Предыдущий: 8.1. КОРРЕКТНОЕ РАЗРУШАЮЩЕЕ ПРИСВАИВАНИЕ


8. ВСТРОЕННЫЕ ПРЕДИКАТЫ И ОПЕРАТОРЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)