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 (ii) Semantik (a) (i) Grammatik (ii) Wörterbuch : Semantik durch Übersetzung (b) (i) Formale Beschreibung der Syntax (ii) Formale Beschreibung der Semantik Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 144 / 313
Hier: Formale Methoden zur Beschreibung der Syntax von Formalen Sprachen Was ist eine Formale Sprache? Ein Alphabet Σ ist eine endliche, nicht-leere Menge, deren Elemente Buchstaben, Zeichen oder Symbole genannt werden. Beispiele: Σ 1 := {a, b} Σ 2 := {(,),+,,,/, a} Σ 3 := {der,die,das,kleine,große,bissige,jagt,hund,katze} Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 145 / 313
Durch Hintereinanderschreiben von Zeichen erhält man Wörter. n 1 : Σ n = Wörter der Länge n über Σ ε = Wort der Länge 0 (leeres Wort) Σ + := Σ n nicht-leere Wörter über Σ n 1 Σ := Σ + {ε} Wörter über Σ Eine Formale Sprache über Σ ist eine Teilmenge L von Σ. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 146 / 313
Wie beschreibt man eine Formale Sprache? (A) Generative Beschreibungsmittel: Grammatiken (B) Analysierende Beschreibungsmittel: Automaten Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 147 / 313
Beispiel einer Grammatik: Satz Subjekt Artikel Artikel Artikel Artikel Attribut Attribut Attribut Adjektiv kleine Adjektiv große Adjektiv bissige Substantiv Hund Substantiv Katze Subjekt Prädikat Objekt Artikel Attribut Substantiv ε der die das ε Adjektiv Adjektiv Attribut Prädikat jagt Objekt Artikel Attribut Substantiv Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 148 / 313
Diese Grammatik erzeugt eine Sprache L 3 Σ 3, z.b.: Satz Subj Präd Obj Art Attr Subst Art Attr Subst Adj Attr Adj Adj der kleine bissige Hund jagt die große Katze Syntaxbaum Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 149 / 313
Beachte: L 3 ist unendlich. der kleine große Katze jagt das bissige Hund L 3, d.h. nur syntaktische, nicht semantische Korrektheit wird durch Grammatiken festgelegt. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 150 / 313
2.1.1 Grammatiken Definition 2.1 Eine Grammatik ist ein 4-Tupel G = (V, Σ, P, S): V endliche Menge von Variablen oder Nichtterminalzeichen Σ Terminalalphabet V Σ = S V Startvariable P (V Σ) + (V Σ) endliche Menge von Produktionen (l r) P : l V > 0 l V := V Länge von l : ε V = 0 { w V + 1 für a V wa V = w V für a V Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 151 / 313
Ableitungsrelation G über (V Σ) : u G v gdw. x, z (V Σ) (l r) P : u = xlz und v = xrz. u 0 G v gdw. u = v u 1 G v gdw. u G v u n+1 G v gdw. w (V Σ) : u n G w G v u + G v gdw. n 1 : u n G v u G v gdw. n 0 : u n G v Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 152 / 313
Lemma 2.2 G ist die kleinste reflexive und transitive Relation auf (V Σ), die G umfasst. Beweis: u (V Σ) : u G u, denn: u 0 G u. u, v, w : u G v und v G w, so u G w, denn: u i G v und v j G w, so u i+j G w. Also: G ist reflexiv und transitiv, und G = 1 G G gilt. Sei nun R (V Σ) (V Σ) reflexiv und transitiv mit G R. Dann: 0 G R, da R reflexiv. 1 G R nach Voraussetzung n+1 G = n G G, d.h. n G R und Transitivität ergibt n+1 G R. Also: G = ( n G ) R. n 0 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 153 / 313
Sprache L(G), die von G erzeugt wird: L(G) := { w Σ S G w }. Ist w L(G), so gibt es n 1 und w 0, w 1,...,w n (V Σ) mit w 0 = S, w i G w i+1 für alle i = 0,...,n 1, w n = w. (w 0, w 1,...,w n ) ist eine Ableitung von w in G. ˆL(G) := { w (V Σ) S G w } Sprache der Satzformen von G. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 154 / 313
Beispiel 1 G := ({E, T, F},{(,), a,+, }, P, E) mit P := { E T, E E + T, T F, T T F, F a, F (E) } G liefert korrekt geklammerte arithmetische Ausdrücke: E E + T T + T T F + T T F F + T F F F + T a F F + T a a F + T a a (E)+T a a (E + T)+T a a (T + T)+T a a (F + T)+T a a (a+t)+t a a (a+f)+t a a (a+a)+t a a (a+a)+f a a (a+a)+a L(G). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 155 / 313
E E T T T F F T F E F E T F T F a a ( a + a ) + a Syntaxbaum Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 156 / 313
Beispiel 2 G := (V,Σ, P, S) mit V := {S, B, C} Σ := {a, b, c} P := { S asbc, ab ab, S abc, bb bb, CB BC, bc bc, cc cc} S asbc aasbcbc aaabcbcbc aaabbccbc aaabbcbcc aaabbbccc aaabbbccc aaabbbccc aaabbbccc aaabbbccc aaabbbccc aaabbbccc = a 3 b 3 c 3 L(G). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 157 / 313
Behauptung: L(G) = { a n b n c n n 1}. Beweis: : Sei n 1. Dann gilt: S n 1 a n 1 S(BC) n 1 a n (BC) n a n B n C n a n b n c n. : Sei w (V Σ) mit w ˆL(G), d.h. S w. Dann gilt: w {a} = w {b,b} = w {c,c}. Gilt S + w, so ist w = a k x mit k 1 und x {a} = 0. Genauer: x = Sy mit y {B, C} 2k oder x {b, B, c, C} 2k. Aus der Form der Regeln folgt: Gilt w = a k x z Σ, so ist z = a k b k c k. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 158 / 313
Der Ableitungsprozess ist nichtdeterministisch, d.h. G ist i.a. keine Funktion: bcb bcb bbc bbc bbc Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 159 / 313
Kapitel 2: Automatentheorie und Formale Sprachen Die Menge aller Ableitungen lässt sich durch einen i.a. unendlichen Baum beschreiben: aasbcbc......... asbc aabcbc S aabcbc aabbcc...... abc abc abc Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 160 / 313
2.1.2 Chomsky-Hierarchie Noam Chomsky, Linguist, MIT (1956) Definition 2.3 Sei G = (V,Σ, P, S). Typ 0: Jede Grammatik ist vom Typ 0. Typ 1: G ist vom Typ 1 (kontext-sensitiv), wenn jede Regel (l r) P die Gestalt uav uxv mit A V, u, v (V Σ) und x (V Σ) + hat. G ist monoton, wenn für jede Regel (l r) P, l r gilt. Typ 2: Eine Typ 1-Grammatik ist vom Typ 2 (kontext-frei), wenn für jede Regel (l r) P, l V ist. Typ 3: Eine Typ 2-Grammatik ist vom Typ 3 (regulär), wenn für jede Regel (l r) P, r Σ ΣV ist. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 161 / 313
Lemma 2.4 Für jede monotone Grammatik G gibt es eine kontext-sensitive 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 1 := (V {D a, D b, D c },Σ, P 1, S) : P 1 := {S D a SBC, S D a BC, CB BC, D a B D a D b, D b B D b D b, D b C D b D c, D c C D c D c } {D a a, D b b, D c c}. (ii) G := (V {D a, D b, D c } {Z 1, Z 2 },Σ, P, S) : P := P 1 {CB BC} {CB Z 1 B, Z 1 B Z 1 Z 2, Z 1 Z 2 BZ 2, BZ 2 BC}. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 162 / 313
Problem der ε-regeln Ist G eine Typ 1-Grammatik, so ist ε L(G). Sonderfall: Eine Typ 1-Grammatik G = (V,Σ, P, S) darf die Regel S ε enthalten. Dann darf S aber auf keiner rechten Regelseite vorkommen. Konstruktion: Sei G = (V,Σ, P, S ) eine Typ 1-Grammatik mit L(G ) = L {ε}. Wähle G := (V {S},Σ, P, S) mit P := P {S ε, S S }. Dann ist G eine Typ 1-Grammatik mit L(G) = L. Dies geht auch für Typ 2-Grammatiken. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 163 / 313
Eine Grammatik G = (V,Σ, P, S) mit P V (V Σ) heißt allgemein kontext-frei. Hier: beliebige ε-regeln der Form A ε möglich! Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 164 / 313
Lemma 2.5 Zu jeder allgemein kontext-freien Grammatik G gibt es eine Typ 2-Grammatik G mit L(G) = L(G ). Beweis: Wir betrachten den Fall, dass ε L(G) ist. Aufgabe: Elimination aller ε-regeln. (1.) Bestimme V 1 := { A V A G ε}: V (1) 1 := { A V (A ε) P} V (n+1) 1 := V (n) 1 { A V r V (n) 1 : (A r) P}. Dann: V 1 = n 1 V (n) 1 = V ( V ) 1. (2.) Streiche alle ε-regeln. (3.) B xay mit A V 1 und xy ε: neue Regel B xy einfügen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 165 / 313
Beispiel aus 2.1: Subjekt Artikel Attribut Substantiv Objekt Artikel Attribut Substantiv Artikel ε Attribut ε. ergibt folgende Regeln: Subjekt Artikel Attribut Substantiv Subjekt Attribut Substantiv Subjekt Artikel Substantiv Subjekt Substantiv Objekt... Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 166 / 313
Definition 2.6 Sei L Σ eine Sprache. L ist vom Typ 0/Typ 1/Typ 2/Typ 3, wenn es eine Grammatik G = (V,Σ, P, S) vom Typ 0/Typ 1/Typ 2/Typ 3 gibt mit L = L(G). L i (i {0, 1, 2, 3}) bezeichnet die Klasse der Typ i-sprachen. L 3 L 2 L 1 L 0 Chomsky Hierarchie Alle diese Inklusionen sind echt: L := { a n b n n 1} L 2 L 3 L := { a n b n c n n 1} L 1 L 2 L := H L 0 L 1 (Kap. 1) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 167 / 313
Das Wortproblem für eine Sprache L Σ : Eingabe: w Σ. Frage: Ist w L? Eine Sprache L ist entscheidbar (rekursiv), wenn ihr Wortproblem algorithmisch entscheidbar ist. Eine Sprache L ist rekursiv aufzählbar (r.a.), wenn es eine Prozedur gibt, die bei Eingabe von w Σ genau dann terminiert, wenn w L gilt. Alle Typ 1-Sprachen sind entscheidbar. Die Typ 0-Sprachen sind die r.a. Sprachen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 168 / 313
Satz 2.7 Nicht jede Sprache L {a} ist vom Typ 0. Beweis: Jede Typ 0-Sprache wird von einer Grammatik erzeugt. Eine Grammatik lässt sich durch eine endliche Zeichenfolge beschreiben. Es gibt nur abzählbar viele Grammatiken. Es gibt nur abzählbar viele Typ 0-Sprachen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 169 / 313
Behauptung: Beweis: 2 {a} ist überabzählbar. indirekt: angenommen 2 {a} wäre abzählbar, d.h. Bijektion ϕ : N 2 {a}. Betrachte folgende Sprache D {a} : a n D gdw. a n ϕ(n). ϕ ist Bijektion, d.h. m N : ϕ(m) = D. Dann gilt: a m D gdw. a m ϕ(m) gdw. a m D. Widerspruch! Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 170 / 313
Klasse aller Sprachen Typ 0-Sprachen = r.a. Sprachen entscheidbare Sprachen Typ 1-Sprachen = kontext-sensitive Sprachen Typ 2-Sprachen = kontext-freie Sprachen Typ 3-Sprachen = reguläre Sprachen endliche Sprachen Hierarchie der Sprachklassen Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 171 / 313
2.1.3 Wortproblem Sei G = (V, Σ, P, S) eine Typ 1-Grammatik, und sei S x 1... x k = x eine Ableitung für ein Wort x Σ n. Dann: Aber: Satz 2.8 x i n für alle i = 1,...,k. n (V Σ) i = n ( V + Σ ) i = ( V + Σ )n+1 1 V + Σ 1 i=0 i=0 Es gibt einen Algorithmus, der bei Eingabe einer Typ 1-Grammatik G = (V,Σ, P, S) und eines Wortes x Σ in endlich vielen Schritten entscheidet, ob x L(G) oder x L(G) gilt. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 172 / 313
Beweis: Tm n := { w (V Σ) w n und S k G w für ein k m} Tm n erhalten wir induktiv über m (für alle n 1): T n 0 := {S}, T n m+1 := Abl n(t n m), wobei Abl n (X) := X { w (V Σ) w n und w G w für ein w X }. Dann: T0 n T 1 n... T m n Tm+1 n... Tk n. Aber Tk n n (V Σ) i, d.h. k 0 i=0 m : T n m = T n m+1 =... = k 0 T n k. Also: x L(G) gdw. x T n m. Tk n k 0 k 0 ist endlich. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 173 / 313
Algorithmus zur Lösung des Wortproblems: Eingabe: (G, x); begin n := x ; T := {S}; repeat T 1 := T ; T := Abl n (T 1 ) until (x T) or (T = T 1 ); if x T then Ausgabe: x liegt in L(G) else Ausgabe: x liegt nicht in L(G) end Bemerkung: exponentielle Laufzeit O(c n ) Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 174 / 313
Beispiel 2 (aus 2.1.1): P : S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc Für n = 4: T 4 0 = {S} T 4 1 T 4 2 T 4 3 = {S, asbc, abc} = {S, asbc, abc, abc} = {S, asbc, abc, abc, abc} T 4 4 = T 4 3 Also: L(G) { x {a, b, c} x 4} = {abc}. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 175 / 313
2.1.4 Syntaxbäume Sei G = (V, Σ, P, S) eine Typ 2-Grammatik, und sei S = x 0 x 1 x 2... x n = x eine Ableitung für ein Wort x L(G). Beschreibung dieser Ableitung durch einen Syntaxbaum: Wurzel mit Markierung S Schritt i: x i 1 = uav urv = x i mit u, v (V Σ), (A r) P, so füge zum Knoten mit Markierung A r Söhne ein, die von links nach rechts mit den Zeichen von r markiert werden. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 176 / 313
Beispiel 1: G = ({S},{a, b},{s as, S b}, S) : S a S a S a S b Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 177 / 313
Beispiel 1 (aus 2.1.1): (1.) E T T F F F a F a a (2.) E T T F T a F a a a E T T F F a a (1) Linksableitung (2) Rechtsableitung Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 178 / 313
Für eine Typ 2-Grammatik G = (V,Σ, P, S) und ein Wort x Σ sind äquivalent: (a) x L(G) (b) Syntaxbaum mit Markierung x an den Blättern (c) Linksableitung von x in G. (d) Rechtsableitung von x in G. Definition 2.9 Eine Typ 2-Grammatik G heißt eindeutig, wenn es für jedes Wort x L(G) nur einen Syntaxbaum gibt, andernfalls heißt G mehrdeutig. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 179 / 313
Beispiel 2: G = ({S, A, B},{a, b, c}, P, S) mit P := {S ab, S Ac, A ab, B bc}: a S b B c a A S b c G ist mehrdeutig. G := ({S},{a, b, c},{s abc}, S) ist eindeutig mit L(G ) = L(G). Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 180 / 313
Beispiel 3: G = ({T},{1, 2,...,9,+, },{T T + T T T 1 2 9}, T): T T + T T T 9 4 3 T T T T + T 9 4 3 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 181 / 313
Beispiel 3: G = ({T},{1, 2,...,9,+, },{T T + T T T 1 2 9}, T): T 8 T 5 + T 3 T 9 T 4 9 4 3 T T T T + T 9 4 3 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 181 / 313
Beispiel 3: G = ({T},{1, 2,...,9,+, },{T T + T T T 1 2 9}, T): T 8 T 5 + T 3 T 9 T 4 T 2 T 9 T 7 T 4 + T 3 9 4 3 9 4 3 Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 181 / 313
Definition 2.10 Eine Typ 2-Sprache L heißt inhärent mehrdeutig, wenn jede Typ 2-Grammatik G mit L = L(G) mehrdeutig ist. L := { a i b j c k i = j oder j = k }: inhärent mehrdeutig. Kann man einer Grammatik (einer Sprache) ansehen, ob sie (inhärent) mehrdeutig ist? Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 182 / 313
2.1.5 Backus-Naur-Form Kompakte Notation für Typ 2-Regelmengen: (1.) A β 1 β 2... β n statt A β 1,...,A β n (2.) A α[β]γ statt A αγ, A αβγ (3.) A α{β}γ statt A αγ, A αbγ B β, B βb (1.) : BNF (1.-3.) : erweiterte BNF (EBNF) Mit BNF und EBNF lassen sich gerade die Typ 2-Sprachen darstellen. Prof. Dr. F. Otto (Universität Kassel) Berechenbarkeit und Formale Sprachen 183 / 313