Einblick in formale Sprachen und Automaten
|
|
- Gerda Scholz
- vor 7 Jahren
- Abrufe
Transkript
1 Otto Thiele Einblick in formale Sprachen und Automaten Professor Dr Ulrich Hedtstück 1 ist Professor an der Fachhochschule Konstanz Er hat die Theorie der formalen Sprachen und Automaten, "einen schon für Universitätsstudenten oft zu abstrakten, schwierigen und häufig unbeliebten Stoff", für Fachhochschulstudenten praxisorientiert aufbereitet und vermittelt den Studenten 2 möglichst solche Inhalte, die "konstruktiv mit anschaulichen Algorithmen erklärt werden können" 3 Ein solches Vorgehen ist insbesondere erforderlich, wenn Lehrer im Informatikunterricht der gymnasialen Oberstufe den Schülern einen Einblick in die Theorie der formalen Sprachen und Automaten vermitteln wollen Die Lehrer müssen davon ausgehen, dass die Mehrzahl der Schüler nicht Informatik studieren wird Aus diesem Grund werden in dem Skript ausgewählte fachtheoretische Inhalte propädeutisch 4 und, mit Bezug auf Professor Dr Ulrich Hedtstück, praxisorientiert für den Informatikunterricht aufbereitet Im Unterricht zum Themenbereich "Einblick in formale Sprachen und Automaten" sollen die Schüler Antworten auf die Frage finden, weshalb sie mit Computern kommunizieren können Das folgende Beispiel zeigt, wie kompliziert diese Kommunikation in natürlichen Sprachen sein kann "Nobody designs a natural language by themselves, unless their name happens to be Tolkien" 5 Diesen Satz hat ein Übersetzungsprogramm folgendermaßen in die deutsche Sprache übertragen: "Niemand entwirft eine natürliche Sprache durch selbst, es sei denn ihr Name geschieht, Tolkien zu sein" Ebenso verwirrend sind Sätze der natürlichen Sprachen, die syntaktisch und semantisch mehrdeutig sind, wie beispielsweise "Diese Nachricht stimmt sicher" 6 oder "Öffne das Fach mit dem Schlüssel" 7 Im ersten Satz kann sich "stimmt" sowohl auf "diese Nachricht" als auch auf "sicher" beziehen Im zweiten Satz kann sich "öffne" sowohl auf "das Fach" als auch auf "mit dem Schlüssel" beziehen Wäre beispielsweise der zweite Satz eine Anweisung an einen Roboter, dann könnte dieser sie sicherlich nicht ausführen Ein Mensch wäre möglicherweise noch in der Lage, in der konkreten Situation das Richtige zu tun Aufgabe: Nennen Sie weitere Sätze der deutschen Sprache, die syntaktisch und semantisch mehrdeutig sind Wegen der syntaktischen sowie semantischen Mehrdeutigkeiten und der Komplexität sind die natürlichen Sprachen "nicht für die Beschreibung von Aufgaben geeignet, die ein Computer lösen soll" 8 Dazu eignen sich Programmiersprachen viel besser, denn Programmiersprachen sind formale Sprachen wwwinfh-konstanzde/de/fachbereich/kontakt/persseiten_nbc/hdstueckhtml Mit Student, Schüler oder Lehrer ist beiderlei Geschlecht gemeint Hedtstück, U (2000): Einführung in die Theoretische Informatik Formale Sprachen und Automatentheorie Oldenburg Verlag, München, S viii "Einführung in die Vorkenntnisse, die zu einem Studium gehören" (Duden, Propädeutik) wwwwallorg/~larry/naturalhtml wwwifiunizhch/cl/volk/syntaxvorl/vorl_10ambightml#klassifikation Vgl Hedtstück, U (2000): Einführung in die Theoretische Informatik Formale Sprachen und Automatentheorie Oldenburg Verlag, München, S 9 Ebenda, S 9 Seite 1
2 Ausgangspunkt sind die natürlichen Sprachen Trotz der genannten Nachteile der natürlichen Sprachen gibt es einen Zusammenhang zwischen den natürlichen und formalen Sprachen Die formalen Sprachen sind Modelle der natürlichen Sprachen In einem Unterrichtsabschnitt "Natürliche Sprachen" können die Schüler ihre Erfahrungen beim Lernen der Muttersprache oder einer Fremdsprache einbringen Im Fremdsprachenunterricht müssen die Schüler Vokabeln lernen Das Vokabular bildet ihren Wortschatz Weiterhin müssen die Schüler die Grammatik der Fremdsprache erlernen Die Grammatik ist ein Regelwerk 9 Mit Hilfe der Grammatik bilden die Schüler aus den ihnen bekannten Vokabeln korrekte Sätze in der Fremdsprache Dazu ein Beispiel 10 : Die Grammatik der englischen Sprache hat unter anderem die folgenden Regeln zum Bilden von Sätzen: Satz Subjekt Prädikat Objekt Prädikat Vollverb Prädikat Hilfsverb Vollverb Die nachfolgenden Regeln sind dem Wörterbuch 11 der englischen Sprache (Dictionary) entnommen Das Wörterbuch legt unter anderem die Rechtschreibung der Wörter fest Subjekt "schoolgirls" Subjekt "schoolboys Hilfsverb "can" Vollverb "use" Vollverb "handle" Objekt "computers" Objekt "calculators" Dictionary Mit den Vokabeln und der Grammatik können Sätze der englischen Sprache gebildet werden So beispielsweise der folgende Satz: Satz Subjekt Prädikat Objekt Hilfsverb Vollverb schoolgirls can use computers Abbildung 1: syntaktische Struktur (Aufbau) eines Satzes 9 Die Grammatik einer Sprache besteht aus Regeln, nach denen die Sätze der Sprache gebildet werden 10 Vgl Freistaat Thüringen (2004): Abiturprüfungen 2004 Leistungsfach Informatik (Haupttermin) Kultusministerium, S 3 11 In der deutschen Sprache wird die Rechtschreibung der Wörter durch den Duden festgeschrieben Seite 2
3 In der Abbildung 1 ist die syntaktische Struktur (der Aufbau) des Satzes als Baum 12 dargestellt Aufgabe: a) Schreiben Sie alle Sätze auf, die sich mit Hilfe der gegebenen Grammatik bilden lassen b) Entwerfen und implementieren Sie ein Programm, das prüft, ob ein eingegebener Satz syntaktisch korrekt ist 13 Jeder englische Satz, der beim Lösen der Teilaufgabe a) gebildet wird, hat eine Bedeutung (Semantik) Die Bedeutung des Satzes "schoolgirls can handle computers" besteht in der Aussage, dass Schülerinnen mit Computern umgehen können Ob die Aussage wahr ist, kann dem Satz nicht entnommen werden Syntax und Semantik sind eng miteinander verbunden, denn es macht nur einen Sinn, wenn Sätze gebildet werden, die für den Zuhörer oder Leser auch Bedeutung haben Die Lösung der Teilaufgabe b) vermittelt den Schülern einen Ausblick auf die Verarbeitung natürlicher Sprachen durch Computer Die Überprüfung, ob eine Folge Zeichen ein syntaktisch korrekter Satz ist, erfolgt mit Hilfe zweier Algorithmen: - Der Scanner ist ein Algorithmus, der die Folge von Zeichen in Token 14 zerlegt und prüft, ob die Token Wörter der Sprache sind - Der Parser ist ein Algorithmus, der prüft, ob mit den Wörtern syntaktisch korrekte Sätze gebildet worden sind Praktische Beispiele für die Verarbeitung von natürlichen Sprachen auf dem Computer sind Frage-Antwort-Systeme Der Benutzer eines Frage-Antwort-Systems kann seine Fragen in einer natürlichen Sprache formulieren und bekommt die Antworten in dieser Sprache Im WWW sind eine Vielzahl von Informationen zu natürlichsprachigen Frage-Antwort- Systemen 15 zu finden Außerdem kann eine deutschsprachige Version von Eliza 16 aus dem WWW geladen werden Aufgabe: Lesen Sie das Kapitel 7 "Der Computer und die natürliche Sprache" des Buches "Die Macht der Computer und die Ohnmacht der Vernunft" 17 von Joseph Weizenbaum 12 Vgl Hedtstück, U (2000): Einführung in die Theoretische Informatik Formale Sprachen und Automatentheorie Oldenburg Verlag, München, S Diese Teilaufgabe sollte erst gelöst werden, wenn der Kellerautomat behandelt wurde 14 Beispielsweise wird der Satz "Der Satz ist korrekt" in die Token "Der", "Satz", "ist", "korrekt" und "" erlegt 15 wwwcluni-heidelbergde/kurs/ss03/qanda/qa_linksshtml 16 homeph-freiburgde/deissler/informat_i-02-03htm 17 Weizenbaum, J (1977): Die Macht der Computer und die Ohnmacht der Vernunft Suhrkamp Verlag, Frankfurt am Main, S Seite 3
4 Zusammenfassung: - In einer natürlichen Sprache werden aus Wörtern mit Hilfe einer Grammatik Sätze gebildet, jedoch nicht nur - Die Rechtschreibung der Wörter wird durch das Wörterbuch der jeweiligen Sprache 18 festgelegt - Natürliche Sprachen sind "lebende Sprachen" und unterliegen als solche fortwährenden Veränderungen 19 - Der Verarbeitung von natürlichen Sprachen durch Computer kommt eine immer größere Bedeutung zu, so beispielsweise bei Frage-Antwort-Systemen und Übersetzungsprogrammen - Der Scanner und Parser sind Algorithmen zum Prüfen, ob Zeichenfolgen syntaktisch korrekt gebildete Sätze einer Sprache sind Im Unterrichtsabschnitt "Natürliche Sprachen" sollen die Schüler über die Grundlagen ihrer Muttersprache und der erlernten Fremdsprachen nachdenken und den Bezug zur Informatik erkennen Es empfiehlt sich, in diesen Unterrichtsabschnitt einen Deutsch- oder Fremdsprachenlehrer einzubeziehen Aufgabe: Gegeben sind Grammatikregeln der deutschen Sprache Satz Subjekt Prädikat Objekt Prädikat Vollverb Subjekt Subjekt Objekt Vollverb Vollverb Vollverb "Katzen" "Kater" "Mäuse" "fressen" "jagen" "quälen" Duden a) Entwerfen und implementieren Sie ein Programm, das alle Sätze mit Hilfe der gegebenen Grammatikregeln bildet und ausgibt a) Entwerfen und implementieren Sie ein Programm, das wie ein Scanner und Parser prüft, ob eine Folge von Zeichen ein korrekter Satz ist 18 In der deutschen Sprache ist das Wörterbuch der Duden, benannt nach Konrad Duden ( ) Konrad Duden war von 1869 bis 1876 Gymnasialdirektor im Thüringer Schleiz (wwwthschulede/sok/kdg/) 19 Thomas Stoll gab diesen Hinweis Als Beispiel nannte er die Rechtschreiberform im deutschsprachigen Raum Danke Seite 4
5 Formale Sprachen sind Modelle der natürlichen Sprachen Weshalb sollen sich die Schüler mit formalen Sprachen beschäftigen? Weil formale Sprachen die Grundlage der Programmiersprachen sind Die Schüler kennen aus dem Informatikunterricht eine Programmiersprache Des Weiteren haben sie Erfahrungen im Umgang mit dieser Programmiersprache In einer formalen Sprache werden die Vokabeln Terminalsymbole genannt Die mit Hilfe der Grammatik gebildeten Folgen aus Terminalsymbolen werden Wörter 20 der Sprache genannt Alle Wörter, die mit der Grammatik gebildet werden können, bilden die Sprache Eine Sprache heißt formal, wenn alle ihre Wörter mit Hilfe einer Grammatik 21 gebildet werden Beispiel: Die formale Sprache G ist durch die folgende Grammatik definiert: Ganzzahl Vorzeichen RestG Ganzzahl Ziffer RestG Ganzzahl Ziffer RestG Ziffer RestG RestG Ziffer Vorzeichen "+" Vorzeichen "-" Ziffer "0" Ziffer "1" Ziffer "2" Ziffer "3" Ziffer "4" Ziffer "5" Ziffer "6" Ziffer "7" Ziffer "8" Ziffer "9" Terminalsymbole Das Vokabular der Sprache G besteht aus den Terminalsymbolen 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + und - Ganzzahl, RestG, Vorzeichen und Ziffer sind Nichtterminalsymbole, die zum Bilden von Wörtern benötigt werden Das Nichtterminalsymbol Ganzzahl ist das Startsymbol Mit dem Startsymbol beginnt stets das Bilden eines Wortes Ganzzahl Vorzeichen RestG + RestG + Ziffer +3 Im Verlauf des Bildens eines Wortes müssen die Nichtterminalsymbole durch Terminalsymbole ersetzt werden Wichtig ist, dass in jedem Wort der Sprache keine Nichtterminalsymbole mehr vorkommen dürfen, das heißt, jedes Wort darf nur noch aus Terminalsymbolen bestehen 20 In einigen Abhandlungen wird weiterhin von Sätzen gesprochen, nicht von Wörtern Aus diesem Grund muss der Lehrer eine Entscheidung treffen, welchen Begriff er im weiteren Verlauf des Unterrichts verwendet 21 Mit Hilfe der Grammatik werden Wörter gebildet (Verfahren), die einen ganz bestimmten Aufbau haben (Struktur) Der Aufbau der Wörter (Struktur) wird Syntax genannt Heike Eisenberg gab den Hinweis, die Grammatik mit Hilfe von Verfahren zu erklären Danke Seite 5
6 Aufgaben: a) Bilden Sie fünf verschiedene, auch längere, Wörter der Sprache G Stellen Sie die syntaktische Struktur (den Aufbau) jedes Wortes als Baum dar b) Entwerfen und implementieren Sie ein Programm, das erkennt, ob ein eingegebenes Wort syntaktisch korrekt ist 22 Ein weiteres Wort der Sprache ist -809 Die Abbildung 2 veranschaulicht grafisch, wie dieses Wort gebildet wird Ganzzahl Vorzeichen RestG Ziffer RestG - 8 Ziffer RestG 0 Ziffer 9 Abbildung 2: syntaktische Struktur (Aufbau) des Wortes -809 Das Wort -809 hat eine Bedeutung (Semantik) Es ist die Darstellung einer negativen ganzen Zahl Zusammenfassung: - Die formalen Sprachen sind Modelle 23 der natürlichen Sprachen - Eine formale Sprache ist eine Sprache, deren Syntax 24 durch eine Grammatik definiert ist Das heißt, die Grammatik bestimmt, welche Wörter zur Sprache gehören - Die Grammatik 25 einer Sprache wird durch ein Viertupel (V,T,P,S) beschrieben: T ist die Menge der Terminalsymbole, V ist die Menge der Nichtterminalsymbole, P ist die Menge der Produktionsregeln und S ist das Startsymbol 22 Diese Teilaufgabe sollte erst gelöst werden, wenn der endliche Automat behandelt wurde 23 Ein Modell spiegelt die reale Welt wider 24 Unter Syntax wird der Aufbau der Wörter verstanden 25 Der Begriff Grammatik sollte den Schülern anschaulich anhand praktischer Beispiele vermittelt werden Seite 6
7 Programmiersprachen sind spezielle formale Sprachen Programmiersprachen sind formale Sprachen Die meisten Programmiersprachen können mit Hilfe von kontextfreien Grammatiken definiert werden Eine Grammatik ist kontextfrei, wenn auf der linken Seite jeder Regel nur ein einziges Nichtterminalsymbol steht Auf der rechten Seite jeder Regel stehen Nichtterminalsymbole, Terminalsymbole oder Nichtterminalsymbole und Terminalsymbole 26 Die folgende kontextfreie Grammatik (1) definiert eine ganz einfache Programmiersprache 27 PS Die Grammatik ist in der Backus-Naur-Form 28 (BNF) notiert: Programm = "PROGRAM" Bezeichner "" Block "" Block = "VAR" Bezeichner ":" "NAT" "" "BEGIN" Anweisung "" "" Anweisung = Bezeichner ":=" Term Term = natzahl Die Terminalsymbole sind PROGRAM, VAR, NAT, BEGIN, sowie der Punkt, der Doppelpunkt, die Zeichen := und das Semikolon Man erkennt, dass Terminalsymbole auch aus mehreren Zeichen bestehen können Die Nichtterminalsymbole sind Programm, Bezeichner, Block, Anweisung, Term und natzahl Das Startsymbol zum Bilden eines Wortes ist das Nichtterminalsymbol Programm In allen vier Regeln ist das Ersetzen des Nichtterminalsymbols auf der linken Seite nicht von einem Kontext 29 des Nichtterminalsymbols abhängig So kann beispielsweise das Nichtterminalsymbol Term der vierten Regel sofort durch das Nichtterminalsymbol natzahl ersetzt werden Um ein Wort der Programmiersprache PS bilden zu können, wird die Grammatik (2) zum Bilden von Bezeichnern benötigt Bezeichner = "a" RestB Bezeichner = "b" RestB RestB = "a" RestB RestB = "b" RestB RestB = "1" RestB = "2" Vergleicht man die beiden Grammatiken miteinander, so wird ersichtlich, dass einerseits die Grammatiken (1) und (2) kontextfrei sind Andererseits sind die rechten Seiten der Regeln der Grammatik (2) anders aufgebaut als die rechten Seiten der Regeln der Grammatik (1) Auf der rechten Seite jeder Regel der Grammatik (2) steht entweder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol oder nur ein Terminalsymbol 30 Das heißt, die Grammatik (2) ist zusätzlich regulär Die Terminalsymbole sind a, b, 1 und 2 Die Nichtterminalsymbole sind Bezeichner und RestB Das Startsymbol zum Bilden eines Wortes ist das Nichtterminalsymbol Bezeichner Die Regeln RestB sind rekursiv Die Regeln haben die Form A = δ 27 Die Programmiersprache PS hat nur exemplarischen Charakter 28 Die Backus-Nauer-Form (BNF) ist eine Beschreibungsform für kontextfreie Grammatiken Sie wurde nach John W Backus und Peter Naur benannt 29 "umgebenden Text" (Duden, Kontext) 30 Die Regeln haben die Form A = a B (rechtslinear) und A = a 31 RestB = "1" bzw RestB = "2" ist der Rekursionsabbruch und RestB = "a" RestB bzw RestB = "b" RestB ist der Rekursionsschritt Seite 7
8 Mit Hilfe der regulären Grammatik (2) werden die Bezeichner von links nach rechts gebildet, beispielsweise b1 Die Bedeutung dieses Wortes besteht darin, dass es der Name eines Programms oder einer Variablen sein kann Bezeichner b RestB 1 Abbildung 3: syntaktische Struktur (Aufbau) eines Bezeichners Die Grammatik (2) kann in der Backus-Naur-Form (BNF) verkürzt geschrieben werden: Bezeichner = ( "a" "b" ) RestB RestB = "1" "2" ( "a" "b" ) RestB Aufgabe: Bilden Sie fünf verschiedene Bezeichner unterschiedlicher Länge Stellen Sie die syntaktische Struktur (den Wortaufbau) jedes Bezeichners grafisch als Baum dar Die rekursiven Regeln können vermieden werden, wenn die Grammatik (2) in die Erweiterte Backus-Naur-Form 32 (EBNF) übertragen wird Bezeichner = ( "a" "b" ) { "a" "b" } ( "1" "2" ) 33 In der Abbildung 4 ist die Erweiterte Backus-Nauer-Form (EBNF) grafisch dargestellt Die grafische Darstellung wird Syntaxdiagramm genannt Bezeichner a 1 b a b 2 Abbildung 4: Syntaxdiagramm Im Syntaxdiagramm werden die Terminalsymbole durch Kreise und das Nichtterminalsymbol durch ein Rechteck dargestellt 32 Die BNF wurde von Niklaus Wirth erweitert Vgl Wirth, N (1984): Compilerbau Eine Einführung Teubner, Stuttgart, S In der EBNF bedeutet { x }, dass x keinmal, einmal oder mehrmals auftreten kann Seite 8
9 Aufgabe: Gegeben ist eine Grammatik, welche die Sprache der Dualdarstellung natürlicher Zahlen ohne führende Nullen definiert: Dualzahl = "1" RestD RestD = "0" RestD RestD = "1" RestD RestD = "0" RestD = "1" a) Geben Sie die Terminalsymbole an b) Geben Sie die Nichtterminalsymbole an c) Zeigen Sie, dass die Grammatik kontextfrei und regulär ist d) Bilden Sie mit Hilfe der Grammatik fünf verschiedene Wörter e) Überführen Sie die Grammatik in die Backus-Naur-Form (BNF) f) Überführen Sie die Grammatik in die Erweiterte Backus-Naur-Form (EBNF) g) Stellen Sie die Erweiterte Backus-Naur-Form in einem Syntaxdiagramm dar Um ein Quellprogramm in der Programmiersprache PS schreiben 34 zu können, wird des Weiteren die Grammatik (3) zum Bilden von natzahlen benötigt: natzahl = "0" natzahl = "1" natzahl = "9" natzahl = "0" natzahl natzahl = "1" natzahl natzahl = "9" natzahl Das Startsymbol ist natzahl Beispiel, wie ein Wort gebildet wird: natzahl 1 natzahl 18 natzahl 183 natzahl 1835 Die Grammatik (3) kann in der Backus-Naur-Form (BNF) und in der Erweiterten Backus-Naur-Form (EBNF) verkürzt geschrieben werden: BNF: natzahl = "0" "1" "9" ( "0" "1" "9" ) natzahl EBNF: natzahl = ( "0" "1" "9" ) { "0" "1" "9" } Aufgabe: a) Zeigen Sie, dass die Grammatik (3) kontextfrei und regulär ist b) Bilden Sie fünf verschiedene Wörter mit Hilfe der Grammatik (3) und stellen Sie den syntaktischen Aufbau der Wörter grafisch dar c) Stellen Sie die Erweiterte Backus-Naur-Form der Grammatik (3) in einem Syntaxdiagramm dar 34 Jedes korrekte Quellprogramm ist ein Wort der Programmiersprache PS Seite 9
10 Zusammenfassung: - Eine kontextfreie Grammatik hat nur Regeln, in denen auf der linken Seite jeder Regel genau ein Nichtterminalsymbol steht - Eine reguläre Grammatik ist kontextfrei und hat nur solche Regeln, in denen auf der rechten Seite jeder Regel entweder ein Terminalsymbol und danach ein Nichtterminalsymbol stehen oder nur ein Terminalsymbol steht 35 - Die Backus-Naur-Form (BNF) und die Erweiterte Backus-Naur-Form (EBNF) sind Beschreibungsformen für kontextfreie Grammatiken Syntaxdiagramme dienen der grafischen Darstellung der BNF und EBNF Aufgabe: Gegeben ist die folgende Grammatik: identifier = "a" "z" identifier = identifier ( "a" "z" ) identifier ("0" "9" ) Das Startsymbol ist identifier a) Geben Sie die Anzahl der Terminalsymbole an b) Bilden Sie mit Hilfe der Grammatik ein Wort, das aus vier Buchstaben gefolgt von zwei Ziffern besteht c) Stellen Sie die syntaktische Struktur (den Wortaufbau) des von Ihnen gebildeten Wortes in Form eines Baumes dar d) Übertragen Sie die Grammatik in die Erweiterte Backus-Naur-Form (EBNF) e) Stellen Sie die Regeln der Grammatik durch Syntaxdiagramme dar f) Diese Grammatik ist kontextfrei und regulär Erweitern Sie die oben gegebene Erklärung des Begriffs reguläre Grammatik 35 Die reguläre Grammatik ist rechtslinear Es gibt auch reguläre Grammatiken, die linkslinear sind natzahl = "0" "1" "9" natzahl = natzahl ( "0" "1" "9" ) Seite 10
11 Formale Sprachen und Automaten "Die Aufgabe eines Übersetzers oder Compilers ist normalerweise nicht die Erzeugung 36 oder Herleitung, sondern die Erkennung eines" Wortes "und seiner Struktur Dies bedeutet, dass die Schritte der Erzeugung 37 beim Lesen eines" Wortes "als Schritte der Erkennung nachvollzogen werden müssen" 38 Quellprogramm Tokenfolge Ableitungsbaum Zielprogramm optimiertes Zielprogramm Scanner: lexikalische Analyse Parser: syntaktische Analyse semantische Analyse/Codegenerierung Codeoptimierung Abbildung 5: Phasen des Compilierens, wobei hier nur die 1 und 2 Phase betrachtet werden Die Aufgabe eines Compilers besteht darin, das Quellprogramm in ein Zielprogramm zu übersetzen Dazu muss der Compiler die syntaktische und semantische Korrektheit des Quellprogramms überprüfen Das Zitat aus Niklaus Wirts "Compilerbau" wird am Beispiel eines Quellprogramms 39 erläutert, das in der einfachen Programmiersprache 40 PS geschrieben wurde PROGRAM ab1 VAR a2 : NAT BEGIN a2 := Bildung eines Wortes 37 Bildung eines Wortes 38 Wirth, N (1984): Compilerbau Eine Einführung Teubner, Stuttgart, S Vgl Sommer, M (1987): Informatik eine PC-orientierte Einführung McGraw-Hill, Hamburg, S Vgl Skript, S 7 Seite 11
12 Die Aufgabe des PS-Compilers besteht darin, dieses Quellprogramm zu übersetzen Dazu muss der Compiler zuerst überprüfen, ob das Quellprogramm syntaktisch korrekt ist Die Algorithmen, welche die syntaktische Überprüfung durchführen, sind der Scanner und Parser Der Scanner zerlegt das PS-Quellprogramm in Token Die Token des gegebenen Quellprogramms sind in der folgenden Tabelle aufgelistet: Token Bedeutung PROGRAM Schlüsselwort ab2 Bezeichner Semikolon VAR Schlüsselwort a1 Bezeichner : Doppelpunkt NAT Datentyp 41 Semikolon BEGIN Schlüsselwort a1 Bezeichner := Wertzuweisung 314 nat Zahl Semikolon Schlüsselwort Punkt Aufgabe: Entwerfen und implementieren Sie ein Programm, das wie ein Scanner eine Folge von Zeichen in eine Folge von Token zerlegt Des Weiteren führt der Scanner eine lexikalische Analyse 42 durch, das heißt, der Scanner überprüft jedes Token auf syntaktische Korrektheit Wie das geschieht, wird exemplarisch an den Token gezeigt, die Bezeichner sind Mit Hilfe der kontextfreien regulären Grammatik (2) wurde der Bezeichner 43 ab2 Terminalsymbol für Terminalsymbol von links nach rechts gebildet und in das PS- Quellprogramm geschrieben Der Bezeichner ab2 ist der Name des PS-Programms Ebenso wurde der Bezeichner a1 gebildet Er ist der Name einer Variablen 41 NAT ist der Datentyp für natzahlen 42 Alle Token werden geprüft, ob sie der "Lexik" der Sprache PS entsprechen Beispielsweise wird geprüft, ob die Schreibweise des Tokens PROGRAM mit der des Terminalsymbols PROGRAM übereinstimmt Dies ist vergleichbar mit der Prüfung auf korrekte Rechtschreibung 43 Bezeichner = "a" RestB Bezeichner = "b" RestB RestB = "a" RestB RestB = "b" RestB RestB = "1" RestB = "2" Seite 12
13 Bezeichner a RestB b RestB 0 Abbildung 6: ein Bezeichner wird von links nach rechts gebildet Der Scanner kann jedes durch die reguläre Grammatik (2) gebildete Wort erkennen Dazu liest der Scanner das entsprechende Token (zb ab2) Zeichen für Zeichen von links nach rechts Er erkennt einen Bezeichner, wenn im Token, bis auf das letzte Zeichen, die Terminalsymbole a und b stehen und das letzte Zeichen entweder das Terminalsymbol 0 oder 1 ist Ansonsten ist das Token kein Bezeichner Aufgabe: Entwerfen und implementieren Sie ein Programm, das wie ein Scanner prüft, ob eine Folge von Zeichen (ein Token) ein Bezeichner ist Der Scanner lässt sich in Prolog wie folgt implementieren: buchstabe(a) buchstabe(b) ziffer(0) ziffer(1) bezeichner([b R]) :- R\==[],buchstabe(B),restbz(R) restbz([b R]) :- R\==[],buchstabe(B),restbz(R) restbz([z []]) :- ziffer(z) Eine Anfrage an das Programm könnte lauten:?- bezeichner([a,b,2]) Der Scanner realisiert zum Erkennen der Worte, die mit der regulären Grammatik (2) erzeugt wurden, einen endlichen Automaten In der Abbildung 7 ist der Aufbau des endlichen Automaten dargestellt Das Eingabeband ist beidseitig unendlich lang 44 Auf dem Eingabeband steht ein Eingabewort, beispielsweise ab2 Der endliche Automat befindet sich am Anfang im Zustand Bezeichner Der Lesekopf steht auf dem ersten Zeichen des Eingabewortes, im Beispiel auf a 44 Ein endlicher Automat ist abstrakt Der Scanner kann nur ein endlich langes Band realisieren Seite 13
14 Eingabeband a b 2 Lesekopf Steuereinheit und Zustandsspeicher a b 1 2 Bezeichner RestB RestB Fehler Fehler RestB RestB RestB Stopp Stopp Programm Abbildung 7: Aufbau eines endlichen Automaten Aufgabe: Erklären Sie den Zusammenhang zwischen Ihrem Programm und der Darstellung in Abbildung 7 In der Abbildung 8 ist der Zustandsgraph des endlichen Automaten dargestellt Der Zustandsgraph veranschaulicht die Arbeitsweise des endlichen Automaten a, b Start Bezeichner a, b RestB 1, 2 Stopp a, b a, b, 0, 1 Fehler Abbildung 8: Zustandsgraph des endlichen Automaten Die Arbeitweise des endlichen Automaten wird am Beispiel des Eingabewortes ab2 erläutert Der Lesekopf liest im Anfangszustand Bezeichner das Zeichen a und geht laut Programm in den Zustand RestB Der Lesekopf bewegt sich im Eingabewort um ein Zeichen nach rechts, liest im Zustand RestB das Zeichen b und bleibt laut Programm im Zustand RestB Der Lesekopf bewegt sich im Eingabewort um ein Zeichen nach rechts, liest im Zustand RestB das Zeichen 2 und geht laut Programm in den Zustand Stopp Da der Lesekopf auf dem letzten Zeichen des Eingabewortes steht und sich der endliche Automat im Zustand Stopp befindet, ist das Eingabewort ab2 als Bezeichner erkannt worden Seite 14
15 Das Token ist kein Bezeichner, wenn: - es Zeichen enthält, die keine Terminalsymbole von Bezeichner sind - der Lesekopf nicht auf dem letzten Zeichen des Tokens steht aber der endliche Automat in den Zustand Stopp übergeht - das Terminalsymbol 1 oder 2 nicht als letztes Zeichen im Token steht In der Abbildung 8 ist zu erkennen, dass der endliche Automat zu jedem Zeitpunkt seiner Ausführung höchstens eine Möglichkeit der Fortführung hat Ein endlicher Automat mit einem solchen Programm und Zustandsgraph wird deterministischer endlicher Automat genannt Aufgabe: Entwerfen und implementieren Sie ein Programm, das wie ein Scanner prüft, ob eine Folge von Zeichen (ein Token) ein natzahl 45 ist Mit der Grammatik (2) können nur Bezeichner gebildet werden, die aus den Buchstaben a sowie b bestehen und mit der Ziffer 1 oder 2 enden Mit der folgenden Grammatik können Bezeichner gebildet werden, die aus einem Buchstaben gefolgt von Buchstaben und Ziffern bestehen Diese Grammatik ist wie die Grammatiken (2) und (3) kontextfrei und regulär Die Grammatik (4) lautet: BezeichnerNeu = "A" "B" "x" "y" "z" BezeichnerNeu = ("A" "B" "x" "y" "z" ) RestBN RestBN = ("A" "B" "x" "y" "z" ) RestBN RestBN = ("0" "1" "9" ) RestBN RestBN = "A" "B" "x" "y" "z" RestBN = "0" "1" "9" Zum Erkennen von Bezeichnern, die mit der Grammatik (4) gebildet werden, realisiert der Scanner ebenfalls einen endlichen Automaten Am Aufbau des endlichen Automaten verändert sich (bis auf das Programm 46 ) nichts gegenüber den vorhergehenden endlichen Automaten In der Abbildung 9 ist jedoch zu erkennen, dass dieser endliche Automat zu einem Zeitpunkt der Ausführung seines Programms zwei Möglichkeiten der Fortführung des Programms hat Ein solcher endlicher Automat ist ein nichtdeterministischer endlicher Automat 47 In der folgenden Tabelle ist das Programm des nichtdeterministischen endlichen Automaten dargestellt: BezeichnerNeu RestBN A RestBN/Stopp RestBN/Stopp RestBN/Stopp RestBN/Stopp z RestBN/Stopp RestBN/Stopp 0 Fehler RestBN/Stopp Fehler RestBN/Stopp 9 Fehler RestBN/Stopp 45 siehe Grammatik (3) 46 siehe Tabelle unten 47 Ein endlicher Automat, der zu bestimmten Zeitpunkten der Ausführung seines Programms mehrere Möglichkeiten der Fortführung des Programms hat, wird nichtdeterministischer endlicher Automat genannt Seite 15
16 Start Buchstabe BezeichnerNeu Fehler Buchstabe Buchstabe Ziffer RestBN Buchstabe Ziffer Buchstabe Stopp Buchstabe Ziffer Abbildung 9: Zustandsgraph des nichtdeterministischen endlichen Automaten Aufgabe: Entwerfen und implementieren Sie ein Programm, das wie ein Scanner prüft, ob eine Folge von Zeichen (ein Token) ein BezeichnerNeu ist Das in der Aufgabe geforderte Programm kann ebenfalls in Prolog implementiert werden buchstabe(a) buchstabe(a) buchstabe(z) ziffer(0) ziffer(9) bezeichnerneu([b R]) :- R\==[],buchstabe(B),restbn(R) bezeichnerneu([b []]) :- buchstabe(b) restbn([b R]) :- R\==[],buchstabe(B),restbn(R) restbn([z R]) :- R\==[],ziffer(Z),restbn(R) restbn([b []]) :- buchstabe(b) restbn([z []]) :- ziffer(z) Eine Anfrage an das Prolog-Programm könnte lauten:?- bezeichnerneu([a,1,b,2,c]) Der Vorteil von Prolog besteht darin, dass dieses System bereits über einen Backtracking-Algorithmus zur Suche aller Fortführungsmöglichkeiten der Ausführung des Programms endlichen Automaten verfügt Seite 16
17 Zusammenfassung: Ein Scanner ist eine Komponente des Compilers: - Er zerlegt das Quellprogramm in Token - Jede Klasse von Token ist eine reguläre Sprache Reguläre Sprachen werden von deterministischen bzw nichtdeterministischen Automaten erkannt - Ein Scanner ist die programmiertechnische Realisierung endlicher Automaten Der Scanner prüft, ob die Token syntaktisch korrekte Wörter der jeweiligen regulären Sprache sind Der Parser ist neben dem Scanner eine weitere Komponente eines Compilers Er prüft, ob das Quellprogramm syntaktisch korrekt ist Wie ein Parser arbeitet, wird an einem PS-Quellprogramms erläutert: PROGRAM ab2 VAR a1 : NATEGER BEGIN a1 := 314 Der Scanner hat das PS-Quellprogramm bereits in Token zerlegt und die syntaktische Korrektheit der Token ermittelt Tokennr Token # 1 PROGRAM # 2 ab2 # 3 # 4 VAR # 5 a1 # 6 : # 7 NAT # 8 # 9 BEGIN # 10 a1 # 11 := # # 13 # 14 # 15 Auf der Grundlage Grammatik (1) 48, die kontextfrei ist (nicht regulär) überprüft der Parser, ob die Folge von Token ein syntaktisch korrektes PS-Quellprogramm ist 48 Programm = "PROGRAM" Bezeichner "" Block "" Block = "VAR" Bezeichner ":" "NAT" "" "BEGIN" Anweisung "" "" Anweisung = Bezeichner ":=" Term Term = natzahl Das Startsymbol ist Programm Seite 17
18 Dazu arbeitet der Parser die Folge der Token in der Reihenfolge der Nummerierung, beginnend mit dem Token #1, ab Der Parser verweist am Anfang auf den Token #1 Die Überprüfung erfolgt zusätzlich mit einem Stack, der aus historischen Gründen Keller bzw Kellerspeicher genannt wird 49 Der Stack arbeitet nach dem LIFO Speicherprinzip 50 : a) Am Anfang steht nur das Startsymbol im Stack b) Steht ein Nichtterminalsymbol ganz oben im Stack, wird eine passende Regel der Grammatik gesucht Das Nichtterminalsymbol wird durch die rechte Seite der Regel ersetzt Dabei wird die rechte Seite der Regel von rechts nach links gelesen und in den Stack eingefügt c) Steht ein Terminalsymbol ganz oben im Stack und stimmt es mit dem aktuellen Token überein, dann wird das oberste Stackelement gelöscht und der Parser wechselt zum Token mit der nächsten Nummer d) Steht ein Terminalsymbol ganz oben im Stack und stimmt es nicht mit dem aktuellen Token überein, dann bricht der Parser die Arbeit ab Das Quellprogramm ist nicht syntaktisch korrekt e) Ist nach der Abarbeitung des letzten Token der Stack leer, ist das Quellprogramm syntaktisch korrekt Die Arbeitsweise des Parsers und seines Stacks (Kellers) zum Erkennen 51 eines PS- Quelltextes wird durch die Abbildungen 10 bis 33 veranschaulicht Jede Abbildung stellt die aktuelle Belegung des Stacks dar 52 In der Anfangssituation steht nur das Nichtterminalsymbol Programm im Stack Der Pfeil bedeutet, dass ein Element in den Stack eingefügt wird Der Pfeil bedeutet, dass ein Element aus dem Stack gelöscht wird Programm PROGRAM Bezeichner Block PROGRAM Bezeichner Block Abbildung 10 Abbildung 11 Abbildung Vgl Hedtstück, U (2000): Einführung in die Theoretische Informatik Formale Sprachen und Automatentheorie Oldenburg Verlag, München, S LIFO bedeutet last in first out 51 eines Wortes der Sprache PS 52 Die Arbeit des Stacks kann an einer Magnettafel veranschaulicht werden Die Kellerelemente sind beschriftete Karten, die mit Magneten an die Tafel geheftet werden können Seite 18
19 Bezeichner ab2 Block Block Block Abbildung 13 Abbildung 14 Abbildung 15 VAR Bezeichner : NAT BEGIN Anweisung VAR Bezeichner : NAT BEGIN Anweisung Bezeichner a1 : NAT BEGIN Anweisung Abbildung 16 Abbildung 17 Abbildung 18 : NAT BEGIN Anweisung NAT BEGIN Anweisung BEGIN Anweisung Abbildung 19 Abbildung 20 Abbildung 21 Seite 19
20 BEGIN Anweisung Anweisung Bezeichner := Term Abbildung 22 Abbildung 23 Abbildung 24 Bezeichner a1 := Term := Term Term Abbildung 25 Abbildung 26 Abbildung 27 natzahl natzahl 314 Abbildung 28 Abbildung 29 Abbildung 30 Der Keller ist leer Abbildung 31 Abbildung 32 Abbildung 33 Seite 20
21 Da der Parser alle Token abgearbeitet hat und der Stack (Keller) leer ist, beendet der Parser die syntaktische Überprüfung Er hat das Quellprogramm als ein korrektes Wort der Programmiersprache PS erkannt Der Parser realisiert zum Erkennen der Worte, die mit der kontextfreien Grammatik (1) erzeugt wurden, einen Kellerautomaten 53 In der Abbildung 34 ist der Aufbau eines Kellerautomaten dargestellt 54 Auf dem Eingabeband steht am Anfang die zu prüfende Folge der Token Aus der Grammatik (1) und der Erläuterung der Arbeitsweise des Parsers beim Erkennen des PS-Quellprogramms wird ersichtlich, dass der Parser einen deterministischen Kellerautomaten realisiert Zu jedem Zeitpunkt der Ausführung des Kellerautomaten gibt es höchstens eine Fortführungsmöglichkeit Eingabeband Lesekopf Steuereinheit und Zustandsspeicher Kellerspeicher Lese- und Schreikopf Programm Abbildung 34: Aufbau eines Kellerautomaten Aufgabe: Entwerfen und implementieren Sie ein Programm, das wie ein Parser prüft, ob die in der Tabelle gegebene Folge von Token ein syntaktisch korrektes PS-Quellprogramm ist Wird beispielsweise die Regel Term in der Grammatik (1) um die Möglichkeit zum Bilden von Ausdrücken erweitert (zb oder ), dann muss der Parser programmiertechnisch einen nichtdeterministischen Kellerautomaten realisieren Programm = "PROGRAM" Bezeichner "" Block "" Block = "VAR" Bezeichner ":" "NAT" "" "BEGIN" Anweisung "" "" Anweisung = "Bezeichner ":=" Term Term = natzahl "+" natzahl Term = natzahl Das Startsymbol ist Programm 53 Ein Kellerautomat ist ein Automat mit einem Kellerspeicher 54 Vgl Hedtstück, U (2000): Einführung in die Theoretische Informatik Formale Sprachen und Automatentheorie Oldenburg Verlag, München, S 114 Seite 21
22 Um einen nichtdeterministischen Kellerautomaten zu realisieren muss unter anderem die Arbeitsweise des Stacks 55 modifiziert werden: d) Steht ein Terminalsymbol ganz oben im Stack und stimmt es nicht mit dem aktuellen Token überein, dann wird durch Backtracking eine weitere Möglichkeit der Fortführung der Überprüfung vom Parser abgearbeitet Steht ein Terminalsymbol ganz oben im Stack und stimmt es nicht mit dem aktuellen Token überein und gibt es keine weitere Möglichkeit der Fortführung der Überprüfung, dann bricht der Parser die Arbeit ab Das Quellprogramm ist nicht syntaktisch korrekt Als Beispiel werden die Grammatik auf der Seite S 21 und das PS-Quellprogramm auf Seite 11 verwendet: Term natzahl + natzahl natzahl natzahl Abbildung 35 Abbildung 36 Abbildung 37 Das aktuelle Token ist das Semikolon (#13), deshalb Backtracking + natzahl Term natzahl Abbildung 38 Abbildung 39 Abbildung 40 Hinweis: Das Backtracking setzt einerseits den Stack zurück und andererseits den Parser wieder auf das Token #12 55 Vgl Skript, S 18 Seite 22
23 Aufgabe 56 : Modifizieren Sie Ihr Programm des Parsers so, dass es einen nichtdeterministischen Kellerautomaten realisiert Zusammenfassung: - Mit Grammatiken werden die Wörter von Sprachen gebildet 57 - Automaten 58 erkennen die Wörter von Sprachen - Scanner und Parser sind Komponenten eines Compilers: Das Quellprogramm wird vom Scanner in eine Folge von Token überführt Der Scanner überprüft die Token auf syntaktische Korrektheit Er erkennt jedes Token, das mit einer regulären Grammatik gebildet wurde Dies ist möglich, weil der Scanner intern einen endlichen Automaten realisiert Der Parser überprüft die Folge von Token auf syntaktische Korrektheit Er erkennt jede Tokenfolge, die mit einer kontextfreien Grammatik gebildet wurde Dies ist möglich, weil der Parser intern einen Kellerautomaten realisiert Des Weiteren erzeugt der Parser nach erfolgreicher Syntaxkontrolle einen Ableitungsbaum, der für die semantische Analyse des Quellprogramms benötigt wird 56 Diese Aufgabe besitzt einen hohen Schwierigkeitsgrad 57 bzw erzeugt 58 Turingmaschinen, Kellerautomaten und endliche Automaten Seite 23
24 Anhang I TuringKara und ein deterministischer endlicher Automat Die folgende Grammatik definiert die Sprache der Dualdarstellung natürlicher Zahlen mit führenden Nullen: Dualzahl = "0" Dualzahl Dualzahl = "1" Dualzahl Dualzahl = "0" Dualzahl = "1" Das Startsymbol ist Dualzahl Es handelt sich hierbei um eine reguläre Grammatik, denn auf der rechten Seite jeder Regel findet man entweder ein Terminalsymbol gefolgt von einem Nichtterminalsymbol oder nur ein Terminalsymbol Ein deterministischer endlicher Automat kann die Wörter erkennen, die mit dieser Grammatik gebildet werden Mit Hilfe von TuringKara 59 lässt sich ein endlicher Automat wie folgt konstruieren: Die Weltgröße wird eindimensional aus 20 horizontal angeordneten Zellen gestaltet Das ist das Band des endlichen Automaten Auf das Band (Abbildung 41) wird das Eingabewort geschrieben, so beispielsweise Der endliche Automat befindet sich in der Anfangskonfiguration im Zustand Dualzahl und der Lesekopf steht auf dem ersten Zeichen des Eingabewortes Das TuringKara Programm des endlichen Automaten ist in Abbildung 42 dargestellt Das Zeichen entspricht der leeren Zelle, das heißt, wenn der Lesekopf auf der ersten leeren Zelle hinter dem Eingabewort steht, stoppt der endliche Automat Das Eingabewort ist als ein Wort der Sprache erkannt worden Meldet der endliche Automat im Verlauf der Abarbeitung einen Fehler, dann ist das Eingabewort kein Wort der Sprache Abbildung 41: Anfangssituation des endlichen Automaten In der Abbildung 43 ist die Bandbelegung in der Endkonfiguration des endlichen Automaten dargestellt In TuringKara muss der Lesekopf auf der leeren Zelle stehen, um das Ende des Eingabewortes zu erkennen Abbildung 42: Zustandgraph des endlichen Automaten Abbildung 43: Endsituation des endlichen Automaten 59 Downloads für Kara: //educethethzch/informatik/karatojava/downloadhtml Seite 24
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
MehrSyntax 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
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß... aus Molière, Les Femmes Savantes (1672), 2. Akt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp
MehrSyntax von Programmiersprachen
"Grammatik, die sogar Könige zu kontrollieren weiß aus Molière, Les Femmes Savantes (1672), 2. kt Syntax von Programmiersprachen Prof. Dr. Martin Wirsing Ziele Zwei Standards zur Definition der Syntax
MehrThüringer Kultusministerium
Thüringer Kultusministerium Abiturprüfung 1999 Informatik als Leistungsfach (Haupttermin) Arbeitszeit: Hilfsmittel: 270 Minuten Formeln und Tabellen für die Sekundarstufen I und II/ Paetec, Gesellschaft
Mehr1. 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
Mehr1. 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
Mehr7. 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
MehrABITURPRÜFUNG 2008 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2008 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
MehrABITURPRÜFUNG 2004 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)
ABITURPRÜFUNG 2004 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: Hilfsmittel: 270 Minuten Formeln und Tabellen für die Sekundarstufen I und II, Berlin: Paetec, Ges. für Bildung und Technik mbh oder
MehrSprachen 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
MehrKapitel 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
MehrTheoretische Informatik I
Theoretische Informatik I Einheit 2.5 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibung des Aufbaus von Sprachen Mathematische Mengennotation Beschreibung durch Eigenschaften
MehrABITURPRÜFUNG 2003 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)
ABITURPRÜFUNG 2003 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: 270 Minuten Hilfsmittel: Formeln und Tabellen für die Sekundarstufen I und II. Berlin: Paetec, Ges. für Bildung und Technik mbh; PC
MehrFormale Sprachen. Inhaltsverzeichnis. M. Jakob. 10. Dezember Allgemeine Einführung. Aufbau formaler Sprachen
M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis Allgemeine Einführung Aufbau formaler Sprachen Notationsformen formaler Sprachen Backus-Naur-Formen Erkennen formaler Sprachen Implementierung
MehrABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2007 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
MehrTuring Maschine. Thorsten Timmer. SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke. Turing Maschine SS 2005 p.
Thorsten Timmer SS 2005 Proseminar Beschreibungskomplexität bei Prof. D. Wotschke Turing Maschine SS 2005 p. 1/35 Inhalt Einführung Formale Definition Berechenbare Sprachen und Funktionen Berechnung ganzzahliger
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens vollständige Java- Programme
MehrABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK
ABITURPRÜFUNG 2010 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Bearbeitungszeit: 270 Minuten Hilfsmittel: Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
MehrKapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrWS06/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.
MehrEinführung in die Informatik. Programming Languages
Einführung in die Informatik Programming Languages Beschreibung von Programmiersprachen Wolfram Burgard Cyrill Stachniss 1/15 Motivation und Einleitung Wir haben in den vorangehenden Kapiteln meistens
MehrKapitel IV Formale Sprachen und Grammatiken
Kapitel IV Formale Sprachen und Grammatiken 1. Begriffe und Notationen Sei Σ ein (endliches) Alphabet. Dann Definition 42 1 ist Σ das Monoid über Σ, d.h. die Menge aller endlichen Wörter über Σ; 2 ist
MehrKontextfreie 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
MehrCompilerbau für die Common Language Run-Time
Compilerbau für die Common Language Run-Time Syntax und Semantik von Programmiersprachen 2 Compilerbau Sprachbeschreibung vs. Implementierung Beschreibung: formale oder informale (engl.) Lexik, Syntax,
MehrThüringer Kultusministerium
Thüringer Kultusministerium Abiturprüfung 1999 Informatik als Grundfach (Haupttermin) Arbeitszeit: Hilfsmittel: 210 Minuten Formeln und Tabellen für die Sekundarstufen I und II/ Paetec, Gesellschaft für
Mehr5. Die syntaktische Analyse
mittels sog. Parser Input: Folge von Token (Symbolen), geliefert vom Scanner/Sieber Aufgabe: Teilfolgen zusammenfassen zu größeren syntaktischen Einheiten Ausdrücke, Anweisungen(-folgen), Deklarationen,
MehrAlgorithmen und Formale Sprachen
Algorithmen und Formale Sprachen Algorithmen und formale Sprachen Formale Sprachen und Algorithmen Formale Sprachen und formale Algorithmen (formale (Sprachen und Algorithmen)) ((formale Sprachen) und
MehrLexikalische Programmanalyse der Scanner
Der Scanner führt die lexikalische Analyse des Programms durch Er sammelt (scanned) Zeichen für Zeichen und baut logisch zusammengehörige Zeichenketten (Tokens) aus diesen Zeichen Zur formalen Beschreibung
MehrÜbungsblatt 6. Vorlesung Theoretische Grundlagen der Informatik im WS 18/19
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 6 Vorlesung Theoretische Grundlagen der Informatik im WS 18/19 Ausgabe 8. Januar 2019 Abgabe 22. Januar 2019, 11:00 Uhr (im
MehrEin Fragment von Pascal
Ein Fragment von Pascal Wir beschreiben einen (allerdings sehr kleinen) Ausschnitt von Pascal durch eine kontextfreie Grammatik. Wir benutzen das Alphabet Σ = {a,..., z, ;, :=, begin, end, while, do} und
MehrTheoretische 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
MehrDeterministischer Kellerautomat (DPDA)
Deterministische Kellerautomaten Deterministischer Kellerautomat (DPDA) Definition Ein Septupel M = (Σ,Γ, Z,δ, z 0,#, F) heißt deterministischer Kellerautomat (kurz DPDA), falls gilt: 1 M = (Σ,Γ, Z,δ,
MehrObjektorientierte Programmierung. Kapitel 3: Syntaxdiagramme
Stefan Brass: OOP (Java), 3. 1/31 Objektorientierte Programmierung Kapitel 3: Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2014/15 http://www.informatik.uni-halle.de/ brass/oop14/
MehrKapitel 2: Methoden zur Beschreibung von Syntax
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 2: Methoden zur Beschreibung von Syntax Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische
MehrSyntaxanalyse Ausgangspunkt und Ziel
Syntaxanalyse Ausgangspunkt und Ziel Ausgangspunkt: Kontextfreie Grammatik Im Normalfall BNF, manchmal EBNF BNF = Backus-Naur-Form = Produktionsregeln EBNF = erweiterte BNF (+ reguläre Ausdrücke) Prüfung
MehrAlgorithmen 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
MehrABITURPRÜFUNG 2006 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN)
ABITURPRÜFUNG 2006 LEISTUNGSFACH INFORMATIK (HAUPTTERMIN) Arbeitszeit: Hilfsmittel: 270 Minuten Wörterbuch zur deutschen Rechtschreibung Taschenrechner (nicht programmierbar, nicht grafikfähig) (Schüler,
Mehr2.2 Syntax, Semantik und Simulation
2.2 Syntax, Semantik und Simulation Ein Java Programm ist eine Folge von Buchstaben. Nicht jede Folge von Buchstaben ist ein korrektes Java Programm! Wie kann man alle korrekten Java Programme beschreiben?
MehrFormale Sprachen. Inhalte. Lehrplan. Hinweis
Formale Sprachen Inhalte Aufbau von Sprachen Grammatiken formaler Sprachen Endliche Automaten *Grenzen endlicher Automaten Werkzeuge TdI, 2. Juli 2010 Peter Brichzin 1 TdI, 2. Juli 2010 Peter Brichzin
MehrSyntax von Programmiersprachen
Information: ist Rohstoff der Informatik, hat eigenständige Dimension (vgl. Länge, Zeit, elektrische Ladung ist jedoch nicht im SI-System enthalten) läßt sich nicht messen, sie wird berechnet wird durch
MehrAutomaten 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(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),
MehrAlgorithmen und Datenstrukturen I - Exkurs Formale Sprachen -
Algorithmen und Datenstrukturen I - - Thies Pfeiffer Technische Fakultät tpfeiffe@techfak.uni-bielefeld.de Vorlesung, Universität Bielefeld, Winter 2012/2013 1 / 22 Exkurs: Formale Sprachen Im Kapitel
MehrInterdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der Informatik. SS 2016: Grossmann, Jenko
Interdisziplinäre fachdidaktische Übung: Modelle für Sprachen in der SS 2016: Grossmann, Jenko Die Beschreibung orientiert sich am Begriffssystem der Beschreibung natürlicher Sprachen Sprache in der steht
MehrKontextfreie Grammatiken. Kontextfreie Grammatiken 1 / 48
Kontextfreie Grammatiken Kontextfreie Grammatiken 1 / 48 Was kann man mit kontextfreien Grammatiken anfangen? Kontextfreie Grammatiken, kurz: werden zur Modellierung von KFGs rekursiv definierten baumartigen
Mehr6 Kontextfreie Grammatiken
6 Kontextfreie Grammatiken Reguläre Grammatiken und damit auch reguläre Ausdrücke bzw. endliche Automaten haben bezüglich ihres Sprachumfangs Grenzen. Diese Grenzen resultieren aus den inschränkungen,
MehrLexikalische Analyse, Tokenizer, Scanner
Lexikalische Analyse, Tokenizer, Scanner Frühe Phase des Übersetzers Aufgabenteilung: Scanner (lokale) Zeichen (Symbol-)Analyse Parser Syntax-Analyse Aufgabe des Scanners: Erkennung von: Zahlen, Bezeichner,
MehrRekursiv aufzählbare Sprachen
Kapitel 4 Rekursiv aufzählbare Sprachen 4.1 Grammatiken und die Chomsky-Hierarchie Durch Zulassung komplexer Ableitungsregeln können mit Grammatiken größere Klassen als die kontextfreien Sprachen beschrieben
MehrKapitel 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
MehrGrammatik Prüfung möglich, ob eine Zeichenfolge zur Sprache gehört oder nicht
Zusammenhang: Formale Sprache Grammatik Formale Sprache kann durch Grammatik beschrieben werden. Zur Sprache L = L(G) gehören nur diejenigen Kombinationen der Zeichen des Eingabealphabets, die durch die
MehrDie mathematische Seite
Kellerautomaten In der ersten Vorlesung haben wir den endlichen Automaten kennengelernt. Mit diesem werden wir uns in der zweiten Vorlesung noch etwas eingängiger beschäftigen und bspw. Ansätze zur Konstruktion
MehrInformatik III - WS07/08
Informatik III - WS07/08 Kapitel 5 1 Informatik III - WS07/08 Prof. Dr. Dorothea Wagner dwagner@ira.uka.de Kapitel 5 : Grammatiken und die Chomsky-Hierarchie Informatik III - WS07/08 Kapitel 5 2 Definition
MehrProseminar TI: Kellerautomaten. 1 Motivation. 2 Einführung. Vortrag: Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer.
Proseminar TI: Kellerautomaten Vortrag: 10.11.2015 Von Sebastian Oltmanns und Dorian Wachsmann. Dozent: Wolfgang Mulzer. 1 Motivation Wir kennen bereits die Chomsky-Hierarchie. Sie klassiziert formale
MehrVon der Chomsky-Hierarchie
Von der Chomsky-Hierarchie zur Backus-Naur-Form Ein Beitrag der Theoretischen Informatik zum Siegeszug des Computers Referat von Helmut Schnitzspan Im Rahmen des Seminars Von der EDV zu Facebook Alexander
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2011
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2011 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Wir beschäftigen uns ab
MehrOgden s Lemma: Der Beweis (1/5)
Ogden s Lemma: Der Beweis (1/5) Wir betrachten zuerst die Rahmenbedingungen : Laut dem auf der vorhergehenden Folie zitierten Satz gibt es zur kontextfreien Sprache L eine Grammatik G = (Σ, V, S, P) in
MehrDas Informatik-Kochstudio Sortieren Alltagsalgorithmen Komplexe Algorithmen... 55
Inhalt Vorwort... 9 Binäre Codierung 0 oder 1 der kleine Unterschied... 14 Das Prinzip der digitalen Tonaufzeichnung... 16 Binäre Codierung... 18 Wiedergabequalität und Datenmengen... 21 Digitale Codierung
MehrEINFÜHRUNG IN DIE THEORETISCHE INFORMATIK
EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK Prof. Dr. Klaus Ambos-Spies Sommersemester 2012 17. DIE KONTEXTFREIEN SPRACHEN II: ABSCHLUSSEIGENSCHAFTEN, MASCHINENCHARAKTERISIERUNG, KOMPLEXITÄT Theoretische
MehrZentralabitur 2019 Informatik
Zentralabitur 2019 Informatik I. Unterrichtliche Voraussetzungen für die schriftlichen Abiturprüfungen an Gymnasien, Gesamtschulen, Waldorfschulen und für Externe Grundlage für die zentral gestellten schriftlichen
MehrGrundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 3. Endliche Automaten 30.04.2015 Viorica Sofronie-Stokkermans Matthias Horbach e-mail: sofronie@uni-koblenz.de, horbach@uni-koblenz.de 1 Bis jetzt 1. Motivation
MehrKapitel 4: Syntaxdiagramme und Grammatikregeln
4. Syntaxdiagramme und Grammatikregeln 4-1 Objektorientierte Programmierung (Winter 2006/2007) Kapitel 4: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrSoftware Entwicklung 2. Übersetzerbau 1
Software Entwicklung 2 Übersetzerbau 1 Übersetzerbau I Inhalt Aufgaben von Übersetzern Weitere Anwendungen von Übersetzern Arten von Übersetzern Grundlagen: Sprachdefinition Grammatik: BNF, EBNF, Syntaxdiagramme
MehrFORMALE SYSTEME. 3. Vorlesung: Endliche Automaten. TU Dresden, 17. Oktober Markus Krötzsch
FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch TU Dresden, 17. Oktober 2016 Rückblick Markus Krötzsch, 17. Oktober 2016 Formale Systeme Folie 2 von 31 Wiederholung Mit Grammatiken können
MehrÜbersicht: Inhalt und Ziele. Kapitel 2: Methoden zur Beschreibung von Syntax. Aufbau von Programmen. Syntax von Programmiersprachen
Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Übersicht: Inhalt und Ziele Zwei Methoden zur Beschreibung (Definition) der Syntax von Programmiersprachen Backus-Naur-Form
MehrKontextfreie Sprachen. Automaten und Formale Sprachen alias Theoretische Informatik. Sommersemester Kontextfreie Sprachen
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Wortproblem: der CYK-Algorithmus Pumping Lemma für kontextfreie Sprachen
Mehr3. Vorlesung: Endliche Automaten Markus Kr otzsch Lehrstuhl Wissensbasierte Systeme
Wiederholung Mit Grammatiken können wir Sprachen beschreiben und sie grob in Typen unterteilen: FORMALE SYSTEME 3. Vorlesung: Endliche Automaten Markus Krötzsch Lehrstuhl Wissensbasierte Systeme Formale
MehrProgrammiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2009 5. April 2009 Vorteile bei der Verwendung höherer Programmiersprachen Vorteile bei der Verwendung höherer Programmiersprachen 1. Einfache Notation
Mehr8. Turingmaschinen und kontextsensitive Sprachen
8. Turingmaschinen und kontextsensitive Sprachen Turingmaschinen (TM) von A. Turing vorgeschlagen, um den Begriff der Berechenbarkeit formal zu präzisieren. Intuitiv: statt des Stacks bei Kellerautomaten
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Formale Sprachen und endliche Automaten - Schülerband
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Formale Sprachen und endliche Automaten - Schülerband Das komplette Material finden Sie hier: School-Scout.de Dr. D. Appel Formale
MehrAutomaten und formale Sprachen Notizen zu den Folien
13 Kellerautomaten Automaten und formale Sprachen Notizen zu den Folien Warum ein Automatenmodell für kontextfreien Sprachen (zu Folie 233) Manche Konstruktionen und Verfahren lassen sich besser mit Hilfe
Mehr3 Syntax von Programmiersprachen
3 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 Programmiersprache Festlegung, wie Programme
MehrProgrammierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE3-Syntaxdiagramme (Stand 05.11.2010) Aufgabe 1: Entwickeln Sie Regeln zur Übersetzung von EBNF in Syntaxdiagramme. Aufgabe 2: Eine Zahl ist entweder
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2012 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Einschub: Kellerautomaten
Mehr1 Endliche Automaten mit Ausgabe
1.1 Autokorrektur und Smileys 9 Theorie bedeutet meist, dass die Bestandteile und Eigenschaften von Systemen auf das Elementare reduziert werden, um deren Prinzipien, Zusammenhänge, Möglichkeiten und Grenzen
MehrGrammatiken. 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,
MehrKontextfreie Sprachen werden von PDAs akzeptiert
Kontextfreie Sprachen werden von PDAs akzeptiert Sei G = (Σ, V, S, P) eine kontextfreie Grammatik. Dann gibt es einen PDA A mit L(A) = L(G). Der PDA A arbeitet mit nur einem Zustand q 0, besitzt das Kelleralphabet
MehrÜbungsaufgaben zu Formalen Sprachen und Automaten
Universität Freiburg PD Dr. A. Jakoby Sommer 27 Übungen zum Repetitorium Informatik III Übungsaufgaben zu Formalen Sprachen und Automaten. Untersuchen Sie das folgende Spiel: A B x x 2 x 3 C D Eine Murmel
MehrTheoretische Informatik I
(702765) Skript zur Vorlesung am 30.6.2000 Aus der vorherigen Vorlesung: Theoretische Informatik I Satz W: Sei X ein Alphabet. Zu jeder regulären Sprache R X * gibt es ein n N, so daß für alle Wörter z
MehrZentralabitur 2020 Informatik
Zentralabitur 2020 Informatik I. Unterrichtliche Voraussetzungen für die schriftlichen Abiturprüfungen an Gymnasien, Gesamtschulen, Waldorfschulen und für Externe Grundlage für die zentral gestellten schriftlichen
MehrGrammatiken und ANTLR
Grammatiken und ANTLR Zusatzfolien zu Algo Blatt 6 Author: Henry Schaefer http://www.majeeks.de/folien_blatt6.pdf Grammatik Definition: syntaktische Beschreibung einer Sprache (H.S.) Definiton Grammatik
MehrEinführung in die Informatik I (autip)
Einführung in die Informatik I (autip) Dr. Stefan Lewandowski Fakultät 5: Informatik, Elektrotechnik und Informationstechnik Abteilung Formale Konzepte Universität Stuttgart 24. Oktober 2007 Was Sie bis
MehrInhalt Kapitel 11: Formale Syntax und Semantik
Inhalt Kapitel 11: Formale Syntax und Semantik 1 Abstrakte und konkrete Syntax 2 Lexikalische Analyse 3 Formale Sprachen, Grammatiken, BNF 4 Syntaxanalyse konkret 266 Abstrakte und konkrete Syntax Abstrakte
MehrTheoretische Informatik. Grammatiken. Grammatiken. Grammatiken. Rainer Schrader. 9. Juli 2009
Theoretische Informatik Rainer Schrader Institut für Informatik 9. Juli 2009 1 / 41 2 / 41 Gliederung die Chomsky-Hierarchie Typ 0- Typ 3- Typ 1- Die Programmierung eines Rechners in einer höheren Programmiersprache
MehrWas 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?
MehrFormale Sprachen und Automaten
Formale Sprachen und Automaten Kapitel 4: Typ 2 kontextfreie Sprachen Vorlesung an der DHBW Karlsruhe Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2012 Kapitel
MehrDeterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen
Dr. Sebastian Bab WiSe 12/13 Theoretische Grundlagen der Informatik für TI Termin: VL 15 + 16 vom 17.12.2012 und 20.12.2012 Deterministische und nichtdeterministische Turing-Maschinen, Typ1- und Typ0-Sprachen
Mehr7. 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.,...)
Mehr2. Gegeben sei folgender nichtdeterministischer endlicher Automat mit ɛ-übergängen:
Probeklausur Automatentheorie & Formale Sprachen WiSe 2012/13, Wiebke Petersen Name: Matrikelnummer: Aufgabe A: Typ3-Sprachen 1. Konstruieren Sie einen endlichen Automaten, der die Sprache aller Wörter
MehrGrundlagen der Programmierung 3 A
Grundlagen der Programmierung 3 A Compiler A: Phasen Lexikalische Analyse; Scanner Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2018 Compiler; Übersetzungsprogramme Ein Übersetzer (Compiler) ist ein
MehrSprachanalyse. Fachseminar WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Nadia Douiri
Sprachanalyse WS 08/09 Dozent: Prof. Dr. Helmut Weber Referentin: Inhalt 1. Formale Sprachen 2. Chomsky-Hierarchie 2 FORMALE SPRACHE 1. WAS IST EINE SPRACHE? 2. WIE BESCHREIBT MAN EINE SPRACHE? 3. WAS
MehrUnterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Formale Sprachen und endliche Automaten
Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Formale Sprachen und endliche Automaten Das komplette Material finden Sie hier: Download bei School-Scout.de Dr. D. Appel Formale
MehrGrundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben
Dieses Dokument soll mehr dazu dienen, Beispiele für die formal korrekt mathematische Bearbeitung von Aufgaben zu liefern, als konkrete Hinweise auf typische Klausuraufgaben zu liefern. Die hier gezeigten
Mehr