MAO: Ownership and Effects for More Effective Reasoning About Aspects

  • Curtis Clifton
  • Gary T. Leavens
  • James Noble
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4609)


Abstract. Aspect-oriented advice increases the number of places one must consider during reasoning, since advice may affect all method calls and field accesses. MAO, a new variant of AspectJ, demonstrates how to simplify reasoning by allowing programmers, if they choose, to declare limits on the control and heap effects of advice. Heap effects, such as assignment to object fields, are specified using concern domains-declared partitions of the heap. By declaring the concern domains affected by methods and advice, programmers can separate objects owned by the base program and by various aspects. When desired, programmers can also use such concern domain annotations to check that advice cannot interfere with the base program or with other aspects. Besides allowing programmers to declare how concerns interact in a program, concern domains also support a simple kind of semantic pointcut. These features make reasoning about control and heap effects easier.


Control Effect Operational Semantic Base Program Ownership Type Concrete Aspect 
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.
    Aldrich, J.: Open modules: Modular reasoning about advice. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, Springer, Heidelberg (2005)Google Scholar
  2. 2.
    Aldrich, J., Chambers, C.: Ownership domains: Separating aliasing policy from mechanism. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol. 3086, Springer, Heidelberg (2004)Google Scholar
  3. 3.
    AspectJ Team: The AspectJ programming guide, Version 1.5.3. (2006), Available from
  4. 4.
    Boyapati, C., Liskov, B., Shrira, L.: Ownership types for object encapsulation. In: POPL, pp. 213–223 (2003)Google Scholar
  5. 5.
    Clarke, D., Drossopoulou, S.: Ownership, Encapsulation, and the Disjointness of Type and Effect. In: OOPSLA (2002)Google Scholar
  6. 6.
    Clement, A., Colyer, A., Kersten, M.: Aspect-oriented programming with AJDT. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)Google Scholar
  7. 7.
    Clifton, C.: A design discipline and language features for modular reasoning in aspect-oriented programs. PhD thesis, Iowa State (2005)Google Scholar
  8. 8.
    Clifton, C., Leavens, G.T.: MiniMAO1: Investigating the semantics of proceed. Sci. Comput. Programming 63(3), 321–374 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Clifton, C., Leavens, G.T.: Observers and assistants: A proposal for modular aspect-oriented reasoning. In: FOAL (2002)Google Scholar
  10. 10.
    Clifton, C., Leavens, G.T.: Spectators and assistants: Enabling modular aspect-oriented reasoning. Technical Report TR #02-10, Dept. of Computer Science, Iowa State University (October 2002)Google Scholar
  11. 11.
    Dantas, D.S., Walker, D.: Harmless advice. In: POPL (2006)Google Scholar
  12. 12.
    Dietl, W., Müller, P.: Universes: Lightweight ownership for JML. Journal of Object Technology 4(8), 5–32 (2005)Google Scholar
  13. 13.
    Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Reading (2005)Google Scholar
  14. 14.
    Flatt, M., Krishnamurthi, S., Felleisen, M.: A programmer’s reduction semantics for classes and mixins. In: Formal Syntax and Semantics of Java, ch. 7, pp. 241–269. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  15. 15.
    Griswold, W.G., Sullivan, K., Song, Y., Shonle, M., Tewari, N., Cai, Y., Rajan, H.: Modular software design with crosscutting interfaces. IEEE Software, 51–60 (January/February 2006)Google Scholar
  16. 16.
    Grothoff, C., Palsberg, J., Vitek, J.: Encapsulating Objects with Confined Types. In: OOPSLA, pp. 241–255 (2001)Google Scholar
  17. 17.
    Gudmundson, S., Kiczales, G.: Addressing practical software development issues in AspectJ with a pointcut interface. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)Google Scholar
  18. 18.
    Igarashi, A., Pierce, B., Wadler, P.: Featherweight Java. A minimal core calculus for Java and GJ. ACM Trans. Prog. Lang. Syst. 23(3), 396–459 (2001)CrossRefGoogle Scholar
  19. 19.
    Katz, S.: Aspect categories and classes of temporal properties. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, Springer, Heidelberg (2006)CrossRefGoogle Scholar
  20. 20.
    Katz, S., Gil, Y.: Aspects and superimpositions. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, Springer, Heidelberg (1999)Google Scholar
  21. 21.
    Kiczales, G.: The fun has just begun. AOSD’03 Keynote Address (2003), available from
  22. 22.
    Kiczales, G., Mezini, M.: Aspect-oriented programming and modular reasoning. In: ICSE, pp. 49–58. ACM Press, New York (2005)Google Scholar
  23. 23.
    Lieberherr, K., Lorenz, D.H., Ovlinger, J.: Aspectual collaborations: Combining modules and aspects. The Computer Journal 6(5), 542–565 (2003)CrossRefGoogle Scholar
  24. 24.
    Lu, Y., Potter, J.: Protecting representation with effect encapsulation. In: POPL, pp. 359–371 (2006)Google Scholar
  25. 25.
    Mulet, P., Malenfant, J., Cointe, P.: Towards a methodology for explicit composition of metaobjects. In: OOPSLA, pp. 316–330. ACM, New York (1995)Google Scholar
  26. 26.
    Ongkingco, N., Avgustinov, P., Tibble, J., Hendren, L., de Moor, O., Sittampalam, G.: Adding open modules to AspectJ. In: AOSD (2006)Google Scholar
  27. 27.
    Potanin, A., Noble, J., Clarke, D., Biddle, R.: Generic ownership for generic Java. In: OOPSLA, pp. 311–324 (2006)Google Scholar
  28. 28.
    Potanin, A., Noble, J., Clarke, D., Biddle, R.: Featherweight Generic Confinement. Journal of Functional Programming 16(6), 793–811 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  29. 29.
    Rinard, M., Salcianu, A., Bugrara, S.: A classification system and analysis for aspect-oriented programs. In: Roy, B., Meier, W. (eds.) FSE 2004. LNCS, vol. 3017, Springer, Heidelberg (2004)Google Scholar
  30. 30.
    Steimann, F.: The paradoxical success of aspect-oriented programming. In: OOPSLA, pp. 481–497 (2006)Google Scholar
  31. 31.
    Sullivan, K., Griswold, W., Song, Y., Cai, Y., Shonle, M., Tewari, N., Rajan, H.: Information hiding interfaces for aspect-oriented design. In: FSE, pp. 166–175 (May 2005)Google Scholar
  32. 32.
    Vitek, J., Bokowski, B.: Confined types in Java. S—P&E 31(6), 507–532 (2001)zbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Curtis Clifton
    • 1
  • Gary T. Leavens
    • 2
  • James Noble
    • 3
    • 4
  1. 1.Rose-Hulman Institute of Technology, Terre Haute, IndianaUSA
  2. 2.Iowa State University, Ames, IowaUSA
  3. 3.Imperial College, LondonUK
  4. 4.Permanent: Victoria University of WellingtonNew Zealand

Personalised recommendations