Fine-Grained Generic Aspects
Tobias Rho, Günter Kniesel, Malte Appeltauer · 2006
In theory, join points can be arbitrary places in the structure or execution of a program. However, most existing aspect languages do not support the full expressive power of this concept, limiting their pointcut languages to a subset of the theoretically possible join points. In this paper we explore a minimal language design based on only three built-in fine-grained pointcuts, which enable expressing the entire spectrum of structures of an underlying base language, from types to statements and expressions. The combination of fine-grained pointcuts with uniform genericity in our LogicAJ 2 language yields the concept of fine-grained generic aspects. We demonstrate their power by showing how they allow programmers to express and extend the static primitive pointcuts of AspectJ and how they can model applications that previously required run-time reflection or special purpose language extensions.