Automata Editor

A Deterministic Finite Automaton

Automata Editor was my course project for the Theory of Computation course. It is a toolkit for working with deterministic and non-deterministic finite automata, as well as (classic) regular expressions.

Features

Usage

If you're using the Windows binary distribution, run Automata Editor.exe. If you're using the source distribution, you can run gui.pyw to access the GUI or import any of the modules in Python to access the interface programmatically. There are no documents detailing the interface right now, but it's fairly simple so a skim through the source should be enough to get started.

For graph drawing to work, the dot program from GraphViz must be in your path.

Sample machines and regexes can be found in the samples folder. The regex language used is the classic one, whose special characters are limited to the Kleene star (*) for matching zero or more characters, the alteration (+) for matching either everything on the left side or everything on the right side, and parentheses (( and )) for grouping and limiting alterations.

Implementation

The program is written in Python, using TkInter for the interface and Graphviz for drawing graphs. Graphviz is called directly as a separate process, rather than using a wrapper library, a choice that may not have been the best, in retrospect.

Requirements

The compiled Windows distribution below is standalone. To run from source (on Windows or UNIX), you will need:

Download

Screenshots