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. ------------------------------------------------------------------