Vorstellung der Java

Download Report

Transcript Vorstellung der Java

Java – Werkzeuge zur Entwicklung endlicher Automaten
HS: Parsing
Dr. K. Haenelt
SS 2003
Referent: Youssef Sammari
HS: Parsing
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
HS: Parsing
-2-
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
HS: Parsing
-3-
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“
HS: Parsing
-4-
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
HS: Parsing
-5-
JFLAP
•
Ergebnis
– Sehr großer Funktionsumfang
– Speichern und Laden von Automaten möglich
– Quellcode verfügbar
HS: Parsing
-6-
FSM Simulator
Finite State Machine Simulator
Eileen Head Version 1.2.1
Funktionsumfang
Input (Zeichenfolge) kann auf Akzeptanz von Automat hin überprüft
werden
HS: Parsing
-7-
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
HS: Parsing
-8-
FSM Simulator
Syntax eines Automaten
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DFA //Type. There MUST be a space before "//" on all the lines
--- Beispiel-Automat --- //Title
a d e i r s // input alphabet, note such comments are permitted at the end of the line
q0 q1 q2 q3 q4 q5 q6 // Machine states
q0 // the initial state
q2 q4 q5 q6 // final states
q0 d q1 // transitions: input state, input symbol, output state
q1 a q2
q1 i q3
q1 e q4
q2 s q5
q3 e q2
q4 r q6
q5 e q4
end //required
Eileen Head: FSM Simulator
HS: Parsing
-9-
Dynalab FSA
Dynalab FSA
Michael T. Grinder
Funktionsumfang
- Nur als Java – Applet verfügbar
- Graphische Konstruktion von
endlichen Automaten
HS: Parsing
- 10 -
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
HS: Parsing
- 11 -
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 : OnlineHilfe, Dokumentation und Beispiele zu JFlap (Version 3.1) auf englisch
•
FSM Simulator
– http://www.cs.binghamton.edu/~software/fsm/fsmdoc.html : ProgrammDownload und Online-Dokumentation mit Beispielen
•
Dynalab FSA
– http://www.cs.montana.edu/~dynalab/fsa/fsa.html : Java-Applet mit OnlineDokumentation und Beispielen
HS: Parsing
- 12 -