Parsebäume

Werbung
Theorie für MI
Parsebäume
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
Ein P arsebaum ist ein B aum , dessen K noten m it Sym bolen
aus V ∪ Σ beschriftet sind, m it:
R eguläre A usdrücke
P um ping Lem m a
K ontextfreie Sprachen
P ushdow n-A utom aten
I
innere K noten sind m it A ∈ V beschriftet
I
B lätter sind m it A ∈ V oder a ∈ Σ beschriftet.
I
ist ein K noten m it A ∈ V beschriftet,
und seine K inder m it X1 ,...,Xk ,
dann ist A → X1 ...Xk in P.
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
D as Ergebnis des P arsebaum es ist der String der Sym bole an den
B lättern, von links nach rechts gelesen.
Parsebäume sind eine kompakte Darstellung, wie ein String aus der Grammatik
hergeleitet wird, die von unwesentlichen Details wie der Reihenfolge der
Ableitungsschritte abstrahiert.
Betrachten Sie als Beispiel die Grammatik aus der letzten Vorlesung für die
Sprache Lkl . Ein Parsebaum ist z.B.der folgende, mit der Wurzel K und dem
Ergebnis <<K >><>.
K
K
K
< K > <
< K
>
>
Z ur Vereinfachung betrachten wir in diesem K apitel nur Grammatiken, die
Sprachen ohne das Wort erzeugen.
Theorie für MI
Linksableitung
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
`
Für γ1 , γ2 ∈ (V ∪ Σ)∗ gilt γ1 ⇒G γ2 , falls:
R eguläre A usdrücke
P um ping Lem m a
I
I
K ontextfreie Sprachen
es gibt eine P roduktion A → β in P,
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
und W örter δ1 ∈ Σ∗ und δ2 ∈ (V ∪ Σ)∗ m it
γ1 = δ1 Aδ2 und γ2 = δ1 βδ2 .
`
`
`
Eine Folge γ1 ⇒G γ2 ⇒G ... ⇒G γk heißt
Linksableitung von γk aus γ1
` ∗
`
⇒G ist die reflexive, transitive H ülle von ⇒G .
Bei einer Linksableitung ist die Wahlfreiheit gegenüber einer allgemeinen
Ableitung eingeschränkt: es muss stets die erste in einem String vorkommende
Variable ersetzt werden. Als einziger Freiheitsgrad bleibt die Auswahl der
verwendeten Produktion.
Eine Linksableitung in der obigen Beispielgrammatik ist die folgende:
`
`
`
`
K ⇒ KK ⇒ <K >K ⇒ <<>>K ⇒ <<>><>
Äquivalenz
Theorie für MI
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
R eguläre A usdrücke
P um ping Lem m a
Für eine kontextfreie Grammatik G = (V , Σ, P, S)
und Wort w ∈ Σ∗ sind äquivalent:
I
w ∈ L(G ), also S ⇒∗G w
` ∗
⇒G
I
S
I
Es gibt einen P arsebaum mit Wurzel S und Ergebnis w .
K ontextfreie Sprachen
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
w
Aus der zweiten Bedingung folgt trivialerweise die Erste, da eine Linksableitung
ein Spezialfall einer Ableitung ist.
Wir zeigen auf der nächsten Folie, dass die erste Bedingugng die dritte
impliziert, und aus der dritten die zweite folgt. Damit ist die Äquivalenz
bewiesen.
Beide Implikationen müssen in etwas allgemeinerer Form bewiesen werden, wie
in den Lemmas auf der nächsten Folie ausgeführt.
Beweis der Äquivalenz
Theorie für MI
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
Lem m a
R eguläre A usdrücke
Für A ∈ V und β ∈ (V ∪ Σ)∗ gilt:
falls A ⇒∗G β gilt, dann gibt es einen Parsebaum
mit Wurzel A und Ergebnis β
P um ping Lem m a
K ontextfreie Sprachen
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
Lem m a
Für A ∈ V und w ∈ Σ∗ gilt:
falls es einen Parsebaum mit Wurzel A und Ergebnis w gibt,
` ∗
dann gilt A ⇒G w .
Beweis des ersten Lemmas durch Induktion nach der Länge der Ableitung von
β aus A.
Induktionsanfang: die Länge ist 0, also β = A. Der Baum aus einem Knoten
mit Beschriftung A ist ein Parsebaum mit Wurzel A und Ergebnis A:
Induktionsschritt: die Ableitung hat einen letzten Schritt, also A ⇒∗ γ ⇒ β.
Nach Induktionsvoraussetzung gibt es einen Parsebaum T mit Wurzel A und
Ergebnis γ. Ferner ist γ = δ1 Bδ2 und β = δ1 ηδ2 für eine Produktion B → η in
G . Der benötigte Parsebaum entsteht, indem in T unter das Blatt mit
Beschriftung B neue Blätter mit den Symbolen aus η gehängt werden.
Beweis des zweiten Lemmas durch Induktion nach der Höhe des Parsebaumes.
Induktionsanfang: der Baum hat die Höhe 1, also sind die Blätter mit
Symbolen in w direkt unter der Wurzel. Dann ist aber A → W eine Produktion
`
in G , und somit A ⇒ w .
Induktionsschritt: der Baum hat die Höhe h + 1. Seien x1 , . . . , xk die
Beschriftungen der Knoten direkt unter der Wurzel, und für i = 1 . . . k sei wi
das Ergebnis des Teilbaums mit Wurzel xi , so dass w = w1 . . . wk . Jeder dieser
` ∗
Teilbäume hat Höhe ≤ h, also gilt nach Induktionshypothese xi ⇒ wi . Diese
Linksableitungen können zu einer Linksableitung von w aus A kombiniert
werden:
` ∗
` ∗
` ∗
`
` ∗
A ⇒ x 1 x 2 . . . x k ⇒ w1 x 1 . . . x k ⇒ w1 w 2 . . . x k ⇒ . . . ⇒ w1 w2 . . . w k
Motivation
Theorie für MI
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
Für G = (V , Σ, P, S) und A ∈ V sei
R eguläre A usdrücke
P um ping Lem m a
L(G , A) := { w ∈ Σ∗ ; A ⇒∗G w }
K ontextfreie Sprachen
P ushdow n-A utom aten
Kontextfreie Grammatik =
^ wechselseitig rekursive Definition
der Sprachen L(G , A)
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
Verarbeitung rekursiver Funktionen mit Stack.
Erweiterung endlicher A utomaten um einen Stack.
Obwohl Typ 3-Grammatiken ja auch rekursive Definitionen sind, können
reguläre Sprachen von einfachen endlichen Automaten ohne Stack erkannt
werden. Das liegt daran, dass die Variablen, also der rekursive Aufruf, hier stets
am Ende des Definitionsrumpfes steht. Es handelt sich also um endrekursive
Definitionen, und Endrekursionen können bekantlich ohne Stack abgearbeitet
werden.
Theorie für MI
Definition
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
Ein P ushdow n-A utom at (P D A ) A m it A lphabet Σ besteht aus:
R eguläre A usdrücke
P um ping Lem m a
I
Z ustände Q
K ontextfreie Sprachen
(endlich viele!)
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
I
Stack-A lphabet Γ
I
A nfangszustand q0 ∈ Q
I
A nfangssym bolZ0 ∈ Γ
I
Ü bergangsfunktion δ : Q × (Σ ∪ {}) × Γ → 2Q×Γ
Kurzschreibweise:
∗
A = (Q, Σ, Γ, δ, q0 , Z0 )
Ein PDA ist also ein -NEA mit einem zusätzlichen Stack. Die
Übergangsfunktion liefert zu jedem Zustand, gelesenem Eingabesymbol (oder
) und dem obersten Stacksymbol eine Menge von Paaren, jeweils bestehend
aus dem neuen Zustand und einem String aus Stacksymbolen, die das gesehene
oberste Stacksymbol ersetzen.
Der folgende PDA dient als Beispiel auf den nächsten Folien. Er hat zwei
Zustände {q0 , q1 }, von denen q0 der Anfangszustand ist, Alphabet {0, 1}, und
ein zusätzliches Stacksymbol Z , das auch Anfangssymbol ist. Die
Übergangsfunktion ist durch die folgenden beiden Tabellen definiert, in denen
die Zeilen für den Input, die Spalten für das Stacksymbol stehen:
q0
0
1
q1
0
1
Z
{(q0 , 0Z )}
{(q0 , 1Z )}
{(q1 , Z )}
Z
∅
∅
{(q1 , )}
0
{(q0 , 00)}
{(q0 , 10)}
{(q1 , 0)}
0
{(q1 , )}
∅
∅
1
{(q0 , 01)}
{(q0 , 11)}
{(q1 , 1)}
1
∅
{(q1 , )}
∅
Theorie für MI
Konfigurationen
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
R eguläre A usdrücke
P um ping Lem m a
Eine Konfiguration eines PDA A = (Q, Σ, Γ, δ, q0 , Z0 )
ist ein Tripel (q, w , γ) ∈ Q × Σ∗ × Γ ∗ , bestehend aus:
I
dem Z ustand q ∈ Q
I
dem zu lesenden Eingabew ort w ∈ Σ∗
I
dem Stack-Inhalt γ ∈ Γ ∗
K ontextfreie Sprachen
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
Eine Konfiguration ist eine Momentaufnahme der Berechnung eines PDA, in
dem sich gemerkt wird, in welchem Zustand der Automat ist, welchen Teil der
Eingabe er noch zu verarbeiten hat und was auf dem Stack steht.
Durch eine Konfiguration ist der weitere Verlauf der möglichen Berechnungen
eindeutig bestimmt.
Für nichtdeterministische endliche Automaten war ein solcher Begriff nicht
nötig, da die weiteren Berechnungen nur vom Zustand abhängen.
Theorie für MI
Übergangsrelation
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
R eguläre A usdrücke
P um ping Lem m a
Die Übergangsrelation `A zwischen Konfigurationen
eines PDA A ist definiert durch:
I
(q, aw , X γ) `A (p, w , βγ), falls (p, β) ∈ δ(q, a, X ) ist.
I
(q, w , X γ) `A (p, w , βγ), falls (p, β) ∈ δ(q, , X ) ist.
K ontextfreie Sprachen
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
`∗A ist die reflexive, transitive H ülle von `A .
Die folgende Folge von Konfigurationen ist eine mögliche Berechnung des
Beispiel-PDA bei Eingabe 0110 von oben:
(q0 , 0110, Z ) ` (q0 , 110, 0Z ) ` (q0 , 10, 10Z ) ` (q1 , 10, 10Z )
` (q1 , 0, 0Z ) ` (q1 , , Z ) ` (q1 , , )
Theorie für MI
Akzeptierte Sprache
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
R eguläre A usdrücke
P um ping Lem m a
Der PDA A akzeptiert ein Wort w , wenn er ausgehend von
(q0 , w , Z0 ) eine Konfiguration erreicht, in der der Stack leer ist:
D efinition
K ontextfreie Sprachen
P ushdow n-A utom aten
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
Die vom PDA A = (Q, Σ, Γ, δ, q0 , Z0 ) akzeptierte Sprache ist:
L(A) :=
w ∈ Σ∗ ; (q0 , w , Z0 ) `∗A (p, , ) für ein p ∈ Q
Für den Beispiel-PDA oben ist die akzeptierte Sprache ww R ; w ∈ {0, 1} .
Um das zu zeigen, sehen wir genauer an, wie der PDA funktioniert. Im Zustand
q0 kann der PDA jederzeit entweder das gelesene Input-Symbol auf den Stack
pushen, oder ohne einen Input zu lesen in den Zustand q1 wechseln. Im
Zustand q1 kann ein Symbol vom Stack gepopt werden, wenn es mit dem
gelesenen Inputsymbol übereinstimmt. Ist nur noch das Startsymbol auf dem
Stack, kann dieses auch entfernt werden, dann wird akzeptiert sofern der input
aufgebraucht war.
Das heißt, der PDA errät nichtdeterministisch die Mitte des Strings, schiebt die
vordere Hälfte auf den Stack und gleicht sie dann mit der hinteren Hälfte ab.
Somit akzeptiert er genau die genannte Sprache.
Theorie für MI
PDA und kontextfreie Sprachen
E ndliche A utom aten
Satz
Ä quivalenz der
A utom atenm odelle
Die von PDA erkannten Sprachen sind genau die kontextfreien
Sprachen.
R eguläre A usdrücke
P um ping Lem m a
K ontextfreie Sprachen
P ushdow n-A utom aten
Dazu zeigen wir zwei Teile:
Lem m a
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
Für jede Typ 2-Gram m atik G gibt es einen PDA AG m it
L(AG ) = L(G ).
Lem m a
Für jeden PDA A gibt es eine Typ 2-Gram m atik GA m it
L(GA ) = L(A).
Die Äquivalenzen werden wir nicht formal beweisen. Das erste Lemma ist relativ
einfach zu beweisen, indem die nach der Konstruktion auf der nächsten Folie
stehende Behauptung durch Induktion nach der Länge einer Linksableitung
gezeigt wird. Die Konstruktion wird an einem Beispiel verdeutlicht.
So wie der PDA aus dieser Konstruktion funktionieren im wesentlichen auch in
der Praxis Parser für kontextfreie Sprachen. Es ist dabei nur dafür zu sorgen,
dass der Ablauf des PDA deterministisch gemacht werden kann. Dafür gibt es
zahlreiche Methoden, die für verschiedene Teilklassen der kontextfreien
Grammatiken funktionieren.
Die umgekehrte Richtung ist schwieriger, aber auch für die Praxis weniger
bedeutsam, daher zeigen wir sie hier nicht.
Theorie für MI
Von der Typ 2-Grammatik zum PDA
E ndliche A utom aten
Ä quivalenz der
A utom atenm odelle
Aus G = (V , Σ, P, S) definiere den PDA AG wie folgt:
R eguläre A usdrücke
Z ustände Q = {q}
P um ping Lem m a
I
Stack-Alphabet Γ = V ∪ Σ
P ushdow n-A utom aten
I
Anfangszustand q, Anfangssym bol S.
I
Für jedes a ∈ Σ ist (q, ) ∈ δ(q, a, a)
I
Für jede Produktion A → β ist (q, β) ∈ δ(q, , A)
I
K ontextfreie Sprachen
` ∗
Z u zeigen: falls
` ∗
P arsebäum e und
Linksableitungen
D efinition von
P ushdow n-A utom aten
Ä quivalenz von kfG
und P D A
für ein u m it w = uv ,
S ⇒G uγ ⇒G w
(q, w , S) `∗AG (q, v , γ)
dann gilt:
Betrachte als Beispiel die bekannte Grammatik mit den Produktionen
K → KK , K → <K > und K → <> und Startsymbol K . Der konstruierte PDA
hat nur einen Zustand q und das Startsymbol K , sowie die Übergänge:
q
<
>
K
∅
∅
{(q, KK ), (q, <K >), (q, <>)}
<
{(q, )}
∅
∅
>
∅
{(q, )}
∅
E ine Linksableitung in dieser Grammatik ist
`
`
`
`
K ⇒ KK ⇒ <K >K ⇒ <<>>K ⇒ <<>><>
Dieser entspricht der folgende Ablauf des Automaten, wobei in den
K onfigurationen nur der R estinput und Stack angegeben sind:
`
`
`
`
`
`∗
`
`∗
<<>><>
<<>><>
<<>><>
<>><>
<>><>
>><>
<>
<>
K
KK
<K >K
K >K
<>>K
>>K
K
<>
Herunterladen