Operationen auf Grammatiken

Größe: px
Ab Seite anzeigen:

Download "Operationen auf Grammatiken"

Transkript

1 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 2 (w) Es soll gelten: opsemantik 1 (w) = opsemantik 2 (w) Das erfordert: Semantik-Abbildung von G 1 nach G 2 Effekte: Grammatik kann sich vergrößern Parser kann effizienter werden P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 1

2 Normalisierungen G ist in Chomsky-Normalform, wenn alle Produktionen von der Form A ::= a oder A ::= BC sind, wobei A, B und C Nichtterminale, a Terminalsymbol G ist in Greibach-Normalform, wenn alle Produktionen von der Form A ::= ab 1... B k sind, wobei A, B i Nichtterminale und a Terminalsymbol P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 2

3 Elimination der Epsilon-Produktionen Epsilon-Elimination: G 1 G 2 Ziel: In G 2 sollen keine Regeln der Form A ::= ε vorkommen Eigenschaften: L(G 1 ) \ {ε} = L(G 2 ) Bottom-Up-Parsing kann effizienter werden Grammatik (Anzahl Regeln) kann exponentiell wachsen. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 3

4 Elimination der Epsilon-Produktionen Vorgehen: 1. Klassifiziere Nichtterminale A in G 1 Benutze dazu Fixpunktiteration A ist löschbar wenn ε L(A) A ist leer wenn L(A) {ε} A ist nicht löschbar wenn weder ε L(A) noch L(A) =. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 4

5 Elimination der Epsilon-Produktionen 2. Erzeuge neue Regelmenge zu G 2 für alle G 1 -Regeln A X 1... X n : In G 2 sind alle Regeln A α 1... α n mit: a.) wenn X i nicht löschbar, dann α i = X i ; b.) wenn X i löschbar, dann α i = ε oder α i = X i c.) wenn X i leer ist, dann α i = ε; d.) die neue rechte Seite darf nicht ε sein. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 5

6 Elimination der Epsilon-Produktionen (2) Eigenschaften Epsilon-Elimination erzeugt G 2 mit L(G 1 ) \ {ε} = L(G 2 ) Anzahl der Regeln kann exponentiell wachsen. Herleitungsbäume werden durch die Elimination verändert Die Semantik-Abbildung kann angepasst werden: I.a. spielen ε-resultate keine Rolle. analog zu neutralem Element einer Operation P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 6

7 Elimination der Epsilon-Produktionen: Beispiel Grammatik zu positiven ganzen Zahlen: Zahl ::= Ziffer Zahl ε Ziffer ::= Zahl ist löschbar Nach ε-elimination: Zahl ::= Ziffer Zahl Ziffer Ziffer ::= P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 7

8 Epsilon-Elimination: Effekt auf Parsebäume S ::= Zahl Zahl ::= Ziffer Zahl ε Ziffer ::= G 1 -Parsebaum für das Wort 12: Zahl 1 Ziffer 1 Zahl 1 1 Ziffer 2 Zahl 2 2 ε P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 8

9 Semantik für G 1 -Parsebäume S λ(x, y). y Zahl 1 λx, (y1, y2). (10 y1, y1 x + y2) Zahl 2 λx. (1, 0) Ziffer n λx. n ( Alternativ: λx. wert(x) ) Haskell: \x ->(read [x])::int Zahl 1 :: Int->(Int,Int)->(Int,Int). interne Darstellung der Semantik durch Paare: 1. Komponente ist die 10-er Potenz, die der Stelligkeit entspricht, 2. Komponente ist der Zahlenwert des rechten Baumes. ε entspricht dem Wert 0. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 9

10 Parsebaum zu G 2 Nach ε-elimination: S ::= Zahl Zahl ::= Ziffer Zahl Ziffer Ziffer ::= Zahl 1 Ziffer 1 Zahl 2 1 Ziffer 2 2 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 10

11 Semantik für G 2 -Parsebäume S λ(x, y). y Zahl 1 λx, (y1, y2). (10 y1, y1 x + y2) Zahl 2 λx. (10, x) Ziffer n λx. wert(x) Epsilon-Elimination: Zahlberechnung muss verändert werden. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 11

12 Elimination von Links-Rekursionen Bei rekursiv absteigenden Parsern: Linksrekursion in der Grammatik bewirkt eine Endlosschleife Bespiel für direkte Links-Rekursion: A ::= Aw Parserfunktion: parsea ein = parsea ein... parsew rest P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 12

13 Links-Rekursionen Beispielgrammatik Expr ::= Expr + Term Term Term ::= Der rekursiv absteigende Parser dazu terminiert nicht Abhilfe: Umbau der Grammatik bei gleicher erzeugter Sprache P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 13

14 Links-Rekursionen Definition Eine Grammatik G ist linksrekursiv, wenn es eine Folge von Nichtterminalen A 1,..., A n gibt und eine Folge von Regeln der Grammatik der Form A 1 ::= A 2 w 1, A 2 ::= A 3 w 2,..., A n ::= A 1 w n. Bei linksrekursiven G. terminiert der rekursive absteigende Parser nicht (Links-)Rekursion ist durchaus sinnvoll, aber inkompatibel mit der Methode des rekursiven Abstiegs. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 14

15 Elimination der Links-Rekursionen Beispiel A ::= Aα β sind die Regeln zu Nichtterminal A, β startet nicht mit A, und αβ ε. Grammatiktransformation: Erzeuge neues Nichtterminal B Ersetze obige Regeln durch: A ::= β βb B ::= α B α In der neuen Grammatik sind A, B nicht linksrekursiv. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 15

16 Elimination von Linksrekursion Begründung für die Korrektheit die formalen Sprache zu A bleibt erhalten: Vorher: A ::= Aα β die formale Sprache zu A entspricht β(α). Nachher: A ::= β βb B ::= α B α formale Sprache zu B: entspricht (α) +. formale Sprache zu A: entspricht β(α). P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 16

17 Elimination von Linksrekursion: Syntaxbäume Beispiel Syntaxbäume vorher und nachher: R RA R α β RB β α α RB α ε P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 17

18 L.R.- Elimination Semantik-Transformation? Möglichkeit A: Parsebaum 2 Parsebaum 1 D.h.: Abbildung auf die Parsebäume vor der Transformation Möglichkeit B: Beobachtung: Regel entspricht assoziativem Operator mit neutralem Element: erlaube Umklammerung und ε als neutrales Element P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 18

19 L.R. Elimination: Syntaxbäume Semantische Abbildung: φ(r) = φ(ra) = φ(rb), Herleitungsbaum vorher: f(f(β, α ), α ) Herleitungsbaum nachher: f(β, f(α, f(α, ε ))). Der semantische Wert ist gleich, wenn ε neutrales Element für f, und f assoziativ ist. f könnte sein: +,, append, concat Beachte * auf Float ist nicht assoziativ wg. Rundung Benutzung der Assoziativität von * verändert in diesem Fall die operationale Semantik P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 19

20 Beispiel: L.R.-Elimination Expr ::= Expr Term Term Term ::= Nach Elimination der Linksrekursion: Expr ::= Term ExprB Term ExprB ::= Term Term ExprB Term ::= Vorher: wird als ((1 2) 3) geklammert Nachher: als (1 (2 3)). Falsch! Abhilfe interpretiere als 1 + ( 2) + ( 3) P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 20

21 Beispiel: L.R.-Elimination indirekte Links-Rekursion: A ::= Sa b S ::= Bc Ad e B ::= f... rekursiver absteigender Parser: Schleife bei bd Erkennung bei fa P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 21

22 Linksrekusion Es gilt: Ein Grammatik ist links-rekursiv, wenn es für ein Nichtterminal A und einen String α eine Herleitung A + Aα gibt. Es gilt auch: Jede Linksrekursivität kann durch Transformation der Grammatik beseitigt werden unter Beibehaltung der erzeugten formalen Sprache. Aber: andere Herleitungsbäume P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 22

23 Beseitigung von Mehrdeutigkeiten Klassisches Beispiel: dangling else Stmt ::= if Expr then Stmt else Stmt if Expr then Stmt other Diese Grammatik ist mehrdeutig: if E 1 then if E 2 then S 1 else S 2 hat zwei Parsebäume ifthenelse ifthen ifthen E 1 S 2 E 1 ifthenelse E 2 S 1 E 2 S 1 S 2 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 23

24 Beseitigung von Mehrdeutigkeiten Diese Mehrdeutigkeiten kann man als Fehler beim Hinschreiben der Grammatik ansehen. Ändere die Grammatik: Semantik: (Prinzip): gleich erzeugte Sprache aber keine Mehrdeutigkeit mehr else gehört jeweils zum letzten freien then Neue Grammatik: Halbes-IF, Ganzes-IF S ::= HIF GIF HIF ::= if Expr then S GIF ::= if Expr then GIF else S other P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 24

25 Links-Faktorisierung Problem der rekursiv absteigenden Parser: Gleiche Anfänge von rechten Seiten von Regeln Bewirkt Suche nach der richtigen Alternative Kann exponentielle Verschlechterung der Effizienz bedeuten. Abhilfe: Zusammenfassen der Anfänge der Regelalternativen A ::= αβ 1 αβ 2 wird umgewandelt in: A ::= αb B ::= β 1 β 2 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 25

26 Linksfaktorisierung: Beispiel H ::= if Expr then H if Expr then G else H kann man umwandeln in Ifethen ::= if Expr then H2 ::= H G else H H ::= Ifethen H2 P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 26

27 Linksfaktorisierung: Bemerkungen optimiert rekursiv-absteigende Parser, da unnötiges Zurücksetzen verhindert wird. Semantik: kann leicht angepasst werden, Parsebäumen sind struktur-ähnlich Sinnvoll: Zusammenfassen gleicher Anfänge rechter Seiten von Regeln für verschiedene Nichtterminale Ausklammern auch über mehrere Regeln P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 27

28 Linksfaktorisierung: Beispiel S ::= HIF GIF HIF ::= if Expr then S GIF ::= if Expr then GIF else S wird zu: S ::= IET IET ::= if Expr then IET2 IET2 ::= HIF2 GIF2 HIF2 ::= S GIF2 ::= GIF else S GIF ::= if Expr then GIF else S Die formalen Sprachen dazu sind gleich Anzahl der Nichtterminale hat sich etwa verdoppelt. P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 28

29 Bemerkungen zur Fehlererkennung Die Fehlererkennung und -meldung sollte spezifisch sein und möglichst genau die Ursache und Stelle melden. Die Fehlermeldung: Keine Alternativen mehr gefunden in etwa ab Zeile... ist fast ohne Wert Bei deterministischen Parsern: Der Fehlerort ist klar; die Fehlerursache ist auch meist spezifisch genug P raktische Informatik 2, SS 2005, F olien Kap.4, 3, (16. Juni2005) Seite 29

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

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

Fachseminar Compilerbau

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,

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

Stackmaschine; Speicheradressierung

Stackmaschine; Speicheradressierung Stackmaschine; Speicheradressierung Erweiterung um globalen Speicher (Heap, Halde) pro Speicherplatz eine Zahl. Notation ist als Array SP [0..]. Zugriff mittels Adresse (Index): eine Zahl i.a.: Zahlen

Mehr

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

Mehr

Earley Parser. Flutura Mestani

Earley Parser. Flutura Mestani Earley Parser Flutura Mestani Informatik Seminar Algorithmen zu kontextfreien Grammatiken Wintersemester 2015/2016 Prof. Martin Hofmann, Dr. Hans Leiß Flutura Mestani 25.11.2015 Seminar Algorithmen zu

Mehr

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter

Software Entwicklung 1. Fallstudie: Arithmetische Ausdrücke. Rekursive Klassen. Überblick. Annette Bieniusa / Arnd Poetzsch-Heffter Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter Fallstudie: Arithmetische Ausdrücke AG Softech FB Informatik TU Kaiserslautern Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

Grundlagen der Programmierung 2 (Comp-C)

Grundlagen der Programmierung 2 (Comp-C) Grundlagen der Programmierung 2 (Comp-C) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 25. Juni 2008 Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik

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

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Fallstudie: Arithmetische Ausdrücke Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 33 Überblick

Mehr

1 Formale Sprachen, reguläre und kontextfreie Grammatiken

1 Formale Sprachen, reguläre und kontextfreie Grammatiken Praktische Informatik 1, WS 2001/02, reguläre Ausdrücke und kontextfreie Grammatiken 1 1 Formale Sprachen, reguläre und kontextfreie Grammatiken Ein Alphabet A ist eine endliche Menge von Zeichen. Die

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

Grundlagen der Programmierung

Grundlagen der Programmierung Grundlagen der Programmierung Compiler: Parser (5C) Prof. Dr Manfred Schmidt-Schauß Sommersemester 2014 Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik G und ein String w. Fragen: Vorgehen:

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

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

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

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

Grundlagen der Programmierung 2 (Comp-C)

Grundlagen der Programmierung 2 (Comp-C) Grundlagen der Programmierung 2 (Comp-C) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 25. Mai 2011 Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen Lexikalische Analyse; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Ralph Ankele ralph.ankele@tugraz.at Termine Ausgabe: 19. März (heute) Fragestunde: 24. März Abgabe: 09. April(bis 16:00 Uhr) Einsichtsnahme: xx. April (16:00 Uhr)

Mehr

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf.

Compilerbau. Bachelor-Programm. im SoSe Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Bachelor-Programm Compilerbau im SoSe 2014 Prof. Dr. Joachim Fischer Dr. Klaus Ahrens Dr. Andreas Kunert Dipl.-Inf. Ingmar Eveslage fischer@informatik.hu-berlin.de J.Fischer 6.1 Position Kapitel 1 Compilationsprozess

Mehr

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

Mehr

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

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

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 08.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Letzte Vorlesung Eine

Mehr

2.2 Syntax, Semantik und Simulation

2.2 Syntax, Semantik und Simulation 2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?

Mehr

Äquivalente Grammatiken / attributierte Grammatik

Äquivalente Grammatiken / attributierte Grammatik Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,

Mehr

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen Vorlesung Automaten und Formale Sprachen Sommersemester 2018 Prof. Barbara König Übungsleitung: Christina Mika-Michalski Wörter Wort Sei Σ ein Alphabet, d.h., eine endliche Menge von Zeichen. Dann bezeichnet

Mehr

Syntaktische Analyse (Parsen) Grundlagen der Programmierung. Syntaktische Analyse eines Programms. Syntaktische Analyse bzgl einer CFG

Syntaktische Analyse (Parsen) Grundlagen der Programmierung. Syntaktische Analyse eines Programms. Syntaktische Analyse bzgl einer CFG Syntaktische Analyse (Parsen) Grundlagen der Programmierung Compiler: Parser (5C) Gegeben: eine kontextfreie Grammatik G und ein String w. Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2015 Fragen: Vorgehen:

Mehr

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung:

Compiler: Parser. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München. Letzte Änderung: Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 17.05.2017 11:06 Inhaltsverzeichnis Parsing....................................... 2 Syntax........................................

Mehr

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

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

Mehr

Phasen eines Compilers. Grundlagen der Programmierung 2. Programm für heute. LR-Parser, Shift-Reduce-Verfahren. Schiebe-Reduziere-Parser

Phasen eines Compilers. Grundlagen der Programmierung 2. Programm für heute. LR-Parser, Shift-Reduce-Verfahren. Schiebe-Reduziere-Parser Phasen eines Compilers Grundlagen der Programmierung 2 Schiebe-Reduziere-Parser Prof Dr. Manfred Schmidt-Schauß (unter Mithilfe von PD Dr. David Sabel) Quelltext (String) Syntaxbaum Lexikalische Analyse

Mehr

Definition der Greibach-Normalform

Definition der Greibach-Normalform Definition der Greibach-Normalform Ähnlich wie die CNF wollen wir noch eine zweite Normalform einführen, nämlich die Greibach-Normalform (GNF), benannt nach Sheila Greibach: Definition: Eine Typ-2 Grammatik

Mehr

Ogden s Lemma (T6.4.2)

Ogden s Lemma (T6.4.2) Weiteres Beispiel L={a r b s c t d u r=0 s=t=u} Nahe liegende Vermutung: L nicht kontextfrei. Kann man mit dem Pumping-Lemma nicht zeigen. r=0: Pumpen erzeugt Wort aus L. r>0: Pumpen der a s erzeugt Wort

Mehr

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

Mehr

Ein Fragment von Pascal

Ein Fragment von Pascal Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und

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

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

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

Mehr

Informatik III - WS07/08

Informatik III - WS07/08 Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 13.01.2011 INSTITUT FÜR THEORETISCHE INFORMATIK 0 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Übung zu Grundlagen des Übersetzerbaus

Übung zu Grundlagen des Übersetzerbaus Übung zu Grundlagen des Übersetzerbaus Mehr zu Parsern und LL(k)-Grammatiken Lehrstuhl für Informatik 2 (Programmiersysteme) Probleme bei LR-Parsern Für manche Grammatiken ist es nicht möglich, LR-Parser

Mehr

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

Syntaktische Analyse (Parsen)

Syntaktische Analyse (Parsen) Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik G und ein String w. Fragen: Vorgehen: gehört w zu L(G)? Welche Bedeutung hat w? Konstruiere Herleitungsbaum zu w P raktische Informatik

Mehr

Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers

Compiler; Übersetzungsprogramme. Grundlagen der Programmierung 3 A. Compiler für Programmiersprachen. Phasen eines Compilers ompiler; Übersetzungsprogramme Grundlagen der Programmierung 3 A ompiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Ein Übersetzer (ompiler) ist ein Programm, das ein Wort

Mehr

Grundlagen der Programmierung 2. Operationale Semantik

Grundlagen der Programmierung 2. Operationale Semantik Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung

Mehr

Compilerbau 12. Übungsblatt, Sommersemester 2015 Abgabetermin:

Compilerbau 12. Übungsblatt, Sommersemester 2015 Abgabetermin: 12 12. Übungsblatt, Sommersemester 2015 Abgabetermin: 14.07.2015 Aufgabe 32 Übersetzen Sie den arithmetischen Ausdruck a*-(b+c) in 3-Adress-Code. Aufgabe 33 Entwickeln Sie für die folgende Teilgrammatik

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.11.2005 5. Vorlesung 1 Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale

Mehr

Grundlagen der Theoretischen Informatik

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

Mehr

Theoretische Grundlagen der Informatik

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

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

Einführung in die Computerlinguistik Chart-Parsing

Einführung in die Computerlinguistik Chart-Parsing Einführung in die Computerlinguistik Chart-Parsing Dozentin: Wiebke sen 21.12.2009 Wiebke sen Einführung CL (Wie 09/10) 1 P = calls calls Wiebke sen Einführung CL (Wie 09/10) 2 P = calls calls Wiebke sen

Mehr

Grundlagen der Programmierung 3 A

Grundlagen der Programmierung 3 A Grundlagen der Programmierung 3 A Compiler A: Phasen; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein Programm, das ein Wort

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

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

2.1 Grundlagen: Kontextfreie Grammatiken

2.1 Grundlagen: Kontextfreie Grammatiken 2.1 Grundlagen: Kontextfreie Grammatiken Programme einer Programmiersprache können unbeschränkt viele Tokens enthalten, aber nur endlich viele Token-Klassen :-) Als endliches Terminal-Alphabet T wählen

Mehr

Vorlesung Programmieren

Vorlesung Programmieren Vorlesung Programmieren 14 Parsen, Suchen und Sortieren 19./26.01.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION

Mehr

I.5. Kontextfreie Sprachen

I.5. Kontextfreie Sprachen I.5. Kontextfreie prachen Zieht man in Betracht, dass BNF-yteme gerade so beschaffen sind, dass auf der linken eite immer genau ein Nichtterminal steht, so sind das also gerade die Ableitungsregeln einer

Mehr

Dyck-Sprachen & Syntax-Analyse

Dyck-Sprachen & Syntax-Analyse Dyck-Sprachen & Syntax-Analyse Volker Diekert Universität Stuttgart Dyck-Sprachen & Syntax-Analyse, TUM, 25. Juni 2003 1/?? Bäume sind überall............ Trees are everywhere ) ( [ [ ( [ [ ) [ [ ) ( [

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

Mehrdeutige Grammatiken

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

Mehr

9.4 Grundlagen des Compilerbaus

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

Mehr

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012 Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Einschub: Kellerautomaten

Mehr

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK Theoretische Grundlagen der Informatik 0 17.01.2019 Torsten Ueckerdt - Theoretische Grundlagen der Informatik KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Evaluation Ergebnisse

Mehr

Compiler, Übersetzer. Allgemeine Erklärung / Definition

Compiler, Übersetzer. Allgemeine Erklärung / Definition Compiler, Übersetzer Allgemeine Erklärung / Definition Ein Übersetzer ist ein Programm, das ein S 1 -Wort den Quelltext in ein S 2 -Wort umwandelt den Zieltext wobei die Semantik erhalten bleibt. Frage:

Mehr

Grundlagen der Programmierung 2 (Comp-A)

Grundlagen der Programmierung 2 (Comp-A) Grundlagen der Programmierung 2 (Comp-A) Prof. Dr. Manfred Schmidt-Schauß Künstliche Intelligenz und Softwaretechnologie 16. Juni 2011 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein

Mehr

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung 09.11.2006 schindel@informatik.uni-freiburg.de 1 Äquivalenzklassen Definition und Beispiel Definition Für eine Sprache L Σ* bezeichnen

Mehr

Aussagenlogik: Syntax von Aussagen

Aussagenlogik: Syntax von Aussagen Aussagenlogik: Syntax von Aussagen A ::= X (A A) (A A) ( A) (A A) (A A) 0 1 Prioritätsreihenfolge :,,,,. A B: Konjunktion (Verundung). A B: Disjunktion (Veroderung). A B: Implikation. A B: Äquivalenz.

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Verarbeitung von Programmiersprachen Was ist das einfachste

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

3 Syntax von Programmiersprachen

3 Syntax von Programmiersprachen 3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme

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

3.1 Reservierte Wörter

3.1 Reservierte Wörter 3.1 Reservierte Wörter int Bezeichner für Basis-Typen; if, else, while Schlüsselwörter aus Programm-Konstrukten; (,), ",, {,},,,; Sonderzeichen. 62 3.2 Was ist ein erlaubter Name? Schritt 1: Angabe der

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

Übersicht. 3 3 Kontextfreie Sprachen

Übersicht. 3 3 Kontextfreie Sprachen Formale Systeme, Automaten, Prozesse Übersicht 3 3.1 Kontextfreie Sprachen und Grammatiken 3.2 Ableitungsbäume 3.3 Die pre -Operation 3.4 Entscheidungsprobleme für CFGs 3.5 Normalformen für CFGs 3.6 Chomsky-Normalform

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

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

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen prachtechnologie und Compiler W 2008/2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. nelting snelting@ipd.info.uni-karlsruhe.de

Mehr

3 Syntax von Programmiersprachen

3 Syntax von Programmiersprachen 3 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ) formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmiersprache Festlegung, wie Programme

Mehr

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

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

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

Mehr

Grammatiken und ANTLR

Grammatiken und ANTLR Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik

Mehr

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im

Mehr

VU Software Paradigmen / SS 2014

VU Software Paradigmen / SS 2014 VU Software Paradigmen 716.060 / SS 2014 Thorsten Ruprechter ruprechter@tugraz.at Institute for Software Technology 1 Organisatorisches Ausgabe: 25.03. (heute) Fragestunde: 22.04. Abgabe: 29.04 (ausgedruckt)

Mehr

VU Software Paradigmen / SS 2012

VU Software Paradigmen / SS 2012 VU Software Paradigmen 716.060 / SS 2012 Sandra Fruhmann sandra.fruhmann@student.tugraz.at Inhalt Grammatiken Chomsky Sprachhierarchie Parse Trees Recursive Descent Parser First-, Follow-Mengen 2 Compiler

Mehr

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: (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

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

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

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs) ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

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

Softwareparadigmen VU / SS 2018

Softwareparadigmen VU / SS 2018 Softwareparadigmen VU 716.060 / SS 2018 Jannik Hildebrandt swp@ist.tugraz.at NG: tu-graz.lv.swp Institute for Software Technology 1 Organisatorisches Ausgabe: 21.03. Fragestunde: 11.04. Abgabe: 18.04.,

Mehr