Bob Martin (Robert Martin) startedSMC around 1991. I picked it up the same year. My experience up to then had been with formal Finite State Machines (FSM), Push-down FSM and with something called an Augmented Transition Network (ATN) which is an FSM on steriods. ATNs were used in Natural Language Processing to parse text (used mostly in the 1970s). ATNs have transition guards, push/pop transitions, default transitions and backtracking (rewind state transitions to an earlier time and try a different transition - needed in parsing text but not possible in Event Driven software unless you have a time machine.) If your are familiar with ATNs, you can see where SMC came from. I have tried to use UML syntax wherever possible. But there is no getting around that my philosophy about state machines is distinct from the Harel/UML philosophy.

It also [generates](http://smc.sourceforge.net/Smc Faq.htm#Table) HTML tables and GraphViz graphs as output of your state tables.