The DOI matches its Crossref record.
Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction
Abstract
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.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
No references could be resolved yet.
Research works printed but not linked: 47
- 10.1016/0020-0271(74)90020-5 · doi:10.1016/0020-0271(74)90020-5
- 10.1007/s10515-006-0002-0 · DOI
- Asklund, Identifying Conflicts during Structural Merge, 231
- 10.1109/ICSM.1998.738528 · DOI · Paper page
- Bernstein, 2005, SimPack: A Generic Java Library for Similarity Measures in Ontologies
- 10.1016/j.tcs.2004.12.030 · DOI · Paper page
- 10.1109/MSR.2007.14 · DOI
- 10.1145/233269.233366 · DOI · Paper page
- 10.1109/TSE.2005.71 · DOI · Paper page
- Demeyer, 1999, Famix—The Famoos Information Exchange Model
- 10.2307/1932409.JSTOR1932409 · doi:10.2307/1932409.jstor1932409
- 10.1109/ICPC.2006.16 · DOI
- 10.1109/ICSM.1998.738508 · DOI · Paper page
- 10.1109/TSE.2005.28 · DOI
- 10.1109/IWPSE.2004.1334771 · doi:10.1109/iwpse.2004.1334771
- 10.1145/93542.93574 · doi:10.1145/93542.93574
- 10.1109/icsm.2002.1167812 · DOI
- 10.1145/359581.359603 · DOI · Paper page
- 10.1111/j.1469-8137.1912.tb05611.x · DOI · Paper page
- 10.1109/ICSM.1994.336770 · DOI · Paper page
- Kelter, 2005, A Generic Difference Algorithm for UML Models, Software Eng., 105
- 10.1145/1137983.1137999 · DOI
- 10.1109/ICSE.2007.20 · DOI
- 10.1109/wcre.2005.33 · DOI
- 10.1109/PROC.1980.11805 · DOI · Paper page
- Levenshtein, 1966, Binary Codes Capable of Correcting Deletions, Insertions and Reversals, Soviet Physics Doklady, 10, 707
- 10.1109/ICSM.2004.1357805 · doi:10.1109/icsm.2004.1357805
- 10.1109/TSE.2002.1000449 · DOI · Paper page
- 10.1109/TSE.2005.74 · DOI
- 10.1109/ICSM.2004.1357803 · DOI
- 10.1145/1137983.1138000 · DOI
- 10.1016/0196-6774(90)90011-3 · DOI
- 10.1145/1081706.1081725 · DOI
- 10.1145/1083142.1083147 · DOI · Paper page
- 10.1145/322139.322143 · DOI · Paper page
- 10.1109/WPC.2002.1021334 · doi:10.1109/wpc.2002.1021334
- 10.1007/978-3-662-04921-1 · DOI · Paper page
- 10.1109/CMPSAC.1998.716632 · doi:10.1109/cmpsac.1998.716632
- 10.1145/111062.111071 · DOI
- Würsch, 2006, Improving ChangeDistiller—Improving Abstract Syntax Tree Based Source Code Change Detection
- 10.1109/TSE.2005.106 · DOI
- 10.1145/1101908.1101919 · DOI · Paper page
- 10.1002/spe.4380210706 · DOI · Paper page
- 10.1016/0164-1212(94)90026-4 · doi:10.1016/0164-1212(94)90026-4
- 10.1109/TSE.2004.52 · DOI · Paper page
- 10.1016/0031-3203(94)00109-Y · DOI
- 10.1109/TSE.2005.72 · DOI · Paper page
Cited by
An exploratory study of the pull-based software development model
Gousios, G., Pinzger, M., & Deursen, A. V. (2014) · Proceedings of the 36th International Conference on Software Engineering · doi:10.1145/2568225.2568260 · Cited by 628
Self-citationShaping program repair space with existing patches and similar code
Jiang, J., Xiong, Y., Zhang, H., Gao, Q., & Chen, X. (2018) · Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis · doi:10.1145/3213846.3213871 · Cited by 329
CCT5: A Code-Change-Oriented Pre-trained Model
Lin, B., Wang, S., Liu, Z., Liu, Y., Xia, X., & Mao, X. (2023) · Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3611643.3616339 · Cited by 69
Developers' code context models for change tasks
Fritz, T., Shepherd, D. C., Kevic, K., Snipes, W., & Bräunlich, C. (2014) · Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering · doi:10.1145/2635868.2635905 · Cited by 45
Detecting differences across multiple instances of code clones
Lin, Y., Xing, Z., Xue, Y., Liu, Y., Peng, X., Sun, J., & Zhao, W. (2014) · Proceedings of the 36th International Conference on Software Engineering · doi:10.1145/2568225.2568298 · Cited by 41
Metadata
- Authors
- Fluri, B., Wursch, M., PInzger, M., & Gall, H.
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2007-11
- Volume
- 33
- Issue
- 11
- Pages
- 725-743
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- 2326-3881
- OpenAlex
- W2153150125
- Cited by
- 607
- References
- 0
- FWCI
- 55.90
- Type
- journal article
- Language
- en
- Open access
- closed
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
How to cite
Cite CoChat for the checks on this page, and the paper for its own findings.
- This page
- CoChat. (2026). Citation check: Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction. https://app.cochat.ai/papers/10.1109/tse.2007.70731
- The paper
- Fluri, B., Wursch, M., PInzger, M., & Gall, H. (2007). Change Distilling:Tree Differencing for Fine-Grained Source Code Change Extraction. IEEE Transactions on Software Engineering. https://doi.org/10.1109/tse.2007.70731
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.