Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S...

9

Click here to load reader

Transcript of Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S...

Page 1: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

507

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.

508

Umformung NTM �DTM

Satz T5.2.3: Wenn L durch eine NTM Makzeptiert 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.

509

Charakterisierung rek. aufz. Spr.

Folgerung T5.2.4:Die Menge der rekursiv aufzählbaren

Sprachen ist gleich1. 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.

510

Chomsky-3-Grammatiken (T5.3)

Ziel:Äquivalenz von Chomsky-3-Grammatiken und

DFAs.

Page 2: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

511

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=q0,Ableitungsregeln: q � aq´, falls δ(q,a)=q´,

q � ε, falls q∈F.

512

Korrektheit

Rechnung des DFA auf einem Wort w1…wn:

Zustandsfolge q0,q1,…,qn mit δ(qi,wi+1)=qi+1

und qn∈F.

�„Rechnung“ der erzeugten Grammatik:q0 � w1q1 � w1w2q2 � … � w1…wnqn �

w1…wn

q � aq´, falls δ(q,a)=q´,q � ε, falls q∈F.

513

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, q0=S, F= {A | Regel A�ε vorhanden}

δ(A,a)={B | Regel A� aB vorhanden}

514

Korrektheit

Ableitung von w1…wn hat die FormS�w1A1�w1w2A2�…�w1…wnAn�w1…wn

⇔Mögliche Zustandsfolge des NFAs bei Eingabe w1,…,wn:

S � A1 � A2 � … � An

Q=V, q0=S, F= {A | Regel A�ε vorhanden}

δ(A,a)={B | Regel A� aB vorhanden}

Page 3: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

515

Charakterisierung d. reg. Sprachen

Folgerung: Die Menge der regulären Sprachen ist gleich

• der Menge der von DFAs oder NFAserkannten Sprachen,

• der Menge der Sprachen, die durch reguläre Ausdrücke beschrieben werden,

• der Menge der Sprachen, die durch Chomsky-3-Grammatiken beschrieben werden.

516

Beobachtung

Grammatiken sind ein auf natürliche Weise nichtdeterministisches Konzept.

Simulationen von Ableitungen einer Grammatik werden mit Hilfe von nichtdeterministischen Maschinen besonders einfach.

517

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

518

Beispiel: L={0n1n | n≥1}

Haben gesehen: L nicht regulär

(Folien 365 und 373)

Kontextfreie Grammatik:

V={S}, Σ={0,1}, P={S�01, S� 0S1}

� L kontextfrei

Page 4: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

519

Variante: L={0i1j | 1�i�j}

Kontextfreie Grammatik:V={S}, Σ={0,1}, P={S�01, S� 0S1, S�S1}

� L kontextfrei

520

Bsp: Sprache der Palindrome

L={w∈{0,1}* | w=wR}

• Haben gesehen: L nicht regulär (Folie 375)• Kontextfreie Grammatik G:

V={S}, Σ={0,1}, P={S�ε, S�0, S�1, S�0S0, S�1S1}

• Korrektheit:–G erzeugt nur Palindrome.– Alle Palindrome können durch G erzeugt

werden.

L(G)⊆L

L⊆L(G)

521

G erzeugt nur Palindrome.

Behauptung: Alle von G erzeugten Wörter wsind 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} 522

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}

**

Page 5: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

523

Klammersprache

w=w1...wn∈{(,)}* heißt korrekt geklammert, falls

• die Anzahl „(“ ist gleich der Anzahl „)“.• in jedem Anfangsstück w1,...,wi (i�n) ist die

Anzahl „(“ nicht kleiner als die Anzahl „)“.

DefiniereL={w∈{(,)}* | w korrekt geklammert}

Nicht regulär � Folie 376f.

Kontextfreie Grammatik: S�SS, S�(S), S�ε.524

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)⊆LL⊆L(G)

525

Beispiel

Ableitung von 110010S�1S0S� 11S0S0S � 1100S� 11001S0S� 110010

P={S�ε, S�0S1S, S�1S0S}

S

1 S 0 S

1 S 0 S 1 S 0 S

ε εε ε

Syntax-baum

526

Korrektheit: L(G)⊆LG erzeugt nur Wörter aus L :

folgt, da bei jedem Ableitungsschritt gleichviele Nullen wie Einsen erzeugt werden.

P={S�ε, S�0S1S, S�1S0S}

Page 6: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

527

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. |w1…wi|0 = |w1…wi|1.

Dann gilt: w1=0, wi=1, |w2…wi-1|0 = |w2…wi-1|1und |wi+1…wn|0=|wi+1…wn|1.

Also w2…wi-1∈ L und wi+1…wn∈ L und

S� 0S1S � 0w2…wi-11wi+1…wn.*

I.V.528

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.

529

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.

530

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 .

Page 7: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

531

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�ε

532

Weiteres Beispiel

S�ε, S�0S1S, S�1S0S ist mehrdeutig:das Wort 011001 hat die Linksableitungen

S�0S1S�01S0S1S�011S0SS0S1S�011001

undS�0S1S�01S�011S0S�0110S�

01100S1S�011001Etwas schwieriger: Konstruktion einer

eindeutigen Grammatik.

*

*

533

Beispiel

Die Grammatik S�01, S� 0S1 für L={0n1n | n≥1} ist eindeutig.

534

Motivation

• Nahe liegende Vermutung: Syntaxanalyse für eindeutige Grammatiken einfacher.

• Verschiedene Ableitungsbäume haben bei Programmiersprachen häufig verschiedene Semantiken.

Page 8: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

535

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 FormA � BC oder A � a (mit A,B,C∈V, a∈T)sind.

536

Chomsky-Normalform

Besonderheit: ε kann nicht erzeugt werden.Im Folgenden Umformung

G G´

Kontextfreie Kontextfreie GrammatikGrammatik in Chomsky-Normalform

mit L(G´) = L(G) – {ε}

537

Umformung

Sei s(G) die Größe (Anzahl der Buchstaben in allen Produktionen) der kontextfreien Grammatik G.

Satz T6.2.2: Eine kontextfreie Grammatik Gkann in Zeit O(s(G)2) in Chomsky-Normalform umgeformt werden.

Beweis: Umformung in 4 Schritten

538

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 Ya

und die Regel Ya�a,

• Ersetze auf jeder rechten Seite einer Regel a durch Ya.

Page 9: Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S 01, S 0S1} L kontextfrei. 519 Variante: L={0 i1j | 1 i j} Kontextfreie Grammatik:

539

Beispiel für Schritt 1

A� AbcDeF (mit A,D,F∈V, b,c,e∈T)

wird ersetzt durch

A� AYbYcDYeF, Yb�b, Yc�c, Ye�e

540

Schritt 2: Lange rechte Seiten

A�B1…Bm (mit m≥3, A,B1,…,Bm∈V)

wird ersetzt durch

A � B1C1

C1� B2C2

Ci � Bi+1Ci+1 (für 1�i�m-3)

Cm-2 � Bm-1Bm

Dabei sind C1,…,Cm-2 neue Variablen, die nur für die betrachtete Regel eingeführt werden.

541

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.