A Fine-Grained Join Point Model for More Reusable Aspects

  • Hidehiko Masuhara
  • Yusuke Endoh
  • Akinori Yonezawa
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4279)


We propose a new join point model for aspect-oriented programming (AOP) languages. In most AOP languages including AspectJ, a join point is a time interval of an action in execution. While those languages are widely accepted, they have problems in aspects reusability, and awkwardness when designing advanced features such as tracematches. Our proposed join point model, namely the point-in-time join point model redefines join points as the moments both at the beginning and end of actions. Those finer-grained join points enable us to design AOP languages with better reusability and flexibility of aspects. In this paper, we designed an AspectJ-like language based on the point-in-time model. We also give a denotational semantics of a simplified language in a continuation passing style, and demonstrate that we can straightforwardly model advanced language features such as exception handling and cflow pointcuts.


Semantic Function Base Language Denotational Semantic Advice Body Hybrid Version 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allan, C., et al.: Adding trace matching with free variables to AspectJ. In: OOPSLA 2005, pp. 345–364 (2005)Google Scholar
  2. 2.
    Bodkin, R., Almaer, D., Laddad, R.: aTrack: an enterprise bug tracking system using AOP. In: Demonstration at AOSD 2004 (2004)Google Scholar
  3. 3.
    Bonér, J.: What are the Key Issues for Commercial AOP use: How Does AspectWerkz Address Them? In: AOSD 2004 (2004); 5–6 Invited Industry PaperGoogle Scholar
  4. 4.
    Brichau, J., Meuter, W.D., De Volder, K.: Jumping aspects. In: ECOOP 2000 (2000)Google Scholar
  5. 5.
    Brichau, J., et al.: An initial metamodel for aspect-oriented programming languages. AOSD-Europe-VUB-12, Vrije Universiteit Brussel (2006)Google Scholar
  6. 6.
    Burke, B., Brok, A.: Aspect-oriented programming and JBoss. Published on The O’Reilly Network (2003), http://www.oreillynet.com/pub/a/onjava/2003/05/28/aop_jboss.html
  7. 7.
    Clifton, C., Leavens, G.T.: MiniMAO: Investigating the semantics of proceed. In: FOAL 2005 (2005)Google Scholar
  8. 8.
    Danvy, O., Filinski, A.: Abstracting control. In: LFP 1990, pp. 151–160 (1990)Google Scholar
  9. 9.
    Douence, R., Teboul, L.: A pointcut language for control-flow. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 95–114. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    Douence, R., Fritz, T., Loriant, N., Menaud, J.M., Ségura-Devillechaise, M., Südholt, M.: An expressive aspect language for system applications with Arachne. In: AOSD 2005, pp. 27–38 (2005)Google Scholar
  11. 11.
    Elrad, T., Filman, R.E., Bader, A.: Aspect-oriented programming. Communications of the ACM 44(10), 29–32 (2001)CrossRefGoogle Scholar
  12. 12.
    Endoh, Y., Masuhara, H., Yonezawa, A.: Continuation join points. In: FOAL 2006, pp. 1–10 (2006)Google Scholar
  13. 13.
    Endoh, Y.: Continuation join points. Master’s thesis, Department of Computer Science, University of Tokyo (2006); Revised version is available at: http://www.graco.c.u-tokyo.ac.jp/ppp/projects/pit/
  14. 14.
    Harbulot, B., Gurd, J.R.: A join point for loops in AspectJ. In: Masuhara, H., Rashid, A. (eds.) Proceedings of the 4th International Conference on Aspect-Oriented Software Development (AOSD 2006), pp. 63–74. ACM Press, New York (2006)CrossRefGoogle Scholar
  15. 15.
    Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  16. 16.
    Kiczales, G.: The fun has just begun. Keynote Speech at AOSD 2003 (2003)Google Scholar
  17. 17.
    Masuhara, H., Kawauchi, K.: Dataflow pointcut in aspect-oriented programming. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 105–121. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  18. 18.
    Rajan, H., Sullivan, K.: Aspect language features for concern coverage profiling. In: AOSD 2005, pp. 181–191 (2005)Google Scholar
  19. 19.
    Usui, Y., Chiba, S.: Bugdel: An aspect-oriented debugging system. In: The First Asian Workshop on AOSD, pp. 790–795 (2005)Google Scholar
  20. 20.
    van Deursen, A., Marin, M., Moonen, L.: AJHotDraw: A showcase for refactoring to aspects. In: Proceedings of Workshop on Linking Aspect Technology and Evolution (LATE 2005) (2005)Google Scholar
  21. 21.
    Walker, R.J., Murphy, G.C.: Implicit context: Easing software evolution and reuse. In: FSE-8. ACM SIGSOFT Software Engineering Notes, vol. 25(6), pp. 69–78 (2000)Google Scholar
  22. 22.
    Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects. In: ICFP 2003 (2003)Google Scholar
  23. 23.
    Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: FOAL 2002, pp. 1–8 (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Hidehiko Masuhara
    • 1
  • Yusuke Endoh
    • 2
  • Akinori Yonezawa
    • 2
  1. 1.Graduate School of Arts and SciencesUniversity of Tokyo 
  2. 2.Department of Computer ScienceUniversity of Tokyo 

Personalised recommendations