[ANN] SMC - State Machine Compiler v. 4.0.0 for Python
rapp@acm.org
rapp at acm.org
Wed Jun 8 19:15:53 CEST 2005
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
Why use Python? You know why - powerful, flexible, simple and
very capable.
Why use finite state machines (FSMs)? For the exact same reasons.
Computing has long since moved beyond a single process, a single
processor and single computer programming. Your application lives
in a distributed world with asynchronous events, I/O and timers.
Objects together with FSMs can handle this difficult world in
a robust and efficient manner. An object's encapsulated FSM
tracks the object's current state. The current state defines how
the object should respond to an event.
=================================================================
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.
SMC generated code is trivial to hook into existing Python
applications:
+ SMC does not change your code or require you to change your
code's logic.
+ SMC does not require that your class inherit or implement
any SMC class.
+ SMC does not use state transition arrays or switch
statements.
An object simply instantiates the FSM and passing in its "self"
to the FSM constructor.
SMC is a mature software tool: 5 years old, in use around the
world and used in production software for the telecommunications
and financial exchanges. SMC generates code for C++, C#, Java,
Tcl, VB.Net and now Python. It is an active open source project
with new languages and features regularly added.
=================================================================
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:rapp at acm.org
More information about the Python-announce-list
mailing list