2
$\begingroup$

I'm looking for a program or utility to help construct DFA/NFA/PDA etc. and the like.

The main reason I'm interested in this, is because I want to be able to move the various states around without breaking their component connections, or having to redraw all the connections to their new place (otherwise I'd be doing this by hand! :P )

Please let me know if there's a better SE site for this.

  • 0
    Mind defining the abbreviations for non-specialists like me?2010-11-22
  • 0
    @JM: DFA=deterministic finite automata, NFA=nondeterministic finite automata, PDA=pushdown automata. That said I am not sure if this is the right/best place for this question.2010-11-22
  • 0
    @Raven: By construct do you mean draw?2010-11-22
  • 0
    @J.M. -- Timothy has the right of it. Like I said, if there's a better place for this question, I'm all ears. However, the only computer science site I know about is *theoretical* computer science which is way beyond the scope of a question like this.2010-11-22
  • 0
    @Timothy Wagner -- yes, I'm just looking for a program to draw out the automata.2010-11-22
  • 0
    Yes, it's a CS-ey question indeed (I'm familiar with those terms, but not with those abbreviations); but there are people here who contend that $\mathrm{CS}\subset\mathrm{Math}$ ... ;)2010-11-22
  • 0
    Since TCS people care more about automata than mathematicians, you have better chance of getting usable feedback for this kind of question. I guess you should be fine opening a question like this at cstheory... and marking it as Community Wiki. @J.M., weird assertion, by the way ;)2010-11-22
  • 0
    Not me personally @Raphael, but they point out that at least the Library of Congress agrees with them (and in fact CS theory books fall under the "QA" section...)2010-11-22
  • 0
    well, TCS $\subset$ Math is a different statement entirely. And even this is not true, imho, since maths historically and usually do not care for computability, rarely for runtimes and, in my experience, often not even logics. There is a large intersection, of course.2010-11-23

5 Answers 5

0

Have a look into the dot file format. It is a quasi-standard for graph descriptions. Once you have written down your graph, you can generate an SVG from it using e.g. graphviz and edit the result in Inkscape.

6
  • If you want to construct and test and play with your automata, you might find JFlap usefull.

  • If you want to produce images and are familiar with LaTeX then TikZ is great (TikZ automata examples)

  • If you want to produce images maybe a vector drawing tool like Inkscape

3

JFlap is a pretty useful tool.

I have also used Grapher which may be downloaded from here:

http://www.ii.pw.edu.pl/~ratajcza/csm/grapher/grapher.html

  • 0
    Grapher is perfect, thank you.2010-11-22
3

If I were attempting to draw a DFA or NFA, I would probably use Graphviz.

1

If you already have access to Mathematica, you can also use it to make images of DFAs. The recent versions have the ability to draw graphs.

  • 0
    I get Mathematica free through my university. This is good to know, thanks.2010-11-22
  • 0
    `GraphPlot[]` and `GraphPlot3D[]` are really nice. :D2010-11-22