Wikipedia
JFLAP (Java Formal Languages and Automata Package) is interactive educational software written in Java for experimenting with topics in the computer science area of formal languages and automata theory, primarily intended for use at the undergraduate level or as an advanced topic for high school. JFLAP allows one to create and simulate structures, such as programming a finite state machine, and experiment with proofs, such as converting a nondeterministic finite automaton (NFA) to a deterministic finite automaton (DFA).
JFLAP is developed and maintained at Duke University, with support from the National Science Foundation since 1993. It is free software and the source code of the most recent version is available. JFLAP runs as a Java application.