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