Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Parser für CH3-Sprachen

Ähnliche Präsentationen


Präsentation zum Thema: "Parser für CH3-Sprachen"—  Präsentation transkript:

1 Parser für CH3-Sprachen
Richard Göbel

2 Endlicher Automat als Akzeptor
Zustand (einer von endlich vielen Zuständen) Regeln Eingabezeichen alter Zustand neuer Zustand zunächst keine Ausgabezeichen Anfangszustand Endzustände in denen die Eingabe "akzeptiert" wird

3 Automat für CH3-Sprache
Eliminiere Regeln der Form x  y Ersetze in jeder rechten Seite x durch y Füge y zu den Startsymbolen hinzu falls x ein Startsymbol ist Erzeuge jede Regel einen Zustand ("letzte angewendete Regel) Erzeuge einen Startzustand Erzeuge Übergänge zwischen zwei Zuständen s und t: falls das Nichtterminalsymbol in der rechten Seite von s identisch mit der linken Seite von T entspricht Eingabezeichen für den Übergang sind die Terminalsymbole aus t Erzeuge weitere Übergänge von dem Startzustand zu allen Zuständen für Regeln mit Startsymbolen als linke Seite

4 Beispiel – Duale Zahl mit Vorzeichen
R1: Z  "-" N R2: Z  "+" N R3: Z  N R4: N  "0" R5: N  "1" R6: N  "0" N R7: N  "1" N

5 Aufbau des Automaten für dieses Beispiel
R4 1 R1 - 1 R5 1 1 1 1 S 1 + R6 1 R2 1 R7 1

6 Optimierung eines endlichen Automaten
Lassen sich Zustände zusammenfassen?  Automat muss sich danach gleich verhalten! Wie lässt sich überprüfen, ob zwei Automaten sich gleich verhalten?  Überprüfung endlich vieler Zeichenketten reicht! Optimierung endlicher Automaten mit polynomialem Zeitaufwand möglich!

7 Optimierung des Beispielautomaten
0,1 0,1 +,- S R1 0,1 0,1 0,1 R6 0,1

8 Nichtdeterministischen Automat umwandeln
Erzeuge einen deterministischen Automaten B aus dem nichtdeterministischen Automaten A Ein Zustand aus B repräsentiert eine Menge von Zuständen aus A Jede Eingabe führt von einer Menge von Zuständen aus A zu einer anderen Menge von Zuständen aus A Es werden nur Mengen von Zuständen betrachtet, die von (der Menge mit) dem Startzustand erreichbar sind Eine Zustand von B ist ein Endzustand, wenn dieser Zustand einen Endzustand von A enthält

9 Deterministischer Automat für das Beispiel
0,1 0,1 {S} +,- {R1} {R4,R6} 0,1


Herunterladen ppt "Parser für CH3-Sprachen"

Ähnliche Präsentationen


Google-Anzeigen