Course "Programming Language Theory" SS 2019


  • Lecturer: Prof. Dr. Ralf Lämmel <ed.znelbok-inu|lemmeal#ed.znelbok-inu|lemmeal>
  • Lab assistant: M.Sc. Informatik Marcel Heinz <ed.znelbok-inu|znieh#ed.znelbok-inu|znieh>
  • Assignment assistant: Daniel Remagen

First point of contact: Marcel Heinz <ed.znelbok-inu|znieh#ed.znelbok-inu|znieh>


Schedule Draft

The lectures are exercised in "flipped class room" mode.

We meet Mondays and Tuesdays; see KLIPS. We announce skipped slots.

In the following table, the "Reading" column points to chapters or sections in the software languages book; see book access below. Also remember that you find short videos for some of the topics on the page for the software languages book. Some of the reading material will need to be studied ahead of the meeting (when "flipped mode" is "YES") or otherwise past the meeting (when "flipped mode" is "NO").

Date Topic Reading Flipped mode
15.04.2019 Notion of a Software Language - NO
23.04.2019 Tree-based abstract syntax 3.1, YES
29.04.2019 Basics of interpretation 5.1 YES
06.05.2019 Big-step operational semantics 8.1 YES
13.05.2019 Small-step operational semantics 8.2 YES
20.05.2019 Type systems 9 YES
27.05.2019 The untyped lambda calculus 10.1 YES
03.06.2019 The simply typed lambda calculus 10.2 YES
17.06.2019 System F + type system extensions 10.3, 10.4 YES
24.06.2019 Denotational semantics 11.1, 11.2 YES
01.07.2019 Abstract Interpretation 12.5 YES
08.07.2019 Exam preparation - -
15.07.2019 Exam - -

Lab Schedule

Date Topic
16.04. Haskell Crash-Course
23.04. Maybe Interpreter
30.04. Expression-oriented BIPL
14.05. Small-Step BFPL
21.05. Type Systems
28.05. Fixpoint ULL


Assignment specifications

Once the assignments are published, the numbers are linked to the repository location with the assignment specifications. Deadline is always end of day (23:59 GMT+2).

No. Date of issue Deadline Topic
1 19.04.2019 26.04.2019 Tree-based abstract syntax
2 26.04.2019 03.05.2019 Basics of Interpretation
3 03.05.2019 10.05.2019 Big-Step Operational Semantics
4 10.05.2019 17.05.2019 Small-Step Operational Semantics
5 17.05.2019 24.05.2019 Type Systems
6 24.05.2019 31.05.2019 Untyped Lambda Calculus
7 31.05.2019 07.06.2019 Typed Lambda Calculus
8 07.06.2019 21.06.2019 System F + Type System Extensions
9 21.06.2019 28.06.2019 Denotational Semantics
10 28.06.2019 05.07.2019 Abstract Interpretation

Assignment logistics

  • There are 9 assignments in total. They are linked in the table above.
  • The svn repo will be communicated by lab assistant.
  • Student solutions are submitted to (replace username by your Uni username).
  • Student submissions are checked by assignment assistant.
  • Each assignment is graded with either of the following scores:
    • 0: "missing or largely incomplete and/or largely incorrect"
    • 1: "noticeably incomplete and/or noticeably incorrect"
    • 2: "nearly or completely complete and nearly or completely correct"
  • An assignment may offer options from which students must choose one, as they wish.
  • Reference solutions are published via svn:

General rules for solutions

  • Use Unicode for text files include source-code files.
  • Submit Haskell source code as .hs files.
  • If other languages are permitted, then use appropriate extensions.
  • Submit "textual" solutions as .txt or .pdf (no .doc, .docx, etc.).
  • Use UTF-8 encodings for submitted text/code.
  • If there are options (1, 2, …), use the option number in the filename.
  • Make sure non-obvious source-code details are commented.
  • Make sure that your source code parses/compiles/runs "as is".

If you do not obey these rules, your solution may receive less points.


Exam dates

  • Exam: last lecture slot; same room; same time; register via KLIPS
  • Resit: end of next semester

Exam admission

  • Exam admission is inherited from previous editions ever since 2010/11.
  • Each student must submit at least 6 solutions with score 1 or above.
  • Out of these 6 solutions, 3 solutions must receive score 2.
  • Each student must present 1 solution, if asked to do so.


  • Lectures, labs, and assignments are designed to prepare effectively for the exam.
  • The assignment topics directly correspond to the exam topics.
  • All submitted solutions are reviewed by the lab / assignment assistant.
  • Upcoming assignments are discussed briefly in the meetings.
  • Completed assignments are discussed in detail in the meetings while also leveraging student presentations.