Frick, VeitGrassauer, ThomasBeck, FabianPinzger, MartinFelderer, MichaelHasselbring, WilhelmRabiser, RickJung, Reiner2020-02-032020-02-032020978-3-88579-694-7https://dl.gi.de/handle/20.500.12116/31701For analyzing changes in source code, edit scripts are used to describe the differences between two versions of a file. These scripts consist of a list of actions that, applied to the source file, result in the new version of the file. In contrast to line-based source code differencing, tree-based approaches such as GumTree, MTDIFF, or ChangeDistiller extract changes by comparing the abstract syntax trees (AST) of two versions of a source file. One benefit of tree-based approaches is their ability to capture moved (sub)trees in the AST. Our approach, the Iterative Java Matcher (IJM), builds upon GumTree and aims at generating more accurate and compact edit scripts that capture the developer's intent. This is achieved by improving the quality of the generated move and update actions, which are the main source of inaccurate actions generated by previous approaches. To evaluate our approach, we conducted a study with 11 external experts and manually analyzed the accuracy of 2400 randomly selected edit actions. Comparing IJM to GumTree and MTDIFF, the results show that IJM provides better accuracy for move and update actions and is more beneficial to understanding the changes.enChange ExtractionTree DifferencingAbstract Syntax TreesSoftware EvolutionGenerating Accurate and Compact Edit Scripts using Tree DifferencingText/Conference Paper10.18420/SE2020_241617-5468