摘要
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-