НРМ утверждает, что любая последовательность
НРМ утверждает, что любая последовательность операций над компонентами
a объекта типа
t, заданного ссылкой
o, может быть R-транслирована в такую последовательность операций над соответствующими R-переменными
t.a, что ее единственное исполнение изменит состояние системы так, как будто исходная последовательность была выполнена для каждого существующего в системе объекта этого типа. В качестве примера, подтверждающего данное утверждение, рассмотрим R-трансляцию условного оператора и оператора цикла.
Отметим, что любая операция
fi возвращает значение
pi, которое, в случае его дальнейшего использования, должно быть сохранено в соответствующей локальной переменной (возможно временной и/или не определяемой явно). Предположим, что операция возвращает значение булевского типа, для хранения которого используется соответствующая переменная
b. На уровне хранения этой переменной будет соответствовать переменная отношения
stt.b' со схемой (
OID, b).
Условный оператор. Предположим, что для объекта типа
t заданного ссылкой
o определена последовательность операций IF f1 (… , o.ai, …) THEN o.ak := f2 (… , o.aj, …);
Предполагается, что результатом выполнения
f1 является значение типа BOOLEAN. Данная последовательность может быть переписана как.
b := f1 (… , o.ai, …); IF b THEN o.ak := f2 (… , o.aj, …);
что может быть R-транслировано, например, в следующую последовательность действий над R-переменными
t.b := f'1 (… , t.ai, …); t.ak := ( f'2 (… , t.aj, …) JOINOID (stt.b' WHERE b = TRUE )) UNION ( t.ak JOINOID (stt.b' WHERE b = FALSE));
Оператор цикла. Предположим, что для объекта типа
t заданного ссылкой
o определена последовательность операций
DO … o.ak := f2 (… , o.aj, …); … WHILE f1 (… , o.ai, …);
Так же, как и в предыдущем случае, результатом выполнения
f1 является значение типа BOOLEAN. Данная последовательность может быть так же переписана как.
DO … o.ak := f2 (… , o.aj, …); … b := f1 (… , o.ai, …); WHILE b;
что может быть R-транслировано, например, в следующую последовательность действий над R-переменными
Содержание Назад Вперед