Grundbegriffe der Informatik

Ähnliche Dokumente
Grundbegriffe der Informatik Tutorium 2

Grundbegriffe der Informatik Tutorium 2

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Formale Sprachen und Automaten

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Was bisher geschah. Modellierung von Aussagen durch Logiken. Modellierung von Daten durch Mengen

Grundbegriffe der Informatik

Grundbegriffe der 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 der Informatik

Grundbegriffe der Informatik

Theorie der Informatik

Grundlagen der theoretischen Informatik

Grundlagen der Theoretischen Informatik

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik

Automaten und Formale Sprachen

7. Syntax: Grammatiken, EBNF

Kurz-Skript zur Theoretischen Informatik I

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Theoretische Informatik. Alphabete, Worte, Sprachen

Grundbegriffe der Informatik

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

Das Pumping-Lemma Formulierung

Automatentheorie und Formale Sprachen

Das Pumping Lemma der regulären Sprachen

Formale Sprachen und Automaten

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik Tutorium 12

Ist eine algorithmische Problemstellung lösbar und wenn ja, mit welchen Mitteln? was ist eine algorithmische Problemstellung?

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

Abschnitt 2: Daten und Algorithmen

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Grundbegriffe der Informatik

Formale Sprachen und endliche Automaten

(e) E = {(ba n b) n n N 0 }

Zusammenfassung. Satz. 1 Seien F, G Boolesche Ausdrücke (in den Variablen x 1,..., x n ) 2 Seien f : B n B, g : B n B ihre Booleschen Funktionen

Kapitel IV Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken

1.5 Turing-Berechenbarkeit

Grundbegriffe der Informatik

Zusammenfassung der letzten LVA. Diskrete Mathematik

Diskrete Strukturen Kapitel 2: Grundlagen (Mengen)

Theoretische Grundlagen des Software Engineering

MafI 1 Repetitorium Übungen

Einführung in die Theoretische Informatik

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

MATHEMATIK FÜR NATURWISSENSCHAFTLER I WINTERSEMESTER 2016/ OKTOBER 2016

Einführung in die theoretische Informatik

Einführung in die Computerlinguistik Satz von Kleene

Grundbegriffe der Informatik

Reguläre Sprachen und endliche Automaten

Deterministische endliche Automaten - Wiederholung

Satz von Kleene. (Stephen C. Kleene, ) Wiebke Petersen Einführung CL 2

4. Induktives Definieren - Themenübersicht

Grundbegriffe der Informatik

Einführung in die Theoretische Informatik

Deterministischer Kellerautomat (DPDA)

Sprachen und Programmiersprachen

Was bisher geschah Alphabet, Wort, Sprache

Einführung in die Theoretische Informatik

1. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004. Mit Lösung!

Programmierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

Kapitel 1. Grundlagen Mengen

3 Allgemeine Algebren

Inhalt Kapitel 5: Syntax

Grundlagen der Theoretischen Informatik

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

Grundbegriffe der Informatik

Transkript:

Grundbegriffe der Informatik Einheit 6: formale Sprachen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/18

Überblick Formale Sprachen Formale Sprachen Produkt formaler Sprachen Konkatenationsabschluss formaler Sprachen 2/18

Überblick Formale Sprachen Formale Sprachen Produkt formaler Sprachen Konkatenationsabschluss formaler Sprachen Formale Sprachen 3/18

Sprachen natürliche Sprache: Aussprache Stil, z. B. Wortwahl und Satzbau Welche Formulierungen sind syntaktisch korrekt? Ist und syntaktische welcher korrekt nicht? Informatik: Sprachen, die nicht natürlich sind: Programmiersprachen Aufbau von Emails, WWW-Seiten,... Eingabedateien für... Syntax Wie spezifiziert man, was korrekt ist? Wie überprüft man, ob etwas korrekt ist? Semantik Wie definiert man, was syntaktisch korrekte Gebilde bedeuten? darum kümmern wir uns später Formale Sprachen 4/18

Überblick Formale Sprachen Formale Sprachen Produkt formaler Sprachen Konkatenationsabschluss formaler Sprachen Formale Sprachen Formale Sprachen 5/18

Formale Sprachen Alphabet A gegeben Eine formale Sprache (über einem Alphabet A) ist eine Teilmenge L A. im Zusammenhang mit syntaktischer Korrektheit: formale Sprache L der syntaktisch korrekten Gebilde syntaktisch falsche Gebilde gehören nicht zu L Beispiele: A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -}. formale Sprache der Dezimaldarstellungen ganzer Zahlen enthält z.b. 1, -22 und 192837465, aber nicht 2-3---41. formale Sprache der syntaktisch korrekten Java-Programme enthält alle Java-Programme enthält zum Beispiel nicht: [2] class int)( Formale Sprachen Formale Sprachen 6/18

Überblick Formale Sprachen Formale Sprachen Produkt formaler Sprachen Konkatenationsabschluss formaler Sprachen Formale Sprachen Produkt formaler Sprachen 7/18

Produkt oder Konkatenation formaler Sprachen kennen schon Konkatenation von Wörtern Produkt der Sprachen L 1 und L 2 : L 1 L 2 = {w 1 w 2 w 1 L 1 w 2 L 2 } Lemma. Für jede formale Sprache L ist L {ε} = L = {ε} L. Formale Sprachen Produkt formaler Sprachen 8/18

Produkt oder Konkatenation formaler Sprachen kennen schon Konkatenation von Wörtern Produkt der Sprachen L 1 und L 2 : L 1 L 2 = {w 1 w 2 w 1 L 1 w 2 L 2 } Lemma. Für jede formale Sprache L ist L {ε} = L = {ε} L. Formale Sprachen Produkt formaler Sprachen 8/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Neutrales Element des Produkts formaler Sprachen Beweis des Lemmas. Einfaches Nachrechnen: L {ε} = {w 1 w 2 w 1 L w 2 {ε}} = {w 1 w 2 w 1 L w 2 = ε} = {w 1 ε w 1 L} = {w 1 w 1 L} = L Analog zeigt man L = {ε} L. Formale Sprachen Produkt formaler Sprachen 9/18

Potenzen von Sprachen wir wollen Potenzen L k formaler Sprachen definieren Problem : Was soll L 0 sein? Definiere: L 0 = {ε} k N 0 : L k+1 = L L k Einfaches Nachrechnen ergibt z. B.: L 1 = L L 2 = L L L 3 = L L L Genau genommen: L 3 = L (L L), aber: Konkatenation von Sprachen ist eine assoziative Operation. Formale Sprachen Produkt formaler Sprachen 10/18

Potenzen von Sprachen wir wollen Potenzen L k formaler Sprachen definieren Problem : Was soll L 0 sein? Definiere: L 0 = {ε} k N 0 : L k+1 = L L k Einfaches Nachrechnen ergibt z. B.: L 1 = L L 2 = L L L 3 = L L L Genau genommen: L 3 = L (L L), aber: Konkatenation von Sprachen ist eine assoziative Operation. Formale Sprachen Produkt formaler Sprachen 10/18

Potenzen von Sprachen wir wollen Potenzen L k formaler Sprachen definieren Problem : Was soll L 0 sein? Definiere: L 0 = {ε} k N 0 : L k+1 = L L k Einfaches Nachrechnen ergibt z. B.: L 1 = L L 2 = L L L 3 = L L L Genau genommen: L 3 = L (L L), aber: Konkatenation von Sprachen ist eine assoziative Operation. Formale Sprachen Produkt formaler Sprachen 10/18

Potenzen von Sprachen wir wollen Potenzen L k formaler Sprachen definieren Problem : Was soll L 0 sein? Definiere: L 0 = {ε} k N 0 : L k+1 = L L k Einfaches Nachrechnen ergibt z. B.: L 1 = L L 2 = L L L 3 = L L L Genau genommen: L 3 = L (L L), aber: Konkatenation von Sprachen ist eine assoziative Operation. Formale Sprachen Produkt formaler Sprachen 10/18

Beispiele für Produkt von Sprachen (1) L = {aa, b} Dann ist L 0 = {ε} L 1 = {aa, b} L 2 = {aa, b} {aa, b} = {aa aa, aa b, b aa, b b} = {aaaa, aab, baa, bb} L 3 = {aa aa aa, aa aa b, aa b aa, aa b b, b aa aa, b aa b, b b aa, b b b} = {aaaaaa, aaaab, aabaa, aabb, baaaa, baab, bbaa, bbb} Formale Sprachen Produkt formaler Sprachen 11/18

Beispiele für Produkt von Sprachen (2) Sei L = {a n b n n N + }, also sozusagen (immer diese Pünktchen... ) Was ist L 2 = L L? L = {ab, aabb, aaabbb, aaaabbbb,... }. L 2 = {ab ab, ab aabb, ab aaabbb,... } {aabb ab, aabb aabb, aabb aaabbb,... } {aaabbb ab, aaabbb aabb, aaabbb aaabbb,... }. Mit anderen Worten L 2 = {a n1 b n1 a n2 b n2 n 1 N + n 2 N + }. Beachte: die Exponenten n 1 vorne und n2 hinten heißen verschieden. Formale Sprachen Produkt formaler Sprachen 12/18

Beispiele für Produkt von Sprachen (2) Sei L = {a n b n n N + }, also sozusagen (immer diese Pünktchen... ) Was ist L 2 = L L? L = {ab, aabb, aaabbb, aaaabbbb,... }. L 2 = {ab ab, ab aabb, ab aaabbb,... } {aabb ab, aabb aabb, aabb aaabbb,... } {aaabbb ab, aaabbb aabb, aaabbb aaabbb,... }. Mit anderen Worten L 2 = {a n1 b n1 a n2 b n2 n 1 N + n 2 N + }. Beachte: die Exponenten n 1 vorne und n2 hinten heißen verschieden. Formale Sprachen Produkt formaler Sprachen 12/18

Potenzen mehrfach definiert für Alphabet A und für i N 0 hatten wir schon Potenzen A i definiert. Jedes Alphabet A kann man als formale Sprache L A auffassen (enthält alle Wörter der Länge 1) Man mache sich klar: A i ist ( im Wesentlichen ) das Gleiche wie L i A. Formale Sprachen Produkt formaler Sprachen 13/18

Überblick Formale Sprachen Formale Sprachen Produkt formaler Sprachen Konkatenationsabschluss formaler Sprachen Formale Sprachen Konkatenationsabschluss formaler Sprachen 14/18

Konkatenationsabschluss von L bei Alphabeten schon gesehen: A = i=0 Ai. der Konkatenationsabschluss L von L ist L = i=0 der ε-freie Konkatenationsabschluss L + von L ist L + = i=1 L i L i Man sieht: L = L 0 L +. Formale Sprachen Konkatenationsabschluss formaler Sprachen 15/18

Beispiele für Konkatenationsabschluss Es sei wieder L = {a n b n n N + }. haben schon gesehen: analog L 2 = {a n 1 b n 1 a n 2 b n 2 n 1 N + n 2 N + }. L 3 = {a n 1 b n 1 a n 2 b n 2 a n 3 b n 3 n 1 N + n 2 N + n 3 N + }. wir erlauben uns Pünktchen... : L i = {a n 1 b n1 a n i b n i n 1,..., n i N + }. Dann kann man für L + notieren: L + = {a n 1 b n1 a n i b n i i N + n 1,..., n i N + }. Sie merken (hoffentlich): L + und L sind präziser und kürzer hinzuschreiben als viele Pünktchen. Formale Sprachen Konkatenationsabschluss formaler Sprachen 16/18

Zwei Warnungen Die Bezeichnung ε-freier Konkatenationsabschluss für L + ist irreführend. Wie steht es um das leere Wort bei L + und L? Klar ist: ε L 0 L Aber: L = L 1 L +, wenn also ε L, dann auch ε L +. Beachte {} = {ε} Formale Sprachen Konkatenationsabschluss formaler Sprachen 17/18

Zwei Warnungen Die Bezeichnung ε-freier Konkatenationsabschluss für L + ist irreführend. Wie steht es um das leere Wort bei L + und L? Klar ist: ε L 0 L Aber: L = L 1 L +, wenn also ε L, dann auch ε L +. Beachte {} = {ε} Formale Sprachen Konkatenationsabschluss formaler Sprachen 17/18

Was ist wichtig Das sollten Sie mitnehmen: was formale Sprachen sind, wie ihr Produkt definiert ist und wie Konkatenationsabschluss und ε-freier Konkatenationsabschluss definiert sind. Das sollten Sie üben: Erkennen von Strukturen der Form L, L +, L 1 L 2 Lesen von Ausdrücken der Form (L + 1 L 2) usw. Rechnen mit formalen Sprachen Formale Sprachen Konkatenationsabschluss formaler Sprachen 18/18