Practical Foundations of Programming Languages Proseminar

In this proseminar, we cover the theoretical foundations of programming languages based on the textbook "Practical Foundations for Programming Languages" by Robert Harper. In the first part of the proseminar, we will look into calculi and type systems that are the basis for programming languages research and are at the core of many modern programming languages. Among the topics are: lambda calculus, PCF, System F, recursive types, subtyping, type classes, etc. In the second part of the proseminar, we look at concrete programming languages and explore how these foundations are realized in these languages. If you liked the programming-language theoretical parts of Programming 1/2 and if you want to know more about how programming languages work, this is your proseminar.


Matthis Kruse, Julian Rosemann, Sebastian Hack



Please use our seminar system. Note that you still have to register for the Seminar in the LSF until TBD to get a certificate for the seminar.


Both links lead to licensed copies of the book when you are in the university subnet; either physically or via VPN.

Please all read and prepare sections Sections 1-7 of PFPL for the first session!

Modus Operandi

Each student will be assigned a series of chapters in the book and will give a rehearsal presentation of about 15 minutes. The goal of the rehearsal talk is to get feedback from us and your fellow students about your presentation. Each talk will be followed by a discussion about the topic of your material that the student giving the presentation moderates.

Every participant is expected to read the respective chapters and prepare questions for the discussion in each session. For some topics, we also provide further literature and we expect you to have read it as well. Furthermore, we encourage you to review existing programming languages with respect to the topics of your material and tell us about that in your talk.

The final talks of about 25 minutes will take place on 2021-01-18, 2021-01-25, 2021-02-01. This gives you enough time to improve your presentation and incorporate all the feedback.

The grade will dependent on the final talk and the participation in the discussions.


Date Speaker Topic / Chapters (Harper; Pierce)
2020-11-30Florian Bies Product Types, Sum Types (10-11; 11.6-11.10)
2020-11-30Henry Ludger Janson System F (16; 23)
2020-12-07Bilal Alshilh Ali PCF (19; 11.11)
2020-12-07Ninos Oshana Lambda Calculus (21-22; 5,9)
2020-12-14Viktor Alexander Kokott Subtyping (24; 15)
2021-12-14Nils Husung Continuations (30; -)
2021-01-04Awni Alkader Existential Types (17; 24)
2021-01-04Mohamed Samrah State (34-35; 13)
2021-01-11Niklas Fabian Mück Call by Value, Lazy Evaluation, Streams (8.3, 36; 5.1, 20.1)

Material on Giving Presentations