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.
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