Übung zu Grundlagen des Übersetzerbaus
|
|
- Ralf Keller
- vor 6 Jahren
- Abrufe
Transkript
1 Übung zu Grundlagen des Übersetzerbaus Mehr zu Parsern und LL(k)-Grammatiken Lehrstuhl für Informatik 2 (Programmiersysteme)
2 Probleme bei LR-Parsern Für manche Grammatiken ist es nicht möglich, LR-Parser zu konstruieren. Beispiel: S a a S a (Sprache: ungerade Anzahl von a ) Ab 1 konsumierten Zeichen: Shift oder Reduce? Zwei mögliche Probleme: SHIFT/REDUCE-Konflikt: Soll ein SHIFT oder ein REDUCE stattfinden? REDUCE/REDUCE-Konflikt: Anhand welcher (von zwei) Regeln soll reduziert werden? Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 2 / 22
3 SHIFT/REDUCE-Konflikte Beispiel: EX ID EX + EX Input: a + b + c Nach Konsum von a + b : Stack hat EX + EX, Input ist + Frage: Soll + geshiftet werden, oder soll stattdessen a + b wegreduziert werden? Hier: Beides möglich, führt zu unterschiedlichen Parse-Bäumen Beispiel von oben: S a a S a Nur eine der zwei möglichen Entscheidungen ist richtig, die Andere führt zu einem Parse-Fehler. Welche Entscheidung richtig ist, hängt vom Input ab: Bei aaa muss nach dem 2. a reduziert werden. Bei aaaaa muss nach dem 3. a reduziert werden. Allgemein: Bei 2k + 1 a muss nach dem k + 1 ten a reduziert werden. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 3 / 22
4 Lösen von SHIFT/REDUCE-Konflikten Grammatik Ändern: Aus EX ID EX + EX EX ID EX + ID erzeugt einen Parse-Baum, der nach der alten Grammatik auch legal wäre. Statt S a a S a Besser: S a S a a Erzeugt einen anderen Parse-Baum (u.u. inkompatibel!) Problem: Gegeben S a S a b S b ɛ ( alle Palindrome aus a und b mit gerader Länge ) Kein LR-Parser möglich! Im Allgemeinen: Zu zwei verschiedenen kontextfreien Grammatiken zu bestimmen, ob sie die gleiche Sprache erzeugen, ist unentscheidbar... Also: kein Algorithmus möglich, der immer funktioniert. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 4 / 22
5 Lösen von SHIFT/REDUCE-Konflikten Spezialfall: Präzedenz von Operatoren festlegen: Grammatik: EX ID EX + EX EX * EX Ziel: Standard-Arithmetische Ausdrücke mit Punkt-Vor-Strich. Lösung: Präzedenz und Assoziativität festlegen. Idee: EX OP1 EX liegt auf dem Stack, OP2 steht im Input. Wenn OP1 Präzedenz vor OP2 hat: Reduzieren. Sonst: Shift! Erweiterung: EX OP1 EX liegt auf dem Stack, OP1 steht im Input. Wenn OP1 linksassoziativ ist: Reduzieren. Sonst: Shift! Damit z.b. Problem bei Bool-Ausdrücken in E lösbar. (Übung) Einfach, aber nur in Spezialfällen anwendbar. Beispiel! Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 5 / 22
6 REDUCE/REDUCE-Konflikte Ursache: uneindeutige Grammatik assignment : ID EQUALS NUMBER ID EQUALS expression expression : expression PLUS expression expression MINUS expression LPAREN expression RPAREN NUMBER Input: a := 5 (komplett konsumiert) Stack: ID EQUALS NUMBER Mögliche Reduktionen: Alles assignment, oder NUMBER expression. Lösung 1: Auflösungsstrategie: größere Reduktion vor kleinerer Reduktion Lösung 2: Grammatik eindeutig(er) machen, und hoffen dass der Parser Generator gute Fehlermeldungen liefert. PLY Dokumentation: To try and figure it out, you ll probably have to look at your grammar and the contents of the parser.out debugging file with an appropriately high level of caffeination. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 6 / 22
7 GLR-Parser LR-Parsen geht i.a. nicht ohne Konflikte. Idee: Konflikte nicht verhindern/vermeiden. Jeder Konflikt kann auf 2 (oder mehr) Arten aufgelöst werden. Warum nicht alle Problemlösungen gleichzeitig ausprobieren? Bei Konflikt: Stack + Zustandsautomat + Inputposition duplizieren, beide Möglichkeiten parallel weiterlaufen lassen. Tatsächliche Implementierung verwendet Bäume an Stelle von Stacks, weitere Optimierungen... Ergebnis: alle möglichen Parse-Bäume Laufzeitkosten: O(Inputgröße 3 ) Worst-Case. Für (LA-)LR-Grammatiken: Verhalten, Preformance wie LR-Parser Für mehrdeutige Grammatiken: Mehrere Ergebnisse, Auswahl nötig! Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 7 / 22
8 Mehr zu Parsern und LL(k)-Grammatiken Warum mehr Informationen über (LL(k))-Parser? Es gibt Alternativen zu (LA-)LR - Parsern... und diese sind praxisrelevant... und sie verhalten sich anders als (LA)LR - Parser. Die Chancen, dass diese später verwendet werden, sind hoch. Verwandtschaft mit handgeschriebenen Parsern. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 8 / 22
9 Theorie zu LL(k) - Parsern (1) Genau wie bei LR-Parsern: Ein Stack Eine Input-Quelle (aus der Terminalsymbole kommen) Ein Zustandsautomat, der von der Input-Quelle lesen kann, und Dinge auf den Stack legen kann und vom Stack herunter nehmen kann Anders als beim LR-Parser: Zu Beginn: Startsymbol der Grammatik liegt auf dem Stack Statt Shift: Drop Wenn oben auf dem Stack ein Terminalsymbol steht: Falls dieses auch im Input steht, so werden beide entfernt. Sonst: Fehler! Statt Reduce: Expand Wenn oben auf dem Stack ein Nichtterminalsymbol steht: Nimm das Nichtterminal vom Stack, und lege die rechte Seite einer passenden Produktion rückwärts auf den Stack Wenn Stack am Ende leer: Erfolg Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 9 / 22
10 Beispiel Stack Input E a + 3 * b E A M a + 3 * b E A MM P a + 3 * b E A MM ID a + 3 * b D A MM + 3 * b E A + 3 * b E Grammatik: Expr MultExpr Additions A M * b D Additions ɛ + MultExpr Additions A M 3 * b E MultExpr Particle MoreMult A MM P 3 * b E MoreMult ɛ * Particle MoreMult A MM NUM 3 * b D Particle IDENTIFIER NUMBER A MM * b E A MM P * * b D A MM P b E A MM ID b D A MM E A E leer Parse-Vorgang erfolgreich Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 10 / 22
11 Theorie zu LL(k) - Parsern (2) Der Zustandsautomat muss (wie bei LR-Parsern) entscheiden, was zu tun ist. Die Entscheidung ob Drop oder Expand ist einfach: Wenn oben auf dem Stack ein Terminalsymbol liegt, geht nur Drop, und sonst geht nur Expand. Die Entscheidung, anhand welcher Grammatikregel expandiert wird, hängt vom Input ab. Der Zustandsautomat betrachtet die kommenden k Token, und trifft dann eine Entscheidung. Vorteil: Bei endlichem k ist der Parse-Aufwand linear in der Input-Größe. Nachteil: Die Entscheidung, welche Produktion zu verwenden ist, muss mit nur k Token treffbar sein. Nachteil 2: Linksrekursive Produktionen sind nicht möglich Bsp.: E id E + id (Stack overflow!) Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 11 / 22
12 Probleme bei LL(k) - Parsern Alternativen brauchen unterschiedliches Präfix. Beispiel C (vereinfacht): Program Vardecl FuncDecl FuncDecl Type ID ( ) ; VarDecl Type ID ; Type IDENTIFIER Pointers Pointers ɛ * Pointers Input: int *******... In Program Entscheidung nötig: Ersetzen mit Vardecl oder FuncDecl? Dazu nötige Information: Kommt eine Klammer nach dem Typ und dem Namen? Aber: Typ kann beliebig lang sein! k Token Lookahead reichen nicht. Grundlegendes Problem: Verschiedene Produktionen fangen mit den gleichen Token an. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 12 / 22
13 Probleme bei LL(k)-Parsern Formal: 2 Arten von Konflikten: FIRST/FIRST: A B C, B und C fangen gleich an. Problem: A liegt oben auf dem Stack - soll nach B oder C expandiert werden? FIRST/FOLLOW: (nur bei ɛ-produktionen) A1 B C A2 B X B ɛ D C und D fangen gleich an. B liegt oben auf dem Stack, passender Input für D und C kommt. Problem: Soll nach D expandiert werden, oder soll nach ɛ expandiert werden? Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 13 / 22
14 Lösungen Linksrekursion kann (immer) eliminiert werden. (Dabei entstehen u.u. FIRST/FIRST-Konflikte.) recursion#removing_left_recursion FIRST/FOLLOW - Konflikte können durch Substitution aufgelöst werden, dadurch entstehen u.u. neue FIRST/FIRST - Konflikte. FIRST/FIRST - Konflikte lassen sich manchmal durch Left Factoring auflösen. Beispiel für Left Factoring : Program Vardecl FuncDecl problematisch, Anfang gleich. Stattdessen: Program Type ID VardeclOrFuncDeclRest VardeclOrFuncDeclRest ; ( ) ; Achtung: Diese Lösungsstrategien können den Parse-Baum einer erkannten Sprache ändern - dies lässt sich meist hinterher mit AST - Transformationen beheben. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 14 / 22
15 Linksrekursion vs. Assoziativität Beispiel: Entfernen von Linksrekursion ändert die Assoziativität von arithmetischen Ausdrücken! Linksrekursive Grammatik: EX ID EX + ID EX - ID Äquivalente rechtsrekursive Grammatik: EX ID ID + EX ID - EX Erzeugt selbe Sprache, aber: Assoziativität anders. Parse-Baum zu a - b - c wird wie a - (b - c) geparst... Lösung: Hinterher AST zurechttransformieren. Einige Parser-Generatoren (z.b. ANTLR) können dies automatisch, wenn man in der Grammatik die Assoziativität angibt. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 15 / 22
16 Grundlagen rekursiv absteigender Parser Pro Nichtterminalsymbol eine Funktion Funktion betrachtet die nächsten k Token im Input, entscheidet dann, welche Produktion verwendet werden soll. Wenn die Produktion ein Nichtterminalsymbol beinhaltet, so wird dessen Funktion aufgerufen (Rekursion!) Wenn die Produktion ein Terminalsymbol beinhaltet, so wird versucht, dieses aus dem Input zu konsumieren. Falls nicht vorhanden: Fehler! Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 16 / 22
17 Beispiel für rekursiv absteigenden Parser # vordefiniert: # * next_token gibt nächstes # zurück, ohne zu konsumieren # * consume konsumiert das über- # gebene Token, panic bei mis- # match # * panic bricht das Parsen er- # folglos ab def expr(): mult_expr() additions() def additions(): if next_token() == + : consume( + ) mult_expr() additions() def mult_expr(): particle() more_mult() def more_mult(): if next_token() == * : consume( * ) particle() more_mult() def particle(): if next_token() == ID: consume(id) elif next_token() == NUMBER: consume(number) else: panic() Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 17 / 22
18 Ähnlichkeiten zwischen LL(k)-Parsern und Rekursiv Absteigenden Parsern Vergleichbar dann, wenn die Entscheidung für eine Produktion final ist (d.h. kein Zurücklegen von Tokens in den Input und Backtracking) Wenn zugrundeliegende Grammatik in LL(k), dann: Parser existiert und funktioniert. Übungsaufgabe: Vergleich zw. Funktionsaufruf-Stack und LL(k) - Stack! Parser kann von Hand geschrieben werden (anhand der Grammatik) Parsen ist linear in Inputgröße (damit meist akzeptabel schnell) Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 18 / 22
19 Rekursiv absteigende Parser mit Backtracking Wenn Grammatik nicht in LL(k): Rekursiver Abstieg immer noch möglich Wenn mit k Token Lookahead Entscheidung nicht möglich: Eine Produktion auswählen und versuchen mit ihr zu parsen. Bei Misserfolg: Input wiederherstellen, andere Produktion auswählen. Endgültiger Misserfolg wenn alle Produktionen fehlschlagen Backtracking! Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 19 / 22
20 Beispiel Backtracking beim Parsen def Program(): x = getinputposition() try: VarDecl() return catch ParseException: setinputposition(x) FuncDecl() def VarDecl(): Type() consume(id) consume( ; ) def FuncDecl(): Type() consume(id) consume( ( ) consume( ) ) consume( ; ) def Type(): consume(id) while next_token() == * : consume( * ) Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 20 / 22
21 Backtracking: Probleme Je nach Grammatik/Input u.u. sehr teuer (exponentiell mit Inputgröße als Basis!) Beispiel: A a A b a A c y Problem: Für die selbe Input-Position wird immer wieder die Funktion für A aufgerufen. Lösung: Memoization. Jeder Aufruf der Funktion für A merkt sich seine Inputposition das Parse-Ergebnis Benötigt Laufzeit in O(Inputgröße), sowie Speicher in O(Inputgröße * Grammatikgröße) Wird auch Packrat-Parsing genannt. Verwandt: Sogenannte PEG-Parser ( Parsing Expression Grammar ). Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 21 / 22
22 Fazit LL(k) oder LR-Parser? Je nach Sprache das Passende auswählen! Wenn möglich, LL(k) statt Backtracking/Memoization. Wenn möglich, LALR statt GLR. Leitfaden für Sprachdesigner: Sprache so einfach parsebar machen wie möglich. Übung Ü1 Informatik 2 WS 2015/16 Mehr zu Parsern und LL(k)-Grammatiken Folie 22 / 22
Compilerbau Syntaxanalyse 68. LR(1)-Syntaxanalyse
Compilerbau Syntaxanalyse 68 LR(1)-Syntaxanalyse Bei der LL(1)-Syntaxanalyse wird allein aufgrund des nächsten Tokens die zu verwendende Produktion ermittelt. Bei der LR(1)-Syntaxanalyse braucht diese
MehrLR(1) Itemmengenkonstruktion
LR(1) Itemmengenkonstruktion Grammatik: S A$ xb A aab B B x Sprache: {xb} {anxbn n 0} nicht LL(1) x FIRST(B) x FIRST(A) also: FIRST/FIRST Konflikt bei S A$ xb nicht SLR(1) (Abb. 2.96) betrachte Item B
MehrVorlesung Programmieren
Vorlesung Programmieren 14 Parsen, Suchen und Sortieren 19./26.01.2015 Prof. Dr. Ralf H. Reussner Version 1.0 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION
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
MehrFachseminar Compilerbau
Fachseminar Compilerbau WS 08/09 Matthias Schiller Syntaktische Analyse 1. Prinzip der Top-Down-Analyse 2. LL(1)-Grammatiken Modell-Vorstellung Der Scanner liefert als Ergebnis der lexikalischen Analyse,
MehrVon der Grammatik zum AST
Von der Grammatik zum AST Welche Eigenschaften soll ein Parser haben? Wann ist eine Grammatik eindeutig? Wie sollte eine Grammatik aussehen? Theoretischer Hin tergrund: FIRST, FOLLOW Einschränkungen von
MehrDer Grid-Occam-Compiler. Syntaxanalyse
Der Grid-Occam-Compiler Syntaxanalyse Grammatikgetriebener Compilerbau Grammatik Teil der Sprachdefinition Grammatik liefert Liste der Tokenklassen Grammatik hilft bei Strukturierung der abstrakten Syntax
MehrGrundlagen der Programmierung 2 (Comp-D)
Grundlagen der Programmierung 2 (Comp-D) Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 31. Mai 2007 Operationen auf Grammatiken Ziel: Normalisierungen, Vereinfachungen
MehrKapitel 5: Syntax-Analyse
Kapitel 5: Syntax-Analyse Aufgabe Die Token-Folge wird strukturiert in Anweisungen, Ausdrücke etc., um die Semantische Analyse und Code-Erzeugung zu ermöglichen Themen Kontextfreie Grammatik Äquivalente
MehrKellerautomat (1/4) Kellerautomat (2/4) Kellerautomat (3/4) Kellerautomat (4/4)
Kellerautomat (1/4) Kellerautomat (2/4) Kontextfreie Grammatiken können von Kellerautomaten (Push Down Automata, PDA) erkannt werden PDAs sind eine Erweiterung der endlichen Automaten um ein einfaches
MehrÄquivalente Grammatiken / attributierte Grammatik
Äquivalente Grammatiken / attributierte Grammatik Linksfaktorisierung Elimination von Linksrekursion Umwandlung von EBNF in BNF Attributierte Grammatik Semantikfunktionen und Übersetzungsschema Synthetisierte,
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
MehrVU Software Paradigmen / SS 2014
VU Software Paradigmen 716.060 / SS 2014 Thorsten Ruprechter ruprechter@tugraz.at Institute for Software Technology 1 Organisatorisches Ausgabe: 25.03. (heute) Fragestunde: 22.04. Abgabe: 29.04 (ausgedruckt)
MehrCompilerbau. Einführung in Bison
Compilerbau Einführung in Bison Überblick 1. Bison a) Eingabespezifikation 1. Prolog 2. Definitionsteil 3. Regelteil 4. Epilog b) Bison-Bezeichner und -Funktionen c) Konflikte und Mehrdeutigkeiten d) Debug-Funktionalität
Mehr9.4 Grundlagen des Compilerbaus
Kap09.fm Seite 717 Dienstag, 7. September 2010 2:06 14 9.4 Grundlagen des Compilerbaus 717 so dass die Benutzung dieser Regeln zum Aufbau eines + -Knotens bzw. eines Negations- Knotens im abstrakten Syntaxbaum
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
Mehr1 Grammar Engineering. 2 Abstrakte Syntax als abstrakte Algebra. 3 LL(1)-Parser. 4 LR Parser. 5 Fehlerbehandlung. 6 Earley Parser
1 Grammar Engineering 2 Abstrakte Syntax als abstrakte Algebra 3 LL(1)-Parser 4 LR Parser 5 Fehlerbehandlung 6 Earley Parser Zusatzfolien Syntaktische Analyse Wintersemester 2008/09 1 / 44 Grammar Engineering
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,
MehrLL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)
LL(k)-Analyse Eine KFG G = (N,T,P,S) heisst LL(k)-Grammatik, wenn für alle w,x,y T*, α,β,σ (N U T)* und A N mit 1. S =l>* waσ =l> wασ =l>* wx, 2. S =l>* waσ = > wβσ =l>* wy, 3. start k (x) = start k (y)
MehrAlphabet, 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
Mehr4. 4. Algorithmen und Datenstrukturen in deskriptiven Programmiersprachen
Kapitel Kapitel 4 Deskriptive Programmierung SS 2008 4. 4. Algorithmen und Datenstrukturen in in deskriptiven Programmiersprachen Deskriptive Programmierung 1 Sprachverarbeitung in in Prolog Prolog Prolog
MehrThomas Behr. 17. November 2011
in in Fakultät für Mathematik und Informatik Datenbanksysteme für neue Anwendungen FernUniversität in Hagen 17. November 2011 c 2011 FernUniversität in Hagen Outline in 1 2 3 4 5 6 - Was ist das? in über
MehrSyntax. Gilbert Beyer und Annabelle Klarl. Einführung in die Informatik. Zentralübung zur Vorlesung Einführung in die Informatik
Zentralübung zur Vorlesung Einführung in die Informatik http://www.pst.ifi.lmu.de/lehre/wise-11-12/infoeinf WS11/12 Organisatorisches CIP-Kennungen: Hat jeder eine CIP-Kennung? Weiterleitung der Emails
MehrEinführung - Parser. Was ist ein Parser?
Gliederung 1. Einleitung 1.1 Was ist ein Parser? 1.2 Was ist ein tabellengesteuerter TD-Parser? 1. Tabellengesteuerter TD-Parser 2.1 Funktionsweise 2.2 Darstellung als Pseudocode 2.3 Konstruktion von prädiktiven
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?
MehrCompiler. 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 σύνταξις
MehrAutomatentheorie und formale Sprachen rechtslineare Grammatiken
Automatentheorie und formale Sprachen rechtslineare Grammatiken Dozentin: Wiebke Petersen 17.6.2009 Wiebke Petersen Automatentheorie und formale Sprachen - SoSe09 1 Pumping lemma for regular languages
MehrKontextsensitive Sprachen
Kontextsensitive Sprachen Standardbeispiel: {anbncn} S a b c S a A b B c c B A B b c B b b A A b a A a a Im Bereich der natürlichen Sprachen gibt es zahlreiche kontextsensitive Phänomene in der Semantik
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
MehrLL(1)-Parsing. Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger. Automatische Syntaxanalyse (Parsing)
LL(1)-Parsing Ullrich Buschmann, Linda Schaffarczyk, Maurice Schleussinger Automatische Syntaxanalyse (Parsing) Heinrich-Heine-Universität Düsseldorf Wintersemester 2012/2013 Aufbau des Referats 1. Einführung,
MehrDSLs mit Xtext entwerfen. 17.08.2012, A. Arnold
DSLs mit Xtext entwerfen 17.08.2012, A. Arnold Copyright 2012 anderscore GmbH Inhalt 1. Was sind DSLs? 2. Xtext Konzepte 3. Einführung ins Sprachdesign 4. Hands On! 3 4 8 20 2 Was sind DSLs? Domain Specific
MehrFormale 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
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
MehrWas 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
MehrVU Software Paradigmen / SS 2012
VU Software Paradigmen 716.060 / SS 2012 Sandra Fruhmann sandra.fruhmann@student.tugraz.at Inhalt Grammatiken Chomsky Sprachhierarchie Parse Trees Recursive Descent Parser First-, Follow-Mengen 2 Compiler
Mehrkontextfreie 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
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
MehrDas Postsche Korrespondenzproblem
Das Postsche Korrespondenzproblem Eine Instanz des PKP ist eine Liste von Paaren aus Σ Σ : (v 1, w 1 ),..., (v n, w n ) Eine Lösung ist eine Folge i 1,..., i k von Indizes 1 i j n mit v i1... v ik = w
MehrKapitel: Die Chomsky Hierarchie. Die Chomsky Hierarchie 1 / 14
Kapitel: Die Chomsky Hierarchie Die Chomsky Hierarchie 1 / 14 Allgemeine Grammatiken Definition Eine Grammatik G = (Σ, V, S, P) besteht aus: einem endlichen Alphabet Σ, einer endlichen Menge V von Variablen
MehrHallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Parsen Thomas Wehr Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Inhalt Theoretische Grundlagen Grammatiken im Allgemeinen Die Chomsky-Hierarchie Die Chomsky-Normalform
MehrKomplexitätsklassen. (Lauf-)Zeit-Klassen. (Lauf-)Zeit-Klassen. Charakteristische Problemgrößen beim Parsing
Komplexitätsklassen Charakteristische Problemgrößen beim Parsing O(1) konstant O(log n) logarithmisch O(n) linear O(n k ) polynomial (k [2,4]) O(n k ) polynomial (k > 4) O(k n ) exponentiell n ist die
MehrKompilerbau Semantische Aktionen & Abstrakte Syntax. Michael Leuschel
Kompilerbau Semantische Aktionen & Abstrakte Syntax Michael Leuschel An Analogy from Natural Language Characters: Source Program J i m s a w M a r y Source Program Lex Words (lexemes): Jim Tokens saw Mary
MehrSyntax. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Organisatorisches Wir werden socrative nutzen, um während der Zentralübung
MehrGrammatiken in Prolog
12. Grammatiken in Prolog 12-1 Grammatiken in Prolog Allgemeines: Gedacht zur Verarbeitung natürlicher Sprache. Dort braucht man kompliziertere Grammatiken als etwa im Compilerbau, andererseits sind die
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),
MehrÜ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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen prachtechnologie und Compiler W 2008/2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. nelting snelting@ipd.info.uni-karlsruhe.de
MehrTheoretische 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
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
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
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
MehrDefinition von domänenspezifischen Sprachen mit Xtext: Einführung. 19. November 2014
Definition von domänenspezifischen Sprachen mit Xtext: Einführung 19. November 2014 Überblick Was ist zu tun, wenn wir selbst einen Ansatz für modellgetriebenen Entwicklung definieren wollen? Anforderungserfassung
MehrSyntaktische Analyse (Parsen)
Syntaktische Analyse (Parsen) Gegeben: eine kontextfreie Grammatik G und ein String w. Fragen: Vorgehen: gehört w zu L(G)? Welche Bedeutung hat w? Konstruiere Herleitungsbaum zu w P raktische Informatik
MehrInterpreter - Gliederung
Institut für Informatik Ludwig-Maximilian Universität Interpreter - Gliederung Programmiersprache Syntax Konkrete Syntax Abstrakter Syntax Baum (Abstrakte Syntax) Parser Syntaktische Struktur einer Sprache
MehrFormale Sprachen und Automaten: Tutorium Nr. 8
Formale Sprachen und Automaten: Tutorium Nr. 8 15. Juni 2013 Übersicht 1 Nachtrag 2 Besprechung von Übungsblatt 7 Aufgabe 1 Aufgabe 2 Aufgabe 3 3 CFG PDA Definitionen Ein Beispiel! Aufgabe 4 Der PDA als
MehrInformatik III. Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung
Informatik III Christian Schindelhauer Wintersemester 2006/07 5. Vorlesung 09.11.2006 schindel@informatik.uni-freiburg.de 1 Äquivalenzklassen Definition und Beispiel Definition Für eine Sprache L Σ* bezeichnen
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrHaskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
MehrEarley Parsing. Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann
Earley Parsing Parsing - WS 2012 / 2013 Lisa Orszullok & Anika Stallmann 12.12.2012 Agenda Basics Komponenten Earley Parsing - Recognizer Earley Parsing - Parser Vor- und Nachteile Parsing WS 2012/2013
MehrTheoretische Grundlagen des Software Engineering
Theoretische Grundlagen des Software Engineering 5: Reguläre Ausdrücke und Grammatiken schulz@eprover.org Software Systems Engineering Reguläre Sprachen Bisher: Charakterisierung von Sprachen über Automaten
Mehr1 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
MehrFunktionale Programmierung ALP I. λ Kalkül WS 2012/2013. Prof. Dr. Margarita Esponda. Prof. Dr. Margarita Esponda
ALP I λ Kalkül WS 2012/2013 Berechenbarkeit - inspiriert durch Hilbert's Frage - im Jahr 1900, Paris - Internationaler Mathematikerkongress Gibt es ein System von Axiomen, aus denen alle Gesetze der Mathematik
MehrProgrammieren in Java
Programmieren in Java Vorlesung 07: Parsen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 32 Inhalt Vorlesungsüberblick
Mehr1.) Zahlensysteme (10 Punkte)
1.) Zahlensysteme (10 Punkte) (a) Stellen Sie die folgenden zur Basis 8 (oktal) angegebenen Ganzzahlen als vorzeichenbehaftete Binärzahlen in 7 Bit dar. Negative Binärzahlen sollen im Zweierkomplement
MehrSprachbeschreibung und Erweiterung
Sprachbeschreibung und Erweiterung Worte, Sprachen, reguläre Ausdrücke, Automaten, BNF, Grammatik, Syntax- Diagramme, Spracherweiterungen do, for, break, switch Formale Beschreibung von Programmiersprachen
MehrProgrammiersprachen 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
MehrFORMALE SYSTEME. Sprachen beschreiben. Wiederholung. Wie kann man Sprachen beschreiben? 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie
Wiederholung FORMALE SYSTEME 2. Vorlesung: Grammatiken und die Chomsky-Hierarchie Markus Krötzsch Formale Sprachen sind in Praxis und Theorie sehr wichtig Ein Alphabet ist eine nichtleere, endliche Menge
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
Mehr3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
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.
MehrAlgorithmen & Programmierung. Ausdrücke & Operatoren (1)
Algorithmen & Programmierung Ausdrücke & Operatoren (1) Ausdrücke Was ist ein Ausdruck? Literal Variable Funktionsaufruf Ausdruck, der durch Anwendung eines einstelligen (unären) Operators auf einen Ausdruck
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
MehrGrundbegriffe. Grammatiken
Grammatiken Grammatiken in der Informatik sind ähnlich wie Grammatiken für natürliche Sprachen ein Mittel, um alle syntaktisch korrekten Sätze (hier: Wörter) einer Sprache zu erzeugen. Beispiel: Eine vereinfachte
MehrSatz 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.
MehrGrundbegriffe 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
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,
MehrProgrammierung WS12/13 Lösung - Übung 1 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl Programmierung WS12/13 M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Tutoraufgabe 1 (Syntax und Semantik): 1. Was ist Syntax? Was ist Semantik? Erläutern Sie den Unterschied. 2.
MehrSprachen/Grammatiken eine Wiederholung
Sprachen/Grammatiken eine Wiederholung Was sind reguläre Sprachen? Eigenschaften regulärer Sprachen Sprachen Begriffe Symbol: unzerlegbare Grundzeichen Alphabet: endliche Menge von Symbolen Zeichenreihe:
MehrInformatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de. Stammbaum. Stammbaum. Stammbaum
lausthal Beispiele Stammbaum Informatik II. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann Informatik - SS 06 Stammbaum Stammbaum / Parse tree, Rekursionsbaum Parse tree, Rekursionsbaum
MehrObjektorientierte 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
MehrChomsky-Grammatiken 16. Chomsky-Grammatiken
Chomsky-Grammatiken 16 Chomsky-Grammatiken Ursprünglich von Chomsky in den 1950er Jahren eingeführt zur Beschreibung natürlicher Sprachen. Enge Verwandschaft zu Automaten Grundlage wichtiger Softwarekomponenten
MehrFormale 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
MehrAusgewählte unentscheidbare Sprachen
Proseminar Theoretische Informatik 15.12.15 Ausgewählte unentscheidbare Sprachen Marian Sigler, Jakob Köhler Wolfgang Mulzer 1 Entscheidbarkeit und Semi-Entscheidbarkeit Definition 1: L ist entscheidbar
MehrTheorie der Informatik. Theorie der Informatik. 6.1 Einführung. 6.2 Alphabete und formale Sprachen. 6.3 Grammatiken. 6.4 Chomsky-Hierarchie
Theorie der Informatik 17. März 2014 6. Formale Sprachen und Grammatiken Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 6.1 Einführung
MehrÜbersicht. Datenstrukturen und Algorithmen Vorlesung 5: Rekursionsgleichungen (K4) Übersicht. Binäre Suche. Joost-Pieter Katoen. 20.
Übersicht Datenstrukturen und Algorithmen Vorlesung 5: (K4) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.informatik.rwth-aachen.de/i2/dsal12/ 20.
Mehr1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren
1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren
MehrProgrammierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II)
Fachrichtung 6.2 Informatik Universität des Saarlandes Tutorenteam der Vorlesung Programmierung 1 Programmierung 1 (Wintersemester 2015/16) Wiederholungstutorium Lösungsblatt 11 (Parser II) Hinweis: Dieses
MehrDank. 1 Ableitungsbäume. 2 Umformung von Grammatiken. 3 Normalformen. 4 Pumping-Lemma für kontextfreie Sprachen. 5 Pushdown-Automaten (PDAs)
ank Vorlesung Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I Bernhard Beckert iese Vorlesungsmaterialien basieren ganz wesentlich auf den Folien zu den Vorlesungen
MehrInformatik 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
MehrTheoretische Informatik Mitschrift
Theoretische Informatik Mitschrift 2. Grammatiken und die Chomsky-Hierarchie Beispiel: Syntaxdefinition in BNF :=
MehrTheoretische Informatik I
Theoretische Informatik I Rückblick Theoretische Informatik I 1. Mathematische Methoden 2. Reguläre Sprachen 3. Kontextfreie Sprachen Themen der Theoretischen Informatik I & II Mathematische Methodik in
MehrEin Satz der deutschen Sprache besitzt ein Subjekt, ein Prädikat und ein Objekt (SPO).
1 Grammatiken Autor: Tilman Blumenbach Letzte Änderung: 28. Juni 2012 18:15 Ziel von Grammatiken Wollen die Struktur von Sprachen modellieren und charakterisieren. Beispiel Ein Satz der deutschen Sprache
MehrGrundlagen 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
MehrGrundbegriffe 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
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2013
Automaten und Formale Sprachen alias Theoretische Informatik Sommersemester 2013 Dr. Sander Bruggink Übungsleitung: Jan Stückrath Sander Bruggink Automaten und Formale Sprachen 1 Deterministische Kellerautomaten
MehrHauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Hauptklausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2011/2012 Hier Aufkleber mit Name und Matrikelnr. anbringen
MehrCompiler. Kapitel. Syntaktische Analyse. Kapitel 4. Folie: 1. Syntaktische Analyse: LL Parsing. Autor: Aho et al.
Folie: 1 Kapitel 4 : LL Parsing Was ist Parsing? 2 E num E CFG E+E G E (E) Token String s Parser s L(G) Fehlermeldung No Yes Parsebaum für S in G Beispiel S (S)S ε Was ist die generierte Sprache? Beweis?
MehrGrundlagen der Künstlichen Intelligenz
Grundlagen der Künstlichen Intelligenz 6. Klassische Suche: Datenstrukturen für Suchalgorithmen Malte Helmert Universität Basel 7. März 2014 Klassische Suche: Überblick Kapitelüberblick klassische Suche:
MehrÜberblick und Wiederholung
Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-14-15/infoeinf WS14/15 Klausurinformationen 6 ECTS: Klausur 07.02.2015 10:15 12:15 Uhr (120
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