• DocumentCode
    2578335
  • 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
  • fYear
    2012
  • fDate
    15-18 Oct. 2012
  • Firstpage
    405
  • Lastpage
    414
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Reverse Engineering (WCRE), 2012 19th Working Conference on
  • Conference_Location
    Kingston, ON
  • ISSN
    1095-1350
  • Print_ISBN
    978-1-4673-4536-1
  • Type

    conf

  • DOI
    10.1109/WCRE.2012.50
  • Filename
    6385136