Mining revision histories to detect cross-language clones without intermediates

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-langu...

Full description

Saved in:
Bibliographic Details
Main Authors: JIANG, Lingxiao, PENG, Zhiming, ZHONG, Hao, YU, Haibo, ZHAO, Jianjun
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2016
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/3438
https://ink.library.smu.edu.sg/context/sis_research/article/4439/viewcontent/ase16clcminer.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-4439
record_format dspace
spelling sg-smu-ink.sis_research-44392017-02-09T09:15:39Z Mining revision histories to detect cross-language clones without intermediates JIANG, Lingxiao PENG, Zhiming JIANG, Lingxiao ZHONG, Hao YU, Haibo ZHAO, Jianjun 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. 2016-09-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/3438 info:doi/10.1145/2970276.2970363 https://ink.library.smu.edu.sg/context/sis_research/article/4439/viewcontent/ase16clcminer.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Software revision history Cross-language clone Diff Java C# languages Programming Languages and Compilers Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Software revision history
Cross-language clone
Diff
Java
C# languages
Programming Languages and Compilers
Software Engineering
spellingShingle Software revision history
Cross-language clone
Diff
Java
C# languages
Programming Languages and Compilers
Software Engineering
JIANG, Lingxiao
PENG, Zhiming
JIANG, Lingxiao
ZHONG, Hao
YU, Haibo
ZHAO, Jianjun
Mining revision histories to detect cross-language clones without intermediates
description 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.
format text
author JIANG, Lingxiao
PENG, Zhiming
JIANG, Lingxiao
ZHONG, Hao
YU, Haibo
ZHAO, Jianjun
author_facet JIANG, Lingxiao
PENG, Zhiming
JIANG, Lingxiao
ZHONG, Hao
YU, Haibo
ZHAO, Jianjun
author_sort JIANG, Lingxiao
title Mining revision histories to detect cross-language clones without intermediates
title_short Mining revision histories to detect cross-language clones without intermediates
title_full Mining revision histories to detect cross-language clones without intermediates
title_fullStr Mining revision histories to detect cross-language clones without intermediates
title_full_unstemmed Mining revision histories to detect cross-language clones without intermediates
title_sort mining revision histories to detect cross-language clones without intermediates
publisher Institutional Knowledge at Singapore Management University
publishDate 2016
url https://ink.library.smu.edu.sg/sis_research/3438
https://ink.library.smu.edu.sg/context/sis_research/article/4439/viewcontent/ase16clcminer.pdf
_version_ 1770573202708234240