Programmiersprachen 2, WiSe 11

Die Vorlesung findet vierstündig in der zweiten Semesterhälfte statt. Die erste Vorlesung ist am 08.12.2011.

Termine: Do. 12:30 Uhr und Fr. 10:30 Uhr

Hauptklausur: Donnerstag, 23. Februar 2012, 10 Uhr, Hörsaal 5G

Nachklausur: Freitag, 13. April 2012, 10 Uhr, Seminarraum 25.12.02.55

Ergebnis Nachklausur: 1934324 n.b. 1807309 n.b. 2039985 4.0

Inhalte der Vorlesung:

  • Algorithmen für die Künstliche Intelligenz in Prolog
  • Interpreter in Prolog
  • Constraintprogrammierung in Prolog
  • Partielle Auswertung
  • Automatische Kompilergeneration

Übungsbetrieb

  • Praktische Haskell Übungen: Montags um 12:30 Uhr in 25.12.02.55
  • Übungen zur Vorlesung: Donnerstags um 14:30 Uhr in 25.12.02.55

Skript: Parsing, Interpreters (simple and propositional logic), Interpreters and Abstract Interpreters (imperative and bytecode), Abstract Interpretation (new version), Koroutinen und Konstraintprogrammierung, Partielle Auswertung

Übungsblätter: Blatt 0, Blatt 1, Blatt 2, Blatt 3, Blatt 4, Haskell Blatt1, PrologProjekt, ProjektDaten, Haskell Blatt2

Beispiele: 0_warmup.pl, 1_grammar.pl, 2_assoc.pl, 3_nfa_book.pl, 4_regexp_dcg.pl, 5_prop_int_neg.pl, 6_imp_int.pl, 6_imp_int_check.pl, 6_imp_int_avl.pl

Haskell Beispiele MonadenBeispiele.hs, MonadenBeispiele2.hs, expParser.hs, Parser.hs, EvalNoMonad.hs, InterpreterMonadisch, Fold-Left-Uebungsaufgabe, Template-Haskell und LLVM Beispiel

Haskell Klausur Stoff Um einfach festzulegen was Klausrrelevant ist beziehen wir uns auf das Buch Learn You A Haskell. Klausurrelvant sind die Teile von Haskell die in Chapter 1 bis Chapter 8 behandelt werden. Die APIs die in Chapter 7 vorkommen werden nicht abgefragt.

Zusätzlich Klausurrelevant sind Differenzlisten, do-Notation, die Maybe und die Listen Monade. Zum Thema Monaden kommt in der Klausur maximal das vor was im Beispiel MonadenBeispiele.hs benutzt wird. Andere Themen, welche in der Vorlesung nur angerissen wurden werden in der Klausur nicht abgefragt.


Java ByteCode Beispiele: javabc_parser.pl, javabc_interpreter.pl, Power.byc, abstract_interpreter_loop.pl, abstract_environment.pl, abstract_constpropagation.pl

Externe Links: Parallelismus/Nebenläufigkeit (Tutorial), Haskell-Parallelismus (Folien), Haskell-Nebenläufigkeit (Folien), Prolog-SDL-Bäume erzeugen, ein exemplarischer Pascal-Compiler, eine Graphik-DSL in Haskell

Abstract Interpretation Page from Cousot, Astree Static Analyzer, Tutorial on Abstract Interpretation (Powerpoint)