Skip to main content

An algebra of mixin modules

  • Contributed Papers
  • Conference paper
  • First Online:
Recent Trends in Algebraic Development Techniques (WADT 1997)

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

Included in the following conference series:

Abstract

Mixins are modules which may contain deferred components, i.e. components not defined in the module itself, and allow definitions to be overridden. We give an axiomatic definition of a set of operations for mixin combination, corresponding to a variety of constructs existing in programming languages (merge, hiding, overriding, functional composition, ...). In particular, we show that they can all be expressed in terms of three primitive operations (namely, sum, reduct and freeze), which are characterized by a small set of axioms. We show that the given axiomatization is sound w.r.t. to a model provided in some preceding work. Finally, we prove the existence of a normal form for mixin expressions.

This work has been partially supported by Murst 40% - Modelli della computazione e dei linguaggi di programmazione 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. D. Ancona. An algebraic framework for separate compilation. Technical Report DISI-TR-97-10, Dipartimento di Informatica e Scienze dell'Informazione, Università di Genova, 1997. Submitted for publication.

    Google Scholar 

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

    Google Scholar 

  3. D. Ancona and E. Zucca. A theory of mixin modules: algebraic laws and reduction semantics. In preparation.

    Google Scholar 

  4. D. Ancona and E. Zucca. An algebraic approach to mixins and modularity. In M. Hanus and M. Rodriguez Artalejo, editors, ALP '96-5th Intl. Conf. on Algebraic and Logic Programming, number 1139 in Lecture Notes in Computer Science, pages 179–193, Berlin, 1996. Springer Verlag.

    Google Scholar 

  5. D. Ancona and E. Zucca. Overriding operators in a mixin-based framework. In H. Glaser, P. Hartel, and H. Kuchen, editors, Proc. PLILP '97-9th International Symposium on Programming Languages, Implementations, Logics, and Programs, number 1292 in Lecture Notes in Computer Science, pages 47–61, Berlin, September 1997. Springer Verlag.

    Google Scholar 

  6. D. Ancona and E. Zucca. A theory of mixin modules: basic and derived operators. Mathematical Structures in Computer Science, 1998. To appear.

    Google Scholar 

  7. G. Banavar and G. Lindstrom. An application framework for module composition tools. In ECOOP '96, number 1098 in Lecture Notes in Computer Science, pages 91–113. Springer Verlag, July 1996.

    Google Scholar 

  8. J.A. Bergstra, J. Heering, and P. Klint. Module algebra. Journ. ACM, 37(2):335–372, 1990.

    Google Scholar 

  9. G. Bracha. The Programming Language JIGSAW. Mixins, Modularity and Multiple Inheritance. PhD thesis, Dept. Comp. Sci., Univ. Utah, 1992.

    Google Scholar 

  10. G. Bracha and W. Cook. Mixin-based inheritance. In ACM Symp. on Object-Oriented Programming: Systems, Languages and Applications 1990, pages 303–311. ACM Press, October 1990. SIGPLAN Notices, volume 25, number 10.

    Google Scholar 

  11. 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 

  12. L. Cardelli. Program fragments, linking, and modularization. In Proc. 24th ACM Symp. on Principles of Programming Languages, pages 266–277. ACM Press, January 1997.

    Google Scholar 

  13. W. Cook. A Denotational Semantics of Inheritance. PhD thesis, Dept. Comp. Sci. Brown University, 1989.

    Google Scholar 

  14. J. Courant. A module calculus enjoying the subject-reduction property. In TAPSOFT '97: Theory and Practice of Software Development, number 1214 in Lecture Notes in Computer Science. Springer Verlag, April 1997.

    Google Scholar 

  15. D. Duggan and C. Sourelis. Mixin modules. In Intl. Conf. on Functional Programming, Philadelphia, May 1996. ACM Press.

    Google Scholar 

  16. H. Ehrig and B. Mahr. Fundamentals of Algebraic Specification 1. Equations and Initial Semantics, volume 6 of EATCS Monograph in Computer Science. Springer Verlag, 1985.

    Google Scholar 

  17. J.A. Goguen and R.M. Burstall. Institutions: Abstract model theory for computer science. Journ. ACM, 39:95–146, 1992.

    Article  Google Scholar 

  18. R. Harper and M. Lillibridge. A type theoretic approach to higher-order modules with sharing. In ACM Symp. on Principles of Programming Languages 1994, pages 127–137. ACM Press, 1994.

    Google Scholar 

  19. M. P. Jones. Using parameterized signatures to express modular structure. In Proc. 23rd ACM Symp. on Principles of Programming Languages, pages 68–78, St. Petersburg Beach, Florida, Jan 1996. ACM Press.

    Google Scholar 

  20. X. Leroy. Manifest types, modules and separate compilation. In ACM Symp. on Principles of Programming Languages 1994, pages 109–122. ACM Press, 1994.

    Google Scholar 

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

    Google Scholar 

  22. M. Van Limberghen and T. Mens. Encapsulation and composition as orthogonal operators on mixins: A solution to multiple inheritance problems. Object Oriented Systems, 3(1):1–30, 1996.

    Google Scholar 

  23. R. Milner, M. Tofte, and R. Harper. The Definition of Standard ML. The MIT Press, Cambridge, Massachussetts, 1990.

    Google Scholar 

  24. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Francesco Parisi Presicce

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ancona, D., Zucca, E. (1998). An algebra of mixin modules. In: Presicce, F.P. (eds) Recent Trends in Algebraic Development Techniques. WADT 1997. Lecture Notes in Computer Science, vol 1376. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-64299-4_28

Download citation

  • DOI: https://doi.org/10.1007/3-540-64299-4_28

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64299-2

  • Online ISBN: 978-3-540-69719-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics