Научная статья на тему 'Процессная семантика языков распределенного программирования'

Процессная семантика языков распределенного программирования Текст научной статьи по специальности «Математика»

CC BY
101
39
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Процессная семантика языков распределенного программирования»

Система поддержки научно-исследовательской деятельности внедрена в опытную эксплуатацию в НИЯУ «МИФИ» (г. Москва), подана заявка на регистрацию в установленном порядке в Роспатент.

Литература

1. Калянов Г.Н. CASE-технологии: консалтинг в автоматизации бизнес-процессов: Изд. 2-е. М.: Горячая линия-Телеком, 2000. 320 с.

2. Гусева А.И., Киреев В.С., Тихомирова А.Н., Филиппов С.А. Компетенции работников образования в области инфор-

мационных и коммуникационных технологий: монография. М.: МИФИ, 2009. 252 с.

3. Матушкин Н., Столбова И., Ульрих Т. НИРС как составляющая формирования компетенций специалиста // AlmaMater: Вестн. высш. шк. 2007. № 5. С. 3-7.

4. Саати Т.Л. Принятие решений при зависимостях и обратных связях: Аналитические сети; [пер. с англ.]: 2-е изд. М.: Либроком, 2009. 360 с.

5. Бачурин С.А., Гусева А.И. Предметно-ориентированная среда как средство формализации требований к программному обеспечению // Аудит и финансовый анализ. 2010. N° 6. С. 454-457.

УДК 519.767.2

ПРОЦЕССНАЯ СЕМАНТИКА ЯЗЫКОВ РАСПРЕДЕЛЕННОГО ПРОГРАММИРОВАНИЯ

Ю.П. Кораблин, д.т.н.; И.В. Кучугуров

(Российский государственный социальный университет, г. Москва, y.p.k@mcril.ru, t-ws13@mcril.ru)

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

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

С развитием распределенных систем и параллельной обработки информации остро встает задача создания качественного ПО. Исследуем семантику языков распределенного программирования посредством сопоставления программам (схемам программ) множества вычислительных последовательностей (ВП) и анализа семантических значений в заданной алгебраической модели ВП. Под ВП будем понимать последовательность выполнения действий (команд и тестов) программы.

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

В основе рассматриваемого подхода к семантике распределенных программ лежат следующие принципы. Во-первых, с учетом разнообразия языков и их применений семантические области задаются посредством композиции блоков, описывающих различные свойства семантических объектов. Во-вторых, для описания семантики таких программ в определение семантической

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

При описании семантических областей и доказательстве корректности семантических функций используется аппарат метрической топологии.

Синтаксис языка L

Предположим, что заданными являются множества: элементарных команд с типичным элементом а; булевских выражений Ехр с типичным элементом Ь; команд ввода I С о m с типичным элементом ; команд вывода с типичным элементом ; меток процессов с типичными элементами , где

Типичные элементы множеств могут допускать индексацию. Кроме того, выделим еще три константы: skip - пустая команда; tt и ff - тождественно истинное и тождественно ложное булевские значения.

Множество команд С md с типичным элементом определим следующим образом: с :: = s ki р | а | i n | out | [gc] | * [gc] ,

где g с - типичный элемент множества защищенных команд G Com со следующим синтаксисом: gc : : = g — р г | gc { □ gc} , g : := tt | ff | b | i n | out, р г : := с | р г{; р г} | р г{ | | р г} | i :: (рг). Фигурные скобки используются в БНФ для обозначения нулевого либо большего количества повторений конструкции, заключенной в скобки. Через g обозначается типичный элемент множества защит , а через - типичный элемент множества процессов Pro с. В дальнейшем круглые скобки в записи опускаются там, где это не вызывает недоразумений.

Алгебраическая семантика:

математические основы и семантические равенства

Семантическая функция сопоставляет программе в языке L множество вычислительных последовательностей (путей), по которым может выполняться данная программа. Для построения семантики распределенной программы используем принцип построения семантического значения всей программы на основе семантических значений компонентов этой программы. Семантическое значение компонента, рассматриваемое вне программной среды, называется априорной семантикой компонента программы.

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

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

1) 1 : : [tt - in 2 □ tt - out2] | | 2 :: out^

2) 1 : : [ i n 2 — s ki р □ o ut 2 — s ki р ] | | 2 : : o u t^ Индекс у команды ввода/вывода указывает на

процесс, с которым может осуществляться взаимодействие.

В первой программе имеет место случай локального недетерминизма, то есть выбор альтернатив для выполнения в процессе 1 не зависит от других процессов. В случае выбора второй альтернативы для выполнения оба процесса про-

граммы будут взаимно заблокированы. Во второй программе успешное завершение гарантируется вследствие разрешения недетерминизма на уровне программы (глобального недетерминизма). Здесь решение вопроса о выборе альтернативы переносится на уровень параллельной композиции двух процессов, тогда как на уровне каждого процесса в отдельности имеется лишь априорная готовность к взаимодействию команд ввода/вывода.

Еще одним параметром, влияющим на семантическое значение программы, является механизм управления завершением циклов, использующих глобальный недетерминизм. Циклы завершаются тогда, когда значения всех защит, определяющих возможность выполнения альтернатив цикла, являются ложными. Циклические команды, в которых в качестве защиты используются команды ввода/вывода, завершаются, если завершились все процессы, с которыми могут взаимодействовать эти команды. Очевидно, что анализ завершения таких циклов также возможен только на глобальном уровне.

Семантические области. Предположим, что задаются множества значений элементарных команд АС от с типичным элементом А; булевских выражений В Ex р с типичным элементом В; команд ввода Р I Сот с типичным элементом I N ; а также команд вывода Р ОС от с типичным элементом О U Т; взаимодействий Р С о т с типичным элементом и множество , содержащее

константы т (тождественное преобразование), 0 (останов), Т (тождественно-истинное значение) и F (тождественно-ложное значение).

Типичные элементы семантических областей могут иметь индексы.

Определим множество вычислительных последовательностей СР ath с типичным элементом

. Предварительно определим два дополнительных множества: множество тестов Т E S Т с типичным элементом и множество действий с типичным элементом .

Р : := Т | F | 0 | В | I N | OU Т | у;

а: : =т | 0 | А | I N | О иТ | у;

ср : : = а | Р л ср | ср ± ° ср2.

Заметим, что одни и те же элементы

могут использоваться в качестве и тестов, являющихся значениями защит команд, и действий, являющихся значениями команд. Элемент у -это значение, соответствующее взаимодействию команд и , которые могут использоваться как в качестве защит, так и в качестве команд ввода/вывода.

Обозначим через конечную ВП, а через - бесконечную.

Введем множество с типич-

ным элементом , то есть - это множество всех подмножеств множества . Определим

на множестве SP операции теоретико-мно-

жественного объединения (spj + sp2) , последовательной композиции (s p 1 ° s p2), параллельной композиции (s p 1 | | sp2) , теоретико-множественного вычитания (spj\ sp2) и минимальной фиксированной точки (s p+). Прежде чем определить значение s p+, введем два вспомогательных определения.

Определение 1. ВП с p называется пустой и обозначается через е, если cp = т; cp = Т Л е.

Бесконечную последовательность вида ew обозначим через LO ОР (зацикливание).

Определение 2. ЕЕ s p , если s p = е; s p = и принадлежит хотя бы одному из множеств или ; и принад-

лежит и , и одновременно.

Определим теперь s p+ как минимальную фиксированную точку оператора , то есть sp+ = Ц-F (sp ) , где F (s p ) имеет вид:

F (s p ) = Àq. sp<=q+n ,

__( s p , е сл и е g s p ,

е

_ ( L О О Р , е сл и е Е s p ,

е

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

Априорная семантика. Априорную семантику процессов зададим как С : Р roc — 0 — S Рст, где 0 -множество функций вида с

типичным элементом р. Через CP R обозначено множество компонентов программы, определяемое как с типичным элементом cp r. Функция р задает среду вычисления для подмножества Р компонентов программы. Множество S Рст отличается от ранее введенного множества тем, что все элементы этого множества, обозначаемые по аналогии с элементами множества через , имеют дополнительный параметр ст Е Т (Р Lab ) , характеризующий среду вычисления элемента и определяемый функцией .

Семантическая функция рассчитывается следующим образом:

1) С Us ki p] р = Тст ,ст = р (skip ) ,

2) С Ja] р = Аст ,ст = р (a) ,

3) С p nj р = 1 N ct,í ,ст = р (i ПО ,

4) С Jo ut i] р = OU Тст i ,ст= р (outi) ,

5) С Jtt- p r] р = E Jtt] р л С Up r] р ,

где функция определяет се-

мантические значения выражений,

6) С Uf f - p r] р = E Uf f] р л С U p r] р,

7) С Ub-p r] р = E U b ] р л С U p r] р,

8) С Ui n i - p r] р = С Ui n ¡] р л С Up r] р,

9) С [оu ti — pr] p = С I о ut ¡] p Л С I p r] p,

10) С [gc ! □ g с 2] p = С [g с J p + С [gc 2 ] p,

11) ,

12) ,

13) ,

14) С [i: :p r] p = С [p r] p.

Заметим, что для обозначения операции параллельной композиции над семантическими значениями используется тот же символ, что и для параллельной композиции в языке , полагая, что из контекста всегда легко определить, к каким областям относятся операнды этой операции. В общем случае для команд и процессов будем использовать такие обозначения: С [ p r] = Р R; С [ с] = С.

Определим теперь семантическую функцию для выражений Е : Exp — 0 — Т Е S Т:

1) ,

2) ,

3)

Заметим, что в записи (либо )

среда характеризует вхождение соответствующего компонента (либо ) в программу. При этом для различных вхождений в программу компонента (либо ) значения (соответственно ) будут в общем случае различными.

Перейдем к формальному определению функции среды . Предварительно введем ряд определений и понятий.

Определение 3. Процесс p r = i : : (pr) называется помеченным меткой i. При этом метка i называется родительской для процесса pr.

Определение 4 (правило дедукции). Пусть метка является родительской для процесса . Тогда

1) если p r = p r ; pr2 либо p r = p гх | | p r2, то метка является родительской для и ;

2) если либо , то метка является родительской для ;

3) если, в свою очередь, gc =g с А □ g с 2 либо

, то метка является родительской для gc1 , g с 2, g и pr.

Определение 5. Пусть метка j является родительской для процесса . Тогда она будет прародительской (или родительской 2-го порядка) для процесса pr. При этом является родительской меткой 2-го порядка для всех компонентов процесса , рассмотренных в определении 4. Будем также говорить, что метка j будет в этом случае родительской для метки .

В общем случае понятие «родительский» можно обобщить, полагая, что, если метка является родительской 1-го порядка (или просто родительской) для процесса , а метка родительской k-го порядка для некоторого компонента процесса , то метка является родительской (к+1)-го порядка для соответствующего компонента.

Определение 6. Родословной n-го порядка (rn) для некоторого вхождения компонента назы-

вается объединение родительских меток этого компонента с 1-го по п-й включительно.

Определение 7. Родословной компонента ср г некоторой программы р г ( г00 (с р г) ) является минимальная фиксированная точка оператора Р (ср г) , то есть г00 (срг) = цР (срг) , где Р (ср г) определяется как где

г (ср г) - родительская метка 1-го порядка компонента ср г; г] - функция вида Т(Р ЬаЬ) — — Т (Р ЬаЬ ) , порождающая для любого множества меток программы М 6 Т (Р Ьа Ь ) множество их родительских меток М 6 Т (Р ЬаЬ) .

Заметим, что порождение родительской метки 1-го порядка для любого компонента с р г (или любой метки) программы р г может легко осуществляться индукцией по построению программы на основе определений 3-5.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Определение 8. Пусть Р 6 Т (С Р Я.) есть множество всех компонентов некоторой программы и М 6 Т (Р ЬаЬ) - множество всех меток этой программы. Под средой понимается функция вида Т (Р) — Т (М ) , сопоставляющая каждому подмножеству компонентов программы множество меток, являющихся объединением родословных всех компонентов

Очевидно, что, если множество М состоит из одного компонента, то .

Лемма 1. Пусть сргх и ср г2 - компоненты программы р г. Тогда р ({ср г^ср г2 }) = ц(р (ср г^ ) и и ц(Р (срг2) ) .

Доказательство. Тривиально, из определений 7 и 8.

Лемму 1 можно обобщить на любое конечное число компонентов программы. Для упрощения процесса нахождения среды вычисления компонентов программы полезно использовать лемму 2.

Лемма 2.

а) р ( р г±;р г2 ) = р (р г±) = р ( р г2 );

б) р (р ^ I I р г2) = р (р г±) = р ( р г2) ;

в) р (* ^с] ) = р ( ^с] ) = р (gс) ;

г) р (§ с ! □ §с 2) = р (§с 1) = р (§ с 2 ) ;

д) р (а — р г) = р (а;> = р (р О .

Доказательство. Тривиально, из определений

4, 8.

Пусть - подмножество компонен-

тов программы . Зададим оператор следующим образом: Р (Р ) = Ая .г (я) и г(Р ) , где

, а функция определяется, как и ранее, в определении 7.

Лемма 3. Пусть Р - подмножество компонентов программы Тогда .

Доказательство. Тривиально, методом численной индукции.

Пример 1. Пусть дана программа р г : рг = 1 :: ([Ь С±;2 :: (с3; [т3 С4])пои1:5 С5])|| 3 :: ([ои1± С6];ш4)||

4:: (с7;с8;0и1:3)||

5 :: ¡11!

и пусть .

Вводя порядок с на множестве Т (Р ЬаЬ ) как отношение включения множеств и обозначая пустое множество меток через , имеем ( Р(Р) ) 0 ( 0) = { } = г0 (р ) , ( Р(Р) ) 1 ( 0) = г ( 0) и г ( Р) = г (Р) = {2 ,4} = г 1 ( Р) , ( Р(Р)) 2 ( 0) = г ( г 1 ( Р) ) и г (Р) = { 1,2 ,4} = г2 ( Р) ,

(Р(Р))3(0) = л(г3(Р)) и г(Р) = {1,2,4} = г3(Р). Таким образом, получена фиксированная точка, а следовательно, р ({с4 , ои1:3 }) = { 1 ,2 ,4}.

Строго говоря, для того чтобы минимальная фиксированная точка оператора существовала, необходимо доказать непрерывность этого оператора. Нетрудно показать, что операции г , г и и монотонны. Из монотонности этих операций и конечности областей, на которых эти операции определены (в силу конечности программы р г), следует непрерывность этих операций. Учитывая также известный из теории минимальной фиксированной точки результат, что операция X-абстракции также является непрерывной, получаем непрерывность оператора .

Таким образом, введенные выше определения родословной для компонента программы и подмножества компонентов являются корректными. Исследуем подробнее семантическую область и операции над элементами этой области. Обозначим через множество с типичным элементом . В дальнейшем используем как параметризованные, так и непараметризованные семантические области, полагая в последнем случае, что с каждым элементом непараметризованной области всегда может быть ассоциирован параметр ,

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

Свойства операции над элементами семантической области опишем системой аксиом (схем аксиом) и правил вывода. Систему аксиом зададим как набор блоков, каждый из которых описывает определенные свойства семантических объектов.

Аксиоматизация свойств семантической области. Для обозначения элементов семантической области используем метапеременные .

Аксиомы, задающие базисные свойства операций о ,л и +:

(А1) X + X = X, (А2) X + У = У + X,

(A3) X + (Y + Z ) = (X + Y) + Z ,

(A4) (X + Y)°Z = X°Z+Y°Z ,

(A5) (X о Y) о Z = X о (Y о Z) ,

(A6) т о X = X,

(A7) X о т = X,

(A8) L0О Р о X = LО О Р,

(A9) 0 о X = 0 ,

(A10) X + 0 = X,

(A11) ( р л X) оY = р л (X о Y) ,

(A12) ,

(A13) .

Для описания свойств параллельной композиции используем операции и . Выражение означает то же самое, что и , за исключением того, что первым шагом будет действие из . Для определения операции введем функцию взаимодействия . Частично оп-

ределенную функцию С зададим следующим образом:

Yij (Yji), если d1 = IN,. (OUT,. )и

с (d;,d; ) =

J ест;

d2 = IN,

I (OUT„ I)

:,J\ °2 'J/

и iест,

0 в противном случае.

Из этого определения следует: если хотя бы один из аргументов функции С не принадлежит области либо оба аргумента

принадлежат одной из областей или

Р ОС om одновременно, то C (d1 ,d 2) = 0. Кроме того, взаимодействие и возможно

лишь в том случае, если , а , то есть

исходные команды и , значениями которых являются и соответственно, могут взаимодействовать друг с другом.

Функция С является коммутативной; элемент играет роль нулевого элемента: С С ( d 2,d 1) , С (d ',0) = 0.

Операцию | | определим следующими аксиомами:

(Р1) X | | Y = X [Y + Y [X + X | Y, (Р2) X | | (Y| | Z ) = (X | | Y) | | Z .

Таким образом, определенная операция параллельной композиции является ассоциативной (Р2). Кроме того, в дальнейшем из коммутативности операции | (С9) и аксиомы Р1 будет следовать коммутативность операции . Операции и , с помощью которых определена операция , характеризуются блоками аксиом.

Операция определяется следующим блоком аксиом:

(ci) d 1 | d 2 = С ( d l,d 2) ,

(С2) а 1 | ( а2 о X) = ( а 1 | а2 ) о X, если а2 Ф т, (С3) (а1 ° X) | (а2 ° Y) = ( а1 | а2) ° (X | | Y),

е сл и а 1 Ф т, а2 Ф т, (С4) а | ( р л X) = (а | р ) л X, (С5) ( а о X) | ( р л Y) = (а | р) л (X | | Y), если ,

(С6) ( р 1 | ( р 2 л У) = ( р 1 | р 2 ) л (X | | У) , (С7) (X + У) | Ъ = (X | Ъ) + ( У | Ъ) , (С8) т о X | У = X | У, (С9) X | У = У | X.

Операция определяется блоком аксиом: ^1) а [X = а о X

^2) а о X [У = а о (X | | У) , если а * т,

(Р3) ( р л^ [У = р л (X I I У) ,

^4) т о X [У = X [У, ^5) (X + У) [ Ъ = X [ Ъ + У [ Ъ , ^6) (X | У) [ Ъ=X | ( У [ Ъ ) , ^7) (X [ У) [Ъ = X [ (У | | Ъ) .

Отметим, что формально аксиомы С8 и F4 не являются независимыми и могут быть выведены из аксиомы А6, однако для характеризации свойств операций и их полезно выделить отдельно.

Введем также операции абстракции (А В 5Н) и инкапсуляции (Е N СН), где Н - множество, параметризующее эти операции. Операции и

определены на множестве и имеют вид .

Для произвольного , где

, операции и характери-

зуются следующими блоками аксиом: ^1) ав5н(а ') = а ', если а ' е н , ^2) А В5Н (а) = т, если а 6 Н, ^3) АВ5Н( р) = Т ,если р 6 Н, (AB4) АВ5Н(X + У) = АВ 5Н (X) + АВ5Н (У) , ^5) АВ5Н(X о У) = АВ5Н(X) о АВ 5Н (У) , ^6) АВ5Н (р лУ) = АВ5Н (р) л АВ5Н (У) ;

(Б1) е N сн (а ') = а ', если а ' е н ,

(Б2) Е N СН (а) = 0 , если а 6 Н , (Б3) Е N СН ( р) = Р, если р 6 Н , (Б4) Е N СН (X + У) = ЕN СН (X) + Е N СН (У) , (Б5) Е N СН (xоУ) = Е N СН (X) о ЕN СН (у) , (Б6) Е N Сн (р л У) = Е N Сн (р) л Е N Сн (У) . Введем также в предлагаемую формальную систему правило замены.

(СН) Пусть входит в и . Тогда,

если получено из путем замены на , то ^ =

Теорема 1. Формальная система, состоящая из блоков А1-А13, P1-P2, C1-C9, F1-F7 и правил вывода СН, непротиворечива.

Доказательство. Тривиально, путем непосредственной проверки того факта, что, если некоторая ВП принадлежит левой части какой-либо аксиомы, то она принадлежит и правой части, и наоборот. Непосредственно проверяется и правило вывода СН.

Эквациональная характеризация семантических значений

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

программ на возможность появления исключительных ситуаций является затруднительным.

Покажем, что для любого элемента s рст £ S Рст существует представление его в виде конечной системы рекурсивных уравнений.

Прежде чем определить систему уравнений, введем несколько вспомогательных определений.

Определение 9. Пусть а £ ACT = AC Т I ON \{т, 0 } и р £ Т Е S = Т Е S Т \ { F , 0 } и Р RE F = A C Т U U Т Е S. Частичные функции р re fix : S Рст — Р RE F и определяются следующей таблицей:

Заметим, что для выражения ер „ = Р ЛХ понятия префикса и суффикса не определяются, поскольку Р лх = 0 (аксиома А12).

Определение 10. Множество ВП Р 6 5 Рст эква-ционально характеризуемо, если имеется конечное множество Рх.Рг , ■ ■ . ,Рп65 Рст, таких, что Р = Р1 и для любого I ( 1 < I < п ):

Р = £]6 N О] ° Рч + £кбК р1кЛ Р1к + 8 (РО , (*)

где ,

V I 8 ( Р) с Т (А С Т' и { ШО Р } ) , где АС Т' = АСТ IО N \{т}, V I V] 3 1 6 N , что Рч = Р„ и V I Vк 3 г 6 N , что Р1к = Рг.

При записи уравнений вида ( * ) используем нотацию £ ] 6 Х] для суммы Хj 1 + Хj 2 + ■ . . + Хj п, где N = 0 1, ] ......] п}. Запись £ ] 6 0Х] = 0.

Рассмотрим пример представления семантического значения в языке Ь с помощью систем уравнений .

Пример 2: р г = 1 : : [И — 1п 2 ПИ — ои1:2] | | 2 : : ои^.

В соответствии с семантическим определением имеем С [рг] р = С [1 : :р г ] р | | С [2: :р г ] р, где р г-! = [И — I п2 □ И — ои1:2 ] , р г2 = ои^. С[1 :: ргх]р = С|[рг1]р = С|[11-»т2]р +

+С [И - ои1:2] р = Е[И]рлС[т2]р + Е[И]рлС [ои1:2]р = = Тст 1 Л I N „2 , 2 + Тст 3Л О и ТСТ4, 2 , где .

Опуская ст там, где это возможно, и используя нотацию, где записи I и {I} эквивалентны, получим .

Аналогично предыдущему получаем

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

С [ 2 : :р г2] р = О и Т2 , 1.

Таким образом, имеем С [р г] р = ( Т л I N 1 , 2 + +Т Л О иТ1,2) | | О иТ2,1.

Представим в виде системы уравнений.

Обозначим через . Тогда

Р! = (Т л ш1Д + тл оит12) [ оит2Д + + 0ит2д[ (Т л ш12 + тл оит12) + +(Т л 2 + Т л 6ит12) I 0ит2 ! =

= (тлш;,2Ноит2Д +

+(т л out12)[ 0ит2д + 0ит2д о (т in12 +

+тл оит1Д) +

+(Т л IN1j2)| 0UT24 + (Т л OUT12)| оит2Д = = Т л (INW|| оит2д) + тл (оит1Д|| оит2Д) + + 0ит2д о (Т л INt2 + Т л OUTt2) + +(Т| оит2Д)л IN12 + (Т| оит2Д)л OUT12 = = ТЛР2 + ТЛР3 + оит2Д ° Р4 + 0 л IN1i2 + 0Л оит12 = = ТЛР2 + Т ЛР3 + СШТ2д ° Р4 + 0 + 0 = ТЛР2 + +Т л Р3 + О и Т21 о Р4, Р2 = ш12ц ои'т2Д = in12[ оит2Д + + OUT24'LIN1j2 + IN1j2|OUT24 = '

= IN1j2 ° 0ит2д + 6ит2д о Ш1Д + у21 =

=I N х 2 о Р5+ О U Т2, 1оР6+у 2 , 1.

Далее получаем Р3 = OUTlj2 о OUT21 + OUT21 о OUTlj2 + +0ит12|0'ит2д = OUT12 о Р5 + 0ит2д о Р7 + 0 = = О UTt 2 о Р5 + О и Т2, 1 о Р7, Р4 = Т Л I N i 2 + Т л О и Т± 2 = Т л Р6 + Т л Р7, Р5 = О и Т2,1,' Рб = I N 1,2 , Р7 = О и Т12.

Данная система уравнений задает множество ВП, сопоставляемое программе р г в качестве априорного семантического значения. Это значение может использоваться, в свою очередь, для получения априорного семантического значения программы р г ', в которую программа р г входит как составная часть. В этом случае элементы I N ст,, и Ои ТстЬ входящие в ВП априорного семантического значения , могут взаимодействовать с соответствующими элементами и , входящими в р г', но не входящими в р г.

Для получения же семантического значения программы , не являющейся компонентой другой программы, применим операцию инкапсуляции Е N С н, где Н включает в себя все элементы вида и . Применяя также аксиомы

Е 1 - Е 6 , получим

pi = ENCh(pi) = taench(p2) + тлшсн(рз) +

+0 о Р4 = Т л р2 + Т л рз + 0 = Т л р2 + Т л рз,

р2 = 0 о Е N Сн (Р5 ) + 0 о Е N Сн (Рб ) + У 2, 1 = У 2, 1, Р3 = 0 о ENCh(P5) + 0 0 ENCh(P7) = 0. Таким образом, выводим следующую систему уравнений:

р! = т л р2 + т л рз , р2 = У21, рз = 0.

Наличие 0 в системе уравнений, характеризующих семантическое значение, соответствует ситуации вынужденного останова (блокировки) ВП. В данном примере эта ситуация соответствует выбору программы для выполнения второй альтернативы процесса 1.

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

spn prefix(spn) suffix(spn)

а 0 X Т о X рлх а prefix(X) Р X suffix(X) X

Доказательство. Методом индукции по структуре P.

Базис. Для Р = d' , где d ' £ D ', эквациональная характеризация вытекает тривиально.

Индуктивный шаг. Пусть Р 1 £ S Р и Р 2 £ S Р будут эквационально характеризуемы. Тогда необходимо доказать, что Р 1 ° Р 2 , ß л Р 1 , Р 1 + Р 2 , и эквационально характеризуемы. По предположению индукции существуют множества и ,

такие, что и

Pli = ZjEN «tj О Plij + £kEN ßikAPlik + S(Pli), (**) i = 1, 2, ..., п, и

P2i = ZrEN «ir ° P2ir + ZpEN ßipAP2ip + S(P2i), (***) i = 1, 2, ..., m.

1. Р 1 о Р 2 . Обозначим

Л (u, vx.....vr) = Plu о P2 + P2V1 + ... + P2Vr (1)

(u = 0 , 1 ,. . ., n , r > 0 ,1 < Vj < m , i = 1 ,2 ,. . ., r) .

Запишем Р 1 0 о Р 2 + Р 2 V + . . . + Р 2 Vr вместо Р 2 Vl + . . .+ Р 2 Vr. Количество выражений (1) конечно. По индуктивному предположению имеем

Л (u,v1; ...,vr) = = ŒjEN auj ° Pluj + ZkEN ßuk ЛР1ик + 8(P1U)) ° P2 +

+ SjEN aVlj » P2Vlj + SkEN ßVlkAP2Vlk + S(P2Vl) + ...

+ S j£ N «Vri о Р2vJ + Sk£N ß^k ЛР2 Vrk + S ( Р2Vr) .

Применяя аксиомы А4, А2, А5 и А11, получаем

= £j6N «uj ° Pluj ° P2 + EkeN ßukA(Pluk ° P2) +

jeN^jj ° P2Vlj + ZikeN ßv1kAP2y1k + ■■■ +

+ HjeN «vrj ° P2Vrj + UkeN ßvrkAP2vrk + +8 (P lu) о P 2 + 8 (P 2 Vl) + 8 (P 2 Vr) . Если 8 (P lu) = £j eN8 uj, где 8 ^ 6 E U { 1,0,т} , то применим еще раз аксиому А4, заменяя в Ii (u, vl,. . ., vr) слагаемое 8 (P lu) о P 2 выражением £ j6 N 8uj о P 2 , причем, если 8 uj = т, то P 2 заменяем его представлением для из .

Применяя далее аксиомы А1, А2, A3 и А5, получим

= üjEN auj ° Puj + ükEN ßuk APuk +

+ Xq6NXj6N«qj ° P2qj + Xq6NXj6N ßqk AP2qk + 6(u, Vj, ..., Vr),

где все выражения Puj, Pqj, Puk и Pqk входят в (1). Поскольку i| ( l ,l ) = P l oP2 , получаем, что P l о P 2 эквационально характеризуемо.

2. ß Л P l . Тривиальный случай. Тогда к конечной системе уравнений для P l = P l l добавляется лишь одно уравнение: P = Pl = ß лP l ^ откуда следует эквациональная характеризуемость выражения ß л P l.

3. P l + P 2. Обозначим

Ц (u,v) = P l u + P 2 v (2)

(u = 0 , l , . . . , n ; v = 0 , l , . . . , m) .

Запишем (P l 0 + P2 v) вместо P 2 v и (P lu + P 2 0) вместо P l u. Количество выражений (2) конечно. По индуктивному предположению имеем S(u,v) = (sjeNauj ° Pluj + SkeN ß„kAPluk + S(P1„)) +

р^рг^ + всрг,)).

Используя аксиомы А1, А2, А3, получим V) = «щ ° Р1щ + «уг ° Р2ет +

+ Ек6И р ик л Р 1 ик + 2р 6 N рурл Р 2 ^ + 8 (и, V) , где все выражения и входят в

(2). Поскольку , получаем, что Р 1 + Р 2 эквационально характеризуемо.

4. . Обозначим

г (и, V) = Р 1 и | | Р 2 V (3)

(и = 0 ,1 ,. . ,,п ^ = 0 , 1 ,. . ,,т) .

Запишем вместо и

(Р 1 и | | Р 2 0 ) вместо Р 1 и. Количество выражений

(3) конечно. По индуктивному предположению имеем

Л(и,У) = аи) ° Р1„, + ЕкЕ^икАР1ик + в(Р1и)) ||

| | (2 г 6 о Р 2 vг + 2 р 6 N PvрЛ Р 2 vр + 8 (Р 2 V) ). Применяя аксиому Р1, а затем аксиомы - - - , получим:

Л(и.у) =2,6Маи,оСР1и,||Р2¥) + + ИкЕ\ Рик

л(Р1ик||Р2у) + 8(Р1и)°Р2у + + Иуг ° (Р2„||Р1и) +2р^РУрл(Р2ур||Р1и) + +8(Р2У) о Р1и + + £|Ем(аи)|аУ1.) ° (Р1и)||Р2уг) +

+ 2^Саи,|Рч>)»СР1и,||Р2ч>) +

рЕ\

+ ^(Рик|а„)л(Р1ик1|Р2„) + + ^(Рик|Рур)°(Р1ик1|Р2ур) +

рЕ\

(8(Р1и)|ауг)оР2уг + + 2ре„(8(Р1и)|РУГ)лР2ур + + 2^(8(Р2у)|а^)оР1и) +

+ 2 к6 N (8 (Р 2 V) | рик) л Р 1 ик + 8 (Р 1и) | 8 (Р 2 V) .

Если 8 (Р 1 и) = 2¡6\8 и и 8 (Р 2 V;) =2S6N8vS, то, применяя аксиомы С7, С9, А4, А5, а затем аксиомы - , получим

Л(и,у) = йеиСЦ о Р; + ^„р^ + 8(и,у), где все и входят в (3). Поскольку

, получаем, что эквационально

характеризуемо.

5.

^(0) = Р1+,

«Щ.....иг) = (Р1и1+ ... + Р1иг)°Р1+ (4)

(г > 0 , 1 < и 1 < п, 1 = 1 ,2 ,. . ., г) .

Количество выражений (4) конечно. По индуктивному предположению имеем

Ç(0) = Œj.

' Pili +2kENPlkAPllk + «(Pli))4

Поскольку по определению имеем, что Р 1+ есть минимальная фиксированная точка оператора F (Р 1 ) = Aq. Р1 о q + v, где

LOO Р, есл и £ 6 Р 1 , (Д в пр оти в но м случ ае, то, подставляя Р 1 + в оператор F(P1), имеем

PI = Р1\£ и "U =

F(P1)(P1+) = PI о Р1+ + V = Р1+.

Отсюда получаем следующее свойство для фиксированной точки Р 1 +: Р 1 + = Р 1 ° Р 1 + + и.

Используя это свойство, имеем ^ ( 0) = = (Sj gN «и ° Р 1 i + SkE N Р i k ЛР 1 1 к + 8 ( Р 1 1 ) ) ° Р 1 + + где 8 (Р 1 J = 8 (Р 10 \ £, то есть 8 (Р 11) =

= S р gn8 1 р и V р 8 1 р í £.

Применяя аксиомы А4, А5 и А11, получим

?(0) = ZjeNaljo(PiljoPi+) +

+ S kE nP 1 кЛ Р 1 1 к°Р 1 + + + UpeN 8ip ° Р1+ + U =

= HjeN alj ° Píj + HkeN PikAPík + 8 (0 ) , (5) где все Р 1 1 j, Р 11к входят в (4), а 8 (0 ) = и , поскольку и может принимать лишь одно из трех значений: LOO Р, £, 0, что соответствует определению .

Для 5 (u -р. . ., иг) по индуктивному предположению имеем

+ Sk6NPu1k/4Pu1k+8(PUl) + - + + IjEN aurj о P„rJ + IkEN Pu.-k'Pu.-k + 8(Pj) o P1+ .

Используя аксиомы А4, А5, А6, А8, А11, получаем

+ Sk6N PUlkAPUlk°Pl+ +- +

+ SkE N Purk ЛРигк ° Р 1 + + ( 8 ( Ри J + . ■ ■ + 8 ( Риг) ) ° Р 1 + . Рассмотрим последнее слагаемое (8 (Ри1) + .

Если сумма ( 8 ( Ри1) + . . . + 8 ( Р%) ) содержит £, то заменяем в соответствующем слагаемом выражение Р 1+ его представлением (5).

Применяя вновь аксиому А4, получим 5(11!,..., ur) = EieN £j6N «¡j o PA +

+ S 1 E N S kE N Pl к Л Р/к + 8 ( и 1 , . . ., и J ,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

где все , входят в (4).

Таким образом, получаем, что эквацио-нально характеризуемо. Теорема полностью доказана.

Программная реализация

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

рг = 1 ::* [ ои1:2 -> сг] || 2 ::* [ тг -> с2] будут построены семантическое значение

с[рг]р = (оит^-С! )+||(Ш2ДЛС2)+ и соответствующая система рекурсивных уравнений:

Рх = У1,2лР2;

Р2 = Сх о рз + с2 о р4;

Р3 = С2 о Р1;

Р4 = С1 о Р1 .

Таким образом, в работе предложен метод задания процессной семантики схем распределенных программ и показано, что сопоставляемые программам семантические значения могут быть представлены системами рекурсивных уравнений. Это дает возможность решить ряд как теоретических, так и практических задач.

Разработанная программа представления семантических значений в виде систем рекурсивных уравнений существенно упрощает и автоматизирует процесс анализа семантических значений распределенных программ.

Литература

1. Кораблин Ю.П. Семантика языков распределенного программирования. М.: Изд-во МЭИ, 1996. 102 с.

2. Кораблин Ю.П. Семантика языков программирования. М.: Изд-во МЭИ, 1992. 102 с.

УДК 621.396.96

ОПТИМИЗАЦИЯ РАЗМЕЩЕНИЯ СРЕДСТВ ТРАЕКТОРНЫХ ИЗМЕРЕНИЙ ГЕНЕТИЧЕСКИМИ АЛГОРИТМАМИ

А.А. Ковалев, к.т.н. (НПК «ТРИСТАН», г. Москва, kaaswsys@mail.ru)

Описан подход к оптимальному размещению средств траекторных измерений с применением генетических алгоритмов. Предложенный подход иллюстрируется результатами математического моделирования.

Ключевые слова: оптимизация, траекторные измерения, генетический алгоритм, вектор состояния, геодезические координаты.

Задача оптимального размещения средств тра-екторных измерений формально сводится к минимизации (или максимизации) целевой функции,

характеризующей эффективность совместной обработки данных. При этом в общем случае с каждым из средств траекторных измерений может

i Надоели баннеры? Вы всегда можете отключить рекламу.