L-FLAT: Logtalk Toolkit for Formal Languages and Automata Theory
  We describe L-FLAT, a Logtalk Toolkit for teaching Formal Languages and Automata Theory. L-FLAT supports the definition of \textsl{alphabets}, the definition of \textsl{orders} over alphabet symbols, the partial definition of \textsl{languages} using unit tests, and the definition of \textsl{mechanisms}, which implement language generators or language recognizers. Supported mechanisms include \textsl{predicates}, \textsl{regular expressions}, \textsl{finite automata}, \textsl{context-free grammars}, \textsl{Turing machines}, and \textsl{push-down automata}. L-FLAT entities are implemented using the object-oriented features of Logtalk, providing a highly portable and easily extendable framework. The use of L-FLAT in educational environments is enhanced by supporting Mooshak, a web application that features automatic grading of submitted programs. 
Paulo Moura and Artur Miguel Dias
cs.PL