Title :
Precise identification of side-effect-free methods in Java
Author_Institution :
Dept. of Comput. Sci. & Eng., Ohio State Univ., USA
Abstract :
Knowing which methods do not have side effects is necessary in a variety of software tools for program understanding, restructuring, optimization, and verification. We present a general approach for identifying side-effect-free methods in Java software. Our technique is parameterized by class analysis and is designed to work on incomplete programs. We present empirical results from two instantiations of the approach, based on rapid type analysis and on points-to analysis. In our experiments with several components, on average 22% of the investigated methods were identified as free of side effects. We also present a precision evaluation which shows that the approach achieves almost perfect precision - i.e., it almost never misses methods that in reality have no side effects. These results indicate that very precise identification of side-effect-free methods is possible with simple and inexpensive analysis techniques, and therefore can be easily incorporated in software tools.
Keywords :
Java; formal verification; optimising compilers; reverse engineering; software tools; Java; class analysis; points-to analysis; precise identification; program optimization; program restructuring; program understanding; program verification; rapid type analysis; side-effect-free methods; software tools; Computer science; Debugging; Information analysis; Java; Optimization methods; Optimizing compilers; Programming profession; Reverse engineering; Software tools; Unified modeling language;
Conference_Titel :
Software Maintenance, 2004. Proceedings. 20th IEEE International Conference on
Print_ISBN :
0-7695-2213-0
DOI :
10.1109/ICSM.2004.1357793