Course "Programming Language Theory" SS 2020


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

First point of contact: Philipp Seifer <ed.znelbok-inu|refiesp#ed.znelbok-inu|refiesp>


Schedule Draft

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

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

In the following table, the "reading" column points to chapters or sections in the Software Languages Book; you will receive an email regarding book access at the beginning of the lecture. 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
TBA Notion of a Software Language - NO
TBA Tree-based Abstract syntax 3.1, TBA
TBA Basics of Interpretation 5.1 TBA
TBA Big-step Operational Semantics 8.1 TBA
TBA Small-step Operational Semantics 8.2 TBA
TBA Type Systems 9 TBA
TBA Untyped Lambda Calculus 10.1 TBA
TBA Simply-Typed Lambda Calculus 10.2 TBA
TBA System F + Type System Extensions 10.3, 10.4 TBA
TBA Denotational Semantics 11.1, 11.2 TBA
TBA Abstract Interpretation 12.5 TBA
TBA Exam Preparation - -
TBA Exam - -

Lab Schedule

Additional resources presented in labs may be linked in the "topic" column below.

Date Topic


Assignment specifications

Once the assignments are published, the topics below are linked to the repository location with the assignment specifications. You can alternatively checkout the public SVN repository. Deadline is always end of day (23:59 GMT+2).

No. Date of issue Deadline Topic
1 TBA TBA Tree-Based Abstract Syntax
2 TBA TBA Basics of Interpretation
3 TBA TBA Big-Step Operational Semantics
4 TBA TBA Small-Step Operational Semantics
5 TBA TBA Type Systems
6 TBA TBA Untyped Lambda Calculus
7 TBA TBA Simply-Typed Lambda Calculus
8 TBA TBA System F + Type System Extensions
9 TBA TBA Denotational Semantics
10 TBA TBA Abstract Interpretation

Assignment logistics

  • There are 10 assignments in total. They will be linked in the table above when published.
  • You can also checkout the public SVN repository manually.
  • Student solutions are submitted to (replace username with your uni username).
  • Assignment are graded with 0, 1 or 2 points in the following manner:
    • 0 for "missing or largely incomplete and/or largely incorrect" submissions
    • 1 for "noticeably incomplete and/or noticeably incorrect" submissions, and
    • 2 for "nearly or completely complete and nearly or completely correct" submissions
  • An assignment may offer options from which students must choose one, as they wish.
  • Reference solutions are also published via SVN.

General rules for submissions

  • Text and source-code files must use UTF-8 encoding.
  • Submit Haskell source code as .hs files.
  • If other languages are permitted, then use appropriate extensions.
  • Submit textual solutions as .txt or .pdf (not .doc, .docx, etc.).
  • If there are multiple options (1, 2, …), use the chosen number in the filename.
  • Make sure non-obvious source code details are sufficiently commented.
  • Make sure that your source code parses/compiles and 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.