Grundbegriffe der Informatik



Ähnliche Dokumente
Grundbegriffe der Informatik

Grundbegriffe der Informatik

Programmiersprachen und Übersetzer

Grundbegriffe der Informatik Tutorium 7

12 K O N T E X T F R E I E G R A M M AT I K E N rekursive definition syntaktischer strukturen

Theorie der Informatik

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

1 Mathematische Grundlagen

Grundbegriffe der Informatik

2.11 Kontextfreie Grammatiken und Parsebäume

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

Grundbegriffe der Informatik

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Grundbegriffe der Informatik

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

Formale Sprachen und Grammatiken

Grundbegriffe der Informatik

Theoretische Informatik I

Grundbegriffe der Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Theoretische Informatik I

Mathematische Grundlagen der Informatik 2

Einführung in die Algebra

Theoretische Grundlagen der Informatik

Grammatiken. Einführung

4. AUSSAGENLOGIK: SYNTAX. Der Unterschied zwischen Objektsprache und Metasprache lässt sich folgendermaßen charakterisieren:

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Informatik IC2. Balazs Simon

3.2 Spiegelungen an zwei Spiegeln

Was meinen die Leute eigentlich mit: Grexit?

Der Zwei-Quadrate-Satz von Fermat

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Grundlagen der Künstlichen Intelligenz

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Logische Folgerung. Definition 2.11

Primzahlen und RSA-Verschlüsselung

Formale Sprachen. Der Unterschied zwischen Grammatiken und Sprachen. Rudolf Freund, Marian Kogler

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Informationsblatt Induktionsbeweis

Was ist Sozial-Raum-Orientierung?

Grundlagen der Theoretischen Informatik, SoSe 2008

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

syntax.tex Eine Übersicht

Umgekehrte Kurvendiskussion

Professionelle Seminare im Bereich MS-Office

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Einführung in. Logische Schaltungen

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 1. Semester ARBEITSBLATT 3 RECHNEN MIT GANZEN ZAHLEN

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

TheGI 1: Grundlagen und algebraische Strukturen Prof. Dr.-Ing. Uwe Nestmann Februar Schriftliche Leistungskontrolle (EK)

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

7. Formale Sprachen und Grammatiken

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

7 Rechnen mit Polynomen

Das Briefträgerproblem

Mathematischer Vorbereitungskurs für Ökonomen

3. Grundlagen der Linearen Programmierung

Die Post hat eine Umfrage gemacht

Zeichen bei Zahlen entschlüsseln

Theoretische Grundlagen des Software Engineering

Beispiele für Relationen

Thüringer Kultusministerium. Abiturprüfung 2000

Logik für Informatiker

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Codierungstheorie Rudolf Scharlau, SoSe

Wortproblem für kontextfreie Grammatiken

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Anleitung über den Umgang mit Schildern

Beweisbar sichere Verschlüsselung

Berechnungen in Access Teil I

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Also kann nur A ist roter Südler und B ist grüner Nordler gelten.

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Simplex-Umformung für Dummies

WS 2009/10. Diskrete Strukturen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier fernau@uni-trier.de

WS 2008/09. Diskrete Strukturen

Das Leitbild vom Verein WIR

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Wintersemester 2005/2006 Gedächtnisprotokoll der mündlichen Prüfung

Lineare Gleichungssysteme

Whitebox-Tests: Allgemeines

1 Ordnung muß sein. 1.1 Angeordnete Körper. 1.2 Folgerungen aus den Anordnungsaxiomen. ( c) (b a) > 0. Somit a c b c > 0.

Bestimmung einer ersten

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Wie Sie beliebig viele PINs, die nur aus Ziffern bestehen dürfen, mit einem beliebigen Kennwort verschlüsseln: Schritt 1

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)

Sollsaldo und Habensaldo

Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395

1 topologisches Sortieren

Das muss drin sein. Hallo, wir sind die Partei: DIE LINKE.

Transkript:

Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37

Überblick Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen Kontextfreie Grammatiken Relationen (Teil 2) 2/37

Überblick Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen Kontextfreie Grammatiken Relationen (Teil 2) Kontextfreie Grammatiken 3/37

Überblick Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen Kontextfreie Grammatiken Relationen (Teil 2) Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 4/37

Spezifikation formaler Sprachen Beschreibung formaler Sprachen nur mit Hilfe einzelner Symbole und der Operation Vereinigung, Konkatenation und Konkatenationsabschluss: manchmal möglich manchmal nicht (Beweis später) Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 5/37

Ausschnitt der Definition der Syntax von Java 1 Block: { BlockStatements opt } 2 BlockStatements: BlockStatement BlockStatements BlockStatement 3 BlockStatement: Statement...... 4 Statement: StatementWithoutTrailingSubstatement...... 5 StatementWithoutTrailingSubstatement: Block...... Siehe http://java.sun.com/docs/books/jls/third_edition/ Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 6/37

Rekursion Bei der Beschreibung der Struktur von BlockStatements wird direkt auf BlockStatements Bezug genommen. Bei der Definition von Block wird (indirekt) auf die Bedeutung von Statement verwiesen und bei der Definition von Statement (indirekt) wieder auf die Bedeutung von Block. Was soll das bedeuten? beschränken wir uns erst einmal auf den Kern des Ganzen... Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 7/37

Simplizfizierungen schreibe X statt Block, Statement o.ä. schreibe runde Klammern ( und ) statt der geschweiften (wegen der Verwechslungsgefahr mit Mengenklammern) Dann besagt die Definition stark vereinfacht unter anderem: K1 Ein X kann etwas ganz einfaches sein; schreiben für dafür einfach das leere Wort ε. K2 Ein X kann ein Y sein oder die Folge XY ; also kann ein X von der Form YY sein. Jedes Y seinerseits kann wieder ein X sein. Also kann ein X auch von der Form XX sein. K3 Wenn man ein X hat, dann ist auch (X ) wieder ein X. K4 Auch gemeint: Es ist nichts ein X, was man nicht auf Grund der obigen Festlegungen als solches identifizieren kann. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 8/37

Versuch einer formalen Sprache versuche, mit X eine formale Sprache L zu assoziieren: L = {ε} LL {(}L{)} trügerische Hoffnung: die Inklusion L... spiegelt K1, K2, K3 wieder die Inklusion L... spiegelt K4 wieder Fragen: 1. Gibt es überhaupt eine Sprache, die die Gleichung erfüllt? Das hätten wir gerne und ja, das ist so. 2. falls ja: Ist die Lösung der Gleichung auch eindeutig? Das hätten wir auch gerne, aber nein, das ist nicht so. = Arbeit: Man finde und charakterisiere irgendwie die uns interessierende Lösung. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 9/37

Versuch einer formalen Sprache versuche, mit X eine formale Sprache L zu assoziieren: L = {ε} LL {(}L{)} trügerische Hoffnung: die Inklusion L... spiegelt K1, K2, K3 wieder die Inklusion L... spiegelt K4 wieder Fragen: 1. Gibt es überhaupt eine Sprache, die die Gleichung erfüllt? Das hätten wir gerne und ja, das ist so. 2. falls ja: Ist die Lösung der Gleichung auch eindeutig? Das hätten wir auch gerne, aber nein, das ist nicht so. = Arbeit: Man finde und charakterisiere irgendwie die uns interessierende Lösung. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 9/37

Versuch einer formalen Sprache versuche, mit X eine formale Sprache L zu assoziieren: L = {ε} LL {(}L{)} trügerische Hoffnung: die Inklusion L... spiegelt K1, K2, K3 wieder die Inklusion L... spiegelt K4 wieder Fragen: 1. Gibt es überhaupt eine Sprache, die die Gleichung erfüllt? Das hätten wir gerne und ja, das ist so. 2. falls ja: Ist die Lösung der Gleichung auch eindeutig? Das hätten wir auch gerne, aber nein, das ist nicht so. = Arbeit: Man finde und charakterisiere irgendwie die uns interessierende Lösung. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 9/37

Lösbarkeit von L = {ε} LL {(}L{)} konstruiere Folge L 0, L 1,... formaler Sprachen L i für i N 0 zeige, dass die Vereinigung aller L i die Gleichung löst L 0 = {ε}. für i N 0 sei L i+1 = L i L i {(}L i {)} Lemma. L = i=0 L i erfüllt die Gleichung. Beweisstruktur zu zeigen: L = {ε} LL {(}L{)} zeige: L {ε} LL {(}L{)} L {ε} LL {(}L{)} Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 10/37

Lösbarkeit von L = {ε} LL {(}L{)} konstruiere Folge L 0, L 1,... formaler Sprachen L i für i N 0 zeige, dass die Vereinigung aller L i die Gleichung löst L 0 = {ε}. für i N 0 sei L i+1 = L i L i {(}L i {)} Lemma. L = i=0 L i erfüllt die Gleichung. Beweisstruktur zu zeigen: L = {ε} LL {(}L{)} zeige: L {ε} LL {(}L{)} L {ε} LL {(}L{)} Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 10/37

Beweis des Lemmas i N 0 : ε L i, denn: ε L0 für alle i N0 ist L i L i L i+1, wenn ε L i, dann auch ε = εε L i L i L i+1. also i N 0 : L i = L i {ε} L i L i L i+1. Zeige: L {ε} LL {(}L{)} Da ε L0 L ist, ist L = L{ε} LL {ε} LL {(}L{)}. Zeige: L {ε} LL {(}L{)} sei w {ε} LL {(}L{)}. 1. Fall: w = ε: w = ε L0 L. 2. Fall: w LL: Dann w = w 1 w 2 mit w 1 L und w 2 L. Also existieren Indizes i 1 und i 2 mit w 1 L i1 und w 2 L i2. Für i = max(i 1, i 2 ) ist w 1 L i und w 2 L i, also w = w 1 w 2 L i L i L i+1 L. 3. Fall: w {(}L{)}: für ein i N 0 ist dann w {(}L i {)} L i+1 L. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 11/37

Lösung von L = {ε} LL {(}L{)} nicht eindeutig {(, )} ist auch eine Lösung, denn zeigt man wie oben ist trivial, da {(, )} eben alle Wörter sind. Das ist eine andere Lösung, denn ((( ist zwar in {(, )} aber nicht in i=0 L i: man vergleiche die Anzahlen der ( und ) Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 12/37

Was kann man an i=0 L i sehen? L 0 = {ε} L 1 L 0 = { () } L 2 L 1 = { ()(), (()) } L 3 L 2 = { ()()(), (())(), ()(()), Dabei gilt z. B.: ()()()(), ()()(()), (())()(), (())(()), (()()), ((())) } (())()() L 3, weil (()) L 2 und ()() L 2 und Regel K2 (()) L2, weil () L 1 und Regel K3. () L 1, weil ε L 0 und Regel K3. ()() L2, weil () L 1 und () L 1 ist und Regel K2 () L 1, weil ε L 0 und Regel K3. () L 1, weil ε L 0 und Regel K3. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 13/37

Die Erklärung für (())()() L 3 graphisch dargestellt (())()() L 3 (()) L 2 ()() L 2 ( () L 1 ) () L 1 () L 1 ( ε L 0 ) ( ε L 0 ) ( ε L 0 ) ε ε ε Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 14/37

Vereinfachte Darstellung für (())()() L 3 X X X ( X ) X X ( X ) ( X ) ( X ) ε ε ε So etwas heißt auch Baum ( Wurzel oben, Blätter unten) bisher: von unten nach oben interpretiert als Begründungen kontextfreie Grammatiken: von oben nach unten syntaktische Ersetzungen Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 15/37

Vereinfachte Darstellung für (())()() L 3 X X X ( X ) X X ( X ) ( X ) ( X ) ε ε ε So etwas heißt auch Baum ( Wurzel oben, Blätter unten) bisher: von unten nach oben interpretiert als Begründungen kontextfreie Grammatiken: von oben nach unten syntaktische Ersetzungen Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 15/37

Was ist wichtig Das sollten Sie mitnehmen: Klammerstrukturen sind wichtig. Manchmal kann man sich Fixpunkten annähern. Ein Fixpunkt einer Abbildung f ist ein Argument x mit x = f (x). So kann man L = {ε} LL (L) auch sehen... Das sollten Sie üben: Angst verlieren vor dem Lesen und Finden von Beweisen Bei ruhigem Hinsehen drängt sich eine passende Vorgehensweise manchmal fast auf. Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen 16/37

Überblick Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen Kontextfreie Grammatiken Relationen (Teil 2) Kontextfreie Grammatiken Kontextfreie Grammatiken 17/37

Kontextfreie Grammatik G = (N, T, S, P) N ist ein Alphabet sogenannter Nichtterminalsymbole T ist ein Alphabet sogenannter Terminalsymbole. kein Zeichen in beiden Alphabeten: N T = {}. S N ist das sogenannte Startsymbol. P N V ist endliche Menge von Produktionen. V = N T Menge aller Symbole überhaupt Schreibweise: X w (statt (X, w) P) Bedeutung: man kann X ersetzen durch w Kontextfreie Grammatiken Kontextfreie Grammatiken 18/37

ein Ableitungsschritt Aus u V ist in einem Schritt v V ableitbar in Zeichen u v wenn Wörter w 1, w 2 V und eine Produktion X w in P existieren, so dass u = w 1 X w 2 und v = w 1 ww 2. Also: Wenn X w in P, dann w 1 X w 2 w 1 ww 2. Beispiel G = ({X }, {a, b}, X, P) mit Produktionenmenge P = {X ε, X ax b}. Dann gilt z. B. abax baxxxx abax baax bxxx, denn abax } {{ ba} X XXX } {{ } w 1 w 2 } abax {{ ba} w 1 ax b XXX } {{ } w 2 Ebenso gilt abax baxxxx abaax bbaxxxx, denn }{{} aba X baxxxx } {{ } w 1 w 2 }{{} aba w 1 ax b baxxxx } {{ } w 2 Kontextfreie Grammatiken Kontextfreie Grammatiken 19/37

Anmerkungen Die Definition von legt eine Relation zwischen Wörtern über dem Alphabet V = N T fest. Man könnte also auch schreiben: R V V (oder gar V V?) üblich: Infixschreibweise Man schreibt u v und nicht (u, v) R, so wie man auch 5 7 schreibt und nicht (5, 7) R Im allgemeinen ist weder links- noch rechtstotal und weder links- noch rechtseindeutig. bei einer Produktion linke Seite ist immer ein Nichtterminalsymbol In Ableitungsschritt wird nie ein Terminalsymbol ersetzt. Wo sie stehen, ist die Ableitung zu Ende daher der Name Terminalsymbol. Kontextfreie Grammatiken Kontextfreie Grammatiken 20/37

Anmerkungen Die Definition von legt eine Relation zwischen Wörtern über dem Alphabet V = N T fest. Man könnte also auch schreiben: R V V (oder gar V V?) üblich: Infixschreibweise Man schreibt u v und nicht (u, v) R, so wie man auch 5 7 schreibt und nicht (5, 7) R Im allgemeinen ist weder links- noch rechtstotal und weder links- noch rechtseindeutig. bei einer Produktion linke Seite ist immer ein Nichtterminalsymbol In Ableitungsschritt wird nie ein Terminalsymbol ersetzt. Wo sie stehen, ist die Ableitung zu Ende daher der Name Terminalsymbol. Kontextfreie Grammatiken Kontextfreie Grammatiken 20/37

Anmerkungen Die Definition von legt eine Relation zwischen Wörtern über dem Alphabet V = N T fest. Man könnte also auch schreiben: R V V (oder gar V V?) üblich: Infixschreibweise Man schreibt u v und nicht (u, v) R, so wie man auch 5 7 schreibt und nicht (5, 7) R Im allgemeinen ist weder links- noch rechtstotal und weder links- noch rechtseindeutig. bei einer Produktion linke Seite ist immer ein Nichtterminalsymbol In Ableitungsschritt wird nie ein Terminalsymbol ersetzt. Wo sie stehen, ist die Ableitung zu Ende daher der Name Terminalsymbol. Kontextfreie Grammatiken Kontextfreie Grammatiken 20/37

mehrere Ableitungsschritte Eine Ableitung(sfolge) ist eine Folge von Ableitungsschritten, deren Anzahl irrelevant ist. Formal: Für alle u, v V gelte u 0 v genau dann, wenn u = v i N 0 : (u i+1 v genau dann, wenn w V : u w i v) u v genau dann, wenn i N 0 : u i v Beispielgrammatik G = ({X }, {a, b}, X, {X ε, X ax b}): X ax b aax bb aaax bbb aaabbb Also gilt z. B.: X aax bb, ax b aaax bbb, X aaabbb und viele andere. Kontextfreie Grammatiken Kontextfreie Grammatiken 21/37

erzeugte formale Sprache Hauptinteresse: Welche Wörter aus Terminalsymbolen können aus dem Startsymbol abgeleitet werden? von Grammatik G = (N, T, S, P) erzeugte formale Sprache L(G) = {w T S w}. solche formalen Sprachen heißen auch kontextfrei Kontextfreie Grammatiken Kontextfreie Grammatiken 22/37

Beispiel einer kontextfreien Sprache Beispielgrammatik G = ({X }, {a, b}, X, {X ε, X ax b} eben schon gesehen: aaabbb L(G) wegen X ax b aax bb aaax bbb aaabbb leicht verallgemeinerbar: für alle i N 0 gilt: X a i b i, also {a i b i i N 0 } L(G) Beweis wird leichter, wenn man gleich zeigt: i N 0 : (X a i b i X a i X b i ) Umgekehrt kann man zeigen: i N 0 : wenn X i+1 w, dann w = a i b i w = a i+1 X b i+1 also L(G) {a i b i i N 0 } Insgesamt: L(G) = {a i b i i N 0 }. Kontextfreie Grammatiken Kontextfreie Grammatiken 23/37

kompaktere Notation bei vielen Produktionen Statt {X w 1, X w 2, X w 3, X w 4, X w 5 } schreibt man {X w 1 w 2 w 3 w 4 w 5 } und liest die senkrechten Striche als oder. Beispielgrammatik: P = { X ax b ε } Kontextfreie Grammatiken Kontextfreie Grammatiken 24/37

Interpretation der Definition der Java-Syntax eine kontextfreien Grammatik Block,... sind jeweils ein Nichtterminalsymbol. Doppelpunkt entspricht Pfeil eingerückte Zeile: rechte Seite einer Produktion aufeinander folgende Zeilen denke man sich durch senkrechte Striche getrennt Beispiel 2 BlockStatements: BlockStatement BlockStatements BlockStatement bedeutet BlockStatements BlockStatement BlockStatements BlockStatement Kontextfreie Grammatiken Kontextfreie Grammatiken 25/37

Interpretation der Definition der Java-Syntax (2) ähnlich 1 Block: { BlockStatements opt } bedeutet Block { BlockStatements } { } Kontextfreie Grammatiken Kontextfreie Grammatiken 26/37

kontextfreie Grammatiken für Syntax von Programmiersprachen? (jedenfalls viele) Nichtterminalsymbole stehen für strukturelle Konzepte der Programmiersprache. das Ideal: Man kann mit der Grammatik für Java genau alle syntaktisch korrekten Javaprogramme ableiten kann, aber auch nur diese und nichts anderes. die Realität ist komplizierter: Was mit der Grammatik nicht ableitbar ist, ist bestimmt kein Javaprogramm. gut Aber Dinge ableitbar, die keine korrekten Programme sind. nicht gut. Grund: manche Forderungen kann man überhaupt nicht mit Hilfe kontextfreier Grammatiken ausdrücken. Kontextfreie Grammatiken Kontextfreie Grammatiken 27/37

Ableitungsbäume Grammatik für unser Klammerproblem: ({X }, {(, )}, X, {X XX (X ) ε}). lange Ableitungsfolgen manchmal nicht sehr erhellend: X X X (X )X (X )X X (X )X (X ) ((X ))X (X ) ((X ))X () ((X ))(X )() (())(X )() (())()() man darf umordnen (Kontextfreiheit!) schon besser: Linksableitung X X X (X )X ((X ))X (())X (())X X (())(X )X (())()X (())()(X ) (())()() manchmal noch übersichtlicher: Ableitungsbaum Kontextfreie Grammatiken Kontextfreie Grammatiken 28/37

ein Ableitungsbaum X X X ( X ) X X ( X ) ( X ) ( X ) ε ε ε Man beginnt mit dem Startsymbol als Wurzel. Für jeden Ableitungsschritt werden an das ersetzte Nichtterminalsymbol Kanten nach unten dran gehängt. (Wir verzichten an dieser Stelle auf eine Formalisierung.) Kontextfreie Grammatiken Kontextfreie Grammatiken 29/37

Was ist wichtig Das sollten Sie mitnehmen: kontextfreie Grammatik Ableitung erzeugte formale Sprache Ableitungsbaum Das sollten Sie üben: (semi-)reale Produktionenmengen lesen (Java,... ) zu formaler Sprache sie erzeugende kontextfreie Grammatik konstruieren zu kontextfreier Grammatik die erzeugte formale Sprache bestimmen Kontextfreie Grammatiken Kontextfreie Grammatiken 30/37

Überblick Kontextfreie Grammatiken Rekursive Definition syntaktischer Strukturen Kontextfreie Grammatiken Relationen (Teil 2) Kontextfreie Grammatiken Relationen (Teil 2) 31/37

Produkt von Relationen Es seien R M 1 M 2 und S M 2 M 3 zwei Relationen Dann heißt S R = {(x, z) M 1 M 3 y M 2 : (x, y) R (y, z) S} das Produkt der Relationen R und S. oder in Infixschreibweise: für alle (x, z) M 1 M 3 x(s R)z gdw. y M 2 : xry ysz Mitteilung: Das Relationenprodukt ist eine assoziative Operation. Mit Id M bezeichnen wir die Relation Id M = {(x, x) x M} Das ist die identische Abbildung auf der Menge M. Für jede binäre Relation R M M gilt: R Id M = R = Id M R Kontextfreie Grammatiken Relationen (Teil 2) 32/37

Potenzen und reflexiv-transitive Hülle einer Relation Ist R M M binäre Relation auf einer Menge M, dann definiert man Potenzen R i : R 0 = Id M i N 0 : R i+1 = R i R Die reflexiv-transitive Hülle einer Relation R ist R = i=0 R i Kontextfreie Grammatiken Relationen (Teil 2) 33/37

reflexiv-transitive Hülle Die reflexiv-transitive Hülle R einer Relation R hat folgende Eigenschaften: R ist reflexiv. R ist transitiv. R ist die kleinste Relation, die R enthält und reflexiv und transitiv ist. Relation R heißt reflexiv, wenn Id M R ist. Relation R heißt transitiv, wenn gilt: x M : y M : z M : xry yrz = xrz (Das ist ein Implikationspfeil und kein Ableitungspfeil.) Kontextfreie Grammatiken Relationen (Teil 2) 34/37

reflexiv-transitive Hülle (2) R ist immer reflexiv, denn Id M = R 0 R Man kann zeigen: für alle i, j N 0 gilt: R i R j = R i+j. Daraus folgt: R ist immer transitiv, denn wenn (x, y) R und (y, z) R, dann gibt es i und j N0 mit (x, y) R i und (y, z) R j dann ist (x, z) R i R j = R i+j R. R ist die kleinste Relation, die R umfasst und reflexiv und transitiv ist: R umfasst R und ist reflexiv und transitiv. Es sei S eine beliebige Relation ist, die reflexiv und transitiv ist. Wenn S die Relation R umfasst, also R S, dann sogar R S. Kontextfreie Grammatiken Relationen (Teil 2) 35/37

Was ist wichtig Das sollten Sie mitnehmen: Produkte und Potenzen von Relationen reflexive und transitive Relationen reflexiv-transitive Hülle einer Relation klassisches Beispiel: Ableitbarkeit Das sollten Sie üben: Transitivität nachweisen Bilder von Relationen malen Kontextfreie Grammatiken Relationen (Teil 2) 36/37

Zusammenfassung rekursive Definitionen syntaktischer Strukturen Vorsicht kann nicht schaden zumindest manchmal sinnvolle Interpretation möglich Grammatiken kontextfreie Grammatik Ableitung erzeugte formale Sprache Ableitungsbaum Relationen Produkte und Potenzen von Relationen reflexive und transitive Relationen reflexiv-transitive Hülle einer Relation Kontextfreie Grammatiken Relationen (Teil 2) 37/37