[ANN] SMC - State Machine Compiler v. 4.0.0

R

rapp

SMC - The State Machine Compiler v. 4.0.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 Python code generation. This capability and examples
provided by M. Francois Perrad.

+ Moved to Visitor pattern. By rearranging the SMC source code to
the Visitor pattern, it makes it easier to in new code
generators and code analyzers.

+ When SMC generates C++ and exceptions are allowed (when -noex
is *not* specified), then statemap::FSMContext::popState()
throws a PopOnEmptyStateStackException when a pop transition is
taken but the state stack is empty. Otherwise, assert() is
used.

+ Added a -return command line option which causes Smc.main() to
return rather than exit. This option is needed by ANT users.

=================================================================
Bug fixes
=================================================================

+ (C++) In statemap.h, the variable id and _id were changed to
stateId and _stateId, respectively. This change was also made
to the generated C++ code. This change was made due to "id"
being a keyword in the Macintosh Objective-C++ language.

+ Corrected error when multiple spaces between %header, %import,
%include and %declare keywords and the following name caused
an unhandled exception.

+ Corrected errors with % keywords and the -graph target.

+ (Java) Corrected error in generated serialization code. The
readObject() method was not restoring the current state. The
generated Java serialization code is now completely redone and
tested.

+ (Java) SMC now requires that the .sm source file has the same
basename as the context class' .java source file. So if the
context class is OrderConnection and is in
OrderConnection.java, then the associated FSM must be in
OrderConnection.sm.

+ (Ant) Corrected a syntax error in examples/Ant/EX7/build.xml.

+ (C++) When the .sm is in a subdirectory the slashes in the file
name are kept in the "#ifndef" in the generated header file.
This is syntactically wrong. SMC now replaces the slashes with
underscores.

=================================================================
What is SMC?
=================================================================

SMC takes a state machine description (stored in a .sm file) and
generates State pattern classes in a target language (C++, Java,
Tcl, VB.Net, C# and Python 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 an example directory showing how SMC can used with C++,
Java, Tcl (requires [incr Tcl] package), VB.Net, C# and Python.
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
mailto:[email protected]
 
R

rapp

Yes, there is a tutorial: http://smc.sourceforge.net/SmcManual.htm

The SMC Programmer's Manual describes the language syntax, how to
program a finite state machine in SMC, how to compile SMC, how to
incorporate SMC-generated code into your application and other topics.
The manual also walks you through examples showing how SMC works with
your application.

Charles Rapp
 
R

Rapscallion

Yes, there is a tutorial: http://smc.sourceforge.net/SmcManual.htm

The SMC Programmer's Manual describes the language syntax, how to
program a finite state machine in SMC, how to compile SMC, how to
incorporate SMC-generated code into your application and other topics.
The manual also walks you through examples showing how SMC works with
your application.

Maybe others can understand it. Not me. Thanks anyway.
 
R

rapp

Now I understand why you could not understand it - the manual web pages
contain HTML errors which prevent them from rendering properly in
Internet Explorer. I have since corrected these errors and the web
pages should now be understandable.

Charles Rapp
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top