Automata-based Programming (Shalyto's Approach) - State-Based Programming

State-Based Programming

Henceforth automata approach was spread to the event-based (reactive) systems (Haryl 1987). In such systems all of the limitations mentioned above are taken away. It is obvious from the name of these systems that events are used among the input actions. Output actions could be represented by arbitrary functions. Any real-time operating system could be used as an environment.

The automata implementation of event-based systems was made with the help of the procedural approach to software development (Shalyto 2001a) (Shalyto 2001b), hence the name “state-based programming”.

When using this method, output actions are assigned to the arcs, loops or nodes of the transition graphs (in general case mixed Moore-Mealy automata are to be used (Shalyto 1998)). This allows representing in a compact form the sequences of actions, which are the reactions to the corresponding input actions.

One of the features of such approach to programming for the reactive systems is that the centralization of program logic is achieved by liquidation of logic in the event handlers and forming of system of interacting automata, which are called from these handlers (Tukkel 2001). Automata in such system can interact by nesting, by ability to call each other and with the help of state numbers interchange.

Another important feature of this approach is that automata in it are used thrice: for specification, for implementation (they remain in the source code) and for drawing up the protocol, which is performed, as said above, in terms of automata. The latter allows to verify the propriety of automata system functioning. Logging is performed automatically on the base of created program; it can be used for debugging of programs with complicated behavior.

Also this approach allows effective documenting of the decisions made during design process, especially those related to formalization of program behavior (Tukkel 2002).

All this allowed to start the Foundation for open project documentation (Shalyto 2003), in the context of which many projects on perfecting of automata-based programming (Automata programming homepage) are being developed.

Read more about this topic:  Automata-based Programming (Shalyto's Approach)

Famous quotes containing the word programming:

    If there is a price to pay for the privilege of spending the early years of child rearing in the driver’s seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.
    Melinda M. Marshall (20th century)