机构地区:[1]Department of Computer Science and Engineering and School of Software, Shanghai Jiao Tong University, Shanghai 200240, China [2]State Key Laboratory of Computer Science, Institute of Software, Chinese Academy of Sciences, Beijing 100190, China
出 处:《Frontiers of Computer Science》2014年第1期52-68,共17页中国计算机科学前沿(英文版)
摘 要: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-
关 键 词:points-to analysis context-sensitive analysis AspectJ
分 类 号:TP311.1[自动化与计算机技术—计算机软件与理论] TS959.2[自动化与计算机技术—计算机科学与技术]
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...
正在载入数据...