WS07/08 Automaten und Formale Sprachen 8. Vorlesung

Ähnliche Dokumente
Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S)

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz.

Theoretische Informatik Mitschrift

Formale Sprachen. Script, Kapitel 4. Grammatiken

Grundbegriffe. Grammatiken

Endliche Sprachen. Folgerung: Alle endlichen Sprachen sind regulär. Beweis: Sei L={w 1,,w n } Σ*. Dann ist w 1 +L+w n ein regulärer Ausdruck für

Theoretische Grundlagen des Software Engineering

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive

Grammatiken. Einführung

16. Die Chomsky-Hierarchie

Teil V. Weiterführende Themen, Teil 1: Kontextsensitive Sprachen und die Chomsky-Hierarchie

Rekursiv aufzählbare Sprachen

Grundlagen der Theoretischen Informatik

(Prüfungs-)Aufgaben zu formale Sprachen

Grammatiken und die Chomsky-Hierarchie

Theoretische Informatik 2

Teil 4: Grammatiken und Syntaxanalyse. (Kapitel T5-T7)

Übungsaufgaben zu Formalen Sprachen und Automaten

Theoretische Grundlagen der Informatik

Theoretische Informatik I (Grundzüge der Informatik I)

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Theoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009

Zusammenfassung. 1 Wir betrachten die folgende Signatur F = {+,,, 0, 1} sodass. 3 Wir betrachten die Gleichungen E. 4 Dann gilt E 1 + x 1

Berechenbarkeit und Komplexität

Theoretische Informatik für Wirtschaftsinformatik und Lehramt

Theorie der Informatik

Theoretische Informatik I

Was bisher geschah: Formale Sprachen

Die Chomsky Hierarchie

Grammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht

Formale Sprachen. Formale Grundlagen (WIN) 2008S, F. Binder. Vorlesung im 2008S

FORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie

Definition (Reguläre Ausdrücke) Sei Σ ein Alphabet, dann gilt: (ii) ε ist ein regulärer Ausdruck über Σ.

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

I.5. Kontextfreie Sprachen

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Grundlagen der Theoretischen Informatik

Motivation natürliche Sprachen

Einführung in die Theoretische Informatik

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

6 Kontextfreie Grammatiken

liefern eine nicht maschinenbasierte Charakterisierung der regulären

Kontextfreie Grammatiken

Tutoraufgabe 1 (ɛ-produktionen):

Vorlesung Theoretische Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik

Einführung in die Theoretische Informatik

Einführung in die Computerlinguistik Formale Grammatiken rechtslineare und kontextfreie Grammatiken Kellerautomaten

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Alphabet, formale Sprache

Definition Formale Sprache Eine formale Sprache ist eine (Teil-)Menge A Σ* von Worten über einem Alphabet Σ.

Typ-3-Sprachen. Das Pumping-Lemma

Beschreibungskomplexität von Grammatiken Definitionen

Grundbegriffe der Informatik

Theoretische Grundlagen der Informatik

Ein Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).

Grundlagen der Theoretischen Informatik

Suche nach einem solchen Kreis. Endlichkeitstest. Vereinigung und Durchschnitt. Abschlusseigenschaften

Automatentheorie und formale Sprachen rechtslineare Grammatiken

Technische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 2. Mai HA-Lösung. TA-Lösung

1 Σ endliches Terminalalphabet, 2 V endliche Menge von Variablen (mit V Σ = ), 3 P (V (Σ ΣV )) {(S, ε)} endliche Menge von Regeln,

äußere Klammern können entfallen, ebenso solche, die wegen Assoziativität von + und Konkatenation nicht notwendig sind:

Grundbegriffe der Informatik

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN

VU Software Paradigmen / SS 2014

Sprachen und Automaten. Tino Hempel

Grundlagen der Informatik II

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Automaten und formale Sprachen. Lösungen zu den Übungsblättern

Informatik I WS 07/08 Tutorium 24

Einführung in die Theoretische Informatik

2.4 Kontextsensitive und Typ 0-Sprachen

Einführung in die Theoretische Informatik

Formale Methoden 1. Gerhard Jäger 16. Januar Uni Bielefeld, WS 2007/2008 1/19

7. Formale Sprachen und Grammatiken

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

8. Turingmaschinen und kontextsensitive Sprachen

Theoretische Informatik Testvorbereitung Moritz Resl

Einführung in die Theoretische Informatik

ist ein regulärer Ausdruck.

2.11 Kontextfreie Grammatiken und Parsebäume

11.1 Kontextsensitive und allgemeine Grammatiken

Wortproblem für kontextfreie Grammatiken

Speicherplatz-Komplexität 1 / 30

MAA = MAB + B AA = B CA + CAA BA A Nun sehen wir mit Proposition 10.7 aus dem Skript, dass A M AB gelten muss.

Mathematische Grundlagen der Computerlinguistik formale Sprachen

Universität Karlsruhe Institut für Theoretische Informatik. Klausur: Informatik III

Theoretische Informatik. Alphabete, Worte, Sprachen

Formale Methoden 1. Gerhard Jäger 23. Januar Uni Bielefeld, WS 2007/2008 1/18

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Programmiersprachen und Übersetzer

Fachseminar Compilerbau

Formale Sprachen und Grammatiken

Klausuraufgaben. 1. Wir betrachten die folgende Sprache über dem Alphabet {a, b}

Transkript:

WS07/08 Automaten und Formale Sprachen 8. Vorlesung PD Dr. Niggl (für M.Dietzfelbinger) 4. Dezember 2007 Stichworte (Letzte Vorl.) Konstruktion des Minimalautomaten: 3 Teile Entferne unerreichbare Zustände Finde Paare (nicht) äquivalenter Zustände (via Markierungsalgorithmus) Bilde Äquivalenzklassenautomaten Grammatiken erzeugen/spezifizieren Sprachen Allgemeine Grammatiken: Chomsky-0 oder Typ-0 FGKTuEA, TUIlmenau Automaten undformalesprachen WS07/08 04.12.2007 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 1 Erinnerung: 3.1 Grammatiken Eine Grammatik G besteht aus: V : Σ: S: P: Alphabet, Menge der Variablen Alphabet, Menge der Terminalzeichen Startsymbol S V (auch: Startvariable ) endliche Menge von Produktionen (auch: Ableitungsregeln ) l r (formal: Paar (l,r)) wobei l (V Σ) + und r (V Σ). Beispiel (ausführlich besprochen): V ={S,/c,$,A, B,C}, Σ={a}, Startsymbol S und P besteht aus den folgenden Produktionen: (1) S /caa$ (2) Aaa aaaa (3) Aa$ aab$ (4) ab Ba (5) /cb /ca (6) Aa$ aac (7) ac Ca (8) /cc ε FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 2 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 3

Grammatik bestimmt einen Kalkül...... zur Erzeugung von Wörten über Σ. Sei G =(V,Σ,S,P) Grammatik. 1. Wir schreiben ulv urv, falls u, v (V Σ) und l r eine Produktion in P ist. lies: urv ist in einem (1) Schritt aus ulv ableitbar. Beispiele: /caab$ (4) /caa$ (3) /caaa$ (2) /caba$ /caab$ /caaaa$. Grammatik bestimmt einen Kalkül... 2. Wir schreiben α α, falls Wörter α 0 =α,α 1,..., α t =α existieren, so dass gilt: α 0 α 1, α 1 α 2,..., α t 1 α t lies: α ist aus α (in endlich vielen Schritten) ableitbar. Bem.: Beispiel: ist der reflexive und transitive Abschluß von. /caa$ (6) /caac (7) /caca (7) /ccaa Also gilt: /caa$ /ccaa FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 4 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 5 Sinnvolle Zwischenschritte und Resultate 3. Ein Wort α (V Σ) heißt Satzform von G, falls S α. Eine Folge S =α 0 α 1 α t =α heißt Ableitung (auch: Herleitung) von α. Beispiel: S (1) /caa$ (6) /caac (7) /caca (7) /ccaa 4. L(G) := {w Σ S w} heißt die von G erzeugte Sprache. Chomsky-0-Grammatiken sind Grammatiken, wie sie hier beschrieben wurden. Def.: L 0 bezeichne die Klasse aller Sprachen L(G), wobei G eine (Chomsky-0-)Grammatik ist. In Berechenbarkeit und Komplexitätstheorie : L L 0 L ist durch einen beliebigen Aufzählungsoder Erzeugungskalkül beschreibbar ( rekursiv aufzählbar ). Im Beispiel: L(G) = {a 2i i 1}. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 6 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 7

Chomsky-1-Grammatiken... oder kontextsensitive Grammatiken Def.: Eine Produktion l r heißtkontextsensitiv, falls l = α A γ und r = α β γ mit β 1, wobei A V, α, β, γ (V Σ). Man darf Variable A im Kontext α..γ durch β ε ersetzen. Entscheidend: l r ist nicht-verkürzend, d.h. r l. Zulässig: Kontext ist leer, d.h α, γ=ε. Beispiele: /cb /ca, aaa$ aaba$ Nicht kontextsensitiv: Aa$ aab$, /cc ε Chomsky-1-Grammatiken Def.: Eine Grammatik G=(V,Σ,S,P) heißt kontextsensitiv oder vom Typ 1, wenn entweder alle Produktionen von G kontextsensitiv sind oder alle Produktionen von G kontextsensitiv sind, außer S ε, undindiesem FallS nieinder rechten Seiteeiner Produktion vorkommt. Kontextsensitive Grammatiken heißen auch Chomsky-1-Grammatiken. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 8 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 9 Chomsky-1-Sprachen Def.: Eine Sprache L heißt kontextsensitiv oder vom Typ 1, falls L = L(G) für eine kontextsensitive Grammatik G gilt. Bezeichne L 1 die Klasse aller Typ-1-Sprachen. Klar: L 1 L 0 Beobachtung: Kontextsensitive Grammatiken sind technisch nicht leicht zu handhaben. Technisches Hilfsmittel: Monotone Grammatiken (Wortlängen-)Monotone Grammatiken Def.: Eine Produktion l r heißt (wortlängen-) monoton (auch: nicht-verkürzend), falls r l gilt. Def.: Eine GrammatikG =(V,Σ,S,P) heißtmonoton, wenn entweder alle Produktionen von G monoton sind oder alle Produktionen von G monoton sind, außer S ε, und in diesem Fall S nie in der rechten Seite einer Produktion vorkommt. Klar: Jede kontextsensitive Produktion ist monoton. Also: G kontextsensitiv = G monoton FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 10 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 11

Beispiel: G = (V,Σ,S,P) mit V = {S, A,C}, Σ = {a,b,c} und Produktionen: (1) S ε (2) S abc (3) S aabc (4) A aacb (5) A acb (6) Cb bc (7) Cc cc Alle Produktionen sind monoton, außer S ε, aber S kommt in keiner rechten Seite einer Produktion vor. Also: G ist eine monotone Grammatik. S ε S abc Beispiel-Ableitungen: S aabc aacbbc aabcbc aabbcc aabbcc S aabc aaacbbc aaabcbc aaabbcc aaabbcc aaacbbbcc aaabcbbcc aaabbcbcc aaabbbccc aaabbbccc Man kann beweisen (Übung!): L(G)={a n b n c n n N} Frage: Ist diese Sprache kontextsensitiv? FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 12 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 13 Monotone Grammatiken Die Produktion Cb bc ist monoton, aber nicht kontextsensitiv. Behauptung: G monoton = MankannG ineine kontextsensitive Grammatik G mit L(G)=L(G ) umbauen. Idee: Baue jede monotone Produktion einzeln (2 Schritte) in eine Folge von kontextsensitiven Produktionen um. Fazit: Monotone Grammatiken erzeugen genau die Sprachen in L 1. Also: {a n b n c n n N} ist eine kontextsensitive Sprache. Schritt 1: Separierung Für jedes a Σ wähle eine neue Variable, etwa D a. Ersetze in P jedes Vorkommen von a durch D a, und füge die Produktionen D a a hinzu, für jedes a Σ. Effekt: Nur Produktionen der Form A a können Terminalzeichen erzeugen, und eventuell S ε. Beispiel: V = {S, A,C,D a,d b,d c } mit Produktionen: S ε CD b D b C S D a D b D c CD c D c D c S D a AD b D c D a a A D a ACD b D b b A D a CD b D c c FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 14 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 15

Schritt 2: Einzelschritte Beispiel (Verallgemeinerung offensichtlich): Betrachte nun eine Produktion ( ) X 1 X 2 X 3 Y 1 Y 2 Y 3 Y 4 Y 5 (nur Variable) (Allgemein: X 1...X s Y 1...Y t mit 2 s t, nur Variable) Klar: ( ) ist monoton, aber i.a. nicht kontextsensitiv. Wähle daher neue Variable Z 1,Z 2,Z 3 (kommen sonst nirgends vor) und ersetze ( ) durch folgende neue Produktionen: Schritt 2: Einzelschritte X 1 X 2 X 3 Z 1 X 2 X 3 Z 1 X 2 X 3 Z 1 Z 2 X 3 Z 1 Z 2 X 3 Z 1 Z 2 Z 3 Z 1 Z 2 Z 3 Y 1 Z 2 Z 3 Y 1 Z 2 Z 3 Y 1 Y 2 Z 3 Y 1 Y 2 Z 3 Y 1 Y 2 Y 3 Y 4 Y 5 Übung: Man baue die Grammatik für L={a n b n c n n N} in eine äquivalente kontextsensitive Grammatik um. Also: L ist eine kontextsensitive Sprache. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 16 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 17 Kontextfreie Grammatiken... oder Typ-2-Grammatiken Def.: Eine Produktion l r heißtkontextfrei, falls l=a V, r (V Σ). Kontextfreie Produktion: A β, A V, β (V Σ) Man darf die Variable A durch das Wort β ersetzen (egal wo A steht). Bem.: β darf auch ε sein. Kontextfreie Grammatiken und Sprachen Def.: Eine Grammatik G=(V,Σ,S,P) heißt kontextfrei (auch: vom Typ 2), wenn alle Produktionen von G kontextfrei sind. Def.: Eine Sprache L heißt kontextfrei (vom Typ 2), falls L = L(G) für eine kontextfreie Grammatik G gilt. Bezeichne L 2 die Klasse aller kontextfreien Sprachen. Werden sehen (nicht offensichtlich): L 2 L 1 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 18 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 19

Beispiel (schon gesehen): G =(V,Σ,S,P) mit V ={ expr, term, factor }, Σ={+,-,*,/,(,),num}, S = expr und folgenden Produktionen: factor num factor ( expr ) term term * factor term term / factor term factor expr expr + term expr expr - term expr term Neues Beispiel: G=(V,Σ,S,P) mit V ={S}, Σ={0,1} und folgenden Produktionen: (1) S ε (2) S 0S1 Kurz: S ε 0S1 Beispiel für Ableitung: S 0S1 00S11 000S111 0000S1111 00001111 Leicht zu sehen: L(G) = {0 n 1 n n 0}!! Wissen schon: L(G) ist nicht regulär! FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 20 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 21 3.2 Rechtslineare Grammatiken, Typ-3-Sprachen Def.: Eine Produktion l r heißt rechtslinear, falls gilt: l=a V und (r=ab mit a Σ, B V oder r=ε). Klar: Jede rechtslineare Produktion ist kontextfrei. Def.: Eine Grammatik G=(V,Σ,S,P) heißt rechtslinear (auch: vom Typ 3), falls alle Produktionen von G rechtslinear sind. Def.: Eine Sprache L heißt vom Typ 3, falls L=L(G) für eine rechtslineare Grammatik G gilt. Bezeichne L 3 die Klasse aller Typ-3-Sprachen. Die Chomsky-Hierarchie Klar: L 3 L 2 und Inklusion ist echt ( ) Werden sehen: L 3 = Klasse der regulären Sprachen Damit: L 3 L 2 L 1 L 0 In Worten: regulär kontextfrei kontextsensitiv rekursiv aufzählbar Werden sehen: Alle Inklusionen sind echt ( ) Weiteres Ziel: Charakterisierung von L 2 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 22 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 23

Rechtslineare Grammatiken und NFAs 1 Rechtslineare Grammatiken erfüllen folgende einfach einzusehende wie grundlegende Eigenschaften. Bem.: Füreine rechtslineare GrammatikG =(V,Σ,S,P) gilt: (1) Ohne ε-produktionen gilt L(G)=. (2) ε L(G) S ε ist eine Produktion von G. (3) Jede Ableitung eines w=a 1...a n Σ + hat die Gestalt S a 1 X 1 a 1 a 2 X 2... a 1...a n X n w mit Produktionen S a 1 X 1, X n ε und X i a i+1 X i+1 für i=1,...,n 1. Rechtslineare Grammatiken und NFAs 2 Satz (Rechtslineare Grammatik in NFA). Sei G = (V,Σ,S,P) eine rechtslineare Grammatik. Dann ist M :=(V,Σ,S,F,δ) ein NFA mit L M =L(G), wobei δ(a,a) := {B A ab ist eine Produktion von G} F := {A A ε ist eine Produktion von G}. Beweis. ε L M S F S ε ist in P Bem. ε L(G). Für ein beliebiges w=a 1...a l Σ + gilt: w L M Def. Weg Start a 1 a 2 a l S X 1... X l Def. Abl. S a 1 X 1 a 1 a 2 X 2... wx l w Bem. w L(G) FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 24 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 25 Rechtslineare Grammatiken und NFAs 3 Beispiel: NFA M Start Überlege: L M = L(ε + 1 + 2 + 22 + ) S 1 2 Rechtslineare Grammatik G = ({S, B, C,D}, {1,2},S,P), wo P enthält: S 1B, S 2C, S ε, B 1B, B 2D, B ε, C 2D, D 2D, D ε. B C 1 2 2 D 2 Rechtslineare Grammatiken und NFAs 4 Satz (NFA in rechtslineare Grammatik). Sei M =(Q,Σ,q 0,F, δ) ein NFA. Dann ist G:=(Q,Σ,q 0,P) eine rechtslineare Grammatik mit L(G)=L M, wobei P := {q aq q δ(q, a)} {q ε q F }. Beweis. ε L M q 0 F q 0 ε ist in P Bem. ε L(G). Für ein beliebiges w = a 1...a l Σ + gilt: w L(G) Bem. Abl. q 0 a 1 q 1 a 1 a 2 q 2... wq l w mit q i+1 δ(q i,a i+1 ) für i < l und q l F Def. Weg Start q0 a 1 q 1 a 2 a l... q l w L M FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 26 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 27

Verallgemeinert rechtslineare Produktionen: A ab, a Σ,B V A ε, a Σ,B V A a, a Σ A abc, a,b, c Σ A abcb, a, b,c Σ,B V A B, B V Allgemein: A a 1...a s B, a 1,...,a s Σ, s 0, B V A a 1...a s, a 1,...,a s Σ, s 0 Verallgemeinert rechtslineare Produktionen Behauptung: Sei G=(V,Σ,S,P) eine Grammatik, in der alle Produktionen verallgemeinert rechtslinear sind. Dann kann G in einen äquivalenten ε-nfa M 1 und dann in einen äquivalenten NFA M 2 und dann in eine äquivalente pur rechtslineare Grammatik G umgebaut werden. Fazit: G verallgemeinert rechtslinear = L(G) regulär FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 28 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 29 Beweisskizze (Details zum Nachlesen). Jede Variable ist ein Zustand (es kommen noch weitere hinzu), wobei q 0 = S. WennA ab Produktion, läufteine a-kante vonanachb. Wenn A ε Produktion, ist A akzeptierend. Wenn A B Produktion, läuft eine ε-kante von A nach B. Wenn A a 1 a s Produktion, s 1, wähle s neue Zustände C 1,...,C s, die mit a 1 -, a 2 -,..., a s -Kanten einen von A ausgehenden Weg bilden. Der letzte Zustand C s ist akzeptierend. Wenn A a 1 a s B Produktion, s 2, wähle s 1 neue Zustände D 1,...,D s 1, mit denen ein neuer Weg von A nach B mit Beschriftung a 1,...,a s gebildet wird. Linkslineare Grammatiken Def.: Eine Produktion l r heißt linkslinear, falls gilt: l=a V und (r=ba mit B V,a Σ oder r=ε) Linkslineare Produktionen: A Ba, A,B V, a Σ und A ε Klar: Jede linkslineare Produktion ist kontextfrei. Eine Grammatik G heißt linkslinear, falls alle ihre Produktionen linkslinear sind. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 30 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 31

Linkslineare/rechtslineare Grammatiken 1 Satz. Sei G=(V,...) eine linkslineare Grammatik. Dann kann man G in eine äquivalente rechtslineare Grammatik G =(V,...) umbauen. (Also: L(G) regulär.) Dabei gilt: V V + 1 Beweis. Schritt 1: Aus G: rechtslineare Grammatik G mit L(G )=L(G) R. Beispiel: G = (V,Σ,S,P) mit V = {S, A,B}, Σ = {0,1} und P = {S A0, A A0, A B1, B ε}. G = (V,Σ,S,P ), P = {S 0A, A 0A, A 1B, B ε}. Linkslineare/rechtslineare Grammatiken 2 Schritt 2: Aus G gewinne NFA M mit L M =L(G )=L(G) R. Schritt 3: Aus NFA M gewinne ε-nfa M mit L M =L R M =L(G). Schritt 4: Aus M gewinne NFA M mit L M =L M =L(G). Schritt 5: Aus M gewinne rechtslineare Grammatik G mit L(G )=L M =L(G). FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 32 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 33 Linkslineare/rechtslineare Grammatiken 3 Warnung: Mischen von rechts- und linkslinearen Produktionen in einer Grammatik führt i.a. über die regulären Sprachen hinaus: Beispiel: G = (V,Σ,S,P) mit V = {S, B}, Σ = {a,b} und Produktionen liefert: S ab, S ε, B Sb L(G) = {a n b n n 0} L 3 Fazit 4 Grammatiktypen: Typ 0, Typ 1, Typ 2, Typ 3... oder: Typ 0, kontextsensitiv, kontextfrei, rechtslinear 4 Sprachklassen Chomsky-Hierarchie: L 3 L 2 L 1 L 0 L 3 entpricht regulären Sprachen L 2 : kontextfreie Sprachen: Thema des Restes der Vorlesung FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 34 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 35

Kap. 4 Kontextfreie Grammatiken/Sprachen 4.1 Beispiele und Ableitungen Verwenden: kfg (engl.: cfg) für kontextfreie Grammatik kfs (engl.: cfl) für kontextfreie Sprache Grammatik für die Klammersprache: G=(V,Σ,S,P) mit V = {S}, Σ = {0,1} und folgenden Produktionen: (1) S ε (2) S SS Auch: S ε SS 0S1 (3) S 0S1 Beispielableitung: S SS SSS 0S1SS 01SS 01S0S1 01S00S11 0100S11 010011 Σ Beispiele und Ableitungen 2 Grammatik für {0 n 1 n n 0}: G = (V,Σ,S,P) mit V = {S}, Σ = {0,1} P enthält die folgenden Produktionen: (1) S ε (2) S 0S1 Beispielableitung: Auch: S ε 0S1 S 0S1 00S11 000S111 0000S1111 00001111 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 36 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 37 Beispiele und Ableitungen 3 Grammatik für arithmetische Ausdrücke: G = ({ expr, term, factor }, {+,-,*,/,(,),num}, expr,p) mit Produktionen: factor num ( expr ) term term * factor term / factor factor expr expr + term expr - term term Beispiele und Ableitungen 4 Produktionen kontextfreier Grammatiken haben das Format A X 1 X r wobei A V und r 0, X 1,...,X r V Σ. Ein Ableitungsschritt: Wenn α=y 1 Y s A Z 1 Z t und A X 1 X r Produktion in P ist, dann ist α α =Y 1 Y s X 1 X r Z 1 Z t ein Schritt in G (Ersetzen einer Variablen!) Bem.: α (V Σ) ist Satzform in G Folge S = α 0 α 1 α t = α, mit t 0. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 38 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 39

Induktive Definition für Satzformen Für jede kontextfreie Grammatik G = (V,Σ,S,P) gilt: (i) S ist Satzform in G; (ii) wenn α = Y 1 Y s A Z 1 Z t Satzform in G ist und A X 1 X r eine Produktion in P, dann ist auch α = Y 1 Y s X 1 X r Z 1 Z t eine Satzform in G. (iii) Nichts sonst ist Satzform in G. Beweis: (Leichte) Übung. Also können wir Induktion über den Aufbau von Satzformen benutzen. Also: L(G) = {w Σ w ist Satzform von G} w ist in L(G) w Σ und Ableitung S =α 0 α 1 α t =w. Achtung: Wenn die Grammatik G mehr als eine Variable benutzt, dann besitzt die Menge L(G) normalerweise keine induktive Definition (im Sinne der Vorlesung). Typischer Ansatz, um eine Behauptung für alle w L(G) zu beweisen: Induktion über die Länge der Ableitung von w. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 40 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 41 Beispiel: G = ({S}, {0,1},S,P) mit Produktionen: S 0S0 1S1 0 1 ε Behauptung: L(G) = {w {0,1} w=w R } Sprache der Spiegelwörter ( Palindrome ) über {0,1}. Palindrome bzgl. anderem Alphabet: ara elle hannah reliefpfeiler sinnlosolnnis ε Behauptung: L(G) = {w {0,1} w=w R } Beweis. Durch Induktion über den Aufbau der Satzformenα vong zeigenwirfolgende Invariante (Tafelmitschrift): (I) α=wsw R für ein w Σ oder (II) α=w Σ mit w=w R. Durch Wertverlaufsinduktion über die Wortlänge w zeigen wir (Tafelmitschrift): (+) Ist w=w R, so ist w L(G), für alle w Σ. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 42 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 43

Nächstes Ziel: G = ({S}, {0,1},S,P) mit Produktionen S ε SS 0S1 erzeugt die Menge kka der korrekten Klammerausdrücke. Früher definiert: (i) ε ist kka. Früher gezeigt: w ist kka genau, dann wenn gilt: ( ) w 0 = w 1 und für jedes Präfix u von w gilt u 0 u 1. In Worten: Beim Lesen von w von links nach rechts passiert es nie, dass man mehr Einsen als Nullen gesehen hat. (ii) Wenn w kka und w kka, dann ist auch 0w 1w kka. (iii) Nichts sonst. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 44 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 45 Proposition: Für G = ({S}, {0,1},S,P) mit Produktionen gilt: S ε SS 0S1 kka = L(G) Beweis. Induktion über den Aufbau von kka (ev. Tafel). Beispiel: Finde Ableitung für 010010101011. Durch Induktion über die Länge der Ableitung von w zeige: Jede Satzform erfüllt (eine Verallgemeinerung von) ( ). Fazit Die Sprache {0 n 1 n n 0} ist kontextfrei, aber nicht regulär. Induktive Definition für Satzformen ergibt Beweisschema. Grammatik für die Klammersprache. Bis nächste Woche: Folien aus Netz besorgen, durcharbeiten. Skript Teil 2 besorgen, Seiten 86 109 durcharbeiten. Definitionen lernen, Beispiele ansehen, Fragen vorbereiten. FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 46 FG KTuEA, TU Ilmenau Automaten und Formale Sprachen WS07/08 04.12.2007 47