Lexikalische Analyse, Tokenizer, Scanner

Ähnliche Dokumente
Formale Sprachen, reguläre und kontextfreie Grammatiken

Es gibt drei unterschiedliche Automaten:

Reguläre Sprachen und endliche Automaten

Theoretische Informatik I

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Rekursiv aufzählbare Sprachen

Theoretische Grundlagen der Informatik

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Einführung in die Theoretische Informatik

Theoretische Informatik 2

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

Vorlesung Theoretische Informatik

Theoretische Informatik Testvorbereitung Moritz Resl

Übungsaufgaben zu Formalen Sprachen und Automaten

Einführung in die Informatik

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

11.1 Kontextsensitive und allgemeine Grammatiken

8. Turingmaschinen und kontextsensitive Sprachen

Theoretische Informatik. Reguläre Sprachen und Automaten

7 Endliche Automaten. 7.1 Deterministische endliche Automaten

6 Kontextfreie Grammatiken

Endliche Automaten. Endliche Automaten J. Blömer 1/23

Automatentheorie und formale Sprachen

Kapitel 4. Einführung in den Scannergenerator Flex. Einführung in den Scannergenerator Flex Wintersemester 2008/09 1 / 9

(Prüfungs-)Aufgaben zu formale Sprachen

Fachseminar WS 2008/09

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Formale Methoden 1. Gerhard Jäger 9. Januar Uni Bielefeld, WS 2007/2008 1/23

Inhalt Kapitel 5: Syntax

Theoretische Grundlagen des Software Engineering

7 Endliche Automaten. Reimund Albers Papierfalten Kapitel 7 Endliche Automaten 103

Theoretische Informatik I

Endliche Automaten. Im Hauptseminar Neuronale Netze LMU München, WS 2016/17

Grammatiken und ANTLR

Alphabet, formale Sprache

Einführung in die Theoretische Informatik

Ein deterministischer endlicher Automat (DFA) kann als 5-Touple dargestellt werden:

Einführung in die Theoretische Informatik

Formale Sprachen und Automaten

ARBEITSBLATT ZU FORMALEN SPRACHEN

Sprachen/Grammatiken eine Wiederholung

2.4 Kontextsensitive und Typ 0-Sprachen

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

THEORETISCHE INFORMATIK

9 Theoretische Informatik und Compilerbau

Turing-Maschinen. Definition 1. Eine deterministische Turing-Maschine (kurz DTM) ist ein 6- Dem endlichen Alphabet Σ von Eingabesymbolen.

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Grundlagen der Theoretischen Informatik

Formale Sprachen und Automaten

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

Einführung in die Informatik Grammars & Parsers

Deterministische endliche Automaten - Wiederholung

Operationen auf endlichen Automaten und Transduktoren

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit. Zugangsnummer: 3288

Wiederholung. Ein deterministischer endlicher Automat (DEA) über einem Alphabet A besteht aus: einer endlichen Menge von Zuständen Q,

11. Woche: Turingmaschinen und Komplexität Rekursive Aufzählbarkeit, Entscheidbarkeit Laufzeit, Klassen DTIME und P

Grundlagen der Theoretischen Informatik

Theoretische Informatik 1

Mathematische Grundlagen der Informatik 2

I.2. Endliche Automaten (ohne Ausgabe)

Theoretische Grundlagen der Informatik

1 Syntax von Programmiersprachen

Eigenschaften regulärer Sprachen

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

DKA und dkfs (mit Übungen)

Automaten und Formale Sprachen

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Einführung in Berechenbarkeit, Komplexität und formale Sprachen

Reguläre Grammatiken/Sprachen und endliche Automaten

5.4 Endliche Automaten

Syntaktische Analyse (Parsen)

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Berechenbarkeit. Script, Kapitel 2

Einführung in die Theoretische Informatik

Compiler, Übersetzer. Allgemeine Erklärung / Definition

Formale Sprachen und Grammatiken

Einführung in die Theoretische Informatik

Einführung in die Computerlinguistik deterministische und nichtdeterministische endliche Automaten

Definition Formale Sprache Eine formale Sprache ist eine (Teil-)Menge A Σ* von Worten über einem Alphabet Σ.

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Theoretische Grundlagen der Informatik

Berechenbarkeit und Komplexität

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Musterlösung der Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2012/13

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Theoretische Grundlagen des Software Engineering

Automaten und Formale Sprachen Endliche Automaten und Reguläre sprachen

Transkript:

Lexikalische Analyse, Tokenizer, Scanner Frühe Phase des Übersetzers Aufgabenteilung: Scanner (lokale) Zeichen (Symbol-)Analyse Parser Syntax-Analyse Aufgabe des Scanners: Erkennung von: Zahlen, Bezeichner, Namen, Schlüsselworte, Strings d.h. reguläre Ausdrücke Aufbau der Symboltabelle Zeichenstrom Tokenstrom und Weitergabe an den Parser Es gibt Scanner-Generatoren (Z.B. lex). Allerdings ist es oft einfacher, einen Scanner selbst zu schreiben. Z.B. unter Benutzung endlicher Automaten. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 1

Scanner: Etwas genauer Einlesen des Programmtexts als lineare Zeichenkette Beseitigung von Kommentaren, Leer- und Tabulatorzeichen. Zusammenfassen von Teilstrings (Schlüsselworte, Bezeichner, Zahlenwerte, u ä) Ergebnis: Strom von Token Ein Token kann bestehen aus: Markierung: Attribute: Art des Tokens wie String, Zahlwert, Position im Eingabefile. Üblich: Eigenes Endezeichen (statt System-EOF) für Eingabestrom; Tokenstrom, Stack P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 2

Beispiel für Tokens Eingabe Tokenmarkierung Attribut Position in der Eingabe if Keyword if 113 123 Num 123 500 x1 Id x1 1001 Mult Code( ) 2000 <= Relop Code(<=) 5000 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 3

Grammatik-Zerlegung: Parser Tokenizer E ::= E + T T T ::= T F F F ::= (E) Zahl Bezeichner Zahl ::= Ziffer ZifferZahl Ziffer ::= 0 1 2 3 4 5 6 7 8 9 Bezeichner ::= Char Char Alphanum Alphanum ::= Ziffer Char Parseralphabet = {Tokenmarkierungen} Parser behandelt alle Bezeichner als ein Terminal Z.B. tatsächliches Parseralphabet im Beispiel: {+,*,Z, B,),( } P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 4

Phasen: Struktur und Typen Typen, in Haskell-Notation: Scanner: det. Teil-Parser: Teil-Parser mit Backtracking Gesamt-Parser: String -> [Token] [Token] -> ([Token], Syntaxbaum) [Token] -> [([Token], Syntaxbaum)] [Token] -> Syntaxbaum P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 5

Fehlererkennung des Scanners falsche Zahlen Z.B. 123.a falsche Escape-Folgen in Strings ein fehlendes Stringendezeichen, oder evtl. Längenüberschreitungen. Bezeichner, die nicht der Konvention entsprechen Ungültige Symbole in bestimmten Kontexten Nicht erkennbar für den Scanner: Klammerfehler, Klammerfehler bzgl. (tief) geschachtelter Kommentare falsche Schlüsselworte. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 6

Scannen von Kommentaren und Strings String im Eingabestrom: = Unterstring mit linkem und rechtem Begrenzungssymbol. Bekannte Problematik: String im String? Beachte: trennt, erzeugt aber keine Klammerstruktur sinnvolle Lösungsalternativen: Escape-symbol \ als Kommando: \ im String \\ im String \ Verdopplung: im String Nachteil: Exponentiell große Strings könnten in der Eingabe erforderlich sein abhängig von der Tiefe bzw. der Anzahl Scanner-Durchgänge. Scanner darf keine Leerzeichen in Strings entfernen P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 7

Scannen von Kommentaren: Zeilenkommentare geklammerte Kommentare Anfangssymbol z.b. * oder ; oder % oder oder //. Kommentar-Begrenzer: Z.B. Anfang: /, Ende: /. Aktuelle Programmiersprachen: nur eine Klammerebene; Schachtelung wird vom Editor per Zeilenkommentar unterstützt; Echte Kommentar-Schachtelung muss vom Parser erkannt werden. Beachte Zeilenkommentar im String sind Stringzeichen. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 8

Reguläre formale Sprachen: Formalismen Äquivalente Beschreibungsmöglichkeiten für reguläre formale Sprachen: reguläre Ausdrücke (rechts- bzw. links-)reguläre Grammatik DEA (deterministischer endlicher Automat): akzeptierte Sprache NEA (nicht-deterministischer endlicher Automat): akzeptierte Sprache P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 9

Reguläre Ausdrücke Σ sei das Alphabet. R ::= a für a Σ (R) ε Leeres Wort RR Konkatinierte Ausdrücke R + R Auswahl bzw. Vereinigung R beliebige Anzahl Konkatinierungen P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 10

Reguläre Ausdrücke: Semantik Die Semantik ψ ergibt Mengen von Worten ψ(ε) := {ε}. Hier ist rechts der leere String gemeint. ψ(a) := {a} für a Σ ψ(rs) := ψ(r)ψ(s). D.h. = {xy x ψ(r), y ψ(s)}. ψ(r + s) := ψ(r) ψ(s). ψ((r)) := ψ(r) ψ(r ) := ψ(r). P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 11

Reguläre formale Sprachen: Beispiele Bezeichner Zahlenkonstanten A (A + Z) Z.B. initalerwert10, x 0 PZ Z.B. 0, 2005, Strings ((A+Z+( )) + ) Z.B Abc1 2 3 45 (ohne äußere ) Binärzahlen mit gerader Parität: 0 (0 10 10 ). Strings, max. Länge 128 ((A+Z+( )) n ) n 128? P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 12

Reguläre Grammatik Definition Eine (rechts-)reguläre Grammatik ist eine CFG mit Produktionen von der Form A ::= wb A ::= w A ::= B Hierbei sind A, B Nichtterminale, w T. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 13

Reguläre Grammatik, Beispiel Bezeichner, die mit einem Buchstaben beginnen, gefolgt von Buchstaben und Ziffern. I ::= ar... zr a... z R ::= ar... zr 0R... 9R a... z 0... 9 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 14

Endliche Automaten deterministische endlichen Automaten (DEA) sind ein abstraktes Maschinenmodell zur Erkennung regulärer formaler Sprachen. Ein DEA A ist ein 5-Tupel (Q, Σ, δ, q 0, F ), wobei Q Σ δ q 0 F Menge der Zustände Eingabealphabet (partielle) Übergangsfunktion: δ : Q Σ Q Startzustand akzeptierende Zustände F Q δ ist Erweiterung von δ auf Strings: δ (q, a) := δ(q, a) δ (q, aw) := δ (δ(q, a), w) Ein Wort w wird akzeptiert, wenn δ (q 0, w) F. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 15

DEA: Arbeitsweise Analog zu einer Turingmaschine: 1 4 6 A C endliche Kontrolle Zustand Leserichtung Der Unterschied zur Turingmaschine ist: Schreiben auf das Band ist nicht zulässig Das Band wird von links nach rechts gelesen P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 16

DEA: Arbeitsweise Einziger Speicher des DEA sind die inneren Zustände Beim Lesen eines Zeichens: wechselt der innere Zustand abh. vom vorhergehenden Zustand und vom gelesenen Zeichen. der Lesekopf rückt um 1 nach rechts P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 17

DEA: Darstellung und Implementierung Erkennung von Bezeichnern über dem Alphabet {a, b, 0, 1}: q0 a,b 0,1 q2 q1 a,b,0,1 a,b,0,1 a10ab wird akzeptiert, 1ab01 wird nicht akzeptiert. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 18

DEA: Darstellung und Implementierung Σ = {a, b, 0, 1} Q = {q0, q1, q2},start q 0, Akzeptierender Zustand F = {q1} Übergangsfunktion als Tabelle: δ a b 0 1 q0 q1 q1 q2 q2 q1 q1 q1 q1 q1 q2 q2 q2 q2 q2 Übergangsfunktion als Tabelle mit Fehlereinträgen δ a b 0 1 q0 q1 q1 q2 q2 q1 q1 q1 q1 q1 q2 Fail Fail Fail Fail P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 19

DEA Beispiel Erkennung von Gleitkommazahlen: 0..9 0..9 0..9, 0..9 Dieser DEA erkennt Gleitkommazahlen wie z.b. 123,987 mit beliebig vielen Stellen vor und nach dem Komma. Bei Längenbeschränkung (siehe auch die 128-Strings) DEA kann nur mittels seiner Zustände zählen Praktikabler: DEA + Zähler Nicht erlaubt : Vergleich der Inhalte zweier Zähler. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 20

Nichtdeterministische endliche Automaten Unterschied zum DEA: (NEA) Kann beim Übergang den nächsten Zustand aus einer gegebenen Menge nicht-deterministisch auswählen. Akzeptanz gilt, wenn es eine Abarbeitung gibt, die einen akzeptierenden Zustand erreicht. Umkodierung: ist DEA über Mengen von Zuständen. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 21

NEA: Beispiel Ein NEA, der (a + b) abb erkennt: a q0 a q1 b q2 b q3 b von q 0 gehen für a zwei Pfeile aus. Ein Wort wird akzeptiert, wenn es einen Weg zu einem akzeptierenden Zustand gibt. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 22

NEA: Verwendung Konstruktion eines DEA aus einem regulären Ausdruck: 1. regulären Ausdruck NEA 2. NEA DEA (Mengen von Zuständen) exponentielles Anwachsen der #Zustände ist möglich 3. Minimierung des DEA Satz (Myhill-Nerode) Für jede reguläre Sprache L gibt es (bis auf Umbenennung der Zustände) genau einen minimalen DEA. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 23

Implementierung: Bemerkungen Übergangsfunktion des DEA mit Tabelle (Q,T) Q DEA können nur erkennen, nichts ausgeben DEAs als Basis; Erweiterung um Zähler und Ausgabe: z.b. Ausgabe der erkannten Zahl P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (29. Juni2005) Seite 24