Skip to main content

Non-dependent Types for Standard ML Modules

  • Conference paper
Principles and Practice of Declarative Programming (PPDP 1999)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1702))

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Elsman, M.: Program Modules, Separate Compilation, and Intermodule Optimisation. PhD thesis. Dept. of Computer Science, University of Copenhagen (1999)

    Google Scholar 

  2. Harper, R., Lillibridge, M.: A type-theoretic approach to higher-order modules with sharing. In: 21st ACM Symp. Principles of Prog. Lang. (1994)

    Google Scholar 

  3. Harper, R., Mitchell, J.C.: On the type structure of Standard ML. ACM Trans. Prog. Lang. Syst. 15(2), 211–252 (1993)

    Article  Google Scholar 

  4. 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)

    Google Scholar 

  5. 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)

    Google Scholar 

  6. Jones, M.P.: Using parameterized signatures to express modular structure. In: Proc. 23rd Symp. Principles of Prog. Lang. ACM Press, New York (1996)

    Google Scholar 

  7. Leroy, X.: Manifest types, modules, and separate compilation. In: Proc. 21st Symp. Principles of Prog. Lang., pp. 109–122. ACM Press, New York (1994)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. Leroy, X.: A syntactic theory of type generativity and sharing. Journal of Functional Programming 6(5), 1–32 (1996)

    Article  MathSciNet  Google Scholar 

  10. Lillibridge, M.: Translucent Sums: A Foundation for Higher-Order Module Systems. PhD thesis, School of Computer Science, Carnegie Mellon University (1997)

    Google Scholar 

  11. MacQueen, D.: Using dependent types to express modular structure. In: 13th ACM Symp. on Principles of Prog. Lang. (1986)

    Google Scholar 

  12. McKinna, J., Pollack, R.: Pure Type Sytems formalized. In: Proc. Int’l Conf. on Typed Lambda Calculi and Applications, Utrecht, pp. 289–305 (1993)

    Google Scholar 

  13. Mitchell, J.C., Plotkin, G.D.: Abstract types have existential type. ACM Transactions on Programming Languages and Systems 10(3), 470–502 (1988)

    Article  Google Scholar 

  14. Milner, R., Tofte, M., Harper, R., MacQueen, D.: The Definition of Standard ML. MIT Press, Cambridge (1997) (Revised)

    Google Scholar 

  15. Russo, C.V.: Types For Modules. PhD Thesis, Laboratory for Foundations of Computer Science, University of Edinburgh (1998)

    Google Scholar 

  16. Russo, C.V.: First-Class Structures for Standard ML. Unpublished manuscript, Laboratory for Foundations of Computer Science, University of Edinburgh (1999)

    Google Scholar 

  17. Shao, Z.: Parameterized Signatures and Higher-Order Modules. T. R. YALEU/DCS/TR-1161, Dept. of Computer Science. Yale University (August 1998)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics