Thursday, September 6, 2007

Cool Stuff Alert

The Fall semester just started, and I've discovered some very cool software that's making my life easier and better.

RegeXeX is an electronic tutor for regular expression problem sets. The really cool part is that (thanks to the decidability of regular languages) RegeXeX will tell the student if they have a correct regular expression, and if they don't, gives examples of strings it generates that it shouldn't and strings it doesn't generate that it should. It's described in a SIGCSE paper.

JFLAP is a toolkit for constructing, simulating, and generally working with finite automata. I've used it to demonstrate NFAs and DFAs. You edit the FA using a GUI editor, and there are various ways to execute it on input strings. It can also do cool things such as highlight nondeterministic states. JFLAP appears to have support for other formal languages/theory of computation constructions, including grammars, pushdown automata, and Turing machines, although I haven't investigated these yet.

KompoZer is a WYSIWYG HTML editor based on Mozilla (now Seamonkey) Composer. I've been using Mozilla Composer for quite a while, and although it serves its purpose, it has many annoying quirks, such as generating millions of spurious <br> tags all over the place. I've only be using KompoZer a short while, but it appears to be much better.