Abstract :
Aspect-oriented programming is a promising approach to the construction of large-scale software systems. The declarativeness of aspect definitions and support for verification of AO programs crucially depends on the expressiveness of the aspect languages used. Currently, a large spectrum of pointcut languages, i.e., the languages that define where aspects may apply modifications to an application, have been proposed. Their expressiveness ranges from regular expression languages, which, e.g., provide support for static interaction analysis, to context-free or turing complete languages, the latter almost without any support for analysis or verification. In this paper we investigate the use of visibly pushdown automata (VPA) [4] as a basis for an aspect language in order to enable more declarative aspect definitions (compared to regular approaches) for protocol like relationships and static verification of properties, in particular analysis of interactions among aspects. Concretely, we present four contributions: (i) we provide a set of examples motivating the use of VPA-based aspect definitions in the context of P2P systems, (ii) formally define a core aspect language for protocols with a VPA-based pointcut language, (iii) show that this language supports the analysis of interaction properties among aspects, and (iv) briefly present a freely available library implementing basic VPA operations, which we have used to analyze some interaction examples
Keywords :
object-oriented programming; peer-to-peer computing; program diagnostics; program verification; pushdown automata; AOP over protocols; P2P systems; aspect languages; aspect-oriented programming; large-scale software systems; pointcut languages; static interaction analysis; static verification; visibly pushdown automata; Access protocols; Application software; Automata; Large-scale systems; Libraries; Network servers; Programming; Software engineering; Software systems; Web server;