CS 358. TOPICS IN PROGRAMMING LANGUAGE THEORY Spring 1994
John Mitchell
MJH Room 352 (Bldg 460)
MW 12:50-2:05
This is a graduate-level course on programming language theory.
This year, the course will focus on type systems for functional
and object-oriented programming languages.
1. Simply-typed lambda calculus. Presentation of context-sensitive
syntax by typing rules. Type-checking algorithm, formulas-as-types
correspondence.
2. Parametric polymorphism. Comparison of three systems:
type-of-all-types, impredicative and predicative polymorphism.
Programming language motivations, syntactic and semantic issues.
3. Subtyping and object-oriented programming concepts. Survey of
syntactic systems, semantic problems. Program examples that test
static type systems.
4. Type inference algorithms. The ML typing algorithm and its
complexity. Extensions of this algorithm.
Classwork will involve homework and a term project or paper.
The course may be repeated for credit. This quarter's topics will
not overlap significantly with 1992 or 1993 offerings of the course.
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.
------------------------------------------------------------------
Course information may be reached through my WWW home page,
http:///www.theory.stanford.edu/people/jcm/home.html
or via anonymous ftp, directory pub/jcm/cs358 on theory.stanford.edu
MAIN FILES:
overview - this course overview
calendar - calendar for April-June 1994
schedule - lecture topics and reading assignments,
to be updated incrementally throughout the quarter
Reading material will also be availiable from this directory, but
files may be deleted one week after posting.
------------------------------------------------------------------