Abstract :
Aspect-oriented programming (AOP) promises improved modularity in software design. However, it also presents novel mechanisms and departs from traditional design theory, leaving researchers in need of a theory and developers in need of guidance as to its appropriate use. This paper rests on the idea that the nature and expressive power of AOP lie largely in programming-language-provided implicit invocation (II) mechanisms, with join points as events, pointcuts as event patterns, advice as methods invoked by events, and aspects as classes that also create eventmethod bindings. The contribution of this paper is the idea that exposing the II roots of AOP can expedite development of a theory and practice of AOP. We present a formal reduction from AOP to II, then, as a data point, we show that model checking techniques previously developed for II systems can be used to check formal properties of AOP systems automatically.