MIX(FL): A Kernel Language of Mixin Modules

  • Davide Ancona
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1816)


We define the language of mixin modules MIX(FL) with the aim of providing foundations for the design of module systems supporting mixins. Several working examples are presented showing the benefits of the use of mixins and overriding in module systems. The language is strongly typed and supports separate compilation. The denotational semantics of the language is based on an algebraic approach and is parametric in the semantics of the underlying core language. Hence, even though the language is defined on top of a specific core language, other kinds of core languages could be considered as well.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    D. Ancona. Modular Formal Frameworks for Module Systems. PhD thesis, Dipartimento di Informatica, Università di Pisa, March 1998.Google Scholar
  2. 2.
    D. Ancona, G. Lagorio, and E. Zucca. Jam-a smooth extension of Java with mixins. Technical Report DISI-TR-99-15, DISI, University of Genova, 1999. Submitted for publication.Google Scholar
  3. 3.
    D. Ancona and E. Zucca. An algebra of mixin modules. In F. Parisi-Presicce, editor, Proc. 12th International Workshop on Algebraic Development Techniques, WADT’ 97, Tarquinia, Italy, June 1997. Selected Papers, volume 1376 of Lecture Notes in Computer Science, pages 92–106, Berlin, 1998. Springer Verlag.Google Scholar
  4. 4.
    D. Ancona and E. Zucca. A theory of mixin modules: basic and derived operators. Mathematical Structures in Computer Science, 8(4):401–446, 1998.zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    D. Ancona and E. Zucca. A primitive calculus for module systems. In G. Nadathur, editor, Principles and Practice of Declarative Programming, 1999, number 1702 in Lecture Notes in Computer Science, pages 62–79. Springer Verlag, 1999.CrossRefGoogle Scholar
  6. 6.
    G. Banavar and G. Lindstrom. An application framework for module composition tools. In Proc. of European Conference on Object-Oriented Programming, number 1098 in Lecture Notes in Computer Science, pages 91–113. Springer Verlag, July 1996.Google Scholar
  7. 7.
    G. Bracha and G. Lindstrom. Modularity meets inheritance. In Proc. International Conference on Computer Languages, pages 282–290, San Francisco, April 1992. IEEE Computer Society.Google Scholar
  8. 8.
    W.R. Cook. A Denotational Semantics of Inheritance. PhD thesis, Dept. of Computer Science, Brown University, 1989.Google Scholar
  9. 9.
    K. Crary, R. Harper, and S. Puri. What is a recursive module? In PLDI’99-ACM Conf. on Programming Language Design and Implementation, 1999.Google Scholar
  10. 10.
    D. Duggan and C. Sourelis. Parameterized modules, recursive modules, and mixin modules. In 1998 ACM SIGPLAN Workshop on ML, pages 87–96, Baltimore, Maryland, September 1998. ACM Press.Google Scholar
  11. 11.
    R.B. Findler and M. Flatt. Modular object-oriented programming with units and mixins. In Intl. Conf. on Functional Programming 1998, September 1998.Google Scholar
  12. 12.
    M. Flatt and M. Felleisen. Units: Cool modules for HOT languages. In PLDI’98-ACM Conf. on Programming Language Design and Implementation, pages 236–248, 1998.Google Scholar
  13. 13.
    M. Flatt, S. Krishnamurthi, and M. Felleisen. Classes and mixins. In ACM Symp. on Principles of Programming Languages 1998, pages 171–183, January 1998.Google Scholar
  14. 14.
    J. A. Goguen and R. Burstall. Institutions: abstract model theory for specification and programming. Journ. ACM, 39(1):95–146, 1992.zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    S. E. Keene. Object-Oriented Programming in Common Lisp. Addison Wesley, 1989.Google Scholar
  16. 16.
    R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, Cambridge, Massachussetts, 1990.Google Scholar
  17. 17.
    D.A. Moon. Object oriented programming with Flavors. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1986, pages 1–8. ACM Press, November 1986. SIGPLAN Notices, volume 21, number 11.CrossRefGoogle Scholar
  18. 18.
    U. S. Reddy. Objects as closures: Abstract semantics of object-oriented languages. In Proc. ACM Conf. on Lisp and Functional Programming, pages 289–297, 1988.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Davide Ancona
    • 1
  1. 1.Dipartimento di Informatica e Scienze dell’InformazioneGenovaItaly

Personalised recommendations