Menu

Home

A. Chol

Every programmer should have a Finite State Machine utility in his toolbox. Despite that widely renowned fact, FSMs are actually seldomly used in the programming landscape. Many reasons to that, in particular the perceived difficulty at recognizing a situation where an FSM would prove useful, the difficulty at defining the correct model, and then the difficulty at implementing it, given the various FSM libraries available.

instantFSM aims at making the latter one easier. Other FSM libraries provide either an interface or class template to specialize (boost statechart), or a high level model definition that gets interpreted or compiled to generate the corresponding source code. The overhead in implementing both of these method is heavy. instantFSM proposes modelization rules that mimick those of a high level model description, all in pure C++. This means that the description of the state machine is self-contained in C++ code and is still easy to write, read and maintain.

This wiki provides samples, a tutorial demonstrating all implemented features as well as a cheat sheet for quick reference to the definition grammar.

You can also find a comparison page with most known state machine libraries.

Compatibility

instantFSM has been written for and tested on GCC 4.8.1 and Visual Studio 2013/VC12. If you can assess compatibility for other compilers, I'll be happy to hear from your results.


Related

Wiki: CheatSheet
Wiki: Samples
Wiki: Tutorial
Wiki: compare