1 / 24

Werkzeuge für Erstellung und Visualisierung von Endlichen Automaten

Werkzeuge für Erstellung und Visualisierung von Endlichen Automaten. Referentinnen: Nataliya Kutsenko, Xenia Tschepuschtanov. Finite State Atomata Tools. AT&T FSM library TM. FSM C library stellt Tools zur Verfügung, um endliche Akzeptoren und Transducer: zu erzeugen zu kombinieren

mickey
Télécharger la présentation

Werkzeuge für Erstellung und Visualisierung von Endlichen Automaten

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Werkzeuge für Erstellung und Visualisierung von Endlichen Automaten Referentinnen: Nataliya Kutsenko, Xenia Tschepuschtanov

  2. Finite State Atomata Tools

  3. AT&T FSM library TM FSM C library stellt Tools zur Verfügung, um endliche Akzeptoren und Transducer: zu erzeugen zu kombinieren zu optimieren zu suchen (insgesamt um die 30 Funktionen) Entwickelt für Unix, mittlerweile auch Windows Version

  4. FSM File Typen User Programm Level: Programme lesen aus und schreiben in Dateien und Pipelines Text Format: Acceptor Files Transduser Files Binary Format: ´Compilierte´ Repräsentation wird für alle FSM Utilities verwendet.

  5. Acceptor Files www.research.att.com/sw/tools/fsm

  6. Transducer Files www.research.att.com/sw/tools/fsm

  7. Compiling, Printing, and Drawing FSMs Compiling from textual represantation: fsmcompile <A.txt >A.fsa fsmcompile –t <T.txt >T.fst Printing of binary represantation: fsmprint <A.fsa >A.txt fsmprint <T.fst >T.txt Drawing of binary represantation: fsmdraw <A.fsa | dot –Tjpg >A.jpg fsmdraw <T.fst | dot –Tjpg >T.jpg www.research.att.com/sw/tools/fsm

  8. Funktionsumfang Union: Equation: C = A U B, C = A|B Program: fsmunion A.fsa B.fsa >C.fsa Concatanation: C = AB Equation: Program: fsmconcat A.fsa B.fsa >C.fsa Closure: Equation: C = A * Program: fsmclosure A.fsa >C.fsa www.research.att.com/sw/tools/fsm

  9. Funktionsumfang Determinization Minimization Epsilon Removal … (zahlreiche Funktionen)

  10. Fazit: Die Arbeit mit FSM Library erfolgt primär von der Konsole aus. Sehr großer Funktionsumfang Graphische Funktion eines Automaten möglich Keine Möglichkeit zur Umwandlung der RA in die EA und umgekehrt

  11. JFLAP:Java Format Language and Automata Package Das Programm steht als ausführbare Anwendung zur Verfügung (Jar-Datei) und als eine Applet-Version

  12. Funktionsumfang: Visualisierung, Simulation und Konstruktion verschiedener Automatentypen: - Endliche Automaten - Kellerautomaten - Turingmaschinen Umwandlung regulärer Ausdrücke in endliche Automaten und umgekehrt Minimierung von endlicher Automaten Kombinieren von endlichen Automaten

  13. Fazit: Sehr großer Funktionsumfang Einfache Handhabung, umfangreiche Dokumentation mit Beispielen Laden und Speichern von Automaten ist möglich Quellcode ist verfügbar

  14. FSA - Finite State Automaton processing in Python Dieses Module definiert eine FSA Klasse für Repräsentation und Verwendung von endlichen Automaten class FSA: def __init__(self, states, alphabet, transitions, initialState, finalStates): if states == None: states = self.collectStates(transitions, initialState, finalStates) else: ...

  15. FSA & Python: FSA instance creation fsa.tuple() returns these values in that order, i.e. (states, alphabet, transitions, initialState, finalStates). Each element of transition is a tuple of a start state, an end state, and a label: (startState, endSTate, label).

  16. FSA & Python: Methoden fsa.accepts(sequence) returns true or false fsa.determinized() returns an equivalent deterministic FSA fsa.minimized() returns an equivalent minimal FSA

  17. FSA & Python: Funktionen concatenation(fsa1, fsa2) returns an fsa that accepts sequences composed of a sequence accepted by a, followed by a sequence accepted by b union(fsa1, fsa2) returns an fsa that accepts sequences accepted by both a and b closure(fsa) returns an fsa that accepts sequences composed of zero or more concatenations of sequences accepted by the argument equivalent(fsa1, fsa2) returns true if a and b accept the same language

  18. FSA & Python: RE, Präsentation compileRE(string) returns an FSA that accepts the language described by string, where string is a list of symbols and '*', '+', and '|' operators, with '(' and ')' to control precedence. toDotString() returns a string suitable as *.dot file for the 'dot' program from AT&T GraphViz

  19. FSM Simulator (Java) • Simulation des Automaten • Automat muss als „Code“ vorliegen

  20. FSM Simulator (Java) • DFA //Type • --- Beispiel-Automat --- //Title • a b c // input alphabet • q0 q1 q2 // Machine states • 5. q0 // the initial state • q2 // final states • 7. q0 a q1 // transitions: input state, input symbol, output state • 8. q1 b q2 • q2 c q2 • 10. end //required http://www.cs.binghamton.edu/~software/fsm/fsmdoc.html

  21. DescoGUI • DescoGUI ist ein Automaten-Editor (Windows) • Graphisch die Automaten erstellen und bearbeiten • Automaten in verschiedene Formate exportieren Unterstützte Formate: • AT&T DOT • LaTeX • Desco • XML based Formate

  22. http://www.s2.chalmers.se/software/desco

  23. Kara - Programmieren mit endlichen Automaten • Das Leben eines Marienkäfers durch Automaten simulieren • für Schüler/innen • Einstieg in die Grundideen der Programmierung • Endliche Automaten sind einfach zu verstehen http://www.swisseduc.ch/informatik/karatojava/

  24. Links: • AT&T FSM library TM www.research.att.com/sw/tools/fsm • JFLAP:Java Format Language and Automata Package www.jflap.org • PyFSA - Finite State Automaton processing in Python http://osteele.com/software/python/fsa/ • FSM Simulator (Java) http://www.cs.binghamton.edu/~software/fsm/fsmdoc.html • DescoGUI http://www.s2.chalmers.se/software/desco/ • Kara - Programmieren mit endlichen Automaten http://www.swisseduc.ch/informatik/karatojava/

More Related