120 likes | 212 Views
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
E N D
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 Explorervon 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 FSAMichael 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