Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
9-2016
Abstract
To attract more users on different platforms, many projects release their versions in multiple programming languages (e.g., Java and C#). They typically have many code snippets that implement similar functionalities, i.e., cross-language clones. Programmers often need to track and modify cross-language clones consistently to maintain similar functionalities across different language implementations. In literature, researchers have proposed approaches to detect cross-language clones, mostly for languages that share a common intermediate language (such as the .NET language family) so that techniques for detecting single-language clones can be applied. As a result, those approaches cannot detect cross-language clones for many projects that are not implemented in a .NET language. To overcome the limitation, in this paper, we propose a novel approach, CLCMiner, that detects cross-language clones automatically without the need of an intermediate language. Our approach mines such clones from revision histories, which reflect how programmers maintain cross-language clones in practice. We have implemented a prototype tool for our approach and conducted an evaluation on five open source projects that have versions in Java and C#. The results show that CLCMiner achieves high accuracy and point to promising future work.
Keywords
Software revision history, Cross-language clone, Diff, Java, C# languages
Discipline
Programming Languages and Compilers | Software Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
ASE 2016: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering: Singapore, 2016 September 3-7
First Page
696
Last Page
701
ISBN
9781450338455
Identifier
10.1145/2970276.2970363
Publisher
ACM
City or Country
New York
Citation
JIANG, Lingxiao; PENG, Zhiming; JIANG, Lingxiao; ZHONG, Hao; YU, Haibo; and ZHAO, Jianjun.
Mining revision histories to detect cross-language clones without intermediates. (2016). ASE 2016: Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering: Singapore, 2016 September 3-7. 696-701.
Available at: https://ink.library.smu.edu.sg/sis_research/3438
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
http://doi.org./10.1145/2970276.2970363