Abstract
Two of the distinguishing features of the Standard ML modules language are its term dependent type syntax and the use of type generativity in its static semantics. From a type-theoretic perspective, the former suggests that the language involves first-order dependent types, while the latter has been regarded as an extra-logical device that bears no direct relation to type-theoretic constructs. We reformulate the existing semantics of Standard ML modules to reveal a purely second-order type theory. In particular, we show that generativity corresponds precisely to existential quantification over types and that the remainder of the modules type structure is based exclusively on the second-order notions of type parameterisation, universal type quantification and subtyping. Our account is more direct than others and has been shown to scale naturally to both higher-order and first-class modules.
This research has been partially supported by EPSRC grant GR/K63795
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Elsman, M.: Program Modules, Separate Compilation, and Intermodule Optimisation. PhD thesis. Dept. of Computer Science, University of Copenhagen (1999)
Harper, R., Lillibridge, M.: A type-theoretic approach to higher-order modules with sharing. In: 21st ACM Symp. Principles of Prog. Lang. (1994)
Harper, R., Mitchell, J.C.: On the type structure of Standard ML. ACM Trans. Prog. Lang. Syst. 15(2), 211–252 (1993)
Harper, R., Mitchell, J.C., Moggi, E.: Higher-order modules and the phase distinction. T. R. ECS-LFCS-90-112, Dept. of Computer Science, University of Edinburgh (1990)
Harper, R., Stone, C.: An Interpretation of Standard ML in Type Theory. T. R. CMU-CS-97-147, School of Computer Science, Carnegie Mellon University (1997)
Jones, M.P.: Using parameterized signatures to express modular structure. In: Proc. 23rd Symp. Principles of Prog. Lang. ACM Press, New York (1996)
Leroy, X.: Manifest types, modules, and separate compilation. In: Proc. 21st Symp. Principles of Prog. Lang., pp. 109–122. ACM Press, New York (1994)
Leroy, X.: Applicative functors and fully transparent higher-order modules. In: Proc. 22nd Symp. Principles of Prog. Lang., pp. 142–153. ACM Press, New York (1995)
Leroy, X.: A syntactic theory of type generativity and sharing. Journal of Functional Programming 6(5), 1–32 (1996)
Lillibridge, M.: Translucent Sums: A Foundation for Higher-Order Module Systems. PhD thesis, School of Computer Science, Carnegie Mellon University (1997)
MacQueen, D.: Using dependent types to express modular structure. In: 13th ACM Symp. on Principles of Prog. Lang. (1986)
McKinna, J., Pollack, R.: Pure Type Sytems formalized. In: Proc. Int’l Conf. on Typed Lambda Calculi and Applications, Utrecht, pp. 289–305 (1993)
Mitchell, J.C., Plotkin, G.D.: Abstract types have existential type. ACM Transactions on Programming Languages and Systems 10(3), 470–502 (1988)
Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML. MIT Press, Cambridge (1997) (Revised)
Russo, C.V.: Types For Modules. PhD Thesis, Laboratory for Foundations of Computer Science, University of Edinburgh (1998)
Russo, C.V.: First-Class Structures for Standard ML. Unpublished manuscript, Laboratory for Foundations of Computer Science, University of Edinburgh (1999)
Shao, Z.: Parameterized Signatures and Higher-Order Modules. T. R. YALEU/DCS/TR-1161, Dept. of Computer Science. Yale University (August 1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Russo, C.V. (1999). Non-dependent Types for Standard ML Modules. In: Nadathur, G. (eds) Principles and Practice of Declarative Programming. PPDP 1999. Lecture Notes in Computer Science, vol 1702. Springer, Berlin, Heidelberg. https://doi.org/10.1007/10704567_5
Download citation
DOI: https://doi.org/10.1007/10704567_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66540-3
Online ISBN: 978-3-540-48164-5
eBook Packages: Springer Book Archive