Teil 4: Grammatiken und Syntaxanalyse. (Kapitel T5-T7)

Ähnliche Dokumente
Zusammenfassung. Endliche Sprachen. Fazit zu endlichen Automaten. Teil 4: Grammatiken und Syntaxanalyse

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

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Abschluss gegen Substitution. Wiederholung. Beispiel. Abschluss gegen Substitution

Klammersprache Definiere

Informatik III - WS07/08

Rekursiv aufzählbare Sprachen

Ogden s Lemma (T6.4.2)

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Das Halteproblem für Turingmaschinen

Automaten und formale Sprachen Klausurvorbereitung

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

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

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

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

Ein Fragment von Pascal

Ogden s Lemma: Der Beweis (1/5)

Theoretische Grundlagen der Informatik

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

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

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

Vorlesung Theoretische Informatik (Info III)

Kellerautomaten u. kontextfr. Spr.

Formale Sprachen. Script, Kapitel 4. Grammatiken

Beispiel Produktautomat

Übersicht. 3 3 Kontextfreie Sprachen

Seien M 1,M 2 NFAs f. die Sprachen L 1 und L 2. Konstruktion eines NFAs für L 1 L 2 : Erzeuge Kopien von M 1 und M 2. p 1

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Theoretische Informatik II

Potenzmengenkonstruktion. Vergleich DFAs NFAs. NFA DFA ohne überflüssige Zust. Ansatz nicht praktikabel

Grundlagen der Theoretischen Informatik

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Musterlösung Informatik-III-Nachklausur

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

5.2 Endliche Automaten

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

Grammatiken. Einführung

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

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

DisMod-Repetitorium Tag 4

Grammatiken und die Chomsky-Hierarchie

Das Postsche Korrespondenzproblem

FORMALE SYSTEME. Wiederholung. Beispiel: NFA. Wiederholung: NFA. 4. Vorlesung: Nichtdeterministische Endliche Automaten. TU Dresden, 19.

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

I.5. Kontextfreie Sprachen

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Kontextfreie Sprachen werden von PDAs akzeptiert

Grundlagen der Theoretischen Informatik

Mehrdeutige Grammatiken

Kapitel IV Formale Sprachen und Grammatiken

2.4 Kontextsensitive und Typ 0-Sprachen

Definition 78 Ein NPDA = PDA (= Nichtdeterministischer Pushdown-Automat) besteht aus:

Grundlagen der Theoretischen Informatik

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

Kontextfreie Sprachen

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Spracherkennung (Syntaxanalyse)

Informatik III. Christian Schindelhauer Wintersemester 2006/ Vorlesung

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

F2 Zusammenfassung Letzte Tips zur Klausur

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

Kontextfreie Sprachen

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Theoretische Grundlagen der Informatik

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Grundlagen der Theoretischen Informatik

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Normalformen für kontextfreie Grammatiken. Noam CHOMSKY, Sheila GREIBACH. Bäume. Ableitungen in kontextfreien Grammatiken. Grammatik G = (N,T,P,S)

Theoretische Informatik 2

Informatik III. Arne Vater Wintersemester 2006/ Vorlesung

Noam CHOMSKY, Sheila GREIBACH

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

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

(Prüfungs-)Aufgaben zu formale Sprachen

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

6 Kontextfreie Grammatiken

Mehrdeutige Grammatiken

Formale Grundlagen der Informatik

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

Automatentheorie und formale Sprachen

Theoretische Grundlagen der Informatik

Äquivalenzrelation R A zu DFA A. Rechtsinvarianz. Relation R L zur Sprache L

Übungsaufgaben zu Formalen Sprachen und Automaten

Deterministischer Kellerautomat (DPDA)

8. Turingmaschinen und kontextsensitive Sprachen

Lösungen zur 1. Klausur. Einführung in Berechenbarkeit, formale Sprachen und Komplexitätstheorie

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Transkript:

Teil 4: Grammatiken und Syntaxanalyse (Kapitel T5-T7)

Grammatiken und die Chomsky- Hierarchie [T5.1] Ziel: Regelsysteme zur Erzeugung von Sprachen. Beispiel: arithmetische Ausdrücke können definiert werden durch a (Variable), a+a, a a sind arithmet. Ausdr. Wenn A und B arithm. Ausdr. sind, dann auch (A)+(B) und (A) (B). Grammatik: formalere Beschreibung solcher Regeln. 449

Bestandteile einer Grammatik T (oder Σ): endliche Menge von Terminalzeichen (das Alphabet der erzeugten Sprache) V : endliche Menge von Variablen (T V= ) S V : Startsymbol P : endliche Menge von Ableitungsregeln/ Produktionen Paare (l,r) mit l (V T ) +, r (V T )* (Schreibweise: l r) Variante: l V + 450

Beispiel: arithmetische Ausdrücke V={S} T={(,),a,+, } P = {S (S)+(S), S (S) (S), S a, S a+a, S a a} Herleitung eines Wortes: S (S)+(S) (S)+((S) (S)) (a a)+((s) (S)) (a a)+((a) (S)) (a a)+((a) (a +a)) 451

Notation w z z lässt sich durch Anwendung einer Ableitungsregel (l,r) aus w herleiten, d.h., es gibt in w ein Teilwort l, so dass nach Ersetzen von l durch r das Wort z entsteht. w z * w w 1 w 2 w 3 w n z, d.h., z kann aus w in endlich vielen Schritten hergeleitet werden. L(G): Die von der Grammatik G erzeugte Sprache, also die Menge der Wörter w T* mit S w. * 452

Notation Variablen: Großbuchstaben. Terminale: meistens Kleinbuchstaben a,b,c,... oder Ziffern, manchmal auch Sonderzeichen oder Klammern. Wörter aus (V T )*: Kleinbuchstaben u,v,... oder griechische Kleinbuchstaben. 453

Weiteres Beispiel L = { w w {a,b,c}* und w enthält gleich viele a s, b s und c s } Angabe einer Grammatik: V = {S,A,B,C,R}, T = {a,b,c}, P = {S R, S ε, R RABC, R ABC AB BA, BA AB, CA AC, AC CA, BC CB, CB BC, A a, B b, C c} 454

Eingeschränkte Grammatiken Definition T5.1.1: Chomsky-0-Grammatiken: Grammatiken ohne weitere Einschränkungen. Chomsky-1-Grammatiken: Produktionen der Form S ε oder u v mit u V +, v ((V T) {S})* und u v. monoton oder kontextsensitiv (Beispiel: siehe vorherige Folie) 455

Eingeschr. Grammatiken (Forts.) Chomsky-2-Grammatiken: Produktionen der Form A v mit A V, v (V T)*. kontextfrei Chomsky-3-Grammatiken: Produktionen der Form A ε oder A ab mit A,B V, a T. rechtslinear oder regulär 456

Sprachklassen L i : Menge der von Chomsky-i-Grammatiken erzeugbaren Sprachen, genauer L 0 : Chomsky-0-Sprachen (=rekursiv aufzählbare Sprachen) L 1 : kontextsensitive Sprachen L 2 : kontextfreie Sprachen L 3 : rechtslineare Sprachen (=reguläre Sprachen) 457

Chomsky-Hierarchie Folgerung aus der Definition: L 3 L 2 und L 1 L 0 Später: L 2 L 1 Alle Inklusionen sind echt. 458

Chomsky-0-Grammatiken (T5.2) Ziel: Chomsky-0-Sprachen = rek. aufz. Sprachen Grammatik: S * Wort Turing-Maschine: Wort akz. Konfig. D.h.: Die Rechnung einer Grammatik verläuft anders herum. 459

Rek. Aufz. Chomsky-0-Grammatik Satz T5.2.1: L rekursiv aufzählbar Es gibt Chomsky-0-Grammatik G mit L(G)=L. Beweis: Sei L rekursiv aufzählbar und M zugehörige deterministische Turingmaschine, d.h., x L M akzeptiert x, x L M läuft endlos. 460

Vereinfachungen von M M kann modifiziert werden, so dass gilt: Der Startzustand q 0 wird nur zu Beginn der Rechnung benutzt. Es gibt nur einen akzept. Zustand q*. Vor dem Akzeptieren löscht M das Band. Startkonfiguration: q 0 w 1 w n Akzep. Konfiguration: q* 461

Rückwärtsrechnung von G V = Q {S,L,R,X,Y} (Γ Σ), Startsymbol S T = Σ Regeln: Bandalphabet 1. Erzeugung der Endkonfiguration: S Lq*R, q* q*b, q* Bq* 2. Rückwärtsrechnung: Eingabealphabet δ(q,a)=(q,a,1): a q qa, δ(q,a)=(q,a, 1): q ba bqa f.a. b Γ δ(q,a)=(q,a,0): q a qa. 462

3. Schlussregeln für den Test, ob tatsächlich eine Startkonfiguration beschrieben wird, und zum Löschen der Randmarkierungen: Bq 0 q 0 Lq 0 q 0 q 0 a ax f.a. a Σ Xa ax f.a. a Σ XB Y YB Y YR ε XR ε q 0 B Y Zeichen links des hergel. Wortes löschen Zum rechten Ende des hergel. Wortes gehen Zeichen rechts des hergel. Wortes löschen Sonderfall leeres Wort 463

Korrektheit 1. L(M) L(G). Sei c 1,,c m eine akzeptierende Rechnung für w 1 w n von M. Dann gibt es in G die Herleitung S Lq*R * LB Bq*B BR = LB Bc m B BR LB Bc m 1 B BR LB Bc 1 B BR = LB Bq 0 w 1 w n B BR * w 1 w n. 464

Korrektheit 2. L(G) L(M). Sei S Lq*R * w 1 w n Herleitung in G. L,R, Zustandssymbol können nur mit den Schlussregeln entfernt werden LB Bq 0 w 1 w n B BR wurde erreicht. Die Herleitung Lq*R * LB Bq 0 w 1 w n B BR entspricht einer umgekehrten Rechnung von M. M akzeptiert w 1 w n. 465

Beispiel Rechnung von M auf ab : q 0 ab cq 1 b cdq 2 B cq 3 db q 4 cbb q*bbb Herleitung in G: S Lq*R Lq*BR Lq*BBR Lq*BBBR Lq 4 cbbr Lcq 3 dbr Lcdq 2 BR Lcq 1 bbr Lq 0 abbr q 0 abbr axbbr abxbr abyr ab 466

Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe nichtdeterministisch gewählte Ableitungsregel aus Vergleiche hergeleitetes Wort mit Eingabe, akzeptiere bei Gleichheit. 467

Umformung NTM DTM Satz T5.2.3: Wenn L durch eine NTM M akzeptiert wird, ist L rekursiv aufzählbar. Beweis: Konstruktion einer DTM für L: For i:=0 to Sim. alle Rechenwege von M der Länge i. Falls akzeptierende Konfiguration erreicht wird, akzeptiere. 468

Charakterisierung rek. aufz. Spr. Folgerung T5.2.4: Die Menge der rekursiv aufzählbaren Sprachen ist gleich 1. der Menge der von DTMs akzeptierten Sprachen, 2. der Menge der von NTMs akzeptierten Sprachen, 3. der Menge der von Chomsky-0- Grammatiken erzeugten Sprachen. 469

Chomsky-3-Grammatiken (T5.3) Ziel: Äquivalenz von Chomsky-3-Grammatiken und DFAs. 470

DFA Chomsky-3-Grammatik Satz T5.3.1: Sei M ein DFA für L. Dann gibt es auch eine rechtslineare Grammatik G für L. Beweis: Idee: Rechnung von M mit einer Grammatik simulieren. V=Q, T =Σ, S=q 0, Ableitungsregeln: q aq, falls δ(q,a)=q, q ε, falls q F. 471

Korrektheit Rechnung des DFA auf einem Wort w 1 w n : Zustandsfolge q 0,q 1,,q n mit δ(q i,w i+1 )=q i+1 und q n F. Rechnung der erzeugten Grammatik: q 0 w 1 q 1 w 1 w 2 q 2 w 1 w n q n w 1 w n q aq, falls δ(q,a)=q, q ε, falls q F. 472

Chomsky-3-Grammatik NFA Satz T5.3.1: Sei G eine rechtslineare Grammatik für L. Dann gibt es auch einen NFA M für L. Beweis: Sei rechtslin. Grammatik für L gegeben. Konstruktion des NFAs: Q=V, q 0 =S, F = {A Regel A ε vorhanden} δ(a,a)={b Regel A ab vorhanden} 473

Korrektheit Ableitung von w 1 w n hat die Form S w 1 A 1 w 1 w 2 A 2 w 1 w n A n w 1 w n Mögliche Zustandsfolge des NFAs bei Eingabe w 1,,w n : S A 1 A 2 A n Q=V, q 0 =S, F = {A Regel A ε vorhanden} δ(a,a)={b Regel A ab vorhanden} 474

Charakterisierung d. reg. Sprachen Folgerung: Die Menge der regulären Sprachen ist gleich der Menge der von DFAs oder NFAs erkannten Sprachen, der Menge der Sprachen, die durch reguläre Ausdrücke beschrieben werden, der Menge der Sprachen, die durch Chomsky-3-Grammatiken beschrieben werden. 475

Beobachtung Grammatiken sind ein auf natürliche Weise nichtdeterministisches Konzept. Simulationen von Ableitungen einer Grammatik werden mit Hilfe von nichtdeterministischen Maschinen besonders einfach. 476

Kontextfreie Sprachen (Kap. T6) Überblick: Beispiele kontextfreier Sprachen Chomsky-Normalform Wortproblem für kontextfreie Sprachen Pumping-Lemma Mehrdeutigkeit Algorithmen Unentscheidbare Probleme Greibach-Normalform Maschinenmodell für kontextfreie Sprachen 477

Beispiel: L={0 n 1 n n 1} Haben gesehen: L nicht regulär (Folien 338 und 346) Kontextfreie Grammatik: V={S}, Σ={0,1}, P={S 01, S 0S1} L kontextfrei 478

Variante: L={0 i 1 j 1 i j} Kontextfreie Grammatik: V={S}, Σ={0,1}, P={S 01, S 0S1, S S1} L kontextfrei 479

Bsp: Sprache der Palindrome L={w {0,1}* w=w R } Haben gesehen: L nicht regulär (Folie 347) Kontextfreie Grammatik G: V={S}, Σ={0,1}, P={S ε, S 0, S 1, S 0S0, S 1S1} Korrektheit: G erzeugt nur Palindrome. L(G) L Alle Palindrome können durch G erzeugt werden. L L(G) 480

G erzeugt nur Palindrome. Behauptung: Alle von G erzeugten Wörter w sind Palindrome. Induktion über w : w =0 oder w =1: ε, 0, 1 sind Palindrome. w >1: Die erste angewandte Regel ist S 0S0 oder S 1S1, d.h., w beginnt und endet mit demselben Buchstaben. Nach I.V. ist das Wort dazwischen Palindrom w Palindrom. V={S}, Σ={0,1}, P={S ε, S 0, S 1, S 0S0, S 1S1} 481

Alle Palindrome w in G herleitbar. Induktion über w : w =0 oder w =1: ε, 0, 1 sind herleitbar. w >1: w Palindrom w beginnt und endet mit 0 (bzw. 1); dazwischen befindet sich ein Palindrom w, also w=0w 0 oder w=1w 1. Nach I.V. ist w aus S herleitbar. S 0S0 * 0w 0 = w bzw. S 1S1 * 1w 1 = w. V={S}, Σ={0,1}, P={S ε, S 0, S 1, S 0S0, S 1S1} 482

Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere L={w {(,)}* w korrekt geklammert} Nicht regulär Folie 349f Kontextfreie Grammatik: S SS, S (S), S ε. 483

Bsp: L={w w 0 = w 1 } w 0 : Anzahl Nullen in w, w 1 : Anzahl Einsen in w. Übungsaufgabe: Zeige, dass L nicht regulär. Kontextfreie Grammatik G: V={S}, Σ={0,1} P={S ε, S 0S1S, S 1S0S} Korrektheit: G erzeugt nur Wörter aus L. G erzeugt alle Wörter aus L. L(G) L L L(G) 484

Beispiel Ableitung von 110010 S 1S0S 11S0S0S 1100S 11001S0S 110010 S 1 S 0 S Syntaxbaum 1 S 0 S 1 S 0 S ε ε ε ε P={S ε, S 0S1S, S 1S0S} 485

Korrektheit: L(G) L G erzeugt nur Wörter aus L : folgt, da bei jedem Ableitungsschritt gleichviele Nullen wie Einsen erzeugt werden. P={S ε, S 0S1S, S 1S0S} 486

Korrektheit: L L(G) Induktion über w w =0 w=ε L(G). w >0, o.b.d.a. beginne w mit 0. Sei i>0 kleinste Zahl m. w 1 w i 0 = w 1 w i 1. Dann gilt: w 1 =0, w i =1, w 2 w i 1 0 = w 2 w i 1 1 und w i+1 w n 0 = w i+1 w n 1. Also w 2 w i 1 L und w i+1 w n L und S 0S1S * 0w 2 w i 1 1w i+1 w n. I.V. 487

Syntaxbaum Graphische Darstellung der Ableitung eines Wortes Wurzel: markiert mit S. Blätter: markiert mit Terminalen/Buchstaben oder ε. Innere Knoten: markiert mit Variablen A Nachfolger entsprechen Anwendung einer Ableitungsregel A α 1 α r. 488

Anmerkungen Zu jeder Ableitung gibt es einen Syntaxbaum. Zu einem Syntaxbaum kann es mehrere (äquivalente) Ableitungen geben. Linksableitung: Ableitung, bei der die jeweils linkeste Variable ersetzt wird. Rechtsableitung: Ableitung, bei der die jeweils rechteste Variable ersetzt wird. 489

Eindeutigkeit und Mehrdeutigkeit Definition T6.1.5: Eine kontextfreie Grammatik G heißt eindeutig, wenn es für jedes Wort w L(G) nur einen Syntaxbaum gibt. Eine kontextfreie Sprache heißt eindeutig, wenn es für sie eine eindeutige kontextfreie Grammatik gibt, anderenfalls heißt sie inhärent mehrdeutig. 490

Beispiel: Klammersprache Die Grammatik S SS, S (S), S ε ist nicht eindeutig. Beispiel: ()()() Linksableitungen: S SS SSS (S)SS ()SS ()(S)S ()()S ()()(S) ()()() S SS (S)S ()S ()SS ()(S)S ()()S ()()(S) ()()() Eindeutige Grammatik: S (S)S, S ε 491

Weiteres Beispiel S ε, S 0S1S, S 1S0S ist mehrdeutig: das Wort 011001 hat die Linksableitungen S 0S1S 01S0S1S 011S0SS0S1S * und 011001 S 0S1S 01S 011S0S 0110S 01100S1S 011001 * Etwas schwieriger: Konstruktion einer eindeutigen Grammatik. 492

Beispiel Die Grammatik S 01, S 0S1 für L={0 n 1 n n 1} ist eindeutig. 493

Motivation Nahe liegende Vermutung: Syntaxanalyse für eindeutige Grammatiken einfacher. Verschiedene Ableitungsbäume haben bei Programmiersprachen häufig verschiedene Semantiken, Beispiel: dangling else. 494

Chomsky-Normalform Ziel: einfachere Algorithmen für kontextfreie Grammatiken. Definition T6.2.1: Eine kontextfreie Grammatik ist in Chomsky-Normalform, wenn alle Ableitungsregeln von der Form A BC oder A a (mit A,B,C V, a T) sind. 495

Chomsky-Normalform Besonderheit: ε kann nicht erzeugt werden. Im Folgenden Umformung G G Kontextfreie Kontextfreie Grammatik Grammatik in Chomsky-Normalform mit L(G ) = L(G) {ε} 496

Umformung Sei s(g) die Größe (Anzahl der Buchstaben in allen Produktionen) der kontextfreien Grammatik G. Satz T6.2.2: Eine kontextfreie Grammatik G kann in Zeit O(s(G) 2 ) in Chomsky- Normalform umgeformt werden. Beweis: Umformung in 4 Schritten 497

Schritt 1: Separation Ziel: Auf den rechten Seiten der Regeln entweder 1 Terminal oder nur Variablen. Dazu: erzeuge für jedes a T eine neue Variable Y a und die Regel Y a a, Ersetze auf jeder rechten Seite einer Regel a durch Y a. 498

Beispiel für Schritt 1 A AbcDeF (mit A,D,F V, b,c,e T) wird ersetzt durch A AY b Y c DY e F, Y b b, Y c c, Y e e 499

Schritt 2: Lange rechte Seiten A B 1 B m (mit m 3, A,B 1,,B m V) wird ersetzt durch A B 1 C 1 C 1 B 2 C 2 C i B i+1 C i+1 (für 1 i m 3) C m 2 B m 1 B m Dabei sind C 1,,C m 2 neue Variablen, die nur für die betrachtete Regel eingeführt werden. 500

Resultat der Schritte 1 und 2 Nur noch Regeln der Form: A ε (ε-regeln) A B (Kettenregeln) A BC (o.k.) A a (o.k.) Bisher: Grammatik hat sich nur um konstanten Faktor vergrößert. 501

Schritt 3: Beseitigung der ε-regeln 1. Teilschritt: Finde alle Var. A mit A ε. * Initialisierung: Variablen A mit Regel A ε in Mengen V und Q einfügen. Solange Q Variable B aus Q entnehmen. Auf allen rechten Seiten von allen Regeln B durch ε ersetzen. Falls neue Regel C ε entsteht (d.h. C V ): C in V und Q aufnehmen. Ausgabe: V 502

Korrektheit des 1. Teilschritts Behauptung: V enthält genau die Variablen A mit A * ε. offensichtlich. Induktion über die Länge l der kürzesten Ableitung A * ε. l=1: Es gibt die Regel A ε. Dann wird A in V eingefügt. l>1: Dann A BC * ε oder A B * ε. Dann haben B (und C) ε-ableitungen mit Länge <l und kommen in V. A wird in V aufgenommen. 503

Beseitigung der ε-regeln, 2. Teil Entferne alle ε-regeln. Für jede Regel A BC: Falls B V : erzeuge Regel A C, falls C V : erzeuge Regel A B. Resultat: Grammatik vergrößert sich nur um konstanten Faktor. 504

Schritt 4: Entf. der Kettenregeln 1. Teilschritt: Äquivalente Variablen entfernen. Erzeuge Graphen: Knoten: Variablen Kante A B, falls Kettenregel A B vorh. Suche mit DFS nach Kreisen A 1 A 2 A 3 A r A 1 Dann sind A 2,,A r zu A 1 äquivalent und können überall durch A 1 ersetzt werden. 505

Schritt 4: Entf. der Kettenregeln 2. Teilschritt: Kettenregeln beseitigen Ber. Graphen d. Kettenregeln, ist kreisfrei. Ber. topologische Ordnung A 1,,A r. For i:=r downto 1 do Seien A i α 1,,A i α s die Regeln mit linker Seite A i. Falls A j A i mit j<i vorhanden, lösche A j A i und erzeuge A j α 1,,A j α s. 506

Beispiel für den 2. Teilschritt Graph der Kettenregeln (auf A,B,C,D,E): 1 A 3 D a C B E b 2 RS Topologische Nummerierung berechnen Regeln für E: C b, C RS, B b, B RS Regeln für D: C a, (C b) 4 5 Regeln für C: A a, A b, A RS, B a, B b, B RS 507

Größenänderung im 4. Schritt Sei A 1,,A r die topol. Ordnung der Var. Im ungünstigen Fall: Alle A r -Regeln werden zu A 1 -,...,A r 1 - Regeln, alle A r 1 -Regeln werden zu A 1 -,...,A r 2 - Regeln, usw. Höchstens Quadrierung der Größe. 508

Folgerung Zu jeder kontextfreien Grammatik G gibt es eine äquivalente kontextsensitive Grammatik, also L 2 L 1. Chomsky-Hierarchie L 3 L 2 L 1 L 0 {0 n 1 n } Alle kontextsens. Sprachen sind rekursiv. {w w a = w b = w c } 509