Skip to main content

Semantics-Based Composition of Class Hierarchies

  • Conference paper
  • First Online:
ECOOP 2002 — Object-Oriented Programming (ECOOP 2002)

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

Included in the following conference series:

Abstract

Class hierarchy composition aims at constructing software systems by composing a set of class hierarchies into an executable system. Current composition algorithms cannot provide semantic guarantees. We present a composition algorithm, together with an interference criterion and its correctness proof, which guarantees that behavior of the original hierarchies is preserved for interference-free compositions. In case of interference, an impact analysis can determine the consequences of integration. The method is based on existing program analysis technology and is illustrated by various examples.

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 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.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. L. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen, May 1994. DIKU report 94/19.

    Google Scholar 

  2. David Binkley, Susan Horwitz, and Thomas Reps. Program integration for languages with procedure calls. ACM Transactions on Software Engineering and Methodology, pages 3–35, January 1995.

    Google Scholar 

  3. B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, 1990.

    Google Scholar 

  4. Erik Ernst. Propagating class and method combination. In Proc. European Conference on Object-Oriented programming (ECOOP99), pages 67–91, Lisboa, 1999.

    Google Scholar 

  5. William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 411–428, 1993.

    Google Scholar 

  6. Nevin Heintze and Oliver Tardieu. Ultra-fast alias analysis using CLA. In Proc. ACM SIGPLAN Symposium on Programming Language Design and Implementation (PLDI01), pages 254–263, Snowbird, Utah, 2001.

    Google Scholar 

  7. Atshushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In Proc. SIGPLAN/ Conference an Onject-Oriented Programmin, Systems, Languages and Applications (OOPSLA’ 99), pages 132–146. ACM, November 1999.

    Google Scholar 

  8. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In Proc. 15th European Conf. on Object-Oriented Programming (ECOOP’01), Budapest, Hungary, June 2001.

    Google Scholar 

  9. Michelle L. Lee. Change Impact Analysis of Object-Oriented Software. PhD thesis, George Mason University, 1998.

    Google Scholar 

  10. Michelle Lee and A. Jefferson Offutt. Algorithmic analysis of the impact of changes to object-oriented software. In IEEE International Conference on Software Maintenance, pages 171–184, Monterey, CA, November 1996.

    Google Scholar 

  11. Donglin Liang, Maikel Pennings, and Mary Jean Harrold. Extending and evaluating flow-insensitive and context-insensitive points-to analyses for Java. In Proc. ACM SIGPLAN/SIGSOFT Workshop on on Program Analysis for Software Tools and Engineering (PASTE’01), pages 73–79, Snowbird, Utah, 2001.

    Google Scholar 

  12. Oscar Nierstrasz and Dennis Tsichritzis (ed.). Object-Oriented Software Composition. Prentice Hall, 1995.

    Google Scholar 

  13. Tobias Nipkow and David von Oheimb. Javalight is type safe-definitely. In Proc. SIGPLAN/SIGACT Symposium on Principles of Program Languages (POPL’98), pages 161–170. ACM, January 1998.

    Google Scholar 

  14. Atanas Rountev, Ana Milanova, and Barbara G. Ryder. Points-to analysis for Java using annotated constraints. In Proc. ACM SIGPLAN Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’01), Tampa, FL, 2001.

    Google Scholar 

  15. Atanas Rountev, Barbara G. Ryder, and William Landi. Data-flow analysis of program fragments. In Proceedings of Symposium on the Foundations of Software Engineering (FSE 1999), pages 235–252, Toulouse, France, 1999.

    Google Scholar 

  16. Barbara G. Ryder and Frank Tip. Change impact analysis for object-oriented programs. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE’01), pages 46–53, Snowbird, UT, June 2001.

    Google Scholar 

  17. Gregor Snelting and Frank Tip. Reengineering class hierarchies using concept analysis. In Proc. ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 99–110, Orlando, FL, November 1998.

    Google Scholar 

  18. G. Snelting and F. Tip. Understanding class hierarchies using concept analysis. ACM Trans. on Programming Languages and Systems, pages 540–582, May 2000.

    Google Scholar 

  19. Peri Tarr, Harold Ossher, William Harrison, and Stanley M. Sutton, Jr. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings of the 1999 International Conference on Software Engineering, pages 107–119. IEEE Computer Society Press / ACM Press, May 1999.

    Google Scholar 

  20. Krishnaprasad Thirunarayan, Günter Kniesel, and Haripriyan Hampapuram. Simulating multiple inheritance and generics in Java. Computer Languages, 25:189–210, 1999.

    Article  MATH  Google Scholar 

  21. Frank Tip and Jens Palsberg. Scalable propagation-based call graph construction algorithms. In Proc. ACM SIGPLAN Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’00), pages 281–293, Minneapolis, MN, 2000. SIGPLAN Notices 35(10).

    Google Scholar 

  22. Mitchell Wand, Gregor Kiczales, and Christopher Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. October 2001.

    Google Scholar 

  23. Andreas Zeller. Yesterday my program worked. Today, it does not. Why? In Proc. of the 7th European Software Engineering Conf./7th ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC/FSE’99), pages 253–267, Toulouse, France, 1999.

    Google Scholar 

  24. Communications of the ACM. 44(10), October 2001. Special issue on Aspect-Oriented Programming.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Snelting, G., Tip, F. (2002). Semantics-Based Composition of Class Hierarchies. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_24

Download citation

  • DOI: https://doi.org/10.1007/3-540-47993-7_24

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43759-8

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics