Skip to main content

Partial Evaluation of Pointcuts

  • Conference paper
Practical Aspects of Declarative Languages (PADL 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4354))

Included in the following conference series:

Abstract

In aspect-oriented programming, pointcuts are usually compiled by identifying a set of shadows — that is, places in the code whose execution is potentially relevant for a pointcut — and inserting dynamic checks at these places for those parts of the pointcut that cannot be evaluated statically. Today, the algorithms for shadow and check computation are specific for every pointcut designator. This makes it very tedious to extend the pointcut language.

We propose the use of declarative languages, together with associated analysis and specialisation tools, to implement powerful and extensible pointcut languages. More specifically, we propose to synthesize (rather than program manually) the shadow and dynamic check algorithms. With this approach, it becomes easier to implement powerful pointcut languages efficiently and to keep pointcut languages open for extension.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhotak, J., Lhotak, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to aspectj. In: Proceedings of OOPSLA 2005, pp. 345–364. ACM Press, New York (2005)

    Chapter  Google Scholar 

  2. AspectJ Home Page, http://www.eclipse.org/aspectj/

  3. Calejo, M.: Interprolog: Towards a declarative embedding of logic programming in java. In: Alferes, J.J., Leite, J.A. (eds.) JELIA 2004. LNCS (LNAI), vol. 3229, pp. 714–717. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  4. Chiba, S., Nakagawa, K.: Josh: An open aspectj-like language. In: Proceedings of AOSD 2004, pp. 102–111. ACM Press, New York (2004)

    Chapter  Google Scholar 

  5. Eichberg, M., Mezini, M., Ostermann, K.: Pointcuts as functional queries. In: Chin, W.-N. (ed.) APLAS 2004. LNCS, vol. 3302. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  6. Eichberg, M., Mezini, M., Ostermann, K., Schäfer, T.: Xirc: A kernel for cross-artifact information engineering in software development environments. In: Werner, B. (ed.) Eleventh Working Conference on Reverse Engineering, Delft, Netherlands, November 2004, pp. 182–191. IEEE Computer Society Press, Los Alamitos (2004)

    Chapter  Google Scholar 

  7. Goldsmith, S., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: Proceedings of OOPSLA 2005, pp. 385–402. ACM Press, New York (2005)

    Chapter  Google Scholar 

  8. Gybels, K., Brichau, J.: Arranging Language Features for More Robust Pattern-Based Crosscuts. In: AOSD 2003 Proceedings, pp. 60–69. ACM Press, New York (2003)

    Chapter  Google Scholar 

  9. Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs (1993)

    MATH  Google Scholar 

  10. 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)

    Google Scholar 

  11. Klose, K., Ostermann, K.: Back to the future: Pointcuts as predicates over traces. In: Foundations of Aspect-Oriented Languages workshop (FOAL 2005), Chicago, USA (2005)

    Google Scholar 

  12. Leuschel, M., Craig, S., Bruynooghe, M., Vanhoof, W.: Specializing interpreters using offline partial deduction. In: Maurice Bruynooghe, K.-K.L. (ed.) Program Development in Computational Logic. Springer, Heidelberg (2004)

    Google Scholar 

  13. Leuschel, M., Jørgensen, J., Vanhoof, W., Bruynooghe, M.: Offline specialisation in Prolog using a hand-written compiler generator. Theory and Practice of Logic Programming 4(1), 139–191 (2004)

    Article  MATH  Google Scholar 

  14. Martin, M., Livshits, B., Lam, M.S.: Finding application errors and security flaws using PQL: A program query language. In: Proceedings of OOPSLA 2005, pp. 365–383. ACM Press, New York (2005)

    Chapter  Google Scholar 

  15. Masuhara, H., Kiczales, G., Dutchyn, C.: A compilation and optimization model for aspect-oriented programs. In: Proceedings of CC 2003. Springer, Heidelberg (2003)

    Google Scholar 

  16. Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586. Springer, Heidelberg (2005)

    Google Scholar 

  17. Sereni, D., de Moor, O.: Static analysis of aspects. In: Proceedings of AOSD 2003. ACM, New York (2003)

    Google Scholar 

  18. Somogyi, Z., Henderson, F., Conway, T.: The execution algorithm of Mercury: An efficient purely declarative logic programming language. Journal of Logic Programming 29(1–3), 17–64 (1996)

    Article  MATH  Google Scholar 

  19. Walker, R.J., Viggers, K.: Communication history patterns: Direct implementations of protocol specifications. Technical report, University of Calgary (2004)

    Google Scholar 

  20. Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. TOPLAS 2004 26(5), 890–910 (2004)

    Article  Google Scholar 

  21. Wang, Q., Gupta, G., Leuschel, M.: Towards provably correct code generation via Horn logical continuation semantics. In: Proceedings of PADL 2005, pp. 98–112 (2005)

    Google Scholar 

  22. Zhou, Q., Tarau, P.: Garbage Collection Algorithms for Java-Based Prolog Engines. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol. 2562, pp. 304–320. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Klose, K., Ostermann, K., Leuschel, M. (2006). Partial Evaluation of Pointcuts. In: Hanus, M. (eds) Practical Aspects of Declarative Languages. PADL 2007. Lecture Notes in Computer Science, vol 4354. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69611-7_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69611-7_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69608-7

  • Online ISBN: 978-3-540-69611-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics