Semantic Differences: A Tool for Summarizing the Effects of Modifications

Authors: Daniel Jackson and David A. Ladd

Proceedings of the International Conference on Software Maintenance, 1994.

Sorry, no postscript yet.

Abstract

This paper describes a tool that takes two versions of a procedure and generates a report summarizing the semantic differences between them. Unlike existing tools based on comparison of program dependence graphs, our tool expresses its results in terms of the observable input-output behaviour of the procedure, rather than its syntactic structure. And because the analysis is truly semantic, it requires no prior matching of syntactic components, and generates fewer spurious differences, so that meaning-preserving transformations (such as renaming local variables) are correctly determined to have no visible effect. A preliminary experiment on modifications applied to the code of a large real-time system suggests that the approach is practical.