473,413 Members | 1,807 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,413 software developers and data experts.

FSM (Finite State Machine) Generator - Open Source

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:ro**@nunnisoft.ch
Residenza Boschetto 12 tel/fax: +41-91-6046511
6935 Bosco Luganese """ mobile: +41-76-3208561
Switzerland (o o)
========================oOO==(_)==OOo============= ===========

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----
Nov 14 '05 #1
10 15705


Roberto Nunnari wrote:
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.

<snip> 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.

<snip>
In fact, you'll only want to 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.

<snip> http://nunnimjax.nunnisoft.ch


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

Ed.

Nov 14 '05 #2
Ed Morton wrote:


Roberto Nunnari wrote:
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.


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

<snip>
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.


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

<snip>
In fact, you'll only want to
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.


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..
<snip>
http://nunnimjax.nunnisoft.ch

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/
Ed.


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

-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com - The #1 Newsgroup Service in the World!
-----== Over 100,000 Newsgroups - 19 Different Servers! =-----
Nov 14 '05 #3
Ed Morton wrote:
NunniFSMGen is a java tool that starting from a transition table 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?

--
gabriel
Nov 14 '05 #4


Roberto Nunnari wrote:
Ed Morton wrote:


Roberto Nunnari wrote:
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.


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....
<snip>
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.


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.
<snip>
In fact, you'll only want to
modify one of all the generated files.
Unacceptable. No one should ever have to modify any generated file as

<snip>
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.

<snip> 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.
http://nunnimjax.nunnisoft.ch/en/
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.

Nov 14 '05 #5


gabriel wrote:
Ed Morton wrote:

NunniFSMGen is a java tool that starting from a transition table
That's a bad starting point for many applications.

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.
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...


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.

Nov 14 '05 #6

On Tue, 3 Feb 2004, Roberto Nunnari wrote:

Ed Morton wrote:
Roberto Nunnari wrote:
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
http://nunnimjax.nunnisoft.ch


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.


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

Nov 14 '05 #7
On Tue, 03 Feb 2004 20:00:42 +0100, Roberto Nunnari
<ro**@nunnisoft.ch> wrote:
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

Nov 14 '05 #8
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 Henry wrote:
On Tue, 03 Feb 2004 20:00:42 +0100, Roberto Nunnari
<ro**@nunnisoft.ch> wrote:

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

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

Nov 14 '05 #9


Roberto Nunnari wrote:
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.

Nov 14 '05 #10
Roberto Nunnari wrote:

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.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
Nov 14 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: Leonard J. Reder | last post by:
Hello list, I have been searching on the web for a while now for a specific Python implementation of an FSM. More specifically what I am looking for is a Python implementation of the so called...
0
by: Leonard J. Reder | last post by:
Hello, Although posted this a few weeks ago I still have gotten much feedback so I want to put this out again and see if the response gets a bit more interesting. I have been searching on the...
1
by: Roberto Nunnari | last post by:
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...
0
by: Davide T | last post by:
How would I illustrate a finite state machine that checks that each start node/tag in an XML document has a corresponding end tag (ignoring nested tags of the same type and assuming that there is...
0
by: Maciek | last post by:
Hi When I set Session state mode to StateServer (IIS 6.0; windows2003; .NET 2.0) in my application, I have recived this message:...
4
by: Shawnk | last post by:
This post is intended to verify that true value semantics DO NOT EXIST for the Enum class (relative to boolean operations). If this is true then (thus and therefore) you can not design state...
67
by: Rui Maciel | last post by:
I've been delving into finite state machines and at this time it seems that the best way to implement them is through an intense use of the goto statement. Yet, everyone plus their granmother is...
2
by: qiooeer | last post by:
I want to know more about FSM,would you help me ? where is more details about this? Thanks
5
by: Hendrik van Rooyen | last post by:
I have spent some time googling and on wiki and came up with pyFSA in python. It may end up being useful, but it is not directly what I am looking for, as there is no GUI that I can see. I know...
0
by: Svein Terje Gaup | last post by:
Hi, I have some code on .NET 2.0 that creates a TransactionScope and then tries to open a SQL Connection. When I try to open the connection, I get this error: Test method...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.