MAO: Ownership and Effects for more Effective Reasoning about Aspects by Curtis Clifton, Gary T. Leavens, and James Noble 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. Keywords: Aspect-oriented programming, ownership, concern domain, control effects, heap effects, heap effect dependency, writes, curbing, spectator, AspectJ language, MAO language. 2006 CR Categories: D.1.m [Programming Techniques] Miscellaneous --- aspect-oriented programming; D.2.1 [Software Engineering] Requirements/Specifications --- languages; D.3.1 [Programming Languages] Formal Definitions and Theory --- semantics; D.3.3 [Programming Languages] Language Constructs and Features --- control structures, procedures, functions and subroutines, advice, spectators, aspects; F.3.1 [Logics and Meanings of Programs] Specifying and Verifying and Reasoning about Programs --- logics of programs, specification techniques; F.3.2 [Logics and Meanings of Programs] Semantics of Programming Languages --- operational semantics. To appear in ECOOP 2007: 21st European Conference on Object-Oriented Programming, Berlin, 2007. The original and authoritative version is available from Springer-Verlag at http://www.springerlink.com, LNCS online. Copyright (c) 2007, Springer-Verlag GmbH, Berlin, Germany. All Rights Reserved.