C
Charles Rapp
SMC - The State Machine Compiler v. 4.3.0
Requires: Java 1.4.1 SE (Standard Edition) or better.
Download: http://sourceforge.net/projects/smc
Home Page: http://smc.sourceforge.net
=================================================================
What's New?
=================================================================
+ Added -reflect option for Java, C#, VB.Net and Tcl code
generation. When used, allows applications to query a state
about its supported transitions. Returns a list of transition
names. This feature is useful to GUI developers who want to
enable/disable features based on the current state. See
Programmer's Manual section 11: On Reflection for more
information.
+ Updated LICENSE.txt with a missing final paragraph which allows
MPL 1.1 covered code to work with the GNU GPL.
+ Added a Maven plug-in and an ant task to a new tools directory.
Added Eiten Suez's SMC tutorial (in PDF) to a new docs
directory.
=================================================================
Bug fixes
=================================================================
+ (GraphViz) DOT file generation did not properly escape
double quotes appearing in transition guards. This has been
corrected.
+ A note: the SMC FAQ incorrectly stated that C/C++ generated
code is thread safe. This is wrong. C/C++ generated is
certainly *not* thread safe. Multi-threaded C/C++ applications
are required to synchronize access to the FSM to allow for
correct performance.
+ (Java) The generated getState() method is now public.
=================================================================
What is SMC?
=================================================================
SMC takes a state machine description (stored in a .sm file) and
generates State pattern classes in a target language (C, C++, C#,
Java, Perl, Python, Ruby, Tcl and VB.Net are currently
supported). SMC is a console-based app written in Java which
means SMC can run anywhere Java (1.4.1 or better) can run.
The download package includes a document and example directory
showing how SMC can used with C, C++, C#, Java, Perl, Python,
Ruby, Tcl (requires [incr Tcl] package) and VB.Net. The examples
range from trivial to GUI apps.
=================================================================
How can I learn more?
=================================================================
At http://smc.sourceforge.net. You can access the SMC
Programmer's Manual there as well. While you're there, check out
the SMC demo applet at http://smc.sourceforge.net/SmcDemo.htm.
=================================================================
Where can I get it?
=================================================================
SMC and the Programmer's Manual can be downloaded from
http://sourceforge.net/projects/smc. You can also use this
website to:
+ Ask questions (via the Public Forum's Help discussion)
+ Submit a bug.
+ Join a mailing list.
+ Access SMC documentation.
+ Access SMC's source code in the CVS repository.
(Note: in order to make full use of SourceForge capabilities,
you must be a SourceForge member. If you are not a member,
head over to http://sourceforge.net/account/register.php
and sign up. SourceForge membership is free - no money, no
requirements and NO SPAM! Membership has its benefits.)
If you have any problems, surf over to
http://sourceforge.net/forum/forum.php?forum_id=27865 and report
the problem. I will try and answer you via the Help forum as
quickly as I can.
Enjoy!
Charles Rapp
Requires: Java 1.4.1 SE (Standard Edition) or better.
Download: http://sourceforge.net/projects/smc
Home Page: http://smc.sourceforge.net
=================================================================
What's New?
=================================================================
+ Added -reflect option for Java, C#, VB.Net and Tcl code
generation. When used, allows applications to query a state
about its supported transitions. Returns a list of transition
names. This feature is useful to GUI developers who want to
enable/disable features based on the current state. See
Programmer's Manual section 11: On Reflection for more
information.
+ Updated LICENSE.txt with a missing final paragraph which allows
MPL 1.1 covered code to work with the GNU GPL.
+ Added a Maven plug-in and an ant task to a new tools directory.
Added Eiten Suez's SMC tutorial (in PDF) to a new docs
directory.
=================================================================
Bug fixes
=================================================================
+ (GraphViz) DOT file generation did not properly escape
double quotes appearing in transition guards. This has been
corrected.
+ A note: the SMC FAQ incorrectly stated that C/C++ generated
code is thread safe. This is wrong. C/C++ generated is
certainly *not* thread safe. Multi-threaded C/C++ applications
are required to synchronize access to the FSM to allow for
correct performance.
+ (Java) The generated getState() method is now public.
=================================================================
What is SMC?
=================================================================
SMC takes a state machine description (stored in a .sm file) and
generates State pattern classes in a target language (C, C++, C#,
Java, Perl, Python, Ruby, Tcl and VB.Net are currently
supported). SMC is a console-based app written in Java which
means SMC can run anywhere Java (1.4.1 or better) can run.
The download package includes a document and example directory
showing how SMC can used with C, C++, C#, Java, Perl, Python,
Ruby, Tcl (requires [incr Tcl] package) and VB.Net. The examples
range from trivial to GUI apps.
=================================================================
How can I learn more?
=================================================================
At http://smc.sourceforge.net. You can access the SMC
Programmer's Manual there as well. While you're there, check out
the SMC demo applet at http://smc.sourceforge.net/SmcDemo.htm.
=================================================================
Where can I get it?
=================================================================
SMC and the Programmer's Manual can be downloaded from
http://sourceforge.net/projects/smc. You can also use this
website to:
+ Ask questions (via the Public Forum's Help discussion)
+ Submit a bug.
+ Join a mailing list.
+ Access SMC documentation.
+ Access SMC's source code in the CVS repository.
(Note: in order to make full use of SourceForge capabilities,
you must be a SourceForge member. If you are not a member,
head over to http://sourceforge.net/account/register.php
and sign up. SourceForge membership is free - no money, no
requirements and NO SPAM! Membership has its benefits.)
If you have any problems, surf over to
http://sourceforge.net/forum/forum.php?forum_id=27865 and report
the problem. I will try and answer you via the Help forum as
quickly as I can.
Enjoy!
Charles Rapp