Type Systems for Modularity

This is a graduate seminar concerned with type systems for program modules. The focus of the course will be on the ML module system and its derivatives. The course emphasizes the role of typed lambda calculus models of modularity, but will also consider methods based on elaboration in terms of ad hoc semantic structures. The main pre-requisite is familiarity with typed lambda calculus models of programming languages such as would be provided by the graduate programming languages core course. Undergraduates may take this course with permission of the instructor.

Lecture Slides

Readings

Dependent Types

Type Abstraction

Type Sharing

Singleton Types and Kinds

Typed Elaboration

Phase Separation

Higher-Order Modules

Recursive and Mixin Modules

Modules and Classes

Modular Assembly Language

Views and Pattern Matching

Standard ML Modules

Other Languages

Thursday, November 07, 2002 16:10 PM