Download Endbericht

Transcript
2.4. EXISTIERENDE LÖSUNGEN
61
Funktionsumfang: Wie in den bisher besprochenen Bibliotheken lassen sich auch hier
Automaten auf zwei Arten modellieren. Zum einen kann man einen Automaten
durch explizite Angabe der Zustände und Zustandsübergangsfunktion modellieren.
Die zweite Möglichkeit stellt eine Modellierung eines Automaten durch die Angabe
eines regulären Ausdrucks dar.
Automat: Automaten im System können unter Zuhilfenahme folgender Funktionalitäten
verändert und bearbeitet werden: Komplement, Produktsprache, Quotientensprache, Minimierung von Automaten, Vereinigung von Automaten, Vergleich von Automaten, Konvertieren eines NFA-Automaten in einen DFA-Automaten
Fazit: Der größte Kritikpunkt an JAT ist die Implementierung, die nicht wirklich objektorientiert ist. Die Übergangsfunktion wird durch Angabe von Knotennummern
realisiert. Der Grund dafür liegt darin, dass ursprünglich eine C Version implementiert wurde, die dann auch nach Java konvertiert wurde.
Um diese Bibliothek unter Java 1.4.2 lauffähig zu machen, mussten einige
Änderungen durchgeführt werden.
Außerdem fällt negativ auf, dass der Automat auf Basis eines regulären Ausdrucks
vom Automaten aus Zuständen und Zustandsübergangsfunktion abweicht.
2.4.2.5
JFlap
JFlap [?] ist von allen angegebenen Bibliotheken die funktional umfassenste Codesammlung. Mit JFlap lassen sich DFA, NFA, reguläre Ausdrücke, Grammatiken, PDA und TM
implementieren. Sie wird aktuell von Susan H. Rodger Associate Professor of the Practice
Department of Computer Science Duke University, Durham, betreut.
Hierbei handelt es sich um eine laufende Entwicklung, die 1990 begonnen wurde.
Funktionsumfang: Auch hier beschränken wir uns wieder auf Automaten und reguläre
Ausdrücke. Zum einen kann man einen Automaten mittels Zuständen und Zustandsübergangsfunktion modellieren. Leider ist es trotz intensiver Bemühungen
nicht gelungen, einen Automaten mittels eines gegebenen regulären Ausdrucks zu
konstruieren.
Automat: Auf Automaten sind eine Vielzahl weiterer Operationen erlaubt: Automatenminimierung, Komplement, Produktsprache, Quotientensprache, Entfernen von
überflüssigen Zuständen, Vereinigung von Automaten, Vergleich von Automaten,
Konvertieren eines NFA-Automaten in einen DFA-Automaten