Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Obvious or not?: regulating architectural decisions using aspect-oriented programming
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
ICSE '81 Proceedings of the 5th international conference on Software engineering
Remote pointcut: a language construct for distributed AOP
Proceedings of the 3rd international conference on Aspect-oriented software development
Untangling: a slice extraction refactoring
Proceedings of the 3rd international conference on Aspect-oriented software development
Josh: an open AspectJ-like language
Proceedings of the 3rd international conference on Aspect-oriented software development
Aspect language features for concern coverage profiling
Proceedings of the 4th international conference on Aspect-oriented software development
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using aspects to support the software process: XP over Eclipse
Proceedings of the 5th international conference on Aspect-oriented software development
Bugdel: An Aspect-Oriented Debugging System
APSEC '05 Proceedings of the 12th Asia-Pacific Software Engineering Conference
Expressive pointcuts for increased modularity
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Hi-index | 0.00 |
Currently, it is possible to use Aspect-Oriented languages to attach behavior to code based on semantic or syntactic properties of that code. There is no language, however, that allows developers to attach behavior based on static metaproperties of code. Here, we demonstrate a technique for applying AOP methods to metaproperties of source code. We use advice to coherently define runtime behavior for subsets of code that need not share semantic or syntactic properties. To illustrate the approach, we use Java as a base language, and define a family of pointcuts based on the edit time of the source lines, then build a simple debugging application that applies runtime tracing to only the most recently changed code. Using this technique, the tracing code is neatly modularized and need not depend on any semantic properties of the base code. We believe that this approach has powerful applications for debugging as well as for software engineering researchers looking to explore the runtime effects of extra-linguistic features.