3.0 VU Formale Modellierung

Ähnliche Dokumente
3.0 VU Formale Modellierung

Was Sie letzte Woche hörten. 3.0 VU Formale Modellierung. Formale Sprachen. Was Sie letzte Woche hörten

3.0 VU Formale Modellierung

Induktive Definition

3.0 VU Formale Modellierung

Automaten und formale Sprachen Klausurvorbereitung

Fragenkatalog 2. Abgabegespräch Formale Modellierung 3 Reguläre Sprachen

3.0 VU Formale Modellierung

Beurteilung. Theoretische Informatik für Lehramt I. Christian Fermüller, Gernot Salzer,

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

DisMod-Repetitorium Tag 4

Reguläre Sprachen und endliche Automaten

Theoretische Informatik und Logik

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

Berechenbarkeitstheorie 1. Vorlesung

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie

Alphabet, formale Sprache

Grundbegriffe der Informatik Tutorium 33

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer,

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012

Formale Sprachen und endliche Automaten

Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011

Theoretische Grundlagen des Software Engineering

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Theoretische Informatik und Logik Übungsblatt 1 (2016S) Lösung

Übungsaufgaben zu Formalen Sprachen und Automaten

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

Automatentheorie und formale Sprachen

Endliche Automaten, reguläre Ausdrücke, rechtslineare Grammatiken

Grundlagen der Informatik II

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 48

Grundlagen der Theoretischen Informatik

10 Kellerautomaten. Kellerautomaten

Kontextfreie Sprachen

Syntax von Programmiersprachen

Lexikalische Analyse, Tokenizer, Scanner

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

3.0 VU Formale Modellierung

Syntax von Programmiersprachen

Kapitel 2: Formale Sprachen Gliederung

2. Übungsblatt 6.0 VU Theoretische Informatik und Logik

3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme

5.2 Endliche Automaten

Grundlagen der Theoretischen Informatik

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann.

Software Engineering Ergänzung zur Vorlesung

Informatik III - WS07/08

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen

FORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19

Einführung in die Informatik

Formale Grundlagen der Wirtschaftsinformatik

Kontextfreie Sprachen

Reguläre Ausdrücke. Michael Jäger. 4. April 2017

Kurz-Skript zur Theoretischen Informatik I

Automaten und Formale Sprachen SoSe 2013 in Trier

Satz (Abschluß unter der Stern-Operation)

Automaten und Formale Sprachen SoSe 2013 in Trier

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

THIA - Übungsblatt 2.

Automatentheorie und formale Sprachen

Theoretische Informatik. Reguläre Sprachen und Automaten

2.2 Reguläre Sprachen Endliche Automaten

Grundlagen der theoretischen Informatik

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen

Theorie der Informatik

Kapitel 0: Grundbegriffe Gliederung

Einführung in die Theoretische Informatik

Kapitel 2. Methoden zur Beschreibung von Syntax

Syntax von Programmiersprachen

Informatik III. Christian Schindelhauer Wintersemester 2006/07 3. Vorlesung

2.6 Verdeutlichung verwendeter Begriffe

Theoretische Informatik Testvorbereitung Moritz Resl

1.5 Turing-Berechenbarkeit

Lexikalische Programmanalyse der Scanner

Formale Sprachen. Reguläre Sprachen. Rudolf FREUND, Marian KOGLER

1 Spezifikation formaler Sprachen

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven

Rekursiv aufzählbare Sprachen

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14

Proseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.

Das Halteproblem für Turingmaschinen

2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:

Kontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen

Theoretische Informatik I

Kontextfreie Sprachen werden von PDAs akzeptiert

11.1 Kontextsensitive und allgemeine Grammatiken

1.5 Turing-Berechenbarkeit

Informatik III. Christian Schindelhauer Wintersemester 2006/07 7. Vorlesung

Theoretische Grundlagen der Informatik

Grundbegriffe der Informatik Tutorium 10

Beweisidee: 1 Verwende den Keller zur Simulation der Grammatik. Leite ein Wort. 2 Problem: der Keller darf nicht beliebig verwendet werden, man kann

Das Pumping-Lemma Formulierung

Theoretische Grundlagen der Informatik

Transkript:

3.0 VU Formale Modellierung Gernot Salzer AB Theoretische Informatik und Logik Institut für Computersprachen 28.10.2014 1

Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 2

Beispiel: Flussüberquerung als Automat m m h k G MKH k m g MGH K g h m MKGH m KG MH h g KGH M g m k M KGH k h MH KG m MKGH K MGH m MKH G Mögliche Lösungen: {mhkmghm, mmmhhhgmkhm,..., mhkmgkmgkmghm,... } Sprache des Automaten 3

Beispiel: Reelle Numerale 0..9 0..9 0..9. E ε 0..9 1 2 3 4 5 6 - + 0..9 Zustandsbeschriftungen 1 6 dienen nur der Bezugnahme, irrelevant für das Verhalten des Automaten Kanten sind mit Symbolen beschriftet, die gelesen/geschrieben werden. Anfangszustand (1) ist durch einen Pfeil aus dem Nichts markiert. Endzustände (3, 6) sind durch einen Doppelkreis markiert. Zwei Sichtweisen: Akzeptor: Der Automat liest Symbole und akzeptiert alle Zeichenketten, die vom Anfangs- zu einem der Endzustände führen. Generator: Der Automat schreibt Symbole und generiert jene Zeichenketten, die vom Anfangs- zu einem der Endzustände führen. 7

Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 8

Endliche Automaten modellieren Systeme bzw. Abläufe, die nur eine begrenzte, feste Zahl an unterscheidbaren Zuständen besitzen. (Klassischer) Endlicher Automat: Anfangs- und Endzustände nur Eingaben (bzw. nur Ausgaben) verarbeitet endliche Symbolfolgen Unterarten: deterministisch, nichtdeterministisch mit/ohne ε-übergängen Transducer: wie endlicher Automat, aber mit Ein- und Ausgaben. Unterarten: Mealy-Automaten, Moore-Automaten Büchi-Automat: wie endlicher Automat, verarbeitet aber unendliche Symbolfolgen Spezifikation von Automaten: Graphisch: Zustände sind Knoten, Übergänge sind Kanten, Ein- und Ausgaben sind Beschriftungen von Knoten und Kanten. Tabellarisch: Zu jedem Zustand und Eingabesymbol gibt es einen Eintrag mit zugehöriger Ausgabe und den Folgezuständen. 9

Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 10

Formale Sprachen Σ Alphabet, d.h., endliche, nicht-leere Menge atomarer Symbole w Wort über Σ, (endliche) Folge von Zeichen aus dem Alphabet Σ ε Leerwort Σ + Σ Menge aller nicht-leeren endlichen Wörter über Σ Menge aller endlichen Wörter über Σ (inklusive Leerwort) w 1 w 2 = w 1 w 2 Verkettung der Wörter w 1, w 2 Σ L Σ formale Sprache über Σ 2 Σ Menge aller Sprachen über Σ Σ,, ε bildet ein Monoid. Σ = {0, 1} Σ = {ε, 0, 1, 00, 01, 10, 11, 000, 001,... } 10 ε 11101 000 = 1011101000 (Klammerung irrelevant, Assoziativität!) ε ε ε = ε 11

Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 4.7.1. Endlicher Transducer 4.7.2. Mealy-Automaten 4.7.3. Moore-Automaten 12

Endliche Automaten Bezeichnungen Q q 0 I F endliche Menge von Zuständen Anfangszustand Menge von Anfangszuständen Menge von Endzuständen Σ Eingabealphabet Γ Ausgabealphabet δ δ γ γ Übergangsfunktion/-relation erweiterte Übergangsfunktion/-relation Ausgabefunktion erweiterte Ausgabefunktion A Automat L(A) die von A akzeptierte Sprache [A] die von A berechnete Übersetzungsfunktion/-relation 13

Übergangsfunktionen und -relationen δ : Q Σ Q δ Q Σ Q δ : Q Σ 2 Q det. endlicher Automat (DEA) nichtdet. endl. Aut. (NEA) ohne ε-ü. δ Q (Σ {ε}) Q nichtdet. endl. Aut. (NEA) mit ε-ü. δ : Q (Σ {ε}) 2 Q δ Q (Σ {ε}) (Γ {ε}) Q Transducer (indet. mit ε-ü.) δ : Q (Σ {ε}) 2 (Γ {ε}) Q δ : Q Σ Γ Q Mealy-Automat δ : Q Σ Q γ : Q Σ Γ δ : Q Σ Q γ : Q Γ Moore-Automat ε-übergänge, Relation oder Potenzmenge = nichtdeterm. Automat 14

Akzeptierte Worte bzw. Wortpaare (Nicht-)Deterministischer Automat: Alle Worte, mit denen man vom Anfangszustand aus einen der Endzustände erreicht. Transducer: Alle Paare (u, v) von Ein-/Ausgabewörtern, bei denen man mit u vom Anfangszustand (von einem der Anfangszustände) aus in einen Endzustand gelangt und dabei v ausgibt. Mealy: Pro Übergang wird genau ein Symbol gelesen und eines geschrieben. Die Ausgabe ist an den Übergang gebunden. Moore: Pro Übergang wird genau ein Symbol gelesen und eines geschrieben. Die Ausgabe ist an den Zielzustand gebunden. 15

Was Sie letztes Mal hörten 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 16

Beispiel: Suche nach Max und Ana a,m,n,x,z 1 m a 2 a 4 x a 6 a,m,n,x,z n 3 5 n,x,z 1 a x,z n,x,z m m m 12 13 m z a 134 a m n 15 n x a x,z n,x,z 16 a 136 m n,x,z m 126 m n,x,z m n 156 m a x,z n 1346 a n,x,z a a a 17

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 4.1. Beispiele 4.2. Klassifikation 4.3. Grundlagen formaler Sprachen 4.4. Deterministische endliche Automaten 4.5. Nichtdeterministische endliche Automaten 4.6. Determinisierung 4.7. Transducer 4.8. Büchi-Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 18

Büchi-Automaten Deterministischer Büchi-Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, q 0, F, wobei Q, Σ, δ, q 0, F wie bei DEAs definiert sind. Σ ω... Menge aller unendlichen Wörter (= ω-wörter) über Σ Akzeptanz von Wörtern Ein deterministischer Büchi-Automat A akzeptiert ein Wort s 1 s 2 s 3 Σ ω, wenn es Zustände q 0, q 1, q 2, q 3, Q gibt, sodass q 0 Q der Startzustand ist, δ(q i 1, s i ) = q i für alle i N gilt und es unendlich viele i gibt, sodass q i ein Endzustand ist (q i F ). Akzeptierte/Generierte Sprache L(A) = { w Σ ω w wird von A akzeptiert } 19

Faire Verkehrsampel a b c h d g f e Der Automat akzeptiert genau jene Wörter aus {a,..., h} ω, bei denen es immer wieder grün wird. 20

Nichtdeterministischer Büchi-Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, I, F, wobei Q, Σ, F... siehe DEA I Q... Anfangszustände δ Q Σ Q... Übergangsrelation Akzeptanz von Wörtern Ein nichtdeterministischer Büchi-Automat A akzeptiert ein Wort s 1 s 2 s 3 Σ ω, wenn es Zustände q 0, q 1, q 2, q 3, Q gibt, sodass q 0 Q ein Startzustand ist (q 0 I), (q i 1, s i, q i ) δ für alle i N gilt und es unendlich viele i gibt, sodass q i ein Endzustand ist (q i F ). Akzeptierte/Generierte Sprache L(A) = { w Σ ω w wird von A akzeptiert } 21

Nur endlich viele 1er Gesucht: Ein Büchi-Automat, der genau jene ω-wörter über {0, 1} akzeptiert, die nur eine endliche Anzahl an 1ern enthalten. 0,1 0 a 0 b Kein deterministischer Büchi-Automaten akzeptiert diese Sprache. = Nichtdeterministische Büchi-Automaten sind ausdrucksstärker als deterministische! 22

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 23

Operationen auf formalen Sprachen Σ Alphabet, d.h., endliche, nicht-leere Menge atomarer Symbole w Wort über Σ, (endliche) Folge von Zeichen aus dem Alphabet Σ ε Leerwort Σ Menge aller endlichen Wörter über Σ (inklusive Leerwort) w w = ww Verkettung der Wörter w, w Σ Seien L, L Σ zwei Sprachen. L L = { w w L oder w L } L L = { w w w L, w L } L 0 = {ε} L n+1 = L L n (n 0) Vereinigung Verkettung Potenzen L + = L n n 1 L = L n = L 0 L + = {ε} L + Kleene-Stern n 0 24

Verkettung {a, b} {b, c, d} = {ab, ac, ad, bb, bc, bd} {b, c, d} {a, b} = {ba, bb, ca, cb, da, db} ({a, b} {1, 2}) {#, $} = {a1#, a1$, a2#, a2$, b1#, b1$, b2#, b2$} = {a, b} ({1, 2} {#, $}) {a, b} {ε} = {a ε, b ε} = {a, b} = {ε a, ε b} = {ε} {a, b} {a, b} {} = {} {a, b} = {} {ε} {ε} = {ε} {} {} = {ε} {} = {} {ε} = {} Beobachtungen: Sprachverkettung ist nicht kommutativ. Sprachverkettung ist assoziativ. {ε} ist neutrales Element bzgl. Sprachverkettung. {} ist Nullelement bzgl. Sprachverkettung. 25

Potenzen von {a, 42} L = {a, 42} L 0 = {ε} L 1 = L L 0 = L {ε} = L = {a, 42} L 2 = L L 1 = L L = {aa, a42, 42a, 4242} L 3 = L L 2 = {aaa, aa42, a42a, a4242, 42aa, 42a42, 4242a, 424242}. L + = n 1 Ln = L 1 L 2 L 3 = {a, 42, aa, a42, 42a, 4242, aaa, aa42, a42a, a4242, 42aa,... } L = n 0 Ln = L 0 L 1 L 2 L 3 = {ε, a, 42, aa, a42, 42a, 4242, aaa, aa42, a42a, a4242, 42aa,... } Potenzen eines Alphabets Σ Σ 0 = {ε} Σ n Σ + = n 1 Σn Σ = n 0 Σn Σ 1 = Σ alle Σ-Wörter der Länge n (d.h., mit n Symbolen) alle Σ-Wörter ohne Leerwort alle Σ-Wörter mit Leerwort 26

2 Σ,,, {}, {ε} bildet einen idempotenten Halbring Das heißt, es gelten folgende Gleichungen. 2 Σ,, {}... idemp.komm.monoid (A B) C = A (B C) {} A = A {} = A A B = B A A A = A 2 Σ,, {ε}... Monoid (A B) C = A (B C) {ε} A = A {ε} = A Verkettung distribuiert über Vereinigung. A (B C) = (A B) (A C) (B C) A = (B A) (C A) {} ist Nullelement bzgl. Verkettung. {} A = A {} = {} Weitere Identitäten für + und : (A ) = A (A {ε}) = A A A = A + A + {ε} = A 27

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 28

Reguläre Sprachen Alle Sprachen, die aus einem Alphabet mit Hilfe von Vereinigung, Verkettung und Stern gebildet werden können. Anwendungen: Betriebssytem-Shells: Dos ( Wildcards ), Unix-Shells (wie sh, csh, ash, bash, zsh),... Unix Kommandozeilenprogramme: grep, awk, ed, sed,... Editoren: vi, emacs,... Compilerbau: Tokens bilden reguläre Sprache, die durch sog. Scanner (Lexer) wie lex oder flex verarbeitet werden. Programmiersprachen: Perl, Tcl, Php, Python, Ruby, R, Java, JavaScript,.Net-Sprachen,... Websprachen: Xml Schema, XQuery, XPath, Dtds,... Datenbanken: MySQL, Oracle, PostgreSQL,...... 29

Regulären Sprachen über einem Alphabet Die Menge der regulären Sprachen über Σ, L reg (Σ), ist die kleinste Menge, sodass gilt: {}, {ε} und {s} sind reguläre Sprachen (für alle s Σ). Wenn L und L reguläre Sprachen sind, dann auch L L, L L und L. Reellen Numerale: reguläre Sprache über Σ = {0,..., 9,., E, +, -} real = digit digit {.} digit ({ε} scale) scale = {E} {+, -, ε} digit digit digit = {0,..., 9} = {0} {9} Wichtig: Unterscheide Symbole des Alphabets von Meta-Symbolen! 0,..., 9,., E, +, -... Symbole des Alphabets ε, real, scale, digit... Meta-Symbole, Abkürzungen 30

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 31

Reguläre Ausdrücke Ausdrücke wie digit digit und digit + sind ununterscheidbar: Beides sind semantische Beschreibungen der Menge aller Ziffernfolgen. Um Aussagen über ihre Form treffen zu können, benötigen wir eine formale Sprache. Reguläre Ausdrücke (algebraische Notation) Die regulären Ausdrücke über Σ sind die kleinste Menge, für die gilt:, ε und s sind reguläre Ausdrücke (für alle Symbole s Σ). Sind r und r reguläre Ausdrücke, dann auch (r + r ), (rr ) und r. Vereinfachte Klammerung: + bindet am schwächsten, am stärksten. Keine Klammern bei gleichartigen Operatoren (wegen Assoziativität). Die Sprache L(r) zu einem regulären Ausdruck r ist definiert durch: L( ) = {} L(ε) = {ε} L(s) = {s} für s Σ L( (r + r ) ) = L(r) L(r ) L( (rr ) ) = L(r) L(r ) L(r ) = (L(r)) 32

Regulärer Ausdruck für die reellen Numerale R = DD.D (ε + S) S = E(+ + - + ε)dd D = 0 + 1 + + 9 (R, S und D sind Abkürzungen für die jeweiligen regulären Ausdrücke.) Die zugehörigen Sprachen: L(D) = L(0 + 1 + + 9) = L(0) L(1) L(9) = {0} {1} {9} = digits L(S) = L(E(+ + - + ε)dd ) = L(E) L(+ + - + ε) L(D) L(D ) = {E} (L(+) L(-) L(ε)) digits L(D) = {E} ({+} {-} {ε}) digits digits = scale L(R) = = real 33

Zwei reguläre Ausdrücke r und r heißen äquivalent, geschrieben r = r, wenn L(r) = L(r ) gilt. ((a + b) + ε) = (a + b) L(((a + b) + ε) ) = = ({a, b} {ε}) = ({a, b} ) da ε L für alle L = ({a, b} ) 0 ({a, b} ) 1 ({a, b} ) 2 = {a, b} ({a, b} ) 0 ({a, b} ) 2 = {a, b} da L alle Wörter über L enthält = = L((a + b) ) 34

Reguläre Ausdrücke in Ebnf-Notation Ebnf... Erweiterte Backus-Naur-Form (Formalismus zur Beschreibung der Syntax von Programmiersprachen, die reguläre Ausdrücke zulässt) AB A B Aufeinanderfolge A B A B Alternativen [A] {ε} A Option {A} A Wiederholung (A) (A) Gruppierung "s" {s} Symbol Reelle Numerale in Ebnf-Notation real = digit { digit } "." { digit } [ scale ] scale = "E" [ "+" "-" ] digit { digit } digit = "0" "1" "2" "9" 35

Reguläre Ausdrücke als Syntaxdiagramme Syntaxdiagramme... graphische Form der Ebnf A A Abkürzung s {s} Symbol X X + Wiederholung 1 X X Wiederholung 0 X Y X Y Aufeinanderfolge X Y X Y Alternativen X {ε} X Option 36

Reelle Numerale als Syntaxdiagramm real = scale = digit = digit digit. scale + E digit - 0 1 2 3 4 5 6 7 8 9 37

Reguläre Ausdrücke im informatischen Alltag Unix := 30 definitions of regular expressions living under one roof grep -E -e "regexp" file (Donald E. Knuth) liefert alle Zeilen der Datei file, die eine Zeichenkette enthalten, die dem regulären Ausdruck regexp (in Posix Ere Syntax) entspricht. Verschiedene Standards : Posix Basic Regular Expressions Posix Extended Regular Expressions Perl Regular Expressions... 38

Posix Extended Regular Expressions (Ere) regexp trifft zu auf \s Zeichen s s s, falls kein Sonderzeichen. alle Zeichen ˆ Zeilenanfang $ Zeilenende [s 1 s n ] ein Zeichen aus {s 1,..., s n } [ˆs 1 s n ] alle Zeichen außer s 1,..., s n (r) r Reelle Numerale als Ere digit = {0,..., 9} scale = {E} {+, -, ε} digit digit real = digit digit {.} digit ({ε} scale) regexp trifft zu auf rr r gefolgt von r r r r oder r r* 0 Mal r r+ 1 Mal r r? 1 Mal r r{i} i Mal r r{i,} i Mal r r{i,j} i bis j Mal r [0-9] E[+-]?[0-9]+ ^[0-9]+\.[0-9]*(E[+-]?[0-9]+)?$ [0-9]... Kurzform von [0123456789]; analog [a-za-z] für Buchstaben 39

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 40

Eigenschaften regulärer Sprachen Reguläre Sprachen sind abgeschlossen gegenüber Vereinigung, Verkettung und Stern (warum?) Durchschnitt, Komplement, Differenz, Homomorphismen, Quotientenbildung,... Entscheidbarkeit eines Problems: Es gibt ein Verfahren (einen Algorithmus), der für jede Eingabe die richtige Antwort ja/nein liefert. Nicht entscheidbar: Halteproblem Ihrer Lieblingsprogrammiersprache Gegeben ein Programm mit einer Eingabe, wird es anhalten? Folgende Probleme regulärer Sprachen sind entscheidbar: Gegeben ein Wort w und einen regulären Ausdruck r, gilt w L(r)? (Wortproblem) Gegeben zwei reguläre Ausdrücke r und r, gilt L(r) = L(r )? (Äquivalenzproblem) Gegeben einen regulären Ausdruck r, ist L(r) leer/endlich/unendlich? 41

Ausdruckskraft regulärer Sprachen Die regulären Sprachen sind genau jene, die von endlichen Automaten akeptiert werden, d.h.: Zu jedem regulären Ausdruck r gibt es einen endlichen Automaten A, sodass L(A) = L(r) gilt. Zu jedem endlichen Automaten A gibt es einen regulären Ausdruck r, sodass L(r) = L(A) gilt. Nicht regulär sind Sprachen, deren Analyse ein unbegrenztes Gedächtnis erfordert: Klammerausdrücke: {(), (()), ()(), ((())), (())(), ()()(),... } { a n b n n 0 } = {ε, ab, aabb, aaabbb,... } { a n b n c n n 0 } = {ε, abc, aabbcc, aaabbbccc,... } Palindrome: Worte, die identisch mit ihrem Spiegelbild sind. {otto, anna, reliefpfeiler, o genie der herr ehre dein ego,... } Doppelworte: { ww w Σ } (falls Σ > 1) 42

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 43

Vom regulären Ausdruck zum Automaten Automat für : i f Automat für s Σ {ε}: s i f Automat für r 1 r 2 : Automat für r 1 + r 2 : i Automat für r 1 ε i 1 f 1 Automat für r 2 ε i 2 f 2 Automat für r 1 Automat für r 2 ε ε ε i i 1 f 1 i 2 f 2 ε ε f f Automat für r 1 : ε i ε Automat für r1 i 1 f 1 ε f ε 44

Automat für Binärnumerale ohne führende Null Regulärer Ausdruck: 1(0 + 1) ε ε 1 ε ε ε 0 ε ε ε ε 1 ε ε 0,1 Minimaler deterministischer Automat: 1 Manuelle Konstruktion von Automaten: 1 Konstruiere die Automaten zu einfachen Teilsprachen durch Hinschauen. 2 Verwende die allgemeine Konstruktion mit ε-übergängen für undurchsichtige Situationen. 45

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 5.1. Operationen auf formalen Sprachen 5.2. Definition regulärer Sprachen 5.3. Reguläre Ausdrücke 5.4. Eigenschaften regulärer Sprachen 5.5. Vom regulären Ausdruck zum Automaten 5.6. Vom Automaten zum regulären Ausdruck 6. Kontextfreie Grammatiken 46

Vom Automaten zum regulären Ausdruck R... Menge der regulären Ausdrücke über Σ Verallgemeinerter endlicher Automat... wird beschrieben durch ein 5-Tupel A = Q, Σ, δ, i, f, wobei Q... endliche Zustandsmenge Σ... Eingabealphabet δ : (Q {f }) (Q {i}) R... Übergangsfunktion i Q... Anfangszustand f Q, f i... Endzustand Unterschiede zu normalen Automaten: keine Übergänge in den Anfangszustand; nur ein Endzustand, der nicht Anfangszustand ist; keine Übergänge weg vom Endzustand; nur ein Übergang zwischen je zwei Zuständen; Übergänge beschriftet mit regulären Ausdrücken. 47

Umwandlung eines endlichen Automaten in einen verallgemeinerten Übergänge in den Anfangszustand oder Anfangszustand ist Endzustand: = ε Mehrere Endzustände: = Übergänge weg vom Endzustand: = ε ε ε ε Mehrere Übergänge zwischen zwei Zuständen: s 1 s 2 = s 1 + s 2 48

Vom verallgemeinerten Automaten zum regulären Ausdruck Gegeben: Verallgemeinerter Automat A = Q, Σ, δ, i, f Für jeden Zustand q Q {i, f } führe folgende Schritte durch: 1 Füge zwischen allen Nachbarn p, p von q neue Übergänge hinzu: y y p x q z p = p x q z p (x, y und z bezeichnen reguläre Ausdrücke.) xy z 2 Entferne q und alle Kanten von und nach q aus dem Automaten. r Restautomat: i f Ergebnis: r ist ein regulärer Ausdruck mit L(r) = L(A). 49

Anmerkungen: Falls p und p derselbe Knoten sind, erhält man: y xy z y x x p q = p q z z Falls die Schleife mit dem Ausdruck y nicht existiert, entfällt y. Falls der Übergang p p bereits existiert, wird xy z addiert. 50

A 1 0 0,1 a 0 b 1 c 1 ε i a b c f 0 0 + 1 1 ε ε 51

A 1 0 0,1 a 0 b 1 c 1 1 ε 00 0 0 + 1 i a b c f 0 1 + 01 ε 0 ε 51

A 1 0 0,1 a 0 b 1 c 1 00 + (1 + 01)(0 + 1) 0 + 1 i b c f 1 + 01 ε 0 + 1(0 + 1) ε + 1 + 01 1 51

A 1 0 0,1 a 0 b 1 c 00 + (1 + 01)(0 + 1) i b f 0 + 1(0 + 1) ε + 1 + 01 1 + (0 + 1(0 + 1))(00 + (1 + 01)(0 + 1)) (ε + 1 + 01) 51

A 1 0 0,1 a 0 b 1 c i f 1 + (0 + 1(0 + 1))(00 + (1 + 01)(0 + 1)) (ε + 1 + 01) r = 1 + (0 + 10 + 11)(00 + 10 + 11 + 010 + 011) (ε + 1 + 01) Es gilt: L(r) = L(A). 51

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 6.1. Definition 6.2. Beispiele 52

Grenzen regulärer Sprachen Was reguläre Ausdrücke und endliche Automaten beschreiben können: lexikale Elemente in Programmiersprachen: Identifier, Numerale,... Morphologie von Worten in natürlichen Sprachen: korrekte Fall-/Zahl-/Zeitendungen,... Systeme, die nur ein endliches Gedächtnis besitzen Was sie nicht beschreiben können: geklammerte Ausdrücke in Programmiersprachen geschachtelte Programmstrukturen wie if... while... if... endif... endwhile... endif Schachtelung von Haupt- und Nebensätzen in natürlichen Sprachen Systeme mit einem (potentiell) unendlichen Speicher Wohlgeklammerte Ausdrücke sind nicht regulär {(), (()), ()(), ((())), (())(), ()()(),... } { a n b n n 0 } ist nicht regulär {ε, ab, aabb, aaabbb, aaaabbbb, aaaaabbbbb,... } 53

Kontextfreie Grammatiken Menge von Ersetzungsregeln 2 Arten von Symbolen: Terminale, Nonterminale Ausgehend vom Start-Nonterminal werden Nonterminale solange ersetzt, bis nur noch Terminale bleiben. Satz HwP ZwP HwP Art Hw ZwP Hzw HwP Zw Art der den Hw Hund Mond Hzw wird Zw anbellen Satz p HwP ZwP p Art Hw Hzw HwP Zw p der Hund wird Art Hw anbellen p der Hund wird den Mond anbellen Generative Grammatiken gehen zurück auf Noam Chomsky (Linguist, Philosoph, Aktivist; *1928). 54

Kontextfreie Grammatik... wird beschrieben durch ein 4-Tupel G = V, T, P, S, wobei V... Menge der Nonterminalsymbole (Variablen) T... Menge der Terminalsymbole (V T = {}) P V (V T )... Produktionen S V... Startsymbol Schreibweise: A w statt (A, w) P A w 1 w n statt A w 1,..., A w n Ableitbarkeit... in einem Schritt: x A y x w y, falls A w P und x, y (V T ).... in mehreren Schritten: u v, falls u = v, oder u u und u v für ein Wort u (V T ). 55

Von Grammatik G generierte Sprache L(G) = { w T S w } Grammatiken G 1 und G 2 heißen äquivalent, wenn L(G 1 ) = L(G 2 ) gilt. G = {S}, {a, b}, {S ε a S b}, S S aabb, weil S a S b aa S bb aa ε bb = aabb L(G) = { a n b n n 0 } = {ε, ab aabb aaabbb,... } Kontextfreie Sprachen Eine Sprache heißt kontextfrei, wenn es eine kontextfreie Grammatik gibt, die sie generiert. 56

Verschiedene Ableitbarkeitsbegriffe Linksableitbarkeit: x A y L x w y falls A w P und x T (In jedem Schritt wird die linkeste Variable ersetzt.) Rechtsableitbarkeit: x A y R x w y falls A w P und y T (In jedem Schritt wird die rechteste Variable ersetzt.) Parallelableitbarkeit: x 0 A 1 x 1 A n x n P x 0 w 1 x 1 w n x n falls A 1 w 1,..., A n w n P und x 0,..., x n T (In jedem Schritt werden alle Variablen ersetzt.) L, R und P sind eingeschränkte Ableitungsrelationen: Manche Wörter w (V T ) sind mit herleitbar (S w), aber nicht mit diesen Relationen. Sie können aber jedes Wort der Sprache ableiten. Für alle w T gilt: S w gdw. S L w gdw. S R w gdw. S P w L(G) = { w T S w } = { w T S L w } = { w T S R w } = { w T S P w } 57

Was Sie heute erwartet 1. Organisatorisches 2. Was bedeutet Modellierung? 3. Aussagenlogik 4. Endliche Automaten 5. Reguläre Sprachen 6. Kontextfreie Grammatiken 6.1. Definition 6.2. Beispiele 58

Syntax aussagenlogischer Formeln G = {Fm, Op, Var}, T, P, Fm, wobei T = {,,, (, ),,,,,,,, } V P = { Fm Var Fm ( Fm Op Fm ), Op, Var A B C } ((A B) (A B)) ist eine aussagenlogische Formel, weil: Fm L ( Fm Op Fm ) L ( ( Fm Op Fm ) Op Fm ) L ( ( Var Op Fm ) Op Fm ) L ( ( A Op Fm ) Op Fm ) L ( ( A Fm ) Op Fm ) L ( ( A Var ) Op Fm ) L ( ( A B ) Op Fm ) L ( ( A B ) Fm ) L ( ( A B ) ( Fm Op Fm ) ) L ( ( A B ) ( Var Op Fm ) ) L ( ( A B ) ( A Op Fm ) ) L ( ( A B ) ( A Fm ) ) L ( ( A B ) ( A Var ) ) L ( ( A B ) ( A B ) ) 59

Syntax aussagenlogischer Formeln G = {Fm, Op, Var}, T, P, Fm, wobei T = {,,, (, ),,,,,,,, } V P = { Fm Var Fm ( Fm Op Fm ), Op, Var A B C } ((A B) (A B)) ist eine aussagenlogische Formel, weil: Fm P ( Fm Op Fm ) P ( ( Fm Op Fm ) ( Fm Op Fm ) ) P ( ( Var Var ) ( Var Var ) ) P ( ( A B ) ( A B ) ) 60

Reelle Numerale G = V, T, P, Real, wobei V = {Real, Scale, Sign, Digits, Digit} T = {0,..., 9,., E, +, -} und P folgende Produktionen sind: Real Digit Digits. Digits Scale Scale ε E Sign Digit Digits Sign ε + - Digits ε Digit Digits Digit 0 9 Optionalität: A ε B (A steht für optionales B) Wiederholung: A ε B A (A steht für wiederholtes B, auch 0 Mal) A B B A (A steht für wiederholtes B, mind. 1 Mal) 61

Wohlgeformte Klammerausdrücke WKA ist die kleinste Menge, sodass ε WKA (w) WKA, wenn w WKA w 1 w 2 WKA, wenn w 1, w 2 WKA G = {W }, {(, )}, {W ε ( W ) W W }, W Beispiel einer Ableitung: W P W W P (W )(W ) P ()(W W ) P ()((W )(W )) P ()(()()) L(G) = {ε, (), (()), ()(), ((())), (())(), ()(()), ()()(),... } = WKA 62