75
Глава 3. Сети конечных автоматов
В текущей главе мы рассмотрим схемы создания парал-
лельных программ на основе сетей конечных автоматов. Осно-
ва параллелизма такого подхода заключается в том, что каж-
дый автомат в сети является автономным элементом и не свя-
зан с другими автоматами, кроме как входными и выходными
значениями на каждом такте. Таким образом, на
протяжении
каждого такта все автоматы могут работать параллельно.
Разумеется, для реализации такого подхода придется при-
бегнуть к методам автоматного программирования (Automata-
Based Programming, State-Based Programming) для преобразо-
вания алгоритма программы к автоматному виду. Существует
немало работ, посвященных этой теме, в частности, рассмот-
рению SWITCH-технологии [24, 25, 29], КА-технологии [19] и
преобразованию алгоритмов в автоматные [28, 30], поэтому мы
не будем
останавливаться на ней. Скажем лишь, что есть не-
мало областей программирования, в которых автоматный под-
ход может существенно облегчить проектирование и реализа-
цию.
3.1 Программирование конечных автоматов
Изложим вкратце основы автоматного программирования.
Описания конечного автомата (Finite-State Machine, Finite-State
Automaton) разнятся в деталях от изда ия к изданию в зависи-
мости от области рименен я, в частности о ориентации на
программную или аппаратную реализацию. Более того, описа-
ния автомата даже при ориентации на прогр мм-
ную реализа ию особенно среди сравнительно недавних пуб-
ликаций [9, 13].
н
п и , т
различаются а
ц ,
Мы
здесь приведем далеко не новое очень обобщенное
описание конечного автомата [22], достаточное для понимания
принципов создания сетей конечных автоматов для примене-
ния в параллельном программировании. Отметим также, что
автомат Мура считается более удобным для аппаратной реали-
зации [41], для программной же нет явных предпочтений, од-
нако чаще используется автомат Мили или смешанный авто
-