Abstract
Aspects have emerged as a powerful tool in the design and development of systems, allowing for the encapsulation of program transformations. The dynamic semantics of aspects is typically specified by appealing to an underlying object-oriented language via a compiler transformation known as weaving. This treatment is unsatisfactory for several reasons. Firstly, this semantics violates basic modularity principles of object-oriented programming. Secondly, the converse translation from object-oriented programs into an aspect language has a simple canonical flavor. Taken together, these observations suggest that aspects are worthy of study as primitive computational abstractions in their own right. In this paper, we describe an aspect calculus and its operational semantics. The calculus is rich enough to encompass many of the features of extant aspect-oriented frameworks that do not involve reflection. The independent description of the dynamic semantics of aspects enables us to specify the correctness of a weaving algorithm. We formalize weaving as a translation from the aspect calculus to a class-based object calculus, and prove its soundness.
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
Abadi, M., Cardelli, L.: A theory of objects. Springer, Heidelberg (1996)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting objectinteractions using composition-filters. In: object-based distributed processing. LNCS. Springer, Heidelberg (1993)
Andrews, J.: Process-algebraic foundations of aspectoriented programming. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 187. Springer, Heidelberg (2001)
Bergmans, L.: Composing Concurrent Objects - Applying Composition Filters for the Development and Reuse of Concurrent Object-Oriented Programs. Ph.d. thesis, University of Twente (1994), http://wwwhome.cs.utwente.nl/bergmans/phd.htm
Bruce, K.B., Cardelli, L., Pierce, B.C.: Comparing object encodings. Information and Computation 155 (1999); An extended abstract appeared in Proceedings of TACS 1997. LNCS, vol. 1281, pp. 415-438. Springer, Heidelberg (1997)
Bruce, K.B., Fiech, A., Petersen, L.: Subtyping is not a good “match” for object-oriented languages. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 104–127. Springer, Heidelberg (1997)
Bruce, K.B., Fiech, A., Schuett, A., van Gent, R.: A type-safe polymorphic object-oriented language. In: European Conference on Object-Oriented Programming, ECOOP (1995)
Douence, R., Motelet, O., Südholt, M.: A formal definition of crosscuts. In: Proceedings of the 3rd International Conference on Reflection and Crosscutting Concerns. LNCS, Springer, Heidelberg (2001), Long version is http://www.emn.fr/info/recherche/publications/RR01/01-3-INFO.ps.gz
Drossopoulou, S., Eisenbach, S., Khurshid, S.: Is the java type system sound? Theory and Practice of Object Systems 5(11), 3–24 (1999)
Dutchyn, C., Kiczales, G., Masuhara, H.: http://www.cs.ubc.ca/labs/spl/projects/asb.html
Fisher, K., Reppy, J., Riecke, J.G.: A calculus for compiling and linking classes. In: European Conference on Object-Oriented Programming, ECOOP (2000)
Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. In: Proceedings of OOPSLA (October 1999); Full version in ACM Transactions on Programming Languages and Systems (TOPLAS) 23(3) (May 2001)
Igarashi, A., Pierce, B.C.: On inner classes. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, p. 129. Springer, Heidelberg (2000); Also in informal proceedings of the Seventh International Workshop on Foundations of Object-Oriented Languages (FOOL). To appear in Information and Computation
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–355. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., 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)
Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company (1996)
Masuhara, H., Kiczales, G., Dutchyn, C.: Compilation semantics of aspect-oriented programs
De Meuter, W.: Monads as a theoretical foundation for aop. In: International Workshop on Aspect-Oriented Programming at ECOOP (1997)
Ossher, H., Tarr, P.: Multi-dimensional separation of concerns and the hyperspace approach. In: Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development (2001)
Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects (submitted for publication)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. Appeared in Informal Workshop Record of FOOL 9, pp. 67-88; also presented at FOAL (Workshop on Foundations of Aspect-Oriented Languages), a satellite event of AOSD 2002 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jagadeesan, R., Jeffrey, A., Riely, J. (2003). A Calculus of Untyped Aspect-Oriented Programs. In: Cardelli, L. (eds) ECOOP 2003 – Object-Oriented Programming. ECOOP 2003. Lecture Notes in Computer Science, vol 2743. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-45070-2_4
Download citation
DOI: https://doi.org/10.1007/978-3-540-45070-2_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40531-3
Online ISBN: 978-3-540-45070-2
eBook Packages: Springer Book Archive