Skip to content

Supported ASTDiff Tools

Nikolaos Tsantalis edited this page Jun 22, 2024 · 16 revisions

Supported ASTDiff Tools

At the moment, we support the following tools:

Tool Info Tree Generator level Enum Value in ASTDiffTools.java
RefactoringMiner 3.0 RMD
GumTree Classic (Greedy) 3.0 GTG
GumTree Simple 3.0 GTS
Iterative Java Matcher (IJM) 2.1 IJM
Move-Optimized Tree Diff (MTDiff) 2.1 MTD
GumTree Classic from 2.1 release 2.1 GT2
IASTMapper 3.0 IAM
VirtualNodeWithGreedy (all AST nodes are placed under a virtual node to find moves + GumTree greedy) 3.0 VNG
VirtualNodeWithSimple (all AST nodes are placed under a virtual node to find moves + GumTree simple) 3.0 VNS
StagedTreeMatchingGreedy (Staged Tree Matching by Fujimoto et al. + GumTree greedy) 3.0 SMG
StagedTreeMatchingSimple (Staged Tree Matching by Fujimoto et al. + GumTree simple) 3.0 SMS
NonMappedSubTreesWithGreedy (non-mapped subtrees are matched in an additional round to find multi-mappings + GumTree greedy) 3.0 NMG
NonMappedSubTreesWithSimple (non-mapped subtrees are matched in an additional round to find multi-mappings + GumTree simple) 3.0 NMS
CopyPasteWithGreedy (Copy and Paste by Higo et al. to find multi-mappings + GumTree greedy) 3.0 CPG
CopyPasteWithSimple (Copy and Paste by Higo et al. to find multi-mappings + GumTree simple) 3.0 CPS
FineGrainedLabelsWithGreedy 3.0 FLG
FineGrainedLabelsWithSimple 3.0 FLS
FineGrainedTypesWithGreedy (combine the AST type of leaf nodes with the AST type of their parent node + GumTree greedy) 3.0 FTG
FineGrainedTypesWithSimple (combine the AST type of leaf nodes with the AST type of their parent node + GumTree simple) 3.0 FTS
COMBINED_TYPE_STAGED_GREEDY (FineGrainedTypesWithGreedy + StagedTreeMatchingGreedy) 3.0 COMBINED_TYPE_STAGED_GREEDY
COMBINED_TYPE_STAGED_SIMPLE (FineGrainedTypesWithSimple + StagedTreeMatchingSimple) 3.0 COMBINED_TYPE_STAGED_SIMPLE
COMBINED_TYPE_VN_GREEDY (FineGrainedTypesWithGreedy + VirtualNodeWithGreedy) 3.0 COMBINED_TYPE_VN_GREEDY
COMBINED_TYPE_VN_SIMPLE (FineGrainedTypesWithSimple + VirtualNodeWithSimple) 3.0 COMBINED_TYPE_VN_SIMPLE
MERGED_STAGED_NONMATCHED_GREEDY (StagedTreeMatchingGreedy + NonMappedSubTreesWithGreedy) 3.0 X_TYPE_STAGED_NONMATCHED_GREEDY
MERGED_STAGED_NONMATCHED_SIMPLE (StagedTreeMatchingSimple + NonMappedSubTreesWithSimple) 3.0 X_TYPE_STAGED_NONMATCHED_SIMPLE
Trivial Diff (Matches the identical program elements recursively) 3.0 TRV
Perfect Diff (which is the output of our manual validation and comes from the json files) 3.0 GOD

Worth mentioning, we have introduced the Trivial Diff and Perfect Diff to facilitate the benchmark process.