2007 · 14 citations · 20 references
ComputingComputer ScienceCompilersFormal MethodsProgramming LanguagesAbstract Syntax TreesApplication Programming InterfacesAspect SemanticsData-flow AnalysisQuery ProcessingAspect-oriented ProgrammingDatalogFixpoint ComputationStatic SemanticsStatic Structure Analysis
In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, AspectJ, allows the expression of highly complex properties of the static program structure.We present the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe ( i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures; consequently it has a straightforward least fixpoint semantics and all queries terminate.The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive.
20
Erik Hilsdale, Jim Hugunin · 2004 · 342 citations
XSB as an efficient deductive database engine
Konstantinos Sagonas, Terrance Swift, David S. Warren · 1994 · 324 citations · Full text
Pavel Avgustinov, Aske Simon Christensen, Laurie Hendren et al. · 2005 · 299 citations
Modular software design with crosscutting interfaces
William G. Griswold, Macneil Shonle, Kevin Sullivan et al. · IEEE Software · 2006 · 228 citations · Full text