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...
Saved in:
Main Authors: | , , , , |
---|---|
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 |