Крупноблочная схема программ: различия между версиями
Glk (обсуждение | вклад) (Создана новая страница размером '''Крупноблочная схема программ''' (''Large-block program schemata'') - операторная ''схема п...) |
KEV (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''Крупноблочная схема программ''' (''Large-block program schemata'') - | '''Крупноблочная схема программ''' (''[[Large-block program schemata]]'') - | ||
операторная ''схема программ'', которая рассматривает моделируемую программу в виде совокупности структурных операторов, обрабатывающих структурные значения совокупности переменных. Введена в литературу В.Н.Касьяновым в 1980 г. | операторная ''схема программ'', которая рассматривает моделируемую программу в виде совокупности структурных операторов, обрабатывающих структурные значения совокупности переменных. Введена в литературу В.Н.Касьяновым в 1980 г. | ||
Строка 7: | Строка 7: | ||
в которой <math>G_{\alpha}</math> --- | в которой <math>G_{\alpha}</math> --- | ||
''управляющий граф'' (''уграф''), <math>R_{\alpha}</math> --- раскраска операндов операторов из <math>G_{\alpha},</math> сопоставляющая с каждым операндом некоторую переменную, а <math>\Omega_{\alpha}</math> --- множество интерпретаций. | ''[[управляющий граф]]'' (''уграф''), <math>R_{\alpha}</math> --- раскраска операндов операторов из <math>G_{\alpha},</math> сопоставляющая с каждым операндом некоторую переменную, а <math>\Omega_{\alpha}</math> --- множество интерпретаций. | ||
Переменные, поставленные в соответствие входам операторов, называются их ''аргументами'', а выходам --- ''результатами''. Аргументы и результаты разделяются на ''обязательные'' и ''необязательные'' в зависимости от того, являются ли таковыми операнды, с которыми они сопоставлены. | Переменные, поставленные в соответствие входам операторов, называются их ''аргументами'', а выходам --- ''результатами''. Аргументы и результаты разделяются на ''обязательные'' и ''необязательные'' в зависимости от того, являются ли таковыми операнды, с которыми они сопоставлены. | ||
Строка 22: | Строка 22: | ||
Крупноблочная модель программ вместе с концепцией крупноблочного моделирования одних схем другими дает единую позицию для комплексного исследования оптимизирующих преобразований программ со структурами данных и действий и их применения в системах конструирования программ. Существенными свойствами, отличающими класс крупноблочных схем от других моделей программ, являются его универсальность в смысле широты описания класса последовательных программ и способов их оптимизации, а также его полнота --- возможность построения по любой крупноблочной схеме (в частности, программе) и любому ее укрупнению операторов и переменных такой другой крупноблочной схемы, которая моделирует исходную при заданном ее укрупнении. | Крупноблочная модель программ вместе с концепцией крупноблочного моделирования одних схем другими дает единую позицию для комплексного исследования оптимизирующих преобразований программ со структурами данных и действий и их применения в системах конструирования программ. Существенными свойствами, отличающими класс крупноблочных схем от других моделей программ, являются его универсальность в смысле широты описания класса последовательных программ и способов их оптимизации, а также его полнота --- возможность построения по любой крупноблочной схеме (в частности, программе) и любому ее укрупнению операторов и переменных такой другой крупноблочной схемы, которая моделирует исходную при заданном ее укрупнении. | ||
См. также ''Неинтерпретированные схемы, Стандартные схемы, Схема программ, Схема с косвенной адресацией, Схема с распределенной памятью, Схемы Мартынюка.'' | См. также ''[[Неинтерпретированные схемы]], [[Стандартные схемы]], [[Схема программ]], [[Схема с косвенной адресацией]], [[Схема с распределенной памятью]], [[Схемы Мартынюка]].'' | ||
==Литература== | ==Литература== | ||
[Касьянов/88], | [Касьянов/88], | ||
[Касьянов/86] | [Касьянов/86] |
Версия от 12:46, 16 ноября 2009
Крупноблочная схема программ (Large-block program schemata) - операторная схема программ, которая рассматривает моделируемую программу в виде совокупности структурных операторов, обрабатывающих структурные значения совокупности переменных. Введена в литературу В.Н.Касьяновым в 1980 г.
Базис [math]\displaystyle{ \Sigma }[/math], над которым строятся схемы, содержит символы переменных, операций, доступов, предикатов выполнимости, выбора и операндов: обязательных и необязательных входов и выходов. Крупноблочная схема [math]\displaystyle{ \alpha }[/math] --- это тройка
[math]\displaystyle{ (G_{\alpha}, R_{\alpha},\Omega_{\alpha}), }[/math]
в которой [math]\displaystyle{ G_{\alpha} }[/math] --- управляющий граф (уграф), [math]\displaystyle{ R_{\alpha} }[/math] --- раскраска операндов операторов из [math]\displaystyle{ G_{\alpha}, }[/math] сопоставляющая с каждым операндом некоторую переменную, а [math]\displaystyle{ \Omega_{\alpha} }[/math] --- множество интерпретаций.
Переменные, поставленные в соответствие входам операторов, называются их аргументами, а выходам --- результатами. Аргументы и результаты разделяются на обязательные и необязательные в зависимости от того, являются ли таковыми операнды, с которыми они сопоставлены.
Каждая интерпретация [math]\displaystyle{ I\in\Omega_{\alpha} }[/math] --- это совокупность, состоящая из области интерпретации [math]\displaystyle{ D_I }[/math] и двух функций. Одна из них ставит в соответствие элементам базиса [math]\displaystyle{ \Sigma }[/math] элементы [math]\displaystyle{ D_I }[/math] и функции, заданные на [math]\displaystyle{ D^r_I }[/math], а вторая --- выделяет используемые и неиспользуемые части аргументов интерпретирующих функций при вычислении указанных частей их результатов. Предполагается, что [math]\displaystyle{ D_I }[/math] может содержать как простые значения, так и составные. Каждое из составных значений --- это множество упорядоченных пар элементов из [math]\displaystyle{ D_I }[/math], попарно различающихся по первым компонентам и называемых именами. Таким образом, одно значение может образовывать нетривиальную часть другого значения с некоторым адресом, представляющим собой последовательность имен.
Оператор (в общем случае) --- это совокупность, состоящая из слова применимости --- выражения, описывающего условия применимости оператора и построенного из обязательных входов и операций, слова выбора --- выражения, построенного из входов и операций и описывающего правила выбора той из исходящих дуг, по которой будет осуществлен переход, а также из множества обязательных и необязательных присваиваний, описывающих правила перевычисления состояния памяти. Обязательное присваивание имеет вид [math]\displaystyle{ a:=F }[/math], где [math]\displaystyle{ a }[/math] --- получатель (обязательный выход), а [math]\displaystyle{ F }[/math] --- источник, представляющий собой выражение, построенное из входов и операций и описывающее правило вычисления значения, которое будет присвоено переменной [math]\displaystyle{ R(a) }[/math]. Необязательное присваивание имеет вид
[math]\displaystyle{ g(F_1,\ldots, F_r, F, a), }[/math]
где [math]\displaystyle{ g }[/math] --- символ доступа, [math]\displaystyle{ a }[/math] --- получатель (необязательный выход), [math]\displaystyle{ F }[/math] --- источник, [math]\displaystyle{ F_1,\ldots,F_r }[/math] --- ключи, представляющие собой выражения, построенные из входов и операций. В зависимости от интерпретации [math]\displaystyle{ g }[/math] и текущих значений ключей определены используемые и неиспользуемые части переменной [math]\displaystyle{ x=R(a) }[/math]. Необязательное присваивание сохраняет значения используемой части [math]\displaystyle{ x }[/math] и перевычисляет неиспользуемую часть [math]\displaystyle{ x }[/math], размещая в ней используемые части значения результата источника.
Крупноблочная модель программ вместе с концепцией крупноблочного моделирования одних схем другими дает единую позицию для комплексного исследования оптимизирующих преобразований программ со структурами данных и действий и их применения в системах конструирования программ. Существенными свойствами, отличающими класс крупноблочных схем от других моделей программ, являются его универсальность в смысле широты описания класса последовательных программ и способов их оптимизации, а также его полнота --- возможность построения по любой крупноблочной схеме (в частности, программе) и любому ее укрупнению операторов и переменных такой другой крупноблочной схемы, которая моделирует исходную при заданном ее укрупнении.
См. также Неинтерпретированные схемы, Стандартные схемы, Схема программ, Схема с косвенной адресацией, Схема с распределенной памятью, Схемы Мартынюка.
Литература
[Касьянов/88],
[Касьянов/86]