Skip to main content

Propagating Class and Method Combination

  • Conference paper
  • First Online:
ECOOP’ 99 — Object-Oriented Programming (ECOOP 1999)

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

Included in the following conference series:

Abstract

This paper presents a mixin based class and method combination mechanism with block structure propagation. Traditionally, mixins can be composed to form new classes, possibly merging the implementations of methods (as in CLOS). In our approach, a class or method combination operation may cause any number of implicit combinations. For example, it is possible to specify separate aspects of a family of classes, and then combine several aspects into a full-fledged class family. The combination expressions would explicitly combine whole-family aspects, and by propagation implicitly combine the aspects for each member of the class family, and again by propagation implicitly compose each method from its aspects. As opposed to CLOS, this is type-checked statically; and as opposed to other systems for advanced class combination/ merging/weaving, it is integrated directly in the language, ensuring a clear semantics and a seamless interaction with the type system. Moreover, the basic mechanism used in the combination, linearization, is formalized and generalized compared to previous presentions.

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. Kim Barrett, Bob Cassels, Paul Haahr, David A. Moon, Keith Playford, Andrew L. M. Shalit, and P. Tucker Withington. A monotonic superclass linearization for Dylan. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, volume 31, 10 of ACM SIGPLAN Notices, pages 69–82, New York, October 6–10 1996. ACM Press.

    Google Scholar 

  2. Gilad Bracha and William Cook. Mixin-based inheritance. In Proceedings OOP-SLA/ECOOP’ 90, ACM SIGPLAN Notices, pages 303–311, October 1990. Published as Proceedings OOPSLA/ECOOP’ 90, ACM SIGPLAN Notices, volume 25, number 10.

    Google Scholar 

  3. Gilad Bracha and Gary Lindstrom. Modularity meets inheritance. In Proceedings of the IEEE Computer Society International Conference on Computer Languages, pages 282–290, Washington, DC, April 1992. IEEE Computer Society.

    Google Scholar 

  4. Søren Brandt and Jörgen Lindskov Knudsen. Generalising the BETA type system. In P. Cointe, editor, Proceedings ECOOP’ 96, LNCS 1098, pages 421–448, Linz, Austria, July 1996. Springer-Verlag.

    Google Scholar 

  5. Kim B. Bruce, Martin Odersky, and Philip Wadler. A statically safe alternative to virtual types. In Proceedings ECOOP’ 98, LNCS 1445, pages 523–549, Brussels, July 1998. Springer-Verlag.

    Google Scholar 

  6. R. Ducournau, M. Habib, M. Huchard, and M.L. Mugnier. Monotonic conflict resolution mechanisms for inheritance. In Proceedings OOPSLA’92, volume 27, no 10, pages 16–24, Vancouver, USA, October 1992. ACM SIGPLAN Notices.

    Google Scholar 

  7. R. Ducournau, M. Habib, and M.L. Mugnier M. Huchard. Proposal for a Monotonic Multiple Inheritance Linearization, volume 29, no 10, pages 164–175. ACM SIGPLAN Notices, Oregon, USA, October 1994.

    Google Scholar 

  8. Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen.Classes and mixins. In Conference Record of POPL’ 98: The 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 171–183, San Diego, California, 19–21 January 1998.

    Google Scholar 

  9. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns-Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA, USA, 1995.

    Google Scholar 

  10. William Harrison and Harold Ossher. Subject-oriented programming (A critique of pure objects). In Andreas Paepcke, editor, OOPSLA 1993 Conference Proceedings, volume 28/10 of ACM SIGPLAN Notices, pages 411–428. ACM Press, October 1993.

    Google Scholar 

  11. Atsushi Igarashi and Benjamin C. Pierce. Foundations for virtual types. In 6th Workshop on Foundations of Object-Oriented Languages (FOOL), at http://www.cs.williams.edu/~kim/FOOL/sched6.html, January 1999.

  12. Sonya E. Keene. Object-Oriented Programming in Common Lisp. Addison-Wesley, Reading, MA, USA, 1989.

    MATH  Google Scholar 

  13. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Mehmet Aksit and Satoshi Matsuoka, editors, ECOOP’97 Object-Oriented Programming, 11th European Conference, volume 1241 of Lecture Notes in Computer Science, pages 220–242, Jyväskylä, Finland, 9–June 1997. Springer.

    Google Scholar 

  14. J. Lindskov Knudsen, M. Löfgren, O. Lehrmann Madsen, and B. Magnusson. Object-Oriented Environments — The Mjlner Approach. Prentice Hall, Hertfordshire, GB, 1993.

    Google Scholar 

  15. Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Mïller-Pedersen, and Kristen Nygaard. Classification of actions, or inheritance also for methods. In J. Bëzivin, J-M. Hullot, P. Cointe, and H. Lieberman, editors, Proceedings ECOOP’87, LNCS 276, pages 98–107, Paris, France, June 15–17 1987. Springer-Verlag.

    Google Scholar 

  16. K. J. Lieberherr, I. Silva-Lepe, and C. Xaio. Adaptive object-oriented programming using graph-based customizations. Communications of the ACM, 37(5):94–101, May 1994.

    Article  Google Scholar 

  17. Karl J. Lieberherr and Cun Xiao. Minimizing dependency on class structures with adaptive programs. Lecture Notes in Computer Science, 742:424–441, 1993.

    Google Scholar 

  18. Ole Lehrmann Madsen and Birger Möller-Pedersen. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings OOPSLA’ 89, ACM SIGPLAN Notices, pages 397–406, October 1989. Published as Proceedings OOPSLA’ 89, ACM SIGPLAN Notices, volume 24,number 10.

    Article  Google Scholar 

  19. Ole Lehrmann Madsen, Birger Möller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, Reading, MA, USA, 1993.

    Google Scholar 

  20. Mira Mezini and Karl Lieberherr. Adaptive plug-and-play components for evolutionary software development. ACM SIGPLAN Notices, 33(10):97–116, October 1998.

    Article  Google Scholar 

  21. The Aspect J project group. Aspectj home page. http://www.parc.xerox.com/spl/projects/aop/aspectj, March 1999.

  22. Eric S. Raymond. The Cathedral and the Bazaar. at http://www.tuxedo.org/~esr/writings/cathedral-bazaar/, 1998.

  23. Patrick Steyaert, Wim Codenie, Theo D’Hondt, Koen De Hondt, Carine Lucas, and Marc Van Limberghen. Nested Mixin-Methods in Agora. In Oscar M. Nierstrasz, editor, Proceedings of the 7th European Conference on Object-Oriented Programming, number 707 in Lecture Notes in Computer Science, pages 197–219. Springer-Verlag, 1993.

    Google Scholar 

  24. Kresten Krab Thorup. Genericity in Java with virtual types. In Proceedings ECOOP’ 97, LNCS 1241, pages 444–471, Jyväskylä, June 1997. Springer-Verlag.

    Google Scholar 

  25. Mads Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages (FOOL), at http://pauillac.inria.fr/~remy/fool/program.html, January 1998.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ernst, E. (1999). Propagating Class and Method Combination. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_4

Download citation

  • DOI: https://doi.org/10.1007/3-540-48743-3_4

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66156-6

  • Online ISBN: 978-3-540-48743-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics