Automata-based Programming (Shalyto's Approach) - Main Features

Main Features

In recent years great attention has been paid to the development of the technology of programming for embedded systems and real-time systems. These systems have special requirements for the quality of software. One of the best known approaches for this field of tasks is synchronous programming (Benveniste 2003) (Shopyrin 2004).

Simultaneously with the advance of synchronous programming in Europe, an approach to software development for crucial systems called automata-based programming or state-based programming (Shalyto 1998) was being created in Russia.

The term event is being used more and more widely in programming; recently it has become one of the most commonly used terms in software development. As opposed to it, the offered approach is based on the term state (State-Driven Architecture). After introduction of the term input action, which could denote an input variable or an event, the term automaton without outputs might be brought in. After adding the term output action, the term “automaton” might be used. It is the finite deterministic automaton.

That is why, the sort of programming, which is based on this term, was called “automata-based programming”. So the process of software creation could be named “automata software design” (Shalyto 2000).

The feature of this approach is that automata used for development are defined with the help of transition graphs. In order to distinguish the nodes of these graphs the term state coding has been introduced. With multivalued state coding a single variable can be used to distinguish states of automaton, the number of states is equal to the number of values this variable can take on. This allowed introducing of the term program observability (that is, the value of the state variable can be checked).

Using the concept of “state” in contrast to the concepts of “events” and “variables”, allows one to understand and to specify the task and its parts (subtasks) more clearly.

It is necessary to note that using automata-based programming implies debugging by drawing up the protocols (logging) in terms of automata.

For this approach there is a formal and isomorphic method of transforming from the transition graph to the software source code. So when using high-level programming languages, the simplest way is to use a construct which is similar to the switch construct of the C programming language. That is why the first implementation of automata-based programming was called “Switch-Technology”. Additional information about automata-based programming can be found in the “Switch-technology” article.

Nowadays automata-based programming has been developed in several ways, for different types of task to be solved and for various type of computing devices.

Russian registration certificate was issued for the Automata-based programming core and for the Automata-based programming plug-in for Eclipse IDE.

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

Famous quotes containing the words main and/or features:

    I know that some will have hard thoughts of me, when they hear their Christ named beside my Buddha, yet I am sure that I am willing they should love their Christ more than my Buddha, for the love is the main thing, and I like him too.
    Henry David Thoreau (1817–1862)

    The features of our face are hardly more than gestures which force of habit made permanent. Nature, like the destruction of Pompeii, like the metamorphosis of a nymph into a tree, has arrested us in an accustomed movement.
    Marcel Proust (1871–1922)