Skip to main content

Rigid Mixin Modules

  • Conference paper
Functional and Logic Programming (FLOPS 2004)

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

Included in the following conference series:

Abstract

Mixin modules are a notion of modules that allows cross-module recursion and late binding, two features missing in ML-style modules. They have been well defined in a call-by-name setting, but in a call-by-value setting, they tend to conflict with the usual static restrictions on recursive definitions. Moreover, the semantics of instantiation has to specify an order of evaluation, which involves a difficult design choice. Previous proposals [14, 16] rely on the dependencies between components to compute a valid order of evaluation. In such systems, mixin module types must carry some information on the dependencies between their components, which makes them verbose. In this paper, we propose a new, simpler design for mixin modules in a call-by-value setting, which avoids this problem.

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. Ancona, D., Fagorzi, S., Moggi, E., Zucca, E.: Mixin modules and computational effects. Int’l Col. on Automata, Lang. and Progr. (2003)

    Google Scholar 

  2. Ancona, D., Zucca, E.: A calculus of module systems. J. Func. Progr. 12(2) (2002)

    Google Scholar 

  3. Appel, A.W.: Compiling with continuations. Cambridge University Press, Cambridge (1992)

    Google Scholar 

  4. Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah (1992)

    Google Scholar 

  5. Cardelli, L.: Program fragments, linking, and modularization. In: 24th symp. Principles of Progr. Lang., ACM Press, New York (1997)

    Google Scholar 

  6. Crary, K., Harper, R., Puri, S.: What is a recursive module? In: Prog. Lang. Design and Impl., ACM Press, New York (1999)

    Google Scholar 

  7. Dreyer, D.R., Harper, R., Crary, K.: Toward a practical type theory for recursive modules. Technical Report CMU-CS-01-112, Carnegie Mellon University, Pittsburgh, PA (2001)

    Google Scholar 

  8. Duggan, D., Sourelis, C.: Mixin modules. In: Int. Conf. on Functional Progr., ACM Press, New York (1996)

    Google Scholar 

  9. Flatt, M.: PLT MzScheme: language manual. Technical Report TR97-280, Rice University (1997)

    Google Scholar 

  10. Flatt, M., Felleisen, M.: Units: cool modules for HOT languages. In: Prog. Lang. Design and Impl., ACM Press, New York (1998)

    Google Scholar 

  11. Harper, R., Lillibridge, M.: A type-theoretic approach to higher-order modules with sharing. In: 21st symp. Principles of Progr. Lang., ACM Press, New York (1994)

    Google Scholar 

  12. Hirschowitz, T.: Modules mixins, modules et récursion étendue en appel par valeur. PhD thesis, University of Paris VII (2003)

    Google Scholar 

  13. Hirschowitz, T.: Rigid mixin modules. Research report RR2003-46, ENS Lyon (2003)

    Google Scholar 

  14. Hirschowitz, T., Leroy, X.: Mixin modules in a call-by-value setting. In: Le Métayer, D. (ed.) ESOP 2002. LNCS, vol. 2305, pp. 6–20. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  15. Hirschowitz, T., Leroy, X., Wells, J.B.: Compilation of extended recursion in callby- value functional languages. In: Princ. and Practice of Decl. Prog., ACM Press, New York (2003)

    Google Scholar 

  16. Hirschowitz, T., Leroy, X., Wells, J.B.: A reduction semantics for call-by-value mixin modules. Research report RR-4682, Inria (2003)

    Google Scholar 

  17. Leroy, X., Doligez, D., Garrigue, J., Vouillon, J.: The Objective Caml system (1996-2003), Software and documentation available on the Web http://caml.inria.fr/

  18. Machkasova, E., Turbak, F.A.: A calculus for link-time compilation. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 260. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  19. Milner, R., Tofte, M., MacQueen, D.: The Definition of Standard ML. MIT Press, Cambridge (1990)

    Google Scholar 

  20. Wells, J.B., Vestergaard, R.: Equational reasoning for linking with first-class primitive modules. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 412. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hirschowitz, T. (2004). Rigid Mixin Modules. In: Kameyama, Y., Stuckey, P.J. (eds) Functional and Logic Programming. FLOPS 2004. Lecture Notes in Computer Science, vol 2998. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24754-8_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24754-8_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-21402-1

  • Online ISBN: 978-3-540-24754-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics