Реферат Курсовая Конспект
Стандартные схемы программ - раздел Философия, ТЕОРИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ Определение 5.4. Стандартная Схема – Это Схема Программ С Памят...
|
Определение 5.4. Стандартная схема – это схема программ с памятью, называемая также алголоподобной или операторной схемой.
Исследование стандартных схем составляет основное содержание общей теории схем программ. В отличие от других видов схем стандартные схемы учитывают разбиение памяти на переменные и позволяют исследовать более широкий класс преобразований программ. Однако при этом стандартные схемы запрещают структурность операторов и переменных и, таким образом, моделируют лишь узкий класс реальных программ.
Каждый оператор в такой схеме является либо преобразователем - оператором, изменяющим состояние памяти, либо распознавателем - оператором, осуществляющим выбор для исполнения одного из нескольких своих преемников.
Преобразователь содержит одно обязательное присваивание и имеет одну исходящую дугу, а распознаватель не содержит присваиваний и имеет две исходящие дуги, одна из которых называется плюс-стрелкой (или 1-дугой), а вторая - минус-стрелкой (или 0-дугой).
Каждому распознавателю сопоставляется некоторый предикатный терм, а преобразователю – оператор присваивания, имеющий вид y := t, где y – символ переменной, а t - функциональный терм.
Конечная совокупность всех переменных в схеме образуют ее память.
Интерпретация в дополнение к конкретизации базовых операций предписывает каждой переменной область ее изменения, а каждой константе – ее значение.
Графически стандартная схема может задаваться в виде конечного ориентированного графа переходов, имеющего обычно одну входную и одну выходную вершины. Вершины с одной исходящей дугой являются преобразователями, вершины с двумя исходящими дугами – распознавателями.
Программа выполняется при движении по графу переходов:
- при попадании на распознаватель вычисляется предикатный терм и происходит переход по дуге, соответствующей значению предиката.
- при попадании на преобразователь с оператором x:= a вычисляется значение a и присваивается переменной x.
Результат выполнения программы – состояние памяти при попадании на выходную вершину.
Пример 5.2. Графическое представление схемы программы, приведенной в примере 5.1, приведено на рис.5.1.
m 0
m1
Рис.5.1. Графическое представление схемы программы
Таким образом, одна и та же схема, интерпретированная различным способом, дает разные программы.
Для примера используем другую интерпретацию предложенной ранее схемы. Возьмем в качестве области интерпретации множество V* всех слов в некотором алфавите V. Константу а заменим пустым словом e. Функциональные и предикатные символы заменим операциями и предикатом над словами:
g – двуместной функцией CONSCAR, приписывающий первую букву первого слова ко второму слову (т.е. CONSCAR (ac,b) = ab, здесь и далее функции языка ЛИСП);
h – одноместной функцией CRD, стирающей первую букву слова (т.е.CRD(ac) = c);
p – предикатом «равно пустому слову e».
Такая интерпретация схемы порождает программу, которая любое слово a1,a2,…,an в алфавите V, поданное в качестве начального значения переменной х, превращает в «перевернутое» слово an,an-1,…,a1.
Программа переворачивания слов:
начало целые х, у;
ввод (х);
у := e;
m: если х = e то на m1;
у := CONSCAR ( х, у);
х := CRD( х );
на m;
m1: вывод (у);
конец
Интерпретируя по-разному переменные, функциональные и предикатные символы, можно получить совершенно разные программы. Но все они будут устроены одинаково, имея одни и те же переменные, одни и те же типы операторов, одну и ту же логическую структуру и т.д. Значит, все эти программы имеют одну и ту же схему (здесь слово «схема» используется в общем смысле, подтверждая оправданность термина « схема программы»).
Анализ схемы позволяет сделать заключения, относящиеся ко всем программам, полученным их схемы с помощью всех возможных интерпретаций.
Пример очень простого заключения: если в схеме нет ни одного условного оператора и оператора перехода, то любая программа из множества программ, порождаемых этой схемой, будет выполняться конечное время, после чего остановится.
Между свойствами программ и свойствами схем программ устанавливается «терминологическая» связь. Например, говорят, что:
схема пуста, если любая программы, полученная из нее с помощью интерпретации, пуста, т.е. никогда не останавливается (зацикливается);
две схемы эквивалентны, если программы, полученные из этих схем одинаковой интерпретацией одноименных функциональных и предикатных символов, эквивалентны, т.е. задают одну и ту же функцию.
Такая терминологическая связь является отражением глубокой связи между схемами и программами, что дает возможность изучать свойства программ, анализируя схемы – объекты более простой природы, чем программы.
Выделив, таким образом, преобразования, сохраняющие или улучшающие какие-то свойства схем и одновременно гарантирующие эквивалентность исходной и результирующих схем, можно непосредственно применить эти преобразования для классов программ, порождаемых данными схемами.
В теории схем программ рассматривают разные классы схем, моделирующие различные классы программ. Сравнивая между собой классы схем программ, можно исследовать свойства и возможности разных наборов программных примитивов, установить связь между ними, изучить проблему трансляции программ, записанных на одном языке, в программы на другом языке.
– Конец работы –
Эта тема принадлежит разделу:
ПО РЫБОЛОВСТВУ... ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ... УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МУРМАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ...
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Стандартные схемы программ
Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов