楠本研究室

業績一覧

ホーム業績一覧

Identifying Cross-Function Side Effects using Static Analysis

Identifying Cross-Function Side Effects using Static Analysis
電子情報通信学会技術研究報告, vol.114, no.23, pp.25-30 (2014)
概要: Side effects are modifications done to the state of the objects in Object-Oriented Programming languages such as Java. Side effects can happen across the boundary of the functions, therefore they are important properties that often be neglected by the documentations. In this paper, we studied the side effects of functions by using a static analysis method to automatically infer the state dependencies for the return value and side effects of functions. We also present a set of annotations to document these state dependencies. As a result, the annotations presented in this paper reveals well-defined state interactions between objects. These annotations can be used in further investigations by both programmers and tools. We have implemented the analysis method targeting Java bytecode and tested it on vary-sized open source Java software libraries. From our experimental results, we found that 25-33% of the functions in the evaluated open source Java libraries are pure functions, which indicates that a large percentage of the functions is suitable for high level refactoring. And we present a case study of equals and hashCode functions to show the importance of our method in real world programming tasks. タグ: analysis, cross-function, effects, identifying, side, static
@inproceedings{JiachenYang2014,
  author = {Jiachen Yang and Keisuke Hotta and Yoshiki Higo and Shinji Kusumoto},
  title = {Identifying Cross-Function Side Effects using Static Analysis},
  booktitle = {電子情報通信学会技術研究報告},
  volume = {114},
  number = {23},
  pages = {25--30},
  year = {2014},
  month = {may}
}