Literature and Resources
Course Literature
We recommend the following course books (often referred to as TAPL):
- Benjamin C. Pierce, Types and Programming Languages, The MIT Press, 2002.
The book is available online if you are logged in with your KTH account.
Besides the course book, we will announce additional scientific articles and papers that are part of the different modules. This list will be updated during the course. See below.
Additional Articles and Papers
Module 1: Operational semantics and the lambda calculus
- G. Kahn, Natural Semantics, 1987, LNCS 247, Springer
-
Simon Peyton Jones. The Implementation of Functional Programming Languages. Prentice Hall, 1987. NOTE: You only need to read sections 2.1-2.3.
Module 2: Typed lambda calculus with extensions
For module two, there are no additional articles.
Module 3: Subtyping and Polymorphism
- L. Cardelli and P. Wegner. On understanding types, data abstraction, and polymorphism, ACM Computing Surveys (CSUR), Volume 17 Issue 4, 1985. NOTE: You only need to read sections 1.1-1.3
-
P. Wadler and S. Blott. How to make ad-hoc polymorphism less ad hoc. Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL), 1989.
- J. Siek and W. Taha. Gradual Typing for Functional Languages. In Scheme and Functional Programming, 2006.
- D. Broman and J. Siek. Gradually typed symbolic expressions. In Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM), 2018.
Resources
Below, you can find additional resources that can be helpful during the course.
OCaml
- OCaml.org is the main resource page for the OCaml language and its environments. The page contains many links and texts.
-
The Objective Caml system release. The main reference resource, which includes tools and library descriptions.
- OCaml Programming: Correct + Efficient + Beautiful. A rather new online book containing both text and videos.
-
Developing Applications With Objective Caml. Large On-line O’Reilly book. Many useful examples and explanations.
- There are several books available about OCaml. Please see this list.