Схема с распределенной памятью
Схема с распределенной памятью (Schema with distributed memory) —
Имеется два основных способа идентификации взаимовлияний
операторов и переменных в схеме программ — так
называемая общая и распределенная память. В схемах над общей
памятью, называемых также О-схемами (такой способ
описан в определении крупноблочной схемы),
переменные однозначно сопоставляются раскраской с операндами
операторов и оператор, засылая значение в переменную, не
"интересуется", где это значение будет использовано, а
используя значение, не "интересуется", какой из операторов
это значение выработал. В отличие от общей памяти, где
элементы памяти равнодоступны как входам, так и выходам
операторов, при распределенной памяти переменные
сопоставляются с входами операторов взаимно однозначно, а
значение, выработанное на выходе оператора, засылается уже
не в одну переменную, а копируется и рассылается в несколько
переменных. В схемах
над распределенной памятью, называемых
также Р-схемами, вместо раскраски используется
информационный граф, вершинами которого являются операнды
операторов, а дуги отражают пересылку значений от выходов к
входам. Таким образом, при распределенной памяти оператор,
вырабатывая результат, знает, для каких операторов он
предназначен, а воспринимая результат, знает, какой оператор
его подготовил. Оба способа присутствуют в современных
языках программирования и используются в промежуточных
представлениях программ. Наиболее известным промежуточным
представлением программ с распределенной памятью является
-форма.
Любая О-схема может быть реализована Р-схемой, но обратное
неверно. Однако за счет добавления в схему операторов,
пересылающих значения с входа на выход, любую
Р-схему можно преобразовать в эквивалентную, реализуемую
О-схемой.
См. также
- Крупноблочная схема программ,
- Неинтерпретированные схемы,
- Стандартные схемы,
- Схема программ,
- Схема с косвенной адресацией,
- Схемы Мартынюка.
Литература
- Ершов А.П. Введение в теоретическое программирование. Беседы о методе. — М.: Наука, 1977.
- Касьянов В.Н. Оптимизирующие преобразования программ. — М.: Наука, 1988.