Abstract
In aspect-oriented programming, pointcuts are used to describe crosscutting structure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning.
We present an analysis which shows that current pointcut languages support localization of crosscutting concerns but are problematic with respect to information hiding. To cope with the problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports abstraction mechanisms analogous to functional abstraction. We show how this raises the abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aldrich, J.: Open modules: Modular reasoning about advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 144–168. Springer, Heidelberg (2005)
Alpha project, http://www.st.informatik.tu-darmstadt.de/pages/projects/alpha/
Brichau, J., Gybels, K., Wuyts, R.: Towards a linguistic symbiosis of an object-oriented and a logic programming language. In: Proceedings of the Workshop on Multiparadigm Programming with Object-Oriented Languages, MPOOL 2002 (2002)
Brichau, J., Mens, K., Volder, K.D.: Building composable aspect-specific languages with logic metaprogramming. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, p. 110. Springer, Heidelberg (2002)
Chiba, S., Nakagawa, K.: Josh: An Open AspectJ-like Language. In: Proceedings of AOSD 2004, Lancaster, England. ACM Press, New York (2004)
Chiba, S., Nishizawa, M.: An Easy-to-Use Toolkit for Efficient Java Bytecode Translators. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 364–376. Springer, Heidelberg (2003)
Codish, M., Søndergaard, H.: Meta-circular abstract interpretation in Prolog. In: Mogensen, T.Æ., Schmidt, D.A., Sudborough, I.H. (eds.) The Essence of Computation. LNCS, vol. 2566, pp. 109–134. Springer, Heidelberg (2002)
Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Symposium on Principles of Programming Languages. ACM Press, New York (1977)
De Pauw, W., Kimelman, D., Vlissides, J.M.: Modeling object-oriented program execution. In: Tokoro, M., Pareschi, R. (eds.) ECOOP 1994. LNCS, vol. 821, pp. 163–182. Springer, Heidelberg (1994)
Douence, R., Fradet, P., Südholt, M.: A framework for the detection and resolution of aspect interactions. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487. Springer, Heidelberg (2002)
Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 170. Springer, Heidelberg (2001)
Drossoupolou, S.: Lecture notes on the L2 calculus, http://www.doc.ic.ac.uk/~scd/Teaching/L1L2.pdf.
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)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)
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)
Hannemann, J., Kiczales, G.: Design pattern implementation in Java and AspectJ. In: Proceedings OOPSLA 2002, vol. 37(11), pp. 161–173. ACM, New York (2002)
Hilsdale, E., Hugunin, J.: Advice Weaving in AspectJ. In: Proc. of AOSD 2004. ACM Press, New York (2004)
Jahier, E., Ducasse, M.: Generic program monitoring by trace analysis. In: Theory and Practice of Logic Programming Journal, vol. 2(4-5). Cambridge University Press, Cambridge (2002)
Janzen, D., De Volder, K.: Navigating and querying code without getting lost. In: Proceedings of AOSD 2003. ACM Press, New York (2003)
Kiczales, G.: In: Keynote talk at AOSD 2003 (2003)
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, p. 327. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kizcales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: Proceedings International Conference on Software Engineering ICSE 2005. ACM Press, New York (2005)
Klose, K., Ostermann, K.: Back to the future: Pointcuts as predicates over traces. In: Workshop on Foundations of Aspect-Oriented Languages (FOAL) at AOSD 2005 (2005)
Lange, D.B., Nakamura, Y.: Interactive visualization of design patterns can help in framework understanding. In: OOPSLA 1995: Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications, New York, USA, pp. 342–357. ACM Press, New York (1995)
Leuschel, M., Jrgensen, J., Vanhoof, W., Bruynooghe, M.: Offline specialisation in Prolog using a hand-written compiler generator. In: Theory and Practice of Logic Programming, vol. 4, pp. 139–191 (2004)
Lopes, C.V., Dourish, P., Lorenz, D.H., Lieberherr, K.: Beyond AOP: Toward naturalistic programming. In: Proceedings Onward! Track at OOPSLA 2003, Anaheim. ACM Press, New York (2003)
Masuhara, H., Kiczales, G., Dutchyn, C.: A compilation and optimization model for aspect-oriented programs. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 46–60. Springer, Heidelberg (2003)
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proceedings Conference on Aspect-Oriented Software Development (AOSD) 2003, pp. 90–99. ACM Press, New York (2003)
Parnas, D.L.: A technique for software module specification with examples. Communications of the ACM 15(5), 330–336 (1972)
Reiss, S.P., Renieris, M.: Encoding program executions. In: International Conference on Software Engineering, Toronto, Ontario, Canada. IEEE, Los Alamitos (2001)
Rho, T., Kniesel, G.: Uniform genericity for aspect languages. Technical Report IAI-TR-2004-4, Computer Science Department III, University of Bonn (Dececember 2004)
Richner, T., Ducasse, S.: Recovering high-level views of object-oriented applications from static and dynamic information. In: ICSM 1999: Proceedings of the IEEE International Conference on Software Maintenance, Washington, DC, USA. IEEE Computer Society Press, Los Alamitos (1999)
Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Komiya, S.: Association aspects. In: Proc. of AOSD 2004. ACM Press, New York (2004)
Sereni, D., de Moor, O.: Static analysis of aspects. In: Proceedings of AOSD 2003. ACM Press, New York (2003)
Sterling, L., Shapiro, E.: The Art of Prolog. MIT Press, Cambridge (1994)
Volder, K.D., D’Hondt, T.: Aspect-Oriented Logic Meta Programming. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, p. 250. Springer, Heidelberg (1999)
Walker, R.J., Viggers, K.: Implementing protocols via declarative event patterns. In: Proceedings of the ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE-12 (2004)
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
Ostermann, K., Mezini, M., Bockisch, C. (2005). Expressive Pointcuts for Increased Modularity. In: Black, A.P. (eds) ECOOP 2005 - Object-Oriented Programming. ECOOP 2005. Lecture Notes in Computer Science, vol 3586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11531142_10
Download citation
DOI: https://doi.org/10.1007/11531142_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27992-1
Online ISBN: 978-3-540-31725-8
eBook Packages: Computer ScienceComputer Science (R0)