Essentials of Programming Languages

Grundlagen von Programmiersprachen/ Essentials of Programming Languages


LecturerProf. Dr. Peter Thiemann
AssistantMatthias Keil
LectureMonday, 2pm - 4pm, SR 00-007, Building 106
Friday, 2pm - 4pm, SR 00-007, Building 106
ExerciseFriday, 3pm - 4pm, SR 00-007, Building 106


There will be no lecture on 06.07.2015 and on 10.07.2015.
There will be no lecture on 18.06.2015. The exercise starts at 2pm.
There will be no lecture on 15.06.2015.


20.04.2015Introduction: syntax, abstract syntax, semantics stylesPFPL 1.1, 5.1; Script 1
24.04.2015Operational semantics, inductive definitionsPFPL 2, 5.2; Script Def 9
04.05.2015Big step vs small step, binding and scope, environmentsPFPL 7.1, 7.2; Script 4
08.05.2015Statics - Simple typesPFPL 4, 6; Script 10.1, 10.3
11.05.2015Functions, static/dynamic scope, strong normalizationPFPL 8; Script 7.4 (static/dynamic scope); strong normalization of STLC
15.05.2015Functions, System TPFPL 8, 9.[1-3]; Script 10.1, 10.3
18.05.2015PCFPFPL 10
01.06.2015There is a total PCF-computable function that cannot be programmed in System Tproof sketch
01.06.2015Finite Data Types: products, sumsPFPL 12
05.06.2015Pattern matching, Generic ProgrammingPFPL 13.[1-3], 14
08.06.2015Inductive and Coinductive TypesPFPL 15
22.06.2015Generic ProgrammingAddendum: Generic.agda (This code is written in Agda.)
22.06.2015Recursive TypesPFPL 16.[12]
26.06.2015Dynamic Types: the untyped lambda calculusPFPL 17, Script 9.1-9.2
29.06.2015Scott's theoremPFPL 17.3
03.07.2015Equalities on lambda terms, De Bruijn indexes, results about lambda termsNote on equalities, De Bruin Index, Script 9.2
13.07.2015Blame and Coercion:Together Again for the First TimeAddendum: paper
17.07.2015Pomega: A denotational model for the untyped lambda calculusSee H.P. Barendregt (1985). The Lambda Calculus, Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematics 103. Amsterdam: North-Holland. ISBN 0-444-87508-5. Chapter 18.1. The underlying domain theory may be found in Barendregt Chapter 1.2 or in the Script Chapter 6
20.07.2015On Understanding Types, Data Abstraction, and PolymorphismSeminal paper by Cardelli and Wegner, accompanying slides



DateDue dateSheetMaterialSolutions
25.04.201501.05.2015Exercise 1
01.05.201508.05.2015Exercise 2demo.rktarith.rkt
08.05.201515.05.2015Exercise 3subst.rktlet.rkt
15.05.201522.05.2015Exercise 4err.rkt
22.05.201505.06.2015Exercise 5ljs.rkt
22.05.201512.06.2015Exercise 6types.rkttyped.rkt
15.06.201519.06.2015Exercise 7ljs2.rkt
22.06.201526.06.2015Exercise 8ljs3.rkt
26.06.201503.07.2015Exercise 9ljsX.rkt
03.07.201517.07.2015Exercise 10ljsX.rktljsY.rkt
17.07.201524.07.2015Exercise 11

Subversion Repository