Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
AspectJ website. http://www.eclipse.org/aspectj/
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, Heidelberg (1996)
Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object-interactions using composition-filters. In: Object-based distributed processing, LNCS (1993)
Association of Computing Machinery. Communications of the ACM (October 2001)
Bauer, L., Ligatti, J., Walker, D.: A calculus for composing security policies. Technical Report TR-655-02, Dept. of Computer Science, Princeton University (2002)
Benveniste, A., Berry, G.: The synchronous approach to reactive and real-time systems. Proceedings of the IEEE 79(9), 1270–1282 (1991)
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
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)
Bruns, G., Jagadeesan, R., Jeffrey, A., Riely, J.: μABC: A minimal aspect calculus. Full version (2004), available at: http://fpl.cs.depaul.edu/ajeffrey/papers/muABCfull.pdf
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: ftp://ftp.ccs.neu.edu/pub/people/wand/papers/clw-03.pdf
Dantas, D.S., Walker, D.: Aspects, information hiding and modularity (2003), submitted for publication at: http://www.cs.princeton.edu/~dpw/papers/aspectml-nov03.pdf
Dufour, B., Goard, C., Hendren, L., Verbrugge, C., de Moor, O., Sittampalam, G.: Measuring the dynamic behaviour of AspectJ programs (2003)
Filman, R., Friedman, D.: Aspect-oriented programming is quantification and obliviousness (2000)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: ACM Symposium on Principles of Programming Languages (POPL), pp. 171–183 (1998)
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)
Hoare, C.A.R.: Communicating Sequential Processes. Int. Series in Computer Science. Prentice Hall, Englewood Cliffs (1985)
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)
Jagadeesan, R., Jeffrey, A., Riely, J.: A typed calculus for aspect-oriented programs (2003), Submitted for publication at: http://fpl.cs.depaul.edu/ajeffrey/papers/typedABL.pdf
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)
Kiczales, G., Coady, Y.: http://www.cs.ubc.ca/labs/spl/projects/aspectc.html
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)
Lopes, C.V.: D: A Language Framework for Distributed Programming. Ph.d. thesis, Northestern University (1997), ftp://ftp.ccs.neu.edu/pub/people/lieber/theses/lopes/dissertation.pdf
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)
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)
Milner, R., Parrow, J., Walker, D.: A calculus of mobile processes, parts I and II. Information and Computation 100(1), 1–40 (1992)
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)
Plotkin, G.: Call-by-name, call-by-value, and the λ-calculus. Theoretical Computer Science 1, 125–159 (1975)
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)
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)
Wand, M., Kiczales, G., Dutchyn, C.: A semantics for advice and dynamic join points in aspect-oriented programming. In: TOPLAS (to appear, 2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bruns, G., Jagadeesan, R., Jeffrey, A., Riely, J. (2004). μABC: A Minimal Aspect Calculus. In: Gardner, P., Yoshida, N. (eds) CONCUR 2004 - Concurrency Theory. CONCUR 2004. Lecture Notes in Computer Science, vol 3170. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-28644-8_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-28644-8_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22940-7
Online ISBN: 978-3-540-28644-8
eBook Packages: Springer Book Archive