Aspect Oriented Programming: A Critical Analysis of a New Programming ParadigmReport
Aspect-oriented programming is a paradigm which addresses crosscutting concerns in computer programs. A crosscutting concern is something that cannot be cleanly encapsulated in a generalized module. This paper serves several purposes. The first section will attempt to give some background for AOP and describe some of the motivation in more detail. It will also briefly describe the syntax and semantics of AspectJ, a Java based implementation of AOP. We will also present a design philosophy for using aspects on top of an object-oriented paradigm. The second section discusses some problems we have observed in the AspectJ implementation. The third section discusses alternative paradigms to which AOP might apply. While current research seems to favor OO languages as the basis for AOP, this does not necessarily need to be the case. Procedural languages will be considered to see if they also might benefit from AOP. An implementation for C will be briefly outlined here. Finally, we will give some concluding remarks about AOP and its usefulness.
All rights reserved (no additional license for public reuse)
Highley, Timothy, Michael Lack, and Perry Myers. "Aspect Oriented Programming: A Critical Analysis of a New Programming Paradigm." University of Virginia Dept. of Computer Science Tech Report (1999).
University of Virginia, Department of Computer Science