μABC: A Minimal Aspect Calculus

  • Glenn Bruns
  • Radha Jagadeesan
  • Alan Jeffrey
  • James Riely
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3170)


Aspect-oriented programming is emerging as a powerful tool for system design and development. In this paper, we study aspects as primitive computational entities on par with objects, functions and horn-clauses. To this end, we introduce μABC, a name-based calculus, that incorporates aspects as primitive. In contrast to earlier work on aspects in the context of object-oriented and functional programming, the only computational entities in μABC are aspects. We establish a compositional translations into μABC from a functional language with aspects and higher-order functions. Further, we delineate the features required to support an aspect-oriented style by presenting a translation of μABC into an extended π-calculus.


Advice Body User Code Dynamic Semantic Concurrency Theory Aspect Language 
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.
  2. 2.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)CrossRefzbMATHGoogle Scholar
  3. 3.
    Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object-interactions using composition-filters. In: Object-based distributed processing, LNCS (1993)Google Scholar
  4. 4.
    Association of Computing Machinery. Communications of the ACM (October 2001)Google Scholar
  5. 5.
    Bauer, L., Ligatti, J., Walker, D.: A calculus for composing security policies. Technical Report TR-655-02, Dept. of Computer Science, Princeton University (2002)Google Scholar
  6. 6.
    Benveniste, A., Berry, G.: The synchronous approach to reactive and real-time systems. Proceedings of the IEEE 79(9), 1270–1282 (1991)CrossRefGoogle Scholar
  7. 7.
    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),
  8. 8.
    Bierman, G.M., Parkinson, M.J., Pitts, A.M.: An imperative core calculus for Java and Java with effects. Technical Report 563, University of Cambridge Computer Laboratory (April 2003)Google Scholar
  9. 9.
    Bruns, G., Jagadeesan, R., Jeffrey, A., Riely, J.: μABC: A minimal aspect calculus. Full version (2004), available at:
  10. 10.
    Clifton, C., Leavens, G.T., Wand, M.: Parameterized aspect calculus: A core calculus for the direct study of aspect-oriented languages (October 2003), Submitted for publication at:
  11. 11.
    Dantas, D.S., Walker, D.: Aspects, information hiding and modularity (2003), submitted for publication at:
  12. 12.
    Dufour, B., Goard, C., Hendren, L., Verbrugge, C., de Moor, O., Sittampalam, G.: Measuring the dynamic behaviour of AspectJ programs (2003)Google Scholar
  13. 13.
    Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness (2000)Google Scholar
  14. 14.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: ACM Symposium on Principles of Programming Languages (POPL), pp. 171–183 (1998)Google Scholar
  15. 15.
    Fournet, C., Gonthier, G., Levy, J.-J., Maranget, L., Remy, D.: A claculus of mobile agents. In: Sassone, V., Montanari, U. (eds.) CONCUR 1996. LNCS, vol. 1119, pp. 406–421. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  16. 16.
    Hoare, C.A.R.: Communicating Sequential Processes. Int. Series in Computer Science. Prentice Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  17. 17.
    Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: A minimal core calculus for Java and GJ. ACM Transactions on Programming Languages and Systems 23(3), 396–450 (2001)CrossRefGoogle Scholar
  18. 18.
    Jagadeesan, R., Jeffrey, A., Riely, J.: A typed calculus for aspect-oriented programs (2003), Submitted for publication at:
  19. 19.
    Jagadeesan, R., Jeffrey, A., Riely, J.: An untyped calculus of aspect oriented programs. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743. Springer, Heidelberg (2003)Google Scholar
  20. 20.
  21. 21.
    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
  22. 22.
    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
  23. 23.
    Lieberherr, K.J.: Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns. PWS Publishing Company (1996)Google Scholar
  24. 24.
    Lopes, C.V.: D: A Language Framework for Distributed Programming. Ph.d. thesis, Northestern University (1997),
  25. 25.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. In: Agha, G., Wegner, P., Yonezawa, A. (eds.) Research Directions in Concurrent Object-Oriented Programming, pp. 107–150. MIT Press, Cambridge (1993)Google Scholar
  26. 26.
    Milner, R.: The polyadic π-calculus: A tutorial. In: Bauer, F.L., Brauer, W., Schwichtenberg, H. (eds.) Logic and Algebra of Specification, pp. 203–246. Springer, Heidelberg (1993)CrossRefGoogle Scholar
  27. 27.
    Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I and II. Information and Computation 100(1), 1–40 (1992)MathSciNetCrossRefzbMATHGoogle Scholar
  28. 28.
    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
  29. 29.
    Plotkin, G.: Call-by-name, call-by-value, and the λ-calculus. Theoretical Computer Science 1, 125–159 (1975)MathSciNetCrossRefzbMATHGoogle Scholar
  30. 30.
    Tucker, D., Krishnamurthi, S.: Pointcuts and advice in higher-order languages. In: Conference Record of AOSD 2003: The 2nd International Conference on Aspect Oriented Software Development (2003)Google Scholar
  31. 31.
    Walker, D., Zdancewic, S., Ligatti, J.: A theory of aspects. In: Conference Record of ICFP 2003: The ACM SIGPLAN International Conference on Functional Programming (2003)Google Scholar
  32. 32.
    Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: TOPLAS (to appear, 2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Glenn Bruns
    • 1
  • Radha Jagadeesan
    • 2
  • Alan Jeffrey
    • 2
  • James Riely
    • 2
  1. 1.Bell LabsLucent TechnologiesUSA
  2. 2.DePaul UniversityUSA

Personalised recommendations