Abstract
eWe point some major contributions of the object-oriented approach in the field of separation of concerns and more particularly design-patterns and metaobject protocols. We discuss some limitations of objects focusing on program reusability and scalability. We sketch some intuitions behind the aspect-oriented programming (AOP) approach as a new attempt to deal with separation of concerns by managing scattered and tangled code. In fact AOP provides techniques to represent crosscutting program units such as display, persistency and transport services. Then AOP allows to weave these units with legacy application components to incrementally adapt them. We present a guided tour of AspectJ illustrating by examples the new concepts of pointcuts, advices and inter-type declarations. This tour is the opportunity to discuss how the AspectJ model answers some of the issues raised by post-object oriented programming but also to enforce the relationship between reflective and aspect-oriented languages.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
AspectJ site.: See, http://eclipse.org/aspectj
Aksit, M., Black, A., Cardelli, L., Cointe, P., Guerraoui, R., et al.: Strategic Research Directions in Object-Oriented Programming. ACM Computing Surveys 8(4), 691–700 (1996)
Bouraqadi-Saâdani, M.N., Ledoux, T., Rivard, F.: Safe Metaclass Programming. In: Craig Chambers (eds.) Proceedings of OOPSLA 1998, Vancouver, British Columbia, USA (October 1998); ACM-Sigplan 33(10), 84-96 (1998)
Bouraqadi-Saâdani, M.N., Ledoux, T.: Supporting AOP Using Reflection. In: [14], ch.12, pp. 261–282 (2005)
Chiba, S.: Generative Programming from a Post Object-Oriented Programming ViewPoint. In: Proceedings of the Unconventional Programming Paradigms workshop, Mont St Michel, France. LNCS (2005)
Czarnecki, K., Eisenecker, U.W.: Generative Programming. In: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Cointe, P.: Metaclasses are First Class: The ObjVlisp Model. In: Archibald, J.L. (ed.) Proceedings of the second ACM SIGPLAN conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 1987), Orlando, Florida, USA (October 1987); ACM SIGPLAN Notices 22(12),156-167 (1987)
Cointe, P.: CLOS and Smalltalk: a Comparison. In: [21], ch. 9, pp. 215–250. MIT Press, Cambridge (1993)
Cointe, P.: Les langages à objets. Technique et Science Informatiques (TSI) 19(1,2,3), 139–146 (2000)
Cointe, P., Noyé, J., Douence, R., Ledoux, T., Menaud, J.M., Muller, G., Sudholt, M.: Programmation post-objets. Des langages d’aspect aux langages de composants. RSTI série L’objet 10(4), 119–143 (2004), http://www.lip6.fr/colloque-JFP
Cointe, P.: Towards Generative Programming. In: Banâtre, J.-P., Fradet, P., Giavitto, J.-L., Michel, O. (eds.) UPP 2004. LNCS, vol. 3566, pp. 302–312. Springer, Heidelberg (2005)
Denier, S.: Traits Programming with AspectJ. RSTI série L’objet. Special issue on Aspect-Oriented Programming. See also pp. 62-78 of the unformal proceeding (2005) (to appear), at http://www.emn.fr/x-info/obasco/events/jfdlpa04/actes/
Douence, R., Motelet, O., Sudholt, M.: A formal definition of crosscuts. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, pp. 170–186. Springer, Heidelberg (2001)
Filman, E.R., Elrad, T., Clarke, S., Aksit, M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2005)
Gabriel, R.: Objects Have Failed. See http://www.dreamsongs.com/Essays.html and also http://www.lip6.fr/colloque-JFP/
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. In: Elements of Reusable Object-Oriented Software. Professional Computing Series. Addison-Wesley, Reading (1995)
Kiczales, G., Ashley, J., Rodriguez, L., Vahdat, A., Bobrow, D.: Metaobject Protocols Why We Want Them and What Else They Can Do. In: [26], ch. 9, pp. 101–118. MIT Press, Cambridge (1993)
Hannemann, J., Kiczales, G.: Design Pattern Implementation in Java and AspectJ. In: Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2002 (2002); ACM SIGPLAN Notices 37(11), 161–173 (2002)
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)
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–354. Springer, Heidelberg (2001)
Kiselev, I.: Aspect-Oriented Progamming with AspectJ. Sams Publishing, USA (2003)
Kojarski, S., Lorenz, D., Hirschfeld, R.: Reflective Mechanism in AOP Languages. Draft paper
Ledoux, T.: OpenCorba: A Reflective Open Broker. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol. 1616, pp. 197–214. Springer, Heidelberg (1999)
McAffer, J.: Meta-level programming with codA. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 190–214. Springer, Heidelberg (1995)
Mezini, M., Ostermann, K.: A Comparison of Program Generation with Aspect-Oriented Programming. In: Banâtre, J.-P., Fradet, P., Giavitto, J.-L., Michel, O. (eds.) UPP 2004. LNCS, vol. 3566, pp. 342–354. Springer, Heidelberg (2005)
Pæpcke, A.: Object-Oriented Programming: The CLOS perspective. MIT Press, Cambridge (1993)
Rodriguez, L., Tanter, E., Noyé, J.: Supporting Dynamic Crosscutting with Partial Behavioral Reflection : a Case Study. RSTI série L’objet. Special issue on Aspect-Oriented Programming (to appear). See also pp. 118-137 of the unformal proceeding (2005), at http://www.emn.fr/x-info/obasco/events/jfdlpa04/actes/
Scharli, N., Ducasse, S., Nierstrasz, O., Black, P.: Traits: Composable Units of Behaviour. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 248–274. Springer, Heidelberg (2003)
Tanter, E., Noyé, J., Caromel, D., Cointe, P.: Partial Behavioral Reflection: Spatial and Temporal Selection of Reification. In: Proceedings of the 18th ACM SIGPLAN conference on Object-Oriented Programming, Systems, Languages, and Applications. OOPSLA 2003 (2003); ACM SIGPLAN Notices 38(11), 27-46 (2003)
Thomas, D.: Reflective Software Engineering - From MOPS to AOSD. Journal Of Object Technology 1(4), 17–26 (2002)
Wand, M.: Understanding Aspects. Invited talk at ICFP 2003 (2003), Available at http://www.ccs.neu.edu/home/wand/ICFP
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for Advice and Dynamic Join Points in AOP. ACM Toplas 26(5), 890–910 (2004)
Wegner, P.: Dimensions of Object-Based Language Design. In: Archibald, J.L. (ed.) Proceedings of the second ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA 1987, Orlando, Florida, USA (October 1987); ACM SIGPLAN Notices 22(12), 168-182 (1987)
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
Cointe, P., Albin-Amiot, H., Denier, S. (2005). From (Meta) Objects to Aspects: A Java and AspectJ Point of View. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, WP. (eds) Formal Methods for Components and Objects. FMCO 2004. Lecture Notes in Computer Science, vol 3657. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11561163_4
Download citation
DOI: https://doi.org/10.1007/11561163_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-29131-2
Online ISBN: 978-3-540-31939-9
eBook Packages: Computer ScienceComputer Science (R0)