Kapitel 2: Formale Sprachen Gliederung

Größe: px
Ab Seite anzeigen:

Download "Kapitel 2: Formale Sprachen Gliederung"

Transkript

1 Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

2 u Anmerkungen es geht immer noch darum formale Sprachen mit Hilfe von Regeln (Chomsky-Grammatiken) zu beschreiben und zu verstehen, wie man das Wortproblem für so beschriebene Sprache lösen kann bisher haben wir uns vor allem mit regulären Grammatiken (Typ-3) und den durch sie beschriebenen Sprachen (regulären Sprachen) beschäftigt in diesem Kapitel schauen wir uns einen komplizierten Typ von Grammatiken (kontextfreien Grammatiken bzw. Typ-2 Grammatiken) und die durch sie beschriebene Sprachen (kontextfreie Sprachen) genauer an 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

3 u Warum machen wir das? es gibt Sprachen, die man nicht mit regulären Grammatiken beschreiben kann beispielsweise sind die folgenden Sprachen über dem Alphabet Σ = { 0,1 } keine regulären Sprachen L = { 0 n 1 n n N } L = { w Σ* w enthält genauso viele Nullen wie Einsen } Warum stimmen diese Behauptungen? 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

4 u Warum machen wir das? (cont.) u Anmerkung wir interessieren uns für Sprachen die man nicht mit regulären Grammatiken beschreiben kann die man aber mit kontextfreien Grammatiken beschreiben kann Vorteil: das Wortproblem für diese Sprachen ist effizient lösbar und man kann anhand der Grammatik einen effizienten Lösungsalgorithmus für das Wortproblem konstruieren wir könnten im Prinzip auch kontextsensitive Grammatiken (Typ-1) verwenden, um diese Sprachen zu beschreiben Nachteil: es ist unklar, wie man anhand einer solcher Grammatik einen effizienten Lösungsalgorithmus für das Wortproblem konstruieren soll 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

5 u Warum machen wir das? (cont.) neben den rein akademischen Argumenten gibt es noch ein praktisches Argument die meisten Sprachen, denen wir als Informatiker begegnen sind kontextfreie Sprachen (zumindest in ihrem Kern) einige Beispiel für solche Sprachen sind, die Mengen: aller Programme einer Programmiersprache, die ein Compiler übersetzen können sollte alle Dokumente, die ein Internet-Browser darstellen können sollte alle Dokumente, die ein Textverarbeitungssystems verarbeiten können sollte... 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

6 u Ein kleines Beispiel wir schauen uns eine einfache Programmiersprache genauer an, die in der Theoretischen Informatik (konkret in der Berechnungstheorie) eine wichtige Rolle spielt; das liegt daran, dass gilt: für jede berechenbare Funktion (über der Menge der natürlichen Zahlen) kann man ein Programm in dieser Programmiersprache angeben, das diese Funktion berechnet in dieser Programmiersprache gibt es nur die folgenden Sprachkonstrukte: Programmvariablen (/* x0,x1,x2,... */) Konstante (/* 0,1,2,... */) Wertzuweisungen (/* x0 := x1 + 0, x2:= x2-1,... */) While-Schleifen (/* while x2 0 do x0:= x0 + 1; x2 = x2-1 end */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

7 u Ein kleines Beispiel (cont.) das folgende Programm in dieser Programmiersprache addiert zwei Zahlen (/* diese Zahlen werden den Variablen x1 und x2 vor dem Programmstart zugewiesen; das Ergebnis steht nach Ende der Programmausführung in der Variablen x0 */) x0 := x1 + 0; while x2 0 do x0 = x0 + 1; x2 = x2-1; end 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

8 u Ein kleines Beispiel (cont.) mit der folgenden kontextfreien Grammatik, kann man genau alle Programme dieser Programmiersprache erzeugen <P> <A> und <P> <A> ; <P> <A> <V> := <V> + <K> und <A> <V> := <V> - <K> <A> while <V> 0 do <P> end <V> x<k> <K> 0,..., <K> 9 und <K> 1<K >,..., <K> 9<K > <K > 0,..., <K > 9 und <K > <K ><K > Anmerkung: die Variable <P> steht für Programm und ist die Startvariable; die Variable <A> steht für Anweisung, <V> für Programmvariable und <K> für Konstante 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

9 u Anmerkung es gibt Programmiersprachen (/* dazu gehören auch C++ und Java */) für die gilt: es gibt keine kontextfreie Grammatik, mit der man genau alle Programme dieser Programmiersprache erzeugen kann man kann aber eine kontextfreie Grammatik angeben, für die gilt: mit dieser Grammatik kann man eine echte Obermenge aller Programme dieser Programmiersprache erzeugen man kann sehr effizient überprüfen, ob ein mit dieser Grammatik erzeugtes Wort ein Programm dieser Programmiersprache ist oder nicht... auf diesen Aspekt bezog sich der Hinweis, dass die meisten Sprachen, die uns als Informatiker begegnen, im Kern kontextfreie Sprache sind 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

10 u Ein Beispiel anhand der folgenden Programmiersprache kann man den eben diskutierten Aspekt ganz gut illustrieren (/* für C++ und Java würde diese Diskussion mehr Zeit brauchen */) stammt auch aus der theoretischen Informatik (ist genauso leistungsfähig wie die zuvor betrachtete Programmiersprache) in dieser Programmiersprache werden (wie in Assembler) die Anweisungen durchnummeriert die zugehörigen Nummern werden verwendet, um die Programmabarbeitung zu steuern 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

11 u Ein Beispiel (cont.) das folgende Programm dieser Programmsprache kann benutzt werden, um zwei Zahlen zu addieren: (a0) x0 := x1 + 0 (a1) if x2 = 0 goto (a5) (a2) x0 := x0 + 1 (a3) x2 := x2-1 (a4) goto (a1) (a5) ende 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

12 u Ein Beispiel (cont.) eine geeignete Obermenge aller Programme dieser Programmiersprache kann man mit folgender kontextfreien Grammatik erzeugen: <P> <P > <E> <E> <AN> ende <P > <A> und <P > <A> <P > <A> <AN> <V> := <V> + <K> und <A> <AN> <V> := <V> - <K> <A> <AN> goto <AN> und <A> <AN> if <V> = 0 goto <AN> <AN> (a<k>) <V> x<k> <K> 0,..., <K> 9 und <K > 1<K >,..., <K> 9<K > <K > 0,..., <K > 9 und <K > <K ><K > 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

13 u Ein Beispiel (cont.) mit der angegebenen kontextfreien Grammatik kann man auch folgendes Wort erzeugen: (a3) x0 := x1 (a1) if x2 = 0 goto (a27) (a0) x0 := x0 + 1 (a3) x2 := x2-1 (a4) goto (a0) (a5) end dass dieses Wort kein korrektes Programm ist, kann man recht einfach rauskriegen (/* allgemein überprüft man, ob die Anweisungen in aufsteigender Reihenfolge durchnummeriert sind und ob die Nummer hinter jedem goto mit einer definierten Anweisung verknüpft ist */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

14 u Anmerkungen mit ähnlichen Problemen ist man konfrontiert, wenn man alle C++- bzw. Java-Programme mit einer kontextfreien Grammatik beschreiben will diese Probleme ergeben sich, weil in C++ bzw. Java alle Variablen und Funktionen vor ihrer Verwendung deklariert worden sein müssen und nur typ- bzw. signaturkonform verwendet werden dürfen vor der eigentlichen Übersetzung wird deshalb wie folgt vorgegangen: es werden alle verwendeten Variablen und Funktionen bestimmt es finden Prüfungen zur Typ- und Signaturkonformität statt es wird geprüft, ob das Programm mit Hilfe der zugrunde liegenden kontextfreien Grammatik erzeugt werden kann 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

15 u Zur Erinnerung: Begriff kontextfreie Grammatik (Typ-2 Grammatik) sei G = [Σ,V,S,R] eine Chomsky-Grammatik dann definieren wir: G ist genau dann eine kontextfreie Grammatik, wenn für alle Regeln l r in R gilt: die linke Seite l ist eine Variable aus V die rechte Seite r ist ein nichtleeres Wort aus (Σ V)* 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

16 u Zur Erinnerung: Begriff kontextfreie Sprache sei L Σ* dann definieren wir: L ist genau dann eine kontextfreie Sprache, wenn gilt: es gibt eine kontextfreie Grammatik G mit L(G) = L \ { ε }. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

17 u erstes Beispiel Palindrome ein Palindrom ist ein Wort, das von links nach rechts gelesen und von rechts nach links gelesen dasselbe Wort ergibt einige Beispiel: Reliefpfeiler (reliefpfeiler) Ein Esel lese nie (einesellesenie) /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

18 u erstes Beispiel Palindrome (cont.) wir interessieren uns für alle Palindrome über dem Alphabet Σ = { a,b,c } zugrunde liegende induktive Definition: Die Wörter a,b,c,aa,bb und cc sind Palindrome. Es sei w ein Palindrom. Dann sind auch die folgenden drei Wörter Palindrome: a w a, b w c und c w c. abgeleitete kontextfreie Grammatik für die Sprache, die alle Palindrome über den Alphabet Σ = { a,b,c } enthält folgende Regeln: S a b c und S aa bb cc S asa, S bsb und S csc Hinweis: S a b c steht für die drei Regel S a, S b und S c 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

19 u zweites Beispiel Σ = { a,b,c } L = { a i b c j i,j N und i j } zugrunde liegende induktive Definition der Sprache L: Das Wort abc gehört zur Sprache L. Es sei w ein Wort aus L. Dann gehören auch die folgenden zwei Wörter zur Sprache L: a w c und w c. abgeleitete kontextfreie Grammatik für die Sprache L, mit der Startvariablen S und zwei weiteren Variablen A und B: S A und S AB A abc und A aac B c und B cb 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

20 u drittes Beispiel sei Σ = { 0,1 } sei L = { 0 i 1 j 0 k i,j,k N und (i = j oder j = k) } kontextfreie Grammatik für die Sprache L, mit der Startvariablen S und drei weiteren Variablen A, B und C: S AB CA A 0 0A B 10 1B0 C 01 0C1 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

21 u.. und nun zum algorithmischen Aspekt sei L Σ* mit ε L es sei G = [Σ,V,S,R] eine kontextfreie Grammatik mit L(G) = L wir suchen einen Algorithmus, mit dem man für jedes Wort w Σ* entscheiden kann, ob w L gilt dazu benötigen wir den Begriff Ableitungsbaum und den Begriff kontextfreie Grammatik in Chomsky-Normalform... um den Fall, dass die Sprache L das leere Wort enthält, müssen wir uns nicht ernsthaft kümmern 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

22 u zentraler Begriff: Ableitungsbaum es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) Ein Ableitungsbaum für w ist ein Baum, für den gilt: seine Wurzel ist mit S markiert jeder innere Knoten ist mit einer Variablen A V markiert die Söhne eines inneren Knotens mit der Variablen A ergeben von links nach rechts gelesen die rechte Seite einer Regel zum Ersetzen von A die Blätter sind jeweils mit einem Buchstaben aus Σ markiert (/ *die Blätter von links nach rechts gelesen ergeben das Wort w */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

23 u Ableitungsbäume (/* Beispiele */) S AB CA A 0 0A B 10 1B0 C 01 0C1 w = S S C A A B 0 C 1 0 A 0 A 1 B /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

24 u Anmerkung es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) und B ein Ableitungsbaum für w... in B finden sich mehrere Ableitungen des Wortes w 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

25 u Illustration S AB CA A 0 0A B 10 1B0 C 01 0C1 w = S S G CA G 0C1A G 0011A G 00110A G C A S G CA G 0C1A G 0C10A G 0C100 G C 1 0 A S G CA G C0A G C00 G 0C100 G /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

26 u Anmerkung es sei G = [Σ,V,S,R] eine kontextfreie Grammatik es sei w L(G) es gibt in der Regel mehrere Ableitungsbäume für w in jedem Ableitungsbaum finden sich mehrere Ableitungen von w in jedem Ableitungsbaum findet sich eine eindeutig festgelegte Linksableitung von w (/* es wird jeweils die am weitesten links stehende Variable ersetzt */) in jedem Ableitungsbaum findet sich eine eindeutig festgelegte Rechtsableitung von w (/* es wird jeweils die am weitesten rechts stehende Variable ersetzt */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

27 u Anmerkung um herauszukommen, ob ein gegebenes Wort w aus der Startvariablen einer gegebenen kontextfreien Grammatik G ableitbar ist (d.h. zur Sprache L(G) gehört), versucht man eine Rechts- bzw. Linksableitung für das Wort w zu konstruieren oder nachzuweisen, dass es keine Links- bzw. Rechtsableitung für das Wort w gibt... das geht einfach, wenn die gegebene Grammatik bestimmte Eigenschaften hat (d.h. in Chomsky-Normalform ist) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

28 u Chomsky-Normalform für kontextfreie Grammatik es sei G = [Σ,V,S,R] eine kontextfreie Grammatik G ist in Chomsky-Normalform, falls für alle Regeln l r von G gilt: l V r = x mit x Σ oder r = AB mit A,B V u Einordnung Es sei L eine kontextfreie Sprache. Dann gibt es eine Grammatik G = [Σ,V,S,R] in Chomsky-Normalform, so dass L(G) = L \ { ε } gilt. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

29 u Vorteile von kontexfreien Grammatiken in Chomsky-Normalform (Teil 1) es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w L(G) mit w = n Jede Ableitung des Worts w benötigt genau 2n-1 viele Ableitungsschritte. u Hintergrund... jeder Ableitungsbaum für w ist mit Ausnahme der letzten Ebene ein Binärbaum... ein Binärbaum mit n Blättern hat n-1 viele innere Knoten 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

30 u Beispiel Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 S A C 0 S B A B /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

31 u Vorteile von Grammatiken in Chomsky-Normalform (/* Teil 2 */) es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1...x n es sei A V Das Wort w ist aus der Variablen A ableitbar (/* d.h. A G * w */) gdw. es tritt einer der folgenden beiden Fälle ein: Fall 1: falls n = 1 gilt, muß es die Regel A x 1 in G geben Fall 2: falls n > 1 gilt, muß es ein z { 1,...,n-1 }, Variablen B,C V und eine Regel A BC in G geben, so daß gilt: B G * x 1...x z C G * x z+1...x n... kann man benutzen, um unter Verwendung des Paradigmas der dynamischen Programmierung einen effizienten Algorithmus zur Lösung des Wortproblems für L(G) zu konzipieren 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

32 u Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1... x n verwendete Datenstruktur: Tabelle der Größe n n Zelle t[i][k] enthält Informationen, die das Teilwort x i x i+1... x i+k-1 betreffen (/* d.h. das Teilwort betreffen, welches in w an der Position i beginnt und aus k Zeichen besteht */) t[i][k] enthält die Variable A V, falls A G * x i x i+1... x i+k-1 gilt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

33 u Cocke-Younger-Kasami Algorithmus (cont.) Berechnungsvorschrift (/* jede Zelle auf und über der Nebendiagonalen enthält nach der Berechnung eine (eventuell leere) Menge von Variablen */): Eingabe: ein Wort w = x 1... x n (1) falls k = 1 ist, so gilt für eine Variable A genau dann A t[i][k], wenn es die Regel A x i in G gibt (2) falls k > 1 ist, so gilt für eine Variable A genau dann A t[i][k], wenn es eine Regel A BC in G gibt und für ein z { 1,...,k-1 } gilt, dass B t[i][z] und C t[i+z][k-z] gilt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

34 u Beispiel Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

35 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } { B } 1 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

36 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } { B } 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

37 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } 3 { C } { B } 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

38 u Beispiel (cont.) Σ = { 0,1 } V = { S,A,B,C } S w = 0011 S AC S AB C SB A 0 B 1 i k 1 { A } { A } { B } 2 { S } 3 { C } 4 { S } { B } S G AC G 0C G 0SB G 0ABB G 00BB G 001B G /5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

39 CYK-Algorithmus u Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,S,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1... x n für i = 1,...,n: setze t[i][1] := { A A x i } für k = 2,...,n: für i = 1,...,n - k + 1: setze t[i][k] := für z = 1,...,k - 1: füge ein A V zu t[i][z] hinzu, falls es B,C V mit folgenden Eigenschaften gibt: - B t[i][z] - C t[i+ z][k-z] - die Regel A BC gehört zu R falls S t[1][n], gib 1 aus; sonst gib 0 aus 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

40 u Cocke-Younger-Kasami Algorithmus löst das Wortproblem für eine kontextfreie Sprache L = L(G), falls die Grammatik G in Chomsky-Normalform ist der CYK-Algorithmus benötigt O(n 3 ) viele Schritte, um für ein Wort w der Länge n zu entscheiden, ob w L(G) oder w L(G) gilt (/* die Größe von G ist in der O-Notation versteckt */) der CYK- Algorithmus basiert auf dem Paradigma der dynamischen Programmierung... es gelte o.b.d.a. wieder ε L 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

41 u zurück zu Chomsky-Normalformen Es sei L eine kontextfreie Sprache. Dann gibt es eine kontextfreie Grammatik G = [Σ,V,S,R] in Chomsky-Normalform mit L(G) = L \ { ε }. es sei G = [Σ,V,S,R] eine kontextfreie Grammatik dann kann man aus G eine Grammatik G = [Σ,V,S,R ] in Chomsky- Normalform konstruieren, so dass L(G ) = L(G) gilt... der CYK-Algorithmus löst das Membership-Problem für alle kontextfreien Sprachen... bevor man den CYK-Algorithmus anwenden kann, ist ein Art pre-processing erforderlich (/* man muss zu G erst eine äquivalente Grammatik G in Chomsky-Normalform konstruieren */) 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

42 u Zur Erinnerung die Regeln einer kontextfreien Grammatik in Chomsky-Normalform dürfen nur die Form u Typen von Regeln X x bzw. X YZ haben um eine kontextfreie Grammatik G, die nicht in Chomsky-Normalform ist, in eine äquivalente kontextfreie Grammatik G in Chomsky-Normalform zu überführen, klassifizieren wir die Regeln von G wie folgt: Typ A: Regeln die schon in Chomsky-Normalform sind Typ B: Regeln, deren rechte Seiten mindestens zwei Zeichen enthalten Typ C: alle anderen Regeln, also genau die Regeln der Form X Y 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

43 u Zum Umgang mit Regeln vom Typ A hier ist nichts zu tun (die Regeln werden einfach in G übernommen) u Zum Umgang mit Regeln vom Typ B jede Regel von diesem Typ kann separat behandelt werden für jede Regel l r in G werden endlich viele äquivalente Regeln l 1 r 1,..., l k r k in Chomsky-Normalform in G aufgenommen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

44 u Details für den Umgang mit Regeln vom Typ B Regel in G: A ab anstatt der Regel A ab fügt man die folgenden Regeln zu G hinzu: H a a und H b b A H a H b... die Regel A ab entspricht der Regel A H a H b... offenbar kann man mit diesen drei neuen Regeln nicht mehr (und nicht weniger) tun, als mit der gegebenen Regel 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

45 u Details für den Umgang mit Regeln vom Typ B (cont.) Regel in G: A cxcy anstatt der Regel A cxcy fügt man die folgenden Regeln zu G hinzu: H c c A H c H 1, H 1 XH 2 und H 2 H c Y... die Regel A cxcy entspricht der Regel A H c XH c Y, deren rechte Seite aus vier Variablen besteht... offenbar kann man mit diesen vier neuen Regeln nicht mehr (und nicht weniger) tun, als mit der gegebenen Regel 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

46 u Schritte des pre-processing Schritt 0: Schritt 1: Schritt 2: Schritt 3: Die Regeln von G werden in drei Gruppen R A, R B und R C aufgeteilt (/* R A enthält alle Regeln vom Typ A; R B alle vom Typ B; R C alle vom Typ C */). Alle Regeln aus R A in die Regelmenge von G übernommen. Für jede Regel aus R B werden äquivalente Regeln in Chomsky- Normalform in die Regelmenge von G aufgenommen. Es wird sich um die Regeln in R C gekümmert. 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

47 u Beispiel (/* Schritt 0 bis Schritt 2 */) Σ = { a,b } V = { S } Σ = { a,b } V = { S,H a,h b,v 1 } S asb S ab S H a V 1 V 1 SH b S H a H b H a a H b b 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

48 u Anmerkungen zu Schritt 3 da wir wissen, wie man kontextfreie Regeln vom Typ B äquivalent durch kontextfreie Regeln in Chomsky-Normalform ersetzt, müssen wir nur noch den folgenden Fall betrachten gegeben ist eine kontextfreie Grammatik G, die nur Regeln vom Typ A (also Regeln in Chomsky-Normalform) und Regeln vom Typ C (also Regeln der Form X Y) enthält Regeln vom Typ C kann man nicht separat ersetzen, d.h. man muss beachten, welche anderen Regeln in G vorkommen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

49 u generelle Idee sei X Y eine Regel vom Typ C seien Y l 1,..., Y l k alle Regeln vom Typ A mit der linken Seite Y dann gehe wie folgt vor: streiche die Regel X Y nimm die Regeln X l 1,..., X l k auf da die Regeln Y l 1,..., Y l k in Chomsky-Normalform sind, sind die neuen Regeln X l 1,..., X l k auch in Chomsky-Normalform 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

50 u Beispiel Σ = { a,b } V = { S,A,B} S AA S AB S A A BB A a B b Σ = { a,b } V = { S,A,B } S AA S AB A BB A a B b S BB S a 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

51 u Anmerkungen es geht nicht immer so einfach... S AA und S B A a und A B B b und B A falls wir uns um die Regel S B kümmern, so erhalten wir: S AA, S b und S A A a und A B B b und B A falls wir uns jetzt um die Regel S A kümmern, so erhalten wir: S AA, S b, S a und S B A a und A B B b und B A... das Spiel können wir beliebig iterieren 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

52 u Anmerkungen (cont.) besser ist es wie folgt vorzugehen S AA und S B A a und A B B b und B A wir schauen uns nur die Regeln vom Typ C an S A, A B und B A da sie einen Zyklus enthalten, können wir die Variablen A und B in jeder Regel von G durch eine neue Variable H ersetzen S AA und S H H a und H H H b und H C... jetzt können wir die Regeln H H streichen und wie gehabt weitermachen 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

53 u Verallgemeinerung (/* Schritt 3 */) betrachte in G alle Regeln vom Typ C gemeinsam, d.h. alle Regeln der Form X Y überprüfe, ob diese Regeln zyklenfrei sind falls ja, wähle eine neue Variable H und ersetze in jeder Regel von G jeder Variable X, die in diesem Zyklus vorkommt, durch die neue Variable H und streiche alle neuen Regeln der Form H H falls nein, verfahre mit den verbliebenden Regeln der Form X Y wie bereits erläutert, wobei zu beachten ist: im Fall, dass mehr als eine Regel vom Typ C übrigbleibt, wähle stets eine Regel X Y für die es keine Regel der Form Y Z in der Menge der verbliebenden Regeln vom Typ C gibt 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

54 u Beispiel Σ = { a,b } V = { S,A,B,C } Σ = { a,b } V = { S,H } S AA S AC S A A B B A B C A a B b C AA S A A B B A B C A = B S HH S HC S H H H H H H C H a H b C HH S HH S HC S H H HH H a H b C HH... 2/5, Folie Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

Kapitel 2: Formale Sprachen Gliederung

Kapitel 2: Formale Sprachen Gliederung Gliederung 0. Einleitung und Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. Chomsky-Grammatiken 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen

Mehr

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen

Kapitel 2: Formale Sprachen Kontextfreie Sprachen. reguläre Grammatiken/Sprachen. kontextfreie Grammatiken/Sprachen reguläre Grammatiken/prachen Beschreibung für Bezeichner in Programmiersprachen Beschreibung für wild cards in kriptsprachen (/* reguläre Ausdrücke */)?; [a-z]; * kontextfreie Grammatiken/prachen Beschreibung

Mehr

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

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 15.01.2015 INSTITUT FÜR THEORETISCHE 0 KIT 15.01.2015 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Klammersprache Definiere

Klammersprache Definiere Klammersprache w=w 1...w n {(,)}* heißt korrekt geklammert, falls die Anzahl ( ist gleich der Anzahl ). in jedem Anfangsstück w 1,...,w i (i n) ist die Anzahl ( nicht kleiner als die Anzahl ). Definiere

Mehr

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

Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Lemma Für jede monotone Grammatik G gibt es eine kontextsensitive Grammatik G mit L(G) = L(G ). Beweis im Beispiel (2.): G = (V,Σ, P, S) : P = {S asbc, S abc, CB BC, ab ab, bb bb, bc bc, cc cc}. (i) G

Mehr

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung

Kapitel 3: Grundlegende Ergebnisse aus der Komplexitätstheorie Gliederung Gliederung 1. Berechenbarkeitstheorie 2. Grundlagen 3. Grundlegende Ergebnisse aus der Komplexitätstheorie 4. Die Komplexitätsklassen P und NP 5. Die Komplexitätsklassen RP und BPP 3.1. Ressourcenkompression

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

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

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung Theoretische Informatik Rainer Schrader Zentrum für Angewandte Informatik Köln 14. Juli 2009 1 / 40 2 / 40 Beispiele: Aus den bisher gemachten Überlegungen ergibt sich: aus der Chomsky-Hierarchie bleiben

Mehr

Kapitel 3: Berechnungstheorie Gliederung

Kapitel 3: Berechnungstheorie Gliederung Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und

Mehr

I.5. Kontextfreie Sprachen

I.5. Kontextfreie Sprachen I.5. Kontextfreie prachen Zieht man in Betracht, dass BNF-yteme gerade so beschaffen sind, dass auf der linken eite immer genau ein Nichtterminal steht, so sind das also gerade die Ableitungsregeln einer

Mehr

Kapitel 3: Berechnungstheorie Gliederung

Kapitel 3: Berechnungstheorie Gliederung Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und

Mehr

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Sommersemester 2016 Steffen Lange 0/1, Folie 1 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik Literatur S. Lange, M. Margraf, Theoretische Informatik, Lehrmaterial

Mehr

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

Umformung NTM DTM. Charakterisierung rek. aufz. Spr. Chomsky-3-Grammatiken (T5.3) Chomsky-0-Grammatik Rek. Aufz. Chomsky-0-Grammatik Rek. Aufz. Satz T5.2.2: Wenn L durch eine Chomsky-0- Grammatik G beschrieben wird, gibt es eine NTM M, die L akzeptiert. Beweis: Algo von M: Schreibe S auf freie Spur. Iteriere: Führe

Mehr

Kapitel 3: Berechnungstheorie Gliederung

Kapitel 3: Berechnungstheorie Gliederung Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 3.1. Einordnung 3.2. Berechnungsmodelle 3.3. Diskussion 3.4. Ergebnisse und

Mehr

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

Übungsblatt 7. Vorlesung Theoretische Grundlagen der Informatik im WS 16/17 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 7 Vorlesung Theoretische Grundlagen der Informatik im W 16/17 Ausgabe 17. Januar 2017 Abgabe 31. Januar 2017, 11:00 Uhr (im

Mehr

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

Grammatiken. Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken Grammatiken sind regelbasierte Kalküle zur Konstruktion von Systemen und Sprachen Überprüfung von Systemen und Sprachen Grammatiken eignen sich besonders zur Modellierung beliebig tief geschachtelter,

Mehr

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

Übungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 10. Januar 2018 Abgabe 23. Januar 2018, 11:00 Uhr (im

Mehr

Kontextfreie (Typ-2) Sprachen

Kontextfreie (Typ-2) Sprachen Kontextfreie (Typ-2) prachen Bsp.: L 1 = { n 1 n n>} с {,1}* 1 1 L 2 = {w wє{,1}* und w=w rev } с {,1}* 11 1 ε L 3 = {w w hat genausoviele Nullen wie Einsen} с {,1}* B 1 ε 1 B 1 1 BB 1 11 11 11 11B 111

Mehr

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden

Maike Buchin 18. Februar 2016 Stef Sijben. Probeklausur. Theoretische Informatik. Bearbeitungszeit: 3 Stunden Maike Buchin 8. Februar 26 Stef Sijben Probeklausur Theoretische Informatik Bearbeitungszeit: 3 Stunden Name: Matrikelnummer: Studiengang: Geburtsdatum: Hinweise: Schreibe die Lösung jeder Aufgabe direkt

Mehr

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

Theorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung

Mehr

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

Kapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14 Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen

Mehr

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen

Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen Was bisher geschah Chomsky-Hierarchie für Sprachen: L 0 Menge aller durch (beliebige) Grammatiken beschriebenen Sprachen L 1 Menge aller monotonen (Kontextsensitive) Sprachen L 2 Menge aller kontextfreien

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen Bedeutung: Programmiersprachen (Compilerbau) Syntaxbäume Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung

Mehr

Automatentheorie und formale Sprachen

Automatentheorie und formale Sprachen Automatentheorie und formale Sprachen VL 8 Chomsky-Grammatiken Kathrin Hoffmann 23. Mai 2012 Hoffmann (HAW Hamburg) Automatentheorie und formale Sprachen 23.5. 2012 250 Wortproblem Wortproblem ist das

Mehr

2.1 Allgemeines. Was ist eine Sprache? Beispiele:

2.1 Allgemeines. Was ist eine Sprache? Beispiele: Was ist eine Sprache? Beispiele: (a) Deutsch, Japanisch, Latein, Esperanto,...: Natürliche Sprachen (b) Pascal, C, Java, Aussagenlogik,...: Formale Sprachen Wie beschreibt man eine Sprache? (i) Syntax

Mehr

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

Lösung zur Klausur. Grundlagen der Theoretischen Informatik im WiSe 2003/2004 Lösung zur Klausur Grundlagen der Theoretischen Informatik im WiSe 2003/2004 1. Geben Sie einen deterministischen endlichen Automaten an, der die Sprache aller Wörter über dem Alphabet {0, 1} akzeptiert,

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (II) 11.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

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

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung. Grundbegriffe. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.. Chomsky-Grammatiken 2.2. Reguläre Sprachen (noch weiter) 2.3. Kontextfreie Sprachen 2/4,

Mehr

Automaten und formale Sprachen Klausurvorbereitung

Automaten und formale Sprachen Klausurvorbereitung Automaten und formale Sprachen Klausurvorbereitung Rami Swailem Mathematik Naturwissenschaften und Informatik FH-Gießen-Friedberg Inhaltsverzeichnis 1 Definitionen 2 2 Altklausur Jäger 2006 8 1 1 Definitionen

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (III) 17.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Übersicht 1. Motivation 2. Terminologie

Mehr

Kontextfreie Sprachen

Kontextfreie Sprachen Kontextfreie Sprachen besitzen große Bedeutung im Compilerbau Chomsky-Normalform effiziente Lösung des Wortproblems (CYK-Algorithmus) Grenzen kontextfreier Sprachen (Pumping Lemma) Charakterisierung durch

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 17. Januar 2012 INSTITUT FÜR THEORETISCHE 0 KIT 18.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der

Mehr

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 4. Kellerautomaten und kontextfreie Sprachen (I) 3.06.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Organisatorisches 1. Teilklausur: Mittwoch,

Mehr

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

Informatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung 09.11.2006 schindel@informatik.uni-freiburg.de 1 Äquivalenzklassen Definition und Beispiel Definition Für eine Sprache L Σ* bezeichnen

Mehr

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

Informatik III. Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung Informatik III Christian Schindelhauer Wintersemester 2006/07 6. Vorlesung 10.11.2006 schindel@informatik.uni-freiburg.de 1 Kapitel IV Kontextfreie Sprachen Kontextfreie Grammatik Informatik III 6. Vorlesung

Mehr

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

Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester 2005/2006 07.11.2005 5. Vorlesung 1 Überblick: Kontextfreie Sprachen Formale Grammatik Einführung, Beispiele Formale

Mehr

Automaten und formale Sprachen Notizen zu den Folien

Automaten und formale Sprachen Notizen zu den Folien Automaten und formale prachen Notizen zu den Folien 10 Kontextfreie Grammatiken Beispiele für kontextfreien Grammatiken ei Σ = {a, b}. Beispiel 1 (Folie 233, oben) Geben ie eine kontextfreie Grammatik

Mehr

Automaten und formale Sprachen Notizen zu den Folien

Automaten und formale Sprachen Notizen zu den Folien Automaten und formale prachen Notizen zu den Folien 10 Kontextfreie Grammatiken Beispiele für kontextfreien Grammatiken ei Σ = {a, b}. Beispiel 1 (Folie 211, oben) Geben ie eine kontextfreie Grammatik

Mehr

Alphabet, formale Sprache

Alphabet, formale Sprache n Alphabet Alphabet, formale Sprache l nichtleere endliche Menge von Zeichen ( Buchstaben, Symbole) n Wort über einem Alphabet l endliche Folge von Buchstaben, die auch leer sein kann ( ε leere Wort) l

Mehr

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

Grundlagen der Informatik II. Teil I: Formale Modelle der Informatik Grundlagen der Informatik II Teil I: Formale Modelle der Informatik 1 Einführung GdInfoII 1-2 Ziele/Fragestellungen der Theoretischen Informatik 1. Einführung abstrakter Modelle für informationsverarbeitende

Mehr

(Prüfungs-)Aufgaben zu formale Sprachen

(Prüfungs-)Aufgaben zu formale Sprachen (Prüfungs-)Aufgaben zu formale Sprachen (siehe auch bei den Aufgaben zu endlichen Automaten) 1) Eine Grammatik G sei gegeben durch: N = {S, A}, T = {a, b, c, d}, P = { (S, Sa), (S, ba), (A, ba), (A, c),

Mehr

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

Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden kann. Der Satz von Kleene Wir haben somit Folgendes bewiesen: Der Satz von Kleene Sei Σ ein endliches Alphabet. Eine Sprache L Σ ist genau dann regulär, wenn sie von einem regulären Ausdruck beschrieben werden

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik 1 Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Wintersemester 2014/15 2 Kontextfreie Grammatiken Definition: Eine Grammatik G

Mehr

Theorie der Informatik

Theorie der Informatik Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax

Mehr

1 Automatentheorie und Formale Sprachen

1 Automatentheorie und Formale Sprachen Sanders: TGI October 29, 2015 1 1 Automatentheorie und Formale Sprachen 1.1 Allgemeines Sanders: TGI October 29, 2015 2 Beispiel: Arithmetische Ausdrücke:EXPR Σ={1,a,+,,,(,)} a ist Platzhalter für Konstanten

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Tutorium 2 Professor Dr. Hartmut Schmeck Miniaufgabe * bevor es losgeht * Finden Sie die drei Fehler in der Automaten- Definition. δ: A = E, S, δ, γ, s 0, F, E = 0,1, S = s

Mehr

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016

Vorlesung im Sommersemester Informatik IV. Probeklausurtermin: 21. Juni 2016 Heinrich-Heine-Universität Düsseldorf Institut für Informatik Prof. Dr. J. Rothe Universitätsstr. 1, D-40225 Düsseldorf Gebäude: 25.12, Ebene: O2, Raum: 26 Tel.: +49 211 8112188, Fax: +49 211 8111667 E-Mail:

Mehr

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie WS 11/12 155 Überblick Zunächst einmal definieren wir formal den Begriff

Mehr

Formale Sprachen. Script, Kapitel 4. Grammatiken

Formale Sprachen. Script, Kapitel 4. Grammatiken Formale Sprachen Grammatiken Script, Kapitel 4 erzeugen Sprachen eingeführt von Chomsky zur Beschreibung natürlicher Sprache bedeutend für die Syntaxdefinition und -analyse von Programmiersprachen Automaten

Mehr

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen -

Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Algorithmen und Datenstrukturen I - Exkurs Formale Sprachen - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 1 Exkurs: Formale

Mehr

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An

Definition 4 (Operationen auf Sprachen) Beispiel 5. Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A + = n 1 An Definition 4 (Operationen auf Sprachen) Seien A, B Σ zwei (formale) Sprachen. Konkatenation: AB = {uv ; u A, v B} A 0 = {ɛ}, A n+1 = AA n A = n 0 An A + = n 1 An Beispiel 5 {ab, b}{a, bb} = {aba, abbb,

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Verarbeitung von Programmiersprachen Was ist das einfachste

Mehr

Kapitel 0: Grundbegriffe Gliederung

Kapitel 0: Grundbegriffe Gliederung Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechenbarkeitstheorie 4. Komplexitätstheorie 5. Kryptographie 0/2, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik

Mehr

Informatik IC2. Balazs Simon

Informatik IC2. Balazs Simon Informatik IC2 Balazs Simon Inhaltsverzeichnis 1 Contextfreie Sprachen 3 1.1 Ableitungsbaum..................................... 3 1.2 Schönheit........................................ 4 1.3 Normalformen......................................

Mehr

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45

Kontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 45 Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 45 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs beliebig tief geschachtelten

Mehr

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b

q 0 q gdw. nicht (q A) (q A) q i+1 q gdw. q i q oder ( a Σ) δ(q, a) i δ(q, a) L = {a n b n : n N} für a, b Σ, a b Kap. 2: Endliche Automaten Myhill Nerode 2.4 Minimalautomat für reguläre Sprache Abschnitt 2.4.3 L Σ regulär der Äuivalenzklassen-Automat zu L ist ein DFA mit minimaler Zustandszahl (= index( L )) unter

Mehr

Grammatiken. Einführung

Grammatiken. Einführung Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische

Mehr

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie 1 Einführung 2 Typ-0- und Typ-1-Sprachen 3 Berechnungsmodelle 4 Unentscheidbarkeit 5 Unentscheidbare Probleme 6 Komplexitätstheorie 139 Unentscheidbarkeit Überblick Zunächst einmal definieren wir formal

Mehr

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

Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Nachklausur zur Vorlesung Informatik 3 mit einigen Anmerkungen zu Lösungen Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 6 7 7 8 8 12 err. Punkte Gesamtpunktzahl: Note: 1 Aufgabe 1 (3+1+1+1 = 6 Punkte) Es seien

Mehr

Tutoraufgabe 1 (ɛ-produktionen):

Tutoraufgabe 1 (ɛ-produktionen): Prof aa Dr J Giesl Formale Systeme, Automaten, Prozesse SS 2010 M Brockschmidt, F Emmes, C Fuhs, C Otto, T Ströder Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus dem gleichen Tutorium

Mehr

1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Klausur Einführung in die Theoretische Informatik Seite 1 von 14 1. Welche der folgenden Aussagen zu Normalformen einer aussagenlogischen Formel A ist falsch? A. Für Formel A existiert eine KNF K, sodass

Mehr

Beschreibungskomplexität von Grammatiken Definitionen

Beschreibungskomplexität von Grammatiken Definitionen Beschreibungskomplexität von Grammatiken Definitionen Für eine Grammatik G = (N, T, P, S) führen wir die folgenden drei Komplexitätsmaße ein: Var(G) = #(N), Prod(G) = #(P ), Symb(G) = ( α + β + 1). α β

Mehr

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

Grammatiken. Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V. Startsymbol S V. Kurzschreibweise G = (V, Σ, P, S) Grammatiken Eine Grammatik G mit Alphabet Σ besteht aus: Variablen V Startsymbol S V Produktionen P ( (V Σ) \ Σ ) (V Σ) Kurzschreibweise G = (V, Σ, P, S) Schreibweise für Produktion (α, β) P: α β 67 /

Mehr

Kapitel 2: Formale Sprachen Gliederung

Kapitel 2: Formale Sprachen Gliederung Gliederung. Einleitung und Grundbegriffe. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.. Chomsky-Grammatiken 2.2. Reguläre Sprachen Reguläre Grammatiken, ND-Automaten

Mehr

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie

Theoretische Informatik Kap 1: Formale Sprachen/Automatentheorie Gliederung der Vorlesung. Grundbegriffe. Formale Sprachen/Automatentheorie.. Grammatiken.2..3. Kontext-freie Sprachen 2. Berechnungstheorie 2.. Berechenbarkeitsmodelle 2.2. Die Churchsche These 2.3. Unentscheidbarkeit

Mehr

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

Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 12 LÖSUNGEN Universität Heidelberg / Institut für Informatik 7. Juli 24 Prof. Dr. Klaus Ambos-Spies Nadine Losert Übungen zur Vorlesung Einführung in die Theoretische Informatik, Blatt 2 LÖSUNGEN Aufgabe Verwenden

Mehr

Mehrdeutige Grammatiken

Mehrdeutige Grammatiken Mehrdeutige Grammatiken Wir haben gesehen, dass es auch mehr als eine Linksableitung, d.h. mehr als einen Syntaxbaum geben kann, um das selbe Terminalwort zu erzeugen. Eine Grammatik, die für mindestens

Mehr

Grundlagen der Informatik II

Grundlagen der Informatik II Grundlagen der Informatik II Dr.-Ing. Sven Hellbach S. Hellbach Grundlagen der Informatik II Abbildungen entnommen aus: Dirk W. Hoffmann: Theoretische Informatik; Hanser Verlag 2011, ISBN: 978-3-446-42854-6

Mehr

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7

Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 7 Prof. J. Esparza Technische Universität München S. Sickert, J. Krämer KEINE ABGABE Einführung in die theoretische Informatik Sommersemester 2017 Übungsblatt 7 Übungsblatt Wir unterscheiden zwischen Übungs-

Mehr

Programmiersprachen und Übersetzer

Programmiersprachen und Übersetzer Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch

Mehr

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

Dank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs) ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 18. Januar 2018 INSTITUT FÜR THEORETISCHE 0 18.01.2018 Dorothea Wagner - Theoretische Grundlagen der Informatik INSTITUT FÜR THEORETISCHE KIT Die Forschungsuniversität

Mehr

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

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reguläre Ausdrücke als Suchmuster für grep 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

Mehr

Grundbegriffe. Grammatiken

Grundbegriffe. Grammatiken Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte

Mehr

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik

2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik 2. Teilklausur zur Vorlesung Grundlagen der Theoretischen Informatik Ulrich Furbach Claudia Schon Christian Schwarz Arbeitsgruppe Künstliche Intelligenz Fachbereich Informatik, Universität Koblenz-Landau

Mehr

Chomsky-Grammatiken 16. Chomsky-Grammatiken

Chomsky-Grammatiken 16. Chomsky-Grammatiken Chomsky-Grammatiken 16 Chomsky-Grammatiken Ursprünglich von Chomsky in den 1950er Jahren eingeführt zur Beschreibung natürlicher Sprachen. Enge Verwandschaft zu Automaten Grundlage wichtiger Softwarekomponenten

Mehr

Motivation natürliche Sprachen

Motivation natürliche Sprachen Motivation natürliche Sprachen (Satz) (Substantivphrase)(Verbphrase) (Satz) (Substantivphrase)(Verbphrase)(Objektphrase) (Substantivphrase) (Artikel)(Substantiv) (Verbphrase) (Verb)(Adverb) (Substantiv)

Mehr

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

Formale Sprachen. Grammatiken und die Chomsky-Hierarchie. Rudolf FREUND, Marian KOGLER Formale Sprachen Grammatiken und die Chomsky-Hierarchie Rudolf FREUND, Marian KOGLER Grammatiken Das fundamentale Modell zur Beschreibung von formalen Sprachen durch Erzeugungsmechanismen sind Grammatiken.

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Johannes Köbler Institut für Informatik Humboldt-Universität zu Berlin WS 2011/12 Die Registermaschine (random access machine, RAM) 0 I 0 1 I 1 2 I 2 m I m Programm

Mehr

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

Reguläre Sprachen. R. Stiebe: Theoretische Informatik für ING-IF und Lehrer, Reguläre Sprachen Reguläre Sprachen (Typ-3-Sprachen) haben große Bedeutung in Textverarbeitung und Programmierung (z.b. lexikalische Analyse) besitzen für viele Entscheidungsprobleme effiziente Algorithmen

Mehr

4.2 Die Chomsky Normalform

4.2 Die Chomsky Normalform 4.2 Die Chomsky Normalform Für algorithmische Problemstellungen (z.b. das Wortproblem) aber auch für den Nachweis von Eigenschaften kontextfreier Sprachen ist es angenehm, von CFG in Normalformen auszugehen.

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 10.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik Sommersemester 2015 22.04.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt 1. Terminologie 2. Endliche Automaten und reguläre Sprachen

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 -

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen - 1 - 1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik "Informatik" = Kunstwort aus Information und Mathematik

Mehr

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

WS06/07 Referentin: Katharina Blinova. Formale Sprachen. Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven WS06/07 Referentin: Katharina Blinova Formale Sprachen Hauptseminar Intelligente Systeme Dozent: Prof. Dr. J. Rolshoven 1. Allgemeines 2. Formale Sprachen 3. Formale Grammatiken 4. Chomsky-Hierarchie 5.

Mehr

Theoretische Informatik I (Grundzüge der Informatik I)

Theoretische Informatik I (Grundzüge der Informatik I) Theoretische Informatik I (Grundzüge der Informatik I) Literatur: Buch zur Vorlesung: Uwe Schöning, Theoretische Informatik - kurzgefasst. Spektrum Akademischer Verlag, Heidelberg/Berlin, 4. Auflage, 2001.

Mehr

Was bisher geschah: Formale Sprachen

Was bisher geschah: Formale Sprachen Was bisher geschah: Formale Sprachen Alphabet, Wort, Sprache Operationen und Relationen auf Wörtern und Sprachen Darstellung unendlicher Sprachen durch reguläre Ausdrücke (Syntax, Semantik, Äquivalenz)

Mehr

Kontextfreie Grammatiken

Kontextfreie Grammatiken Kontextfreie Grammatiken Bisher haben wir verschiedene Automatenmodelle kennengelernt. Diesen Automaten können Wörter vorgelegt werden, die von den Automaten gelesen und dann akzeptiert oder abgelehnt

Mehr

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen

Informales Beispiel. Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen. Grammatiken. Anmerkungen Informales Beispiel Formale Grundlagen der Informatik 1 Kapitel 6 Eigenschaften kontextfreier Sprachen Frank Heitmann heitmann@informatik.uni-hamburg.de 22. April 2014 I L IL ID L a b c D 0 1 2 3 4 Eine

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert Institut für Informatik Sommersemester 2007 B. Beckert Grundlagen d. Theoretischen Informatik:

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft und Grammatiken (Folie 119, eite 202 im kript) atzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft a, b, c,... für Terminalsymbole A, B, C,... für Nonterminale u, v, w,... für Terminalwörter

Mehr

Theoretische Informatik I

Theoretische Informatik I Theoretische nformatik inheit 3 Kontextfreie Sprachen 1. Kontextfreie Grammatiken 2. Pushdown Automaten 3. igenschaften kontextfreier Sprachen Theoretische nformatik inheit 3.1 Kontextfreie Grammatiken

Mehr

Nachklausur zur Vorlesung

Nachklausur zur Vorlesung Lehrstuhl für Theoretische Informatik Prof. Dr. Markus Lohrey Grundlagen der Theoretischen Informatik Nachklausur Nachklausur zur Vorlesung Grundlagen der Theoretischen Informatik WS 2016/17 / 27. Februar

Mehr

Formale Grundlagen der Informatik

Formale Grundlagen der Informatik Formale Grundlagen der Informatik / 2015 1 Reguläre Ausdrücke Kommen in der Praxis immer dann vor, wenn standardisierte Eingaben erforderlich sind: Telefonnummern: +Land (0) Ort Anschluß Dateinamen: (A-Z,

Mehr

7. Syntax: Grammatiken, EBNF

7. Syntax: Grammatiken, EBNF 7. Syntax: Grammatiken, EBNF Teil 1 Sehr schönes Beispiel für Notwendigkeit der Theoretischen Informatik für Belange der Praktischen Informatik Vertiefung in: Einführung in die Theoretische Informatik

Mehr