Реализация процессов



 

Любой процесс Р, записанный с помощью введенных обозначений, можно представить в виде (х: В F (х)), где F — функция, ставящая в соответствие множеству символов множество процессов. Множество В может быть пустым (в случае P = СТОП), может содержать только одинэлемент (в случае префикса) или — более одного элемента (в случае выбора).

Таким образом, каждый процесс можно рассматривать как функцию F с областью определения В (множество начальных событий), и областью значения { F (й) | x B }.

Такой подход позволяет представить любой процесс как функцию в некотором подходящем функциональном языке программирования, например в ЛИСПе. Каждое событие из алфавита процесса представлено атомом ("мон"). При этом если символ не может быть начальным событием процесса, то результатом функции будет специальный символ "BLEEP". Например, для процесса (х: {} СТОП (х)) значением функции будет "BLEEP", что обозначим

СТОП = lx. "BLEEP".

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

Пример 3.7. Функция, реализующая процесс (c Р) может иметь вид:

префикс (c, Р) = l х. if x = с then Р else "BLEEP".

Пример 3.8. Функция, реализующая двуместный выбор (c Р | d Q) может иметь вид:

выбор (c, d, Р, Q) = l х. if x = с then Р else if x = d then Q else "BLEEP".

Оказывается возможным прямое кодирование рекурсивных уравнений:

Пример 3.9. ТАП = префикс("мон", префикс("шок", ТАП)).

 

Протоколы

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

Будем обозначать протокол последовательностью символов, разделенной запятыми и заключенной в угловые скобки, например, протокол < х, у > состоит из двух событий — х и следующего за ним у, < x > - cостоит из одного события х, а протокол<> - пустой протокол.

Пример 3.10. Протокол простого торгового автомата ТАП в момент завершения обслуживания первых двух покупателей: < мон, шок, мон,шок >.

Протокол того же автомата перед тем, как второй покупатель вынул свою шоколадку: < мон, шок, мон >.

 


Дата добавления: 2015-12-20; просмотров: 19; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!