CS 358. Topics in Programming Language Theory Spring, 1993
John Mitchell
MW 12:50-2:05
MJH 352
This course will concentrate on proof techniques for programming
languages, illustrated using typed lambda calculus. The main
topics will be:
1. Models of typed languages based on recursive functions instead
of domain theory; partial equivalence relation interpretation
of types.
2. The technique of ``logical relations,'' which may be used to
prove operational and denotational properties of typed programs.
Overview of ``representation independence'' for programming languages.
3. Cartesian closed categories. Overview of Kripke models and
some of their applications (e.g., models of storage allocation
and local variables).
4. Semantics of recursively-defined types (data structures).
Models of recursive types, polymorphism and subtyping.
This quarter's topics will not overlap significantly with previous
offerings of the course; the course may be repeated for credit.
Prerequisites are some familiarity with lambda calculus and models
(of lambda calculus or related systems). Either CS 258, a related
course in proof theory, or sufficient individual study should be
adequate.
Reading: Notes will be distributed.
Course requirements: there will be homework problems in the notes.
There will also be term projects, consisting of a set of additional
homework problems in some coherent area, independent investigation,
and/or oral report.