Article in English
For citation:
Novikov F.A., Afanasieva I.V., Fedorchenko L.N., Kharisova T.A. Implementation of cooperative interaction of automaton objects. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2026, vol. 26, no. 1, pp. 154–164. doi: 10.17586/2226-1494-2026-26-1-154-164
Abstract
This paper addresses the issues related to the implementation of the interaction of automaton objects formalized using specialized state transition graphs. This representation approach, similar to state machine diagrams in Unified Modeling Language, significantly simplifies the development and subsequent maintenance of software. Each automaton object manages specific behavioral aspects of the system while their interaction through the corresponding interfaces ensures the achievement of common goals. Visualization of these objects is implemented using the CIAO (Cooperative Interaction of Automaton Objects) v.3 automata-based programming language. The implementation of the interaction mechanism involves developing a software system that supports the joint execution and interaction of automaton objects. To implement the proposed automaton objects interaction, the bootstrapping technique, known since the mid-1960s, is used. This method involves creating a compiler or interpreter in the same language for which it is being developed. The stepwise refinement method is used to construct the initial interpreter. Subsequently, using transformation patterns from imperative to automata-based constructs, the interpreter is modified into a system of interacting automaton objects, thus achieving the result of the bootstrapping process. This research yielded data structures for representing CIAO v.3 programs. The interpreter’s structure was described in pseudocode using the stepwise refinement method. A set of patterns is proposed to implement imperative constructs through automata-based programming techniques. The structure of the CIAO v.3 language interpreter is presented using CIAO v.3 itself. A Python-based interpreter prototype was realized. The conducted study demonstrates the successful software self-implementation of the CIAO v.3 using the bootstrapping method. The CIAO v.3 language provides efficient design and implementation of software solutions, and also guarantees fault-tolerant component interaction due to the ability to automatically check the properties of CIAO v.3 programs. The proposed approach can be utilized for implementing domain-specific languages in multi-agent systems and human-machine interaction interfaces.
Keywords: automata-based programming, state transition graph, UML, finite state machine diagram, bootstrapping method, stepwise refinement method, transformation of imperative programs into automata-based programs
Acknowledgements. The author, L.N. Fedorchenko, carried out the research within the framework of the State Research Assignment (topic No. FFZF-2025-0006).
References
1. Novikov F.A., Afanasieva I.V., Fedorchenko L.N., Kharisova T.A. Specification language for automatаbased objects cooperation.
Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2024, vol. 24, no. 6, pp. 1035–1043.
https://doi.org/10.17586/2226-1494-2024-24-6-1035-1043
2. Novikov F.A., Afanasieva I.V., Fedorchenko L.N., Kharisova T.A. Verification of the formal requirements for the system behavior based on automaton objects.
Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2025, vol. 25, no. 2, pp. 328–338.
https://doi.org/10.17586/2226-1494-2025-25-2-328-338
3. Shalyto A.A Automata-based programming paradigm. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2008, vol. 53, pp. 3–23. (in Russian)
4. Shalyto A.A. Switch-Technology. Algorithmization and Programming of the Logical Control Problems. St. Petersburg, Nauka Publ., 1998, 617 p. (in Russian)
5. Polikarpova N.I., Shalyto A.A. Automata-Based Programming. St. Petersburg, Piter Publ., 2011, 176 p. (in Russian)
6. Gurov V.S., Mazin M.A., Narvsky A.S., Shalyto A.A. Tools for Support of Automata-Based Programming.
Programming and Computer Software, 2007, vol. 33, no. 6, pp. 343–355.
https://doi.org/10.1134/s0361768807060059
7. Novikov F.A. Visual designing of programs. Information and Control Systems, 2005, no. 6 (19), pp. 9–22. (in Russian)
8. Afanasieva I., Novikov F., Fedorchenko L. Methodology for development of event-driven software systems using CIAO specification language.
SPIIRAS Proceedings, 2020, vol. 19, no. 3, pp. 481–514. (in Russian)
https://doi.org/10.15622/sp.2020.19.3.1
9. Dahl O.-J., Dijkstra E.W., Hoare C.A.R. Structured Programming. Academic Press, 1972, 220 p.
10. Fedorchenko L., Baranov S. Equivalent transformations and regularization in context-free grammars.
Cybernetics and Information Technologies, 2015, vol. 14, no. 4, pp. 29–44.
https://doi.org/10.1515/cait-2014-0003
11. Levine J.R., Mason T., Brown D. Lex & Yacc. O’Reilly Media, 1992, 459 p.
12. Parr T. The Definitive ANTLR 4 Reference. Pragmatic Bookshelf, 2013. 328 p.
13. Aho A.V., Ullman J.D. The Theory of Parsing, Translation and Compiling, vol. 1: Parsing. Prentice-Hall, 1972. 560 p.
15. Brown P.J. Macro Processors and Techniques for Portable Software. Wiley, 1974, 244 p.
16. Novikov F.A. Algorithms of Celestial Mechanics (Computer Mathematical Support Materials), Leningrad: Institute of Theoretical Astronomy, USSR Academy of Sciences, 1979, 16 p. (in Russian)
18. Novikov F.A.Discrete Mathematics for Programmers. St. Petersburg, Piter, 2009, 384 p. (in Russian)