Projects / State Machine Compiler

State Machine Compiler

SMC takes a state machine stored in an .sm file and generates the state pattern classes in fourteen programming languages. Its features include default transitions, transition arguments, transition guards, push/pop transitions, and Entry/Exit actions. It requires Java SE 1.6 or better.

Tags
Licenses
Operating Systems
Implementation

Recent releases

  •  18 Dec 2009 16:58

    Release Notes: This release contains minor feature improvements and bugfixes. It adds %access and %fsmclass keywords, improves reflection to include states list, adds -g0 and -g1 debug output, and support for .Net generic collections.

    •  17 May 2009 17:19

      Release Notes: This release requires Java 1.6. The source code has been rearranged to create 3 underlying Java packages: parser, model, and generator, allowing developers to use SMC technology in their own application. Javadoc documentation is provided for each package. Internal and external loopback features are completed. Several bugs have been fixed.

      •  20 May 2008 20:28

        Release Notes: This release adds PHP and Scala support. It adds a new Jump transition. There are various bugfixes.

        •  14 Jan 2008 21:49

          Release Notes: Release 5.0.1 was missing files. This release corrects that oversight.

          •  04 Jan 2008 21:46

            Release Notes: This release adds Groovy code generation. It adds Java state change notification based on Java Beans. 7 bugs have been corrected.

            Recent comments

            13 Jun 2005 03:44 cwrapp

            Re: very entertaining sales pitch


            > nice compiler too :-) How hard do you

            > think it would be to target more

            > declarative languages, eg: BXML

            > (backbase.com)?

            I am not familiar with BXML so I do not know what the

            generated output should look like. But as for adding a new

            language to SMC, it is a matter of adding

            SmcBXMLGenerator class which extends the

            SmcCodeGenerator class. SMC uses the visitor pattern to

            emit the target language output.

            Of course, after writing SmcBXMLGenerator there is writing

            the documenation.

            09 Jun 2005 05:49 erroneousBollock

            very entertaining sales pitch
            nice compiler too :-) How hard do you think it would be to target more declarative languages, eg: BXML (backbase.com)?

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.