Types and Programming Languages

Lecture Times

In most weeks, one of the lecture sessions (usually Friday) will be used for a tutorial.

Copies of the lecture slides will be distributed during lectures. Lecture slideshows will be available from this page after lectures. You should get a copy of the course textbook: Types and Programming Languages by Benjamin Pierce. At the end of most lectures there will be a list of supplementary reading and exercises from Pierce; these exercises will be discussed during tutorials. Additional exercise sheets will also be handed out. As a rule (in any course) you should expect to spend at least as much time on private study as you spend in classes. Although the material in the lecture slides is adequate for the course, the more of the supplementary reading and exercises you do, the better will be your understanding of the course material.

Implementations

The SableCC tool.

The Simple Expression Language (SEL) typechecker and accompanying notes.

The Simple Functional Language (SFL) typechecker and accompanying notes.

The Better Functional Language (BFL) typechecker and accompanying notes.

The Functional Language with Sessions (FLS) typechecker.

Assessed Exercise

Here is the assessed exercise. The deadline is Friday 2nd December.

Course Material

Here is a week-by-week schedule of topics, with links to worksheets and other handouts. It will be updated during the term.

The paper Type Systems by Luca Cardelli is an excellent survey of many topics that we will cover during the course. If you are an MSc or MSci student, note that it is one of the papers that we will be studying in the Research Readings module (Programming Languages section).

Week 1 beginning 25th September

Week 2 beginning 2nd October

Week 3 beginning 9th October

Week 4 beginning 16th October

Week 5 beginning 23rd October

Week 6 beginning 30th October

Week 7 beginning 6th November

Week 8 beginning 13th November

Week 9 beginning 20th November

Week 10 beginning 27th November