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

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

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

Transkript

1 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 der yntax von Programmiersprachen Backus-Naur-Form erweiterte Backus-Naur-Form 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

2 Backus-Naur-Form / erweiterte Backus-Naur-Form (/* Beispiel */) <Bezeichner> ::= _<Name> <Name> <Name> ::= <Buchstabe> <Buchstabe><Name'> <Name'> ::= <Buchstabe> <Buchstabe><Name'> <Ziffer><Name'> <Buchstabe>::= a... z A... Z <Ziffer> ::= /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

3 Backus-Naur-Form / erweiterte Backus-Naur-Form (/* Beispiel */) <Block> ::= <Anweisung> begin <Anweisung> {<Anweisung>} end <Anweisung> ::= <Zuweisung> <Verzweigung> <chleife> <Zuweisung> :: = <Bezeichner> = <Ausdruck> <Verzweigung> ::= if <Bedingung> <Block> [else <Block>] <chleife> := while <Ausdruck> <Block>... zugehörige kontextfreie Grammatik (/* Beispiel */) Σ = { begin,end,if,else,while,=,0,...,9 } V = { <Block>,<Anweisung>,<Zuweisung>,...,H1 } = <Block> 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

4 Backus-Naur-Form / erweiterte Backus-Naur-Form (/* Beispiel */) <Block> ::= <Anweisung> begin <Anweisung> {<Anweisung>} end <Anweisung> ::= <Zuweisung> <Verzweigung> <chleife> <Zuweisung> :: = <Bezeichner> = <Ausdruck> <Verzweigung> ::= if <Bedingung> <Block> [else <Block>] <chleife> := while <Ausdruck> <Block>... zugehörige kontextfreie Grammatik (/* Beispiel */) <Block> <Anweisung> begin H1 end H1 <Anweisung> <Anweisung> H1... <Verzweigung> if <Bedingung> < Block> <Verzweigung> if <Bedingung> < Block> else <Block> 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

5 konzeptioneller Aspekt Menge der zulässigen Ausdrücke charakterisieren algorithmischer Aspekt einer Programmiersprache (/* mit Hilfe einer BNF / EBNF */)... also auch mit kontextfreien Grammatiken einer eitenbeschreibungssprache / eines Datenaustauschformats (/* mit Hilfe einer Document Type Definition */)... also auch mit kontextfreien Grammatiken das Membership-Problem für eine mittels einer kontextfreien Grammatik G beschriebenen prache L = L(G) in den Griff bekommen 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

6 relevante Fragestellungen sind kontextfreie Grammatiken als Beschreibungsmittel ausreichend ausdrucksfähig erlauben eine effiziente Lösung des Membership-Problems... beide Punkte sind im Zusammenhang zu sehen 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

7 Beispiel (/* C++ Funktion */)... int ggt(int a, int b) { int teiler = a%b; while (teiler!= 0) { a = b; b = teiler; teiler = a%b; } return (b); } int main ( ) {.. int help = ggt(zaehler,nenner);... } 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

8 Beispiel (/* C++ Funktion */)... int ggt(int a, int b) { int teiler = a%b; while (teiler!= 0) { a = b; b = teiler; teiler = a%b; } return (b); } int main ( ) {.. int help = ggt(zaehler,nenner);... } solcher Zusammenhänge lassen sich mit kontextfreien Grammatiken nicht beschreiben... da hilft man sich auf andere Art und Weise... für alles andere reichen kontextfreie Grammatiken 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

9 kontexfreie Grammatiken/prachen es sei G = [Σ,V,,R] eine Chomsky-Grammatik G heißt kontextfreie Grammatik, falls für alle Regeln l r von G gilt: l r (/* die Regeln sind nicht verkürzend */) l V Eine prache L heißt kontextfreie prache, falls es eine kontextfreie Grammatik G mit L(G) = L gibt. 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

10 Beispiel prache L, die alle Zeichenketten enthält, die nur aus 0 en und 1 en bestehen und Palindrome sind (/* ergeben von vorn und hinten gelesen dieselbe Zeichenkette */) V = { } ein längeres Beispiel: ein Neger mit Gazelle zagt im Regen nie (/* einnegermitgazellezagtimregennie */) 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

11 Beispiel L = { 0 i 1 j 0 k i, j, k 1 und ( i = j oder j = k ) } V = {,A,B,C } AB CA A 0 0A B 10 1B0 C 01 0C1 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

12 zentraler Begriff: Ableitungsbaum es sei G = [Σ,V,,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 markiert jeder innere Knoten ist mit einer Variablen A V markiert die öhne eines inneren Knotens mit der Variablen A ergeben von links nach rechts gelesen die rechte eite einer Regel zum Ersetzen von A die Blätter sind mit Buchstaben x Σ markiert (/ *die Blätter von links nach rechts gelesen ergeben gerade die Zeichenkette w */) 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

13 Ableitungsbäume (/* Beispiele */) AB CA A 0 0A B 10 1B0 C 01 0C1 w = C A A B 0 C 1 0 A 0 A 1 B /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

14 Beobachtung (/* Teil 1 */) es sei G = [Σ,V,,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 C A G CA G 0C1A G 0011A G 00110A G G CA G 0C1A G 0C10A G 0C100 G C 1 0 A G CA G C0A G C00 G 0C100 G /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

15 Beobachtung (/* Teil 2 */) es sei G = [Σ,V,,R] eine kontextfreie Grammatik es sei w L(G) es gibt 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/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

16 Membership-Problem für kontextfreie prachen es sei G = [Σ,V,,R] eine kontextfreie Grammatik es sei w Σ* um herauszukommen, ob w L(G) gilt, versucht man eine Links- bzw. Rechtsableitung für w zu konstruieren oder nachzuweisen, daß es keine Links- bzw. Rechtsableitung für w gibt Linksableitungen Top-Down-Parser Rechtsableitungen Bottom-Up-Parser 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

17 Chomsky-Normalform für kontextfreie Grammatik es sei G = [Σ,V,,R] eine kontextfreie Grammatik G ist in Chomsky-Normalform, falls für alle Regeln (l,r) R gilt: l V r = x mit x Σ oder r = AB mit A,B V Einordnung Es sei L eine kontextfreie prache. Dann gibt es eine Grammatik G = [Σ,V,,R] in Chomsky-Normalform, so daß L(G) = L gilt. 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

18 Vorteile von Grammatiken in Chomsky-Normalform (/* Teil 1 */) es sei G = [Σ,V,,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. Hintergrund... jeder Ableitungsbaum für w ist mit Ausnahme der letzten Ebene ein Binärbaum 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

19 Beispiel V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 A C 0 B A B /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

20 Vorteile von Grammatiken in Chomsky-Normalform (/* Teil 2 */) es sei G = [Σ,V,,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 ableitbar (/* d.h. A * G w */) gdw. einer der folgenden beiden Fälle eintritt: Fall 1: n = 1 Fall 2: n > 1 dann muß R die Regel A x 1 enthalten dann muß es ein z { 1,...,n-1 }, Variablen B,C V und eine Regel A BC in R geben, so daß gilt: B * G a 1...a z C * G a z+1...a n... kann man benutzen, um unter Verwendung des Paradigmas der dynamischen Programmierung einen effizienten Algorithmus zur Lösung des Membership-Problems für L(G) zu konzipieren 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

21 Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,,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, 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 Berechnungsvorschrift: k = 1 A t[i][1], k > 1 A t[i][k], falls es eine Regel A x i gibt falls die Regel A BC zu R gehört und es ein z { 1,...,k-1 } mit B t[i][z] und C t[i+z][k-z] gibt 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

22 Beispiel V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 i k /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

23 Beispiel (cont.) V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 i k 1 A A B B 1 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

24 Beispiel (cont.) V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 i k 1 A A B B 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

25 Beispiel (cont.) V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 i k 1 A A B C B 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

26 Beispiel (cont.) V = {,A,B,C } w = 0011 AC AB C B A 0 B 1 i k 1 A A B C B G AC G 0C G 0B G 0ABB G 00BB G 001B G /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

27 Cocke-Younger-Kasami Algorithmus es sei G = [Σ,V,,R] eine Grammatik in Chomsky-Normalform es sei w Σ* mit w = x 1... x n für i = 1,...,n: bestimme T[i][1] 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 T[1][n], gib ja aus; sonst gib nein aus 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

28 Cocke-Younger-Kasami Algorithmus löst das Membership-Problem für eine kontextfreie prache L = L(G), falls die Grammatik G in Chomsky-Normalform ist der CYK-Algorithmus benötigt O(n 3 ) viele chritte, 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 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

29 zurück zu Chomsky-Normalformen Es sei L eine kontextfreie prache. Dann gibt es eine Grammatik G = [Σ,V,,R] in Chomsky-Normalform, so daß L(G) = L gilt. es sei G = [Σ,V,,R] eine kontextfreie Grammatik dann kann man aus G eine Grammatik G = [Σ,V,,R ] in Chomsky- Normalform konstruieren, so daß L(G ) = L(G) gilt... der CYK-Algorithmus löst das Membership-Problem für alle kontextfreien prachen... bevor man den CYK-Algorithmus anwenden kann, ist ein Art pre-processing erforderlich 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

30 Beispiel für die Konstruktion von G (/* einfacher Fall */) V = { } 0 01 Σ = { 0,1 } V = {,H 0,H 1 } 0 H 0 H 1 H 0 0 H 1 1 Σ = { 0,1 } V = {,H 0,H 1,H } 0 H 0 H H H 1 H 0 0 H falls G nur Regeln hat, deren rechte eite nicht nur aus einer Variablen bestehen 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

31 Beispiel für die Konstruktion von G (/* komplizierterer Fall */) V = {,A } 01 1A A A 01 V = {,A } 01 1A 01 A weiter wie zuvor!!!... falls G Regeln hat, deren rechte eite aus einer Variablen bestehen 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

32 Beispiel für die Konstruktion von G (/* komplizierterer Fall */) V = {,A,B } A A B A 0 00 B 1 11 V = {,A,B } 0 00 A B A 0 00 B 1 11 V = {,A,B } 0 00 A 1 11 A 0 00 B so nicht!!!... man sollte systematisch vorgehen 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

33 Beispiel für die Konstruktion von G (/* komplizierterer Fall */) V = {,A,B } Σ = { 0,1 } V = { H 1,H 2,H 3 } H 1 A A B A 0 00 B 1 11 H 1 H 2 H 2 H 3 H H H 1 H 2 H H H Variablen durchnumerieren, so daß in Regeln der Form H i H j immer i < j gilt... ersetze sukzessive, wobei mit dem größten Index i begonnen wird H H H H /4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

34 Beispiel für die Konstruktion von G (/* komplizierterer Fall */) V = {,A,B,C } 01 0A A A B B A C A 0B1 C 01A A A B B A C... Variablen so durchnumerieren, daß in Regeln der Form H i H j immer i < j gilt, funktioniert nicht immer (/* Zyklen!!! */) 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

35 Beispiel für das pre-processing (/* komplizierterer Fall */) V = {,A,B,C } 01 0A A A B B A C A 0B1 C 01A A A B B A C V = {,C } 01 0 C 01 C 01 Zyklen eliminieren!!! (/* d.h. Variablen zusammenfassen */) 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

36 Beispiel für das pre-processing (/* komplizierterer Fall */) V = {,A,B,C } 01 0A A A B B A C A 0B1 C 01A V = {,C } 01 0 C 01 C weiter wie zuvor!!! Σ = { 0,1 } V = { H 1,H 2 } H 1 H 1 01 H 1 0H 1 H 1 H 2 H 1 0H 1 1 H 2 01H 1 H 1 01 H 1 0H 1 H 1 01H 1 H 1 0H 1 1 H 2 01H 1 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen Informatik

37 Kontexfreie prachen Beispiel für die Konstruktion von G (/* allgemein */) falls G Regeln enthält, deren rechten eite nur aus einer Variablen bestehen, so nimm alle Regeln diesen Typs her und gehe wie folgt vor chritt 1 (/* Zyklen finden + eliminieren */): suche Zyklen; falls Zyklus x 1 x 2 ;... ; x n x 1 gefunden, so ersetze x 2,...,x n durch x 1 chritt 2 (/* Regeln umformen */): numeriere die Variablen so durch, daß in allen Regeln vom Typ H i H K stets i < k gilt; ersetze in allen Regeln vom Typ H i H k die Variable H k durch alle rechten eiten der Regeln vom Typ x k r mit r > 1 (/* beginne dabei mit dem größten i */) anschließend gibt es nur noch Regelen, deren rechte eiten aus einem Buchstaben oder aus mehr als einem Zeichen bestehen (/* der einfache Fall */) 2/4, Folie Prof. teffen Lange - HDa/FbI - Grundlagen der Theoretischen 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

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

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

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen 19 Inhalt 1 inführung 2 Automatentheorie und ormale prachen Grammatiken Reguläre prachen und endliche Automaten Kontextfreie prachen und Kellerautomaten Kontextsensitive und yp 0-prachen 3 Berechenbarkeitstheorie

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

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

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

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

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

2.11 Kontextfreie Grammatiken und Parsebäume

2.11 Kontextfreie Grammatiken und Parsebäume 2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle

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

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

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

Formale Sprachen und Grammatiken

Formale Sprachen und Grammatiken Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax

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

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

Funktionale Programmierung mit Haskell

Funktionale Programmierung mit Haskell Funktionale Programmierung mit Haskell Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg Sommersemester 2011 I. Die

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

Theoretische Informatik I

Theoretische Informatik I Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften

Mehr

Formale Sprachen, reguläre und kontextfreie Grammatiken

Formale Sprachen, reguläre und kontextfreie Grammatiken Formale Sprachen, reguläre und kontextfreie Grammatiken Alphabet A: endliche Menge von Zeichen Wort über A: endliche Folge von Zeichen aus A A : volle Sprache über A: Menge der A-Worte formale Sprache

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

7. Formale Sprachen und Grammatiken

7. Formale Sprachen und Grammatiken 7. Formale Sprachen und Grammatiken Computer verwenden zur Verarbeitung von Daten und Informationen künstliche, formale Sprachen (Maschinenspr., Assemblerspachen, Programmierspr., Datenbankspr., Wissensrepräsentationsspr.,...)

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 8: kontextfreie Grammatiken Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2009/2010 1/37 Überblick Kontextfreie Grammatiken

Mehr

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten

Theoretische Informatik 2 (WS 2006/07) Automatentheorie und Formale Sprachen / Kontextfreie Sprachen und Kellerautomaten Inhalt 1 Einführung 2 Automatentheorie und Formale Sprachen Grammatiken Reguläre Sprachen und endliche Automaten Kontextfreie Sprachen und Kellerautomaten Kontextsensitive und Typ 0-Sprachen 3 Berechenbarkeitstheorie

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

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

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln

Objektorientierte Programmierung. Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass: OOP (Java), 3. Syntaxdiagramme und Grammatikregeln 1/32 Objektorientierte Programmierung Kapitel 3: Syntaxdiagramme und Grammatikregeln Stefan Brass Martin-Luther-Universität Halle-Wittenberg

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

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kapitel 2. Methoden zur Beschreibung von Syntax

Kapitel 2. Methoden zur Beschreibung von Syntax 1 Kapitel 2 Methoden zur Beschreibung von Syntax Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt 2 Ziele Zwei Standards zur Definition der Syntax von

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

Informatik I WS 07/08 Tutorium 24

Informatik I WS 07/08 Tutorium 24 Info I Tutorium 24 Informatik I WS 07/08 Tutorium 24 20.12.07 Bastian Molkenthin E-Mail: infotut@sunshine2k.de Web: http://infotut.sunshine2k.de Rückblick Semi-Thue-Systeme Ein Semi-Thue-System besteht

Mehr

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen.

1. Der Begriff Informatik 2. Syntax und Semantik von Programmiersprachen. I.2. I.2. Grundlagen von von Programmiersprachen. 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

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel. Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann heitmann@informatik.uni-hamburg.de

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

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen

1. Formale Sprachen 1.2 Grammatiken formaler Sprachen 1. Formale Sprachen 1.2 Grammatiken formaler Sprachen Die Regeln zur Bildung korrekter Wörter einer Sprache kann man in einer natürlichen Sprache formulieren. Da dies jedoch wieder Mehrdeutigkeiten mit

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

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

2.1 Grundlagen: Kontextfreie Grammatiken

2.1 Grundlagen: Kontextfreie Grammatiken 2.1 Grundlagen: Kontextfreie Grammatiken Programme einer Programmiersprache können unbeschränkt viele Tokens enthalten, aber nur endlich viele Token-Klassen :-) Als endliches Terminal-Alphabet T wählen

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

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

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

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

Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Ulrich Furbach. Sommersemester 2014 Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Ulrich Furbach Institut für Informatik Sommersemester 2014 Furbach Grundlagen d. Theoretischen Informatik:

Mehr

Einführung in die Informatik Grammars & Parsers

Einführung in die Informatik Grammars & Parsers Einführung in die Informatik Grammars & Parsers Grammatiken, Parsen von Texten Wolfram Burgard Cyrill Stachniss 12.1 Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Tutorium zur theoretischen Informatik Übungsblatt 4 (2006-12-13)

Tutorium zur theoretischen Informatik Übungsblatt 4 (2006-12-13) Ein verständiges Herz erwirbt Kenntnisse, und das Ohr der Weisen lauscht dem Wissen. (Die Bibel, "Buch der Sprüche", Kapitel 18 Vers 15) Inhalt 1. Empfehlenswerte Referenzen 2. Aufgabe 1 CF Grammatik für

Mehr

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit

Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Informatik IV Theoretische Informatik: Formale Sprachen und Automaten, Berechenbarkeit und NP-Vollständigkeit Sommersemester 2011 Dozent: Prof. Dr. J. Rothe, Prof. Dr. M. Leuschel J. Rothe (HHU Düsseldorf)

Mehr

IT-Basics 2. DI Gerhard Fließ

IT-Basics 2. DI Gerhard Fließ IT-Basics 2 DI Gerhard Fließ Wer bin ich? DI Gerhard Fließ Telematik Studium an der TU Graz Softwareentwickler XiTrust www.xitrust.com www.tugraz.at Worum geht es? Objektorientierte Programmierung Konzepte

Mehr

ARBEITSBLATT ZU FORMALEN SPRACHEN

ARBEITSBLATT ZU FORMALEN SPRACHEN ARBEITSBLATT ZU FORMALEN SPRACHEN Aufgabe 1: Gegeben ist die folgende Formale Sprache L(G) mit G = (T, N, P, S). Die Produktionen lauten ZUWEISUNG ::= name zuweisungsoperator AUSDRUCK semikolon AUSDRUCK

Mehr

Berechenbarkeitstheorie 7. Vorlesung

Berechenbarkeitstheorie 7. Vorlesung 1 Berechenbarkeitstheorie Dr. Institut für Mathematische Logik und Grundlagenforschung WWU Münster W 15/16 Alle Folien unter Creative Commons Attribution-NonCommercial 3.0 Unported Lizenz. Das Pumpinglemma

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

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r ) Definition B : Menge der binären Bäume, rekursiv definiert durch die Regeln: ist ein binärer Baum sind t l, t r binäre Bäume, so ist auch t =, t l, t r ein binärer Baum nur das, was durch die beiden vorigen

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

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ).

Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Satz 90 Sei A = (Q, Σ, δ, q 0, F ) ein DFA. Der Zeitaufwand des obigen Minimalisierungsalgorithmus ist O( Q 2 Σ ). Beweis: Für jedes a Σ muss jede Position in der Tabelle nur konstant oft besucht werden.

Mehr

Sprachen sind durch folgenden Aufbau gekennzeichnet:

Sprachen sind durch folgenden Aufbau gekennzeichnet: BNF UND SYNTAXDIAGRAMME 1. Allgemeines 1.1 Aufbau von Sprachen BNF und Syntaxdiagramme werden verwendet, um die Syntax einer Sprache darzustellen und graphisch zu veranschaulichen. Mit ihnen können entweder

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

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

VBA-Programmierung: Zusammenfassung

VBA-Programmierung: Zusammenfassung VBA-Programmierung: Zusammenfassung Programmiersprachen (Definition, Einordnung VBA) Softwareentwicklung-Phasen: 1. Spezifikation 2. Entwurf 3. Implementierung Datentypen (einfach, zusammengesetzt) Programmablaufsteuerung

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

Syntax von Programmiersprachen

Syntax von Programmiersprachen "Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang WS 07/08

Mehr

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Formale Sprachen. www.kit.edu. Institut für Angewandte Informatik Programmieren I Formale Sprachen KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Formale Sprachen: Allgemeines Sprachen werden

Mehr

368 4 Algorithmen und Datenstrukturen

368 4 Algorithmen und Datenstrukturen Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und

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

Was ist ein Compiler?

Was ist ein Compiler? Was ist ein Compiler? Was ist ein Compiler und worum geht es? Wie ist ein Compiler aufgebaut? Warum beschäftigen wir uns mit Compilerbau? Wie ist die Veranstaltung organisiert? Was interessiert Sie besonders?

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

Ü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

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

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al.

Compiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse. Autor: Aho et al. Folie: 1 Kapitel 4 Übersicht Übersicht Syntax: Definition 4 syn-tax: the way in which words are put together to form phrases, clauses, or sentences. Webster's Dictionary Die Syntax (griechisch σύνταξις

Mehr

Compiler, Übersetzer. Allgemeine Erklärung / Definition

Compiler, Übersetzer. Allgemeine Erklärung / Definition Compiler, Übersetzer Allgemeine Erklärung / Definition Ein Übersetzer ist ein Programm, das ein S 1 -Wort den Quelltext in ein S 2 -Wort umwandelt den Zieltext wobei die Semantik erhalten bleibt. Frage:

Mehr

1 Syntax von Programmiersprachen

1 Syntax von Programmiersprachen 1 Syntax von Programmiersprachen Syntax ( Lehre vom Satzbau ): formale Beschreibung des Aufbaus der Worte und Sätze, die zu einer Sprache gehören; im Falle einer Programmier-Sprache Festlegung, wie Programme

Mehr

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Einführung in die Theoretische Informatik Woche 10 Harald Zankl Institut für Informatik @ UIBK Wintersemester 2014/2015 Zusammenfassung Zusammenfassung der letzten LV Satz Sei G = (V, Σ, R, S) eine kontextfreie

Mehr

...imbeispiel: Die Konkatenation der Blätter des Ableitungsbaums t bezeichnen wir auch mit yield(t). liefert die Konkatenation: name int + int.

...imbeispiel: Die Konkatenation der Blätter des Ableitungsbaums t bezeichnen wir auch mit yield(t). liefert die Konkatenation: name int + int. Die Konkatenation der Blätter des Ableitungsbaums t bezeichnen wir auch mit yield(t)....imbeispiel: E 0 E 1 + T 1 T 0 F 2 T 1 F 2 int F 1 int name liefert die Konkatenation: name int + int. 273 Die Grammatik

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

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

Syntax (= Satzgefüge), vgl. auch Grammatik

Syntax (= Satzgefüge), vgl. auch Grammatik 1 Natürliche Sprachen Natürliche Sprachen bezeichnen wie das Wort "Sprache" ausdrückt zunächst das Gesprochene. Das Schweizerdeutsch etwa ist eine typische natürliche Sprache. Mit der Erfindung der Aufzeichnung

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

Theoretische Informatik Mitschrift

Theoretische Informatik Mitschrift 6. Kontextfreie Sprachen Theoretische Informatik Mitschrift Typ-2-Grammatiken: Regeln der Form A mit A N und N * Beispiel: Grammatik für arithmetische Ausdrücke G= {E,T,F },{,,,,a}, P, E, P : E ET T T

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

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

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie

Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Übung zur Vorlesung Einführung in die Computerlinguistik und Sprachtechnologie Wintersemester 2009/10, Prof. Dr. Udo Hahn, Erik Fäßler Übungsblatt 3 vom 19.11.2009 Abgabe bis 26.11.2009, 14:30 Uhr; per

Mehr

Zusammenfassung Grundzüge der Informatik 4

Zusammenfassung Grundzüge der Informatik 4 Zusammenfassung Grundzüge der Informatik 4 Sommersemester 04 Thorsten Wink 21. September 2004 Version 1.2 Dieses Dokument wurde in L A TEX 2εgeschrieben. Stand: 21. September 2004 Inhaltsverzeichnis 1

Mehr

Algorithmen und Datenstrukturen (EI)

Algorithmen und Datenstrukturen (EI) Algorithmen und Datenstrukturen (EI) ADS Zentralübung Stefan Schmid 4. Februar 2009 Einturnen... Ein heutiger Computer aus dem Saturn ist im Prinzip eine Turing Maschine? Nein. Zum Beispiel Sprache L =

Mehr

Grundbegriffe der Informatik

Grundbegriffe der Informatik Grundbegriffe der Informatik Tutorium 4 26..25 INSTITUT FÜR THEORETISCHE INFORMATIK KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Mehr

Grundlagen der Theoretischen Informatik

Grundlagen der Theoretischen Informatik Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: sofronie@uni-koblenz.de 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte

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

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

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

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung

M. Graefenhan 2000-12-07. Übungen zu C. Blatt 3. Musterlösung M. Graefenhan 2000-12-07 Aufgabe Lösungsweg Übungen zu C Blatt 3 Musterlösung Schreiben Sie ein Programm, das die Häufigkeit von Zeichen in einem eingelesenen String feststellt. Benutzen Sie dazu ein zweidimensionales

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

Einführung in die Theoretische Informatik

Einführung in die Theoretische Informatik Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Dr. Werner Meixner, Dr. Alexander Krauss Sommersemester 2010 Lösungsblatt 7 15. Juni 2010 Einführung in die Theoretische

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

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc.

Pumping-Lemma. Beispiel. Betrachte die kontextsensitive Grammatik G mit den Produktionen. S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Pumping-Lemma Beispiel Betrachte die kontextsensitive Grammatik G mit den Produktionen S asbc abc CB HB HB HC HC BC ab ab bb bb bc bc cc cc. Sie erzeugt z.b. das Wort aabbcc: S asbc aabcbc aabhbc aabhcc

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

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

Mehr

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie.

Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Formale Sprachen Formale Sprachen und deren Grammatiken. Zusammenhang mit der Automatentheorie. Inhaltsübersicht und Literatur Formale Sprachen: Definition und Darstellungen Grammatiken für formale Sprachen

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

1 Die Chomsky-Hirachie

1 Die Chomsky-Hirachie Hans U. imon Bochum, den 7.10.2008 Annette Ilgen Beispiele zur Vorlesung Theoretische Informatik W 09/10 Vorbemerkung: Hier findet sich eine ammlung von Beispielen und Motivationen zur Vorlesung Theoretische

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