ITMO University
“Programming Technologies” Department


 Новости науки
 Почетные доктора
Учебный процесс
 Курсовые проекты
 Лабораторные работы
 Учебные курсы
 События и факты
 Искусственный интеллект
 Генетические алгоритмы
 Роботы и агенты
 Нейронные сети

О нас
 Сертификаты и дипломы
 Соревнования по программированию



 Automata-Based Programming
 UniMod Projects

Поиск по сайту


    / Home (версия для печати)


Anatoly Abramovich Shalyto had offered a new paradigm of programming using an automate as a base abstraction. It was named as Automata Programming, Programming with Obvious State Dedication or a Switch-technology. This technology is based on projecting of systems and programs as a set of connected finite automata. Each automate is described by a connections scheme and a state transition graph. There is a formal and isomorphic way to generate a skeleton code for systems functionality implementation on the base of these two descriptions. This method doesn't depend on the platform, operating system or programming language. It can be implemented even on the microcontrollers with the available memory near 2Kb.

Traditional way of using automata in applied programming lies in tasks of language recognition, but in our method they are used for everything. Switch-technology programming is rather simple, useful. Programs which are written using suggested technology are easy to modify or enlarge, simply documenting and reporting. In this method automata has three aspects: they are used for specification, implementation and reporting. There are four fields for applying of Switch-technology: logical control, reactive systems, object-oriented tasks and calculating algorithms. We have complete examples of the following systems and solved tasks:

  • controlling system for tank for the Robocode game (sponsored by IBM). Our tank "Cynical" was decided to be one of the best in the world;
  • a lot of computer games (Lines, Bomber, Sea Wars and many others);
  • calculator (like Stroustrup's, but better);
  • controlling system for lift (like Knuth's, but better);
  • conception of visualization of calculating algorithms;
  • method of object-oriented programming using automata (with obvious state extracting):
    • automata as classes;
    • formal method of conversion class-oriented automata programs to a program in "classical Switch-technology". It allows to develop models of system using PC and then formally translate it for microcontrollers platform;
    • automata as member functions;
    • state patterns;
    • we also showed that automata have properties of objects, used in object-oriented paradigm;
  • task of synchronization of the chain of the shooters, task about "philosophers dinner", task of Hanoi towers, task of knights move and other well-known algorithms;
  • creating of interactive sets of problems using Macromedia Flash;
  • 3D graphics engine;
  • controlling systems for semaphores, coffee-machine, turnstile, cars, valves and so on;
  • windows management systems;
  • controlling system for ship diesel generator;
  • controlling system for cold rolling shop;
  • and many many others;

We also made several investigations in the field of cellular automata:

  • invented the formalism of generalized coordinates for cellular automata grids;
  • begin to develop CAMEL (Cellular Automata Modeling Environment & Library) system, which is desired to be simple, extensible workspace for complicated cellular calculations. A part of CAMEL, named CADLib (Cellular Automata Developing LIBrary) is designing to present rich set of instrument for developers and researchers;
  • developed several examples of applying cellular automata to solve physics tasks;
  • studied simple fractal and self-reproducing cellular systems;

General advantage of our approach is in development of program documentation simultaneously with the implementation. So we declared a new trend in programming: Trend for Open Program Documentation, - as a logical evolution of Open Source (GNU project, GPL etc.) trend.

Anatoly Shalyto CV (PDF)

Anatoly Shalyto in Wikipedia (external link:

Foundation for Open Project Documentation (external link:

Automata-Based Programming (external link:

A.A. Shalyto - Information From (external link:

Publications in English by Anatoly Shalyto

Finite State Machine (external link:

Technology of Automata-Based Programming (external link:

New Initiative in Programming - Foundation for Open Project Documentation (external link:

SWITCH Technology: An Automated Approach to Developing Software for Reactive Systems (external link:

UniMod User Reports (PDF)

Heikniemi Hardcoded: Loose thoughts on code documentation (external link:

The Collection of Computer Science Bibliographies: A.A. Shalyto (external link:

Our achievements

Application for Contest of Research Projects in the Field of Automation of Designing of Integrated Circuits.
Intel Corporation and Moscow Physicotechnical Institute (Technical University)

Library of Congress

Massachusetts Institute of Technology Libries

University of California, Berkeley

Weizmann Institute of Science Libraries

Stanford University Libraries. Mathematical & Computer Sciences Library

Gottingen, Niedersachsische Staats- und Universitatsbibliothek

British Library

Students and professors were awarded (external link:

Invitation to KIMAS05

2005 IEEE International Conference on Computational Intelligence for Measurement Systems and Applications - CIMSA 2005

Who‘sWho in Science and Engineering (PDF)

Marquis Who's Who in Science and Engineering® (external link:

Bertrand Meyer's gratifying letters

American Biographical Institute, Inc. (PDF)


© 2002—2024 По техническим вопросам сайта: