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



Ähnliche Dokumente
Programmiersprachen und Übersetzer

Theorie der Informatik

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

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

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

Theoretische Informatik I

Formale Sprachen und Grammatiken

Theoretische Grundlagen der Informatik

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

Vorlesung Theoretische Informatik

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

Grundbegriffe der Informatik

Theoretische Informatik

2.11 Kontextfreie Grammatiken und Parsebäume

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grammatiken. Einführung

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 )

1 Mathematische Grundlagen

7. Formale Sprachen und Grammatiken

Mathematische Grundlagen der Informatik 2

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

Informatik IC2. Balazs Simon

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

Theoretische Informatik I

Informatik IV Theoretische Informatik

Wortproblem für kontextfreie Grammatiken

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

Sprachen/Grammatiken eine Wiederholung

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

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

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

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

Grundbegriffe der Informatik

Formale Sprachen, reguläre und kontextfreie Grammatiken

Data Mining: Einige Grundlagen aus der Stochastik

Formale Grundlagen der Informatik 1 Kapitel 12 Zusammenfassung

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Wie kann man beweisen, dass (H, ) eine Gruppe ist?

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

Einführung in die Algebra

1 Aussagenlogik und Mengenlehre

Kapitel 2. Methoden zur Beschreibung von Syntax

Grundbegriffe der Informatik Tutorium 7

WS 2009/10. Diskrete Strukturen

Informatik I WS 07/08 Tutorium 24

Übung Theoretische Grundlagen Nachtrag zur Vorlesung Dirk Achenbach

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

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

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Informatik I Tutorium WS 07/08

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

IT-Basics 2. DI Gerhard Fließ

Grundlagen der Theoretischen Informatik, SoSe 2008

Wir gehen aus von euklidischen Anschauungsraum bzw. von der euklidischen Zeichenebene. Parallele Geraden schneiden einander nicht.

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

Einfache kryptographische Verfahren

3. Grundlagen der Linearen Programmierung

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

Kapitel 2: Formale Sprachen Gliederung

Falten regelmäßiger Vielecke

Binäre Bäume Darstellung und Traversierung

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Musterlösungen zur Linearen Algebra II Blatt 5

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Zeichen bei Zahlen entschlüsseln

WS 2008/09. Diskrete Strukturen

Um zusammenfassende Berichte zu erstellen, gehen Sie folgendermaßen vor:

Definition und Begriffe

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

15 Optimales Kodieren

Grammatiken und die Chomsky-Hierarchie

Primzahlen und RSA-Verschlüsselung

Theoretische Grundlagen der Informatik WS 09/10

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

Codierungstheorie Rudolf Scharlau, SoSe

Grundlagen der Theoretischen Informatik

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Der Zwei-Quadrate-Satz von Fermat

Was ist ein Compiler?

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

3. Zusammenhang. 22 Andreas Gathmann

Theoretische Informatik I (Grundzüge der Informatik I)

WS 2013/14. Diskrete Strukturen

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

7 Rechnen mit Polynomen

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Was bisher geschah: Formale Sprachen

Theoretische Grundlagen des Software Engineering

Ihr CMS für die eigene Facebook Page - 1

1 Syntax von Programmiersprachen

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

Professionelle Seminare im Bereich MS-Office

Anmerkungen zur Übergangsprüfung

Definition 27 Affiner Raum über Vektorraum V

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Approximation durch Taylorpolynome

3.2 Spiegelungen an zwei Spiegeln

Transkript:

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf) Informatik IV 1 / 36

Vorbemerkungen Websites Websites Vorlesungswebsite: http : //ccc.cs.uni-duesseldorf.de/ rothe/info4 Anmeldung nicht nur im LSF, sondern auch unter http://ccc.cs.uni-duesseldorf.de/verwaltung (CCC-System für alle meine Veranstaltungen) J. Rothe (HHU Düsseldorf) Informatik IV 2 / 36

Vorbemerkungen Literatur Literatur Alexander Asteroth und Christel Baier: Theoretische Informatik. Eine Einführung in Berechenbarkeit, Komplexität und formale Sprachen mit 101 Beispielen. Pearson Studium, 2002. Norbert Blum: Theoretische Informatik. Eine anwendungsorientierte Einführung. Oldenbourg, 2. Auflage, 2001. Katrin Erk und Lutz Priese: Theoretische Informatik. Eine umfassende Einführung. Springer-Verlag, 3. Auflage, 2008. Gerhard Goos: Vorlesungen über Informatik 3. Berechenbarkeit, formale Sprachen, Spezifikationen. Springer-Verlag, 1997. John E. Hopcroft, Rajeev Motwani und Jeffrey D. Ullman: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. Pearson Studium, 2. Auflage, 2002. J. Rothe (HHU Düsseldorf) Informatik IV 3 / 36

Vorbemerkungen Literatur Literatur Jörg Rothe: Komplexitätstheorie und Kryptologie. Eine Einführung in Kryptokomplexität. examen.press, Springer-Verlag, Berlin, Heidelberg, 2008. (Nur die Kapitel 2.2 und 3.5.) Arto K. Salomaa: Formale Sprachen. Springer-Verlag, 1978. Uwe Schöning: Theoretische Informatik kurz gefasst. Spektrum Akademischer Verlag, 5. Auflage, 2008. Gottfried Vossen und Kurt-Ulrich Witt: Grundkurs Theoretische Informatik. Vieweg Verlag, 4. Auflage, 2006. Klaus W. Wagner: Theoretische Informatik. Eine kompakte Einführung. Springer-Verlag, 2. Auflage, 2003. Ingo Wegener: Theoretische Informatik. Eine algorithmenorientierte Einführung. Teubner, 3. Auflage, 2005. J. Rothe (HHU Düsseldorf) Informatik IV 4 / 36

Alphabet, Wort und Sprache Definition Ein Alphabet ist eine endliche, nichtleere Menge Σ von Buchstaben (oder Symbolen). Beispiel: Σ 1 = {a, b, c} oder Σ 2 = {0, 1}. Ein Wort über Σ ist eine endliche Folge von Elementen aus Σ. Beispiel: w 1 = aabc und w 2 = caba sind Wörter über Σ 1 ; w 3 = 1110 und w 4 = 0101 sind Wörter über Σ 2. J. Rothe (HHU Düsseldorf) Informatik IV 5 / 36

Alphabet, Wort und Sprache Definition Die Länge eines Wortes w (bezeichnet mit w ) ist die Anzahl der Symbole in w. Beispiel: 010 = 3. Das leere Wort ist das eindeutig bestimmte Wort der Länge 0 und wird mit dem griechischen Buchstaben λ ( Lambda ) bezeichnet. (Beachte: λ ist nicht als Symbol eines Alphabets erlaubt.) Es gilt λ = 0. Die Menge aller Wörter über Σ bezeichnen wir mit Σ. Beispiel: {0, 1} = {λ, 0, 1, 00, 01, 10, 11, 000,...}. J. Rothe (HHU Düsseldorf) Informatik IV 6 / 36

Alphabet, Wort und Sprache Definition Eine (formale) Sprache (über Σ) ist eine jede Teilmenge von Σ. Beispiel: L = {00, 10} Σ = {0, 1}. Die leere Sprache ist die Sprache, die keine Wörter enthält, und wird mit bezeichnet. (Beachte: {λ}.) Die Kardinalität einer Sprache L ist die Anzahl der Wörter von L und wird mit L bezeichnet. Beispiel: {00, 10} = 2. J. Rothe (HHU Düsseldorf) Informatik IV 7 / 36

Operationen auf Wörtern und Sprachen Definition Seien A und B beliebige Sprachen über dem Alphabet Σ, d.h., A, B Σ. Definiere die Vereinigung von A und B durch A B = {x Σ x A oder x B}; Beispiel: {10, 1} {1, 0} = {10, 1, 0}. den Durchschnitt von A und B durch A B = {x Σ x A und x B}; Beispiel: {10, 1} {1, 0} = {1}. J. Rothe (HHU Düsseldorf) Informatik IV 8 / 36

Operationen auf Wörtern und Sprachen Definition die Differenz von A und B durch A B = {x Σ x A und x B}; Beispiel: {10, 1} {1, 0} = {10}. das Komplement von A durch A = Σ A = {x Σ x A}. Beispiel: {10, 1} = {0, 1} {10, 1} = {λ, 0, 00, 11, 01, 000,...}. J. Rothe (HHU Düsseldorf) Informatik IV 9 / 36

Operationen auf Wörtern und Sprachen Definition Die Konkatenation (Verkettung) von Wörtern u, v Σ ist ein Wort uv Σ, das wie folgt definiert ist: Ist u = v = λ, so ist uv = vu = λ. Ist v = λ, so ist uv = u. Ist u = λ, so ist uv = v. Sind u = u 1 u 2 u n und v = v 1 v 2 v m mit u i, v i Σ, so ist uv = u 1 u 2 u n v 1 v 2 v m. Beispiel: u = 01, v = 10, uv = 0110 und vu = 1001. J. Rothe (HHU Düsseldorf) Informatik IV 10 / 36

Operationen auf Wörtern und Sprachen Definition Die Konkatenation (Verkettung) von Sprachen A und B (also von Mengen von Wörtern) ist die Sprache AB = {ab a A und b B}. Beispiel: {10, 1}{1, 0} = {101, 100, 11, 10}. Die Iteration einer Sprache A Σ (die Kleene-Hülle von A) ist die Sprache A, die induktiv definiert ist durch A 0 = {λ}, A n = AA n 1, A = A n. n 0 Definiere die λ-freie Iteration von A durch A + = n 1 An. J. Rothe (HHU Düsseldorf) Informatik IV 11 / 36

Operationen auf Wörtern und Sprachen Es gilt: A + {λ} = A. Es gilt nicht: A + = A {λ}. Warum? Beispiel: {10, 1} 0 = {λ}, {10, 1} 1 = {10, 1}, {10, 1} 2 = {10, 1}{10, 1} = {1010, 101, 110, 11}, {10, 1} 3 = {10, 1}{10, 1} 2 = {101010,...}. J. Rothe (HHU Düsseldorf) Informatik IV 12 / 36

Operationen auf Wörtern und Sprachen Definition Die Spiegelbildoperation für ein Wort u = u 1 u 2 u n Σ ist definiert durch sp(u) = u n u 2 u 1. Beispiel: sp(0100101) = 1010010. Die Spiegelung einer Sprache A Σ ist definiert durch sp(a) = {sp(w) w A}. Beispiel: sp({100, 011}) = {001, 110}. J. Rothe (HHU Düsseldorf) Informatik IV 13 / 36

Operationen auf Wörtern und Sprachen Definition Die Teilwortrelation auf Σ ist definiert durch u v ( v 1, v 2 Σ )[v 1 uv 2 = v]. Gilt u v, so bezeichnen wir u als ein Teilwort (einen Infix) von v. Beispiel: 100 1010010. Die Anfangswortrelation auf Σ ist definiert durch u a v ( w Σ )[uw = v]. Gilt u a v, so bezeichnen wir u als ein Anfangswort (einen Präfix) von v. Beispiel: 101 a 1010010. J. Rothe (HHU Düsseldorf) Informatik IV 14 / 36

Grammatik Definition Eine Grammatik ist ein Quadrupel G = (Σ, N, S, P), wobei Σ ein Alphabet (von so genannten Terminalsymbolen) ist, N eine endliche Menge (von so genannten Nichtterminalen) mit Σ N =, S N das Startsymbol und P (N Σ) + (N Σ) die endliche Menge der Produktionen (Regeln). Dabei ist (N Σ) + = (N Σ) {λ}. Regeln (p, q) in P schreiben wir auch so: p q. J. Rothe (HHU Düsseldorf) Informatik IV 15 / 36

Grammatik Für Grammatikregeln mit gleicher linker Seite A N schreiben wir auch kurz A q 1 q 2 q n statt A q 1 A q 2. A q n (aus der so genannten BNF (Backus-Naur-Form)). J. Rothe (HHU Düsseldorf) Informatik IV 16 / 36

Ableitungsrelation, Sprache einer Grammatik Definition Sei G = (Σ, N, S, P) eine Grammatik, und seien u und v Wörter in (N Σ). Definiere die unmittelbare Ableitungsrelation bzgl. G so: u G v u = xpz, v = xqz, wobei x, z (N Σ) und p q eine Regel in P ist. Durch n-malige Anwendung von G erhalten wir n G. Das heißt: u n G v u = x 0 G x 1 G G x n = v für n 0 und für eine Folge von Wörtern x 0, x 1,...,x n (Σ N). Insbesondere ist u 0 G u. J. Rothe (HHU Düsseldorf) Informatik IV 17 / 36

Ableitungsrelation, Sprache einer Grammatik Definition Die Folge (x 0, x 1,..., x n ), x i (Σ N), x 0 = S und x n Σ heißt Ableitung von x n in G, falls x 0 G x 1 G G x n. Definiere G = n 0 n G. Man kann zeigen, dass G die reflexive und transitive Hülle von G ist, d.h. die kleinste binäre Relation, die reflexiv und transitiv ist und G umfasst. Die von der Grammatik G erzeugte Sprache ist definiert als L(G) = {w Σ S G w}. Zwei Grammatiken G 1 und G 2 heißen äquivalent, falls L(G 1 ) = L(G 2 ). J. Rothe (HHU Düsseldorf) Informatik IV 18 / 36

Grammatik, Ableitung, erzeugte Sprache Beispiel: Sei G 1 = (Σ 1,Γ 1, S 1, R 1 ) die folgende Grammatik: das terminale Alphabet ist Σ 1 = {a, b}, das nichtterminale Alphabet ist Γ 1 = {S 1 } und die Menge der Regeln ist gegeben durch R 1 = {S 1 as 1 b λ}. Eine Ableitung für G 1 : S 1 G1 as 1 b G1 aas 1 bb G1 aabb aabb L(G 1 ). Offenbar erzeugt G 1 die Sprache L(G 1 ) = {a n b n n 0}. J. Rothe (HHU Düsseldorf) Informatik IV 19 / 36

Grammatik, Ableitung, erzeugte Sprache Beispiel: Sei G 2 = (Σ 2,Γ 2, S 2, R 2 ) die folgende Grammatik: das terminale Alphabet ist Σ 2 = {a, b, c}, das nichtterminale Alphabet ist Γ 2 = {S 2, B, C} und die Menge der Regeln ist gegeben durch R 2 = { S 2 as 2 BC abc, CB BC, ab ab, bb bb, bc bc, cc cc }. J. Rothe (HHU Düsseldorf) Informatik IV 20 / 36

Grammatik, Ableitung, erzeugte Sprache Beispiel: Eine Ableitung für G 2 : S 2 G2 as 2 BC G2 aas 2 BCBC G2 aaabcbcbc G2 aaabbccbc G2 aaabbcbcc G2 aaabbbccc G2 aaabbbccc G2 aaabbbccc G2 aaabbbccc G2 aaabbbccc G2 aaabbbccc G2 aaabbbccc aaabbbccc L(G 2 ). Die von G 2 erzeugte Sprache ist L(G 2 ) = {a n b n c n n 1}. J. Rothe (HHU Düsseldorf) Informatik IV 21 / 36

Grammatik, Ableitung, erzeugte Sprache Beispiel: Sei G 3 = (Σ 3,Γ 3, S 3, R 3 ) die folgende Grammatik: das terminale Alphabet ist Σ 3 = {,+,(,), a}, das nichtterminale Alphabet ist Γ 3 = {S 3 } und die Menge der Regeln ist gegeben durch R 3 = {S 3 S 3 + S 3 S 3 S 3 (S 3 ) a}. J. Rothe (HHU Düsseldorf) Informatik IV 22 / 36

Grammatik, Ableitung, erzeugte Sprache Beispiel: Eine Ableitung für G 3 : S 3 G3 S 3 + S 3 G3 S 3 S 3 + S 3 G3 (S 3 ) S 3 + S 3 G3 (S 3 + S 3 ) S 3 + S 3 G3 G3 (a + a) a + a (a + a) a + a L(G 3 ). G 3 erzeugt die Sprache aller verschachtelten Klammerausdrücke mit den Operationen + und und einem Zeichen a. J. Rothe (HHU Düsseldorf) Informatik IV 23 / 36

Grammatik, Ableitung, erzeugte Sprache Bemerkung: Der Prozess des Ableitens von Wörtern ist inhärent nichtdeterministisch, denn im Allgemeinen kann mehr als eine Regel in einem Ableitungsschritt angewandt werden. Verschiedene Grammatiken können dieselbe Sprache erzeugen. Tatsächlich hat jede durch eine Grammatik definierbare Sprache unendlich viele sie erzeugende Grammatiken. Das heißt, eine Grammatik ist ein syntaktisches Objekt, das ein semantisches Objekt erzeugt, nämlich ihre Sprache. J. Rothe (HHU Düsseldorf) Informatik IV 24 / 36

Die Chomsky-Hierarchie Chomsky-Hierarchie Definition G = (Σ, N, S, P) sei eine Grammatik. G ist Typ-0-Grammatik, falls P keinerlei Einschränkungen unterliegt. G ist Typ-1-Grammatik (bzw. kontextsensitiv bzw. nichtverkürzend oder monoton), falls für alle Regeln p q in P gilt: p q. Eine Typ-1-Grammatik G ist vom Typ 2 (bzw. kontextfrei), falls für alle Regeln p q in P gilt: p N. Eine Typ-2-Grammatik G ist vom Typ 3 (bzw. regulär bzw. rechtslinear), falls für alle Regeln p q in P gilt: p N und q Σ ΣN. J. Rothe (HHU Düsseldorf) Informatik IV 25 / 36

Die Chomsky-Hierarchie Chomsky-Hierarchie Definition Eine Sprache A Σ ist genau dann vom Typ i {0, 1, 2, 3}, wenn es eine Typ-i-Grammatik G gibt mit L(G) = A. Die Chomsky-Hierarchie besteht aus den vier Sprachklassen: L i = {L(G) G ist Typ-i-Grammatik}, wobei i {0, 1, 2, 3}. Übliche Bezeichnungen: L 0 ist die Klasse aller Sprachen, die durch eine Grammatik erzeugt werden können; L 1 = CS ist die Klasse der kontextsensitiven Sprachen; L 2 = CF ist die Klasse der kontextfreien Sprachen; L 3 = REG ist die Klasse der regulären Sprachen. J. Rothe (HHU Düsseldorf) Informatik IV 26 / 36

Die Chomsky-Hierarchie Chomsky-Hierarchie Fakt REG CF CS L 0. Alle Sprachen Typ 0 Sprachen Typ 1 Sprachen (CS) Typ 2 Sprachen (CF) Typ 3 Sprachen (REG) Abbildung: Die Chomsky-Hierarchie J. Rothe (HHU Düsseldorf) Informatik IV 27 / 36

Die Chomsky-Hierarchie Chomsky-Hierarchie Beispiel: Offensichtlich sind die Grammatiken G 2 und G 3 aus dem vorigen Beispiel kontextsensitiv. Die Grammatik G 1 enthält die Regel S 1 λ und ist wegen S 1 = 1 > 0 = λ nach Definition nicht kontextsensitiv (vgl. Sonderregelung für das leere Wort ). Da G 1 eine Grammatik ist, ist G 1 eine Typ-0-Grammatik. Offensichtlich ist die Grammatik G 3 aus dem vorigen Beispiel sogar kontextfrei. J. Rothe (HHU Düsseldorf) Informatik IV 28 / 36

Die Chomsky-Hierarchie Sonderregelung für das leere Wort Um das leere Wort in Sprachen von Typ-i-Grammatiken für i {1, 2, 3} aufzunehmen, treffen wir die folgende Vereinbarung: (a) Die Regel S λ ist als einzige verkürzende Regel für Grammatiken vom Typ 1, 2, 3 zugelassen. (b) Tritt die Regel S λ auf, so darf S auf keiner rechten Seite einer Regel vorkommen. J. Rothe (HHU Düsseldorf) Informatik IV 29 / 36

Die Chomsky-Hierarchie Sonderregelung für das leere Wort Dies ist keine Beschränkung der Allgemeinheit, denn: Gibt es in P Regeln mit S auf der rechten Seite, so verändern wir die Regelmenge P zur neuen Regelmenge P wie folgt: 1 In allen Regeln der Form S u aus P mit u (N Σ) wird jedes Vorkommen von S in u durch ein neues Nichtterminal S ersetzt. 2 Zusätzlich enthält P alle Regeln aus P, mit S ersetzt durch S. 3 Die Regel S λ wird hinzugefügt. Die so modifizierte Grammatik G = (Σ, N {S }, S, P ) ist (bis auf S λ) vom selben Typ wie G und erfüllt L(G ) = L(G) {λ}. J. Rothe (HHU Düsseldorf) Informatik IV 30 / 36

Die Chomsky-Hierarchie Sonderregelung für das leere Wort Beispiel: Wir betrachten die Grammatik G = (Σ, N, S, P) mit das terminale Alphabet ist Σ = {a, b}, das nichtterminale Alphabet ist N = {S} und die Menge der Regeln ist gegeben durch P = {S asb ab}. Man sieht leicht, dass G kontextfrei ist und die Sprache L = {a n b n n 1} erzeugt, d.h., L(G) = L. Wir modifizieren die Grammatik G nun gemäß der Sonderregelung für das leere Wort, um eine kontextfreie Grammatik für die Sprache {a n b n n 0} = L {λ} zu gewinnen. J. Rothe (HHU Düsseldorf) Informatik IV 31 / 36

Die Chomsky-Hierarchie Sonderregelung für das leere Wort Beispiel: Nach obiger Konstruktion erhalten wir eine kontextfreie Grammatik G = (Σ, {S, S }, S, P ) mit P = { S as b ab gemäß 1.) S as b ab gemäß 2.) S λ } gemäß 3.) und L(G ) = L(G) {λ}. J. Rothe (HHU Düsseldorf) Informatik IV 32 / 36

Die Chomsky-Hierarchie Syntaxbaum Um Ableitungen von Worten in Grammatiken vom Typ 2 oder 3 anschaulich darzustellen, verwenden wir einen wie folgt definierten Syntaxbaum. Sei G = (Σ, N, S, P) eine Grammatik vom Typ 2 oder 3, und sei S = w 0 G w 1 G G w n = w eine Ableitung von w L(G). Die Wurzel (d.h. die Etage 0) des Syntaxbaums ist das Startsymbol S. Etage i: Wird wegen der Regel A z im i-ten Ableitungsschritt (w i 1 G w i ) das Nichtterminal A in w i 1 durch das Teilwort z von w i ersetzt, so hat der Knoten A im Syntaxbaum z Söhne, die v.l.n.r. mit den Symbolen aus z beschriftet sind. Die Blätter des Baumes ergeben von links nach rechts gelesen w. J. Rothe (HHU Düsseldorf) Informatik IV 33 / 36

Die Chomsky-Hierarchie Syntaxbaum Beispiel: S 3 S + 3 S 3 S 3 * S 3 a ( S ) a 3 S 3 + S 3 a a Abbildung: Syntaxbaum für die Ableitung des Wortes (a + a) a + a in der Typ 2-Grammatik G 3 aus dem vorigen Beispiel J. Rothe (HHU Düsseldorf) Informatik IV 34 / 36

Die Chomsky-Hierarchie Mehrdeutige Grammatik Definition Eine Grammatik G heißt mehrdeutig, falls es ein Wort w L(G) gibt, das zwei verschiedene Syntaxbäume hat. Eine Sprache A heißt inhärent mehrdeutig, falls jede Grammatik G mit A = L(G) mehrdeutig ist. J. Rothe (HHU Düsseldorf) Informatik IV 35 / 36

Die Chomsky-Hierarchie Mehrdeutige Grammatik Beispiel: S 3 S 3 * S 3 ( S ) 3 S 3 + S 3 S 3 + S 3 a a a a Abbildung: Ein weiterer Syntaxbaum für die Ableitung des Wortes (a + a) a + a in der Typ 2-Grammatik G 3 aus dem vorigen Beispiel J. Rothe (HHU Düsseldorf) Informatik IV 36 / 36