FORM: A feature-oriented reuse method with domain-specific reference architectures
Annals of Software Engineering
JastAdd: an aspect-oriented compiler construction system
Science of Computer Programming - Special issue: Language descriptions, tools and applications (LDTA'01)
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Proceedings of the 25th International Conference on Software Engineering
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Implementing protocols via declarative event patterns
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
Using Pointcut Delta Analysis to Support Evolution of Aspect-Oriented Software
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A join point for loops in AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
When to use features and aspects?: a case study
Proceedings of the 5th international conference on Generative programming and component engineering
Aspect-oriented application-level scheduling for J2EE servers
Proceedings of the 6th international conference on Aspect-oriented software development
MapReduce: simplified data processing on large clusters
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
The JastAdd extensible Java compiler
Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion
EJFlow: taming exceptional control flows in aspect-oriented programming
Proceedings of the 7th international conference on Aspect-oriented software development
A synchronized block join point for AspectJ
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Aspect-oriented support for synchronization in parallel computing
Proceedings of the 1st workshop on Linking aspect technology and evolution
FlexSync: An aspect-oriented approach to Java synchronization
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Closure joinpoints: block joinpoints without surprises
Proceedings of the tenth international conference on Aspect-oriented software development
Hi-index | 0.00 |
Synchronization is a good candidate for an aspect in aspect-oriented programming (AOP) since programmers have to choose the best granularity of synchronization for the underlying hardware to obtain the best execution performance. If synchronization is an aspect, programmers can change the synchronization code independently of the rest of the program when the program runs on different hardware. However, existing AOP languages such as AspectJ have problems. They cannot select an arbitrary code region as a join point. Moreover, they cannot enforce weaving of a synchronization aspect. Since it is an alternative feature in feature modeling, at least one of available synchronization aspects must be woven. Otherwise, the program would be thread-unsafe. Since an aspect in AspectJ is inherently optional, programmers must be responsible for weaving it. To solve these problems, this paper proposes two new constructs for AspectJ, regioncut and assertions for advice. Regioncut selects arbitrary code region as a join point and assertion for advice enforces weaving a mandatory advice. We implemented these constructs by extending the AspectBench compiler. We evaluated the design of our constructs by applying them to two open-source software products, Javassist and Hadoop.