Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von Gluschkow Sabine Ludvik 27.10.2007."—  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? 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 Aufgabenstellung I 2

3 Chomsky-Hierarchie : Formalisierung von Sprachen Formale Sprachen GrammatikSpracheAutomat Typ 0 rekursiv aufzählbar Turingmaschine Typ 1kontextsensitiv linear beschränkter Automat Typ 2kontextfreiKellerautomat Typ 3regulärendlicher Automat 3

4 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) Automaten 4

5 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 Aufgabenstellung II 5

6 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: ) -Kleenesche Sternoperation (Wiederholung: « » ) Beispiel: R = [ a | a « b » c | | w x y z ] Reguläre Ausdrücke 6

7 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 Gluschkow I 7

8 jedes einzelne Zeichen des regulären Ausdrucks hat zwei Stellen: Gluschkow II 8 R = [ a | a « b » c | | w x y z ] VorgrundstelleGrundstelle jedes Eingabezeichen erhält einen Grundindex : R = [ a | a « b » c | | w x y z ] Weitergabe nach Regel a-e erzeugt abgeleitete Indizes

9 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 Anforderungen 9

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

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

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 Ausdruck Token-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 21 Schritt 1 der DEA-Konstruktion ist beendet!

22 Indizierung III vor der Indizierung: Liste Baum nach der Indizierung: Baum Liste 22

23 { 0 } { 1, 2 } {I A1, I A2,...} {I F1, I F2,...} Zustandsüber- führungsfunktion I 23 a R = [ a | a « b » c | | w x y z ] a 0a 0a 0a ( S 0, a ) = { 1,2 } = S 1 ( S 0, b ) = { Ø } = S ( S 0, c ) = { Ø } = S ( S 0, w ) = { 6 } = S 2... Zustandsübergang: x

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

25 Zustandsdiagramm optionale Anforderung, daher einfache Implementierung: 1. 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 nach der Methode von Gluschkow Sabine Ludvik 27.10.2007."

Ähnliche Präsentationen


Google-Anzeigen