PL Supplementary Resources
Here is a list of the best resources to supplement the material presented in lecture. There is a wide range of notation used so for each reference you will have to spend some time to get used to the notation. There also is an amazing amount of material we are not covering in this course; each reference below overlaps only slightly with what we will be covering.
References by topic
ML/Caml
See the Course Caml Page.
Operational Semantics
See the Wikipedia entry for good references.
Plotkin's Structured Operational Semantics Notes is the classic tutorial reference on operational semantics.
The book The Semantics of Programming Languages by Matthew Hennessy. This book is a sophmore-level treatment of operational semantics. If you are in need of a tutorial on operational semantics this book is highly recommended. It is available online as well.
Simple Interpreters
The book Essentials of Programming Languages by Friedman, Wand, and Haynes includes many implementations of small interpreters of the sort we study. The book is written in the Scheme language however, so requires a significant initial investment if you don't already know Scheme.
Type Systems and Type Inference
Semantics of Programming Languages by Carl Gunter. Chapter 2 gives a nice introduction to the typed lambda calculus. Chapter 7 covers type inference.
Types and Programming Languages by Benjamin C. Pierce is the leading advanced reference.
Dave Schmidt has a book, The Structure of Typed Programming Languages which I am not very familiar with but should cover the basic concepts.