Advertisement

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.

Keywords

Type System Dependency Graph Dynamic Semantic Evaluation Context Reduction Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

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