Gegenstand der Vorlesung 1 I. Mittel zur Beschreibung/Spezifikation von Sprachen L; das sind Mengen von Zeichenreihen (Wörter) über einem Alphabet Σ. Bsp. Die Menge der (syntaktisch korrekten) Pascal-Programme bildet eine Sprache über dem ASCII-Zeichensatz. Slide 1 Drei Gruppen von Beschreibungsmittel: 1. Beschreibungsmittel, die auf das Erkennen von Wörtern in L abstellen: Endliche Automaten (deterministisch, nichtdeterministisch,...) Kellerautomaten (deterministisch, nichtdeterministisch) Typisch: Die Eingabe ist ein Wort w über Σ. Die Ausgabe ist JA, falls w L, und NEIN, falls w / L. Gegenstand der Vorlesung 2 2. Beschreibungsmittel, die auf das Erzeugen von Wörtern in einer Sprache abzielen: Grammatiken Slide 2 Bsp. Die Grammatik mit den Produktionen S asb ε erzeugt die Sprache {a n b n n N}. Anwendung: Beschreibung der Syntax von Programmiersprachen, Parsertechiken, Übersetzerbau,... 3. Beschreibungsmittel, die eine lineare, kompakte Aufschreibung von formalen Sprachen ermöglichen Reguläre Ausdrücke Bsp. 0 + 1(0 + 1) beschreibt die Sprache der Binärdarstellungen der natürlichen Zahlen.
Gegenstand der Vorlesung 3 II. Beziehungen zwischen den genannten Beschreibungsmitteln und Verfahren, diese äquivalent ineinander zu überführen. III. Klassifikation von Sprachen (Chomsky-Hierarchie): Reguläre Sprachen Slide 3 Kontextfreie Sprachen Kontextsensitive Sprachen Chomsky-0-Sprachen Wir zeigen: Reguläre Sprachen Kontextfreie Sprachen = Endliche Automaten = Rechtslineare Grammatiken = Kellerautomaten Gegenstand der Vorlesung 4 IV. Nachweismethoden dafür, daß eine gegebene Sprache nicht regulär oder nicht kontextfrei ist. Pumpinglemma Slide 4 V. Abschlußeigenschaften von Sprachenklassen: Unter welchen Operationen (auf Sprachen) sind die obigen Sprachklassen abgeschlossen. Anwendung: Modulare Beschreibung und Zusammenbau/Design von (formalen) Sprachen VI. Minimierung von endlichen Automaten: Verfahren, einen gegebenen endlichen Automaten in einen dazu äquivalenten endlichen Automaten mit minimaler Zustandsmenge zu überführen.
Endliche Folgen Slide 5 Bsp. (2, 3, 2, 2, 1, 6) (4, 3, 0, 1) (3, 0, 5) (3, 3) (1) () (a, b, a) (A, F, S, 2, 0, 0, 2) Allgemein: (a 0, a 1,..., a n 1 ) oder (a 1, a 2,...,a n ) für ein n N und Elemente a i aus einer gegebenen Menge. Bem. Wiederholungen sind erlaubt, Reihenfolge ist wichtig! Spezialfall n=0: die leere Folge () Spezialfall n=1: die Einerfolge (a 0 ) Def. Für eine Menge X sei die Menge der endlichen Folgen über X wie folgt definiert: Seq(X) := {(a 0,..., a n 1 ) n N, a 0,..., a n 1 X} Bsp. Seq(N), Seq({0, 1}), Seq({1}), Seq({a,...,z, A,..., Z, 0,..., 9}) Alphabete Slide 6 Bsp. einfach : {a,...,z,a,...,z,0,...,9} {0, 1} Binäres Alphabet {1} Unäres Alphabet komplex : ASCII-Zeichensatz (128 Zeichen) {0, 1} 8 Menge der 256 Bytes {0, 1} 32 Menge der Maschinenwörter Def. Ein Alphabet ist eine endliche, nichtleere Menge. Bem. Keine Alphabete sind z.b. oder N. Symbole für Alphabete: Σ,, Γ, Σ 0, Σ 1,...
Standardalphabete Def. Standardalphabete der Größe b N Slide 7 {0, 1,..., b 1} das b-äre Alphabet (b 2) {1, 2,..., b} das b-adische Alphabet (b 1) Def. Die Elemente eines Alphabets heißen Buchstaben. Bsp. a b c A B 0 7 @ # 40 64 128 (Eine Zahl ein Buchstabe!) 00100011 0010001110011101 Symbole für Buchstaben: a, b, c, d,..., a 0, a 1,... Wörter 1 Slide 8 Def. Ein Wort über Σ (synonym: Zeichenreihe, Zeichenkette, String) ist ein Element (a 0, a 1,...,a n 1 ) Seq(Σ). Bsp. (b,e,g,i,n) (+,1,.,0,E,2) (1,0,0,1,1,0,1) (A,B,r,a,C,a,d,a,b,r,a) () (e,n,d,.) Konvention: Klammern und Kommas weglassen, wo Verwechslung ausgeschlossen ist, d.h. schreibe a 0 a 1...a n 1 für (a 0, a 1,..., a n 1 ). Symbole für Wörter: w, u, v, x, y, z, w 0, w 1,... Def. Die Menge der Wörter über Σ, in Zeichen Σ, ist definiert durch Σ := {a 0 a 1...a n 1 n N, a 0, a 1,..., a n 1 Σ}. Ein spezielles Wort ist ε := (), das leere Wort.!! Nicht verwechseln mit dem ASCII-Zeichen space (Nummer 32).
Wörter 2 Bsp. {1} = {ε, 1, 11, 111, 1111, 11111,...} {0, 1} = {ε, 0, 1, 00, 01, 10, 11, 000, 001, 010,...} Slide 9 Def. Die Länge eines Wortes w=a 1... a n (bzw. w=a 0...a n 1 ) ist die Anzahl (n) der darin vorkommenden Buchstaben, in Zeichen w = n. Bsp. ababc = 5, 0 = 1, ε = 0. (0000,0010) = 2 für Σ = {0,1} 4. Bem. Σ 0 = {ε} Σ 1 = {(a) a Σ}. Identifiziere (a) (Wort) mit a (Buchstabe). Also können wir Σ Σ schreiben. Def. Die Menge der nichtleeren Wörter über Σ, in Zeichen Σ +, ist gegeben durch Σ + := Σ \{ε}. Wörter 3 Größere Wörter: Slide 10 Ein Pascal-Programm. Alphabet: Menge der druckbaren ASCII-Zeichen plus newline-zeichen und Tabulator-Zeichen. Ein Textfile. Alphabet: Menge der druckbaren ASCII-Zeichen plus newline-, Tabulator- und eof-zeichen. Ein ASCII-File. Alphabet: Alle ASCII-Zeichen inklusive der Steuerzeichen. Der Inhalt des Speichers eines Rechners mit 128 kb Hauptspeicher, gruppiert in Wörter à 32 Bit.
Konkatenation von Wörtern Slide 11 Bsp. 010 1110 = 0101110 abra cadabra = abracadabra (010,10) (11,01) = (010,10,11,01) Def. Die Konkatenation von Wörtern über Σ ist eine zweistellige Operation auf Σ (Abbildung : Σ Σ Σ ) definiert durch: Alternative Notation für u v: Bem. u v = u + v a 1... a n b 1...b m := a 1...a n b 1... b m u v oder uv Bem. (Σ, ) ist ein Monoid mit neutralem Element ε, d.h. Assoziativität: (u v) w = u (v w) Neutrales Element: ε u = u ε = u. Fazit: Bei mehrfacher oder geschachtelter Konkatenation kann man Klammern weglassen, wo eine Verwechslung ausgeschlossen ist. Anzahl Vorkommen und Wiederholungen Slide 12 Def. Für ein Wort w Σ und einen Buchstaben a Σ bezeichne w a die Anzahl der Vorkommen von a in w. Bsp. abcabdabb a = 3 und abcabdabb b = 4. Bem. u v a = u a + v a Bsp. Statt abacabacabac = abac abac abac schreibe kurz (abac) 3. Def. Für w Σ und i N sei das i-fache von w induktiv definiert: (i) w 0 := ε (ii) w i+1 := w w i Anschaulich: w i = w } w {{ w }. i mal Bsp. 0001 2 0 = 000110, 00(01) 2 0 = 0001010, (0001) 2 0 = 000100010.
Teilwort, Präfix, Suffix Slide 13 Bsp. In abracadabra kommt racada als (zusammenhängender) Teil vor. if 1+1=3 then a:=false endif beginnt mit if. if 1+1=3 then a:=false endif endet mit endif. Def. Seien w, u Wörter über Σ. u heißt Teilwort von w : w = v 1 uv 2 für gewisse v 1, v 2 Σ. Bem. v 1 und/oder v 2 können ε sein! u heißt Präfix von w, wenn gilt w = uv für ein Wort v Σ. u heißt Suffix von w, wenn w = vu für ein Wort v Σ. Bem. Das leere Wort ε ist Teilwort, Suffix und Präfix aller Wörter. Sprachen Def. Eine (formale) Sprache ist eine Teilmenge L Σ, für ein Alphabet Σ. In diesem Fall heißt L eine Sprache über Σ. Symbole für Sprachen: L, L 0, L 1,... Slide 14 Bsp. 1) Die Menge der syntaktisch korrekten Pascal-Programme bildet eine Sprache über dem ASCII-Alphabet. 2) Die Menge der Dezimaldarstellungen von Primzahlen bildet eine Sprache über {0,1,2,3,4,5,6,7,8,9}, nämlich: L = {2,3,5,7,11,13,17,19,23,29,31,37,41,...} Bem. Die Menge aller Primzahlen selbst ist keine Sprache!
Das Wortproblem für eine Sprache Slide 15 Def. Das Wortproblem für L Σ besteht in der Aufgabe, auf Eingabe w Σ zu entscheiden, ob w L (Ausgabe JA) oder w / L (Ausgabe NEIN) gilt. Bem. Alle Entscheidungsprobleme der Informatik (und viele der Mathematik) können via Kodierung als Wortprobleme für passende Sprachen formuliert werden. Thema der Vorlesung: Beschreibung/Spezifikation von Sprachen ( Grammatiken, reguläre Ausdrücke ) Mechanismen für Entscheidung Ist x L? ( Automaten, Maschinen ) Klassifikation von Sprachen Beispiele für Sprachen 1 Die leere Sprache:, auch L. Die ε-sprache: {ε}, auch L ε. Σ ist eine Sprache, da Σ Σ. Slide 16 Σ ist eine Sprache. Für jeden Buchstaben a Σ ist {a} eine Sprache. Für jeden Buchstaben a Σ ist eine Sprache über Σ. {a n n N} = {ε, a, aa, aaa,...} Bem. Wenn L Σ eine Sprache über Σ ist, dann ist L auch eine Sprache über jedem mit Σ.
Beispiele für Sprachen 2 Slide 17 {0, 1} + := {0, 1, 00, 01, 10, 11, 000, 001,...} (Bit-Strings ε) {0, 1} 8 {0, 1} 32 {0} {1w w {0, 1} } {1} = {ε, 1, 11, 111,...} (8-Bit-Wörter: Bytes) (32-Bit-Wörter: Maschinenwörter) (Binärdarstellungen aller n N) (Unärdarstellungen aller n N) L gerade = {0, 10, 100, 110, 1000, 1010, 1100, 1110, 10000,...} L prim = {10, 11, 101, 111, 1011, 1101, 10001, 10011,...} L PZ Zwilling ={bin(p)#bin(p+2) p, p+2 sind Primzahlen} ={11#101, 101#111, 1011#1101, 10001#10011,...} Bem. Es ist ein offenes Problem, ob diese Sprache endlich oder unendlich ist. Konkatenation auf Sprachen Def. Für Sprachen L 1 Σ und L 2 heißt L 1 L 2 := {w 1 w 2 w 1 L 1, w 2 L 2 } (Σ ) Slide 18 die Konkatenation von L 1 mit L 2. Alternativ: L 1 L 2 oder L 1 L 2 Bsp. {0} {1} = {0 i 1 j i, j N} {1}{0, 1} = {bin(n) n 1} Bem. Die Konkatenation von Sprachen ist assoziativ, hat L ε = {ε} als neutrales Element und L = als Annihilator, das heißt: (L 1 L 2 ) L 3 = L 1 (L 2 L 3 ) L {ε} = {ε} L = L L L = L L = L
Sprachpotenzen und Kleene-Abschluß Def. Für eine Sprache L Σ und i N bezeichne L i := {w 1... w i w 1,...,w i L} Slide 19 die i-te Potenz von L, wobei L 0 := {ε} gesetzt wird.!! Im allgemeinen gilt L i {w i w L}. Bsp. {00, 01} 2 = {0000, 0001, 0100, 0101} {0000, 0101} Def. Der Kleene-Abschluß von L, in Zeichen L, ist die Sprache L := {L i i N} = {ε} L L 2 L 3 = {w 1...w i i N, w 1,... w i L}. Ferner sei L + := L L 2 L 3 = L \{ε}. Weitere Operationen auf Sprachen Vereinigung L 1 L 2 Durchschnitt L 1 L 2 Komplement L = Σ \L Slide 20 Sprechweise: Klasse aller Sprachen Klasse aller unendlichen Sprachen Klasse aller Sprachen über einem zweielementigen Alphabet Klasse der regulären Sprachen (Diese Gesamtheiten sind genaugenommen keine Mengen.)
Die b-äre Zahldarstellung 1 Def. Sei b N mit b 2 und Σ := {0,..., b 1} das b-äre Alphabet. Der b-äre Wert eines Wortes a l 1... a 0 Σ ist wie folgt definiert: (a l 1...a 0 ) b := i<l a i b i N Slide 21 Eine b-äre Darstellung von n ist ein Wort a l 1... a 0 Σ mit n = (a l 1...a 0 ) b. Ist a l 1 0 oder a l 1... a 0 = 0, so heißt a l 1...a 0 die b-äre Darstellung von n. Spezialfälle: b = 2: Binärdarstellung b = 8: Oktaldarstellung b = 10: Dezimaldarstellung b=16: Hexadezimaldarstellung (10, 11,..., 15 = A,B,...,F) Satz (b-äre Darstellung). Jede natürliche Zahl n > 0 besitzt genau eine b-äre Darstellung a l 1... a 0 Σ mit a l 1 0. Die b-äre Zahldarstellung 2 Beweis. Wir zeigen dazu (Tafelanschrift!) den folgenden Hilfssatz: (a) Für l j 0, w := a l 1... a j+1 Σ und a Σ\{b 1} gilt: (wa(b 1) j ) b + 1 = (w(a+1)0 j ) b Slide 22 (b) Für l 0 gilt: ((b 1) l ) b + 1 = (10 l ) b (c) Für l 0 und a l 1... a 0 Σ gilt: (10 l ) b > (a l 1... a 0 ) b Def. Für n > 0 bezeichne bin(n) die Binärdarstellung von n, d.h. den eindeutig bestimmten Binärstring 1w {0, 1} mit Binärwert n=(1w) 2. Für n=0 setze bin(0) := 0. Def. Bezeichne n := bin(n) die binäre Länge von n. Bem. n = max{1, log(n+1) }
Die b-äre Zahldarstellung 3 Bem. n = log(n+1) = log n +1 für n > 0 1 Schicht 1 0 1 2 3 Schicht 2 Slide 23 4 0 1 5 6 0 1 7 Schicht 3 0 1 0 1 0 1 0 1 8 9 10 11 12 13 14 15 Schicht 4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 bin(n) = 1a l 2...a 0 mit Kantenbeschriftungen a l 2,...,a 0 auf dem Weg von 1 nach n. Die Knotenbeschriftung folgt bin(n) bin(n+1) gemäß HS. (a), (b). Nachtrag: Beweis des Hilfssatzes 1 Slide 24 (Gezeigt: Aus HS folgt Satz) Gelten die Voraussetzungen wie in HS. Zu (a) Ergibt sich wie folgt aus dem Schneeballprinzip: ( ) x i = xj 1 x 1 für jedes x R\{1} und j N. i<j l 1 (wa(b 1) j ) b + 1 = ( a i b i ) + a b j + ((b 1) b i ) + 1 i=j+1 } {{ } =:B ( ) = B + a b j + (b 1) bj 1 b 1 + 1 = B + (a + 1) b j i<j = (w(a + 1)0 j ) b Zu (b) Folgt aus (a) für w:=ε (verschwindet) und a:=0, denn: ((b 1) l ) b + 1 = (0(b 1) l ) b + 1 (a) = (10 l ) b
Nachtrag: Beweis des Hilfssatzes 2 Zu (c) Folgt ebenfalls aus ( ), denn: (a l 1... a 0 ) b = i<l a i b i Slide 25 i<l(b 1) b i ( ) = (b 1) bl 1 b 1 < b l = (10 l ) b