Title :
Detecting Clones Across Microsoft .NET Programming Languages
Author :
Al-omari, Farouq ; Keivanloo, Iman ; Roy, Chanchal K. ; Rilling, Juergen
Author_Institution :
Dept. of Comput. Sci., Univ. of Saskatchewan, Saskatoon, SK, Canada
Abstract :
The Microsoft .NET framework and its language family focus on multi-language development to support interoperability across several programming languages. The framework allows for the development of similar applications in different languages through the reuse of core libraries. As a result of such a multi-language development, the identification and trace ability of similar code fragments (clones) becomes a key challenge. In this paper, we present a clone detection approach for the .NET language family. The approach is based on the Common Intermediate Language, which is generated by the .NET compiler for the different languages within the .NET framework. In order to achieve an acceptable recall while maintaining the precision of our detection approach, we define a set of filtering processes to reduce noise in the raw data. We show that these filters are essential for Intermediate Language-based clone detection, without significantly affecting the precision of the detection approach. Finally, we study the quantitative and qualitative performance aspects of our clone detection approach. We evaluate the number of reported candidate clone-pairs, as well as the precision and recall (using manual validation) for several open source cross-language systems, to show the effectiveness of our proposed approach.
Keywords :
open systems; program compilers; programming languages; public domain software; software libraries; software reusability; .NET compiler; Common Intermediate Language; Microsoft .NET framework; Microsoft .NET programming languages; clone-pairs; core library reusability; filtering process; intermediate language-based clone detection; interoperability support; multilanguage development; noise reduction; open source cross-language systems; similar code fragment identification; similar code fragment traceability; Cloning; Computer languages; Context; Filtering; Filtering algorithms; Noise; Software; binary; cross-language clone detection; intermediate language; multi-language; similarity component;
Conference_Titel :
Reverse Engineering (WCRE), 2012 19th Working Conference on
Conference_Location :
Kingston, ON
Print_ISBN :
978-1-4673-4536-1
DOI :
10.1109/WCRE.2012.50