Jflap is great software for experimenting with formal language topics, you can construct and test examples and view them in a visual manner that would take way too much time on paper. Jflap handles the following language topics:
- Nondeterministic Finite Automata
- Nondeterministic Pushdown Automata
- Multi-tape Turing Machines
- Grammers, Parsing and L-systems