Automata-based programming
Automata-Based Programming is one of the technologies of synchronous programming, which was invented in Europe and is used when developing control systems for critical objects. In automata-based programming finite state machine's transition graphs are used for computer software specification, implementation, debugging and documentation.
Main Features
In recent years great attention has been paid to the development of the technology of programming for the embedded systems and real-time systems. These systems have special requirements for the quality of software. One of the most well known approaches for this field of tasks is synchronous programming.
Simultaneously with the progress of synchronous programming in Europe, in Russia an approach called “automata-based programming” or “state-based programming” is being created. This method could be considered as a type of synchronous programming.
The term event is beeing used wider and wider in programming. It has become one of the main terms in software development. The offered approach is based on the term “state”. After introduction of the term “input action”, which could be an input variable or an event, the term “automaton without outputs” could be brought in. After addition of the term “output action”, the term “automaton” could be brought in. 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”.
The feature of this approach is that automata, used for developing, are defined with the help of transition graphs. For distinguishing of the nodes of these graphs the term “state coding” is to be introduced. When using “multiple state coding” with the help of single variable it is possible to distinguish amount of states which is equal to the amount of variables values. This allows to introduce in programming the term “program observability”.
Using the offered approach, programming is to be performed using the concept of “state”, not the concept of “flag variables”. It allows to understand and specify the task and its parts (subtasks) better.
It is necessary to note that it automata-based programming debug is performed with the help of drawing up the protocols (logging) in the terms of automata.
In this approach there is a formal and isomorphic method of transfer from the transition graph to the software source code. So when using high-level programming languages, the simpliest way is to use construction which is similar to construction “switch” of the C programming language. That is why the first implementation of “automata-based programming” was called “SWITCH-Technology”.
Nowadays automata-based programming is been developed in several ways, for different types of task to be solved and for various type of computing devices.
Logical Control
In 1996 Russian Fund for Fundamental Investigations in the context of publishing project #96-01-14066 supports the publishing of book “Switch - technology. Algorithmization and programming of tasks of logical control” by Anatoly Shalyto. Offered technology was described in this book, being applied to the systems of logical control, in which there are no events, input and output actions are binary variables and operating system is working in the scanning mode. Systems of this class as usual are to be implemented on programmable logic controllers, which have relatively little memory and programming is to be performed using specialized languages (for example, the language of functional blocks). Anatoly Shalyto offered formal methods of program developing for such kind of devices. These methods are based on the giving specification for the developing project with the help of set of connected transition graphs. The book also shows the opportunities which are given by the language of transition graphs comparing with “Graphset” language.