FSM (Finite State Machine) Generator - Open Source

  • Thread starter Roberto Nunnari
  • Start date
R

Roberto Nunnari

Hi all.

I announce that there's a brand new, free FSM Generator
in the Open Source arena: NunniFSMGen - release 1.0-RC1

http://nunnifsmgen.nunnisoft.ch

NunniFSMGen is a java tool that starting from a transition table
generates the corresponding FSM (Finite State Machine) in
Java, C or C++ source code. It has been developped in 2003
at NunniSoft for generating the FSMs of our own software and
successfully used (here at NunniSoft) since it's first internal
release (in June 2003).

NunniFSMGen is different from other FSM generators because it
cleanly separates logic from implementation by using a modified
version of the state pattern. In fact, you'll only want to
modify one of all the generated files. Thus making it very
easy to integrate in your development process.

To show how helpful NunniFSMGen is in software development,
we've developped and just released (again as Open Source)
a small (less than 30KB) java xml parser, NunniMJAX.

http://nunnimjax.nunnisoft.ch

Due to the fact that up to now it has been the effort of
just one person, and that it's still extremely young.. it
surely still has bugs... but the testcases up to now show
that overall it behaves quite well.

Contributions, patches, bug reports or just success stories
are welcome.

Best regards.
--
Roberto Nunnari -software engineer-
mailto:[email protected]
Residenza Boschetto 12 tel/fax: +41-91-6046511
6935 Bosco Luganese """ mobile: +41-76-3208561
Switzerland (o o)
========================oOO==(_)==OOo========================
 
E

Ed Morton

Roberto said:
Hi all.

I announce that there's a brand new, free FSM Generator
in the Open Source arena: NunniFSMGen - release 1.0-RC1

http://nunnifsmgen.nunnisoft.ch

NunniFSMGen is a java tool that starting from a transition table

That's a bad starting point for many applications.

NunniFSMGen is different from other FSM generators because it
cleanly separates logic from implementation

That's not so different. Take a look at http://www.stateworks.com/ -
they've been doing that for about 20 years.

modify one of all the generated files.

Unacceptable. No one should ever have to modify any generated file as
that creates a maintenance problem when you need to enhance the original
and find you can't regenerate the code from the model and you end up
trying to maintain code that was originally machine-generated and so,
typically, less easily maintainable than hand-written code.


If I could've read the web page I might've given it a spin....

Ed.
 
R

Roberto Nunnari

Ed said:
That's a bad starting point for many applications.

That's interesting.. do you code for the caos?

That's not so different. Take a look at http://www.stateworks.com/ -
they've been doing that for about 20 years.

humm.. that means that because there's already a commercial solution
there's no space for a freeOfCharge Open Source new tool?

Unacceptable. No one should ever have to modify any generated file as
that creates a maintenance problem when you need to enhance the original
and find you can't regenerate the code from the model and you end up
trying to maintain code that was originally machine-generated and so,
typically, less easily maintainable than hand-written code.

That's a good point.. it's true.. it can surely be improved.. but it's
not that bad.. First of all that one file will not be overwritten,
secondly.. when you modify your fsm table and regenerate the code
usually there will not be that many modification.. often I don't even
have to edit anything... and if there is need for editing, then a
graphical diff tool makes it very easy.

Maybe if you gave it a try before spitting sentences..
If I could've read the web page I might've given it a spin....

maybe, if you had the will to look at it you would have found the
link to the english pages... that's the right top corner in every
page of the site.

http://nunnimjax.nunnisoft.ch/en/

Finally, thanks for your positive and constructive post.
Sure the world needs you!
 
G

gabriel

Ed said:
That's a bad starting point for many applications.

So? He aint saying it's good for everything...
Unacceptable. No one should ever have to modify any generated file as

Got good news for ya: It's open source so fix it to your heart's content,
and then share your fixes and improvements with the world...

Amazing... You actually had nothing good or useful to say, yet you think
someone cares? Whatever, complainers and critics are a dime a dozen, one
more, one less, who cares?
 
E

Ed Morton

Roberto said:
That's interesting.. do you code for the caos?

I code for complex, high reliability (5-9s plus) systems. Generating
code from a transition table works great for solving small problems but
then you don't really NEED a code generator for those....
humm.. that means that because there's already a commercial solution
there's no space for a freeOfCharge Open Source new tool?

On the contrary I'm happy to see another free FSM-generation tool. I
took your statement that it's different from other FSM generators to
imply that you thought your solution was different from all other FSM
generators. If you already knew that there are other similair toolsets
out there and really meant that it's just different from some of them,
then you may as well drop that whole "It's different..." statement.
Maybe if you gave it a try before spitting sentences..

I don't need to. Any modification of generated code is unacceptable so
trying a tool that advertises that that might be required is pointless.
Having said that, I did go to the web site to research the tool but
couldn't read the language.

maybe, if you had the will to look at it you would have found the
link to the english pages... that's the right top corner in every
page of the site.

I had the will. I looked around the page for a few minutes for a link.
The tiny writing in the top right in a font significantly smaller than
the rest of the page completely escaped my attention. I was drawn to the
large bold Menu on the side.

Since you posted to an English-language NG that would've been a better
link to start with.
Finally, thanks for your positive and constructive post.
Sure the world needs you!

I agree I said nothing positive but that's because, well, I had nothing
positive to say. What you got from me was more constructive than you
realise and it's a shame you're taking my posting personally since I
took the time to give you feedback on your general approach plus a link
to related technologies that you could learn a lot from and I actually
tried to learn more about the tool from your web site so now you've
learned something about it's layout too.

Ed.
 
E

Ed Morton

gabriel said:
Ed Morton wrote:




So? He aint saying it's good for everything...

So there are other ways to start generating FSM code than from a
transition table so with a little thought (or a little plagiarism) you
can come up with a solution that IS good for everything that can be
solved by FSMs or even just good for most.
Got good news for ya: It's open source so fix it to your heart's content,
and then share your fixes and improvements with the world...

That's not something you can "fix". Whether or not you need to modify
the generated code is at the heart of any code-generation approach.
Amazing... You actually had nothing good or useful to say, yet you think
someone cares? Whatever, complainers and critics are a dime a dozen, one
more, one less, who cares?

Well, presumably the OP cares or he wouldn't have posted. It's true that
neither you nor I had anything good to say. I did, however, say several
useful things wrt the OPs general approach, similair technologies, and
documentation accessibility so hopefully the OP will now evaluate the
information and improve upon what he has today. If you have anything
constructive to offer, I'm sure the OP would like to hear from you too,
though in retrospect had I ignored his post or posted "Yeah, this is
awesome!" instead of providing useful feedback, I wouldn't have enjoyed
the resulting responses.

Ed.
 
A

Arthur J. O'Dwyer

maybe, if you had the will to look at it you would have found the
link to the english pages... that's the right top corner in every
page of the site.

I cannot comment on Ed's technical points, but I *will* say
that I also spent about five minutes clicking around the site
trying to find an English version; it was doubly bewildering/annoying
because all the image ALT tags are in English! Looking at the
"Menu," I saw "Pagina iniziale," which sounded helpful (often
multi-lingual sites have a "language selection" page in front),
but it turned out to be a no-op.

I did not see the tiny little "english" in the upper right-hand
corner of the page, between the word "italiano" and my browser's
scroll bar. This is not surprising. The Web has a /de facto/
standard for page design, which includes the logo in the upper left
with a link to the home page (cf. Google or everything2), the menu
along the top of the page, and -- significantly -- NOTHING AT ALL
OF IMPORTANCE TO CASUAL USERS along the right margin, which is (a)
often reserved for login/password dialogs, (b) often hidden by IM
clients :) , and (c) sometimes even hidden off the edge of the page,
or hidden by the browser's scroll bar.
Certainly the right-hand side is a Bad Place for crucial options
like language, and the *corner* of the right-hand side is worse.
The tiny little font and one-word link is at that point just adding
insult to injury.

Okay, I'm done now. I recommend a site design modification, which
is not topical in this newsgroup. Your product, for all I know,
might be great.

-Arthur
 
D

Dan Henry

Hi all.

I announce that there's a brand new, free FSM Generator
in the Open Source arena: NunniFSMGen - release 1.0-RC1

http://nunnifsmgen.nunnisoft.ch

NunniFSMGen is a java tool that starting from a transition table
generates the corresponding FSM (Finite State Machine) in
Java, C or C++ source code.

Thanks, but with having to start from a textual transition table, it's
not clear to me how it differs from, or is superior to, existing open
source FSM tools like Libero.

http://www.imatix.com/html/libero/index.htm
 
R

Roberto Nunnari

ok ok.. I probably shouldn't have talked about difference..
sorry for being too proud of my first open source software release.

what I meant is just that:
- I've been using it for over 6 months now and I find that
for my needs is very useful
- given that, I thought that making it open source would
give other people one more tool to choose from and use.

If somebody likes it, I'm happy I did something useful
if somebody don't like it, just don't use it

Best regards.

Dan said:
Thanks, but with having to start from a textual transition table, it's
not clear to me how it differs from, or is superior to, existing open
source FSM tools like Libero.

http://www.imatix.com/html/libero/index.htm


--
Roberto Nunnari -software engineer-
mailto:[email protected]
http://www.nunnisoft.ch
Residenza Boschetto 12 tel/fax: +41-91-6046511
6935 Bosco Luganese """ mobile: +41-76-3208561
Switzerland (o o)
========================oOO==(_)==OOo========================
 
E

Ed Morton

Roberto said:
ok ok.. I probably shouldn't have talked about difference..
sorry for being too proud of my first open source software release.

what I meant is just that:
- I've been using it for over 6 months now and I find that
for my needs is very useful
- given that, I thought that making it open source would
give other people one more tool to choose from and use.

If somebody likes it, I'm happy I did something useful
if somebody don't like it, just don't use it

Despite how it may sound, I'm not trying to discourage you, but here's
the problem: by providing an FSM-generation tool that will not work for
most real-world applications, it colors the opinions of people who try
it so they may in future avoid trying other tools that will work.

To try to get somewhat back on topic, FWIW I did try your tool and the
code it generates:

a) Uses //-style comments which are C++/C99-specific
b) Declares and populates local variables but then never uses them
c) Relies excessively on global variables

You also are missing a good way of organising the generated code into
version files (generating 1 new file then overwriting it isn't great)
and you should generate a makefile or some other compilation
specification too.

If you'd like to really discuss this (I have about 10 years of
experience developing and using FSM-generation tools) you can contact me
directly by removing the word "s p a m" from my posting address.

Ed.
 
C

CBFalconer

Roberto said:
ok ok.. I probably shouldn't have talked about difference..
sorry for being too proud of my first open source software release.

what I meant is just that:
- I've been using it for over 6 months now and I find that
for my needs is very useful
- given that, I thought that making it open source would
give other people one more tool to choose from and use.

If somebody likes it, I'm happy I did something useful
if somebody don't like it, just don't use it

Good attitude. However, try to curb your topposting.
 

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

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top