A Calculus of Untyped Aspect-Oriented Programs

  • Radha Jagadeesan
  • Alan Jeffrey
  • James Riely
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2743)


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.


Operational Semantic Dynamic Semantic Command Sequence Method Body Class Declaration 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abadi, M., Cardelli, L.: A theory of objects. Springer, Heidelberg (1996)zbMATHGoogle Scholar
  2. 2.
    Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting objectinteractions using composition-filters. In: object-based distributed processing. LNCS. Springer, Heidelberg (1993)Google Scholar
  3. 3.
    Andrews, J.: Process-algebraic foundations of aspectoriented programming. In: Yonezawa, A., Matsuoka, S. (eds.) Reflection 2001. LNCS, vol. 2192, p. 187. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  4. 4.
    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),
  5. 5.
    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)Google Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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 Google Scholar
  9. 9.
    Drossopoulou, S., Eisenbach, S., Khurshid, S.: Is the java type system sound? Theory and Practice of Object Systems 5(11), 3–24 (1999)CrossRefGoogle Scholar
  10. 10.
    Dutchyn, C., Kiczales, G., Masuhara, H.:
  11. 11.
    Fisher, K., Reppy, J., Riecke, J.G.: A calculus for compiling and linking classes. In: European Conference on Object-Oriented Programming, ECOOP (2000)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    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 ComputationCrossRefGoogle Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    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)CrossRefGoogle Scholar
  16. 16.
    Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company (1996)Google Scholar
  17. 17.
    Masuhara, H., Kiczales, G., Dutchyn, C.: Compilation semantics of aspect-oriented programsGoogle Scholar
  18. 18.
    De Meuter, W.: Monads as a theoretical foundation for aop. In: International Workshop on Aspect-Oriented Programming at ECOOP (1997)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects (submitted for publication)Google Scholar
  21. 21.
    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)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Radha Jagadeesan
    • 1
  • Alan Jeffrey
    • 1
  • James Riely
    • 1
  1. 1.CTIDePaul University 

Personalised recommendations