2000-07-07 - Mitschrift vom 07.07.2000

2000-07-07 - Mitschrift vom 07.07.2000
Skript vom 07.07.2000
Theoretische Informatik
Inhalt
Abschnitt
Seite
(zu 4.7. Reguläre Grammatiken) Satz Z
5. Formale Sprachen und Grammatiken
Def.A
Def.B
5.1. Kontextfreie Sprachen
Ableitungsbäume
Def.C
Satz D
Mehrdeutige Grammatik
Eindeutige Sprache
5.1.1 Backus-Naur-Form
2
2
2
3
3
4
4
4
5
5
6
zu 4.7. (Reguläre Grammatiken)
Satz Z: reguläre Sprachen ⇔ rechtslineare Grammatiken
Beweis: ”⇒ ”: schon geführt
”⇐ ”: Sei G = (N, T, P, σ) eine rechtslineare Grammatik. Wir konstruieren einen nichtdeterministischen endlichen Akzeptor A mit L(G)=L(A). Sei A = (X, S, δ, S0 , F ) definiert durch
S := N ∪ {α}, α 6∈ N.
S0 := {σ}
F =
(
{σ, α} : f alls σ → ∈ P
{α} : f alls σ → ∈ P
B ∈ δ(A, x), f allsA → xB ∈ P
α ∈ δ(A, x), f allsA → x ∈ P
Nun gilt: für n ≥ 1
w = x1 ...xn ∈ L(G) mit xi ∈ X
⇔ es gibt eine Folge von Nonterminals A1 , ..., An−1 mit σ → x1 A1 → x1 x2 A2 → ... →
x1 ...xn−1 An−1 → x1 ...xn = w
⇔ es gibt eine Folge von Zuständen A1 , ..., An−1 mit A1 ∈ δ(σ, x1 ), A2 ∈ δ(A1 , x2 ), ..., α ∈
δ(An−1 , xn ) ⇔ w ∈ L(A)
5. Formale Sprachen und Grammatiken
Typisierung von Grammatiken und Sprachen
Allgemeine Aussagen über Grammatien und Darstellungen
Def. A: (Typisierung von Grammatiken)
Sei G = (N, T, P, σ) eine Grammatik
a.) G heißt vom Typ 3 oder rechtslinear oder regulär, wenn für alle (α, β) ∈ P gilt:
˙
α ∈ N, β ∈ T ∗ ({}
∪ N)
b.) G heißt vom Typ 2 oder kontextfrei, wenn für alle (α, β) ∈ P gilt: α ∈ N
c.) G heißt vom Typ 1 oder kontextsensitiv, wenn für alle (α, β) ∈ P gilt:
α = α1 Bα2 , β = α1 βα2 für ein B ∈ N und α1 , α2 , β ∈ (N ∪ T )∗
d.) G heißt vom Typ σ, wenn G eine Grammatik ist.
e.) G heißt vom Erweiterungstyp, wenn für alle (α, β) ∈ P gilt: |α| ≤ |β|
f.) G heißt lineare Grammatik, wenn G kontextfrei ist und für alle (α, β) ∈ P gilt:
β ∈ (T ∗ Ṅ Ṫ ∗ ∪ T ∗ )
Def.B:
a.) Eine Sprache L ⊆ T ∗ heißt Sprache vom Typ i, i=0,1,2,3, wenn es eine Grammatik
G gibt
b.)
CF:={ L ⊆ T ∗ — L ist vom Typ 2 }
CS:={ L ⊆ T ∗ — L ist vom Typ 1 }
Ch-0:={ L ⊆ T ∗ — L ist vom Typ 0 }
Bemerkung:
Offenbar: Lin:={ L ⊆ T ∗ — zu L gibt es eine lineare Grammatik G mit L=L(G)}
Reg ⊂ CF ⊆ CS ⊆ Ch − 0
und Reg ⊂ Lin ⊆ CF
und CS = Erweiterungstyp
Ziele: Zeige jeweils ⊆ ungleich und charakterisiere die jeweiligen Sprachklasse.
Zwei Grammatiken G, G’ heißen äquivalent, wenn L(G)=L(G’)
5.1. Kontextfreie Sprachen
Beispiel 1.):
Sei G = (N, T, P, σ) mit T = {a, b}, N = {a}, P = {σ → aσb, σ → }
G ist kontextfrei (sogar linear). L(G) = {an bn |n ≥ 0}. L(G) 6∈ Reg ⇒ Reg 6= CF
Beispiel 2.):
Sei G0 = (N 0 , T 0 , P 0 , σ 0 ) mit T 0 = {v, c, +, ·}, N 0 = {E, T, F } σ 0 = E,
P 0 = {E → E + E, E → T, T → T · T, T → F, F → (E), F → v, F → c }
E : expression
T : term
F : factor
L(G’)={ arithmetische Ausdrücke mit Operatoren +,- und Operanden v,c }
Bsp.: E → E + E → E + E + E → E + T · T + E → E + T · T · T + E → E + F · F · F + E →∗
v+v·c·v+v
Ableitungsbäume:
Graphische Darstellung von Ableitungen bei kontextfreien Grammatiken durch Bäume
(siehe Bild nächste Seite)
Def.C:
Sei G = (N, T, P, σ) eine kontextfreie Grammatik. Ein Ableitungsbaum (Syntaxbaum) zu G
ist ein geordneter markierter Baum B = (V, E, v0 ) mit:
· Jeder Knoten v ∈ V ist mit einem Sysmbol aus N ∪ T ∪ {} markiert.
Die Wurzel v0 ist mit σ markiert
· Jeder innere Knoten ist mit einem Nichtterminalsymbol markiert
· Jedes Blatt ist mit einem Symbol aus T ∪ {} markiert
· Ist v ∈ V ein innerer Knoten mit den Söhnen v1 , ..., vk in dieser Reihenfolge, ist A die
Markierung von v und Ai die Markierung von vi , so ist A → A1 ...Ak ∈ P
· Ein mit markiertes Blatt hat keinen Bruder
Satz D:
Sei G = (N, T, P, σ) eine kontextfreie Grammatik. Dann gilt für jedes w ∈ T ∗ , w =
x1 ...xn , σ →∗ w ⇔ Es gibt einen Ableitungsbaum zu G, dessen Blätter von links nach
rechts gelesen mit x1 ...xn markiert sind.
Beweis:
”⇐ ”: durch Induktion über die Länge der Ableitung
”⇒ ”: durch Induktion über die Höhe des Baumes
Verschiedene Ableitungen können durch denselben Ableitungsbaum dargestellt werden.
Beispiel:
(1) E → E + E → E + T → T + T → T + F → F + F → F + v → v + v
(2) E → E + E → T + E → T + T → F + E → v + E → v + T → v + F → v + v
Linksableitung = jeweils linkestes Nichtterminalsymbol wird ersetzt
Fazit : Jedem Ableitungsbaum läst sich eine Linksableitung zuordnen.
D.h.: für jede kontextfreie Grammatik G gilt: v ∈ L(G) ⇔ Es gibt eine Linksableitung von w
bezügl. G
Andererseits kann es zu einer Grammatik G und einem Wort w ∈ L(G) mehrere strukturell
unterschiedliche Ableitungsbäume geben. Eine solche Grammatik ist mehrdeutig.
Beispiel: v + v · c · v + v
Mehrdeutige Grammatik:
Es gibt ein Wort w und strukturell unterschiedliche Ableitungsbäume von w bezüglich G
(sonst eindeutig)
Eindeutige Sprache:
Es gibt eine eindeutige Grammatik, die die Sprache erzeugt (sonst inhärend mehrdeutig)
Beispiel:
1) Eindeutige Grammatik für arithmetische Ausdrücke: N, T, σ wie Beispiel 2.)oben
P 0 = {E → E + T, E → T, T · E, F → (E), F → v, f → c}
2) inhärent mehrdeutige Sprache:
L = {an bn cm |n, m ≥ 0} ∪ {an bn cm |n, m ≥ 0}
Genau die Wörter ai bi ci haben strukturell verschiedene Ableitungsbäume.
Der Beweis ist aufwendig. [ siehe Wegener: Theoretische Informatik ]
5.1.1. Backus-Naur-Form:
Die Backus-Naur-Form ist eine Notation zur kompakten Beschreibung kontextfreier Grammatiken.[J.Backus, P. Naur]
Kürzungsregeln:
Ableitungsregel
A → β1 , A → β2 , ..., A → βn
A → αγ , A → αβγ
A → αγ, A → αBγ, B → β, B → βB
Backus-Naur-Form
A → β1 |...|βn
A → α[β]γ
A → α{β}γ
Aussage: Durch Grammatiken in Backus-Naur-Form können genau die kontextfreien Grammatiken beschrieben werden.
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement