Syntaktische Analyse Teil 3

Größe: px
Ab Seite anzeigen:

Download "Syntaktische Analyse Teil 3"

Transkript

1 Syntaktische Analyse Teil 3 Übersicht Bottom-up-Syntaxanalyse LR(k-Analysatoren n Charakteristischer endlicher Automat char(k G n Item-Kellerautomat K G und char(k G n Zuverlässige Präfixe, gültige Items LR-DEA(G Kellerautomat K 0 LR(k n Definition, Eigenschaften, Beispiele n LR(k-Items n Alternative Definition für LR(k LR(k-Parser Kanonische LR(1-Zustandsmengen Andere LR-Verfahren n SLR(1 n LALR(1 ehlerbehandlung in LR-Parsern Lernziele Das Grundprinzip der Bottom-Up- Syntaxanalyse erklären können Grundee und wichtigste theoretische Aspekte von LR(k benennen können Beschreiben können, wie ein LR(k- Parser im Prinzip arbeitet Verschiedene Verfahren zur Berechnung von LR(1-Zustandsmengen und ihre Zusammenhänge gegenüberstellen können Die Grundeen der ehlerbehandlung in LR-Parsern beschreiben können

2 Bottom-up-Syntaxanalyse (1/2 Bottom-up-Parser Konstruiert Syntaxbaum von den Blättern her Ist Rechtsparser Anfangssituation Aktivitäten ( shift-reduce-parser Keller ε Resteingabe + * n Terminale lesen = Kellern des nächsten Eingabesymbols ( shift n Am Kellerende Produktionen von rechts nach links anwenden ( reduce Beispiel (Rechtsableitung und shift-reduce-verhalten n Geg.: kfg G 2 = ({S,E,T,}, {+, *,(,,}, P, S mit P = {S E, E TE, E ε, E +E, T T, T ε, T *T, (E, } T S E T + E E S E T T + E E Eingabewort + * ε T E ε T E T ε T ε * T * T T T ε ε reduktive Sicht Rechtsableitung

3 Bottom-up-Syntaxanalyse (2/2 Schwierigkeiten Eine Reduktion die gemacht werden muss (handle, um eine Rechtsableitung zu erhalten, darf nicht verpasst werden (d.h. im Keller durch ein gelesenes Symbol zugedeckt werden Aber: Nicht jede rechte Seite einer Produktion am oberen Kellerende ist ein handle ( mögliche Sackgassen bei der Analyse Beispiel Sei G 0 = ({S,E,T,}, {+, *,(,,}, {S E, E E+T T, T T *, (E }, S Bottom-up-Analyse des Satzes * Keller Eingabe Kommentar T * T * T * T * T E S * * * Reduktion von T zu E führte in Sackgasse Reduktion von zu T führte in Sackgasse akzeptiert

4 LR(k-Analysatoren Grundlage Item-Kellerautomat K G Bei LL(k n Durch Vorausschau: Eindeutige Auswahl von Alternativen bei Expansionsübergängen Bei LR(k n Durch Vorausschau: Entscheung über Weiterlesen oder Reduzieren L: von Links nach rechts lesen R: Rechtsparser k: Länge der Vorausschau Charakteristischer endlicher Automat char(k G Alternative Darstellung des Item-Kellerautomaten K G für eine kfg G char(k G = (V T U V N, It G, Δ c, [S.S], {[X α.] X α e P}, wobei n Δ c = def {([X α.yβ], Y, [X αy.β] X αyβ e P Y e V T UV N } U {([X α.yβ], ε, [Y.γ] X αyβ e P Y γ e P} n D.h. Δ c hat Übergänge innerhalb einer Produktion (unter den Symbolen aus V T U V N Übergänge, die den (E-Übergängen von K G entsprechen Ziel Schrittweiser Übergang zu deterministischem Kellerautomaten, der bottom-up arbeitet

5 Charakteristischer endlicher Automat char(k G Beispiel Sei G 0 = ({S,E,T,}, {+, *,(,,}, {S E, E E+T T, T T *, (E }, S Charakteristischer endlicher Automat char(k G 0 ε ε ε E [S.E] [S E.] ε ε ε E + T [E.E+T] [E E.+T] [E E+.T] [E E+T.] ε ε T [E.T] [E T.] ε ε ε T [T T. * ] * [T T *.] ε ε [T.] [T.] ε ε [.(E] ( [ (.E] E [ (E.] [ (E.] ε [.] [.] [T.T * ] [T T *.]

6 Item-Kellerautomat K G und char(k G Korrespondenz (zwischen Item-Kellerautomat K G und char(k G Item-Kellerautomat K G Charakteristischer endlicher Automat char(k G n Expansion ε-übergang n Lesen Lese-Übergang unter Terminalsymbol n Reduktion Lese-Übergang unter Nichtterminalsymbol Wichtige Eigenschaft Betrachtet man alle Zustände als Endzustände, ist die von char(k G akzeptierte Sprache für LR-Analyse interessant ( reguläre Sprache der zuverlässigen Präfixe

7 Zuverlässige Präfixe, gültige Items (1/2 Begriffe Sei S * rm γxw rm n Griff (der Rechtssatzform γβαw: βα γβαw eine Rechtsableitung zu einer kfg G, [X β.α] Item von G n Zuverlässiges Präfix (von G: jedes Präfix von γβα n Item [X β.α] ist gültig für zuverlässiges Präfix γβ E Rechtsableitung S * rm γxw rm γβαw Intuition n Griff (in einer nicht mehrdeutigen Grammatik: eindeutig bestimmtes Teilwort, das bei bottomup-analyse beim nächsten Reduktionsschritt durch Nichtterminal zu ersetzen ist n Zuverlässiges Präfix: Anfang einer Rechtssatzform; Reduktion (höchstens am Ende möglich n Gültiges Item [X β.α] für zuverlässiges Präfix γβ: zugehörige Produktion ist Kandat für spätere Reduktionen

8 Zuverlässige Präfixe, gültige Items (2/2 Beispiele Sei G 0 = ({S,E,T,}, {+, *,(,,}, {S E, E E+T T, T T *, (E }, S Es war n ür Rechtsableitung S * rm γxw rm γβαw: Griff = βα; zuverl. Präfixe = Präfixe von γβα n [X β.α] gültig für zuverlässiges Präfix γβ E Rechtsableitung S * rm γxw rm γβαw Rechtssatzform Griff zuverlässiges Präfix Begründung n E + E, E+, E+ S * rm E + T rm E + n T * T, T *, T * S * rm T * rm T * Zuverl. Präfix gültige Items Begründung γ β α X w n E + [E E+.T] S rm E rm E + T ε E+ T E ε n [T.] S * rm E + T rm E + E+ ε T ε n [.] S * rm E + rm E + E+ ε ε n (E + ( [ (.E] S * rm (E+ rm (E+(E (E+ ( E Einige wichtige akten Zu jedem zuverlässigen Präfix gibt es mindestens ein gültiges Item char(k G akzeptiert γ e (V T UV N * in Zustand q γ ist zuverl. Präfix + q ist gültiges Item Die Sprache der zuverlässigen Präfixe einer kfg ist regulär

9 LR-DEA(G (1/3 LR-DEA(G Zu char(k G gehörender deterministischer endlicher Automat (Endzustände sind die Zustände, die vollständige Items enthalten Beispiel ε ε ε E [S.E] [S E.] ε ε ε E + T [E.E+T] [E E.+T] [E E+.T] [E E+T.] ε ε T [E.T] [E T.] ε ε ε T [T T. * ] * [T T *.] ε ε [T.] [T.] ε ε [.(E] ( [ (.E] E [ (E.] [ (E.] ε [.] [.] [T.T * ] [T T *.] char(k G = {[S.E], [E.E+T], [E.T], [T.T * ], [T.], [.(E], [.]} = {[S E.], [E E.+T]} = {[E T.], [T T. * ]} S 3 = {[T.]} E T S 3 Konstruktion von LR-DEA(G

10 LR-DEA(G (2/3 Vollständiger LR-DEA(G E ( T S 3 S 4 ( T + ( E S 6 + S 8 1 ( * T S 9 * S 7 0 = {[S.E], [E.E+T], [E.T], [T.T * ], [T.], [.(E], [.]} = {[S E.], [E E.+T]} = {[E T.], [T T. * ]} S 3 = {[T.]} S 4 = {[ (.E], [E.E+T], [E.T], [T.T * ], [T.], [.(E], [.]} S 6 = {[E E+.T], [T.T * ], [T.], [.(E], [.]} S 7 = {[T T *.], [.(E], [.]} S 8 = {[ (E.], [E E.+T]} S 9 = {[E E+T.], [T T. * ]} 0 = {[T T *.]} 1 = {[ (E.]} = {[.]}

11 LR-DEA(G (3/3 Direkte Konstruktion des LR-DEA(G Algorithmus LR-DEA var q, q : set of item; function Abschluss (s: set of item: set of item; begin q := s; while exist [X α.yβ] in q and Y γ in P and Y.γ not in q do q := q U {[Y.γ]} od; return(q end; function Nachf (s: set of item, Y: V N U V T : set of item; return ({[X αy.β] [X α.yβ] e s}; begin Q d := Abschluss({[S.S ]}; δ d := 0; foreach q in Q d and X in V N U V T do let q = Abschluss(Nachf(q, X in if q 0 then end if q not in Q d then Q d := Q d U {q } fi; δ d := δ d U {q X q } fi tel od Beispiel Geg.: {S E, E E+T T, T T *, (E } Abschluss({[S.E]} = {[S.E]} U {[E.E+T], [E.T]} Nachf(, = {[T.]} = S 3 Abschluss(S 3 = {[T.]} = S 3 U {[T.T * ], [T.]} U {[.(E], [.]} = 0 Nachf(, E = {[S E.], [E E.+T]} = Abschluss( = {[S E.], [E E.+T]} = Nachf(, T = {[T T. * ], [E T.]} = Abschluss( = {[T T. * ], [E T.]} = Bedeutung von foreach: Alle möglichen Kombinationen (bis sich nichts mehr ändert E T S 3

12 Eigenschaften des LR-DEA(G (1/2 Wichtige Eigenschaften LR-DEA(G akzeptiert die Sprache der zuverlässigen Präfixe von G, die mit Griff enden LR-DEA(G ist so konstruiert, dass Nach Konstruktion sind die Endzustände diejenigen Zustände die vollständige Items enthalten n Die (i.a. unendliche Menge der zuverlässigen Präfixe in endlich viele disjunkte Teilmengen zerlegt wird, die durch die Zustände von LR-DEA(G repräsentiert sind n Der einem zuverlässigen Präfix γ zugeordnete Zustand aus allen für γ gültigen Items besteht, d.h. allen möglichen Beschreibungen der aktuellen Analysesituation

13 Eigenschaften des LR-DEA(G (2/2 Weitere wichtige Eigenschaft LR-DEA(G lässt sich auch als Beschreibung eines (nicht-deterministischen Kellerautomaten K 0 = def (V T, Γ, Δ, q 0, {q f } auffassen n Γ: Kelleralphabet = Menge der Zustände von LR-DEA(G n q 0 : Anfangszustand = q d (= Anfangszustand von LR-DEA(G n q f : Endzustand = Zustand des LR-DEA(G, der das Item [S S.] enthält n Δ z Γ*x (V T U {ε} x Γ*: Übergangsrelation, definiert durch Lesen (q, a, qδ d (q, a e Δ, falls δ d (q, a definiert ist (nur möglich, wenn mindestens 1 Item der orm [X....a... ] in q Reduzieren (qq 1... q n, ε, qδ d (q, X e Δ, falls [X α.] e q n, X S und α = n (q 0 q f, ε, q f e Δ

14 Kellerautomat K 0 Beispiel Zugehöriger Kellerautomat K 0 E T ( ( S 3 S 4 T E S 6 Analyse von * + T S 8 1 * (1 * (18 S 3 * (16 * (4 S 7 (9 ( + * ( S 9 * S 7 0 S 7 ε (17 S 7 0 ε (19 ε (14 ε (22 Γ = {S i 0 i 11} q 0 = q f = Elemente der Übergangsrelation Lesen (1 (,, (2 (, (, S 4 (3 (, +, S 6 (4 (5 (, *, S 7 (S 4,, S 4 (6 (S 4, (, S 4 S 4 (7 (S 6,, S 6 (8 (S 6, (, S 6 S 4 (9 (S 7,, S 7 (10 (S 7, (, S 7 S 4 (11 (S 8, +, S 8 (12 (S 8,, S 8 1 (13 (S 9, *, S 9 S 7 Probleme mit K 0 Shift-reduce-Konflikt Reduce-reduce-Konflikt Reduzieren (14 (, ε, (15 (S 4, ε, S 4 S 8 (16 ( S 3, ε,,... (17 (S 7, ε, S 7 0,... (18 (, ε, S 3,... (19 ( S 7 0, ε,,... (20 ( S 6 S 9, ε,,... (21 ( S 4 S 8 1, ε, S 3,... (22 (, ε,

15 Konflikte Begriffe Shift-reduce-Konflikt Ein Zustand erlaubt sowohl Lese- wie Reduktionsübergang (d.h. enthält vollständiges Item der orm [X α.], sowie Item der orm [X α.aβ], a e V T Reduce-reduce-Konflikt Ein Zustand erlaubt mehr als einen Reduktionsübergang (d.h. enthält mindestens 2 vollständige Items der orm [X α.], [Y β.] Ungeeignete Zustände des LR-DEA Zustand q ist ungeeignet q enthält shift-reduce- oder reduce-reduce-konflikt Beispiel Ungeeignete Zustände (shift-reduce-konflikte n = {[S E.], [E E.+T]} n = {[E T.], [T T. * ]} n S 9 = {[E E+T.], [T T. * ]} Geeigneter Zustand enthält also - entweder nur unvollständige Items - oder genau ein (shift-konflikt-freies vollständiges Item Hier keine reduce-reduce-konflikte, da jeder Zustand höchstens ein vollständiges Item enthält

16 LR(k: Definition, Eigenschaften Intuitiv ormal Eine kfg heißt LR(k-Grammatik, wenn in jeder Rechtssatzform jeder Rechtsableitung n Der Griff lokalisiert und Bedeutet für LR(0: in jeder Rechtssatzform sind Griff und zugehörige Produktion eindeutig festgelegt n Die zugehörige Produktion durch Vorausschau auf (höchstens k Symbole der Resteingabe eindeutig bestimmt werden kann Geg.: erweiterte kfg G = (V N U {S }, V T, P U {S S}, S mit S V N. G heißt LR(k-Grammatik, wenn n für zwei Rechtsableitungen S * rm αxw rm αβw S * rm γyx rm αβy n mit k : w = k : y n gilt α = γ und X = Y und x = y

17 LR(k: Beispiele (1/2 Beispiel Geg.: kfg G mit Produktionen {S A B, A aab 0, B abbb 1} Bekannt: G ist nicht LL(k für beliebiges k Mögliche Rechtsableitungen und Rechtssatzformen n S rm A * rm an-1 aabb n-1 rm a n 0b n (n 1 n S rm A rm 0 n S rm B * rm an-1 abbbb 2n-1 rm a n 1b 2n (n 1 n S rm B rm 1 G ist LR(0: Griff und zugehörige Produktion sind jeweils eindeutig festgelegt Beispiel Geg.: kfg G 6 mit Produktionen {S aac, A Abb b} Ist nicht LL(k, da linksrekursiv Mögliche Rechtsableitungen und Rechtssatzformen n S * rm aab2n c rm aabbb 2n c n S * rm aab2n c rm abb 2n c G 6 ist LR(0: ür die Präfixe aabb und ab (der Rechtssatzformen aab 2n+2 c bzw. ab 2n+1 c ist der Griff jeweils eindeutig bestimmt (nämlich Abb bzw. b

18 LR(k: Beispiele (2/2 Weitere Beispiele kfg G 7 mit Produktionen {S aac, A bba b} Rechtsrekursion ist kein Problem für LR n Mögliche Rechtsableitungen und Rechtssatzformen S * rm ab2n Ac rm ab 2n bbac S * rm ab2n Ac rm ab 2n bc n G 7 ist LR(1: Kritische Rechtssatzform ist ab 2n+1 w alls 1 : w = b, dann Griff in w alls 1 : w = c, dann Griff = b (letztes b in b 2n+1 Übrigens auch nicht LL(k kfg G 8 mit Produktionen {S aac, A bab b} ist nicht LR(k für beliebiges k Beweis: Sei k beliebig, aber fest gewählt. ür die Rechtsableitungen (mit n k n S * rm abn Ab n c rm ab n bb n c (d.h. S * rm αxw rm αβw mit α = abn, X =A, β = b, w = b n c n S * rm abn+1 Ab n+1 c rm ab n+1 bb n+1 c (d.h. S * rm γyx rm αβy mit γ = abn+1,y = A, β = b, x = b n+1 c, y = b n+1 c n gilt k: w = k: y = b k,x = Y, x = y, aber α γ LR(k-Eigenschaft und LR-DEA Eine kfg G ist LR(0-Grammatik LR-DEA(G hat keine ungeeigneten Zustände

19 LR(k-Items LR(k-Item Sei G = (V N, V T, P U {S S}, S erweiterte kfg, X αβ e P n LR(k-Item: [X α.β, L], L z V T# k, mit Kern: [X α.β] Vorausschaumenge: L Mengen von Worten über V T mit Länge k, evtl. durch # abgeschlossen n (für zuverlässiges Präfix γα gültiges LR(k-Item [X α.β, L]: für alle u e L gibt es Rechtsableitung S # * rm γxw rm γαβw mit u = k: w Beispiel Geg.: G 0 = ({S,E,T,}, {+, *,(,,}, {S E, E E+T T, T T *, (E }, S Es gilt n [E E+.T, {, +}] ist gültiges LR(1-Item für zuverlässiges Präfix (E+ in G 0 ür u = : S# * rm (E# rm (E+T# mit γ = (, α = E+, β = T, w = # ür u = +: S# * rm (E+# rm (E+T+# mit γ = (, α = E+, β = T, w = +# n [E T., { * }] ist kein gültiges LR(1-Item für irgend ein zuverlässiges Präfix In keiner Rechtssatzform kann das Teilwort E * auftreten

20 Alternative Definition für LR(k Alternative Definition für LR(k (konstruktive Charakterisierung Eine kfg G ist LR(k-Grammatik für (beliebiges zuverlässiges Präfix αβ gilt: Ist LR(k-Item [X β., L 1 ] gültig für αβ, dann gibt es kein anderes für αβ gültiges LR(k-Item [Y β 1.β 2, L 2 ], so dass L 1 I IRST k (β 2 L 2 0 Intuitiv: zu jedem zuverlässigen Präfix gibt es nur ein gültiges LR(k-Item Auf LR-DEA(G bezogen Beispiel n LR(k-Items jedes Zustands erfüllen obige Bedingung n k-vorausschau beseitigt Konflikte Geg.: G 0 = ({S,E,T,}, {+, *,(,,}, {S E, E E+T T, T T *, (E }, S ür die 1-Vorausschaumengen des LR-DEA(G 0 muss gelten n = {[S E., L 1 ], [E E.+T, L 2 ]}: G 0 ist LR(1 + L 1 n = {[E T., L 1 ], [T T. *, L 2 ]}: G 0 ist LR(1 * L 1 n S 9 = {[E E+T., L 1 ], [T T. *, L 2 ]}: G 0 ist LR(1 * L 1

21 LR(k-Parser (1/3 LR(k bedeutet (intuitiv Hat man Kandaten für Reduktion gefunden, so kann man (mithilfe des zugehörigen zuverlässigen Präfix und der k nächsten Symbole entscheen n Ob Kandat Griff ist und n Wenn ja, wozu er reduziert werden muss Mit anderen Worten: Menge der (genau einem Zustand des LR-DEA zugeordneten zuverlässigen Präfixe ZP und Worte der Länge k bestimmen (eindeutig Parser-Aktionen Damit gilt Parser-Aktionen darstellbar durch Tabelle ( Action-Tabelle mit Einträgen n shift lies nächstes Eingabesymbol n reduce (X α reduziere mittels Produktion X α n error melde ehler n accept melde erfolgreiches Ende des Parserlaufs k-vorausschau-symbole Zustände Parser-Aktionen

22 LR(k-Parser (2/3 Darstellung der Übergangsfunktion des LR-DEA(G In zweiter Tabelle ( Goto-Tabelle = Übergangstabelle des LR-DEA(G Wird bei shift und reduce konsultiert, um neuen Zustand zu berechnen n shift: Übergang aus aktuellem Zustand unter gelesenem Eingabesymbol n reduce(x α: Übergang unter X aus dem Zustand, der nach Entfernen der zur rechten Seite von X α gehörenden Zustände oben auf dem Keller liegt Bestandteile eines LR(k-Parsers (für LR(k-Grammatik G Action-Tabelle Goto-Tabelle (von G unabhängiges Programm, das die Tabellen interpretiert u e V T# k X e (V N U V T q e Q Parser-Aktion für (q, u q e Q δ d (q, X Action-Tabelle Goto-Tabelle

23 LR(k-Parser (3/3 LR(k-Parser-Hauptprogramm Erste k Symbole lesen Keller initialisieren type state = set of item; var lookahead: sequ of symbol; (* die nächsten k lexikalisch analysierten, aber noch nicht konsumierten Eingabesymbole* S: stack of state; proc scan; (* analysiert ein weiteres Symbol lexikalisch; fügt es hinten an lookahead an * proc acc; (* meldet erfolgreiches Ende der syntaktischen Analyse; hält an * proc err (meldung: string; (* meldet ehler; hält an * scan k ; push(s, q 0 ; do case action[top(s, lookahead] of shift: begin push(s, goto[top(s, hd(lookahead]; lookahead := tl(lookahead; scan end reduce(x α: begin pop α (S; push(s, goto[top(s, X]; output( X α end; accept: acc; error: err(... end case od

24 Konstruktion von LR(k-Parsern Drei verschiedene Verfahren (zur Bestimmung der Zustandsmengen Kanonisches LR(k-Verfahren SLR(k-Verfahren LALR(k-Verfahren Unterschiede Zahl der Zustände und/oder Größe der Vorausschaumengen Im folgenden Praktisch relevanter all k = 1 (ausreichend, da es zu jeder LR(k-Grammatik eine äquivalente LR(1-Grammatik gibt Konstruktion eines LR(1-Parsers Sei I eine Menge von LR(1-Items. I hat Ohne dabei allzu viel Struktur zu verlieren n shift-reduce-konflikt: I enthält Item [X α.aβ, L 1 ], a e V T und Item [Y γ., L 2 ] mit a e L 2 n reduce-reduce-konflikt: I enthält Items [X α., L 1 ] und [Y γ., L 2 ] mit L 1 I L 2 0 Ungeeigneter Zustand: Itemmenge mit einem Konflikt Konstruktion ist erfolgreich, wenn keine ungeeigneten Zustände erzeugt werden

25 Kanonische LR(1-Zustandsmengen (1/2 Berechnung der kanonischen LR(1-Zustandsmengen Algorithmus LR(1-GEN Unterschied zu LR-DEA var q, q : set of item; function Abschluss (s: set of item: set of item; begin q := s; foreach [X α.yβ, L] in q and Y γ in P do if exist [Y.γ, L ] in q then ersetze [Y.γ, L ] durch [Y.γ, L U i 1 (βl] else q := q U [Y.γ, i 1 (βl] fi od; return(q end; function Nachf (s: set of item, Y: V N U V T : set of item; return ({[X αy.β, L] [X α.yβ, L] e s}; begin Q d := Abschluss({[S.S, {#}]}; δ d := 0; foreach q in Q d and X in V N U V T do let q = Abschluss(Nachf(q, X in if q 0 then if q not in Q d then Q d := Q d U {q } fi; δ d := δ d U {q X q } fi tel od end Beispiel Geg.: {S E, E E+T T, T T *, (E } Abschluss(q mit q = {[S.E, {#}]} Ab 1 : {[S.E, {#}]} U {[E.E+T, {#}], [E.T, {#}]} Ab 2 : {[S.E, {#}]} U Ab 3 : q U Ab 4 : q U {[E.E+T, {#, +}], [E.T, {#, +}]} {[T.T *, {#, +}], [T., {#, +}]} = q {[T.T *, {#, +, * }], [T., {#, +, * }]} = q Ab 5 : q U {[.(E, {#, +, * }], [., {#, +, * }]} = Nachf(, E = {[S E., {#}], [E E.+T, {#, +}]} = Abschluss( =

26 Kanonische LR(1-Zustandsmengen (2/2 Beispiel LR(0-Automat (= LR-DEA E ( T S 3 S 4 ( T + ( S 6 T E S 8 1 ( S 9 S 7 0 Beachte S 4 Abschluss(Nachf(S 4, ( + * * Einige LR(1-Zustände = Abschluss({[S.E,{#}]} = {[S.E, {#}], [E.E+T, {#, +}], [E.T, {#, +}], [T.T *, {#, +, * }], [T., {#, +, * }], [.(E, {#, +, * }], [., {#, +, * }]} = Abschluss(Nachf(, E = {[S E., {#}], [E E.+T, {#, +}]} S 4 = Abschluss(Nachf(, ( = {[ (.E, {#, +, * }], [E.E+T, {, +}], [E.T, {, +}], [T.T *, {, +, * }], [T., {, +, * }], [.(E, {, +, * }], [., {, +, * }]} = Abschluss(Nachf(, T = {[E T., {#, +}], [T T. *, {#, +, * }]} S 6 = Abschluss(Nachf(, + = {[E E+.T, {#, +}], [T.T *, {#, +, * }], [T., {#, +, * }], [.(E, {#, +, * }], [., {#, +, * }]} S 9 = Abschluss(Nachf(S 6, T = {[E E+T., {#, +}], [T T. *, {#, +, * }]} = Abschluss(Nachf(S 4, T = {[E T., {, +}], [T T. *, {, +, * }]}

27 LR(1-action-Tabelle Konstruktion der LR(1-action-Tabelle Letzter Schritt bei LR(1-Parser-Konstruktion (für alle Verfahren gleich Eingabe: LR(1-Zustandsmenge Q (vom jeweiligen Verfahren abhängig foreach q e Q do foreach LR(1-Item [K, L] e q do od if K = [S S.] and L = {#} then action[q, #] := accept elsif K = [X α.] then foreach a e L do action[q, a] := reduce (X α od elsif K = [X α.aβ] then action[q, a] := shift fi od; foreach q e Q, a e V T U{#} mit action[q, a] = undef. do action[q, a] := error od Action-Tabelle (Ausschnitt ( * + # s s s acc s r(e T r(e T S 6 s s S 9 s r(e E+T r(e E+T = Abschluss({[S.E, {#}]} = {[S.E, {#}], [E.E+T, {#, +}], [E.T, {#, +}], [T.T *, {#, +, * }], [T., {#, +, * }], [.(E, {#, +, * }], [., {#, +, * }]} = Abschluss(Nachf(, E = {[S E., {#}], [E E.+T, {#, +}]} = Abschluss(Nachf(, T = {[E T., {#, +}], [T T. *, {#, +, * }]} S 6 = Abschluss(Nachf(, + = {[E E+.T, {#, +}], [T T *., {#, +, * }], [T., {#, +, * }], [.(E, {#, +, * }], [., {#, +, * }]} S 9 = Abschluss(Nachf(S 6, T = {[E E+T., {#, +}], [T T. *, {#, +, * }]}

28 Andere LR-Verfahren SLR(1 und LALR(1 SLR(1 ( simple LR und LALR(1 ( lookahead LR sind echte Teilmengen von (kanonischem LR(1 Vorteil gegenüber kanonischen LR-Parsern Zustandsmenge nur so groß wie die des zugehörigen LR(0-Parsers Ausgangspunkt bei der Parser-Konstruktion Schon vorhandener LR(0-Parser (= LR-DEA Idee (bei been Verfahren Beseitigung von ungeeigneten Zuständen durch Erweiterung der vollständigen Items durch Vorausschaumengen, die mithilfe von LA: Q d It G P(V T U {#} berechnet werden Unterschied der been Verfahren: Unterschiedliche Definitionen von LA Größe realer LALR-Tabellen (Action- und Goto-Tabelle zusammen für Programmiersprache mit Terminalen und ca. 100 Produktionen: Einige hundert Zustände; action-einträge d.h. keine Vorausschau für nicht vollständige Items Partielle unktion Zustandsmenge des kanonischen LR(1-Parsers i.a. viel größer

29 SLR(1-Parser (1/3 SLR(1-Erweiterung Jedem vollständigen Item [X α.] wird (in allen Zuständen OLLOW 1 (X als Vorausschaumenge zugeordnet LA S (q, [X α.] = def {a e V T U {#} S # * βxaγ} = OLLOW 1 (X für alle q mit [X α.] e q SLR(1- Grammatik Sei G eine kfg und SLR-DEA(G der SLR-erweiterte LR-DEA(G G ist SLR(1-Grammatik SLR-DEA(G hat keine SLR-ungeeigneten Zustände Zustand q ist SLR-ungeeignet q enthält n Item [X α.aβ], a e V T und Item [Y γ., L 2 ] mit a e L 2 n Items [X α., L 1 ] und [Y γ., L 2 ] mit L 1 I L 2 0

30 SLR(1-Parser (2/3 Beispiel Es gilt E T ( ( S 3 S 4 T + E ( S 6 + T S 8 1 * ( S 9 S 7 0 SLR-DEA(G hat keine SLR-ungeeigneten Zustände n : + {#} n : * {#, +, } n S 9 : * {#, +, } * = {[S.E], [E.E+T], [E.T], [T.T * ], [T.], [.(E], [.]} = {[S E., {#}], [E E.+T]} = {[E T., {#, +, }], [T T. * ]} S 3 = {[T.]} S 4 = {[ (.E], [E.E+T], [E.T], [T.T * ], [T.], [.(E], [.]} = {[.]} S 6 = {[E E+.T], [T T *.], [T.], [.(E], [.]} S 7 = {[T T *.], [.(E], [.]} S 8 = {[ (E.], [E E.+T]} S 9 = {[E E+T., {#, +, } ], [T T. * ]} 0 = {[T T *.]} 1 = {[ (E.]} Beachte: ür die action-tabelle müssten auch noch die fehlenden vollständigen Items um Vorausschaumengen erweitert werden

31 SLR(1-Parser (3/3 Beispiel (Vereinfachung der C-Wertzuweisung Geg.: kfg G mit Produktionen {S S, S L=R R, L *R, R L} G ist nicht SLR(1: Zustand = {[S L.=R], [R L.]} ist SLR(1-ungeeignet S 6 [S.S] [S.L=R] [S.R] [L. * R] [L.] [R.L] L [S L.=R] [R L.] {#, =} = [S L=.R] [R.L] [L. * R] [L.] S R L [S S.] S 3 [S R.] [L.] S 8 [R L.] * {#} {#} {#, =} L {#, =} * S 4 [L *.R] [R.L] [L.* R] [L.] R S 7 [L * R.] * {#, =} OLLOW-Mengen OLLOW 1 (S = {#} OLLOW 1 (L = {#, =} OLLOW 1 (R = {#, =} S 9 R [S L=R.] {#} LR(0-Automat

32 LALR(1-Parser (1/3 LALR(1-Erweiterung LALR(1- Grammatik Sei G eine kfg und LALR-DEA(G der LALR-erweiterte LR-DEA(G G ist LALR(1-Grammatik LALR-DEA(G hat keine LALR-ungeeigneten Zustände Zustand q ist LALR-ungeeignet q enthält n Item [X α.aβ], a e V T und Item [Y γ., L 2 ] mit a e L 2 n Items [X α., L 1 ] und [Y γ., L 2 ] mit L 1 I L 2 0 Mögliche Berechungsmethoden Jedem vollständigen Item [X α.] wird eine (in OLLOW oft echt enthaltene vom Zustand q abhängige Vorausschaumenge zugeordnet LA L (q, [X α.] = def {a e V T U {#} S # rm * βxaw und δ d *(q d, βα = q} Kanonischen LR(1-Parser konstruieren Beachte: Definition nicht konstruktiv!! δ d = Übergangsfunktion des LR-DEA(G; q d sein Startzustand n alls keine Konflikte, Zustände mit gleichen Mengen von Item-Kernen verschmelzen, d.h. Vorausschaumengen der jeweiligen Items vereinigen n Grammatik ist LALR(1, falls nach Verschmelzung immer noch keine Konflikte Verschmelzung in Algorithmus LR(1-GEN integrieren

33 LALR(1-Parser (2/3 Effiziente Berechnung der Vorausschaumengen für LALR(1-Parser Ausgangspunkt: LR(0-Parser Aufgabe Berechnung von LA L (q, [X α.] für jeden Zustand q Q d und jedes vollständige Item [X α.] in q Lösung: Umrechnung in LA L (q, [X α.] = U δd *(p, α = q LA (p, X wobei n LA (q d, S = def {#} n LA (q, X = def U [Y β.xγ] e q U δd *(p, β = q IRST 1 (γ 1 Beispiel LA L (, [R L.] U δd *(p, L = S LA (p, R 2 LA (, R U [S.R] U δd *(p, ε = IRST 1 (ε 1 LA (p, S LA (, S LA (p, Y = [Def.] = [siehe Automat] = [Def.] = [Vereinf.] = [Def.] U [S.S] U δd *(p, ε = IRST 1 (ε 1 LA (p, S = [Vereinf.] LA (, S {#} = [Def.] Idee Zustände betrachten, von denen aus q unter α erreicht wird L = R S 6 S 9 S R L * S 3 S 8 = {[S.S], [S.L=R], [S.R], [L. * R], [L.], [R.L]} * * L S 4 S 7 R

34 LALR(1-Parser (3/3 Beispiel (Vereinfachung der C-Wertzuweisung Geg.: kfg G mit Produktionen {S S, S L=R R, L *R, R L} G ist LALR(1: kein Konflikt in [S.S] [S.L=R] [S.R] [L. * R] [L.] [R.L] L [S L.=R] [R L.] {#} = S R [S S.] S 3 [S R.] [L.] * {#} {#} {#, =} L * S 4 [L *.R] [R.L] [L.* R] [L.] R * S 6 [S L=.R] [R.L] [L. * R] [L.] L S 8 [R L.] {#, =} S 7 [L * R.] {#, =} S 9 R [S L=R.] {#} LR(0-Automat LALR(1-Automat

35 ehlerbehandlung in LR-Parsern (1/3 Grundlage Auch LR-Parser haben Eigenschaft des fortsetzungsfähigen Präfix rühest mögliche Situation, in der ein ehler entdeckt werden kann ehlerkonfiguration: Konfiguration (ϕq, a i...a n mit action(q, a i = error ehlerzustand: Zustand q einer ehlerkonfiguration Prinzipiell mögliche ehlerbehandlungsverfahren ehlerbehandlungsstrategie n Vorwärtsfehlerbehandlung (Modifikation in der Resteingabe, Parserkeller unverändert n Rückwärtsfehlerbehandlung (Veränderung des Parserkellers Art der Realisierung problematisch n Benutzer-spezifiziert n Automatisch generiert

36 ehlerbehandlung in LR-Parsern (2/3 Gängiges Verfahren passend : geht durch möglichst wenig Veränderungen aus ehlerkonfiguration hervor Weitere Einschränkung Automatisch erzeugte Vorwärtsfehlerbehandlung (nur letzte Reduktion kann rückgängig gemacht werden Aufgabe des Verfahrens Zu ehlerkonfiguration (ϕq, a i...a n passende Konfiguration finden, in der ortsetzung der Analyse durch Lesen (mindestens eines Eingabesymbols möglich ist 1-ehlerhypothese : ehler wurde durch 1 fehlendes, 1 überflüssiges oder 1 falsches Symbol verursacht Konsequenz Aus Effizienzgründen 3 Elementaroperationen des ehlerbehandlungsalgorithmus: Einsetzen, Löschen, Ersetzen (jeweils eines Symbols Lesen wichtig für Terminierung der ehlerbehandlung

37 ehlerbehandlung in LR-Parsern (3/3 Aufgabe der ehlerbehandlung Geg.: ehlerkonfiguration (ϕq, a i...a n Ziel einer ehlerkorrektur n Löschen: inde Kellerinhalte ϕ p mit (ϕq, a i+1...a n H* (ϕ p, a i+1...a n und action[p, a i+1 ] = shift n Ersetzen: inde Symbol a und Kellerinhalte ϕ p mit (ϕq, aa i+1...a n H* (ϕ p, a i+1...a n und action[p, a i+1 ] = shift n Einfügen: inde Symbol a und Kellerinhalte ϕ p mit (ϕq, aa i...a n H* (ϕ p, a i...a n und action[p, a i ] = shift Wichtige Eigenschaft Terminierung des ehlerbehandlungsverfahrens ist garantiert (Eingabe wird konsumiert Allerdings ehlerbehandlung nach obiger Definition zu teuer Zu viele potentielle Kellerinhalte Deshalb stattdessen: Vorberechnungen ( ehlerbrücke zur Generierungszeit für unterschiedliche ehlerkonfigurationen

38 ehlerbehandlung durch Einfügen (1/4 ehlerbehandlung durch Einfügen eines Symbols a V T Sei (ϕq, a i...a n ehlerkonfiguration Vorgehensweise ( Schließen der ehlerbrücke n (a olge von Reduktionen unter Vorausschausymbol a n (b Leseaktion bezüglich a n (c olge von Reduktionen unter Vorausschausymbol a i Effiziente Durchführung von (a - (c durch geeignete Vorausberechnungen q a p Red. Red. q p a i

39 ehlerbehandlung durch Einfügen (2/4 Zu (b Berechne für a e V T die Menge Sh(a = def {q action[q, a] = shift} (aus Action-Tabelle oder Automat Beispiel Geg.: kfg G mit Produktionen {S S, S L=R R, L *R, R L} = * # s s acc s r(r L S 3 r(s R S 4 s s r(l r(l S 6 s s S 7 r(l * R r(l * R S 8 r(r L r(r L S 9 r(s L=R Sh(= = { } Sh( * = {, S 6, S 4 } Sh( = {, S 6, S 4 } Action-Tabelle Mengen Sh(a

40 ehlerbehandlung durch Einfügen (3/4 Zu (a Berechne für alle q e Q d und a e V T die Menge Succ(q a der Reduktionsnachfolger n S (q a = def {Zustände, in die der Parser durch 1 Reduktion unter Vorausschau a kommen kann} n S(q a = def S (q a U U pes (qa S(p a n Succ(q a = def (S(q a I Sh(a U {q} Beispiel n Es gilt S( = = {,S 8 } U S( = U S(S 8 = = {,S 8 } U S(S 8 = S(S 8 = = {S 3,S 7,S 9 } U S(S 3 = U S(S 7 = U S(S 9 = = {S 3,S 7,S 9 } U S(S 7 = S(S 7 = = {,S 8 } U S( = U S(S 8 = = S( = n Damit S( = = {,S 3,S 7,S 8,S 9 } Succ ( = = ({,S 3,S 7,S 8,S 9 } I { } U { } = {, } S 6 S 9 [S.S] [S.L=R] [S.R] [L. * R] [L.] [R.L] L [S L.=R] [R L., {#}] = [S L=.R] [R.L] [L. * R] [L.] R [S L=R.,{#}] S R L [S S., {#}] S 3 [S R., {#}] [L.,{=, #}] * L S 8 [R L.,{=, #}] * S 4 [L *.R] [R.L] [L.* R] [L.] R * S 7 [L * R.,{=, #}]

41 ehlerbehandlung durch Einfügen (4/4 Berechnung der Brücke Berechne für alle q e Q d und a i e V T die Menge Brge(q ai = def {a e V T E q e Succ(q a und δ d (q,a = p und Sh(a i I Succ(p ai 0} Beispiel Brge( = = {a e V T E q e Succ( a und δ d (q,a = p und Sh(= I Succ(p = 0} Kandaten, da δ d (, = Succ( = = {, } *, da δ d (, * = S 4 Succ(S 4 = = {S 4 } = {}, da { } I {S 4 } = 0 Brge( * = {a e V T E q e Succ( a und δ d (q,a = p und Sh( * I Succ(p * 0} Kandaten, da δ d (, = Succ( * = { } *, da δ d (, * = S 4 Succ(S 4 * = {S 4 } = { * }, da {,S 4,S 6 } I { } = 0 Succ(q a = * S 3 S 3 S 3 S 3 S 4 S 4 S 4 S 4, S 6 S 6 S 6 S 6 S 7,S 7 S 7 S 7 S 8,S 8 S 8 S 8 S 9 S 9 S 9 S 9 Sh(= = { } Sh( * = {, S 6, S 4 } Sh( = {, S 6, S 4 }

42 ehlerkorrektur Beispiel (Korrektur durch Einfügen Eingabe ehlerkonfiguration Brücke Korrektur * = # ( S 4, = # Brge(S 4 = = {} Einfügen von Auf der Basis der vorberechneten Mengen 1-Symbol-Ersetzungskorrektur (Unterschied: Symbole aus Brge(q ai+1 Beispiel Eingabe ehlerkonfiguration Brücke Korrektur = = # ( S 6, = # Brge(S 6 = { * } Ersetzen von = durch * Brge(q a = * {} { * } { * } {=} {=} S S 4 {} { * } { * } 0 {=} {=} S 6 S 7 {} { * } { * } 0 {=} {=} S S Symbol-Löschkorrektur (Löschung eines Symbols a ist Möglichkeit, wenn es Zustand p Sh(a i+1 Succ(q ai+1 gibt Beispiel Eingabe ehlerkonfiguration Brücke Korrektur = # (, = # Sh(= I Succ( = = { } Löschen von Ersetzen von durch

43 Korrekturen bei erschöpfter Eingabe Sonderfall Korrekturen bei erschöpfter Eingabe Hier: Nur Einsetzungskorrekturen sinnvoll Lösung ür jeden Zustand q die Menge Acc(q berechnen, eine Menge von Terminalsymbolen a, so dass gilt n Reduktionen von q unter a führt in Zustand q n Lesen von a in q ergibt p n Reduktionen von p unter # führen in accept-konfigurationen q a p Red. unter a Red. unter # q Accept-Zustand Modifikation von Brge Brge(q # = def {a e V T E q e Succ(q a und δ d (q,a = p und Succ(p # e accept-zuständen }

44 ehlerbehandlung in SLR(1- / LALR(1-Parsern alsche Reduktionen in SLR(1- und LALR(1-Parsern Abhilfe Kanonische LR-Parser n Lesen weder ein Symbol über ehlerstelle hinaus n Noch reduzieren sie unter falschem Vorausschausymbol SLR(1- und LALR(1-Parser n Machen möglicherweise Reduktionen, bevor in shift-zustand ehler entdeckt wird (da weniger differenzierte Vorausschau Zusätzlicher Keller n Zur Speicherung aller seit letztem Lesen durchgeführten Reduktionen n Wird bei Lese-Aktion geleert n Im ehlerfall: Gekellerte Reduktionen rückgängig machen

Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse

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

Mehr

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 Shift Reduce Parser (Bottom up Parser) Historie Grundbegriffe Tabellengesteuerter LR(1) Parser Konstruktion der Elementmengen Tabellenkonstruktion Historie Die ersten Compiler entstanden in den 50ern.

Mehr

Einführung - Parser. Was ist ein Parser?

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

Mehr

Konstruieren der SLR Parsing Tabelle

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)

Mehr

Automaten und formale Sprachen Klausurvorbereitung

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

Mehr

Kellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)

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

Mehr

Theoretische Grundlagen der Informatik

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

Mehr

LR(1) Itemmengenkonstruktion

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

Mehr

Definition von LR(k)-Grammatiken

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.

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Kapitel 5: Syntax-Analyse

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

Mehr

Die mathematische Seite

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

Mehr

Kontextfreie Sprachen

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

Mehr

Deterministischer Kellerautomat (DPDA)

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,δ,

Mehr

Automatentheorie und formale Sprachen

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

Mehr

LR-Parser, Shift-Reduce-Verfahren

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

Mehr

8. Turingmaschinen und kontextsensitive Sprachen

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

Mehr

Algorithmen auf Sequenzen

Algorithmen auf Sequenzen Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 4 Reguläre Ausdrücke Webseite zur Vorlesung http://ls11-www.cs.tu-dortmund.de/people/rahmann/teaching/ss2008/algorithmenaufsequenzen

Mehr

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

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

Mehr

Reguläre Sprachen und endliche Automaten

Reguläre Sprachen und endliche Automaten Reguläre Sprachen und endliche Automaten 1 Motivation: Syntaxüberprüfung Definition: Fließkommazahlen in Java A floating-point literal has the following parts: a whole-number part, a decimal point (represented

Mehr

Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012

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

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

Satz (Abschluß unter der Stern-Operation)

Satz (Abschluß unter der Stern-Operation) Satz (Abschluß unter der Stern-Operation) Wenn L eine reguläre Sprache ist, dann ist auch L regulär. Beweis: Es gibt einen NFA M = (Z, Σ, S, δ, S, E) mit L(M) = L. Wir bauen aus diesem NFA nun wie folgt

Mehr

Rekursiv aufzählbare Sprachen

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

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s

Mehr

Lexikalische Programmanalyse der Scanner

Lexikalische Programmanalyse der Scanner Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung

Mehr

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten

Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Implementierung eines LR-Parser-Generators mit syntaktischen Prädikaten Aufgabenbeschreibung 29. Juli 2011 1 Einleitung und Motivation Der Parser-Generator Antlr [Par07] bietet die Möglichkeit, die Auswahl

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen (Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),

Mehr

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

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Kurz-Skript zur Theoretischen Informatik I

Kurz-Skript zur Theoretischen Informatik I Kurz-Skript zur Theoretischen Informatik I Inhaltsverzeichnis 1 Grundlagen 2 2 Reguläre Ausdrücke 4 3 Endliche Automaten 5 3.1 Vollständige endliche Automaten................................... 6 3.2 ε

Mehr

Operationen auf Grammatiken

Operationen auf Grammatiken Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen, Elimination bestimmter Konstrukte Erzeugen eines Parsers Transformation G 1 G 2 mit L(G 1 ) = L(G 2 ) I.a. Parsebaum 1 (w) Parsebaum

Mehr

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen

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

Mehr

Spracherkennung (Syntaxanalyse)

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

Mehr

Informatik IC2. Balazs Simon

Informatik IC2. Balazs Simon Informatik IC2 Balazs Simon Inhaltsverzeichnis 1 Contextfreie Sprachen 3 1.1 Ableitungsbaum..................................... 3 1.2 Schönheit........................................ 4 1.3 Normalformen......................................

Mehr

Einführung in die Theoretische Informatik

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,

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

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

Mehr

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat

Frank Heitmann 2/47. 1 Ein PDA beginnt im Startzustand z 0 und mit im Keller. 2 Ist der Automat Formale Grundlagen der Informatik 1 Kapitel 5 Über reguläre Sprachen hinaus und (Teil 2) Frank Heitmann heitmann@informatik.uni-hamburg.de 21. April 2015 Der Kellerautomat - Formal Definition (Kellerautomat

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik 1 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 2 Kontextfreie Grammatiken Definition: Eine Grammatik G

Mehr

Grundlagen der Programmierung 2 (Comp-D)

Grundlagen der Programmierung 2 (Comp-D) Grundlagen der Programmierung 2 (Comp-D) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 31. Mai 2007 Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen

Mehr

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

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

Mehr

Formale Sprachen und endliche Automaten

Formale Sprachen und endliche Automaten Formale Sprachen und endliche Automaten Formale Sprachen Definition: 1 (Alphabet) Ein Alphabet Σ ist eine endliche, nichtleere Menge von Zeichen oder Symbolen. Ein Wort über dem Alphabet Σ ist eine endliche

Mehr

Grundlagen der theoretischen Informatik

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

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

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

Mehr

Einführung in die Theoretische Informatik

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

Mehr

2.4 Kontextsensitive und Typ 0-Sprachen

2.4 Kontextsensitive und Typ 0-Sprachen Definition 2.43 Eine Typ 1 Grammatik ist in Kuroda Normalform, falls alle Regeln eine der folgenden 4 Formen haben: Dabei: A, B, C, D V und a Σ. Satz 2.44 A a, A B, A BC, AB CD. Für jede Typ 1 Grammatik

Mehr

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme FORMALE SYSTEME 8. Vorlesung: Minimale Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme TU Dresden, 6. November 2017 Rückblick Markus Krötzsch, 6. November 2017 Formale Systeme Folie 2 von 26

Mehr

2.6 Deterministisches Top-Down-Parsen

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

Mehr

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

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO). 1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache

Mehr

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}}

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, λ}?

Mehr

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

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

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Deterministische endliche Automaten - Wiederholung

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,

Mehr

5.2 Endliche Automaten

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

Mehr

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Algorithmen mit konstantem Platzbedarf: Die Klasse REG Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August

Mehr

LL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)

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)

Mehr

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten Dozentin: Wiebke Petersen 13. Foliensatz Wiebke Petersen Einführung CL 1 Formale Grammatik

Mehr

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

6 Kontextfreie Grammatiken

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,

Mehr

Einführung in die Theoretische Informatik

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 3 14. Mai 2010 Einführung in die Theoretische

Mehr

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Übung am 3..2 INSTITUT FÜR THEORETISCHE KIT 7..2 Universität des Andrea Landes Schumm Baden-Württemberg - Theoretische und Grundlagen der Informatik INSTITUT FÜR

Mehr

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit A.M. Turing (1937): Maschinenmodell zur exakten Beschreibung des Begriffs effektiv berechenbar Stift Mensch a c b b Rechenblatt a b b c Lese-/Schreibkopf endliche Kontrolle Turingmaschine Eine Turingmaschine

Mehr

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen

Turingmaschinen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: Komplexitätstheorie und effiziente Algorithmen Vorlesung Berechenbarkeit und Komplexität alias Theoretische Informatik: und effiziente Algorithmen Wintersemester 2011/12 Schematische Darstellung einer Turing-Maschine: Kopf kann sich nach links und

Mehr

Komplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing

Komplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing Komplexitätsklassen Charakteristische Problemgrößen beim Parsing O(1) konstant O(log n) logarithmisch O(n) linear O(n k ) polynomial (k [2,4]) O(n k ) polynomial (k > 4) O(k n ) exponentiell n ist die

Mehr

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen: Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter

Mehr

Einführung in die Theoretische Informatik

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 2 Lösungsblatt 2. Mai 2 Einführung in die Theoretische Informatik

Mehr

Software Engineering Ergänzung zur Vorlesung

Software Engineering Ergänzung zur Vorlesung Ergänzung zur Vorlesung Prof. Dr. Markus Müller-Olm WS 2008 2009 2.6.1 Endliche und reguläre Sprachen Endliche und reguläre Sprache: fundamental in vielen Bereichen der Informatik: theorie Formale Sprachen

Mehr

Kapitel 7: Kellerautomaten und kontextfreie Sprachen

Kapitel 7: Kellerautomaten und kontextfreie Sprachen Kapitel 7: Kellerautomaten und kontextfreie Sprachen Prof.-Dr. Peter Brezany Institut für Softwarewissenschaft Universität Wien, Liechtensteinstraße 22 1090 Wien Tel. : 01/4277 38825 E-mail : brezany@par.univie.ac.at

Mehr

Determinisierung von endlichen Automaten

Determinisierung von endlichen Automaten Thomas Hanneforth Institut für Linguistik Universität Potsdam May 14, 2014 Thomas Hanneforth (Universität Potsdam) May 14, 2014 1 / 21 Outline 1 Einführung 2 Beispiel 3 Ein verbesserter Determinisierungsalgorithmus

Mehr

1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser

1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser 1 Grammar Engineering 2 Abstrakte Syntax als abstrakte Algebra 3 LL(1)-Parser 4 LR Parser 5 Fehlerbehandlung 6 Earley Parser Zusatzfolien Syntaktische Analyse Wintersemester 2008/09 1 / 44 Grammar Engineering

Mehr

Lexikalische Analyse, Tokenizer, Scanner

Lexikalische Analyse, Tokenizer, Scanner 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,

Mehr

Theoretische Informatik I

Theoretische Informatik I heoretische Informatik I Einheit 2 Endliche Automaten & Reguläre Sprachen. Deterministische endliche Automaten 2. Nichtdeterministische Automaten 3. Reguläre Ausdrücke 4. Grammatiken 5. Eigenschaften regulärer

Mehr

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung! Universität Karlsruhe Theoretische Informatik Fakultät für Informatik WS 23/4 ILKD Prof. Dr. D. Wagner 2. Februar 24. Klausur zur Vorlesung Informatik III Wintersemester 23/24 Mit Lösung! Beachten Sie:

Mehr

THIA - Übungsblatt 2.

THIA - Übungsblatt 2. THIA - Übungsblatt 2. Aufgabe 12 (Eine einfache Sprache). Endliche Ziffernfolgen, die mit einer 0 beginnen, auf die mindestens eine weitere Ziffer folgt, wobei nur die Ziffern 0,..., 7 vorkommen, sollen

Mehr

Thomas Behr. 17. November 2011

Thomas Behr. 17. November 2011 in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über

Mehr

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

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten

Mehr

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65

Worterkennung in Texten speziell im Compilerbau 14. April Frank Heitmann 2/65 Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben mittlerweile einiges kennengelernt,

Mehr

DKA und dkfs (mit Übungen)

DKA und dkfs (mit Übungen) DKA und dkfs (mit Übungen) Prof.Dr.Christian Wagenknecht mit Beiträgen von Herrn Dr.Michael Hielscher Prof.Dr.Chr. Wagenknecht Formale Sprachen und Automaten 1/15 kurz DKA Analog zu endlichen Automaten

Mehr

Nachklausur zur Vorlesung

Nachklausur zur Vorlesung Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar

Mehr

Formale Sprachen und Automaten: Tutorium Nr. 8

Formale Sprachen und Automaten: Tutorium Nr. 8 Formale Sprachen und Automaten: Tutorium Nr. 8 15. Juni 2013 Übersicht 1 Nachtrag 2 Besprechung von Übungsblatt 7 Aufgabe 1 Aufgabe 2 Aufgabe 3 3 CFG PDA Definitionen Ein Beispiel! Aufgabe 4 Der PDA als

Mehr

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls

4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls 4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,

Mehr

LL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing)

LL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing) LL(1)-Parsing Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger Automatische Syntaxanalyse (Parsing) Heinrich-Heine-Universität Düsseldorf Wintersemester 2012/2013 Aufbau des Referats 1. Einführung,

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 8. Reguläre Sprachen II Malte Helmert Gabriele Röger Universität Basel 24. März 24 Pumping Lemma Pumping Lemma: Motivation Man kann zeigen, dass eine Sprache regulär ist, indem man

Mehr

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64

Worterkennung in Texten speziell im Compilerbau 20. April Frank Heitmann 2/64 Grenzen regulärer Sprachen? Formale Grundlagen der Informatik 1 Kapitel 4 Über reguläre Sprachen hinaus und Pumping Lemma Frank Heitmann heitmann@informatik.uni-hamburg.de Wir haben mittlerweile einiges

Mehr

Theoretische Informatik II

Theoretische Informatik II Theoretische Informatik II Einheit 4.2 Modelle für Typ-0 & Typ-1 Sprachen 1. Nichtdeterministische Turingmaschinen 2. Äquivalenz zu Typ-0 Sprachen 3. Linear beschränkte Automaten und Typ-1 Sprachen Maschinenmodelle

Mehr

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen

Mehr

Die Nerode-Relation und der Index einer Sprache L

Die Nerode-Relation und der Index einer Sprache L Die Nerode-Relation und der Index einer Sprache L Eine zweite zentrale Idee: Sei A ein vollständiger DFA für die Sprache L. Repäsentiere einen beliebigen Zustand p von A durch die Worte in Σ, die zu p

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Theoretische Informatik für Medieninformatiker

Theoretische Informatik für Medieninformatiker Theoretische Informatik für Medieninformatiker Jan Johannsen Lehrveranstaltung im Sommersemester 27 / 6 Organisatorisches: Jede Lehrveranstaltungsstunde gliedert sich in einen Vorlesungsteil, dessen Länge

Mehr

Das Postsche Korrespondenzproblem

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

Mehr

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004 Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,

Mehr

Theoretische Grundlagen des Software Engineering

Theoretische Grundlagen des Software Engineering Theoretische Grundlagen des Software Engineering 5: Reguläre Ausdrücke und Grammatiken schulz@eprover.org Software Systems Engineering Reguläre Sprachen Bisher: Charakterisierung von Sprachen über Automaten

Mehr

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 7 Lösungen. Wiederholung: Pumping-Lemma für kontextfreie Sprachen Prof. Dr. Viorica Sofronie-Stokkermans Universität Koblenz-Landau Fachbereich 4: Informatik Dennis Peuter 01. Juni 2017 Übung zur Vorlesung Grundlagen der theoretischen Informatik Aufgabenblatt 7 Lösungen

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Sascha Böhme, Lars Noschinski Sommersemester 2 Lösungsblatt 2 3. Mai 2 Einführung in die Theoretische Informatik Hinweis:

Mehr

Einführung in die Theoretische Informatik

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

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen

Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 18.4. 2012 176 Automatentheorie und formale Sprachen VL 5 Reguläre und nichtreguläre Sprachen Kathrin Hoffmann 18. Aptil 2012 Hoffmann (HAW

Mehr

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 27. Juni HA-Lösung. TA-Lösung

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 27. Juni HA-Lösung. TA-Lösung Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 27. Juni 2016 HA-Lösung TA-Lösung Einführung in die theoretische Informatik Aufgabenblatt 9 Beachten Sie: Soweit

Mehr