Bottom-up-Syntaxanalyse
|
|
|
- Lieselotte Fleischer
- vor 6 Jahren
- Abrufe
Transkript
1 Bottom-up-Syntaxanalyse Lernziele: Einführung in die bu-syntaxanalyse LR(k)-Analyseverfahren Auflösung von Konflikten bei der Parsergenerierung Zusammenhang: KFGs und Kellerautomaten Einführung: Bottom-up-Analyseverfahren sind von großem praktischen Interesse, da sie mächtiger als td-verfahren sind. Grund: Die Produktionsauswahl erfolgt erst am Ende möglicher Produktionen, während sie bei td-verfahren im Allg. am Anfang erfolgt. Beim LR steht das L für die Leserichtung von links nach rechts, das R dafür, dass Rechtsableitungen gesucht werden. 77
2 Grundlegende Idee von LR-Verfahren: 1. Reduziere vom Satz zum Axiom 2. Dabei entstehen Satzformen mit Anfängen aus (N U T)* und einem Eingaberest aus T*, wobei die Anfänge Präfixe von Rechtssatzformen der Grammatik sein müssen. Solche Präfixe nennt man zuverlässige Präfixe (viable prefixes). 3. Reduktionen werden immer soweit links wie möglich ausgeführt. Die unter 2. genannte Eigenschaft gilt offensichtlich am Anfang der Reduktion (wenn die Eingabe ein Satz ist) und muss invariant bleiben, um Sackgassen zu vermeiden. Definition: (zuverlässiger Präfix) Sei S =>* βau => βαu eine Rechtsableitung zu Γ. rm rm Dann heißt α der Griff/Handle/Redex (auch die Reduktionsstelle) der Rechtssatzform βαu. Jedes Präfix von βα heißt ein zuverlässiges Präfix von Γ. 78
3 Satz: Die Sprache der zuverlässigen Präfixe einer Grammatik Γ ist regulär. Beweis: Siehe WM Satz und Korallar (S. 361,362). Wesentliche Schritte des Beweises im Folgenden durch Konstruktion des LR-DEA(Γ) illustriert. Beispiele: (Hinführung zu LR-Parsen) 1. Γ : S acd, C b, D a b Analyse von aba (siehe Vorlesung) kann in Sackgasse führen! Verfolgen der zuverlässigen Präfixe kann Sackgassen vermeiden. 2. Γ : S E #, E a ( E ) E E Analyse von ( ( a ) ) ( a ) # (siehe Vorlesung) Kellermechanismus kann gelesene Präfixteile verwalten. 3. Γ5 : S E #, E E + T T, T Analyse von + + # : (siehe Vorlesung) 79
4 Schematischer Syntaxbaum zur Eingabe xay mit a in T, x,y in T* und Startsymbol S: α x a y Lesezeiger Schiebe Schritt (shift): Reduktionsschritt (reduce): αa βα => α = βγ x a y Lesezeiger x a y Lesezeiger 80
5 Hauptprobleme bei LR: 1. Nur Reduktionen durchführen, so dass der entstehende Präfix zuverlässig bleibt. 2. Wann schieben, wann reduzieren, mit welcher Produktion reduzieren? Lösungsansatz: Zu jeder Grammatik Γ gibt es einen endlichen Automaten, den sogenannten LR-DEA(Γ), oft auch als LR(0)-Automat bezeichnet, der die zuverlässigen Präfixe beschreibt. Konstruktion von LR-DEA: Sei Γ = ( N, T, Π, S ) eine kf. Grammatik. Konstruiere zu jedem Nichtterminal den Item-Automaten (siehe ) Die Item-Automaten werden vereinigt. Startzustand des vereinigten Automaten ist der Startzustand des Item-Automaten für S. Endzustände sind die Endzustände der Item-Automaten. Füge ε-kanten ein von jedem Zustand, in dem der Positionspunkt vor einem Nichtterminal A steht, zu dem Startzustand des Item-Automaten von A. Wenn man alle Zustände der LR-DEA als Endzustände betrachtet, erhält man einen Automaten, der die Menge der zuverlässigen Präfixe beschreibt. 81
6 Beispiel: (Konstruktion eines LR-DEA) Konstruktion des LR-DEA für Γ5 : S E #, E E + T T, T E # [S.E #] [S E.# ] [S E#.] ε [E.E+T] [E.T ] ε ε E + T [E E.+T] [E E+.T] T [E T.] ε [E E+T.] [T. ] [T.] Deterministisch machen liefert folgenden Automaten: 82
7 q0 [S.E #] [E.E+T] [E.T ] [T. ] T q1 E [S E.# ] # [E E.+T] + Fehler q7 q5 [E T.] [T.] q6 q2 [S E#.] q3 [E E+.T] [T. ] T [E E+T.] q4 bezeichnet Fehlerkanten Die zuverlässigen Präfixe maximaler Länge: E#, T,, E+, E+T Bemerkungen: Im Beispiel enthält jeder Endzustand genau eine vollständig gelesene Produktion. Dies ist im Allg. nicht so. Enthält ein Endzustand mehrere vollständig gelesene Produktionen spricht man von einem reduce/reduce- Konflikt. Enthält ein Endzustand eine vollständig gelesene und eine unvollständig gelesene Produktion mit einem Terminal nach dem Positionspunkt, spricht man von einem shift/reduce-konflikt. 83
8 Beispiel: (Analyse mit LR-DEA) Analyse von + + # mit dem LR-DEA, unterstrichen ist jeweils der zuverlässige Präfix: Beachte: + + # <= T + + # <= E + + # <= E + T + # <= E + # <= E + T # <= E # <= Die Satzformen bestehen immer aus einem zuverlässigen Präfix und der Resteingabe. Verwendet man nur den LR-DEA zur Analyse muss man nach jeder Reduktion die Satzform von Anfang an lesen. deshalb: verwende Kellerautomaten zur Analyse S 84
9 Definition: (LR-Kellerautomat) Sei Γ = ( N, T, Π, S ) eine KFG; der LR-DEA- Kellerautomat zu Γ hat die folgenden Bestandteile: eine endliche Menge Q von Zuständen entsprechend den Zuständen des LR-DEA(Γ); eine Menge von Aktionen AKT = { schieben, akzeptieren, fehler} U red(π), wobei red(π) für jede Produktion A->α eine Aktion reduziere A->α enthält; eine Aktionstabelle at: Q eine Nachfolgertabelle nt: P x (NUT) P = { q in Q at(q) = schieben } AKT (action table) Q mit Bemerkungen: Der LR-DEA-Kellerautomat ist eine Kellerautomatenvariante speziell fürs LR-Parsen. Die Zustände codieren den gelesenen Linkskontext. Sofern keine Konflikte vorliegen, ergibt sich die Aktionstabelle direkt aus dem LR-DEA: akzeptieren: Endzustand zum Item-Automaten des Startsymbols. reduzieren: die anderen Endzustände fehler: Fehlerzustand schieben: alle anderen Zustände 85
10 Ausführen des Kellerautomaten: Konfiguration: Q* x T* wobei im Folgenden die Variable keller die Zustandsfolge und die Variable egr den Eingaberest bezeichnet; Anfangskonfiguration: ( q0, eingabe ), wobei q0 der Startzustand des LR-DEA ist. Interpretationsprozedur des Kellerautomaten: } (keller,egr) := (q0,eingabe) ; do { schritt( keller, egr ); } while( at(top(keller))!= akzeptieren and at(top(keller))!= fehler ); if ( at(top(keller))==fehler ) melde fehler; wobei void schritt( var ZustandSeq keller, var SymbolSeq egr ){ Zustand tk := top(keller); switch( at(tk) ) { case schieben: keller:= push( nt(tk,top(egr)), keller ) egr := rest(egr); break; case reduziere A a: keller:= mpop(laenge(a), keller); keller:= push(nt(top(keller),a),keller); break; } 86
11 Beispiel: (LR-Kellerautomat zu Γ5 ) LR-DEA mit Zuständen q0 q7 (siehe Beipiel oben) Aktionstabelle: q0 q1 q2 q3 q4 q5 q6 q7 schieben schieben akzeptieren schieben reduzieren E E+T reduzieren E T reduzieren T fehler Nachfolgertabelle: + # E T q0 q6 q7 q7 q1 q5 q1 q7 q3 q2 q7 q7 q2 q3 q6 q7 q7 q7 q4 q4 q5 q6 q7 Rechnung zu Eingabe + + # : Keller Eingaberest Aktion q0 q0 q6 q0 q5 q0 q1 q0 q1 q3 q0 q1 q3 q6 q0 q1 q3 q4 q0 q1 q0 q1 q3 q0 q1 q3 q6 q0 q1 q3 q4 q0 q1 q0 q1 q2 + + # schieben + + # reduzieren T + + # reduzieren E T + + # schieben + # schieben + # reduzieren T + # reduzieren E E+T + # schieben # schieben # reduzieren T # reduzieren E E+T # schieben akzeptieren 87
12 Fragen: Funktioniert die obige Konstruktion für alle eindeutigen Grammatiken? Für welche Grammatiken funktioniert sie? Wie kann man sie verallgemeinern/mächtiger machen? Beispiel: LR-DEA für Γ6 : S E #, E T+E T, T N( ), N q0 q1 q2 # q3 [S E.# ] [S E#.] [E T+E.] E [S.E #] [E.T+E] [E.T ] [T. ] [T.N( ) ] [N. ] N T [E T.+E] [E T. ] [T [N.].] q4 q6 + T N E q5 [E T+.E] [E.T+E] [E.T ] [T. ] [T.N( ) ] [N. ] q10 Fehler q7 [ T N(.) ] ( ) q8 q9 [ T N.( ) ] [ T N( ). ] bezeichnet Fehlerkanten 88
13 Bemerkung: Zwei Arten von Konflikten: Shift/reduce-Konflikt Reduce/reduce-Konflikt ( q4 im obigen Beispiel) ( q6 im obigen Beispiel) Grundbegriffe der LR-Theorie: Definition: ( LR(k)-Grammatik ) Sei Γ = ( N, T, Π, S ) eine kf. Grammatik, k in N. Γ heißt LR(k)-Grammatik, wenn für zwei beliebige Rechtsableitungen gilt: S =>* α Au => αβu rm S =>* rm γ Bv => αβw Ist präfix(k,u) = präfix(k,w), dann ist α = γ, A = B und v = w. Bemerkungen: rm rm Während bei LL-Grammatiken die Produktionsauswahl vom Sprachschatz des abzuleitenden Nichtterminals abhängt, hängt sie bei LR-Grammatiken von dem gesamten Linkskontext ab. Die Vorausschau erstreckt sich bei LL-Grammatiken auf den aus einem Nichtterminal zu erzeugenden Sprachschatz, bei LR-Grammatiken auf den Sprachschatz noch nicht gesehener Nichtterminale. 89
14 Satz: (Charakterisierung LR(0) ) Eine reduzierte KFG Γ ist genau dann LR(0), wenn LR-DEA(Γ) keine Konflikte enthält. Beweis: Siehe Vorlesung und Arbeitsblatt 1. Beispiel: (Anwendung LR(0)-Charakterisierung) Zeige mit obigem Lemma, dass die Grammatik S A B, A aab 0, B abbb 1 LR(0) ist (siehe Vorlesung). Bemerkungen: (zur Mächtigkeit von LR(k) ) Für jede kontextfreie Sprache L mit der Präfixeigenschaft ( v,w in L: v ist nicht Präfix von w ) gibt es eine LR(0)-Grammatik. Die Grammatik S A B, A aab 0, B abbb 1 ist nicht LL(k) (siehe oben), aber LR(0). Methoden und Vorgehensweisen, die wir hier für LR(1) demonstrieren, lassen sich in geeigneter Form auf den Fall LR(k) bzw. SLR(k) bzw. LALR(k) verallgemeinern. 90
15 Auflösen von Konflikten: Idee: <k Berechne Vorausschaumengen aus (NUT) für die Items. Dafür gibt es unterschiedliche Verfahren (s.u.). Die Vorausschaumenge zu einem Item in einem Zustand approximiert die Menge der möglichen Präfixe mit Länge k, mit denen der Eingaberest bei diesem Item beginnen kann. Sind die Vorausschaumengen für Items, die zu Konflikten führen, disjunkt, so kann die auszuführende Aktion (schieben/reduzieren) durch Vorausschau von k Symbolen bestimmt werden: Wähle die Aktion zu dem Item aus, in dessen Vorausschaumenge der Präfix des Eingaberestes liegt. Dementsprechend muss die Aktionstabelle erweitert werden. Verbreitete Verfahren: SLR(k) benutzt LR-DEA und verwendet FOLLOWk der konfligierenden Items als Vorausschaumengen. LALR(k) lookahead LR benutzt LR-DEA, aber mit zustandsabhängigen Vorausschaumengen. LR(k) integriert die Berechnung der Vorausschaumengen mit der Automatenkonstruktion (LR(k)-Automat). 91
16 Definition: ( SLR(1)-Grammatik ) Sei Γ= ( N, T, Π, S ) eine kf. Grammatik und LA( [A α.] ) = FOLLOW1(A). Ein Zustand von LR-DEA(Γ) besitzt einen SLR(1)-Konflikt, wenn es in ihm entweder zwei unterschiedliche reduce-items gibt mit LA( [A α.] ) LA( [B β.] ) = / { } oder zwei Items [A α.] und [B α.aβ] mit a in LA( [A α.] ). Γ heißt SLR(1), wenn es keinen SLR(1)-Konflikt besitzt. U Beispiel: Γ6 : S E #, E T+ E T, T N( ), N ist eine SLR(1)-Grammatik. Zu betrachten sind die Konflikte zwischen [E T. ] und [E T.+E] bzw. zwischen [T.] und [N.]. FOLLOW1(E) { + } = { # } { + } = { } U FOLLOW1(T) FOLLOW1(N) = { #,+ } { ( } = { } U U U 92
17 Beispiel: (nicht SLR(1)-Sprache) Betrachte folgende Grammatik für vereinfachte C-Ausdrücke: Γ7 : S E #, E L = R R, L *R, R L Der zugehörige LR-DEA: [E R.] R [S.E# ] [E.L=R] [E.R] [L.*R] [L.] [R.L] L [E L.=R] [R L.] [S E.# ] # [S E#. ] E [L *.R] R [R.L] * [L.*R] [L.] * L = [L.] [E L=.R] [R.L] [L.*R] [L.] [R L.] L R [L *R.] [E L=R.] * Der einzige Zustand mit einem Konflikt enthält die Items [E L.=R] und [R L.] mit FOLLOW1(R) { = } = { =, # } { = } = { =} = / { } U U 93
18 Konstruktion von LR(1)-Automaten: Items der Form [ A α.β, V ] mit V T und der Bedeutung, dass α auf dem Keller liegt und der Anfang des Eingaberests aus βc ableitbar ist mit c in V. D.h. V FOLLOW1(A). U U S E#. S E.# E S.E# E.L=R # E.R # L.*R #,= L. #,= R.L # * # L *.R #,= R.L #,= L.*R #,= L. #,= L R L R E L.=R # R L. # E R. # R L. # L. #,= L. # R L. #,= L *R. #,= = L L E L=.R # R.L # L.*R # L. # R E L=R. # * * L *.R # R.L # L.*R # L. # R L *R. # * Konflikt kann behoben werden, da {=} {#} = {} U 94
19 LALR(1)-Automaten: Aus dem LR(1)-Automaten erhält man den LALR(1)- Automaten durch Zusammenlegen der Zustände, in denen sich die Items nur in der Vorausschaumenge unterscheiden. Die Vorausschaumengen zu gleichen Items werden dabei vereinigt. Der resultierende Automat hat die gleichen Zustände wie der LR-DEA.. q8 q4 S E#. E L.=R # = E L=.R # R L. # R.L # q3 # L L.*R # S E.# q5 L. # E R. # q0 E R q9 R S.E# E L=R. # E.L=R # E.R # q1 L.*R #,= L. #,= L L. #,= R.L # q2 * L *.R #,= R.L #,= L.*R #,= L. #,= L R q6 R L. #,= q7 L *R. #,= * * Der LALR(1)-Automat lässt sich allerdings effizienter direkt konstruieren. 95
20 Lesen Sie zu Unterabschnitt : Wilhelm, Maurer: aus Kap. 8, Abschnitt bis einschl , S Zusammenhang der Grammatikklassen: eindeutige Grammatiken LL(k) LL(1) LR(k) LR(1) LALR(1) SLR(1) LL(0) LR(0) mehrdeutige Grammatiken 96
Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse
Compilerbau Syntaxanalyse 68 LR(1)-Syntaxanalyse Bei der LL(1)-Syntaxanalyse wird allein aufgrund des nächsten Tokens die zu verwendende Produktion ermittelt. Bei der LR(1)-Syntaxanalyse braucht diese
LR Parsing. Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52)
LR Parsing Prinzip: Entwicklung des Parsebaums bottom up, von links nach rechts (Abb. 2.52) Parserkonfiguration: s 0 X 1 s 1... X m s m, t i t i 1... t n 1.Stack: enthält abwechselnd Zustand sk und Grammatiksymbol
5. Syntaxanalyse und der Parser-Generator yacc. 5.5 Aufsteigende Analyse. Absteigende Analyse versus aufsteigende Analyse. 5.5 Aufsteigende Analyse
5. Syntaxanalyse und der Parser-Generator yacc 5.1 Einleitung 5.2 Kontextfreie Grammatiken 5.3 Grundlagen von yacc 5.4 Absteigende Analyse Übersetzergenerierung Syntaxanalyse und yacc (2) Jan Bredereke,
LR-Parsing. Präsentation vom 19. Dez Adriana Kosior, Sandra Pyka & Michael Weidauer. Automatische Syntaxanalyse (Parsing) Wintersemester 12/13
LR-Parsing Präsentation vom 19. Dez. 2012 Adriana Kosior, Sandra Pyka & Michael Weidauer Automatische Syntaxanalyse (Parsing) Wintersemester 12/13 Inhalte Einleitung LR(0) Parser LR(1) Parser Fazit Literatur
Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion
Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.
Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion
Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.
Bottom-Up Analyse. im Einzelnen
Bottom-Up Analyse im Einzelnen ... mit Backtracking Wir können den Kellerautomaten zum Satz L(KFG)->L (N1KA) erweitern: Wir nummerieren die Produktionen. ... mit Backtracking Der Automat nimmt dann immer
Konstruieren der SLR Parsing Tabelle
Konstruieren der SLR Parsing Tabelle Kontextfreie Grammatik (CFG) Notation 1. Diese Symbole sind Terminals: (a) Kleinbuchstaben vom Anfang des Alphabets wie a, b, c. (b) Operator Symbole wie +,, usw. (c)
Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)
Kellerautomat (1/4) Kellerautomat (2/4) Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werden PDAs sind eine Erweiterung der endlichen Automaten um ein einfaches
Einführung - Parser. Was ist ein Parser?
Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven
Algorithmus: // Zähler für jede Regel. // Initialisierung. // Initialisierung von rhs } // 2 N result = ; // Ergebnis-Menge int count[p];
Algorithmus: 2 N result = ; // Ergebnis-Menge int count[p]; // Zähler für jede Regel 2 P rhs[n]; // VorkommeninrechtenSeiten forall (A N) rhs[a] = ; // Initialisierung forall ((A,i) P) { // count[(a,i)]
(KFG und) Kellerautomaten
(KFG und) Kellerautomaten (KFG und...) Auch für die Sprachen, die durch kontextfreie Grammatiken beschrieben werden, gibt es Automaten, die genau diese Sprachklasse akzeptieren. Das sind Automaten mit
LR-Parser, Shift-Reduce-Verfahren
LR-Parser, Shift-Reduce-Verfahren Bottom-Up-Syntaxanalyse LR-Parser L: Eingabe von links nach rechts; R: Rechtsherleitung Shift-Reduce-Verfahren Beachte: Kein Backtracking nicht auf jede Grammatik anwendbar
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität
Klausur zur Vorlesung Formale Sprachen und Automaten TIT03G2 mit Lösungsvorschlägen
Klausur zur Vorlesung Formale Sprachen und Automaten TIT03G2 mit Lösungsvorschlägen Name: Matr.-Nr.: Vorname: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 7 10 6 8 7 9 err. Punkte Gesamtpunktzahl: Note: Aufgabe
Einführung in die Theoretische Informatik
Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Deterministische Kellerautomaten Von besonderem Interesse sind kontextfreie Sprachen,
Kapitel 5: Syntax-Analyse
Kapitel 5: Syntax-Analyse Aufgabe Die Token-Folge wird strukturiert in Anweisungen, Ausdrücke etc., um die Semantische Analyse und Code-Erzeugung zu ermöglichen Themen Kontextfreie Grammatik Äquivalente
Deterministischer Kellerautomat (DPDA)
Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,
Definition von LR(k)-Grammatiken
Definition von LR(k)-Grammatiken Ziel: Ein Lookahead von k soll ausreichen um entscheiden zu können, welche Regel angewendet werden muss. Definition: FIRST k (w 1 w n ):= w 1 w k, falls n k, w 1 w n, sonst.
Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,
Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen
10 Kellerautomaten. Kellerautomaten
10 Kellerautomaten Bisher hatten wir kontextfreie Sprachen nur mit Hilfe von Grammatiken charakterisiert. Wir haben gesehen, dass endliche Automaten nicht in der Lage sind, alle kontextfreien Sprachen
Kapitel 3. Kontextfreie Sprachen. Induktive Charakterisierung der Sprache L der korrekten Klammerausdrücke: (w) L, falls w L vw L, falls v, w L
Kapitel 3 Kontextfreie Sprachen Induktive Charakterisierung der Sprache L der korrekten Klammerausdrücke: s. Übung ε L (w) L, falls w L vw L, falls v, w L (R0) (R1) (R2) Für beliebige w {(, )} kann w L
LL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)
LL(k)-Analyse Eine KFG G = (N,T,P,S) heisst LL(k)-Grammatik, wenn für alle w,x,y T*, α,β,σ (N U T)* und A N mit 1. S =l>* waσ =l> wασ =l>* wx, 2. S =l>* waσ = > wβσ =l>* wy, 3. start k (x) = start k (y)
Die Vorausschau-Tabelle:
A 0 i 0 A 1 i 1 β 1 A 2 i 2 β 2 B i β γ Die Vorausschau-Tabelle: Wir setzen M[ [A α Bβ, L], w] = i genau dann wenn (B, i) die Regel B γ ist und: w First k (γ) First k (β) L 440 ([A 0 α 1 A 1 β 1, L 1 ],
Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät [email protected] Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale
Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.
Reguläre Ausdrücke Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (i) ist ein regulärer Ausdruck über Σ. (ii) ε ist ein regulärer Ausdruck über Σ. (iii) Für jedes a Σ ist a ein regulärer
Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.
Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden
Das Halteproblem für Turingmaschinen
Das Halteproblem für Turingmaschinen Das Halteproblem für Turingmaschinen ist definiert als die Sprache H := { T w : T ist eine TM, die bei Eingabe w {0, 1} hält }. Behauptung: H {0, 1} ist nicht entscheidbar.
LR(1) Itemmengenkonstruktion
LR(1) Itemmengenkonstruktion Grammatik: S A$ xb A aab B B x Sprache: {xb} {anxbn n 0} nicht LL(1) x FIRST(B) x FIRST(A) also: FIRST/FIRST Konflikt bei S A$ xb nicht SLR(1) (Abb. 2.96) betrachte Item B
Rekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
Ogden s Lemma: Der Beweis (1/5)
Ogden s Lemma: Der Beweis (1/5) Wir betrachten zuerst die Rahmenbedingungen : Laut dem auf der vorhergehenden Folie zitierten Satz gibt es zur kontextfreien Sprache L eine Grammatik G = (Σ, V, S, P) in
Spracherkennung (Syntaxanalyse)
Kellerautomaten Kellerautomaten 8 Spracherkennung (Syntaxanalyse) Algorithmus gesucht, der für L T (möglichst schnell) entscheidet, ob w L (Lösung des Wortproblems) Grammatik Automat Aufwand rechtslinear
2.6 Deterministisches Top-Down-Parsen
48 2.6 Deterministisches Top-Down-Parsen Als nächstes wollen wir uns mit Methoden zur syntaktischen Analyse befassen. Der lexikale canner eines Compilers liest die Eingabe Zeichen für Zeichen und erzeugt
Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen
Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 6 7 7 8 8 12 err. Punkte Gesamtpunktzahl: Note: 1 Aufgabe 1 (3+1+1+1 = 6 Punkte) Es seien
Kontextfreie Sprachen werden von PDAs akzeptiert
Kontextfreie Sprachen werden von PDAs akzeptiert Sei G = (Σ, V, S, P) eine kontextfreie Grammatik. Dann gibt es einen PDA A mit L(A) = L(G). Der PDA A arbeitet mit nur einem Zustand q 0, besitzt das Kelleralphabet
6 Kontextfreie Grammatiken
6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,
Grundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 04.06.2013 An den Transitionen sieht man zunächst, dass nur die folgenden Zustandsübergänge
Einführung in die Theoretische Informatik
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 7 15. Juni 2010 Einführung in die Theoretische
Automaten und formale Sprachen Klausurvorbereitung
Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen
5.2 Endliche Automaten
114 5.2 Endliche Automaten Endliche Automaten sind Turingmaschinen, die nur endlichen Speicher besitzen. Wie wir bereits im Zusammenhang mit Turingmaschinen gesehen haben, kann endlicher Speicher durch
kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung
Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben
Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri
Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS
Einführung in die Computerlinguistik
Einführung in die Computerlinguistik Kontextfreie Sprachen und Pushdown-Automaten Dozentin: Wiebke Petersen WS 2004/2005 Wiebke Petersen Formale Komplexität natürlicher Sprachen WS 03/04 Wiederholung c
Formale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 4: Typ 2 kontextfreie Sprachen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel
Automaten und Formale Sprachen 14. Vorlesung
Automaten und Formale Sprachen 14. Vorlesung Martin Dietzfelbinger 24. Januar 2006 Bis 31. Januar 2006: Folien studieren. Details und Beispiele im Skript, Seiten 174 196. Definitionen lernen, Beispiele
Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
DisMod-Repetitorium Tag 4
DisMod-Repetitorium Tag 4 Endliche Automaten, Reguläre Sprachen und Kontextfreie Grammatiken 22. März 2018 1 Endliche Automaten Definition DFA Auswertungen Äquivalenzrelationen Verschmelzungsrelation und
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Übersicht 1. Motivation 2. Terminologie
Musterlösung Informatik-III-Klausur
Musterlösung Informatik-III-Klausur Aufgabe 1 (1+4+3+4 Punkte) (a) 01010 wird nicht akzeptiert: s q 0 q 1 q 2 f q 2 10101 wird akzeptiert: s q 2 q 2 f q 2 f (b) ε: {s, q 0, q 1, q 2 }, {f} 0: {s, q 0,
Das Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w
Kontextfreie Sprachen
Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung
Grundlagen der theoretischen Informatik
Grundlagen der theoretischen Informatik Kurt Sieber Fakultät IV, Department ETI Universität Siegen SS 2013 Vorlesung vom 14.05.2013 Analog zu Linksableitungen definiert man Definition 2.45 Ein Ableitungsschritt
Von der Grammatik zum AST
Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von
Deterministische endliche Automaten - Wiederholung
Deterministische endliche Automaten - Wiederholung Die folgende Klasse Zahl stellt einen endlichen Automaten dar. Ermittle die Größen des Automaten und zeichne den Zustandsgraphen. Gib Zeichenfolgen an,
2. Kapitel: Syntax- und Typanalyse
2. Kapitel: Syntax- und Typanalyse Lernziele: Aufgaben der verschiedenen Syntaxanalysephasen Zusammenwirken der Syntaxanalysephasen Spezifikationstechniken für Syntaxanalyse Generierungstechniken Anwendung
Klausur zur Vorlesung Informatik III Wintersemester 2007/2008
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Klausur zur Vorlesung Informatik III Wintersemester 2007/2008 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer:
Mehrdeutige Grammatiken
Mehrdeutige Grammatiken Wir haben gesehen, dass es auch mehr als eine Linksableitung, d.h. mehr als einen Syntaxbaum geben kann, um das selbe Terminalwort zu erzeugen. Eine Grammatik, die für mindestens
Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:
4.7 Kellerautomaten In der Literatur findet man häufig auch die Bezeichnungen Stack-Automat oder Pushdown-Automat. Kellerautomaten sind, wenn nichts anderes gesagt wird, nichtdeterministisch. Definition
8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
Kontextfreie Sprachen
Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch
9.4 Grundlagen des Compilerbaus
Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie
Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.02.2006 28. und letzte Vorlesung 1 Die Chomsky-Klassifizierung Chomsky-Hierachien 3: Reguläre Grammatiken
Theoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 5: Reguläre Ausdrücke und Grammatiken [email protected] Software Systems Engineering Reguläre Sprachen Bisher: Charakterisierung von Sprachen über Automaten
Die mathematische Seite
Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion
Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.
Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe
Fachseminar Compilerbau
Fachseminar Compilerbau WS 08/09 Matthias Schiller Syntaktische Analyse 1. Prinzip der Top-Down-Analyse 2. LL(1)-Grammatiken Modell-Vorstellung Der Scanner liefert als Ergebnis der lexikalischen Analyse,
Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften
Formalismen für RE Formale rundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen Frank Heitmann [email protected] Satz Zu jeder regulären Sprache L gibt es einen DFA A mit L(A) =
Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Hier Aufkleber mit Name und Matrikelnr. anbringen
Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht
Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die
Automatentheorie und formale Sprachen
Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das
Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An
Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,
Informatik III - WS07/08
Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner [email protected] Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition
Einführung in die Theoretische Informatik
Technische Universität München akultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 6 11. Juni 2010 Einführung in die Theoretische
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018
2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie
c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}
2 Endliche Automaten Fragen 1. Was ergibt sich bei {a, bc} {de, fg}? a) {abc, defg} b) {abcde, abcfg} c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} 2. Was ergibt sich bei {abc, a} {bc, λ}?
Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER
Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.
