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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
AspectJ Site. Aspect-oriented programming in java with aspectj (2001), http://www.parc.com/research/csl/projects/aspectj/downloads/OReilly2001.pdf
Bergmans, L., Aksits, M.: Composing crosscutting concerns using composition filters. Communications of the ACM (2001)
USA Boston, Massachusetts, editor. (AOSD 2003). ACM Press (2003)
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)
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)
Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: [20], Reflection 2001 (2001)
Ducassé, M.: Coca: An automated debugger for C. In: ICSE 1999, ACM Press, New York (1999)
Ducassé, M.: Opium: An extendable trace analyser for Prolog. The Journal of Logic programming 39 (1999)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Gybels, K., Brichau, J.: Arranging language features for pattern-based crosscuts. In: [3], Boston
Havelund, K., Rosu, G.: Synthesizing monitors for safety properties. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, Springer, Heidelberg (2002)
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)
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)
Lämmel, R.: A semantical approach to method-call interception. In: AOSD 2002, ACM Press, New York (2002)
Masuhara, H., Kawauchi, K.: Dataflow pointcut in aspect-oriented programming. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, Springer, Heidelberg (2003)
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)
Orleans, D., Lieberherr, K.: Dj: Dynamic adaptive programming in java. In: [20], Reflection 2001 (2001)
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)
Pawlak, R., Seinturier, L., Duchien, L., Florin, G.: Jac: A flexible solution for aspect-oriented programming in java. In: [20], Reflection 2001 (2001)
(Reflection 2001), volume 2192 of LNCS. Springer-Verlag (2001)
Sereni, D., de Moor, O.: Static analysis of aspects. In: [3], Boston
De Volder, K., D’Hondt, T.: Aspect-oriented logic meta programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, Springer, Heidelberg (1999)
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)
Walker, R.J., Murphy, G.C.: Communication history patterns: Direct implementation of protocol specifications. Technical report, Department of Computer Science, University of Calgary (2004)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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