Skip to main content

Shadow Programming: Reasoning About Programs Using Lexical Join Point Information

  • Conference paper
Generative Programming and Component Engineering (GPCE 2005)

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

Abstract

The expressiveness of AspectJ’s dynamic join point model has been shown in many useful applications, while the static join point model (also called lexical shadows) has been studied less. We propose a notion of shadow programming that exposes a program’s adapted lexical shadow information to compile time language constructs to enable customized static analysis and more expressive join point selection mechanisms. In particular, within the framework of the AspectJ language and compiler, we have designed and implemented two compile time language constructs, called Statically Executable Advice and Pointcut Evaluator respectively, to show how the lexical shadow information can be used.

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. Bloch, J.: Effective Java Programming Language Guide, pp. 25–35. Sun Microsystems Inc. (2001)

    Google Scholar 

  2. Chiba, S., Nakagawa, K.: Josh: an open AspectJ-like language. In: Proceedings of the 3rd international conference on Aspect-oriented software development, pp. 102–111. ACM Press, New York (2004)

    Chapter  Google Scholar 

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

    Chapter  Google Scholar 

  4. Felleisen, M.: Functional objects. In: Invited Talk at ECOOP (2004), Also available at: http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf

  5. Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns, OOPSLA 2000, Minneapolis (2000), http://ic-www.arc.nasa.gov/ic/darwin/oif/leo/filman/text/oif/aop-is.pdf (October 2000)

  6. Gybels, K., Brichau, J.: Arranging language features for more robust pattern-based crosscuts. In: Proceedings of the 2nd international conference on Aspect-oriented Software Development, pp. 60–69. ACM Press, New York (2003)

    Chapter  Google Scholar 

  7. Hilsdale, E., Hugunin, J.: Advice weaving in AspectJ. In: Proceedings of the 3rd international conference on Aspect-oriented software development, pp. 26–35. ACM Press, New York (2004)

    Chapter  Google Scholar 

  8. Harvey III, C.N.: (June 2004), http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02460.html

  9. JBoss Inc. JBoss AOP, http://www.jboss.org

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

    Chapter  Google Scholar 

  11. Kniesel, G., Rho, T., Hanenberg, S.: Evolvable Pattern Implementations Need Generic Aspects. In: Proceedings of Workshop on Reflection, AOP and Meta-Data for Software Evolution (June 2004)

    Google Scholar 

  12. Lieberherr, K., Lorenz, D.H., Wu, P.: A Case for Statically Executable Advice: checking the Law of Demeter with AspectJ. In: Proceedings of the 2nd international conference on Aspect-oriented software development, pp. 40–49. ACM Press, New York (2003)

    Chapter  Google Scholar 

  13. Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996)

    Google Scholar 

  14. Lieberherr, K.J., Holland, I.: Formulations and Benefits of the Law of Demeter. SIGPLAN Notices 24(3), 67–78 (1989)

    Article  Google Scholar 

  15. Marin, M.: (September 2004), http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02944.html

  16. Masuhara, H., Kiczales, G., Dutchyn, C.: Compilation and optimization model for aspect-oriented programs. In: Proceedings of Compiler Construction (CC 2003). LNCS, vol. 2003, pp. 46–60. Springer, Heidelberg (2001)

    Google Scholar 

  17. Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)

    MATH  Google Scholar 

  18. Ostermann, K., Mezini, M., Bockish, C.: Expressive pointcuts for increased modularity. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 214–240. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  19. Rho, T., Kniesel, G.: LogicAJ - Uniform Genericity for Aspect Languages. Technical Report IAI-TR-2004-4, Computer Science Department III, University of Bonn (December 2004)

    Google Scholar 

  20. Aotani, T., Masuhara, H.: Compiling Conditonal Pointcuts for User-Level Semantic Pointcuts. In: Software engineering Properties of Languages and Aspect Technologies Workshop, Chicago, IL, USA (March 2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wu, P., Lieberherr, K. (2005). Shadow Programming: Reasoning About Programs Using Lexical Join Point Information. In: Glück, R., Lowry, M. (eds) Generative Programming and Component Engineering. GPCE 2005. Lecture Notes in Computer Science, vol 3676. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561347_11

Download citation

  • DOI: https://doi.org/10.1007/11561347_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29138-1

  • Online ISBN: 978-3-540-31977-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics