IEEE Transactions on Software Engineering · 2007 · 596 citations · 49 references
ComputingComputer ScienceChange MeasurementProgramming LanguagesSoftware EngineeringAbstract Syntax TreesSoftware EvolutionSoftware MaintenanceSyntactic ChangeAbstract Syntax Tree AnalysisAbstract Syntax Tree DifferencingAbstract Syntax Tree TraversalMean Absolute ErrorSoftware Evolution AnalysisSource Code Change AnalysisSource Code EvolutionSource Code Modification
Software evolution analysis must identify specific changes across multiple program versions. The study introduces change distilling, a tree differencing algorithm for fine‑grained source code change extraction, and reports its evaluation. The algorithm improves Chawathe et al.’s method by matching AST nodes and generating a minimum edit script, classifying changes via a taxonomy, and is evaluated on a benchmark of 1,064 manually labeled changes from 219 revisions of three open‑source projects. The algorithm outperforms the original approach, achieving a 45 % closer approximation to the minimum edit script and reducing mean absolute percentage error from 79 % to 34 %.
A key issue in software evolution analysis is the identification of particular changes that occur across several versions of a program. We present change distilling, a tree differencing algorithm for fine-grained source code change extraction. For that, we have improved the existing algorithm of Chawathe et al. for extracting changes in hierarchically structured data. Our algorithm detects changes by finding a match between nodes of the compared two abstract syntax trees and a minimum edit script. We can identify change types between program versions according to our taxonomy of source code changes. We evaluated our change distilling algorithm with a benchmark we developed that consists of 1,064 manually classified changes in 219 revisions from three different open source projects. We achieved significant improvements in extracting types of source code changes: our algorithm approximates the minimum edit script by 45% better than the original change extraction approach by Chawathe et al. We are able to find all occurring changes and almost reach the minimum conforming edit script, i.e., we reach a mean absolute percentage error of 34%, compared to 79% reached by the original algorithm. The paper describes both the change distilling and the results of our evaluation.
49
Measures of the Amount of Ecologic Association Between Species
Lee R. Dice · Ecology · 1945 · 11.9K citations
Binary codes capable of correcting deletions, insertions and reversals
V.I. Levenshtein · Soviet physics. Doklady · 1965 · 10.4K citations
THE DISTRIBUTION OF THE FLORA IN THE ALPINE ZONE.<sup>1</sup>
Paul Jaccard · New Phytologist · 1912 · 4.5K citations · Full text
Life Sciences, Botany, Ecology +10
Clone detection using abstract syntax trees
Ira D. Baxter, A. Yahin, Leonardo de Moura et al. · 2002 · 1.3K citations
Programs, life cycles, and laws of software evolution
M. M. Lehman · Proceedings of the IEEE · 1980 · 1.2K citations