Section 2.1. INTRODUCTION


2.1. INTRODUCTION

We are concerned with aspect-oriented programming (AOP) qua programming languagedetermining what makes a language AOP. This work was prompted by a question from Tzilla Elrad, who asked whether event-based publish-and-subscribe (EBPS) mechanisms (for example, [21]) are AOP. After all, in a publish-and-subscribe system, separate concerns can be realized by having concerns subscribe to the events they care about. In thinking about that question, we have come to the belief that two properties, quantification and obliviousness (which we have also referred to as implicit invocation [15]), are necessary for AOP. Understanding these relationships clarifies the variety of possible AOP languages and suggests research directions for AOP.

Here we address the structural essence of AOP, not its applicationsomewhat similar to the difference between defining object-oriented programming (OOP) systems in terms of polymorphic methods and inheritance versus waxing euphoric about objects as the appropriate way to model the world. (We take inspiration here from Wegner [42], who early in the history of object-oriented programming discussion tried to clarify the dimensions of OOP language design.) Our definition clarifies why some systems that might seem to be AOP are not and why some systems are stronger than just AOPtheir primitives allow straightforward construction of AOP mechanisms at the user level.



Aspect-Oriented Software Development
Aspect-Oriented Software Development with Use Cases
ISBN: 0321268881
EAN: 2147483647
Year: 2003
Pages: 307

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net