skip to main content
10.1145/1509239.1509248acmconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
research-article

The art of the meta-aspect protocol

Published: 02 March 2009 Publication History

Abstract

Alternative semantics for aspect-oriented abstractions can be defined by language designers using extensible aspect compiler frameworks. However, application developers are prevented from tailoring the language semantics in an application-specific manner. To address this problem, we propose an architecture for aspect-oriented languages with an explicit meta-interface to language semantics. We demonstrate the benefits of such an architecture by presenting several scenarios in which aspect-oriented programs use the meta-interface of the language to tailor its semantics to a particular application execution context.

References

[1]
P. Avgustinov, T. Ekman, and J. Tibble. Modularity first: A Case for mixing AOP and Attribute Grammars. In AOSD, pages 25--35, 2008.
[2]
P. Avgustinov, J. Tibble, A. Christensen, L. Hendren, S. Kuzins, J. Lhoták, O. Lhoták, O. de Moor, D. Sereni, and G. Sittampalam. abc: An extensible AspectJ Compiler. In AOSD, pages 87--98, 2005.
[3]
L. Bergmans and M. Aksit. Composing Crosscutting Concerns using Composition Filters. Communications of the ACM, 44(10):51--57, 2001.
[4]
L. Bergmans and M. Aksit. Principles and Design Rationale of Composition Filters. Aspect-Oriented Software Development. Addison-Wesley, pages 0--32, 2004.
[5]
C. Bockisch, M. Haupt, M. Mezini, and K. Ostermann. Virtual Machine Support for Dynamic Join Points. In AOSD, pages 83--92, 2004.
[6]
C. Bockisch, M. Mezini, W. Havinga, L. Bergmans, and K. Gybels. Reference Model Implementation. Technical Report AOSD-Europe-TUD-8, Technische Universität Darmstadt, 2007.
[7]
J. Brichau, K. Mens, and K. De Volder. Building Composable Aspect-Specific Languages with Logic Metaprogramming. In GPCE, pages 110--127, 2002.
[8]
J. Brichau, M. Mezini, J. Noyé, W. Havinga, L. Bergmans, V. Gasiunas, C. Bockisch, J. Fabry, and T. D'Hondt. An Initial Metamodel for Aspect-Oriented Programming Languages. http://www.aosd-europe.net/deliverables/d39.pdf, 2006.
[9]
N. Cacho, T. Batista, and F. Fernandes. AspectLua--A Dynamic AOP Approach. Journal of Universal Computer Society, 11(7):1177--1197, 2005.
[10]
CaesarJ Homepage. http://caesarj.org/.
[11]
T. Dinkelaker and M. Mezini. Dynamically Linked Domain-Specific Extensions for Advice Languages. In Workshop on Domain-Specific Aspect Languages, 2008.
[12]
R. Douence, P. Fradet, and M. Südholt. A Framework for the Detection and Resolution of Aspect Interactions. In GPCE, pages 173--188, 2002.
[13]
M. Eaddy, A. Aho, W. Hu, P. McDonald, and J. Burger. Debugging Aspect-Enabled Programs. Symposium on Software Composition, pages 200--215, 2007.
[14]
M. Fayad, D. Schmidt, and R. Johnson. Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley, NY, USA, 1999.
[15]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of reusable Object-Oriented Software. Addison-Wesley Professional, 1995.
[16]
A. Goldberg and D. Robson. Smalltalk-80: the Language and its Implementation. Addison-Wesley, Boston, MA, USA, 1983.
[17]
J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification Second Edition. Addison-Wesley, Boston, Mass, 2000.
[18]
The Groovy Home Page. http://groovy.codehaus.org/.
[19]
W. Havinga, L. Bergmans, and M. Aksit. Prototyping and Composing Aspect Languages using an Aspect Interpreter Framework. In ECOOP, pages 180--206, 2008.
[20]
R. Hirschfeld. AspectS: AOP with Squeak. In OOPSLA Workshop on Advanced Separation of Concerns in OO Systems, 2001.
[21]
R. Hirschfeld. AspectS: Aspect--Oriented Programming with Squeak. In Netobjectdays (NODe), pages 216--232, 2003.
[22]
C. Kaewkasi and J. Gurd. Groovy AOP: A Dynamic AOP System for a JVM-based Language. In Workshop on Software Engineering Properties of Languages and Aspect Technologies, 2008.
[23]
D. O. Keck and P. J. Kuehn. The Feature and Service Interaction Problem in Telecommunications Systems: A Survey. IEEE Trans. Softw. Eng., 24(10):779--796, 1998.
[24]
G. Kiczales. Beyond the Black Box: Open Implementation. IEEE Software, 13(1):8--11, 1996.
[25]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An Overview of AspectJ. In ECOOP, pages 327--353, 2001.
[26]
G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin. Aspect-Oriented Programming. In ECOOP, pages 220--242, 1997.
[27]
G. Kiczales, J. d. Rivières, and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, 1991.
[28]
G. Kniesel. Detection and Resolution of Weaving Interactions. TAOSD: Dependencies and Interactions with Aspects, LNCS, 2007. Special Issue on Aspect Dependencies and Interactions, edited by R. Chitchyan.
[29]
S. Kojarski and D. Lorenz. AOP as a First Class Reflective Mechanism. In OOPSLA, pages 216--217, 2004.
[30]
S. Kojarski and D. Lorenz. Modeling Aspect Mechanisms: A top-down Approach. In ICSE, pages 212--221, 2006.
[31]
S. Kojarski and D. Lorenz. Awesome: an Aspect Co-Weaving System for Composing Multiple Aspect-Oriented Extensions. In OOPSLA, pages 515--534, 2007.
[32]
D. König and A. Glover. Groovy in Action. Manning, 2007.
[33]
D. Lorenz and S. Kojarski. Reflective Mechanisms in AOP Languages. Technical report, Northeastern, 2003.
[34]
D. Lorenz and S. Kojarski. Understanding Aspect Interactions, Co-Advising and Foreign Advising. In ECOOP Workshop Aspects, Dependencies and Interactions, Berlin, Germany, 2007.
[35]
H. Masuhara, Y. Endoh, and A. Yonezawa. A Fine-Grained Join Point Model for More Reusable Aspects. LNCS Programming Languages and Systems, 4279:131, 2006.
[36]
H. Masuhara, G. Kiczales, and C. Dutchyn. A Compilation and Optimization Model for Aspect-Oriented Programs. In CC 2003, volume 2622 of LNCS, pages 46--60, 2003.
[37]
J. Pang and L. Blair. An Adaptive Run Time Manager for the Dynamic Integration and Interaction Resolution of Features. In Distributed Computing Systems, pages 445--450, 2002.
[38]
J. Pang and L. Blair. Separating Interaction Concerns from Distributed Feature Components. Electronic Notes in Theoretical Computer Science, 82(5):70--84, 2003.
[39]
The PROSE Homepage. http://prose.ethz.ch/Wiki.jsp.
[40]
A. Rashid. Aspects and Evolution: The Case for Versioned Types and Meta-Aspect Protocols. In Workshop on Reflection, AOP, and Meta-Data for Software Evolution, 2006.
[41]
F. Sanen, E. Truyen, and W. Joosen. Modeling Context-Dependent Aspect Interference using Default Logics. In ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, 2008.
[42]
The Steamloom Homepage. http://www.st.informatik.tu-darmstadt.de/Steamloom.
[43]
G. Sullivan. Aspect-Oriented Programming using Reflection and Metaobject Protocols. Communications of the ACM, 44(10):95--97, 2001.
[44]
D. Suvée, W. Vanderperren, and V. Jonckers. JAsCo: An Aspect-Oriented Approach tailored for Component based Software Development. In AOSD, pages 21--29, 2003.
[45]
E. Tanter. From Metaobject Protocols to Versatile Kernels for Aspect-Oriented Programming. PhD thesis, Université de Nantes, France, 2004.
[46]
E. Tanter. Aspects of Composition in the Reflex AOP Kernel. LNCS, 4089:98, 2006.
[47]
N. Ubayashi, H. Masuhara, and T. Tamai. An AOP Implementation Framework for Extending Join Point Models. In ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution, 2004.
[48]
D. Wampler. Aquarium: AOP in Ruby. In AOSD, 2008.

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)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2013)Method Shells: Avoiding Conflicts on Destructive Class Extensions by Implicit Context SwitchesSoftware Composition10.1007/978-3-642-39614-4_4(49-64)Online publication date: 2013
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AOSD '09: Proceedings of the 8th ACM international conference on Aspect-oriented software development
March 2009
278 pages
ISBN:9781605584423
DOI:10.1145/1509239
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: 02 March 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. aspect interactions
  2. aspect-oriented programming
  3. debugging
  4. meta-object protocols
  5. open implementation

Qualifiers

  • Research-article

Conference

AOSD '09

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 22 Feb 2025

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)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2013)Method Shells: Avoiding Conflicts on Destructive Class Extensions by Implicit Context SwitchesSoftware Composition10.1007/978-3-642-39614-4_4(49-64)Online publication date: 2013
  • (2012)An object-oriented framework for aspect-oriented languagesProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162075(215-226)Online publication date: 25-Mar-2012
  • (2012)A domain specific aspect language for run-time inspectionProceedings of the seventh workshop on Domain-Specific Aspect Languages10.1145/2162037.2162048(33-36)Online publication date: 27-Mar-2012
  • (2012)Adaptations interferences detection and resolution with graph-transformation approach2012 6th International Conference on Sciences of Electronics, Technologies of Information and Telecommunications (SETIT)10.1109/SETIT.2012.6481886(36-43)Online publication date: Mar-2012
  • (2012)Detection of Interferences in Aspect-Oriented Programs Using Executable AssertionsProceedings of the 2012 IEEE 23rd International Symposium on Software Reliability Engineering Workshops10.1109/ISSREW.2012.34(165-170)Online publication date: 27-Nov-2012
  • (2012)A Symmetric Compositional Approach for Adaptive Ubiquitous SystemsProceedings of the 2012 IEEE 15th International Conference on Computational Science and Engineering10.1109/ICCSE.2012.38(223-228)Online publication date: 5-Dec-2012
  • (2011)Detecting interferences in aspect oriented programsProceedings of the 13th European Workshop on Dependable Computing10.1145/1978582.1978602(93-98)Online publication date: 11-May-2011
  • (2011)XML Based Robust Aspect Composition in Web ServiceInformatics Engineering and Information Science10.1007/978-3-642-25327-0_49(575-588)Online publication date: 2011
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media