Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S...
Click here to load reader
Transcript of Chomsky-0-Grammatik Rek. Aufz. Umformung NTM DTMls2-sieling/gti2005/folien/gti-klein-2005...... {S...
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.
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}
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
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}
**
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}
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 .
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.
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.
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.