Data-Flow-Based Unit Testing of Aspect-Oriented Programs
COMPSAC '03 Proceedings of the 27th Annual International Conference on Computer Software and Applications
AspectJ in Action: Practical Aspect-Oriented Programming
AspectJ in Action: Practical Aspect-Oriented Programming
Measuring the dynamic behaviour of AspectJ programs
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A classification system and analysis for aspect-oriented programs
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
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Control and data flow structural testing criteria for aspect-oriented programs
Journal of Systems and Software
Software—Practice & Experience
XFindBugs: eXtended FindBugs for AspectJ
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Hi-index | 0.00 |
This paper aims at automatic detection of infinite recursion at compile time in aspect-oriented programs. Infinite recursion is a known problem with aspect-oriented programming. If programmers do not take particular precautions, aspects that advise other aspects can easily and unintentionally lead to infinite recursion. The solution that is proposed in this paper informs programmers of aspects that lead to infinite recursion by showing compile time error messages and warnings. This paper, additionally, measures effectiveness of its proposed solution by applying it to several case studies. The solution that is proposed in this paper suggests that programming in aspect-oriented languages can be done more safely without restricting languages features or imposing runtime overhead.