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.
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Related manuals
Download PDF
advertisement