Aspects of Composition in the Reflex AOP Kernel

  • Éric Tanter
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4089)


Aspect composition is a challenging and multi-faceted issue, generally under-supported by current AOP languages and frameworks. This paper presents the composition support provided in Reflex, a versatile kernel for multi-language AOP in Java. The core of Reflex is based on a model of partial reflection whose central abstractions are links: bindings between a (point)cut and an action. Reflex supports the definition of aspect languages through the mapping of aspects to links. We overview the wide range of features for link composition in Reflex—which includes extensible operators for ordering and nesting of links, and control over the visibility of changes made by structural aspects—, illustrating how they can be used to implement various scenarios of aspect composition.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Akşit, M.: Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003). ACM Press, Boston (2003)Google Scholar
  2. 2.
    Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487. Springer, Heidelberg (2002)Google Scholar
  3. 3.
    Bracha, G., Ungar, D.: Mirrors: Design principles for meta-level facilities of object-oriented programming languages. In: OOPSLA 2004 [24], pp. 331–344 (2004); ACM SIGPLAN Notices 39(11)Google Scholar
  4. 4.
    Bravenboer, M., Visser, E.: Concrete syntax for objects. In: OOPSLA 2004 [24] (2004); ACM SIGPLAN Notices 39(11)Google Scholar
  5. 5.
    Brichau, J., Mens, K., De Volder, K.: Building composable aspect-specific languages with logic metaprogramming. In: Batory, et al. (ed.) [2], pp. 110–127Google Scholar
  6. 6.
    Bussard, L., Carver, L., Ernst, E., Jung, M., Robillard, M., Speck, A.: Safe aspect composition. In: Malenfant, J., Moisan, S., Moreira, A.M.D. (eds.) ECOOP 2000 Workshops. LNCS, vol. 1964, pp. 205–210. Springer, Heidelberg (2000)Google Scholar
  7. 7.
    Chiba, S.: Load-time structural reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 313–336. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  8. 8.
    Chiba, S., Kiczales, G., Lamping, J.: Avoiding confusion in metacircularity: The meta-helix. In: Futatsugi, K., Matsuoka, S. (eds.) ISOTAS 1996. LNCS, vol. 1049, pp. 157–172. Springer, Heidelberg (1996)Google Scholar
  9. 9.
    De Volder, K., D’Hondt, T.: Aspect-oriented logic meta-programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 250–272. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  10. 10.
    Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory et al. (ed.) [2], pp. 173–188Google Scholar
  11. 11.
    Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr (ed.) [22], pp. 141–150Google Scholar
  12. 12.
    Douence, R., Fradet, P., Südholt, M.: Trace-based aspects. In: Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.) Aspect-Oriented Software Development, pp. 201–217. Addison-Wesley, Boston (2005)Google Scholar
  13. 13.
    Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 170–186. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  14. 14.
    Douence, R., Südholt, M.: A model and a tool for event-based aspect-oriented programming (EAOP). Technical Report 02/11/INFO, École des mines de Nantes, 2nd edition, French version published in the Proceedings of ”Langages et Modèles à Objets” (LMO 2003) (December 2002)Google Scholar
  15. 15.
    Durr, P., Staijen, T., Bergmans, L., Aksit, M.: Reasoning about semantic conflicts between aspects. In: 2nd European Interactive Workshop on Aspects in Software (EIWAS 2005), Brussels, Belgium (September 2005)Google Scholar
  16. 16.
    The EAOP tool homepage (2001),
  17. 17.
    Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming. Communications of the ACM 44(10) (October 2001)Google Scholar
  18. 18.
    Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Akşit (ed.) [1], pp. 60–69Google Scholar
  19. 19.
    Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: Lieberherr (ed.) [22], pp. 26–35Google Scholar
  20. 20.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  21. 21.
    Klaeren, H., Pulvermüller, E., Rashid, A., Speck, A.: Aspect composition applying the design by contract principle. In: Butler, G., Jarzabek, S. (eds.) GCSE 2000. LNCS, vol. 2177, pp. 57–69. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  22. 22.
    Lieberherr, K. (ed.): Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD 2004), Lancaster. ACM Press, New York (2004)Google Scholar
  23. 23.
    Nagy, I., Bergmans, L., Aksit, M.: Declarative aspect composition. In: 2nd Software-Engineering Properties of Languages and Aspect Technologies Workshop (March 2004)Google Scholar
  24. 24.
    Proceedings of the 19th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2004), Vancouver, British Columbia, Canada. ACM SIGPLAN Notices, vol. 39(11). ACM Press, New York (October 2004)Google Scholar
  25. 25.
    Rodríguez, L., Tanter, É., Noyé, J.: Supporting dynamic crosscutting with partial behavioral reflection: a case study. In: Proceedings of the XXIV International Conference of the Chilean Computer Science Society (SCCC 2004), Arica, Chile. IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  26. 26.
    Suvee, D., Vanderperren, W., Jonckers, V.: JAsCo: an aspect-oriented approach tailored for component based software development. In: Akşit (ed.) [1], pp. 21–29Google Scholar
  27. 27.
    Tanter, É.: Metalevel facilities for multi-language AOP. In: 2nd European Interactive Workshop on Aspects in Software (EIWAS 2005), Brussels, Belgium (September 2005)Google Scholar
  28. 28.
    Tanter, É., Noyé, J.: Motivation and requirements for a versatile AOP kernel. In: 1st European Interactive Workshop on Aspects in Software (EIWAS 2004), Berlin, Germany (September 2004)Google Scholar
  29. 29.
    Tanter, É., Noyé, J.: A versatile kernel for multi-language AOP. In: Glück, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 173–188. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  30. 30.
    Tanter, É., Noyé, J., Caromel, D., Cointe, P.: Partial behavioral reflection: Spatial and temporal selection of reification. In: Crocker, R., Steele Jr., G.L. (eds.) Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA 2003). ACM SIGPLAN Notices, vol. 38(11), pp. 27–46. ACM Press, New York (2003)CrossRefGoogle Scholar
  31. 31.
    Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. ACM Transactions on Programming Languages and Systems 26(5), 890–910 (2004)CrossRefGoogle Scholar
  32. 32.
    Wuyts, R.: Declarative reasoning about the structure of object-oriented systems. In: Proceedings of TOOLS-USA 1998, p. 112 (1998)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Éric Tanter
    • 1
  1. 1.DCC – University of ChileSantiagoChile

Personalised recommendations