Automatentheorie und formale Sprachen VL 11 Chomsky Hierarchie Kathrin Hoffmann 13. Juni 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 368 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Kontextfreie Grammatik zu Kellerautomat Gegeben sei kfG in CNF G = (N, T , S, R), dann gibt es den Kellerautomaten A = (Q, Σ, Γ, δ, q0 , Z0 , F ) mit • Q = {q0, q1 } • Γ = N ∪ T ] {#, Z0 } • δ mit δ(q0 , , Z0 ) = {(q0 , S#)} . . . . . . . . . . . . . . . Startsymbol auf den Stack δ(q0 , , X ) = {(q0 , v )} für jedes X → v in R . . . . . . . . . . . . . . . . . . . . . . Regeln aus den Stack δ(q0 , a, a) = {(q0 , )} für jedes a ∈ T . . . . . . . . . . . . . . . . . . . . Abarbeiten der Terminalen δ(q0 , , #) = {(q1 , } . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fertig • F = {q1 } und es gilt L(G) = L(A). Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 369 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Kontextfreie Grammatik zu Kellerautomat Gegeben sei kfG in CNF G = (N, T , S, R), dann gibt es den Kellerautomaten und es gilt L(G) = L(A). Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 370 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP S Y E X Z → XY → SZ | EZ → XZ →a →b Hoffmann (HAW Hamburg) (q0, aabb, Z 0) 7→ (q0, aabb, S#) 7→ (q0, aabb, XY #) 7→ (q0, aabb, aY #) 7→ (q0, abb, Y #) 7→ (q0, abb, EZ #) 7→ (q0, abb, XZZ #) 7→ (q0, abb, aZZ #) 7→ (q0, bb, ZZ #) 7→ (q0, bb, bZ #) 7→ (q0, b, Z #) 7→ (q0, b, b#) 7→ (q0, , #) 7→ (q1, , ) Automatentheorie und formale Sprachen 13.6. 2012 371 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 1: Bitte geben Sie für diese kfG einen Kellerautomaten an und berechnen mit Hilfe von Konfigurationen das Wort abba: S → AX | BY S→ X → SA Y → SB A→a B→b Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 372 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 1: Bitte geben Sie für diese kfG einen Kellerautomaten an und berechnen mit Hilfe von Konfigurationen das Wort abba: S → AX | BY S→ X → SA Y → SB A→a B→b Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 372 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 1: Bitte geben Sie für diese kfG einen Kellerautomaten an und berechnen mit Hilfe von Konfigurationen das Wort abba: S → AX | BY S→ X → SA Y → SB A→a B→b Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 372 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 1: Bitte geben Sie für diese kfG einen Kellerautomaten an und berechnen mit Hilfe von Konfigurationen das Wort abba: S → AX | BY S→ X → SA Y → SB A→a B→b Hoffmann (HAW Hamburg) Automatentheorie (q0, abba, Z 0) 7→ (q0, abba, S#) 7→ (q0, abba, AX #) 7→ (q0, abba, aX #) 7→ (q0, bba, X #) 7→ (q0, bba, SA#) 7→ (q0, bba, BYA#) 7→ (q0, bba, bYA#) 7→ (q0, ba, YA#) 7→ (q0, ba, SBA#) 7→ (q0, ba, BA#) 7→ (q0, ba, bA#) 7→ (q0, a, A#) 7→ (q0, a, a#) 7→ (q0, , #) und formale Sprachen 7→ (q1, , ) 13.6. 2012 372 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma für kontextfreie Sprachen L = {an bn c n | n > 0} • Sprache L kontextfrei, wenn es • eine kontextfreie Grammatik G mit L(G) = L oder • einen Kellerautomaten A mit L(A) = L gibt. • Wie aber zeigen, dass eine Sprache nicht kontextfrei ist? • für regulären Sprachen: das Pumping-Lemma • ähnliches Pumping-Lemma für die kontextfreien Sprachen auch uvwxy-Theorem Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 373 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma für kontextfreie Sprachen L = {an bn c n | n > 0} • Sprache L kontextfrei, wenn es • eine kontextfreie Grammatik G mit L(G) = L oder • einen Kellerautomaten A mit L(A) = L gibt. • Wie aber zeigen, dass eine Sprache nicht kontextfrei ist? • für regulären Sprachen: das Pumping-Lemma • ähnliches Pumping-Lemma für die kontextfreien Sprachen auch uvwxy-Theorem Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 373 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma für kontextfreie Sprachen L = {an bn c n | n > 0} • Sprache L kontextfrei, wenn es • eine kontextfreie Grammatik G mit L(G) = L oder • einen Kellerautomaten A mit L(A) = L gibt. • Wie aber zeigen, dass eine Sprache nicht kontextfrei ist? • für regulären Sprachen: das Pumping-Lemma • ähnliches Pumping-Lemma für die kontextfreien Sprachen auch uvwxy-Theorem Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 373 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma für kontextfreie Sprachen L = {an bn c n | n > 0} • Sprache L kontextfrei, wenn es • eine kontextfreie Grammatik G mit L(G) = L oder • einen Kellerautomaten A mit L(A) = L gibt. • Wie aber zeigen, dass eine Sprache nicht kontextfrei ist? • für regulären Sprachen: das Pumping-Lemma • ähnliches Pumping-Lemma für die kontextfreien Sprachen auch uvwxy-Theorem Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 373 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma für kontextfreie Sprachen L = {an bn c n | n > 0} • Sprache L kontextfrei, wenn es • eine kontextfreie Grammatik G mit L(G) = L oder • einen Kellerautomaten A mit L(A) = L gibt. • Wie aber zeigen, dass eine Sprache nicht kontextfrei ist? • für regulären Sprachen: das Pumping-Lemma • ähnliches Pumping-Lemma für die kontextfreien Sprachen auch uvwxy-Theorem Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 373 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma • • • • Alle Wörter ab einer gewissen Länge p enthalten Teilwörter v und x, von denen mindestens eines nicht leer ist, die sich ”aufpumpen” lassen. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 374 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Pumping-Lemma • • • • Alle Wörter ab einer gewissen Länge p enthalten Teilwörter v und x, von denen mindestens eines nicht leer ist, die sich ”aufpumpen” lassen. Satz: Pumping-Lemma, uvwxy-Theorem Sei Σ ein Alphabet und L ⊆ Σ∗ eine kontextfreie Sprache. Dann lassen sich alle Wörter z ∈ L ab einer Länge |z| ≥ p (der Pumping-Lemma Konstante) darstellen als z = uvwxy mit u, v , w, x, y ∈ Σ∗ und • |vwx| ≤ p • |vx| > 0 • uv k wx k y ∈ L für alle k ∈ N0 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 374 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (1) des Pumping-Lemmas für kontextfreie Sprachen 1 2 G = (N, T , S, R) kfG in CNF für L, also Regeln der Form X → YZ oder X →a Ableitungsbaum für z ∈ L ist binärer Baum, dessen Blätter die einzelnen Zeichen des Wortes z sind 3 Ist p die Länge des Wortes z, dann hat der binäre Baum p Blätter. 4 Ableitungsbaum hat Tiefe von mindestens log(p) + 1, denn binäre Bäume mit n Blättern haben Tiefe ≥ log(n) und keine zwei Blätter an einem Vorgänger im Baum 5 Sei die Anzahl der Nonterminale |N| = m und p = 2m+1 6 Dann hat jedes Wort z ∈ L mit |z| ≥ p einen Ableitungsbaum mit Tiefe von mindestens m + 2. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 375 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP Ableitungsbaum für kfG in CNF S → XY Y → SZ | EZ E → XZ X →a Z →b Wort: w = aaaabbbb Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 376 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (2) des Pumping-Lemmas für kontextfreie Sprachen 7 längster Pfad von der Wurzel zu einem Blatt: Länge mindestens m + 2 8 Endstück q davon mit der Länge m + 2 m + 1 Vorkommen von Nonterminalen mindestens ein Nonterminal R mehrfach, denn G hat nur m 9 letztes R erzeugt das Teilwort w 10 vorletzes R erzeugt das Teilwort vwx Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 377 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (2) des Pumping-Lemmas für kontextfreie Sprachen 7 längster Pfad von der Wurzel zu einem Blatt: Länge mindestens m + 2 8 Endstück q davon mit der Länge m + 2 m + 1 Vorkommen von Nonterminalen mindestens ein Nonterminal R mehrfach, denn G hat nur m 9 letztes R erzeugt das Teilwort w 10 vorletzes R erzeugt das Teilwort vwx Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 377 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (2) des Pumping-Lemmas für kontextfreie Sprachen 7 längster Pfad von der Wurzel zu einem Blatt: Länge mindestens m + 2 8 Endstück q davon mit der Länge m + 2 m + 1 Vorkommen von Nonterminalen mindestens ein Nonterminal R mehrfach, denn G hat nur m 9 letztes R erzeugt das Teilwort w 10 vorletzes R erzeugt das Teilwort vwx Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 377 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (2) des Pumping-Lemmas für kontextfreie Sprachen 7 längster Pfad von der Wurzel zu einem Blatt: Länge mindestens m + 2 8 Endstück q davon mit der Länge m + 2 m + 1 Vorkommen von Nonterminalen mindestens ein Nonterminal R mehrfach, denn G hat nur m 9 letztes R erzeugt das Teilwort w 10 vorletzes R erzeugt das Teilwort vwx Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 377 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (3) des Pumping-Lemmas für kontextfreie Sprachen 11 Tiefe des Teilbaums vom vorletzten R ist höchstens m + 2 denn keine Pfadlänge > m + 2 Länge von vwx höchstens 2m + 1 = p 12 vorletzes R mit Regel R → YZ also vor oder hinter dem Teilwort w ein nichtleeres Teilwort v bzw. x 13 beide Bedingungen |vx| > 0 und |vwx| ≤ p erfüllt Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 378 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (3) des Pumping-Lemmas für kontextfreie Sprachen 11 Tiefe des Teilbaums vom vorletzten R ist höchstens m + 2 denn keine Pfadlänge > m + 2 Länge von vwx höchstens 2m + 1 = p 12 vorletzes R mit Regel R → YZ also vor oder hinter dem Teilwort w ein nichtleeres Teilwort v bzw. x 13 beide Bedingungen |vx| > 0 und |vwx| ≤ p erfüllt Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 378 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (3) des Pumping-Lemmas für kontextfreie Sprachen 11 Tiefe des Teilbaums vom vorletzten R ist höchstens m + 2 denn keine Pfadlänge > m + 2 Länge von vwx höchstens 2m + 1 = p 12 vorletzes R mit Regel R → YZ also vor oder hinter dem Teilwort w ein nichtleeres Teilwort v bzw. x 13 beide Bedingungen |vx| > 0 und |vwx| ≤ p erfüllt Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 378 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (4) des Pumping-Lemmas für kontextfreie Sprachen 14 Teilbaum des vorletzten R an Stelle des Teilbaums des letzten R 15 gültiger Ableitungsbaum für das Wort uvvwxxy = uv 2 wx 2 y 16 Ableitungsbäume für alle Wörter der Form uv k wx k y mit k > 0 erzeugen. 17 Ableitungsbaum für uv 0 wx 0 y durch Teilbaum des letzten R an Stelle des Teilbaums des vorletzten R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 379 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (4) des Pumping-Lemmas für kontextfreie Sprachen 14 Teilbaum des vorletzten R an Stelle des Teilbaums des letzten R 15 gültiger Ableitungsbaum für das Wort uvvwxxy = uv 2 wx 2 y 16 Ableitungsbäume für alle Wörter der Form uv k wx k y mit k > 0 erzeugen. 17 Ableitungsbaum für uv 0 wx 0 y durch Teilbaum des letzten R an Stelle des Teilbaums des vorletzten R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 379 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (4) des Pumping-Lemmas für kontextfreie Sprachen 14 Teilbaum des vorletzten R an Stelle des Teilbaums des letzten R 15 gültiger Ableitungsbaum für das Wort uvvwxxy = uv 2 wx 2 y 16 Ableitungsbäume für alle Wörter der Form uv k wx k y mit k > 0 erzeugen. 17 Ableitungsbaum für uv 0 wx 0 y durch Teilbaum des letzten R an Stelle des Teilbaums des vorletzten R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 379 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beweis (4) des Pumping-Lemmas für kontextfreie Sprachen 14 Teilbaum des vorletzten R an Stelle des Teilbaums des letzten R 15 gültiger Ableitungsbaum für das Wort uvvwxxy = uv 2 wx 2 y 16 Ableitungsbäume für alle Wörter der Form uv k wx k y mit k > 0 erzeugen. 17 Ableitungsbaum für uv 0 wx 0 y durch Teilbaum des letzten R an Stelle des Teilbaums des vorletzten R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 379 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP: Anwendung des PL für kfG L = {an bn c n |n ∈ N} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp c p , dann z ∈ L und |z| ≥ p. vwx enthält nicht alle drei Zeichen a, b und c, denn |vwx| ≤ p. Das fehlende Zeichen wird beim Aufpumpen zu uv 2 wx 2 y nicht vervielfältigt. Weil aber |vx| > 0 werden die Zeichen in vx vervielfältigt. uv 2 wx 2 y < L, denn nicht mehr gleich viele a’s, b’s und c’s Widerspruch zur Aussage des Pumping-Lemmas. Daher muss die Annahme falsch sein, d.h. L ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 380 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 2: Zeigen Sie bitte durch Anwendung des Pumping-Lemmas für kontextfreie Sprachen, dass die Sprache L = {an bm c n d m |n, m ≥ 0} ist nicht kontextfrei. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 381 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 2: Zeigen Sie bitte durch Anwendung des Pumping-Lemmas für kontextfreie Sprachen, dass die Sprache L = {an bm c n d m |n, m ≥ 0} ist nicht kontextfrei. Beweis: L sei kontextfrei, also gilt das Pumping-Lemma. Sei z = ap bp ap bp , dann z ∈ L und |z| ≥ p. vwx enthält ein oder zwei unterschiedliche Zeichen, denn |vwx| ≤ p. • vwx enthält nur ein unterschiedliches Zeichen: weil vx , , wird durch das Löschen von v und x für ein Zeichen der Exponent erniedrigt. Also uv 0 wx 0 y = uwy = ai bj c k d l < L, denn entweder i , k oder j , l • vwx enthält zwei unterschiedliches Zeichen: weil vx , , wird durch das Löschen von v und x für mindestens ein Zeichen der Exponent erniedrigt. Also uv 0 wx 0 y = uwy = ai bj c k d l < L, denn i , k oder j , l Widerspruch zur Aussage des Pumping-Lemmas. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 381 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Anwendungen kontextfreier Grammatiken • DTDs (Dokumenttypdefinition ) • Syntax-Definitionen für Programmiersprachen • Syntaxanalyse mit Parsierung • Analyse natürlicher Sprachen (mit Einschränkungen) Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 382 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Backus-Naur-Form • kompakte formale Metasprache für kontextfreier Grammatiken • Syntax gängiger höherer Programmiersprachen. • auch für die Notation von Befehlssätzen und Kommunikationsprotokollen • von John Backus und Peter Naur eingeführt • erstmals für ALGOL60 (1960) benutzt Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 383 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Syntax der Backus-Naur-Form Konzept ::= | <...> Bedeutung definiert als oder nichtterminal kf. Grammatik → | X ∈N BSP: deutsche Postanschrift: <Post-Anschrift> <Personenteil> <Titelteil> <Vornamenteil> <Namensteil> <Straße> <Stadt> ::= ::= ::= ::= ::= ::= ::= <Personenteil> <Straße> <Stadt> <Titelteil> <Namensteil> <EOL> <Titel> | <Vorname> | <Initial> . <Vornamenteil> <Nachname> | <Vornamenteil> <Straßenname> <Hausnummer> <EOL> <Postleitzahl> <Stadtname> <EOL> http://de.wikipedia.org/wiki/Backus-Naur-Form Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 384 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Erweiterte Backus-Naur-Form • optionale Teile in [ und ] eingeschlossen: <if_statement> ::= if <boolean_expression> then <statement_sequ [ else <statement_se end if ; zwei Regeln in kontextfreien Grammatiken: I → if B then S end if I → if B then S else S end if • Wiederholungen werden in { und } eingeschlossen: <identifier> ::= <letter> { <letter> | <digit> } sechs Regeln in kontextfreien Grammatiken: I → L|LJ J → LJ|DJ|L|D • terminale Zeichen werden in Hochkommas eingeschlossen: <statement_sequence> ::= <statement> { ";" <state Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 385 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Kontextsensitive Grammatiken und Sprachen • Eine Grammatik G = (N, T , S, R) heißt kontextsensitiv wenn alle Regeln die Form u → v mit |u| ≤ |v | haben, d.h. wenn die linke Seite einer Regel ist nie länger als die rechte Seite. • Als einzige Ausnahme ist die Regel S → zugelassen, um das leere Wort zu erzeugen. Dann aber darf das Startsymbol S nicht rekursiv sein, d.h. nicht auf der rechten Seite einer Regel auftreten. • Eine Regel, deren linke Seite nicht länger ist als die rechte Seite, heißt monoton bezeichnet. Daher heißt eine kontextsensitive Grammatik auch monotone Grammatik. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 386 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie BSP G = (N, T , S, R) mit T = {a, b, c} N = {S, A, B} R: S → aSBc | aXc cB → Bc XB → bX X →b S =⇒ aSBc =⇒ aaSBcBc =⇒ aaaXcBcBc =⇒ aaaXcBBcc =⇒ aaaXBcBcc =⇒ aaaXBBccc =⇒ aaabXBccc =⇒ aaabbXccc =⇒ aaabbbccc L(G) = {an bn c n | n > 0} Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 387 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 3: Geben Sie bitte eine ksG für L = {ww | w ∈ {a, b, c}∗ } an und leiten dann bitte abcabc ab. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 388 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 3: Geben Sie bitte eine ksG für L = {ww | w ∈ {a, b, c}∗ } an und leiten dann bitte abcabc ab. Tipp: Benutzen Sie pro Terminal als erstes Regeln der Form S → xXS. X ist der Indikator dafür, dass noch in der anderen Worthälfte an gleicher Stelle ein x zu setzen ist. Entwerfen Sie nun Regeln, die es erlauben X in die zweite Hälfte des Wortes zu schieben. Wandeln Sie dann die X in die entsprechenden Terminale um. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 388 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Lösung von Aufgabe 3 S → aMa | bMb | cMc | Ma → aAMa | bBMa | cCMa | Ea Mb → aAMb | bBMb | cCMb | Eb Mc → aAMc | bBMc | cCMc | Ec Nt → tN für N ∈ {A, B, C} und t ∈ {a, b, c} AMa → Ma a AMb → Mb a AMc → Mc a BMa → Ma b BMb → Mb b BMc → Mc b CMa → Ma c CMb → Mb c CMc → Mc c Ea → a Eb → b Ec → c S =⇒ aMa =⇒ abBMa =⇒ abBcCMa =⇒ abcBCMa =⇒ abcBMa c =⇒ abcMa bc =⇒ abcabc Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 389 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Turingmaschine • 1936 Alan Turing • Lösung des Entscheidungsproblems • Maschine besteht aus • endliche Steuerung/Programm, • Lese/Schreibkopf und • unendlich langes Band. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 390 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Formale Definition einer Turingmaschine Definition Ein Turingmaschine (TM) ist ein Tupel M = (Q, Σ, Γ, δ, q0 , B, F ) bestehend aus • der endlichen Menge Q von Zuständen, • dem Eingabealphabeth Σ, • dem Bandalphabet Γ, • der Übergangsfunktion δ : Q × Σ × Γ → Q × Γ × D mit Bewegungsrichtung der Steuerung D = {L, R}, • dem Anfangszustand q0 ∈ Q, • dem leeren Feld (Blank) B ∈ Γ \ Σ und • der Menge F ⊆ Q von Endzuständen. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 391 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beispiel: L(M) = {0n 1n |n ≥ 1} Turingmaschine (TM) M = (Q, Σ, Γ, δ, q0 , B, F ) mit • der endlichen Menge Q = {q0 , q1 , q2 , q3 , q4 }, • dem Eingabealphabeth Σ = {0, 1}, • dem Bandalphabet Γ = {0, 1, X , Y , B}, • der Übergangsfunktion δ : Q × Σ × Γ → Q × Γ × D, • dem Anfangszustand q0 ∈ Q, • dem leeren Feld (Blank) B ∈ Γ \ Σ und • der Menge F = {q4 } Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 392 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Beispiel: L(M) = {0n 1n |n ≥ 1} Übergangsfunktion δ : Q × Σ × Γ → Q × Γ × D mit 0 1 X Y q0 (q1 , X , R) (q3 , Y , R) q1 (q2 , 0, R) (q2 , Y , L) (q1 , Y , R) q2 (q2 , 0, L) (q0 , X , R) (q2 , Y , L) q3 (q3 , Y , R) q4 - Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen B (q4 , B, R) - 13.6. 2012 393 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Chomsky-Hierarchie • Reguläre Sprachen • Beispiel: L = {an bm |n, m ∈ N} • Wie werden sie erkannt? • Kontextfreie Sprachen: • Beispiel: L = {an b n |n ∈ N} • Wie werden sie erkannt? • Kontextsensitive Sprachen: • Beispiel: L = {an b n c n |n ∈ N} • Wie werden sie erkannt? Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 394 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Chomsky-Hierarchie • Reguläre Sprachen • Beispiel: L = {an bm |n, m ∈ N} • Wie werden sie erkannt? Endliche Automaten • Kontextfreie Sprachen: • Beispiel: L = {an b n |n ∈ N} • Wie werden sie erkannt? Kellerautomaten • Kontextsensitive Sprachen: • Beispiel: L = {an b n c n |n ∈ N} • Wie werden sie erkannt? Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 394 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 4: Gegeben ist die Grammatik GN = (N, D, S, RN ) mit RN :S → d0 |dX wobei d0 ∈ {0, 1, .., 9} = D und d ∈ {1, .., 9}. X → d0 X | Geben Sie bitte darauf aufbauend eine Grammatik an für • die ganzen Zahlen Z • die rationalen Zahlen Q • und die reellen Zahlen R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 395 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 4: Gegeben ist die Grammatik GN = (N, D, S, RN ) mit RN :S → d0 |dX wobei d0 ∈ {0, 1, .., 9} = D und d ∈ {1, .., 9}. X → d0 X | Geben Sie bitte darauf aufbauend eine Grammatik an für • die ganzen Zahlen Z GZ = (N ] {V }, D ∪ {−, +}, V , RN ∪ {V → −S | +S | S}) • die rationalen Zahlen Q • und die reellen Zahlen R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 395 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 4: Gegeben ist die Grammatik GN = (N, D, S, RN ) mit RN :S → d0 |dX wobei d0 ∈ {0, 1, .., 9} = D und d ∈ {1, .., 9}. X → d0 X | Geben Sie bitte darauf aufbauend eine Grammatik an für • die ganzen Zahlen Z GZ = (N ] {V }, D ∪ {−, +}, V , RN ∪ {V → −S | +S | S}) • die rationalen Zahlen Q GQ = {N ] {V , Q}, D ∪ {−, +, /}, Q, RN ∪ {V → −S | +S | S} ∪{Q → V /S | V }) • und die reellen Zahlen R Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 395 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 4: Gegeben ist die Grammatik GN = (N, D, S, RN ) mit RN :S → d0 |dX wobei d0 ∈ {0, 1, .., 9} = D und d ∈ {1, .., 9}. X → d0 X | Geben Sie bitte darauf aufbauend eine Grammatik an für • die ganzen Zahlen Z GZ = (N ] {V }, D ∪ {−, +}, V , RN ∪ {V → −S | +S | S}) • die rationalen Zahlen Q GQ = {N ] {V , Q}, D ∪ {−, +, /}, Q, RN ∪ {V → −S | +S | S} ∪{Q → V /S | V }) • und die reellen Zahlen R geht nicht!!! Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 395 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Abzählbar Definition Eine Menge M ist abzählbar, • falls es eine Funktion f : N → M gibt, die surjektiv ist (d. h. alle Elemente aus M kommen als Bildelement vor), oder • falls M = ∅. Ist eine Menge nicht abzählbar, so ist sie überabzählbar. BSP: Abzählbare Mengen Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 396 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Mächtigkeit der Menge aller Wörter über Σ Satz: Sei Σ ein Alphabet. Es gibt abzählbar unendlich viele Wörter über Σ, d.h. die Menge Σ∗ aller Wörter über Σ hat die Mächtigkeit abzählbar unendlich. Beweis: • Σ∗ enthält unendlich viele Elemente: Angenommen, Σ∗ sei endlich. Dann enthält Σ∗ ein Wort w maximaler Länge. Sei a ∈ Σ. Dann wa ∈ Σ∗ , aber andererseits wa < Σ∗ , da Σ∗ nur Wörter der Länge kleiner gleich|w| enthält und |wa| > |w| gilt. Dies ist ein Widerspruch; also ist die Annahme falsch. • Σ∗ ist abzählbar unendlich: Standard-Ordnung auf Σ∗ (zunächst ihrer Länge nach und dann bei gleicher Länge lexikographisch) und liefert eine surjektive Abbildung von N → Σ∗ Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 397 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Alle Sprachen sind abzählbar Satz: Jede Teilmenge M 0 einer abzählbaren Menge M ist auch abzählbar. Beweis: Sei surjektives f : N → M gegeben. Definiere f 0 : N → M 0 mit falls f (n) ∈ M 0 f (n) f 0 (n) = w ∈ M 0 sonst Da f surjektiv, werden alle Elemente von M 0 abgedeckt. Dieselben Bildelemente in N decken durch f 0 die Menge M 0 ab. Damit ist f 0 auch surjektiv. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 398 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 5: Zeigen Sie, dass Q abzählbar unendlich ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 399 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 5: Zeigen Sie, dass Q abzählbar unendlich ist. Lösung Wir haben Grammatik GQ für Q. Also ist Q = L(G) ⊆ Σ∗ , also ist Q abzählbar unendlich. oder 1. Cantorsche Diagonalisierungsverfahren Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 399 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Cantorsche Diagonalisierungsverfahren Zweidimensionale Darstellung aller Brüche 0 1 −1 2 −2 3 ... 1 1 1 −1 1 2 1 −2 1 3 1 ... 2 1 2 −1 2 2 2 −2 2 3 2 ... 3 1 3 −1 3 2 3 −2 3 3 3 ... 1 4 .. . −1 4 .. . 2 4 .. . −2 4 .. . 3 4 .. . ... 4 .. . Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 400 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Cantorsche Diagonalisierungsverfahren Zweidimensionale Aufzählung aller Brüche Hausaufgabe 6: Geben Sie bitte die Abbildung f : N → Q an, die diese Aufzählung beschreibt. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 400 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Mächtigkeit der Menge aller Sprachen über Σ∗ Satz: Sei Σ ein Alphabet. Es gibt überabzählbar viele Sprachen über Σ, d.h. die Mächtigkeit der Menge aller Sprachen über Σ ist überabzählbar unendlich. Der Satz lässt sich mit dem 2. Cantorschen Diagonalverfahren beweisen. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 401 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie 2. Cantorschen Diagonalverfahren für Sprachen Angenommen, die Menge aller Sprachen über Σ sei abzählbar. • Sprachen L1 , L2 , L3 , ... ⊆ Σ∗ und Wörtern wj ∈ Σ∗ in Standardordnung in folgender Tabelle: w1 w2 w3 w4 w5 w6 ... mit Tabelleneintr ägen L1 1 1 1 0 1 1 ... L2 1 0 1 0 1 0 ... 1 falls w j ∈ Li t = ij L3 0 1 1 0 0 1 ... 0 falls wj < Li .. .. .. .. .. .. . . . . . . • Diagonale der Tabelle ist die charakteristische Funktion von Ld , der Diagonalsprache. Ld enthält hier die Wörter w1 , w3 , ... • Ld ist nicht in der Tabelle, denn Ld kann keine der Li sein, weil sie in der i-ten Spalte genau dann eine 0 hat, wenn Li dort eine 1 hat, und umgekehrt. • WIDERSPRUCH zur Annahme, dass die Menge aller Sprachen über Σ abzählbar ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 402 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie 2. Cantorschen Diagonalverfahren für Sprachen Angenommen, die Menge aller Sprachen über Σ sei abzählbar. • Sprachen L1 , L2 , L3 , ... ⊆ Σ∗ und Wörtern wj ∈ Σ∗ in Standardordnung in folgender Tabelle: w1 w2 w3 w4 w5 w6 ... mit Tabelleneintr ägen L1 1 1 1 0 1 1 ... L2 1 0 1 0 1 0 ... 1 falls w j ∈ Li t = ij L3 0 1 1 0 0 1 ... 0 falls wj < Li .. .. .. .. .. .. . . . . . . • Diagonale der Tabelle ist die charakteristische Funktion von Ld , der Diagonalsprache. Ld enthält hier die Wörter w1 , w3 , ... • Ld ist nicht in der Tabelle, denn Ld kann keine der Li sein, weil sie in der i-ten Spalte genau dann eine 0 hat, wenn Li dort eine 1 hat, und umgekehrt. • WIDERSPRUCH zur Annahme, dass die Menge aller Sprachen über Σ abzählbar ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 402 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie 2. Cantorschen Diagonalverfahren für Sprachen Angenommen, die Menge aller Sprachen über Σ sei abzählbar. • Sprachen L1 , L2 , L3 , ... ⊆ Σ∗ und Wörtern wj ∈ Σ∗ in Standardordnung in folgender Tabelle: w1 w2 w3 w4 w5 w6 ... mit Tabelleneintr ägen L1 1 1 1 0 1 1 ... L2 1 0 1 0 1 0 ... 1 falls w j ∈ Li t = ij L3 0 1 1 0 0 1 ... 0 falls wj < Li .. .. .. .. .. .. . . . . . . • Diagonale der Tabelle ist die charakteristische Funktion von Ld , der Diagonalsprache. Ld enthält hier die Wörter w1 , w3 , ... • Ld ist nicht in der Tabelle, denn Ld kann keine der Li sein, weil sie in der i-ten Spalte genau dann eine 0 hat, wenn Li dort eine 1 hat, und umgekehrt. • WIDERSPRUCH zur Annahme, dass die Menge aller Sprachen über Σ abzählbar ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 402 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie 2. Cantorschen Diagonalverfahren für Sprachen Angenommen, die Menge aller Sprachen über Σ sei abzählbar. • Sprachen L1 , L2 , L3 , ... ⊆ Σ∗ und Wörtern wj ∈ Σ∗ in Standardordnung in folgender Tabelle: w1 w2 w3 w4 w5 w6 ... mit Tabelleneintr ägen L1 1 1 1 0 1 1 ... L2 1 0 1 0 1 0 ... 1 falls w j ∈ Li t = ij L3 0 1 1 0 0 1 ... 0 falls wj < Li .. .. .. .. .. .. . . . . . . • Diagonale der Tabelle ist die charakteristische Funktion von Ld , der Diagonalsprache. Ld enthält hier die Wörter w1 , w3 , ... • Ld ist nicht in der Tabelle, denn Ld kann keine der Li sein, weil sie in der i-ten Spalte genau dann eine 0 hat, wenn Li dort eine 1 hat, und umgekehrt. • WIDERSPRUCH zur Annahme, dass die Menge aller Sprachen über Σ abzählbar ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 402 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie 2. Cantorschen Diagonalverfahren für Sprachen Angenommen, die Menge aller Sprachen über Σ sei abzählbar. • Sprachen L1 , L2 , L3 , ... ⊆ Σ∗ und Wörtern wj ∈ Σ∗ in Standardordnung in folgender Tabelle: w1 w2 w3 w4 w5 w6 ... mit Tabelleneintr ägen L1 1 1 1 0 1 1 ... L2 1 0 1 0 1 0 ... 1 falls w j ∈ Li t = ij L3 0 1 1 0 0 1 ... 0 falls wj < Li .. .. .. .. .. .. . . . . . . • Diagonale der Tabelle ist die charakteristische Funktion von Ld , der Diagonalsprache. Ld enthält hier die Wörter w1 , w3 , ... • Ld ist nicht in der Tabelle, denn Ld kann keine der Li sein, weil sie in der i-ten Spalte genau dann eine 0 hat, wenn Li dort eine 1 hat, und umgekehrt. • WIDERSPRUCH zur Annahme, dass die Menge aller Sprachen über Σ abzählbar ist. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 402 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Sprachen mit endlicher Beschreibung • überabzählbar viele Sprachen: • sehr, sehr viele • die meisten dieser Sprachen nicht explizit angebbar, • denn keine endliche Beschreibung • endliche Beschreibung einer Sprache • z.B. ein regulärer Ausdruck, eine Grammatik oder auch eine informelle Beschreibung • alle diese endlichen Beschreibungen sind endliche Zeichenfolgen • nur abzählbar viele endliche Beschreibungen, denn • nur abzählbar viele Wörter über einem Alphabet, also • nur abzählbar viele Sprachen mit einer endlichen Beschreibung • ganz, ganz wenige gegenüber der überwältigend großen Menge aller Sprachen Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 403 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufzählbar Definition Eine Menge M ist aufzählbar (auch rekursiv aufzählbar oder semi-entscheidbar) • falls es eine surjektive Funktion f : N → M gibt, und • einen Algorithmus, der es gestattet, für jedes n ∈ N den Funktionswert f (n) zu berechnen, • oder falls M = ∅. Satz: Die Menge aller Wörter Σ∗ über einem Alphabet Σ ist aufzählbar. Beweis: Wörter können in Standardordnung erzeugt werden Aufgabe 7: : Weshalb heißen aufzählbare Mengen auch semi-entscheidbar? Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 404 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Entscheidbar Definition Gegeben sei ein Alphabet Σ. Eine Sprache L ⊆ Σ∗ heißt entscheidbar, • falls es einen abbrechenden Algorithmus, Entscheidungsverfahren genannt, w ∈ L oder gibt, der für jedes w ∈ Σ∗ feststellt, ob w <L BSP: Aufzählbare Sprache, die nicht entscheidbar ist L ⊆ ASCII ∗ L = {xy|x ist ein Programm, y ist eine Eingabe, und x stoppt bei der Eingabe von y nach endlich vielen Schritten} Halteproblem !! Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 405 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 8: Wahr oder falsch und warum???? 1 Jede Teilmenge einer aufzählbaren Sprache ist aufzählbar. wahr oder falsch 2 Jede Teilmenge einer aufzählbaren Sprache ist abzählbar. wahr oder falsch 3 Jede Teilmenge einer abzählbaren Sprache ist aufzählbar. wahr oder falsch 4 Jede Teilmenge einer abzählbaren Sprache ist abzählbar. wahr oder falsch 5 Jede Teilmenge einer entscheidbaren Sprache ist aufzählbar. wahr oder falsch 6 Jede Teilmenge einer entscheidbaren Sprache ist abzählbar. wahr oder falsch Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 406 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Aufgabe 8: Wahr oder falsch und warum???? 1 Jede Teilmenge einer aufzählbaren Sprache ist aufzählbar. X wahr oder X falsch 2 Jede Teilmenge einer aufzählbaren Sprache ist abzählbar. X wahr oder X falsch 3 Jede Teilmenge einer abzählbaren Sprache ist aufzählbar. X wahr oder X falsch 4 Jede Teilmenge einer abzählbaren Sprache ist abzählbar. X wahr oder X falsch 5 Jede Teilmenge einer entscheidbaren Sprache ist aufzählbar. X wahr oder X falsch 6 Jede Teilmenge einer entscheidbaren Sprache ist abzählbar. X wahr oder X falsch Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 406 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Vergleich von Grammatiken Falsche Annahme: Je mächtiger, desto mehr Wörter Umfangreichste Sprache Σ∗ für gegebenes Alphabet Σ kann durch reguläre Grammatik beschrieben werden: S → aS| für alle a ∈ Σ Statt dessen: Grenze zwischen Wörter in und außerhalb der Sprache hat einen komplexeren Verlauf Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 407 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Mengendiagramm für Sprachen Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 408 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Chomsky-Hierarchie mit Ergänzungen Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 409 VL11 kfG PL für kfG BNF & Co Chomsky-Hierarchie Zusammenfassung • Kontextfreie Grammatiken sind geeignet, Blockstrukturen und richtig geklammerte Ausdrücke zu erzeugen. • Reguläre Sprachen sind kontextfrei. Es gibt kontextfreie Sprachen, die nicht regulär sind. • Kontextfreie Grammatiken werden zur Syntaxdefinition von Programmiersprachen benutzt. Sie werden üblicherweise in der Backus-Naur-Form notiert. • Nicht-deterministische PDAs akzeptieren kontextfreie Sprachen. Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 13.6. 2012 410