Chapter 2. Aspect-Oriented Programming Is Quantification and ObliviousnessROBERT E. FILMAN AND DANIEL P. FRIEDMAN We argue that the distinguishing characteristic of aspect-oriented programming (AOP) languages is that they allow programming by making quantified programmatic assertions over programs that lack local notation indicating the invocation of these assertions. This suggests that AOP systems can be analyzed with respect to three critical dimensions: the kinds of quantifications allowed, the nature of the interactions that can be asserted, and the mechanism for combining base-level actions with asserted actions. Consequences of this perspective are the recognition that certain systems are not AOP and that some mechanisms are meta-AOP: They are sufficiently expressive to allow straightforwardly programming an AOP system within them. |