Miniprojekt - Automatensimulator
Zielsetzung
Bei der Entwicklung eines Automatensimulators orientieren wir uns an dem Software-Werkzeug JFlap.
Ziel ist es, einen von JFlap erzeugten XML-Quelltext zur Beschreibung eines endlichen Automaten mit Hilfe eines selbst entwickelten Automatensimulators zu verarbeiten. Dieser Simulator muss also XML-Quelltexte wie den folgenden verarbeiten können.
email.jffEntwicklung eines Automatensimulators
Der folgende Python-Quelltext zeigt einen Ausschnitt aus einer Implementierung eines Automatensimulators.
Aufgabe 1
Analysiere zunächst den gezeigten Python-Quelltext. Was leistet die Funktion anfangszustand
? Benutze die Datei "email.jff" zum Testen.
Aufgabe 2
Ergänze die Implementierung der beiden Funktionen naechsterzustand
und endzustand
. Teste anschließend die Funktionen wie folgt:
Objektorientierte Realisierung
Zur objektorientierten Realisierung eines Automatensimulators wird die Klasse Automat
modelliert.
Der folgende Python-Quelltext zeigt einen Ausschnitt aus einer Implementierung der Klasse Automat
sowie einen einfachen Test dieser Klasse.
Aufgabe 3
Ergänze die Implementierung der beiden Methoden naechsterzustand
und endzustand
. Teste anschließend die Methoden.
Aufgabe 4
Entwickle eine Klasse Simulator
. Objekte dieser Klasse sollen ein eingegebenes Wort mit Hilfe eines Automaten abarbeiten und entscheiden, ob das Wort vom Automaten akzeptiert wird.