theoretische informatik – mitschriftpfeiffef/theo09/6...beobachtungen: ein ableitungsbaum ist ein...

16
Theoretische Informatik – Mitschrift 6. Kontextfreie Sprachen Typ-2-Grammatiken: Regeln der Form A mit AN und ∈∪ N * Beispiel: Grammatik für arithmetische Ausdrücke G =〈{ E,T,F } , { , , , ,a } ,P,E ,P: E E T T T T FF F aE Wörter aus L(G): a, a+a, a*a, a*(a+a) ... Anwendungsgebiet kontextfreier Grammatiken: Syntaxbeschreibung von Programmiersprachen → Backus-Naur-Form Beispiel: Ableitungsbaum zu a*(a+a) Linksableitung: E g T g T F g F F g aF g aE g aE T g aT T g aF T g aa T g a a F g aa a E T T F F E E T T F F a * ( a + a ) ← Front des Ableitungsbaums Definition 6.1 (Ableitungsbaum): Sei G=〈 N, ,P,S kontextfrei, in Zeichen G CFG . Sei ∈∪ N * mit S g 1 g 2 g ... g k = . Zu dieser Ableitung von wird induktiv ein Ableitungs- oder Syntaxbaum wie folgt konstruiert: - Der Wurzel des Baumes wird das Symbol S zugeordnet. - Für i =1 , ... ,k wird der Baum wie folgt erweitert: Falls im i -ten Schritt Nonterminal A mit der Regel A aus P ersetzt wird, werden max { , 1 } Kindknoten des entsprechenden mit A beschrifteten Knotens erzeugt und mit den Symbolen von beschriftet; falls = mit .

Upload: others

Post on 12-Feb-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Theoretische Informatik – Mitschrift

6. Kontextfreie Sprachen

Typ-2-Grammatiken: Regeln der Form A mit A∈N und ∈∪N *

Beispiel: Grammatik für arithmetische AusdrückeG=⟨{E ,T ,F }, { ,∗ , , , a }, P , E ⟩ , P :E ET∣TTT∗F∣FFa∣E

Wörter aus L(G):a, a+a, a*a, a*(a+a) ...

Anwendungsgebiet kontextfreier Grammatiken:Syntaxbeschreibung von Programmiersprachen→ Backus-Naur-Form

Beispiel: Ableitungsbaum zu a*(a+a)

Linksableitung:E⇒g T ⇒g T∗F⇒g F∗F⇒g a∗F⇒g a∗E ⇒g a∗ET ⇒g a∗TT ⇒g a∗FT

⇒g a∗aT ⇒g a∗aF ⇒g a∗aa

ET

T F

F E

E TT FF

a * ( a + a ) ← Front des Ableitungsbaums

Definition 6.1 (Ableitungsbaum):Sei G=⟨N , , P , S ⟩ kontextfrei, in Zeichen G∈CFG .Sei ∈∪N * mit S⇒g1⇒g2⇒g ...⇒g k= .Zu dieser Ableitung von wird induktiv ein Ableitungs- oder Syntaxbaum wie folgt konstruiert:- Der Wurzel des Baumes wird das Symbol S zugeordnet.- Für i=1 , ... , k wird der Baum wie folgt erweitert:

Falls im i -ten Schritt Nonterminal A mit der Regel A aus P ersetzt wird, werdenmax {∣∣,1}Kindknoten des entsprechenden mit A beschrifteten Knotens erzeugt und mit denSymbolen von beschriftet; falls = mit .

Beobachtungen:● Ein Ableitungsbaum ist ein mit Symbolen aus ∪N∪{} beschrifteter Baum.● Die Beschriftung der Blattknoten ergibt von links nach rechts konkateniert die Satzform α

(Front des Ableitungsbaums).● Verschiedene Ableitungen können den selben Ableitungsbaum haben.● Die Klasse aller durch einen Ableitungsbaum repräsentierten Ableitungen hat zwei

ausgezeichnete Repräsentanten: eine Links- und eine Rechtsableitung.● Zu einer Satzform können mehrere Ableitungsbäume existieren

Beispiel:Betrachte G=⟨{ E }, { , , a , ,∗}, P , E ⟩ mit P : E E E∣E∗E∣a∣ E .

Wir betrachten den Ausdruck a + a + a. Dieses Wort besitzt zwei Ableitungsbäume:E E

E + E E + Ea E + E E + E a

a a a a

In G gibt es zu a + a + a nur einen Ableitungsbaum:E

E + TE + T FT F aF aa

Definition 6.2:G∈CFG heißt eindeutig, falls zu jedem w∈LG genau ein Ableitungsbaum (und damitgenau eine Linksableitung bzw. genau eine Rechtsableitung) existiert.G heißt mehrdeutig, falls G nicht eindeutig.

Eine Sprache L∈ℒ2 heißt inhärent mehrdeutig, falls jede Grammatik G mit L=L G mehrdeutig ist.

Beispiel (inhärent mehrdeutige kontextfreie Sprache):L={ai b j ck∣i= j oder j=k ,i , j , k≥1}={ai bi c j∣i , j≥1}

L1

∪{a ib j c j∣i , j≥1}L2

.

Es gilt: L1∩L2={ai bi ci∣i≥1}.

G∈CFG hat Regeln der Form A .

6.1 Normalformen kontextfreier Grammatiken

Bereits gezeigt:Jede kontextfreie Grammatik lässt sich in eine äquivalente ε-freie kontextfreie Grammatik transformieren.

→ Übung: Elimination nicht-erreichbarer Symbole bzw. nicht produktiver Nonterminalsymbole

Lemma (Eliminierung von Kettenregeln):Jede kontextfreie Grammatik G=⟨N , , P , S ⟩ läßt sich in eine äuivalente ε-freie kontextfreie Grammatik G' ohne Kettenregeln, d.h. Regeln der Form A → B mit A , B∈N , transformieren.

Beweis:OBdA sei G bereits ε-frei. Sei N A :={B∈N∣A⇒g * B} für A∈N .

Induktive Definition:N 0 A :={A}N k1A:=N k A∪{B∈N∣∃C∈N k A mit CB∈P }

Es gilt:● N A= ∪

k≥0N k A.

● N k A⊆N k1A für alle k≥0 .● N k A=N k1A⇒N k A=N ki A für alle i≥1 .● N n A=N n1A für n:=∣N∣.

⇒N A kann für jedes A∈N in endlich vielen Schritten berechnet werden.

Definiere G '=⟨N , , P ' , S ⟩ durchP '={A∣∃B∈N A: B∈P ,∉N }

Offensichtlich enthält P' keine Kettenregeln und L(G) = L(G'). G' ist ebenfalls ε-frei.

Beispiel:EET∣T N E ={E , T , F }TT∗F∣F N T ={T , F }Fa∣E N F ={F }

⇒äquivalente Grammatik ohne Kettenregeln:E ET∣T∗F∣a∣E T T∗F∣a∣E F a∣E

Definition 6.3 (Chomsky-Normalform):G=⟨N , , P , S ⟩∈CFG heißt in Chomsky-Normalform (CNF), falls alle Regeln in Peine der folgenden Formen haben:

∥(a) A BC mit B ,C∈N(b) A a mit a∈(c) S und S auf keiner rechten Regelseite

Bemerkung:● Ableitungsbäume bei CNF-Grammatik sind Binärbäume:

AB C... ...

a1 ... ... an

● Ableitung eines w∈+ in ∣w∣∣w∣−1=2∣w∣−1 Schritten.

Satz 6.1:Zu jeder Grammatik G∈CFG existiert eine äquivalente kontextfreie Grammatik in CNF.

Beweis:OBdA. G ε-frei, ohne Kettenregeln. Die Regeln in P haben also die Form

Aa mit a∈ oderA mit ∈∪N * ,∣∣≥2 .

1. Füge für jedes a∈ ein neues Nonterminal Na zu N hinzu und zu P die Regel Na → a.Ersetze in der Regel A mit ∣∣≥2 jedes a∈ durch N a .

2. Eliminiere Regeln der Form AB1 ... B k mit k≥3 durch Hinzunahme von k – 2 neuen Nonterminalen C1 , ..., Ck – 2 (für jede solche Regel) und durch Ersetzen der RegelA → B1 ... Bk durch die Regeln

AB1 C1

C1B2C 2

⋮C k−2Bk−1 Bk

Beispiel:G=⟨{S , A , B} ,{a ,b , c }, P ,S ⟩ mit P :

SABAab∣aAbBc∣cB

LG={an bn c i∣i , n≥1}

⇒G '=⟨{S , A , B ,N a , N b , N c ,C} ,{a ,b , c }, P ' , S ⟩ mit P ' :SABAN a N b∣N a CC AN b

Bc∣N c BN a aN bbN c c

Definition 6.4 (Greibach-Normalform):G∈CFG heißt in Greibach-Normalform, falls alle Regeln die FormAaB1 ... Bk (a∈ , B i∈N ∖{S }, k≥0 ) haben oder S .

Bemerkung:● Verallgemeinerung rechtslinearer Regeln.● Wichtig für Top-Down-Analyse, da keine Linksrekursion.

Definition 6.5:Sei G=⟨N , , P , S ⟩∈CFG , A∈N .A heißt linksrekursiv, falls A⇒+ A für ein ∈∪N *.G heißt linksrekursiv, falls ein A∈N linksrekursiv.analog: Rechtsrekursion.

→ Übung: Elimination von Linksrekursion

6.2 Der CYK-Algorithmus

Wortproblem für Typ 1, 2, 3-Sprachen entscheidbar, aber der allgemeine Algorithmus für Typ-1-Sprachen hat exponentiellen Aufwand.

Jetzt: polynomieller Algorithmus für CFGs in Chomsky-Normalform.

CYK: Cocke, Younger, Kasami: Entwickler des Algorithmus.

Idee:Ableitungsbaum für w = a1 ... an ist Binärbaum.

SA B

w = a1 ... akw1,k

ak1...anwk 1, n−k

Divide et impera!Reduziere das Wortproblem für

w = a1 ... an auf Wortprobleme fürw1 , k = a1 ... ak und

wk + 1, n – k = ak + 1 ... an.

Problem: Schnittstelle ist nicht bekannt!

Chomsky-NF:A → BCA → aS → ε, S auf keiner rechten Regelseite

→ Ableitungsbäume sind Binärbäume

1. Anwendung: CYK-AlgotithmusEntscheidung des Wortproblems für beliebige CFL mit kubischem Zeit und quadratischem Platzaufwand

Idee:Sei w=a1 ...an∈*.Falls w∈L , existiert Ableitungsbaum

SA B

w = a1 ...akw1,k

ak1...anwk 1, n−k

Divide et impera!Das Wortproblem fürw wird zerlegt in zwei

Wortprobleme für Teilwörter w1. Index, Länge von w.

Problem: Schnittstelle k nicht bekannt.

Ansatz: Untersuche induktiv alle Teilwörter der Länge 1, 2, ..., n von w auf Ableitbarkeit aus Nonterminalen der Grammatik.

Definition:wi , j:=a i ... ai j−1 ,1≤i≤n ,1≤ j≤n−i1 (∣wi , j∣= j )N i , j:={A∈N∣A⇒g * wi , j}

Korollar: w∈LG⇔S∈N 1, n

Verfahren:Berechne: i

N1,1 N2,1 ... Nn,1

N1,2 N2,2 Nn-1,2

j N1,3 N2,3 Nn-2,3

...N1,n

Mit:1. Induktionsanfang: A∈N i ,1⇔ A ai∈P2. Induktionsschluss: A∈N i , j mit i j−1≤n⇔i≤n1− j

⇔∃ k :1≤k≤ j∃A BC∈P , B∈N i , k∧C∈N ik , j−k

Beispiel:G: S → AC | a A → BS | b B → b C → BS i

b a b b b a{A,B} {S} {A,B} {A,B} {A,B} {S}

j {A,C} ∅ ∅ ∅ {A,C}∅ ∅ ∅ {S}

∅ ∅ {A,C}∅ ∅

{S}

Pseudo-Code zu CYK-AlgorithmusEingabe: G=⟨N , , P ,S ⟩∈CFG in CNF, w=a1...an∈

+ , n0

for i = 1 to n do N i ,1 :={A∣Aa i∈P}for j = 2 to n do for i = 1 to n + 1 – j do Ni,j := ∅ for k = 1 to j – 1 do N i , j :=N i , j∪{A∈N∣A BC∈P , B∈N i ,k ,C∈N ik , j−k}if S∈N 1,n then write („ w∈LG “) else write („ w∉LG “).

Komplexität:Zeit:1. for-Schleife über i: c1⋅ninnerste for-Schleife über k: c2⋅ j−1 for-Schleife über i: c2n1− j j−1

for-Schleife über j: ∑j=2

n

c2n1− j j−1= c2⋅∑j=1

n−1

n− j ⋅ j= c2∑j=1

n−1

n j−∑j=1

n−1

j 2=...= c2n3−n

6

Gesamtaufwand: c1⋅n c2n3−n

6∈On3

O-Notation:f :ℕℕO f n={g :ℕℕ∣∃c1 n0∈ℕ:∀n≥n0 g n≤c⋅f n}

Platz: O(n²)

6.3 Das Pumping-Lemma

Satz 6.2 (Pumping Lemma, uvwxy-Theorem):Sei L∈ℒ 2. Dann existiert ein n∈ℕ , so dass sich alle Wörter z∈L mit ∣z∣≥nzerlegenlassen in z=uvwxy mit folgenden Eigenschaften:(i) ∣vx∣≥1 ( vx≠ )(ii) ∣vwx∣≤n(iii) für alle i≥0 :uv i wxi y∈L .

Beweisidee:Bei genügend langen Worten werden die Pfade im Ableitungsbaum so lang, dass Nonterminale sich wiederholen müssen. → Pumpstelle

Beweis:Sei G=⟨N , ,P , S ⟩∈CFG in CNF mit L=LG. Sei k:=∣N∣ und n:=2k .Sei z∈L mit ∣z∣≥n.⇒Ableitungsbaum von z ist (bis auf letzte Ableitungsstufe) Binärbaummit mehr als 2k Blättern.

S/ \ / \

/ \ / \ / \ / \...

/ \ / \ ... / \

a1 a2 a3 a4 ... am -1 am

⇒es existiert ein Pfad der Länge ≥k 1letzterAbleitungs-schritt

. Wähle einen minimalen

solchen Pfad: auf diesem Pfad liegen einschließlich des Startsymbols mindestens k + 2 Symbole und mindestens k + 1 Nonterminale.Da |N | = k muss mindestens ein Nonterminal doppelt vorkommen.

S

~

A

~

A

~

z u v w x y

Wähle ein solches Doppelvorkommen, etwa A∈N , so dass es ausgehend von der Blattebene die erste Nonterminalwiederholung ist.Dann gilt:i vx≠ G ist in CNF und damit -frei. Wäre v=x= , so

wären die Ableitungsschritte von denen zum nächstenA nur mit Kettenregeln möglich.

(ii) ∣vwx∣≤n Wegen der Wahl der ersten Nonterminalwiederholungvon der Blattebene aus hat der Baum unterhalb desoberen As höchstens 2k=n Blätter.

(iii) uv i wxi y∈L für alle i≥0 , da der Ableitungsbaum von z wie folgt modifiziert werden kann:1.) Einhängen des unteren A-Baums an der Position des oberen As ⇒uwy=uv0 wx0 y∈L

S

~

Au w y

2.) Einhängen des oberen A-Baums an der Position des unteren ⇒uvi wxi y∈L∀ i≥1 Q.E.D.

S

~

A

~

u v A x y

~

v A x...

v A xw

Pumping Lemma für CFLs:∀ L∈ℒ2∃ n∈ℕ∀ z∈L mit ∣z∣≥n∃u , v , w , x , y∈* mit z=uvwxy :(i) vx≠(ii) ∣vwx∣≤n(iii) ∀ i≥0: uvi wxi y∈L.

Beispiel:G=⟨{S , A , B ,C }, {a , b}, S , P ⟩ mit P :S AC∣aABS∣bBbC BS

k=4 , n=24=16

SA C

B S B SA C

B S B Sb b a b a b au v w x y

⇒bb i a bai ba∈L G

Beispielanwendung des Pumping Lemmas:L={ak bk ck∣k≥1}∈ℒ 1. Wir zeigen, dass L∉ℒ2 .

Annahme, L wäre kontextfrei. Sei n∈ℕ die PL-Zahl von L. Betrachte z=an bn cn .Es gilt: ∣z∣=3n≥n .Sei z=uvwxy eine Zerlegung von z mit (i) und (ii). Wegen ∣vwx∣≤n kann vx nicht gleichzeitiga s und c s enthalten. Da zudem vx≠ , kann das Wort uwy nicht mehr gleich viele a s, b sund c s enthalten und somit kein Element aus L sein q.e.d.

Korollar:ℒ 2⊂ℒ 1 für ∣∣≥3 .

Wie man leicht zeigt, ist {0 p∣p Primzahl} eine nicht-kontextfreiez.z. mit PLanalog zum regulären Fall

Sprache, die

kontextsensitivspäter mit Automatenmodellfürℒ 1

ist.

Abschlusseigenschaften kontextfreier Sprachen

Satz 6.3:ℒ 2 ist abgeschlossen unter● Vereinigung● Komplexprodukt reguläre Operationen● Stern,

aber nicht unter Durchschnitt und Komplement.

Beweis:Seien L1 , L2∈ℒ2 und Gi=⟨N i , , P i , S i⟩∈CFG -frei mit L i=L Gi ( i∈{1, 2})O.B.d.A.: N 1∩N 2=∅● Vereinigung: G=⟨N 1∪N 2∪{S }, ,P1∪P2∪{SS 1∣S 2} , S ⟩∈CFG

mit LG =L G1∪LG2.● Komplexprodukt: G=⟨N 1∪N 2∪{S }, , P1∪P2∪{SS 1 S 2} , S ⟩∈CFG

mit LG =L G1⋅LG2.● Stern: G=⟨N 1∪{S }, , P1∪{S , S S1 S }∖{S1} , S ⟩∈CFG

mit LG =L G1*.● Gegenbeispiel zu Abschluss unter Durchschnitt:

L1={ai bi c j∣i , j≥1}, L2={a

i b j c j∣i , j≥1}L1∈ℒ 2, da L1=L G1 mit G1:S ACAaAb∣abCCC∣cL2 analog.

L1∩L2={aib i ci∣i≥1}∉ℒ2 .

● Damit kann auch kein Abschluss von Komplement gegeben sein, weil L1∩L2= L1∪ L2.

Q.E.D.

6.4 Push-Down-Automaten (Kellerautomaten)

Charakterisierung kontextfreier Sprachen durch Push-Down-Automaten (PDAs, Kellerautomaten), Erweiterung von NFAs um Push-Down-Speicher (Kellerspeicher)

Definition 6.5:Ein (nichtdeterministischer) Push-Down-Automat (PDA, Kellerautomat) ist ein Tupel

=⟨Q , , , , q0 , Z0 , F ⟩ , wobei- Q , , q0 , F wie bei einem NFA sind, - das Push-Down-Alphabet- Z0∈ das Push-Down-Startsymbol und- :Q×∪{}×℘Q× * die Transitionsfunktion ist.Dabei bezeichnet ℘ f Q×* die Menge aller endlichen Teilmengen von Q×* (f = finite)

Bezeichnung:∈PDA

Modell:Eingabe

Schreibweise:Falls q ' , Z 1...Z k ∈q ,a ,Z :q a Z q ' Z 1... Z k

Intuitive Bedeutung:PUSH -Operation: k≥1 , Z wird durch Z1 ...Zk ersetztPOP -Operation: k=0 , Z wird gelöschtSoll Z enthalten bleiben, muss Z wieder in den Push-Down-Speicher geschrieben werden.

Beispiel:PDA zu L={an bn∣n≥1}:=⟨Q , , , , q0 , Z 0 ,F ⟩ mit Q={q0 , q f }={a ,b}={Z 0 , a }F={q f } :q0 a Z0q0 a Z0 "erster a -Schritt"q0 a a q0 aa "speichere a s im Push-Down-Speicher"q0 b aq1 "erster b -Schritt"q1 b aq1 "lösche a für jedes b "q1 Z 0 q f Endzustand

endl.Kontrolle

Definition 6.6 (Einzelschrittrelation, erkannte Sprache):Ein Tripel q ,w ,∈Q× *× * heißt Konfiguration von A.Die Einzelschrittrelation ├⊆Q×*× *×Q×*×* wird festgelegt durch:

● a-Schritt: q ,aw ,Z ├q ' ,w , Z1 ...Z k falls q a Z → q' Z1 ... Zk

● ε-Schritt (autonome Transition): q ,w , Z ├ q ' ,w ,Z 1 ...Z k falls q∈Zq ' Z1 ...Z k

Anfangskonfiguration: (q0, w, Z0)sinnvolle Endkonfigurationen:

● Endzustand q , , mit q∈FL , F ={w∈*∣∃q∈F ,∃∈* :q0 , w ,Z 0├ *q , ,}

● leerer Speicher q , , mit q beliebigL ,={w∈*∣∃q∈Q :q0 ,w ,Z 0├ *q , ,}

● beides: q , , mit q∈FL , , F ={w∈*∣∃q∈F : q0 ,w ,Z 0├ *q , ,}

→ 3 Sprachklassen: ℒ ,PDA ,F ,ℒ ,PDA , ,ℒ ,PDA , ,F

Satz 6.4:ℒ ,PDA , F =

ℒ , PDA ,=⊆

ℒ , PDA, , F

Beweis durch Ringschluss.

Konfigurationsfolgen:q0 , aabb , Z 0├q0 , abb , aZ0├ q0 , bb , aaZ0├ q1 ,b , aZ 0├q1 , , Z0├ q f , ,q0 , b... , Z0 Sackgasse

q0 , aab , Z 0├3

q1 , , aZ 0 Sackgasse

PDA:=⟨Q , , , , q0 , Z0 , F ⟩ :Q×∪{}×℘ f Q×*

├⊆Q×*×*×Q×*×*

Anfangskonfiguration: q0 ,w , Z0 mit w∈*3 sinnvolle Endkonfigurationen:

● q , , mit q∈F L , F ℒ , PDA, F ● q , , mit q∈Q beliebig L ,ℒ , PDA, ℒ ,PDA ● q , , mit q∈F L , , F ℒ , PDA, , F

Satz 6.5:ℒ 2=ℒ ,PDA

Beweis:"⊆": Zeige: ∀ L∈ℒ2∃∈PDA: L=L , .

Sei G=⟨N , , P , S ⟩∈CFG mit L=L G. Konstruiere den sogenanntenTop-Down-Analyseautomaten für L: =⟨{q }, , N∪

*

, , q , S ,∅⟩∈PDA durch

q , , A:={q ,∣A∈P}"Regelanwendung auf den Kellerspeicher"Nichtdeterminismus!q ,a ,a :={q ,} "Vergleichsschritt zur Abarbeitung von Terminalsymbolen"

A simuliert nichtdeterministische Linksableitungen auf dem Keller. Es gilt: L(G) = L(A, ε).→ formaler Beweis durch Induktion über die Ableitungslänge, hier:

Beispiel:G=⟨{S }, {a ,b}, {S∣aSb}, S ⟩⇒ LG ={an bn∣n≥0}=⟨{q}, {a ,b}, {a ,b ,S }, , q , S ,∅⟩∈PDA mit

q , , S ={q , ,q ,aSb} q ,a , a ={q ,}q ,b , b={q ,}

Konfigurationsfolgen:zu Eingabe aabb :

q ,aabb ,S ├∣q ,aabb ,Sackgasse

q ,aabb , aSb├∣q , abb ,bSackgasse

q , abb ,aSbb├ q ,bb ,Sbb ├∣q ,bb ,bb├ q ,b ,b├ q , ,Erfolg

q ,bb ,aSbbbSackgasse

∣∣∣⇒aabb∈L ,

Beweis:"⊇": Zeige: ∀∈PDA∃G∈CFG : L ,=LG.

Beweisidee:G muss die Ableitsweise von A simulieren. → Kodiere Konfigurationen von A in den

Nonterminalen von G:[q ,Z , q ' ]∈Q××Q mit Bedeutung:

Ist A im Zustand q mit Z auf der Kellerspitze, so wird die „Speicherposition von Z“ im Zustand q' gelöscht, insbesondere gilt:

(∗) [q , Z ,q ' ]⇒g *w ⇔ q ,w ,Z ├ *q ' , ,.

Sei =⟨Q , , , , q0 , Z 0 , F ⟩∈PDA.Definiere G=⟨N , , P ,S ⟩ durch

N :={S }∪Q××Q ∣N∣=1∣Q∣2⋅∣∣∞

P :={S[q0 , Z0 , q]∣q∈Q}"rate Endzustand des Automaten"

∪{[q , Z ,qk ]a [ p ,Z 1 , q1] [q1 , Z 2 , q2]... [qk−1 ,Z k , qk ]

∣q ,a ,Z ∋ p ,Z 1... Z k mit k≥1,a∈∪{},Z , Z i∈ , q , p , qi∈Q}

"push-Schritt"

∪{[q ,Z , p ] a∣ q ,a ,Z ∋ p ,}"pop-Schritt"

Beweise (∗) induktiv über die Ableitungs- bzw. Berechnungslänge:"⇒": [q , Z ,q ' ]⇒

ng w⇒q ,w ,Z ├ *q ' , ,

Induktionsanfang (n = 1):Es kann nur ein „pop“-Schritt vorliegen, d.h. w∈∪{}∧q ' ,∈q , w , Z .

Induktionsschluss:

[q , Z , q ' ]⇒g

n1

w ⇒ [q , Z , q ' ]⇒g a [ p=q0

, Z1 , q1]⇒g

r

1 w1

...[qk−1 , Z k , qk=q '

]⇒g

r

k wk

und w=a w1 ... w k ,

p ,Z 1 ... Z k ∈q , a , Z , r j≤n für alle j , d.h. für die Ableitungen q j−1 , Z j , q j⇒r

j w j ist dieInduktionsvoraussetzung anwendbar, d.h. q j−1 , w j v , Z j├ *q j , v ,

⇒q , w , Z =q , aw1 ... wk , Z ├ p , w1 ... w k , Z 1 ... Z k├ *q1 , w2 ... wk , Z 2 ... Z k

├ *q2 ,w3 ...wk , Z3 ... Z k ├ *... ├ *qk−1 ,w k−1 , Z k ├* qk=q '

, ,

Rückrichtung wird analog induktiv über die Anzahl der Berechnungsschritte bewiesen.Mit (∗) folgt:w∈LG⇔S⇒g *w⇔∃q '∈Q : [q0 , Z 0 , q ' ]⇒g * w⇔(∗)

∃ q '∈Q : q0 ,w , Z 0├ *q ' , ,

⇔w∈L , q.e.d.

Definition 6.7:Ein PDA =⟨Q , , , , q0 , Z 0 , F ⟩ heißt deterministisch, falls für alle q∈Q ,a∈ , Z∈ gilt:

∣q , a ,Z ∣∣q , ,Z ∣≤1Deterministische PDAs akzeptieren per Endzustand, d.h. ℒ , DPDA:=ℒ , DPDA ,F ={L ,F ∣ ist deterministischer PDA }⊃ℒ , DPDA , .ℒ , DPDA bezeichnet die Klasse der deterministisch kontextfreien Sprachen.

bereits gezeigt: {an bn∣n≥1}∈ℒ ,DPDA.

Beispiel:nichtdeterministischer PDA zu Palindromen ohne markierte Mitte

L={a1 ...an an...a1∣ai∈{a ,b},1≤i≤n ,n≥1}=⟨{q0 , q1}, {a , b}, {Z0 , a , b}

, , q0 , Z 0 ,{q1}⟩ mit :

q0 a X q0 aXq0 b X q0 bX }X ∈ "Merke Buchstaben"

q0 a a q1 q0 b b q1 }"Vermute Wortmitte"

q1 a a q1 q1 b bq1 }"Lösche Buchstaben aus Speicher"

q1 Z 0 q1 "Lösche Startsymbol"

Es gilt: L ,=L , ,F =Lnoch zu zeigen: L∈ℒ , PDA

s.o.

∖ℒ , DPDAnoch zu zeigen

ℒ2=ℒ ,PDA ⊃ℒ , DPDAWir zeigen: {w w

∣w∈* }∈ℒ , PDA∖ ℒ , DPDA

ℒ , DPDA: deterministisch kontextfreie Sprachen

Hilfsresultate

Satz 6.6:ℒ 2 ist unter Schnitt mit regulären Sprachen abgeschlossen, ℒ ,DPDA auch.

Beweisidee:paralleles Rechnen von ∈PDA (bzw. ∈DPDA) und '∈DFA zur Erkennung von

L ,F∩L ' . Q.E.D.

Definition 6.8:Zu L⊆* sei Min L :={w∈L∣∀w '∈+∀v∈* : w=vw '⇒v∉L}.

Lemma:L∈ℒ ,DPDA ⇒Min L∈ℒ ,DPDA.

Beweis:Sei =⟨Q , , , , q0 , Z0 ,F ⟩∈DPDA mit L=L ,F . Ändere so ab, dass nachErreichen eines Endzustandes nie wieder ein solcher erreicht wird:- Hinzufügen eines Senkenzustandes q zu Q mit q , a ,Z ={ q ,Z } für alle a∈ , Z∈- Abwandeln von für q∈F:q ,a ,Z ={ q ,Z } für alle a∈ , Z∈.

Wichtig ist der Determinismus des DPDA, da dieser garantiert, dass es pro Wort genau eine Konfigurationsfolge gibt. Der modifizierte Automat erkennt nur die Wörter in L, bei denen kein echtes Präfix auch in L ist, d.h. Min(L). q.e.d.

Korrolar:L:={w w

∣w∈+ }∉ℒ ,DPDA ,={a , b }.

Beweis:Annahme, L∈ℒ , DPDA⇒Min L∈ℒ , DPDA

⇒(6.6) L :=MinL∩〚ab+ ba+ ab+ ba+〛∈ℒ , DPDA

Aber: L={abiba jkein Präfix in L

ab j bai∣i j0} ist nicht kontextfrei, wie man mit dem

Pumping Lemma zeigt q.e.d.

Satz 6.7:ℒ ,DPDA ⊂ℒ , PDA=ℒ 2.

Abschlusseigenschaften:Vereinigung Schnitt Komplement Produkt Stern

ℒ 2 + - - + +

ℒ ,DPDA - - + - -

Anwendung kontextfreier Sprachen:Syntaxbeschreibung von Programmiersprachen und damit die Syntaxanalyse.2 Methoden:

1.) Top-Down-Analyse S→ Top-Down-Analyseautomat ↓

w

2.) Bottom-Up-Analyse SIdee: Schiebe Terminale von der Eingabe auf den Stack

→ Shift-Schritte w- Ersetze rechte Regelseiten durch linke

→ Reduce-Schritt→ Shift-Reduce-ParserFalls es gelingt, das Startsymbol auf dem Stack (Kellerspeicher) zu reduzieren und die Eingabe komplett zu lesen, wird das Wort akzeptiert.→ umgekehrte Rechtsableitung