Стили и методы программирования


Основные структуры автоматного программирования


Информационное пространство всех блоков и процедур при автоматном программировании в первом приближении одно и то же: состояния системы, моделируемой совокупностью программных действий. Но на самом деле многие блоки либо процедуры работают с подсистемами. Подсистемы, ввиду их автономности, могут иметь характеристики, прямо недоступные для общей системы, и ограниченный доступ к общему системному пространству данных. Более того, подсистемы могут общаться прямо, в обход иерархически вышестоящей системы (см. рис. 9.2). Таким образом, структура информационного пространства при автоматном программировании в общих чертах соответствует той, которая навязывается современными системами с развитой модульностью3). В системах модульности есть понятия, предоставляемые для пользования другими модулями, есть модули, которые автоматически получают доступ ко всем понятиям дружественного модуля, и есть интерфейсы между модулями.

Информационное пространство систем

Рис. 9.2.  Информационное пространство систем

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

Исторически первой моделью автоматного программирования, использованной как на практике, так и для теоретических исследований, было представление программы в виде блок-схемы (см., напр., рис. 9.3), узлы которой являлись состояниями. Узлы блок-схемы делятся на пять типов:

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




Начало  Назад  Вперед



Книжный магазин