Programming Languages 2
In dieser Lehrveranstaltung untersuchen wir fortgeschrittene Konzepte von Programmiersprachen. Wir werden unterschiedliche Methoden kennenlernen die Semantik von Programmiersprachen zu definieren (operationelle Semantik, denotationelle Semantik) und formal Eigenschaften von Programmiersprachen zu beweisen. Ein besonderer Schwerpunkt der Lehrveranstaltung ist die Definition und Analyse von statischen Typsystemen. Das Ziel dieser Lehrveranstaltung ist ein tieferes Verständnis von modernen Programmiersprachen und eine Vorbereitung darauf, aktuelle Forschungsarbeiten in dem Bereich zu verstehen.
Team
Zeit und Ort
Vorlesung: Donnerstag, 10 c.t. bis 12 Uhr im Seminarraum C215, Sand 14.
Übung: Donnerstag, 12:30 bis 14:00 Uhr im Seminarraum C215, Sand 14.
- Eintrag im Vorlesungsverzeichnis: Campus
Exam
The exam will be on Thursday, February 21 at 12:15 in Hörsaal 1 F119 on Sand.
Lecture Notes
- SOS
- STLC
- Subtyping and System F
- Type Inference and Curry-Howard
- Featherweight Java
- Existential Types
- Higher-Order Types
Homework
- Homework 01
- Homework 02
- Homework 03
- Homework 04 CppExample CoqExample
- Homework 05
- Homework 06
- Homework 07
- Homework 08 JavaExample HaskellExample
- Homework 09 JavaExample HaskellExample
- Homework 10 ScalaExample
- Homework 11
- Homework 12
- Homework 13
Literature
- B.C. Pierce, Types and Programming Languages, MIT Press
- R. Harper, Practical Foundations for Programming Languages, Cambridge University Press, 2013. Eine kostenlose Online-Ausgabe findet sich auf der Homepage des Autors.