Course "Programming Language Theory" WS 2015/16


  • Lecturer: Prof. Dr. Ralf Lämmel
  • Lab assistant: MSc Informatik Marcel Heinz
  • Assignment assistant: Matthias Paul


  • Final: Last lecture slot; same room; same time; register via KLIPS
  • Resit: See PLT course in SS16
  • Student ids will be checked.
  • You need to have a valid admission for the exam; see rules below.
  • You *must* register through KLIPS:
    • "Theorie der Programmiersprachen" for current exam rules
    • "Programmierparadigmen" for previous exam rules



Time and place

Lectures Wednesdays, 10:15-11:45, Room K 107.

Lecture topics

  1. Introduction
  2. Abstract and concrete syntax
  3. Language interpretation
  4. Big- and small-step semantics
  5. Type systems
  6. Lambda calculus
  7. Denotational semantics (13 Jan)
  8. Partial evaluation (20 Jan)
  9. Abstract interpretation (27 Jan)
  10. Preparation final (3 Feb)
  11. Final (10 Feb)

Lecture notes and slides

  • The notion of software language [.pdf]
  • The syntax of software languages [.pdf]
  • Language interpretation [.pdf]
  • Operational semantics [.pdf]
  • Type systems [.pdf]
  • The lambda calculus [.pdf]
  • Denotational semantics [.pdf]
  • Partial evaluation [.pdf]
  • Abstract interpretation [.pdf]

Lecture code

We are typically concerned with these languages:


Labs start "st".

Date Topic SVN folder
04.11.2015 Concrete and Abstract Syntax 1st lab
11.11.2015 basic interpreters 2nd lab
18.11.2015 Formal notations on SS vs BS 3rd lab
25.11.2015 Implementing SS vs BS Solutions only
02.12.2015 Type systems 5th lab
09.12.2015 Untyped Lambda 6th lab
16.12.2015 Various Lambda Calculi 7th lab
20.01.2016 Type Systems and DS Solutions only
27.01.2016 Partial Evaluation Solutions only
04.02.2016 Exam preparation 10th lab


Link Date published Deadline (end of day)
#1 4 Nov 2015 10 Nov 2015
#2 11 Nov 2015 17 Nov 2015
#3 18 Nov 2015 24 Nov 2015
#4 25 Nov 2015 01 Dec 2015
#5 02 Dec 2015 08 Dec 2015
#6 17 Dec 2015 12 Jan 2016
#7 13 Jan 2016 (E-mail) 19 Jan 2016
#8 20 Jan 2016 (E-mail) 26 Jan 2016

You can find your student folder, where you have to commit under <student id>
See details concerning admission at the bottom of this page. Create assignment folders with a name pattern as follows: "assignment"+nr. where nr has two digits (00 .. 99), e.g. "assignment01".

Please commit your solutions either as .txt or .pdf files. If the assignment is about programming (e.g., in Haskell), please commit the relevant source-code files. Do not commit source-code in .pdf format!

Reference solutions are published via svn:

Examination rules

  • Admission rules for final:
    • Each student must submit at least 2 solutions with score 2.
    • Each student must submit at least 5 solutions with score 1 or 2.
    • Each student must present 1 solution.
    • Exam admission is inherited from previous editions ever since 2010/11.
  • Explanation:
    • There will be 8 assignments in total.
    • The svn repo will be communicated by lab assistant.
    • 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 can choose.

Rationale: The assignments are designed to help understand all material covered in the lecture. Also, the assignments help with effective preparation for the exam. Upcoming assignments are discussed briefly in the lab. Completed assignments are discussed in detail in the lab on the grounds of student presentations. All submitted solutions are reviewed by the assignment assistant. The lab assistants calls up students to present their solution. The idea is to give strong preference to somewhat complete and correct solutions (scores 2 or 1) and to students who had not yet presented before. As there may be multiple assignment options and different solution options, there may be a multiple student presentations during each lab.