A Type Discipline for Program Modules
暂无分享,去创建一个
The ML modules system is organized around the notions of structure, signature, and functor. A structure is an encapsulated declaration of data types and values, a signature is a “type” or specification of a structure, and a functor is a function taking structures to structures. We present a static semantics for a fragment of this system in the style of Plotkin's operational semantics. The treatment of structures and signatures has interesting parallels with the type assignment rules for ML given by Damas and Milner. In particular there is a notion of principal typing.
[1] David B. MacQueen. Using dependent types to express modular structure , 1986, POPL '86.
[2] David B. MacQueen. Modules for standard ML , 1984, LFP '84.
[3] Robin Milner,et al. Principal type-schemes for functional programs , 1982, POPL '82.
[4] Robin Milner,et al. A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..