Towards Differential Program Analysis

Joel Winstead and David Evans. Workshop on Dynamic Analysis. 9 May 2003.

Differential Program Analysis is the task of analyzing two related programs to determine the behavioral difference between them. One goal is to find an input for which the two programs will produce different outputs, thus illustrating the behavioral difference between the two programs. Because the general problem is undecidable, an unsound or incomplete analysis is necessary. A combination of static and dynamic techniques may be able to produce useful results for typical programs, by conducting a search for differentiating inputs guided by heuristics. This paper defines the problem, describing what would be necessary for this kind of analysis, and presents preliminary results illustrating the potential of this technique.

Keywords: differential program analysis, static analysis, dynamic analysis, program behavior, software maintenance.

Complete Paper (4 pages) [PDF]