XSB as an efficient deductive database engine
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
Practical program analysis using general purpose logic programming systems—a case study
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Data mining: practical machine learning tools and techniques with Java implementations
Data mining: practical machine learning tools and techniques with Java implementations
A semantical approach to method-call interception
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
Logic and Data Bases
Hyper/J™: multi-dimensional separation of concerns for Java™
Proceedings of the 24th International Conference on Software Engineering
Arranging language features for more robust pattern-based crosscuts
Proceedings of the 2nd international conference on Aspect-oriented software development
Pointcuts and advice in higher-order languages
Proceedings of the 2nd international conference on Aspect-oriented software development
Meta-programming with Concrete Object Syntax
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Process-Algebraic Foundations of Aspect-Oriented Programming
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
Extensible Grammars for Language Specialization
DBLP-4 Proceedings of the Fourth International Workshop on Database Programming Languages - Object Models and Languages
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Proceedings of the 3rd international conference on Aspect-oriented software development
A semantics for advice and dynamic join points in aspect-oriented programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
JQuery: finding your way through tangled code
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Classpects: unifying aspect- and object-oriented language design
Proceedings of the 27th international conference on Software engineering
Context-sensitive program analysis as database queries
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
PolyAML: a polymorphic aspect-oriented functional programming language
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Modular Software Design with Crosscutting Interfaces
IEEE Software
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-directed weaving of aspects for higher-order functional languages
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Declarative, formal, and extensible syntax definition for aspectJ
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Typed parametric polymorphism for aspects
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
A compilation and optimization model for aspect-oriented programs
CC'03 Proceedings of the 12th international conference on Compiler construction
Using datalog with binary decision diagrams for program analysis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Open modules: modular reasoning about advice
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
CodeQuest: scalable source code queries with datalog
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Regression Test Selection for AspectJ Software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
AspectML: A polymorphic aspect-oriented functional programming language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 7th international conference on Aspect-oriented software development
On to formal semantics for path expression pointcuts
Proceedings of the 2008 ACM symposium on Applied computing
DLS '08 Proceedings of the 2008 symposium on Dynamic languages
Typestate-like analysis of multiple interacting objects
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
.QL: Object-Oriented Queries Made Easy
Generative and Transformational Techniques in Software Engineering II
The dataflow pointcut: a formal and practical framework
Proceedings of the 8th ACM international conference on Aspect-oriented software development
From datalog rules to efficient programs with time and space guarantees
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the semantics of matching trace monitoring patterns
RV'07 Proceedings of the 7th international conference on Runtime verification
Comprehension and dependency analysis of aspect-oriented programs through declarative reasoning
PADL'08 Proceedings of the 10th international conference on Practical aspects of declarative languages
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
Composing safely: a type system for aspects
SC'08 Proceedings of the 7th international conference on Software composition
ReflexML: UML-based architecture-to-code traceability and consistency checking
ECSA'11 Proceedings of the 5th European conference on Software architecture
Hi-index | 0.00 |
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.