Automata-based programming (Shalyto's approach)
Automata-based programming is a programming technology. Its defining characteristic is the use of finite-state machines to describe program behavior. The transition graphs of state machines are used in all stages of software development (specification, implementation, debugging and documentation). Automata-based programming technology was introduced by Anatoly Shalyto in 1991. Switch-technology was developed to support automata-based programming. Automata-based programming is considered to be rather general purpose program development methodology than just another one finite-state machine implementation.