1 / 28

Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von Gluschkow

Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von Gluschkow Sabine Ludvik 27.10.2007. Aufgabenstellung I. Was ist ein Scanner-Generatorsystem und wozu braucht man es? ein Programm, welches:

Download Presentation

Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von Gluschkow

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. Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von Gluschkow Sabine Ludvik 27.10.2007

  2. Aufgabenstellung I Was ist ein Scanner-Generatorsystem und wozu braucht man es? ein Programm, welches: testet, ob ein eingelesenes Wort dem vorgegebenen Muster entspricht Beispiel Variablenbezeichner: korrekter Bezeichner: myVar oder Var2 nicht korrekter Bezeichner: -myVar oder 2Var Input des Programm: reguläre Ausdrücke als konkrete syntaktische Spezifikationen 2

  3. Formale Sprachen Chomsky-Hierarchie: Formalisierung von Sprachen 3

  4. Automaten Automat = Akzeptor der definierenden Sprache virtuelle Zustandsmaschine Elemente: Zustände und Zustandsübergänge Input: Wort Endlicher Automat: Typ 3: reguläre Grammatik / regulärer Ausdruck endliche Zustandsmenge A = (S, T, δ, So, E) 4

  5. Aufgabenstellung II Was ist ein Scanner-Generatorsystem? eine Software, die folgendes implementiert: die Erzeugung von endlichen Automaten = Generator  Input: regulärer Ausdruck deren Anwendung zum Testen von Token = Simulator  Input: Wort 5

  6. Reguläre Ausdrücke Alternative zu regulärer Grammatik beschreiben Mengen von Zeichenketten Syntax ist definiert durch Eingabealphabet und spezielle syntaktische Zeichen: « » [ ] | ε Mengenoperationen definieren die beschriebene Sprache (Semantik): Alternative („Mengenvereinigung“: |) Konkatenation („Aneinanderreihung“: •) Kleene‘sche Sternoperation („Wiederholung“: « » ) Beispiel: R = [ a | a « b » c | | w x y z ] 6

  7. Gluschkow I Viktor Michailowitsch Gluschkow (1923 - 1982) Theorie der abstrakten Automaten. Mathematische Forschungsberichte (deutsch:1963) Methode zur direkten Erzeugung eines DEA aus einem regulären Ausdruck in zwei Schritten: Schritt 1: Indizierung des regulären Ausdrucks (Regel a-e) Schritt 2: Berechnung der Zustandsüberführungsfunktion 7

  8. Vorgrundstelle Grundstelle Gluschkow II R = [a|a«b»c| |w x y z] jedes einzelne Zeichen des regulären Ausdrucks hat zwei „Stellen“: • jedes Eingabezeichen erhält einen Grundindex: R = [a |a «b» c | |w x y z] 0 1 2 3 4 5 6 7 8 9 • Weitergabe nach Regel a-e erzeugt abgeleitete Indizes 8

  9. Anforderungen GUI-Anforderungen: GUI im Microsoft-Windows-Stil Projektverwaltung Persistenz optional: Sprachen Gluschkow-Algorithmen: Ableitungsbaum des regulären Ausdrucks Indizierung des regulären Ausdrucks: Regeln a-e Berechnung der Zustandsüberführungsfunktion Simulator optional: Zustandsdiagramm 9

  10. Entwurf - Struktur Entwurf nach MVC-Modell: M odel: Algorithmen V iew: Präsentation C ontroller: Programmsteuerung 10

  11. DOM: Elemente Beispiel: [ a | a « b » c | ] Expression [] Loop « » Option | Terminal Epsilon Root • Elemente sind XML-Nodes • Elemente haben Attribute 11

  12. DOM: Attribute INDEX_BASE: Grundindex eines Terminals oder Epsilons INDEX_OPEN: abgeleitete Indizes am Anfang von Loops oder Expressions und von Epsilon INDEX_CLOSE: abgeleitete Indizes am Ende von Loops oder Expressions 12

  13. Indizierung: Lexer Schritt 1: Lexer Beispiel von: [ a | a « b » c | ] regulärer AusdruckToken-Strom 13

  14. Indizierung: Parser Schritt 2: Parser Token-Strom DOM 14

  15. Indexübertragung Quelle  Akzeptor von „oben nach unten“ von „links nach rechts“ 15

  16. Regel a Indizes über öffnende Klammern ziehen: 16

  17. Regel b Indizes über schließende Klammern ziehen: 17

  18. Regel c Weglassen eines regulären Teilausdrucks: 18

  19. Regel d Wiederholen eines regulären Teilausdrucks: 19

  20. Regel e Bearbeitung des leeren Wortes ε: 20

  21. Indizierung II Schritt 1 der DEA-Konstruktion ist beendet! 21

  22. Indizierung III vor der Indizierung: „Liste“  Baum nach der Indizierung: Baum  Liste 22

  23. Zustandsüber-führungsfunktion I a Zustandsübergang: x R = [a |a «b» c | |w x y z] 0 1 2 3 4 5 6 7 8 9 0a 0a 0a 0a { 0} { 1, 2 } {IA1, IA2,...} {IF1, IF2,...} • ( S0, a ) = { 1,2 } = S1 • ( S0, b ) = { Ø } =S⒠ • ( S0, c ) = { Ø } =S⒠ • ( S0, w ) = { 6 } = S2 ... 23

  24. Zustandsüber-führungsfunktion II Berechnung: Ausgangspunkt: S0 mit Grundindex 0 berechnete Zustände werden sukzessive bearbeitet Endpunkt: keine unberechneten Zustände mehr 24

  25. Zustandsdiagramm optionale Anforderung, daher einfache Implementierung: Schritt: Einteilung in vier Gruppen und Positionierung 2. Schritt: Ergänzung von Pfeilen Schlingen Buchstaben 25

  26. Simulator Testen beliebiger Zeichenfolgen Darstellung aller Einzelschritte Anzeige, ob das Wort akzeptiert wurde:  Endzustand nicht akzeptiert wurde:  kein Endzustand oder Fehlerzustand 26

  27. Zusammenfassung SL»DEA erfüllt alle gefordertenAnforderungen: MS-Windows-GUI Generierung eines DEA aus einem regulären Ausdruck Simulationen von Eingabezeichenfolgen Dokumentation und Benutzeranleitung zusätzlich wurde implementiert: Sprachunterstützung zur Laufzeit einfache Zustandsdiagramme Weiterentwicklungen: geplant: Drucken / Projektverwaltung denkbar: schrittweise mitverfolgbare Indizierung 27

  28. Dank für das Thema, die Betreuung und Begutachtung: Prof. Dr. Bernhard Zimmermann Dipl.-Ing. Ute Kretschmer für moralische Unterstützung: Jan-Peter Flato Ulrich Szagun Holger Sanio 28

More Related