Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1094811.1094831acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Pluggable AOP: designing aspect mechanisms for third-party composition

Published: 12 October 2005 Publication History

Abstract

Studies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the need for AOP to support the integration and use of multiple domain-specific aspect extensions together. We study the more general case of integrating a base language with a set of third-party aspect extensions for that language. We present a general mixin-based semantic framework for implementing dynamic aspect extensions in such a way that multiple, independently developed aspect mechanisms can be subject to third-party composition and work collaboratively. Principles governing the design of a collaborative aspect mechanism are aspectual effect exposure and implementation hiding.

References

[1]
K. Arnold and J. Gosling. The Java Programming Language. The Java Series. Addison--Wesley Publishing Company, 1996.]]
[2]
P. Avgustinov, A. S. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, G. Sittampalam, and J. Tibble. abc: An extensible AspectJ compiler. In Tarr {42}, pages 87--98.]]
[3]
D. Balzarotti and M. Monga. Using program slicing to analyze aspect-oriented composition. In C. Clifton, R. Lämmel, and G. T. Leavens, editors, AOSD 2004 Workshop on Foundations of Aspect-Oriented Languages, pages 25--29, Lancaster, UK, Mar. 23 2004. Technical Report 04-04, Department of Computer Science, Iowa State University Ames, Iowa, USA, Iowa State University.]]
[4]
J. Bonér. What are the key issues for commercial AOP use: how does AspectWerkz address them? In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development, pages 5--6, Mancaster, UK, 2004. AOSD 2004, ACM Press.]]
[5]
J. Bonér. Invited talk: AspectWerkz 2 and the road to AspectJ 5. In Invited Industry Talks at AOSD 2005, Chicago, Illinois, USA, Mar. 14-18 2005. AOSD 2005.]]
[6]
G. Bracha and W. Cook. Mixin-based inheritance. In Proceedings of ECOOP$/$Object-Oriented Programming Systems, Languages, and Applications, pages 303--311, Ottawa, Canada, Oct. 21-25 1990. OOPSLA'90, ACM SIGPLAN Notices 25(10) Oct. 1990.]]
[7]
L. Cardelli, editor. Proceedings of the 17th European Conference on Object-Oriented Programming, number 2743 in Lecture Notes in Computer Science, Darmstadt, Germany, July21-25 2003. ECOOP 2003, Springer Verlag.]]
[8]
C. Clifton, G. T. Leavens, and M. Wand. Formal definition of the parameterized aspect calculus. Technical Report TR #03-12, Dept. of Computer Science, Iowa State University, Oct. 2003.]]
[9]
C. Clifton, G. T. Leavens, and M. Wand. Parameterized aspect calculus: A core calculus for the direct study of aspect-oriented languages. Technical Report TR #03-13, Dept. of Computer Science, Iowa State University, Nov. 2003.]]
[10]
A. Colyer. AspectJ. In Filman et al. {16}, pages 123--143.]]
[11]
W. R. Cook. A Denotational Semantics of Inheritance. PhD thesis, Brown University, May 15 1989.]]
[12]
C. Courbis and A. Finkelstein. Towards aspect weaving applications. In Proceedings of the 27th International Conference on Software Engineering, St. Louis, Missouri, USA, May 15-21 2005. ICSE 2005, ACM Press.]]
[13]
K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, 1st edition, 2000.]]
[14]
M. Felleisen and D. Friedman. Control operators, the secd machine, and the lambda-calculus. Formal Descriptions of Programming Concepts III, pages 193--217, 1986.]]
[15]
M. Felleisen and D. Friedman. A reduction semantics for imperative higher-order languages. In Proceedings of the Parallel Architectures and Languages Europe 1987, pages 206--223, 1987.]]
[16]
R. E. Filman, T. Elrad, S. Clarke, and M. Aksit, editors. Aspect-Oriented Software Development. Addison-Wesley, Boston, 2005.]]
[17]
P. Fradet and M. Südholt. AOP: towards a generic framework using program transformation and analysis. In S. Demeyer and J. Bosch, editors, Object-Oriented Technology. ECOOP'98 Workshop Reader, number 1543 in Lecture Notes in Computer Science, pages 394--397. Workshop Proceedings, Brussels, Belgium, Springer Verlag, July 20-24 1998. Extended version http://www.irisa.fr/lande/fradet/PDFs/AOP98-long.pdf.]]
[18]
D. P. Friedman, M. Wand, and C. T. Haynes. Essentials of Programming Languages. MIT Press, Cambridge, MA, second edition, 2001.]]
[19]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Professional Computing. Addison-Wesley, 1995.]]
[20]
S. Herrmann. Object teams: Improving modularity for crosscutting collaborations. In M. Aksit and M. Mezini, editors, Proceedings of the 3rd International Conference Net.ObjectDays, NODe 2002, Erfurt, Germany, Oct. 7-10 2002.]]
[21]
J. Hugunin. The next steps for aspect-oriented programming languages (in Java). In NSF Workshop on New Visions for Software Design & Productivity: Research & Applications, Vanderbilt University, Nashville, TN, Dec. 13-14 2001. National Coordination Office for Information Technology Research and Development (NCO/IT R&D). White Paper.]]
[22]
IBM's concern manipulation environment, 2004. http://www.research.ibm.com/cme.]]
[23]
Proceedings of the 7th ACM SIGPLAN International Conference on Functional Programming, Uppsala, Sweden, Aug. 2003. ACM Press.]]
[24]
R. Jagadeesan, A. Jeffrey, and J. Riely. An untyped calculus for aspect oriented programs. In Cardelli {7}, pages 54--73.]]
[25]
Jboss aspect oriented programming, 2005. http://aop.jboss.org.]]
[26]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In J. L. Knudsen, editor, Proceedings of the 15th European Conference on Object-Oriented Programming, number 2072 in Lecture Notes in Computer Science, pages 327--353, Budapest, Hungary, June 18-22 2001. ECOOP 2001, Springer Verlag.]]
[27]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming, number 1241 in Lecture Notes in Computer Science, pages 220--242, Jyväskylä, Finland, June 9-13 1997. ECOOP'97, Springer Verlag.]]
[28]
R. Lämmel. A semantical approach to method-call interception. In Proceedings of the 1st International Conference on Aspect-Oriented Software Development, pages 41--55, Enschede, The Netherlands, Apr. 2002. AOSD 2002, ACM Press.]]
[29]
R. Lämmel. Adding Superimposition To a Language Semantics (Extended Abstract). In C. Clifton and G. T. Leavens, editors, AOSD 2003 Workshop on Foundations of Aspect-Oriented Languages, Boston, Massachusetts, Mar. 18 2003. Technical Report, Department of Computer Science, Iowa State University Ames, Iowa, USA, Iowa State University.]]
[30]
C. V. Lopes. D: A Language Framework for Distributed Programming. PhD thesis, Northeastern University, 1997.]]
[31]
C. V. Lopes, P. Dourish, D. H. Lorenz, and K. Lieberherr. Beyond AOP: Toward Naturalistic Programming. ACM SIGPLAN Notices, 38(12):34--43, Dec. 2003. OOPSLA'03 Special Track on Onward! Seeking New Paradigms & New Thinking.]]
[32]
P. D. Mosses. Foundations of modular sos. In MFCS '99: Proceedings of the 24th International Symposium on Mathematical Foundations of Computer Science, pages 70--80. Springer-Verlag, 1999.]]
[33]
G. C. Murphy, R. J. Walker, and E. L. A. Baniassad. Evaluating emerging software development technologies: Lessons learned from assessing aspect-oriented programming. IEEE Transactions on Software Engineering, 25(4):438--455, 1999.]]
[34]
G. C. Murphy, R. J. Walker, E. L. A. Baniassad, M. P. Robillard, A. Lai, and M. A. Kersten. Does aspect-oriented programming work? Comm. ACM, 44(10):75--77, Oct. 2001.]]
[35]
K. Ostermann. Implementing reusable collaborations with delegation layers. In D. H. Lorenz and V. C. Sreedhar, editors, Proceedings of the First OOPSLA Workshop on Language Mechanisms for Programming Software Components, pages 9--14, Tampa Bay, Florida, Oct. 15 2001. Technical Report NU-CCS-01-06, College of Computer Science, Northeastern University, Boston, MA 02115.]]
[36]
K. Ostermann. Dynamically composable collaborations with delegation layers. In Cardelli {7}, pages 89--110.]]
[37]
J. A. Rees, W. D. Clinger, H. Abelson, N. I. Adams IV, D. H. Bartley, G. Brooks, R. K. Dybvig, D. P. Friedman, R. Halstead, C. Hanson, C. T. Haynes, E. Kohlbecker, D. Oxley, K. M. Pitman, G. J. Rozas, G. J. Sussman, and M. Wand. Revised3 report on the algorithmic language Scheme. SIGPLAN Notices, 21(12):37--79, Dec. 1986.]]
[38]
M. Shaw and D. Garlan. Software Architecture, Perspectives on an Emerging Discipline. Prentice-Hall, 1996.]]
[39]
M. Shonle, K. Lieberherr, and A. Shah. XAspects: An extensible system for domain specific aspect languages. In Companion to the 18thAnnual Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 28--37, Anaheim, California, 2003. ACM Press.]]
[40]
Y. Smaragdakis and D. Batory. Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs. ACM Trans. Softw. Eng. Methodol., 11(2):215--255, 2002.]]
[41]
C. Szyperski. Component Software, Beyond Object-Oriented Programming. Addison-Wesley, 2nd edition, 2002. With Dominik Gruntz and Stephan Murer.]]
[42]
P. Tarr, editor. Proceedings of the 4th International Conference on Aspect-Oriented Software Development, Chicago, Illinois, USA, Mar. 14-18 2005. AOSD 2005, ACM Press.]]
[43]
D. Thomas. Keynote: Transitioning AOSD from research park to main street. In Tarr {42}, page 2.]]
[44]
W. Vanderperren, D. Suváe, B. Verheecke, M. A. Cibrán, and V. Jonckers. Adaptive programming in JAsCo. In Tarr {42}.]]
[45]
D. Walker, S. Zdancewic, and J. Ligatti. A theory of aspects. In ICFP 2003 {23}, pages 127--139.]]
[46]
R. J. Walker, E. L. A. Baniassad, and G. Murphy. Assessing aspect-oriented programming and design. In C. Lopes, G. Kiczales, B. Tekinerdogan, W. De Meuter, and M. Meijers, editors, Workshop on Aspect Oriented Programming (ECOOP 1998), June 1998.]]
[47]
R. J. Walker, E. L. A. Baniassad, and G. C. Murphy. An initial assessment of aspect-oriented programming. In Proc. 21st Int'l Conf. Software Engineering (ICSE '99), pages 120--130, 1999.]]
[48]
R. J. Walker, E. L. A. Baniassad, and G. C. Murphy. An initial assessment of aspect-oriented programming. In Filman et al. {16}, pages 531--556.]]
[49]
M. Wand. Understanding aspects (extended abstract). In ICFP 2003 {23}. Invited talk.]]
[50]
M. Wand, G. Kiczales, and C. Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. ACM Trans. Prog. Lang. Syst., 26(5):890---910, Sept. 2004.]]
[51]
J. C. Wichman. ComposeJ: The development of a preprocessor to facilitate composition filters in the Java language. Master's thesis, Department of Computer Science, University of Twente, Enschede, the Netherlands, Dec. 1999.]]

Cited By

View all
  • (2016)Toward practical language oriented modularityCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892678(94-98)Online publication date: 14-Mar-2016
  • (2015)Demanding first-class equality for domain specific aspect languagesCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2735388(35-38)Online publication date: 16-Mar-2015
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '05: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2005
562 pages
ISBN:1595930310
DOI:10.1145/1094811
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 40, Issue 10
    Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applications
    October 2005
    531 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1103845
    Issue’s Table of Contents
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 October 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. AOP
  2. AOP semantics
  3. AOSD
  4. AspectJ
  5. AspectWerkz
  6. CBSE
  7. COOL
  8. aspect extension
  9. aspect mechanism
  10. aspectual effect
  11. collaboration
  12. domain-specific aspect language
  13. mixin
  14. reuse
  15. software components
  16. third-party composition

Qualifiers

  • Article

Conference

OOPSLA05
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Toward practical language oriented modularityCompanion Proceedings of the 15th International Conference on Modularity10.1145/2892664.2892678(94-98)Online publication date: 14-Mar-2016
  • (2015)Demanding first-class equality for domain specific aspect languagesCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2735388(35-38)Online publication date: 16-Mar-2015
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2012)A debug interface for debugging multiple domain specific aspect languagesProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162056(47-58)Online publication date: 25-Mar-2012
  • (2012)SPECTACKLEProceedings of the seventh workshop on Domain-Specific Aspect Languages10.1145/2162037.2162042(9-14)Online publication date: 27-Mar-2012
  • (2012)Language-oriented modularity through awesome DSALsProceedings of the seventh workshop on Domain-Specific Aspect Languages10.1145/2162037.2162039(1-2)Online publication date: 27-Mar-2012
  • (2011)Toward debugging programs written in multiple domain specific aspect languagesProceedings of the sixth annual workshop on Domain-specific aspect languages10.1145/1960496.1960499(5-8)Online publication date: 21-Mar-2011
  • (2010)An extensible framework for middleware design based on concurrent event-based AOPProceedings of the 9th International Workshop on Adaptive and Reflective Middleware10.1145/1891701.1891705(26-31)Online publication date: 30-Nov-2010
  • (2009)Infrastructure for domain-specific aspect languages: the ReLAx case studyIET Software10.1049/iet-sen.2007.01203:3(238)Online publication date: 2009
  • (2007)AwesomeACM SIGPLAN Notices10.1145/1297105.129706542:10(515-534)Online publication date: 21-Oct-2007
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media