Reload Description This is a little tool to visualize regular expressions using a deterministic finite state automaton. It was developed for a seminar by Karin Haenelt -- "Endliche Automaten für die Sprachverarbeitung" in summer term 2010. It is written in pure JavaScript (plus some SVG and underlying HTML) using the Raphaël and jQuery libraries. The corresponding presentation can be downloaded here (in German).
The project includes a parser for basic regular expressions, a simulator for testing if a given word is included in the language defined by the regular expression and another relatively fancy simulator for checking includance graphically step by step. These parts are based on several standard algorithms which can be found in the following literature:
  • Recursive descent parser, Thompson's algorithm: Algorithmen in Java (Hans Werner Lang); Regular expression search algorithm (K. Thompson); Compilers. Principles, Techniques & Tools. (Aho et al)
  • Epsilon closure: The treatment of epsilon moves in subset construction. (Gertjan van Noord)
The user interface should be self explanatory and fail safe but you can obtain help for each step by hovering over The corresponding ? symbol. If something goes wrong just click Reload.

Browser compatibility:

  • Firefox (3): full functionality
  • Opera (10): full functionality
  • WebKit (Safari/Chrome): backspace in graphical simulation does not work
  • Internet Explorer: unknown, probably none

Click Description again to hide this text.

-1
Alphabet:
?
 0
Draw Graph:
?
 1
Regular Expression:
?
 2
Word:
?