The Syllabus and Lecture Notes

Lecture notes are linked below. The complete dateline of what will happen when.

Introduction

The Caml programming language

Readings: Caml manual, "the core language"; Caml manual, "the module system", Hickey's Book
  1. the top loop
  2. value let and simple expressions
  3. functions and pattern matching
  4. polymorphic type inference
  5. data types
  6. arrays and references
  7. exceptions
  8. modules: structures, functors, type declarations

Operational Semantics: simple untyped interpreters

  1. A boolean logic operational semantics and its interpreter
  2. The toy D functional language
  3. Operational semantics for D
  4. Pure functional programming in D
  5. Call-by-name and call-by-value parameter passing in D
  6. Operational equivalence

Tuples, Records and State

  1. Tuples
  2. Records
  3. Mutable State
  4. The DSR toy language: D with mutable state and records.

Compilation by program transformation

  1. Closure conversion: making nonlocal variables explicit
  2. The A-translation: making the control flow explicit
  3. Function hoisting
  4. Code generation

Objects, Classes, and Inheritance

Types and Type Checking

  1. Type systems illustrated by TD, a typed D toy language
  2. Implementing type checkers
  3. Type systems for other language features
  4. Subtyping
  5. Type inference

Exceptions and other Control Operators

  1. Return
  2. Exceptions and the DX language

Scanning and Parsing


Last modified: Thu Apr 18 10:38:27 EDT 2002