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.
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
Bloch, J.: Effective Java Programming Language Guide, pp. 25–35. Sun Microsystems Inc. (2001)
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)
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)
Felleisen, M.: Functional objects. In: Invited Talk at ECOOP (2004), Also available at: http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf
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)
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)
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)
Harvey III, C.N.: (June 2004), http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02460.html
JBoss Inc. JBoss AOP, http://www.jboss.org
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)
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)
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)
Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company, Boston (1996)
Lieberherr, K.J., Holland, I.: Formulations and Benefits of the Law of Demeter. SIGPLAN Notices 24(3), 67–78 (1989)
Marin, M.: (September 2004), http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg02944.html
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)
Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)