Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ANN] SMC - State Machine Compiler v. 1.3.2

2 views
Skip to first unread message

Charles Rapp

unread,
Mar 18, 2002, 1:17:34 PM3/18/02
to
SMC - The State Machine Compiler v. 1.3.2


Requires: Java 1.2 SE (Standard Edition) or better.
Download: http://sourceforge.net/projects/smc
Home Page: http://smc.sourceforge.net


=================================================================
What's New?
=================================================================

+ Modified push transition syntax to be:

<transname> <state1>/push(<state2>) {<actions>}

which means "transition to <state1> and then
immediately push to <state2>". The current
syntax:

<transname> push(<state2>) {<actions>}

is still valid and <state1> is assumed to be a "nil"
loopback transition followed by a push to <state2>.

I added this feature to handle the following
situation:

Waiting
{
Event1 push(Working) {}
Event2 push(Working) {}

// When returning from Event1's push, we want to
// do this ...
WorkDone(status: Status) Busy {}

// but returning from Event2's push, we want to
// do something different.
Workdone(status: Status) WaitAgain {}
}

There is no way to distinguish between these two pushes
using the pre-v. 1.3.2 syntax. But now:

Waiting
{
Event1 Event1Pop/push(Working) {}
Event2 Event2Pop/push(Working) {}
}

// This state handle's the Event1 pop ...
Event1Pop
{
WorkDone(status: Status) Busy {}
}

// and this state handle's the Event2 pop.
Event2Pop
{
Workdone(status: Status) WaitAgain {}
}


=================================================================
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
and Tcl are currently supported). SMC is a console-based app
written in Java which means SMC can run anywhere Java (1.2 or
better) can run. The download package includes an example
directory showing how SMC can used with C++, Java and Tcl
(requires [incr Tcl] package). 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:ra...@acm.org

[[Send Tcl/Tk announcements to tcl-an...@mitchell.org
Send administrivia to tcl-announ...@mitchell.org
Announcements archived at http://groups.yahoo.com/group/tcl_announce/
The primary Tcl/Tk archive is ftp://ftp.neosoft.com/pub/tcl/ ]]

0 new messages