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 Software Development Build Tools Code Generators Compilers
Licenses MPL
Operating Systems OS Independent
Implementation C# C++ Java Tcl Visual Basic Python C

Tweet this project Short link

Rss Recent releases

Changes: 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.

  • Rrelease-mid
  •  20 May 2008 20:28
  • Rrelease-after

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

  • Rrelease-mid
  •  14 Jan 2008 13:49
  • Rrelease-after

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

  • Rrelease-mid
  •  04 Jan 2008 13:46
  • Rrelease-after

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

  • Rrelease-mid
  •  18 Feb 2007 17:02
  • Rrelease-after

Changes: This release adds two new target languages: Lua and Objective-C. There are also several minor bugfixes.

Rss Recent comments

Rcomment-before 13 Jun 2005 03:44 Rcomment-trans C86fb1702ee57e52da2e6996a0eaa2d3_tiny cwrapp Rcomment-after

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.

Rcomment-before 09 Jun 2005 05:49 Rcomment-trans erroneousBollock Rcomment-after

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

F0dfe5f9d3fc7162b41219e4398b726b_thumb

Project Spotlight

KMidimon

An ALSA sequencer MIDI monitor.

F9ab22e1777ade1d4c6302b32cdfd774_thumb

Project Spotlight

ContentRoller

A social news, links, and blogging CMS environment.