Take the 2-minute tour ×

When I go back to school after Thanksgiving, I'll be taking a course in CS Theory covering topics such as deterministic and nondeterministic finite state machines, turing machines, pushdown automata and a few other things. However, I haven't found a good application that can produce a visual representation of them as well as testing how they work (pass/fail, etc). The best that I've found so far is jFlap, and I'm finding it rather awkward.

share|improve this question
Not a duplicate of that question. –  Aaron Smith Oct 13 '08 at 18:17
I used a java finite state machine program when I was in college, but I can't remember what it was called. I'm trying to find it for you. –  Aaron Smith Oct 13 '08 at 18:18
I know it's not a duplicate, but rather a direct result of that question. That is why I made the smiley. –  Tomalak Oct 13 '08 at 18:20
Aaron Smith: It's probably jFlap. It is Java, and very meh. But if that's what you come up with, post it as an answer. –  Thomas Owens Oct 13 '08 at 18:20
What exactly is wrong with JFLAP? It was specifically designed as a didactic instrument: you can do conversion algorithms or matchings step-by-step, etc. (OK, the online help is in the form of Haiku poems, which is a little weird.) But it is a great tool. –  Bruno De Fraine Oct 13 '08 at 19:09
show 1 more comment

6 Answers

up vote 7 down vote accepted

It was JFlap that I used in college. I didn't find it that awkward to use, but it looks like it may have changed since then. Sorry I don't have a better answer for you than that.

share|improve this answer
Well, jFlap (as awkward as I find it) might be the best thing out there and if I want an app, I'll have to just learn how to use it. –  Thomas Owens Oct 13 '08 at 18:23
add comment

A friend of mine used Latex to draw them. I always preferred pencil and paper.

share|improve this answer
add comment

I'm in a class like this right now. I've found paper and pencil to be sufficient. I can't say for sure, but I don't think you'll be required to draw automata that are too complicated to understand on one sheet of paper.

share|improve this answer
That's true, but I've got messy writing style, which makes it very difficult to write for turning in and testing. Although I manage on tests, relying on that for everything would be a pain. It is something that I am considering, however. –  Thomas Owens Oct 13 '08 at 18:56
Never underestimate the complexity of a real-world state diagram! We've got one here that does need 8px font on an A3 sheet. (Though it should be modulized a bit...) –  xtofl Nov 21 '08 at 9:22
add comment

I drew them in UML and submitted StarUML jpeg exports for a while.

Then I wrote a PHP script to convert them to DOT format and used Graphviz to get nice-looking machines.

share|improve this answer
I forgot about DOT and Graphviz. That's an option I should look into, but it doesn't allow for testing the machines - I would have to do that by hand. –  Thomas Owens Oct 13 '08 at 19:05
Yes. Since it was sufficient for me to test by hand, I never got around to modifying the script to test the machine as well. Graphviz does produce pretty-looking pictures, though :) –  aib Oct 14 '08 at 13:14
add comment

Simulink Stateflow.

Massive overkill, of course.

share|improve this answer
add comment

IAR visualSTATE might be of interest.

share|improve this answer
That looks cool, but it doesn't appear to support all the different types of automata clearly, and it costs money. I think some people might be interested in this, but it doesn't look like it's good for me. –  Thomas Owens Oct 13 '08 at 18:39
add comment

Your Answer


