Seminar: Principles of Programming Languages

Responsible:Prof. Dr. Peter Thiemann
Assistance:Hannes Saffrich
Time and Place:Di 14:00-16:00, SR 00-031, Geb. 051


2023-04-24 Mo15:00 - 17:00ZoomFirst meeting
2023-05-09 Tu14:00 - 16:00Geb. 051, SR 00 031Regular Meeting (Chapter 3 and 5)
2023-05-16 Tu14:00 - 16:00Geb. 051, SR 00 031Regular Meeting (Chapter 3 and 5)
2023-05-23 Tu14:00 - 16:00Geb. 051, SR 00 031Regular Meeting (Chapter 8 and 9)
2023-06-06 Tu14:00 - 16:00Geb. 051, SR 00 031Regular Meeting (Python STLC Interpreter)
2023-06-13 Tu14:00 - 16:00Geb. 051, SR 00 031Regular Meeting
2023-07-17 Mo23:55onlineSubmission deadline for slides (draft)
2023-07-25 Tu10:00 - 18:00Geb. 101, 01-009/13Presentations
2023-07-26 We10:00 - 18:00Geb. 101, 01-009/13Presentations
2023-07-27 Th23:55onlineSubmission deadline for slides (final)
2023-09-03 Su23:55onlineSubmission deadline for report


2023-07-25Featherweight Go
2023-07-25Separation Logic for Sequential Programs
2023-07-25Streaming support for Java RMI in distributed environments
2023-07-25Simplicitly: foundations and applications of implicit function types
2023-07-25Substructural Types
2023-07-26Type Inference with Constrained Types
2023-07-26Back to futures
2023-07-26Hashing Modulo Alpha -Equivalence
2023-07-26Many more predecessors: A representation workout
2023-07-26Refined Criteria for Gradual Typing


  • Attendance and active participation in the regular meetings and presentations of all participants
  • Preparation and presentation of a 30-minute talk about the topic of the assigned paper
  • Preparation of a written report of the topic of the assigned paper as described in the Procedure section
  • Submission of the report and presentation slides before the respective deadlines


A seminar concentrates on scientific results, but it also teaches competences required for scientific work. In particular

  • literature research
  • reading and understanding of scientific texts
  • presentation skills
  • creating a written report

This seminar will proceed as followed:

  • Topic Selection and First Meeting. We have prepared a list of papers which are suitable for presentation in the seminar. The papers are annotated with a topic (Agda, Haskell, Types, Lambda, Semantics, Scala) and our rough estimate of the difficulty (*-***). Alternatively, you may also suggest a topic backed by papers not from the list up to approval by the organizers.

    We invite prospective participants to get in touch with the seminar organizers (email to both) as soon as they are prepared to commit to a topic. We will assign seminar slots on a first-come-first-serve basis. Remaining slots will be assigned automatically by HisInOne.

    The first meeting is dedicated to discuss administrative matters. It will also be possible to ask questions about specific papers.

  • Regular Meetings. In the regular meetings we will introduce and discuss the foundations of programming language theory on which the papers build on. In particular, we will discuss how to model programming languages mathematically by defining syntax, semantics and typing, and how to prove properties about them.

    Before the meetings, we may assign you reading material from an introductory textbook, which will then be discussed in-depth during the meeting. The reading assignments can be found in the Schedule.

  • Presentation. Presentations will take place at the end of the semester as a block seminar. Draft slides are due one week before the presentation and are subject to peer review. Final slides are due after the presentation. A tutorial video about scientific presentations can be found in the Links section.
  • Report. A written report needs to be submitted at the end of the semester, which satisfies the following criteria:
    • It must be at most 10 pages long.
    • It must be prepared with LaTeX. A good introduction to LaTeX may be found in the documentation of Overleaf.
    • It must use the LaTeX document class llncs.cls according to the template document which is available on the Springer web site under Information for Authors. The above website contains a useful rubric "Author Guidelines" with further information. Do not change the formatting parameters of llncs.cls in any way.
    • It must use bibtex for references. Many bibtex references can be obtained from the DBLP computer science bibliography.
    • It should adhere to our style guide.
    A tutorial video about scientific writing can be found in the Links section.