@TECHREPORT{R-95-01, PSURL = {/publications/cgi-bin/tr-fetch.pl?r-95-01+ps}, NUMBER = {R-95-01}, INSTITUTION = ida, ADDRESS = idaaddr, YEAR = {1995}, AUTHOR = {Hoffner, Tommy}, TITLE = {Evaluation and Comparison of Program Slicing Tools}, ABSTRACTURL = {/publications/cgi-bin/tr-fetch.pl?r-95-01+abstr}, ABSTRACT = {This report presents an evaluation and comparison of implementations of program slicing, which is a technique for extracting parts of computer programs by tracing the programs' control and data flow related to some data item. The technique has found uses in various application areas such as debugging, program integration and testing where it is useful to be able to focus on relevant parts of large programs. Static program slicing, which is a compile-time version of the analysis, was first introduced 1982, whereas run-time based dynamic slicing systems appeared around 1988. However, previously there has not been any comprehensive evaluation of the state of the art regarding slicing system implementations. This is an attempt to partially fill that need, by evaluating five implementations. Not surprisingly, it was observed that dynamic slicing systems often give smaller and more precise slices than static slicing systems, since in the dynamic case an actual flow of control is known. All systems can be regarded as first generation systems, in that they are mainly developed to support research. They have some performance problems and in several cases support rather small language subsets. Since their are no established criteria for how to evaluate program slicing yet, this report also discusses how to compare slicing tools for different application areas and formulates a method for doing so. The method is then used to perform the evaluation of the tools that provide program slicing, with a particular emphasis on Mariam Kamkar's dynamic interprocedural program slicing tool.}