Skip to main content

A Pointcut Language for Control-Flow

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3286))

Abstract

In AOP, a pointcut matches base-program execution points where an advice must be executed. Most pointcut are method signatures. In AspectJ, pointcuts based on control-flow (e.g. the method foo when it is called during the method bar) can be defined with a cflow operator which also provides context passing (e.g., when foo is called, print the argument of the pending call to bar).

In this article, we propose a pointcut language that extends the pointcut language of AspectJ for control-flow. We exemplify how it enables definition of useful pointcuts based on control-flow with context passing. We provide both an intuitive semantics based on post-mortem execution traces and an implementation based on program instrumentation. We also provide analyses for pointcut conflict and instrumentation optimization.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AspectJ Site. Aspect-oriented programming in java with aspectj (2001), http://www.parc.com/research/csl/projects/aspectj/downloads/OReilly2001.pdf

  2. Bergmans, L., Aksits, M.: Composing crosscutting concerns using composition filters. Communications of the ACM (2001)

    Google Scholar 

  3. USA Boston, Massachusetts, editor. (AOSD 2003). ACM Press (2003)

    Google Scholar 

  4. Coady, Y., Kiczales, G., Feeley, M., Smolyn, G.: Using aspectc to improve the modularity of path-specific customization in operating system code. In: ESEC and FSE 2001, ACM Press, New York (2001)

    Google Scholar 

  5. Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In (GPCE 2002), LNCS. vol. 2487, Springer, Heidelberg (2002)

    Google Scholar 

  6. Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: [20], Reflection 2001 (2001)

    Google Scholar 

  7. Ducassé, M.: Coca: An automated debugger for C. In: ICSE 1999, ACM Press, New York (1999)

    Google Scholar 

  8. Ducassé, M.: Opium: An extendable trace analyser for Prolog. The Journal of Logic programming 39 (1999)

    Google Scholar 

  9. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  10. Gybels, K., Brichau, J.: Arranging language features for pattern-based crosscuts. In: [3], Boston

    Google Scholar 

  11. Havelund, K., Rosu, G.: Synthesizing monitors for safety properties. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  12. Hudak, P., Jones, S.P., et al.: Report on the programming language haskell: a non-strict, purely functional language version 1.2. SIGPLAN Not. 27 (1992)

    Google Scholar 

  13. 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, Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  14. Lämmel, R.: A semantical approach to method-call interception. In: AOSD 2002, ACM Press, New York (2002)

    Google Scholar 

  15. Masuhara, H., Kawauchi, K.: Dataflow pointcut in aspect-oriented programming. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  16. Masuhara, H., Kiczales, G., Dutchyn, C.: Using aspectc to improve the modularity of path-specific customization in operating system code. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  17. Orleans, D., Lieberherr, K.: Dj: Dynamic adaptive programming in java. In: [20], Reflection 2001 (2001)

    Google Scholar 

  18. Ossher, H., Tarr, P.: Multi-dimensional separation of concerns and the hyperspace approach. In: Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development, Kluwer, Dordrecht (2000)

    Google Scholar 

  19. Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible solution for aspect-oriented programming in java. In: [20], Reflection 2001 (2001)

    Google Scholar 

  20. (Reflection 2001), volume 2192 of LNCS. Springer-Verlag (2001)

    Google Scholar 

  21. Sereni, D., de Moor, O.: Static analysis of aspects. In: [3], Boston

    Google Scholar 

  22. De Volder, K., D’Hondt, T.: Aspect-oriented logic meta programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  23. Walker, R.J., Murphy, G.C.: Joinpoints as ordered events: Towards applying implicit context to aspect-orientation. In: Advanced Separation of Concerns Workshop at, ICSE 2001 (2001)

    Google Scholar 

  24. Walker, R.J., Murphy, G.C.: Communication history patterns: Direct implementation of protocol specifications. Technical report, Department of Computer Science, University of Calgary (2004)

    Google Scholar 

  25. Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: FOAL Workshop at, AOSD 2002 (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Douence, R., Teboul, L. (2004). A Pointcut Language for Control-Flow. In: Karsai, G., Visser, E. (eds) Generative Programming and Component Engineering. GPCE 2004. Lecture Notes in Computer Science, vol 3286. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-30175-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-30175-2_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-23580-4

  • Online ISBN: 978-3-540-30175-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics