skip to primary navigationskip to content

Department of Computer Science and Technology



Course pages 2023–24

Advanced topics in programming languages

Principal lecturer: Dr Jeremy Yallop
Taken by: MPhil ACS, Part III
Code: R277
Term: Michaelmas
Hours: 16 (8 x 2hrs lectures)
Format: In-person seminars
Class limit: max. 16 students
Prerequisites: Part IB Semantics, Part II Types (or similar modules)
Moodle, timetable


This module explores various topics in programming languages beyond the scope of undergraduate courses. It aims to introduce students to ideas, results and techniques found in the literature and prepare them for research in the field.

Syllabus and structure

The module consists of eight two-hour seminars, each on a particular topic. Topics will vary from year to year, but may include, for example,

  • Abstract interpretation
  • Verified software
  • Metaprogramming
  • Behavioural types
  • Program synthesis
  • Verified compilation
  • Partial evaluation
  • Garbage collection
  • Dependent types
  • Automatic differentiation
  • Delimited continuations
  • Module systems

There will be three papers assigned for each topic, which students are expected to read before the seminar.
Each seminar will include three 20 minute student presentations (15 minutes + 5 minutes questions), time for general discussion of the topic, and a brief overview lecture for the following week’s topic.
Before each seminar, except in weeks in which they give presentations, students will submit a short essay about two of the papers.


On completion of this module, students should

  • be able to identify some major themes in programming language research
  • be familiar with some classic papers and recent advances
  • have an understanding of techniques used in the field


Assessment consists of:

  • Presentation of one of the papers from the reading list (typically once or twice in total for each student, depending on class numbers)
  • One essay per week (except on the first week and on presentation weeks)

All essays and presentations carry equal numbers of marks.

Essay marks are awarded for understanding, for insight and analysis, and for writing quality. Essays should be around 1500 words (with a lower limit of 1450 and upper limit of 1650). Presentation marks are awarded for clarity, for effective communication, and for selection and organisation of topics.

There will be seven submissions (essays or presentations) in total and, as in other courses, the lowest mark for each student will be disregarded when computing the final mark.

Marking, deadlines and extensions will be handled in accordance with the MPhil Assessment Guidelines.

Recommended reading material and resources

Research and survey papers from programming language conferences and journals (e.g. POPL, PLDITOPLAS, FTPL) will be assigned each week. General background material may be found in:

Types and Programming Languages (Benjamin C. Pierce)
   The MIT Press
   ISBN 0-262-16209-1

Advanced Topics in Types and Programming Languages (ed. Benjamin C. Pierce)
   The MIT Press
   ISBN 0-262-16228-8

Practical Foundations for Programming Languages (Robert Harper)
   Cambridge University Press