[REBOL] Re: Any FSM fans?
From: greggirwin:mindspring at: 2-Nov-2001 21:25
Hi Bob,
I looked briefly at Libero not too long ago but I'm aiming for something
different than they are.
There are some things we have in common, like being able to specify multiple
actions for each transition. Something I like about the REBOL approach
(though I'm not sure yet where it might also get me into trouble) is that
you can enter a block of plain old REBOL code as your action and it will
execute it. Another thing both do is allow you to define a special "default"
state that you can use to simplfy your design.
A big difference is that their stuff generates a driver that is wrapped
around the STT (if I recall correctly). Once I get the core where I want it,
I'll look at putting different drivers around it, but I also want to make it
useable as *part* of an app, not just as the main processing loop. Libero
may do this as well. Not sure.
<< How do I use Libero?
Design your program visually as a state diagram; >>
Is this in the Windows version? I DL'd the Windows version and, while it has
a GUI for defining your state machine, it doesn't let you draw a state
diagram
in the true sense. I haven't looked at it in enough detail to know
what I might have missed, but I didn't grok it immediately.
<< Choose your programming language; >>
I don't envision my stuff being used with languages other than REBOL, but
there's no reason you couldn't use it to drive a code generator. Lots of
stuff can be built up around the core concept. Is the core concept sound?
That's the first thing I need to find out.
<< Generate a framework for your program;
Fill-in the framework to get from rapid prototype to working program;
Repeat until your program is perfect. >>
So Libero is smart enough not to touch your code. That's cool. Do you have
to put your own code someplace special or is your code entertwined with the
generated code?
<< What Languages can I use? >>
I have to admit that I'm a fairly biased developer when it comes to
languages. I am data agnostic, but I've always written my tools to work well
for a specific target language. I've written a number of code generators
over the years and the quality of the code they generate is directly related
to the quality of the code I could write, by hand, for any given language.
In this case, one of my main goals is *not* to generate code. :)
<<... with open-ended support for other languages.
Like Rebol? :-) >>
Yeah, but writing a Libero schema would have been more work, and the result
would be far less REBOLish. :)
Since you've got experience with Libero, and said you would like to use FSMs
in REBOL, would you be interested in looking at what I've got and giving me
some feedback?
Thanks!
--Gregg