Automata-Based Programming - General Purpose Finite State Machines

Daniela KolarovaThe FSM Master

Using FSM (finite state machines) for modelling in software development is not a new concept. Automata-based techniques were widely used in the domains where there are algorithms based on automata theory, such as formal language analyses. However applications of finite state machines were further investigated and applied as a general purpose program development methodology. The programming paradigm in which the program or part of it is thought of as a model of a finite state machine is called Automata-based programming. In this talk we will give an overview over the automata-based programming paradigm and different FSM design approaches with their advantages and disadvantages. This will also be done by writing code starting from Robert Martin's approach of modelling FSMs, applying java 8 and explaining it based on the author's real experience with automata-based programming.


Daniela is a software architect at CSC with more than 13 years experience with Java. She has worked on many international projects using Core Java, Java EE, Spring. Currently she is working in the banking domain and financial software having the opportunity to analyse complex architectures and aiming to find clean and elegant solutions. Because of her interests in AI she worked on scientific projects in the past and did some talks on AI conferences. Linkedin: