Call-by-Value Mixin Modules

Reduction Semantics, Side Effects, Types
  • Tom Hirschowitz
  • Xavier Leroy
  • J. B. Wells
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2986)

Abstract

Mixin modules are a framework for modular programming that supports code parameterization, incremental programming via late binding and redefinitions, and cross-module recursion. In this paper, we develop a language of mixin modules that supports call-by-value evaluation, and formalize a reduction semantics and a sound type system for this language.

References

  1. 1.
    Ancona, D., Fagorzi, S., Moggi, E., Zucca, E.: Mixin modules and computational effects. In: Int’l Col. on Automata, Lang. and Progr. (2003)Google Scholar
  2. 2.
    Ancona, D., Zucca, E.: A calculus of module systems. J. Func. Progr. 12(2) (2002)Google Scholar
  3. 3.
    Bono, V., Patel, A., Shmatikov, V.: A core calculus of classes and mixins. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 43. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  4. 4.
    Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah (1992)Google Scholar
  5. 5.
    Cardelli, L.: Program fragments, linking, and modularization. In: 24th symp. Principles of Progr. Lang. ACM Press, New York (1997)Google Scholar
  6. 6.
    Cook, W.R.: A Denotational Semantics of Inheritance. PhD thesis, Department of Computer Science, Brown University (1989)Google Scholar
  7. 7.
    Crary, K., Harper, R., Puri, S.: What is a recursive module? In: Prog. Lang. Design and Impl. ACM Press, New York (1999)Google Scholar
  8. 8.
    Dreyer, D.: A type system for well-founded recursion. In: 31st symp. Principles of Progr. Lang. ACM Press, New York (2004) (to appear)Google Scholar
  9. 9.
    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
  10. 10.
    Duggan, D., Sourelis, C.: Mixin modules. In: Int. Conf. on Functional Progr. ACM Press, New York (1996)Google Scholar
  11. 11.
    Findler, R.B., Flatt, M.: Modular object-oriented programming with units and mixins. In: Int. Conf. on Functional Progr. ACM Press, New York (1998)Google Scholar
  12. 12.
    Flatt, M., Felleisen, M.: Units: cool modules for HOT languages. In: Prog. Lang. Design and Impl. ACM Press, New York (1998)Google Scholar
  13. 13.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: 25th symp. Principles of Progr. Lang. ACM Press, New York (1998)Google Scholar
  14. 14.
    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
  15. 15.
    Harper, R., Pierce, B.: A record calculus based on symmetric concatenation. In: 18th symp. Principles of Progr. Lang., Orlando, Florida (1991)Google Scholar
  16. 16.
    Hirschowitz, T.: Modules mixins, modules et récursion étendue en appel par valeur. PhD thesis, University of Paris VII (2003)Google Scholar
  17. 17.
    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)CrossRefGoogle Scholar
  18. 18.
    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
  19. 19.
    Hirschowitz, T., Leroy, X., Wells, J.B.: A reduction semantics for call-by-value mixin modules. Research report RR-4682, Inria (2003)Google Scholar
  20. 20.
    Leroy, X.: Manifest types, modules, and separate compilation. In: 21st symp. Principles of Progr. Lang. ACM Press, New York (1994)Google Scholar
  21. 21.
    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)CrossRefGoogle Scholar
  22. 22.
    Moon, D.A.: Object-oriented programming with Flavors. In: OOPSLA (1986)Google Scholar
  23. 23.
    Odersky, M., Cremet, V., Röckl, C., Zenger, M.: A nominal theory of objects with dependent types. In: FOOL 2003 (2003)Google Scholar
  24. 24.
    Pottier, F.: A versatile constraint-based type inference system. Nordic Journal of Computing 7(4) (2000)Google Scholar
  25. 25.
    Russo, C.V.: Recursive structures for Standard ML. In: Int. Conf. on Functional Progr. ACM Press, New York (2001)Google Scholar
  26. 26.
    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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Tom Hirschowitz
    • 1
  • Xavier Leroy
    • 2
  • J. B. Wells
    • 3
  1. 1.École Normale Supérieure de Lyon 
  2. 2.INRIA Rocquencourt 
  3. 3.Heriot-Watt University 

Personalised recommendations