Java – Werkzeuge zur Entwicklung endlicher Automaten HS: Parsing Dr. K. Haenelt SS 2003 Referent: Youssef Sammari SS 2003
Finite State Machine Explorer Finite State Machine Explorer von Matt Chapman Funktionsumfang Konstruktion von endlichen Automaten Umwandlung von nicht-deterministischen in deterministische Automaten Minimierung von deterministischen Automaten
Finite State Machine Explorer Ergebnis Einfach zu bedienen Laden und Speichern von Automaten möglich Quellcode verfügbar Zustände sind nicht beschriftet Als Eingabesymbole nur Buchstaben und Ziffern möglich Editieren von Verbindungen bzw. Transitionen nicht möglich
NEA (FSME) Algorihmus zur Erkennung von NEA … public boolean isDeterministic(Logical m ) /* m ist vom Typ Logical, d.h. ein endlicher Automat*/ { Set ta = transitionAlph(m); /* transitionsAlph() gibt Menge des Alphabets an */ for (int i=0; i<m.numStates(); i++) /* numStates() gibt die Anzahl der Zustände an */ State s = m.stateAt(i); /* state(i) gibt den i-ten Zustand an */ for (int j=0; j<ta.size(); j++) Character ct = (Character)ta.elementAt(j); char t = ct.charValue(); if (m.transitionSet(s,t).size() > 1) return false; } return true; Matt Chapman: Auszug Quellcode „Finite State Machine Explorer“
JFLAP (J) Formal Languages and Automata Package Version 4.0 Entwickelt unter der Leitung von Susan H. Rodger an der Duke University Funktionsumfang Visualisierung, Simulation und Konstruktion verschiedener Automatentypen Endliche Automaten Kellerautomaten Turing-Maschinen Umwandlung regulärer Ausdrücke in Automaten Minimierung von endlichen Automaten Umwandlung endlicher Automaten in reguläre Ausdrücke Kombinieren von endlichen Automaten
JFLAP Ergebnis Sehr großer Funktionsumfang Speichern und Laden von Automaten möglich Quellcode verfügbar
FSM Simulator Finite State Machine Simulator Eileen Head Version 1.2.1 Funktionsumfang Input (Zeichenfolge) kann auf Akzeptanz von Automat hin überprüft werden
FSM Simulator Ergebnis Graphische Konstruktion eines Automaten nicht möglich Automat muss als „Code“ vorliegen Minimierung nicht möglich Umwandlung von NEA in DEA nicht möglich
FSM Simulator Syntax eines Automaten 1. DFA //Type. There MUST be a space before "//" on all the lines 2. --- Beispiel-Automat --- //Title 3. a d e i r s // input alphabet, note such comments are permitted at the end of the line 4. q0 q1 q2 q3 q4 q5 q6 // Machine states 5. q0 // the initial state 6. q2 q4 q5 q6 // final states 7. q0 d q1 // transitions: input state, input symbol, output state 8. q1 a q2 9. q1 i q3 10. q1 e q4 11. q2 s q5 12. q3 e q2 13. q4 r q6 14. q5 e q4 15. end //required Eileen Head: FSM Simulator
Dynalab FSA Dynalab FSA Michael T. Grinder Funktionsumfang - Nur als Java – Applet verfügbar - Graphische Konstruktion von endlichen Automaten
Dynalab FSA Ergebnis Für einfache Konstruktion endlicher Automaten gut geeignet Editieren von Zuständen und Transitionen möglich Keine Möglichkeit zur Umwandlung von NEA in DEA Minimierung von DEA nicht möglich
Literatur und Links FSME http://www.belgarath.nildram.co.uk/java/fsme.html : Programm-Download, Quellcode, Beispiele und Online-Hilfe JFLAP http://www.cs.duke.edu/~rodger/tools/jflap/ : Programm-Download, Beispiele, Online-Dokumentation http://www.ifi.unizh.ch/cl/broder/jflap/ : Eine Lernumgebung der Universität Zürich mit Beispielen, Übungen und Dokumentation zu JFlap. http://www.cse.msu.edu/~torng/jflap/ : Eine englischsprachige Seite mit Beispielen zu endlichen Automaten, Kellerautomaten und Turing-Maschinen http://www.css.tayloru.edu/~btoll/s03/320/res/r/jflap/help.html : Online-Hilfe, Dokumentation und Beispiele zu JFlap (Version 3.1) auf englisch FSM Simulator http://www.cs.binghamton.edu/~software/fsm/fsmdoc.html : Programm-Download und Online-Dokumentation mit Beispielen Dynalab FSA http://www.cs.montana.edu/~dynalab/fsa/fsa.html : Java-Applet mit Online-Dokumentation und Beispielen