doi: 10.17586/2226-1494-2021-21-4-525-534


An automata-based programming engine

D. V. Dagaev


Read the full article  ';
Article in Russian

For citation:
Dagaev D.V. An automata-based programming engine. Scientific and Technical Journal of Information Technologies, Mechanics and Optics, 2021, vol. 21, no. 4, pp. 525–534 (in Russian). doi: 10.17586/2226-1494-2021-21-4-525-534


Abstract
Automata-based programming considers program systems construction as finite state machines that demonstrate state-based behavior. This paper analyzes approaches to data structures and their realization in different programming paradigms. The requirements for automata style implementations are estimated for actual tasks. It is shown that automata-based algorithms need approaches beyond the standard object-oriented inheritance and polymorphism. The Liskov substitution principle is considered as an implementation base instead them. Data-oriented programming approach and in particular data and code separation form the backbone of the engine. The work describes the automata data structure and code-data interaction. The dynamically loaded modules and representations of data, code and schemes provide the main building blocks. Automata-based programming engine conception is introduced to clue all above. This engine supports distributed systems referencing. In order to implement an automata-based programming engine, the pilot project has to meet a set of requirements, including modular programming support, extended metadata availability and code-free read-only data access. Oberon/Component Pascal programming language is therefore chosen, along with a BlackBox Component Builder graphical environment. Automata-based programming engine prototype is implemented as Abpe subsystem for BlackBox. Several example automata-based modules demonstrate functional interacting programs.

Keywords: automata-based programming, data-oriented programming, Liskov substitution principle, Oberon, Component Pascal

Acknowledgements. The study was implemented within the framework of “Informatika-21” (a non-commercial project to promulgate scientific rationality for IT education).

References
  1. Shalyto A. Automata-based programming paradigm. Scientific and Technical Bulletin of St. Petersburg State University of Information Technologies, Mechanics and Optics, 2008, no. 53, pp. 3–23. (in Russian)
  2. Polikarpova N.I., Shalyto A.A. Automata-Based Programming. St. Petersburg, 2008, 167 p. (in Russian)
  3. Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns. Elements of Reusable Object-Oriented Software. Pearson Education, 1994, 395 p.
  4. Malakhovskyi Ya.M. Automata Implementation in Functional Programming Languages. Thesis. St. Petersburg, ITMO University, 2009, 68 p. (in Russian)
  5. Shelekhov V.I. Automata-based software engineering: the language and development methods. Software Engineering, 2014, № 4. С. 3–15. (in Russian)
  6. Dagaev D.V. Towards developing of Oberon system with specific requirements of ergodicity. Proceedings of ISP RAS, 2020, vol. 32, no. 6, pp. 67–78. (in Russian). https://doi.org/10.15514/ISPRAS-2020-32(6)-5
  7. Shalyto A.A., Shopyrin D.G. Object-oriented approach to a automata programming. Information and Control Systems, 2003, no. 5, pp. 29–39. (in Russian)
  8. Shamgunov N.N., Korneev G.A., Shalyto A.A. State machine - a new design pattern. Information and Control Systems, 2004, no. 5, pp. 13–25. (in Russian)
  9. Martin R.C. Clean Architecture: A Craftsman's Guide to Software Structure and Design. Prentice Hall, 2017, 432 p.
  10. Joshi R. Data-Oriented Architecture: A Loosely-Coupled Real-Time SOA. Real-Time Innovations, Inc., 2007 August, 54 p.
  11. Robbins A. Linux Programming by Example. Prentice Hall Professional Technical Reference, 2004, 687 p.
  12. Harel D., Pnueli A. On the development of reactive systems. Logic and Models of Concurrent Systems. Springer Verlag, 1985, pp. 477–498. NATO ASI Series, Series F: Computer and Systems Sciences, vol. 13. https://doi.org/10.1007/978-3-642-82453-1_17
  13. Reiser M., Wirth N. Programming in Oberon: Steps Beyond Pascal and Modula. ACM Press, 1992, 320 p.


Creative Commons License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
Copyright 2001-2024 ©
Scientific and Technical Journal
of Information Technologies, Mechanics and Optics.
All rights reserved.

Яндекс.Метрика