Computer Laboratory > Teaching > Course material 2009–10 > Semantics of Programming Languages


Semantics of Programming Languages

Principal lecturer: Dr Sam Staton
Taken by: Part IB
Past exam questions (There are comments in the notes about the relevance of older questions.)

Notes: colour and monochrome. Large print: colour and monochrome.

Corrections and clarifications for the notes: (txt).

Model implementations of the languages

  • L1 (in ML),
  • L1 (in Java),
  • L1 (in Prolog), and
  • L2 (in ML).

Moscow ML is installed on the Intel Lab machines. If you want to work with the implementations on your own machine instead, there are Linux, Windows, and Mac versions of Moscow ML available here.


In Lectures 2 and 12 I demonstrated an implementation of L1 written in Prolog. You can download GNU Prolog from

In Lecture 6 I demonstrated a call-by-name language, Haskell. You can download the Glasgow Haskell Compiler from

Congratulations to Rasmus Kyng, Martin Maas, Ludwig Schmidt who found contexts to distinguish the two programs on Slide 199.