Advertisement

A Versatile Kernel for Multi-language AOP

  • Éric Tanter
  • Jacques Noyé
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3676)

Abstract

Being able to define and use different aspect languages, including domain-specific aspect languages, to cleanly modularize concerns of a software system represents a valuable perspective. However, combining existing tools leads to unpredictable results, and proposals for experimentation with and integration of aspect languages mostly fail to deal with composition satisfactorily and to provide convenient abstractions to implement new aspect languages. This paper exposes the architecture of a versatile AOP kernel and its Java implementation, Reflex. On top of basic facilities for behavioral and structural transformation, Reflex provides composition handling, including detection of interactions, and language support via a lightweight plugin architecture. We present these facilities and illustrate composition of aspects written in different aspect languages.

Keywords

Composition Operator Mutual Exclusion Kernel Operator Link Element Aspect Interaction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Åberg, R.A., Lawall, J.L., Südholt, M., Muller, G., Le Meur, A.-F.: On the automatic evolution of an OS kernel using temporal logic and AOP. In: Proc. of ASE 2003, Montréal, Canada, pp. 196–204. IEEE CS Press, Los Alamitos (2003)Google Scholar
  2. 2.
    Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: abc: an extensible AspectJ compiler. Technical Report abc-2004-1, The abc Group (September 2004)Google Scholar
  3. 3.
    Batory, D., Consel, C., Taha, W. (eds.): GPCE 2002. LNCS, vol. 2487. Springer, Heidelberg (2002)Google Scholar
  4. 4.
    Brichau, J., Mens, K., De Volder, K.: Building composable aspect-specific languages with logic metaprogramming. In: Batory et al. [3], pp. 110–127Google Scholar
  5. 5.
    Caromel, D., Mateu, L., Tanter, É.: Sequential object monitors. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, pp. 316–340. Springer, Heidelberg (2004)Google Scholar
  6. 6.
    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
  7. 7.
    Chiba, S., Nakagawa, K.: Josh: An open AspectJ-like language. In: Lieberherr [17], pp. 102–111Google Scholar
  8. 8.
    Chiba, S., Nishizawa, M.: An easy-to-use toolkit for efficient Java bytecode translators. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 364–376. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    The Concern Manipulation Environment website (2002)Google Scholar
  10. 10.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools and Applications. Addison-Wesley, Reading (2000)Google Scholar
  11. 11.
    Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory et al. [3], pp. 173–188Google Scholar
  12. 12.
    Douence, R., Fradet, P., Südholt, M.: Composition, reuse and interaction analysis of stateful aspects. In: Lieberherr [17], pp. 141–150Google Scholar
  13. 13.
    Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)Google Scholar
  14. 14.
    Irwin, J., Loingtier, J.-M., Gilbert, J.R., Kiczales, G., Lamping, J., Mendhekar, A., Shpeisman, T.: Aspect-oriented programming of sparse matrix code. In: Ishikawa, Y., Reynders, J.V.W., Tholburn, M. (eds.) ISCOPE 1997. LNCS, vol. 1343, pp. 249–256. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  15. 15.
    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
  16. 16.
    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
  17. 17.
    Lieberherr, K. (ed.): Proc. of AOSD 2004, Lancaster, UK. ACM, New York (2004)Google Scholar
  18. 18.
    Lopes, C.V.: D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University (1997)Google Scholar
  19. 19.
    Masuhara, H., Kiczales, G., Dutchyn, C.: A compilation and optimization model for aspect-oriented programs. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 46–60. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  20. 20.
    Mendhekar, A., Kiczales, G., Lamping, J.: RG: A case-study for aspect-oriented programming. Technical Report SPL97-009P9710044, Xerox PARC (February 1997)Google Scholar
  21. 21.
    Nishizawa, M., Chiba, S., Tatsubori, M.: Remote pointcut – a language construct for distributed AOP. In: Lieberherr [17]Google Scholar
  22. 22.
    Shonle, M., Lieberherr, K., Shah, A.: XAspects: An extensible system for domain-specific aspect languages. In: OOPSLA 2003 DDD Track (October 2003)Google Scholar
  23. 23.
    Tanter, É.: From Metaobject Protocols to Versatile Kernels for Aspect-Oriented Programming. PhD thesis, Univ. of Nantes and Univ. of Chile (November 2004)Google Scholar
  24. 24.
    Tanter, É., Noyé, J.: Motivation and requirements for a versatile AOP kernel. In: EIWAS 2004, Berlin, Germany (September 2004)Google Scholar
  25. 25.
    Tanter, É., Noyé, J., Caromel, D., Cointe, P.: Partial behavioral reflection: Spatial and temporal selection of reification. In: Crocker, R., Steele Jr., G.L. (eds.) Proc. of OOPSLA 2003, pp. 27–46. ACM, New York (2003)CrossRefGoogle Scholar
  26. 26.
    Wand, M.: Understanding aspects. In: Proc. of ICFP 2003. ACM, New York (2003)Google Scholar
  27. 27.
    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

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Éric Tanter
    • 1
  • Jacques Noyé
    • 2
  1. 1.Center for Web Research, DCCUniversity of ChileSantiagoChile
  2. 2.OBASCO projectÉcole des Mines de Nantes – INRIA, LINANantesFrance

Personalised recommendations