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

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

Post on 03-Jan-2016

36 views

Category:

Documents

6 download

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

Entwurf und Implementierung eines Scanner-Generatorsystems nach der Methode von GluschkowSabine Ludvik27.10.2007Was ist ein Scanner-Generatorsystem und wozu braucht man es?ein Programm, welches:testet, ob ein eingelesenes Wort dem vorgegebenen Muster entsprichtBeispiel Variablenbezeichner: korrekter Bezeichner: myVar oder Var2 nicht korrekter Bezeichner:-myVar oder 2VarInput des Programm: regulre Ausdrcke als konkrete syntaktische SpezifikationenAufgabenstellung I *Chomsky-Hierarchie: Formalisierung von SprachenFormale Sprachen *GrammatikSpracheAutomatTyp 0rekursiv aufzhlbarTuringmaschineTyp 1kontextsensitivlinear beschrnkter AutomatTyp 2kontextfreiKellerautomatTyp 3regulrendlicher AutomatAutomat = Akzeptor der definierenden Sprache virtuelle Zustandsmaschine Elemente: Zustnde und Zustandsbergnge Input: WortEndlicher Automat: Typ 3: regulre Grammatik / regulrer Ausdruck endliche Zustandsmenge A = (S, T, , So, E)Automaten *Was ist ein Scanner-Generatorsystem?eine Software, die folgendes implementiert:die Erzeugung von endlichen Automaten = Generator Input: regulrer Ausdruckderen Anwendung zum Testen von Token= Simulator Input: WortAufgabenstellung II *Alternative zu regulrer Grammatikbeschreiben Mengen von ZeichenkettenSyntax 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 ]Regulre Ausdrcke *Viktor Michailowitsch Gluschkow (1923 - 1982)Theorie der abstrakten Automaten. Mathematische Forschungsberichte (deutsch:1963)Methode zur direkten Erzeugung eines DEA aus einem regulren Ausdruck in zwei Schritten:Schritt 1: Indizierung des regulren Ausdrucks (Regel a-e)Schritt 2:Berechnung der Zustandsberfhrungsfunktion Gluschkow I *jedes einzelne Zeichen des regulren Ausdrucks hat zwei Stellen: Gluschkow II *R = [ a | a b c | | w x y z ] 0 1 2 3 4 5 6 7 8 9jedes Eingabezeichen erhlt einen Grundindex:R = [ a | a b c | | w x y z ]Weitergabe nach Regel a-e erzeugt abgeleitete IndizesGUI-Anforderungen:GUI im Microsoft-Windows-StilProjektverwaltungPersistenzoptional: SprachenGluschkow-Algorithmen:Ableitungsbaum des regulren AusdrucksIndizierung des regulren Ausdrucks: Regeln a-eBerechnung der ZustandsberfhrungsfunktionSimulatoroptional: ZustandsdiagrammAnforderungen *Entwurf - Struktur *Entwurf nach MVC-Modell:M odel: AlgorithmenV iew: PrsentationC ontroller: ProgrammsteuerungExpression []Loop Option |TerminalEpsilonRootDOM: Elemente *Beispiel: [ a | a b c | ]Elemente sind XML-NodesElemente haben AttributeINDEX_BASE:Grundindex eines Terminals oder EpsilonsINDEX_OPEN:abgeleitete Indizes am Anfang von Loops oder Expressions und von EpsilonINDEX_CLOSE:abgeleitete Indizes am Ende von Loops oder ExpressionsDOM: Attribute *Schritt 1: LexerBeispiel von: [ a | a b c | ]regulrer Ausdruck Token-StromIndizierung: Lexer *Schritt 2: Parser Token-Strom DOMIndizierung: Parser *Quelle Akzeptorvon oben nach unten von links nach rechtsIndexbertragung *Indizes ber ffnende Klammern ziehen:Regel a *Indizes ber schlieende Klammern ziehen:Regel b *Weglassen eines regulren Teilausdrucks:Regel c *Wiederholen eines regulren Teilausdrucks:Regel d *Bearbeitung des leeren Wortes :Regel e *Indizierung II *Schritt 1 der DEA-Konstruktion ist beendet!vor der Indizierung:Liste Baumnach der Indizierung:Baum ListeIndizierung III * { 0 } { 1, 2 } {IA1, IA2,...} {IF1, IF2,...}Zustandsber-fhrungsfunktion I *aR = [ a | a b c | | w x y z ] 0 1 2 3 4 5 6 7 8 9 0a 0a 0a 0a ( S0, a ) = { 1,2 } = S1 ( S0, b ) = { } = S ( S0, c ) = { } = S ( S0, w ) = { 6 } = S2...Zustandsbergang: xBerechnung:Ausgangspunkt: S0 mit Grundindex 0berechnete Zustnde werden sukzessive bearbeitetEndpunkt: keine unberechneten Zustnde mehrZustandsber-fhrungsfunktion II *optionale Anforderung, daher einfache Implementierung: Schritt: Einteilung in vier Gruppen und Positionierung2. Schritt: Ergnzung von PfeilenSchlingenBuchstabenZustandsdiagramm *Testen beliebiger ZeichenfolgenDarstellung aller EinzelschritteAnzeige, ob das Wortakzeptiert wurde: Endzustandnicht akzeptiert wurde: kein Endzustand oder FehlerzustandSimulator *SLDEA erfllt alle geforderten Anforderungen:MS-Windows-GUIGenerierung eines DEA aus einem regulren AusdruckSimulationen von EingabezeichenfolgenDokumentation und Benutzeranleitungzustzlich wurde implementiert:Sprachuntersttzung zur Laufzeiteinfache ZustandsdiagrammeWeiterentwicklungen:geplant: Drucken / Projektverwaltungdenkbar:schrittweise mitverfolgbare IndizierungZusammenfassung *fr das Thema, die Betreuung und Begutachtung:Prof. Dr. Bernhard ZimmermannDipl.-Ing. Ute Kretschmerfr moralische Untersttzung:Jan-Peter FlatoUlrich SzagunHolger SanioDank *

Recommended

View more >