skip to main content
10.1145/1062455.1062483acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Classpects: unifying aspect- and object-oriented language design

Published:15 May 2005Publication History

ABSTRACT

The contribution of this work is the design, implementation, and early evaluation of a programming language that unifies classes and aspects. We call our new module construct the classpect. We make three basic claims. First, we can realize a unified design without significantly compromising the expressiveness of current aspect languages. Second, such a design improves the conceptual integrity of the programming model. Third, it significantly improves the compositionality of aspect modules, expanding the program design space from the two-layered model of AspectJ-like languages to include hierarchical structures. To support these claims, we present the design and implementation of Eos-U, an AspectJ-like language based on C# that supports classpects as the basic unit of modularity. We show that Eos-U supports layered designs in which classpects separate integration concerns flexibly at multiple levels of composition. The underpinnings of our design include support for aspect instantiation under program control, instance-level advising, advising as a general alternative to object-oriented method invocation and overriding, and the provision of a separate join-point-method binding construct.

References

  1. AspectJ : http://eclipse.org/aspectj]]Google ScholarGoogle Scholar
  2. AspectC++, http://www.aspectc.org.]]Google ScholarGoogle Scholar
  3. AspectR: "Simple Aspect Oriented Programming in Ruby," http://aspectr.sourceforge.net/.]]Google ScholarGoogle Scholar
  4. AspectWerkz: http://aspectwerkz.codehaus.org/]]Google ScholarGoogle Scholar
  5. Aldrich, J., "Open Modules: A Proposal for Modular Reasoning in Aspect-Oriented Programming.", In the Proceedings of the Workshop on Foundations of Aspect Languages (FOAL'04), March 2004.]]Google ScholarGoogle Scholar
  6. Brooks, F. P. Jr., "The Mythical Man-Month: Essays on Software Engineering", Addison-Wesley, 1975.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Dijkstra, E. W., "The Humble Programmer", Communications of the ACM, Vol 15, No: 10, pp. 859--866, 1972.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Eos: http://www.cs.virginia.edu/~eos]]Google ScholarGoogle Scholar
  9. Garlan, D., and Notkin, D., "Formalizing Design Spaces: Implicit Invocation Mechanisms". VDM '91: Formal Software Development Methods, Oct. 1991.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Filman, R. E., and Friedman. D. P., "Aspect oriented programming is quantification and obliviousness", In OOPSLA 2000 Workshop on Advanced Separation of Concerns, Minneapolis, MN, Oct. 2000.]]Google ScholarGoogle Scholar
  11. Harrison W., Ossher H., and Tarr P., "Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition", IBM Research Report RC22685 (W0212-147) December 30, 2002.]]Google ScholarGoogle Scholar
  12. Hirschfeld, R., "AspectS -- Aspects in Squeak", ECOOP'2002 Workshop on Generative Programming, Jun 2002.]]Google ScholarGoogle Scholar
  13. Kiczales, G., "Personal Communication with Kevin Sullivan", Jan 2005.]]Google ScholarGoogle Scholar
  14. Kiczales, G., "The fun has just begun", Key note address of 2 nd International Conference on Aspect-Oriented Software Development, Boston, MA, 2003.]]Google ScholarGoogle Scholar
  15. Kiczales, G.., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. and Irwin, J., "Aspect-oriented programming," Proceedings of the European conference on object-oriented programming (ECOOP), Springer-Verlang, Lecture Notes on Computer Science 1241, June 1997.]]Google ScholarGoogle Scholar
  16. Laddad, R., "AspectJ in Action: Practical Aspect-Oriented Programming", Manning publications, 2004.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Lamping, J., "The role of the base in aspect-oriented programming", First Workshop on Multi-dimensional separation of concerns in object-oriented systems (at OOPSLA '99).]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. MacLennan, B. J., "Principles of Programming Languages: Design, Evaluation, and Implementation", 3rd Edition, Oxford University Press, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Mezini, M., and Ostermann, K., "Conquering Aspects with Caesar", Proceedings of the 2 nd international conference on Aspect-oriented software development (AOSD 03), Mar 2003, Boston, MA, USA, pp. 90--100.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C#: http://msdn.microsoft.com/net/ecma/.]]Google ScholarGoogle Scholar
  21. .Net Framework: http://msdn.microsoft.com]]Google ScholarGoogle Scholar
  22. Parnas, D. L., "On the Criteria to be Used in Decomposing Systems into Modules", Communications of the ACM, 15(12):1053--1058, Dec 1972.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Rajan, H. and Sullivan, K., "Eos: Instance-Level Aspects for Integrated System Design", Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering (ESEC/FSE 03), Helsinki, Finland, Sep 2003, pp 291--306.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Rajan, H. and Sullivan, K., "Need for Instance Level Aspects with Rich Pointcut Language", Workshop on Software Engineering Properties of Languages for Aspect Technologies (SPLAT) held in conjunction with 2 nd international conference on Aspect-oriented software development, Boston, MA, USA, Mar 2003.]]Google ScholarGoogle Scholar
  25. Sakurai, K., Masuhara H., Ubayashi N., Matsuura, S., Komiya S., "Association Aspects", Proceedings of the 3rd international conference on Aspect-oriented software development (AOSD 04), Lancaster, UK, Mar 2004, pp. 16--25.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Sullivan, K., "Mediators: Easing the Design and Evolution of Integrated Systems", Ph.D. dissertation, University of Washington, 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Sullivan, K., Gu, L., Cai, Y., "Non-modularity in Aspect-Oriented Languages: Integration as a Crosscutting Concern for AspectJ", Proceedings of the 1st international conference on Aspect-oriented software development (AOSD 02), Enschede, The Netherlands, Apr 2002, pp. 19--26.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Sullivan, K. and Notkin, D., "Reconciling environment integration and software evolution", ACM Transactions on Software Engineering and Methodology 1, 3, July 1992, pp. 229--268.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Sullivan, K., Kalet, I., Notkin, D., "Evaluating the mediator method: Prism as a case study", IEEE Transactions on Software Engineering, Vol. 22, No. 8, August 1996. pp. 563--579.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Tarr, P. and Ossher, H., "Multi Dimensional Separation of Concerns using Hyperspaces", IBM Research Report 21452, April, 1999.]]Google ScholarGoogle Scholar
  31. Tarr, P. and Ossher, H., "Hyper/J™ User and Installation Manual", IBM Corporation.]]Google ScholarGoogle Scholar

Index Terms

  1. Classpects: unifying aspect- and object-oriented language design

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              ICSE '05: Proceedings of the 27th international conference on Software engineering
              May 2005
              754 pages
              ISBN:1581139632
              DOI:10.1145/1062455

              Copyright © 2005 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 15 May 2005

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              Overall Acceptance Rate276of1,856submissions,15%

              Upcoming Conference

              ICSE 2025

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader