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
-
Overview: [PPT] [HTML]
-
Dependent Types: [PPT] [HTML]
-
Existential Types: [PPT] [HTML]
-
Translucent Sums: [PPT] [HTML]
-
Generativity and Sharing: [PPT]
[HTML]
-
Singleton Kinds: [PPT] [HTML]
-
Harper-Stone Elaboration: [PPT]
[HTML]
-
Russo Elaboration: [PPT] [HTML]
-
Phase Distinction: [PPT] [HTML]
-
Applicative Functors: [PDF]
-
Fully Syntactic Signatures: [PPT] [PDF]
-
A Type System for Higher-Order Modules: [PPT] [HTML]
-
Mixin Modules: [PPT] [HTML]
-
Views: [PDF]
Readings
Dependent Types
-
David B. MacQueen. Using Dependent Types to Express Modular
Structure.
-
Robert Harper and John C. Mitchell. On the Type Structure of Standard ML.
-
Mark A. Sheldon and David K. Gifford. Static Dependent Types for First-Class Modules.
Type Abstraction
-
John C. Mitchell and Gordon D. Plotkin. Abstract Types Have Existential Type.
-
Luca Cardelli and Xavier Leroy. Abstract Types and the Dot Notation.
-
Dan Grossman, Greg Morrisett, and Steve Zdancewic. Syntactic Type Abstraction.
Type Sharing
-
Robert Harper and Mark Lillibrige. A Type-Theoretic Approach to Higher-Order Modules With Sharing.
-
Mark Lillibridge. Translucent Sums: A Foundation for Higher-Order Module Systems.
-
Xavier Leroy. Manifest Types, Modules, and Separate Compilation.
-
Xavier Leroy. A Syntactic Theory of Type Generativity and Sharing.
Singleton Types and Kinds
- David Aspinall. Subtyping With Singleton Types.
-
Christopher A. Stone and Robert Harper. Deciding Type Equivalence in a Language With Singleton Kinds.
-
Karl Crary. Sound and Complete Elimination of Singleton Kinds.
Typed Elaboration
-
Robert Harper and Christopher Stone. A Type-Theoretic Interpretation of Standard ML.
-
Robert Harper and Christopher Stone. An Interpretation of Standard ML in Type Theory.
-
Claudio V. Russo. Non-dependent Types for Standard ML Modules.
-
Sandip K. Biswas. Higher-Order Functors With Transparent Signatures.
-
Franz-Josef Grosch. No Type Stamps and No Structure Stamps --- A Referentially Transparent Higher-Order Module System.
Phase Separation
-
Robert Harper, John C. Mitchell, and Eugenio Moggi. Higher-Order Modules and the Phase Distinction.
Higher-Order Modules
-
Xavier Leroy. Applicative Functors and Fully Transparent Higher-Order Modules.
-
Claudio V. Russo. Types for Modules.
-
Zhong Shao. Transparent Modules With Fully Syntactic Signatures.
-
Derek Dreyer, Karl Crary, and Robert Harper. A Type System for Higher-Order Modules.
Recursive and Mixin Modules
-
Karl Crary, Robert Harper, and Sidd Puri. What is a Recursive Module?
-
Claudio V. Russo. Recursive Structures for Standard ML.
-
Dominic Duggan and Constantinos Sourelis. Mixin Modules.
-
Tom Hirschowitz and Xavier Leroy. Mixin Modules in a Call-by-Value Setting.
Modules and Classes
-
John Mitchell and Sigurd Meldal and Neel Madhav. An Extension of
Standard ML Modules with Subtyping and Inheritance.
-
Dinesh Katiyar, David Luckham, and John C. Mitchell. A Type System for Prototyping Languages.
-
Kathleen Fisher and John Reppy. Design of a Class Mechanism for Moby.
-
Dominic Duggan and Ching-Ching Techaubol. Modular Mixin-Based Inheritance for Application Frameworks.
Modular Assembly Language
-
Neal Glew and Greg Morrisett. Type-Safe Linking and Modular Assembly Language.
-
Michael Hicks, Stephanie Weirich, and Karl Crary. Type-Safe Dynamic Linking of Native Code.
-
Dominic Duggan. Sharing in Typed Module Assembly Language.
Views and Pattern Matching
-
Philip Wadler. Views: A Way for Pattern Matching to Cohabit With Data Abstraction.
-
Palao Gostanza, Pedro Ricardo Pena, Manuel Nunez. A New Look at Pattern Matching in Abstract Data Types.
Standard ML Modules
-
David B. MacQueen. Modules for Standard ML.
-
Robin Milner, Mads Tofte, Robert Harper, and David B. MacQueen. The Definition of Standard ML (Revised).
-
Mads Tofte. Principal Signatures for Higher-Order Program Modules.
-
Mads Tofte. Principal Signatures for Higher-Order Modules.
-
David B. MacQueen and Mads Tofte. A Semantics for Higher-Order Functors.
-
Maria Virginia Aponte. Extending Record Typing to Type Parametric Modules With Sharing.
Other Languages
-
Mark P. Jones. Using Parameterized Signatures to Represent Modular Structure.
-
Pavel Curtis and James Rauen. A Module System for Scheme.
-
L. Cardelli, J. Donahue, M. Jordan, B. Kalsow, and G. Nelson. The
Modula-3 Type System.
-
Matthew Flatt and Matthias Felleisen. Units: Cool Modules for HOT Languages.
-
Sean McDirmid, Matthew Flatt, and Wilson C. Hsieh. Jiazzi: New-Age Components for Old-Fashioned Java.
Thursday, November 07, 2002 16:10 PM