Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep

Ähnliche Dokumente
Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Teil II. Terminologie. Vorlesung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

a b b a a b b a Dank Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Chart-Parsing Chart-Parsing Vorlesung

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Erzeugende Grammatiken akzeptierende Automaten.

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Probleme über Sprachen. Teil II.

Grundlagen der Theoretischen Informatik

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Akzeptierbarkeit und Entscheidbarkeit. Teil V.

Theoretische Informatik II

Dank. Theoretische Informatik II. Teil II. Registermaschinen. Vorlesung

Vorlesung Automaten und Formale Sprachen Sommersemester Beispielsprachen. Sprachen

Einführung in die Theoretische Informatik

Grundlagen der Theoretischen Informatik

Das Halteproblem für Turingmaschinen

Grundlagen der Theoretischen Informatik

Theoretische Grundlagen der Informatik. Vorlesung am 8. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

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

Grundbegriffe. Grammatiken

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Beispiel einer nicht berechenbaren Funktion: Busy Beaver

Lösungen zum Ergänzungsblatt 2

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

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

DisMod-Repetitorium Tag 4

Theoretische Informatik I

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Übung zur Vorlesung Grundlagen der theoretischen Informatik. Aufgabenblatt 2 Lösungen. Wiederholung: von einer Grammatik erzeugte Sprache

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reduktion. Komplexitätsklassen.

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie

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

1. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

Logik für Informatiker

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

Theoretische Grundlagen der Informatik

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

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

Theoretische Informatik II

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I

Theoretische Informatik II

Informatik III - WS07/08

Automaten und formale Sprachen Klausurvorbereitung

Rekursiv aufzählbare Sprachen

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004

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

1. Übungsblatt 6.0 VU Theoretische Informatik und Logik

Theoretische Informatik Mitschrift

Berechenbarkeitstheorie 7. Vorlesung

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

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

Theoretische Grundlagen des Software Engineering

Übungen zu Grundlagen der Theoretischen Informatik

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

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

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

Sprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri

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

Theoretische Grundlagen der Informatik

Kapitel IV Formale Sprachen und Grammatiken

Tutorium 23 Grundbegriffe der Informatik (10. Sitzung)

Informatik III. Outline

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

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

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

Alphabet, formale Sprache

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

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17

Theoretische Informatik I

Automatentheorie und formale Sprachen

Formale Sprachen. Grammatiken. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marion OSWALD. Grammatiken: Ableitung

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

Was bisher geschah: Formale Sprachen

Automaten und formale Sprachen Notizen zu den Folien

Theoretische Informatik II

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

Beschreibungskomplexität von Grammatiken Definitionen

Theoretische Grundlagen der Informatik

Formale Methoden 1. Gerhard Jäger 28. November Uni Bielefeld, WS 2007/2008 1/15

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Theoretische Informatik

Grundlagen der Theoretischen Informatik

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

Transkript:

Dank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Diese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen von Katrin Erk (gehalten an der Universität Koblenz-Landau) Jürgen Dix (gehalten an der TU Clausthal) Institut für Informatik Sommersemester 2007 Ihnen beiden gilt mein herzlicher Dank. Bernhard Beckert, April 2007 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 1 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 2 / 106 Reguläre Ausdrücke als Suchmuster für grep Reguläre Ausdrücke als Suchmuster für grep Das Kommando grep (bzw. egrep) Sucht Wörter (Strings) in Dateien Benutzt reguläre Ausdrücke als Suchmuster Sehr schnell Volle Funktionalität mit egrep (UNIX/LINUX) Syntax bei grep grep Regulärer Ausdruck ww ww w w w + w w* w w+ w + Syntactic Sugar grep Regulärer Ausdruck [abc] a + b + c [a-d] a + b + c + d. beliebiges Zeichen aus Σ B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 57 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 58 / 106

Beschreibt eine Sprache Menge von Regeln, mit deren Hilfe man Wörter ableiten kann Die zu einer gehörende Sprache besteht aus den ableitbaren terminalen Wörtern Definition 6.6 () Eine G über einem Alphabet Σ ist ein Tupel G = (V,T,R,S) Dabei ist V eine endliche Menge von Variablen T Σ eine endliche Menge von Terminalen mit V T = /0 R eine endliche Menge von Regeln S V das Startsymbol B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 59 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 60 / 106 Definition 6.7 (Regel) Eine Regel ist ein Element (P,Q) ( (V T ) V (V T ) ) (V T ) Das heißt: P und Q sind Wörter über (V T ) P muss mindestens eine Variable enthalten Q ist beliebig Schreibweise für Regeln Schreibweise für Regel (P, Q): P G Q bzw. P Q Abkürzung für mehrere Regeln mit derselben Prämisse: P Q 1 Q 2 Q 3 für P Q 1, P Q 2, P Q 3 Bezeichnung: P: Prämisse Q: Conclusio Konvention (meistens) Variablen als Großbuchstaben Terminale als Kleinbuchstaben B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 61 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 62 / 106

Rechnung einer Beispiel 6.8 S B B do begin B end B A A nop A A ε Algorithmus Eingabe: Eine 1 aktuellwort := S (Startsymbol) 2 Wähle eine Regel P Q, so dass P in aktuellwort vorkommt 3 Ersetze (ein) Vorkommen von P in aktuellwort durch Q 4 Falls aktuellwort noch Variablen enthält (nicht terminal), GOTO 2 Ausgabe: Das terminale Wort aktuellwort Beachte Die Berechnung ist nicht deterministisch (Auswahl der Regel) kann mehr als ein Ergebnis liefern (oder auch keines) kann in Endlosschleifen geraten B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 63 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 64 / 106 Rechnung einer Rechnung einer Beispiel 6.9 (Einfache en) Welche Wörter kann man ableiten? G a = ({S},{a},{R 1,R 2 },S) R 1 = S as R 2 = S ε G ab = ({S},{a,b},{R 1,R 2 },S) R 1 = S asb R 2 = S ε Sei G gerade = ({S,S 0 },{0,1,2,3,4,5,6,7,8,9},{R 1,R 2 },S) R 1 = S 1S 2S 0 3S 4S 0 5S 6S 0 7S 8S 0 9S R 2 = S 0 S ε Definition 6.10 (Ableitung, Rechnung) Gegeben: G = (V,T,R,S) Wörter w,w aus (V T ) Es gilt w = G w ( w geht über in w ) falls u,v (V T ) P Q ( R w = upv und w = ) uqv B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 65 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 66 / 106

Rechnung einer Schreibweise für Ableitung w = G w falls es Wörter w 0,...,w n (V T ) (n 0) gibt mit w = w 0 w m = w w i = G w i+1 für 0 i < n Merke: w = w gilt stets (n = 0) G Die Folge w 0,...,w n heißt Ableitung oder Rechnung von w 0 nach w n in G der Länge n B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 67 / 106 Beispiel 6.11 (Indeterminismus) Wir betrachten die G = ({S,B},{a,b,c},{R 0,R 1,R 2,R 3 },S) R 0 = R 1 = R 2 = R 3 = S abbc B b B ba BB bba Drei Möglichkeiten, das Wort zu erzeugen: abbc = R1 abbc = R2 abbc = R2 abbac = R1 abbc = R3 abbac = R1 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 68 / 106 Warum ist das ein Feature und kein Bug? Erlaubt einfachere Definition von en Für manche Sprachen gibt es keine eindeutige en Eine beschreibt die Struktur der Wörter. Ein Wort kann mehrere mögliche Strukturen haben. Für natürliche Sprachen braucht man das unbedingt: Manche Sätze sind mehrdeutig (in ihrer ), also müssen auch die en mehrdeutig sein! Beispiel 6.12 (Mehrdeutige natürlichsprachlicher Sätze) Time flies like an arrow. Fruit flies like a banana. Beide Sätze haben zwei mögliche grammatische Strukturen. Erst unser semantisches Verständnis wählt eine aus. B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 69 / 106 B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 70 / 106

Erzeugte Sprache, Äquivalenz Definition 6.13 (Erzeugte Sprache) Gegeben: Eine G Die von G erzeugte Sprache L(G) ist die Menge aller terminalen Wörter, die durch G vom Startsymbol S aus erzeugt werden können: L(G) := {w T S = G w} Definition 6.14 (Äquivalenz) Zwei en G 1,G 2 heißen äquivalent gdw L(G 1 ) = L(G 2 ) B. Beckert Grundlagen d. Theoretischen Informatik: SS 2007 71 / 106