Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Процессная семантика языков распределенного программирования
Аннотация:В данной статье семантика языков распределенного программирования исследуется посредством сопоставления программам множества вычислительных последовательностей и анализа семантических значений, которые могут быть представлены системами рекурсивных уравнений. Это позволяет проводить формальную верификацию программ.
Abstract:In this article the semantics of distributed programming languages researched by comparing programs a set of computational sequence and analysis of the semantic values thet can be represented by systems of recursive equations. It can detect deadlocks and locks in distributed program, loops, verify accessibility, to prove the equivalence (may, must, observational) of programs and branches.
Авторы: Кораблин Ю.П. (y.p.k@mail.ru) - Российский государственный социальный университет, г. Москва (профессор), Москва, Россия, доктор технических наук, Кучугуров И.В. (tws13@mail.ru) - Российский государственный социальный университет, г. Москва | |
Ключевые слова: эквивалентность, эквациональная характеризация, семантические равенства, априорная семантика, алгебраическая семантика, процессная семантика, верификация |
|
Keywords: equivalence, equational characterization, semantic equality, semantic equality, algebraic semantics, process semantics, verification |
|
Количество просмотров: 14409 |
Версия для печати Выпуск в формате PDF (5.83Мб) Скачать обложку в формате PDF (1.28Мб) |
С развитием распределенных систем и параллельной обработки информации остро встает задача создания качественного ПО. Исследуем семантику языков распределенного программирования посредством сопоставления программам (схемам программ) множества вычислительных последовательностей (ВП) и анализа семантических значений в заданной алгебраической модели ВП. Под ВП будем понимать последовательность выполнения действий (команд и тестов) программы. В качестве модели языка распределенного программирования рассмотрим язык L, имеющий элементарные команды, последовательную и параллельную композицию, недетерминированный выбор, синхронизацию и взаимодействие посредством передачи сообщений и итерацию. Такой тип языка может рассматриваться как ядро для построения различных языков параллельного программирования, использующих данную модель взаимодействия и синхронизации между компонентами программы. В основе рассматриваемого подхода к семантике распределенных программ лежат следующие принципы. Во-первых, с учетом разнообразия языков и их применений семантические области задаются посредством композиции блоков, описывающих различные свойства семантических объектов. Во-вторых, для описания семантики таких программ в определение семантической функции вводится параметр, задающий среду вычисления, так как использование операции параллельной композиции в семантической области требует определения этой операции и ее свойств. В-третьих, допущение как конечных, так и бесконечных вычислений, определяемых программой в используемом языке, требует строгого математического подхода для спецификации этих вычислений. При описании семантических областей и доказательстве корректности семантических функций используется аппарат метрической топологии. Синтаксис языка L Предположим, что заданными являются множества: элементарных команд Типичные элементы множеств могут допускать индексацию. Кроме того, выделим еще три константы: Множество команд
где
Фигурные скобки используются в БНФ для обозначения нулевого либо большего количества повторений конструкции, заключенной в скобки. Через Алгебраическая семантика: математические основы и семантические равенства Семантическая функция сопоставляет программе в языке Полагая, что любая программа может, в свою очередь, быть компонентом другой программы, в результате композиции семантических значений компонентов некоторой программы всегда получится априорная семантика всей программы. При этом, если в семантическом значении компонента программы могут присутствовать вычислительные пути, содержащие команды ввода/вывода, означающие возможное взаимодействие с другими компонентами, то в семантическом значении всей программы целиком все такие команды должны быть реализованы путем взаимодействия с соответствующим удалением ВП, начинающихся с этих команд. При задании семантики необходимо учитывать, что в языке 1) 2) Индекс у команды ввода/вывода указывает на процесс, с которым может осуществляться взаимодействие. В первой программе имеет место случай локального недетерминизма, то есть выбор альтернатив для выполнения в процессе 1 не зависит от других процессов. В случае выбора второй альтернативы для выполнения оба процесса программы будут взаимно заблокированы. Во второй программе успешное завершение гарантируется вследствие разрешения недетерминизма на уровне программы (глобального недетерминизма). Здесь решение вопроса о выборе альтернативы переносится на уровень параллельной композиции двух процессов, тогда как на уровне каждого процесса в отдельности имеется лишь априорная готовность к взаимодействию команд ввода/вывода. Еще одним параметром, влияющим на семантическое значение программы, является механизм управления завершением циклов, использующих глобальный недетерминизм. Циклы завершаются тогда, когда значения всех защит, определяющих возможность выполнения альтернатив цикла, являются ложными. Циклические команды, в которых в качестве защиты используются команды ввода/вывода, завершаются, если завершились все процессы, с которыми могут взаимодействовать эти команды. Очевидно, что анализ завершения таких циклов также возможен только на глобальном уровне. Семантические области. Предположим, что задаются множества значений элементарных команд Типичные элементы семантических областей могут иметь индексы. Определим множество вычислительных последовательностей
Заметим, что одни и те же элементы Обозначим через Введем множество Определение 1. ВП Бесконечную последовательность вида Определение 2. Определим теперь
В последнем определении символ Априорная семантика. Априорную семантику процессов зададим как Семантическая функция рассчитывается следующим образом: 1) 2) 3) 4) 5) где функция 6) 7) 8) 9) 10) 11) 12) 13) 14) Заметим, что для обозначения операции параллельной композиции над семантическими значениями используется тот же символ, что и для параллельной композиции в языке Определим теперь семантическую функцию для выражений 1) 2) 3) Заметим, что в записи Перейдем к формальному определению функции среды Определение 3. Процесс Определение 4 (правило дедукции). Пусть метка 1) если 2) если 3) если, в свою очередь, gc Определение 5. Пусть метка В общем случае понятие «родительский» можно обобщить, полагая, что, если метка Определение 6. Родословной n-го порядка Определение 7. Родословной компонента Заметим, что порождение родительской метки 1-го порядка для любого компонента Определение 8. Пусть Очевидно, что, если множество Лемма 1. Пусть Доказательство. Тривиально, из определений 7 и 8. Лемму 1 можно обобщить на любое конечное число компонентов программы. Для упрощения процесса нахождения среды вычисления компонентов Лемма 2. а) б) в) г) д) Доказательство. Тривиально, из определений 4, 8. Пусть Лемма 3. Пусть Доказательство. Тривиально, методом численной индукции. Пример 1. Пусть дана программа
и пусть Вводя порядок
Таким образом, получена фиксированная точка, а следовательно, Строго говоря, для того чтобы минимальная фиксированная точка оператора Таким образом, введенные выше определения родословной для компонента программы и подмножества компонентов являются корректными. Исследуем подробнее семантическую область Свойства операции над элементами семантической области опишем системой аксиом (схем аксиом) и правил вывода. Систему аксиом зададим как набор блоков, каждый из которых описывает определенные свойства семантических объектов. Аксиоматизация свойств семантической области. Для обозначения элементов семантической области используем метапеременные Аксиомы, задающие базисные свойства операций (A1) (A2) (A3) (A4) (A5) (A6) (A7) (A8) (A9) (A10) (A11) (A12) (A13) Для описания свойств параллельной композиции Из этого определения следует: если хотя бы один из аргументов функции Функция Операцию (Р1) (Р2) Таким образом, определенная операция параллельной композиции является ассоциативной (Р2). Кроме того, в дальнейшем из коммутативности операции Операция (С1) (С2) (С3)
(С4) (С5)
(С6) (С7) (С8) (С9) Операция (F1) (F2) (F3) (F4) (F5) (F6) (F7) Отметим, что формально аксиомы С8 и F4 не являются независимыми и могут быть выведены из аксиомы А6, однако для характеризации свойств операций Введем также операции абстракции ( Для произвольного (AB1) (AB2) (AB3) (AB4) (AB5) (AB6) (E1) (E2) (E3) (E4) (E5) (E6) Введем также в предлагаемую формальную систему правило замены. (СН) Пусть Теорема 1. Формальная система, состоящая из блоков А1 Доказательство. Тривиально, путем непосредственной проверки того факта, что, если некоторая ВП принадлежит левой части какой-либо аксиомы, то она принадлежит и правой части, и наоборот. Непосредственно проверяется и правило вывода СН. Эквациональная характеризация семантических значений Предложенный подход позволяет описывать ВП, соответствующие всем возможным вычислениям программы. В то же время непосредственный анализ полученных семантических значений программ на возможность появления исключительных ситуаций является затруднительным. Покажем, что для любого элемента Прежде чем определить систему уравнений, введем несколько вспомогательных определений. Определение 9. Пусть
Заметим, что для выражения Определение 10. Множество ВП
где
где При записи уравнений вида Рассмотрим пример представления семантического значения в языке Пример 2: В соответствии с семантическим определением имеем
где Опуская Аналогично предыдущему получаем
Таким образом, имеем Представим
Далее получаем
Данная система уравнений задает множество ВП, сопоставляемое программе Для получения же семантического значения программы
Таким образом, выводим следующую систему уравнений:
Наличие Теорема 2. Каждое множество ВП Доказательство. Методом индукции по структуре P. Базис. Для Индуктивный шаг. Пусть По предположению индукции существуют множества
1.
Запишем
Применяя аксиомы А4, А2, А5 и А11, получаем
Если Применяя далее аксиомы А1, А2, А3 и А5, получим
где все выражения 2. 3.
Запишем
Используя аксиомы А1, А2, А3, получим 4.
Запишем
Применяя аксиому Р1, а затем аксиомы
Если
где все 5.
Количество выражений (4) конечно. По индуктивному предположению имеем
Поскольку по определению имеем, что то, подставляя Отсюда получаем следующее свойство для фиксированной точки Используя это свойство, имеем Применяя аксиомы А4, А5 и А11, получим
+
где все Для
Используя аксиомы А4, А5, А6, А8, А11, получаем
Рассмотрим последнее слагаемое Если сумма Применяя вновь аксиому А4, получим
где все Таким образом, получаем, что Программная реализация В соответствии с изложенной теорией авторами была создана программа, которая по тексту входной программы на языке будут построены семантическое значение и соответствующая система рекурсивных уравнений:
Таким образом, в работе предложен метод задания процессной семантики схем распределенных программ и показано, что сопоставляемые программам семантические значения могут быть представлены системами рекурсивных уравнений. Это дает возможность решить ряд как теоретических, так и практических задач. Разработанная программа представления семантических значений в виде систем рекурсивных уравнений существенно упрощает и автоматизирует процесс анализа семантических значений распределенных программ. Литература 1. Кораблин Ю.П. Семантика языков распределенного программирования. М.: Изд-во МЭИ, 1996. 102 с. 2. Кораблин Ю.П. Семантика языков программирования. М.: Изд-во МЭИ, 1992. 102 с. |
Постоянный адрес статьи: http://swsys.ru/index.php?id=2913&page=article |
Версия для печати Выпуск в формате PDF (5.83Мб) Скачать обложку в формате PDF (1.28Мб) |
Статья опубликована в выпуске журнала № 4 за 2011 год. [ на стр. 57 – 64 ] |
Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Вопросы эквивалентности схем параллельных программ
- Разработка инструментов верификации драйверов на основе семантических моделей
- Синтезирование программ на основе описания графоаналитической модели
- Общая схема верификации утверждений Р-логики с неизвестными параметрами
- Верификация моделей систем на базе эквациональной характеристики формул CTL
Назад, к списку статей