Авторитетность издания
Добавить в закладки
Следующий номер на сайте
Процессная семантика языков распределенного программирования
Аннотация:В данной статье семантика языков распределенного программирования исследуется посредством сопоставления программам множества вычислительных последовательностей и анализа семантических значений, которые могут быть представлены системами рекурсивных уравнений. Это позволяет проводить формальную верификацию программ.
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 |
|
| Количество просмотров: 16500 |
Версия для печати Выпуск в формате PDF (5.83Мб) Скачать обложку в формате PDF (1.28Мб) |
Процессная семантика языков распределенного программирования
Статья опубликована в выпуске журнала № 4 за 2011 год. [ на стр. 57 – 64 ]
С развитием распределенных систем и параллельной обработки информации остро встает задача создания качественного ПО. Исследуем семантику языков распределенного программирования посредством сопоставления программам (схемам программ) множества вычислительных последовательностей (ВП) и анализа семантических значений в заданной алгебраической модели ВП. Под ВП будем понимать последовательность выполнения действий (команд и тестов) программы. В качестве модели языка распределенного программирования рассмотрим язык 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?page=article&id=2913&lang= |
Версия для печати Выпуск в формате PDF (5.83Мб) Скачать обложку в формате PDF (1.28Мб) |
| Статья опубликована в выпуске журнала № 4 за 2011 год. [ на стр. 57 – 64 ] |
Статья опубликована в выпуске журнала № 4 за 2011 год. [ на стр. 57 – 64 ]
Возможно, Вас заинтересуют следующие статьи схожих тематик:Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Вопросы эквивалентности схем параллельных программ
- Разработка инструментов верификации драйверов на основе семантических моделей
- Компьютерное моделирование для интеллектуальной оценки динамического взаимодействия твердых тел
- Метод ограничений верифицируемых моделей
- Общая схема верификации утверждений Р-логики с неизвестными параметрами
Назад, к списку статей


с типичным элементом
; булевских выражений
с типичным элементом
; команд ввода
с типичным элементом
; команд вывода
с типичным элементом
; меток процессов
с типичными элементами
, где 
– пустая команда;
и
– тождественно истинное и тождественно ложное булевские значения.
с типичным элементом
определим следующим образом:
,
– типичный элемент множества защищенных команд
со следующим синтаксисом:
,
,
.
обозначается типичный элемент множества защит
, а через
– типичный элемент множества процессов
. В дальнейшем круглые скобки в записи
опускаются там, где это не вызывает недоразумений.
множество вычислительных последовательностей (путей), по которым может выполняться данная программа. Для построения семантики распределенной программы используем принцип построения семантического значения всей программы на основе семантических значений компонентов этой программы. Семантическое значение компонента, рассматриваемое вне программной среды, называется априорной семантикой компонента программы.
;
.
с типичным элементом
; булевских выражений
с типичным элементом
; команд ввода
с типичным элементом
; а также команд вывода
с типичным элементом
; взаимодействий
с типичным элементом
и множество
, содержащее константы
(тождественное преобразование),
(останов),
(тождественно-истинное значение) и
(тождественно-ложное значение).
с типичным элементом
. Предварительно определим два дополнительных множества: множество тестов
с типичным элементом
и множество действий
с типичным элементом
.
;
;
.
могут использоваться в качестве и тестов, являющихся значениями защит команд, и действий, являющихся значениями команд. Элемент
конечную ВП, а через
– бесконечную.
с типичным элементом
, то есть
– это множество всех подмножеств множества
, последовательной композиции
, параллельной композиции
, теоретико-множественного вычитания
и минимальной фиксированной точки
. Прежде чем определить значение
, введем два вспомогательных определения.
, если
;
.
обозначим через
(зацикливание).
, если
;
и
или
;
и
, то есть
, где
,

обозначает выражение, значение которого зависит от среды вычисления
, где
– множество функций вида
с типичным элементом
. Через
обозначено множество компонентов программы, определяемое как
с типичным элементом
. Функция
компонентов программы. Множество
отличается от ранее введенного множества
, имеют дополнительный параметр
, характеризующий среду вычисления элемента
,
,
,
,
,
определяет семантические значения выражений,
,
,
,
,
,
,
,
,
.
;
.
,
,
(либо
) среда
(соответственно
) будут в общем случае различными.
называется помеченным меткой
. При этом метка
.
либо
, то метка
и
;
либо
, то метка
либо
, то метка
и
является родительской для процесса
для некоторого вхождения компонента
является минимальная фиксированная точка оператора
, то есть
, где
где
– родительская метка 1-го порядка компонента
– функция вида
, порождающая для любого множества меток программы
множество их родительских меток
.
5.
есть множество всех компонентов некоторой программы
, сопоставляющая каждому подмножеству компонентов
программы множество меток, являющихся объединением родословных всех компонентов 
.
и
– компоненты программы
.




следующим образом:
где
, а функция
– подмножество компонентов программы
Тогда
.

.
на множестве
как отношение включения множеств и обозначая пустое множество меток
через
,
,
,
.
и
монотонны. Из монотонности этих операций и конечности областей, на которых эти операции определены (в силу конечности программы
и операции над элементами этой области. Обозначим через
множество
с типичным элементом
. В дальнейшем используем как параметризованные, так и непараметризованные семантические области, полагая в последнем случае, что с каждым элементом непараметризованной области всегда может быть ассоциирован параметр
, задающий среду вычисления соответствующего элемента. В тех случаях, когда параметризация является принципиальной при построении семантического значения, параметры будут задаваться явным образом (например, в элементах
), тогда как в других случаях, для упрощения записи, часто будем опускать параметр
у элементов области
.
и
:
,
,
,
,
,
,
,
,
,
,
,
,
.
используем операции
и
. Выражение
означает то же самое, что и
, за исключением того, что первым шагом будет действие из
. Для определения операции
. Частично определенную функцию
зададим следующим образом:
либо оба аргумента принадлежат одной из областей
. Кроме того, взаимодействие
и
возможно лишь в том случае, если
, а
, то есть исходные команды
и
, значениями которых являются
,
.
определим следующими аксиомами:
,
.
и
,
,
,
,
,
,
,
,
.
,
,
,
,
,
,
.
) и инкапсуляции (
), где
– множество, параметризующее эти операции. Операции
и имеют вид
.
, где
, операции
,
,
,
,
,
;
,
,
,
,
,
.
входит в
и
. Тогда, если
получено из
, то
.
существует представление его в виде конечной системы рекурсивных уравнений.
и
и
. Частичные функции
и
определяются следующей таблицей:










понятия префикса и суффикса не определяются, поскольку
эквационально характеризуемо, если имеется конечное множество
, таких, что
и для любого
:
, 
,
,
,
, что
, и
, что
.
спользуем нотацию
для суммы
, где
. Запись
.
.
, где
,
.
,
.
эквивалентны, получим
.
.
.
. Тогда








+
,

=
.

,
,
,
,
.
, в которую программа
и
, входящие в ВП априорного семантического значения
и
, входящими в
, получим
,
,
,
,
.
, сопоставляемое программе
, где
, эквациональная характеризация вытекает тривиально.
и
будут эквационально характеризуемы. Тогда необходимо доказать, что
и
эквационально характеризуемы.
и
, такие, что
и


. Обозначим
.
вместо
. Количество выражений (1) конечно. По индуктивному предположению имеем
.
.
, где
, то применим еще раз аксиому А4, заменяя в
слагаемое
выражением
, причем, если
, то
заменяем его представлением для
из
.
входят в (1). Поскольку
, получаем, что
. Тривиальный случай. Тогда к конечной системе уравнений для
добавляется лишь одно уравнение:
, откуда следует эквациональная характеризуемость выражения
. Обозначим
(2)
.
вместо
и
вместо
. Количество выражений (2) конечно. По индуктивному предположению имеем
, где все выражения
и
входят в (2). Поскольку
, получаем, что
эквационально характеризуемо.
. Обозначим
(3)
.
вместо
вместо
.
, получим:
.
и
, то, применяя аксиомы С7, С9, А4, А5, а затем аксиомы
, получим
и
входят в (3). Поскольку
, получаем, что
эквационально характеризуемо.

.
.
, где
в оператор F(P1), имеем
.
, где
.

(5)
входят в (4), а
, поскольку
может принимать лишь одно из трех значений:
что соответствует определению
по индуктивному предположению имеем 

.
.
содержит
,
,
входят в (4).

.