期刊文献+

A constraint-weaving approach to points-to analysis for AspectJ

A constraint-weaving approach to points-to analysis for AspectJ
原文传递
导出
摘要 Points-to analysis is a static code analysis tech- nique that establishes the relationships between variables of references and allocated objects. A number of points-to analysis algorithms have been proposed for procedural and object-oriented languages like C and Java, while few of them can be used for AspectJ as we know so far. One main rea- son is that Aspect/is an aspect-oriented language which im- plements the separation of crosscutting concerns by advices, pointcuts, and inter-type declarations, while a points-to anal- ysis of AspectJ programs may be imprecise because any as- pect woven into the base code may change the points-to rela- tions in the program and thus a conservative analysis has to be taken in order to handle the aspects. In this paper, we pro- pose a context-sensitive points-to analysis technique called AJPoints for AspectJ. Similar to the weaving mechanism for AspectJ, AJPoints obtains the constraints and templates on the points-to relations for the base code and the aspects, re- spectively, but weaves and solves them in an iterative manner in order to cross the boundary between the base code and the aspects. We have implemented AJPoints on abc AspectJ compiler and evaluated it by using twelve AspectJ benchmark programs. The experimental can achieve a high precision pectJ programs. results show that our technique about points-to relations in As- Points-to analysis is a static code analysis tech- nique that establishes the relationships between variables of references and allocated objects. A number of points-to analysis algorithms have been proposed for procedural and object-oriented languages like C and Java, while few of them can be used for AspectJ as we know so far. One main rea- son is that Aspect/is an aspect-oriented language which im- plements the separation of crosscutting concerns by advices, pointcuts, and inter-type declarations, while a points-to anal- ysis of AspectJ programs may be imprecise because any as- pect woven into the base code may change the points-to rela- tions in the program and thus a conservative analysis has to be taken in order to handle the aspects. In this paper, we pro- pose a context-sensitive points-to analysis technique called AJPoints for AspectJ. Similar to the weaving mechanism for AspectJ, AJPoints obtains the constraints and templates on the points-to relations for the base code and the aspects, re- spectively, but weaves and solves them in an iterative manner in order to cross the boundary between the base code and the aspects. We have implemented AJPoints on abc AspectJ compiler and evaluated it by using twelve AspectJ benchmark programs. The experimental can achieve a high precision pectJ programs. results show that our technique about points-to relations in As-
出处 《Frontiers of Computer Science》 SCIE EI CSCD 2014年第1期52-68,共17页 中国计算机科学前沿(英文版)
关键词 points-to analysis context-sensitive analysis AspectJ points-to analysis, context-sensitive analysis,AspectJ
  • 相关文献

参考文献44

  • 1Hind M, Pioli A. Which pointer analysis should I use? In: Proceed?ings of the 2000 ACM SIGSOFf International Symposium on Soft?ware Testing and Analysis. 2000, 113-123.
  • 2Nguyen P H, Xue J. Interprocedural side-effect analysis and optimisa?tion in the presence of dynamic class loading. In: Proceedings of the 28th Australasian Conference on Computer Science. 2005,9-18.
  • 3Zhao J. Slicing aspect-oriented software. In: Proceedings of the lOth International Workshop on Program Comprehension. 2002,251-260.
  • 4Sui Y, Ye D, Xue J. Static memory leak detection using full-sparse value-flow analysis. In: Proceedings of the 2012 International Sympo?sium on Software Testing and Analysis. 2012, 254-264.
  • 5Xie T, Zhao J. A framework and tool supports for generating test inputs of AspectJ programs. In: Proceedings of the 5th International Confer?ence on Aspect-Oriented Software Development. 2006, 190-201.
  • 6Milanova A, Rountev A, Ryder B G. Parameterized object sensitivity for points-to analysis for Java. ACM Transactions on Software Engi?neering and Methodology, 2002, 14: 1-41.
  • 7Lhotak 0, Hendren L. Scaling Java points-to analysis using SPARK. In: Proceedings of the 12th International Conference on Compiler Con?struction. 2003, 153-169.
  • 8Xu G H, Rountev A. AJANA: a general framework for source-code?level interprocedural dataflow analysis of AspectJ software. In: Pro?ceedings of the 7th International Conference on Aspect-Oriented Soft?ware Development. 2008, 36-47.
  • 9Chatterjee R, Ryder B G, Landi W A. Complexity of points-to analysis of Java in the presence of exceptions. IEEE Transactions on Software Engineering, 2001, 27(6): 481-512.
  • 10Whaley J, Lam M S. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation. 2004, 131-144.

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部