A syntactic theory of type generativity and sharing

This paper presents a purely syntactic account of type generativity and sharing | two key mechanisms in the SML module system | and shows its equivalence with the traditional stamp-based description of these mechanisms. This syntactic description recasts the SML module system in a more abstract, type-theoretic framework. Capsule Review The issue of \name equivalence" versus \structural equivalence" for statically typed languages has been a vexing problem in programming language design for decades. With the

[1]  Robin Milner,et al.  A Type Discipline for Program Modules , 1987, TAPSOFT, Vol.2.

[2]  Erich J. Neuhold,et al.  Formal description of programming concepts , 1991 .

[3]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[4]  Luca Cardelli,et al.  Typeful Programming , 1989, Formal Description of Programming Concepts.

[5]  John C. Mitchell,et al.  Higher-order modules and the phase distinction , 1989, POPL '90.

[6]  Mads Tofte Principal signatures for higher-order program modules , 1992, POPL '92.

[7]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[8]  David B. MacQueen Modules for standard ML , 1984, LFP '84.

[9]  Mads Tofte,et al.  A Semantics for Higher-Order Functors , 1994, ESOP.

[10]  Robin Milner,et al.  Commentary on standard ML , 1990 .

[11]  Maria-Virginia Aponte Extending record typing to type parametric modules with sharing , 1993, POPL '93.

[12]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[13]  John C. Mitchell,et al.  On the type structure of standard ML , 1993, TOPL.

[14]  Xavier Leroy,et al.  Applicative functors and fully transparent higher-order modules , 1995, POPL '95.

[15]  Amr Sabry,et al.  Reasoning about programs in continuation-passing style , 1992, LFP '92.

[16]  M. Tofte Operational Semantics and Polymorphic Type Inference , 1988 .

[17]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[18]  Luca Cardelli,et al.  Persistence and Type Abstraction , 1985, Data Types and Persistence , Informal Proceedings.

[19]  Ronald Morrison,et al.  Data Types and Persistence , 1988 .

[20]  Robin Milner,et al.  Definition of standard ML , 1990 .

[21]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[22]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[23]  Luca Cardelli,et al.  Abstract Types and the Dot Notation , 1990, Programming Concepts and Methods.

[24]  Professor Dr. Niklaus Wirth,et al.  Programming in Modula-2 , 1982, Springer Berlin Heidelberg.

[25]  Simon L. Peyton Jones,et al.  Type Classes in Haskell , 1994, ESOP.