Note: I've just migrated to a different physical server to run Spivey's Corner,
with a new architecture, a new operating system, a new version of PHP, and an updated version of MediaWiki.
Please let me know if anything needs adjustment! – Mike

Books and background reading (Programming Languages)

Copyright © 2024 J. M. Spivey
Jump to navigation Jump to search

Reading list

The course explores many of the same themes that are covered in

Friedman, Wand and Haynes, Essentials of Programming Languages, 3rd ed., MIT Press.

(The second edition is also useful, but the third edition is better.) However, that book contains interpreters written in Scheme, and we will use Haskell.

Full notes for the course are provided as part of the course outline.

Background Reading

The following classic articles are all very accessible, and are essential reading for anyone who really wishes to understand what's going on beneath the surface of this course.

  • Reynolds (1972), Definitional Interpreters for Higher-Order Programming Languages (PDF).
  • Reynolds (1998), Definitional Interpreters Revisited (PDF).
  • Wadler (1992), The Essence of Functional Programming (PDF).
  • Strachey (1970, pub. 2000), Fundamental Concepts of Programming Languages (PDF).
  • Landin (1964), The Mechanical Evaluation of Expressions (PDF).

For convenience, local copies of these papers are provided, but they are accessible only from within the Oxford University domain.