arrow
返回

RefDiff 2.0: A Multi-Language Refactoring Detection Tool

delete2021-12-01
delete10
PRE
AI
D
Danilo Silva *
D
da Silva, Joao Paulo
G
Gustavo Santos
R
Ricardo Terra
M
Marco Túlio Valente
DOI:10.1109/TSE.2020.2968072delete
delete原文链接
delete分享
delete收藏
摘要

摘要

En 中文
Identifying refactoring operations in source code changes is valuable to understand software evolution. Therefore, several tools have been proposed to automatically detect refactorings applied in a system by comparing source code between revisions. The availability of such infrastructure has enabled researchers to study refactoring practice in large scale, leading to important advances on refactoring knowledge. However, although a plethora of programming languages are used in practice, the vast majority of existing studies are restricted to the Java language due to limitations of the underlying tools. This fact poses an important threat to external validity. Thus, to overcome such limitation, in this paper we propose RefDiff 2.0, a multi-language refactoring detection tool. Our approach leverages techniques proposed in our previous work and introduces a novel refactoring detection algorithm that relies on the Code Structure Tree (CST), a simple yet powerful representation of the source code that abstracts away the specificities of particular programming languages. Despite its language-agnostic design, our evaluation shows that RefDiff's precision (96 percent) and recall (80 percent) are on par with state-of-the-art refactoring detection approaches specialized in the Java language. Our modular architecture also enables one to seamlessly extend RefDiff to support other languages via a plugin system. As a proof of this, we implemented plugins to support two other popular programming languages: JavaScript and C. Our evaluation in these languages reveals that precision and recall ranges from 88 to 91 percent. With these results, we envision RefDiff as a viable alternative for breaking the single-language barrier in refactoring research and in practical applications of refactoring detection.
Keyword:
Codes
Java
Source coding
History
Crawlers
Measurement
Refactoring
source code analysis
code repositories
git
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

IEEE Transactions on Software Engineering 封面图
IEEE Transactions on Software Engineering
IF:
5.6
论文数:
2.9K
被引数:
1.1W

机构

U
universidade federal de lavras
学者数:
213
论文数: 52
被引数: 0
U
Universidade Federal de Minas Gerais
学者数:
693
论文数: 200
被引数: 0
U
universidade tecnologica federal do parana
学者数:
124
论文数: 36
被引数: 0
学者 查看更多机构
引用论文

引用论文

Inferring Functional Linkages between Proteins from Evolutionary Scenarios
err2006-06-01
err0
PREAI
errYun Zhou; Rui Wang; Li Li; Xuefeng Xia; Zhirong Sun
err分享
err收藏
err分享
err收藏
Making Program Refactoring Safer让程序重构更安全
err2010-07-01
err72
PREAI
errSoares, Gustavo; Gheyi, Rohit; Serey, Dalton; Massoni, Tiago
err分享
err收藏
Low-Cycle Fatigue Behavior of 3D-Printed PLA Reinforced with Natural Filler
err2022-03-23
err0
errOAAI
errMiroslav Müller; Vladimír Šleger; Viktor Kolář; Monika Hromasová; Dominik Piš; Rajesh Kumar Mishra
err分享
err收藏
NK Cell Inflammation in the Clinical Outcome of Colorectal Carcinoma
err2015-05-26
err0
errOAAI
errAndrea Coppola; Roberto Arriga; Davide Lauro; Maria Ilaria del Principe; Francesco Buccisano; Luca Maurillo; Patrizia Palomba; Adriano Venditti; Giuseppe Sconocchia
err分享
err收藏
学者 查看更多内容