Skip to main content

A Primitive Calculus for Module Systems

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

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

Abstract

We present a simple and powerful calculus of modules supporting mutual recursion and higher order features. The calculus allows to encode a large variety of existing mechanisms for combining software components, including parameterized modules, extension with overriding of object-oriented programming, mixin modules and extra-linguistic mechanisms like those provided by a linker. As usual, we first present an untyped version of our calculus and then a type system which is proved sound w.r.t. the reduction semantics; moreover we give a translation of other primitive calculi.

Partially supported by Murst – Tecniche formali per la specifica, l’analisi, la verifica, la sintesi e la trasformazione di sistemi software and CNR – Formalismi per la specifica e la descrizione di sistemi ad oggetti.

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. Abadi, M., Cardelli, L.: A Theory of Objects. Monographs in Computer Science. Springer, New York (1996)

    Google Scholar 

  2. Ancona, D.: Modular Formal Frameworks for Module Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa (1998)

    Google Scholar 

  3. Ancona, D.: An algebraic framework for separate type-checking. In: Fiadeiro, J. (ed.) WADT 1998. LNCS, vol. 1589, pp. 1–15. Springer, Heidelberg (1999) (to appear)

    Google Scholar 

  4. Ancona, D., Zucca, E.: Overriding operators in a mixin-based framework. In: Glaser, H., Hartel, P. (eds.) PLILP 1997. LNCS, vol. 1292, pp. 47–61. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  5. Ancona, D., Zucca, E.: A theory of mixin modules: Basic and derived operators. Mathematical Structures in Computer Science 8(4), 401–446 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  6. Ancona, D., Zucca, E.: A modular calculus for module systems. Technical report, Dipartimento di Informatica e Scienze dell’Informazione, Università di Genova (June 1999)

    Google Scholar 

  7. Bracha, G.: The Programming Language JIGSAW: Mixins, Modularity and Multiple Inheritance. PhD thesis, Department of Comp. Sci., Univ. of Utah (1992)

    Google Scholar 

  8. Cardelli, L.: Program fragments, linking, and modularization. In: ACM Symp. on Principles of Programming Languages 1997, January 1997, pp. 266–277. ACM Press, New York (1997)

    Google Scholar 

  9. Cook, W.: A Denotational Semantics of Inheritance. PhD thesis, Dept. Comp. Sci., Brown University (1989)

    Google Scholar 

  10. Crary, K., Harper, R., Puri, S.: What is a recursive module? In: PLDI 1999 - ACM Conf. on Programming Language Design and Implementation (1999) (to appear)

    Google Scholar 

  11. Duggan, D., Sourelis, C.: Mixin modules. In: Intl. Conf. on Functional Programming, Philadelphia. SIGPLAN Notices, vol. 31(6), pp. 262–273. ACM Press, New York (1996)

    Google Scholar 

  12. Flatt, M., Felleisen, M.: Units: Cool modules for HOT languages. In: PLDI 1998 - ACM Conf. on Programming Language Design and Implementation, pp. 236–248 (1998)

    Google Scholar 

  13. Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: ACM Symp. on Principles of Programming Languages 1998, pp. 171–183 (January1998)

    Google Scholar 

  14. Harper, R., Lillibridge, M.: A type theoretic approach to higher-order modules with sharing. In: ACM Symp. on Principles of Programming Languages 1994, pp. 127–137. ACM Press, New York (1994)

    Google Scholar 

  15. Harper, R., Lillibridge, M., Moggi, E.: Higher-order modules and the phase distinction. In: ACM Symp. on Principles of Programming Languages 1990, S. Francisco, CA, pp. 341–354. ACM Press, New York (1990)

    Google Scholar 

  16. Leroy, X.: Manifest types, modules and separate compilation. In: ACM Symp. on Principles of Programming Languages 1994, pp. 109–122. ACM Press, New York (1994)

    Chapter  Google Scholar 

  17. Leroy, X.: A modular module system. Technical Report 2866, Institute National de Recherche en Informatique et Automatique (April 1996)

    Google Scholar 

  18. Milner, R., Tofte, M., Harper, R.: The Definition of Standard ML. The MIT Press, Cambridge (1990)

    Google Scholar 

  19. Reddy, U.S.: Objects as closures: Abstract semantics of object-oriented languages. In: Proc. ACM Conf. on Lisp and Functional Programming, pp. 289–297 (1988)

    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

Ancona, D., Zucca, E. (1999). A Primitive Calculus for Module Systems. 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_4

Download citation

  • DOI: https://doi.org/10.1007/10704567_4

  • 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