Contribution-based call stack abstraction for call string based pointer analysis

  • Authors:
  • Ju Qian;Lin Chen;Baowen Xu;Xiaofang Zhang

  • Affiliations:
  • Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China and Shanghai Key Laboratory of Computer Software Testing and Evaluating, Shanghai 201112, China;State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210093, China;State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210093, China;Soochow University, Suzhou 215006, China and State Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210093, China

  • Venue:
  • Information and Software Technology
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Context: Different method calls may have different contributions to the precision of the final application when abstracted into the call strings. The existing call string based pointer analysis algorithms do not consider such contribution difference and hence may not achieve best cost-effectiveness. Objective: To be more cost-effective, we try to leverage the contribution information of each method call in call string based pointer analysis. Method: The paper firstly proposes a contribution-based call stack abstraction method which abstracts the call stacks into call strings with the contribution information under consideration. Then, we apply the new call stack abstraction method to the pointer analysis of AspectJ programs and propose a concern-sensitive points-to analysis method. Besides, the new abstraction method is also applied to multi-threaded Java programs and results in a thread-sensitive pointer analysis method. Results: The experimental results show that the two pointer analysis methods with contribution-based call stack abstraction can be more cost-effective than the ordinary call string based approaches for an application that detects harmful advices and an application that detects inter-thread data flow. Conclusion: These pointer analysis methods more concretely and more clearly show that the contribution-based call stack abstraction can lead to better cost-effectiveness for the given applications.