Code-Beispiele zum Buch Automaten und Sprachen

Der kommentierte Source-Code zu den Code-Beispielen im Buch soll dem Leser ermöglichen, die Beispiel etwas mehr im Detail zu studieren als in der knappen Beschreibung im Buch möglich ist. Die einzelnen Beispielen können auch als Pakete für eigene Experimente heruntergeladen werden.

teilbar Reguläre Ausdrücke für durch drei teilbare Binärzahlen
regex Anwendung regulärer Ausdrücke in verschiedenen Programmiersprachen wie in Kapitel 4 beschrieben.
ragel Code-Beispiele für die Anwendung des Ragel Compilers zur Beschreibung von VNEAs in C, C++ oder Java code.
calculator Ein Projekt, welches systematisch eine Taschenrechner-Anwendung mit Hilfe der Werkzeuge flex(1) und bison(1) aufbaut. Die Grundlagen für dieses Projekt werden in Kapitel 7 diskutiert. In der letzten Phase ist es nicht nur möglich, Berechnungen durchzuführen, sondern auch Syntaxbäume von Ausdrücken anzuzeigen und so Anwendung der kontextfreien expression-term-factor-Grammatik besser zu erstehen.
turing Ein Simulator für Turing-Maschinen, geschrieben in C. Der Simulator wird verwendet zur Demonstration der binären Addition in Kapitel 10 und für den Nachweis, dass JavaScript Turing-vollständig ist in Kapitel 14.
minesweeper MINESWEEPER-CONSISTENCY ist ein NP-vollständiges Problem. In Kapitel 13 des Buches wird dies mit Hilfe einer Reduktion von SAT gezeigt. In diesem Code-Paket befindet sich ein in Java geschriebener Interpreter für Minesweeper-Konsistenz-Probleme, mit denen man interaktiv die verschiedene Bombenverteilungen überprüfen und damit die Funktion der als Konsistenzprobleme realisierten Logik-Gatter durchspielen kann.
gvm Die GOTO-virtual-machine ist ein Interpreter, der GOTO-Programme, wie sie in Kapitel 15 beschrieben sind, ausführen kann. Ebenso ist ein Compiler realisiert, der Turing-Maschinen-Programm, wie sie auch der Turing-Simulator ausführen kann, in GOTO-Programme kompilieren kann. Mit der GOTO-virtual-machine können diese Programm dann ausgeführt werden. Dies beweist, dass die Sprache GOTO Turing-vollständig ist.