Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Entwurf und Implementierung eines Scanner-Generatorsystems

Ähnliche Präsentationen


Präsentation zum Thema: "Entwurf und Implementierung eines Scanner-Generatorsystems"—  Präsentation transkript:

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

2 Was ist ein Scanner-Generatorsystem und wozu braucht man es?
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 Chomsky-Hierarchie: Formalisierung von Sprachen
Formale Sprachen Chomsky-Hierarchie: Formalisierung von Sprachen Grammatik Sprache Automat Typ 0 rekursiv aufzählbar Turingmaschine Typ 1 kontextsensitiv linear beschränkter Automat Typ 2 kontextfrei Kellerautomat Typ 3 regulär endlicher Automat 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 Was ist ein Scanner-Generatorsystem?
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 Schritt 1: Schritt 2:
Viktor Michailowitsch Gluschkow ( ) 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 jedes einzelne Zeichen des regulären Ausdrucks hat zwei „Stellen“:
Gluschkow II R = [ a | a « b » c | | w x y z ] jedes einzelne Zeichen des regulären Ausdrucks hat zwei „Stellen“: Vorgrundstelle Grundstelle jedes Eingabezeichen erhält einen Grundindex: R = [ a | a « b » c | | w x y z ] 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 Expression [] Loop « » Option | Terminal Epsilon Root
DOM: Elemente Beispiel: [ a | a « b » c | ] Expression [] Loop « » Option | Terminal Epsilon Root Elemente sind XML-Nodes Elemente haben Attribute 11

12 Grundindex eines Terminals oder Epsilons INDEX_OPEN:
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 Ausdruck Token-Strom 13

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

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

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

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

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

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

20 Bearbeitung des leeren Wortes ε:
Regel e Bearbeitung des leeren Wortes ε: 20

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

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

23 Zustandsüber-führungsfunktion I
Zustandsübergang: { 0 } { 1, 2 } {IA1, IA2,...} {IF1, IF2,...} x R = [ a | a « b » c | | w x y z ] 0a a a 0a ( 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 geforderten Anforderungen:
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


Herunterladen ppt "Entwurf und Implementierung eines Scanner-Generatorsystems"

Ähnliche Präsentationen


Google-Anzeigen