Detecting Clones Across Microsoft .NET Programming Languages

  title={Detecting Clones Across Microsoft .NET Programming Languages},
  author={Farouq Al-Omari and Iman Keivanloo and Chanchal Kumar Roy and Juergen Rilling},
  journal={2012 19th Working Conference on Reverse Engineering},
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… 

Figures and Tables from this paper

Mining revision histories to detect cross-language clones without intermediates

This paper proposes a novel approach, CLCMiner, that detects cross-language clones automatically without the need of an intermediate language, and mines such clones from revision histories, which reflect how programmers maintain cross- language clones in practice.

CLCMiner: Detecting Cross-Language Clones without Intermediates

A novel automated approach to cross-language clone detection, CLCMiner, based on the assumption that revisions to versions of code implemented in di ff erent languages may naturally reflect how programmers change cross- language clones in practice, and that similarities among the revisions may indicate actual similar code.

CLCDSA: Cross Language Code Clone Detection using Syntactical Features and API Documentation

CLCDSA is proposed, a cross language clone detector which can detect CLCs without extensive processing of the source code and without the need to generate an intermediate representation, and outperforms all available models in detecting cross language clones.

Structural and Nominal Cross-Language Clone Detection

In this paper, the challenge of cross-language clone detection is addressed and it is shown that there are many real-world cross- language clones that existing techniques cannot detect.

On the feasibility of detecting cross-platform code clones via identifier similarity

This paper investigates the identifier similarity of the same mobile application on different platforms and provides insights about the feasibility of cross-platform clone detection via identifier similarity and finds that the smaller KL-Divergence the application has, the more accurate the clones detected by identifiers will be.

A Survey on Code Clone, Its Behavior and Applications

The findings indicate that the management of Clones should be started at the earliest and the approaches followed in the tools and the Code Clone patterns that are used for qualitative analysis are summarized.

SeByte: Scalable clone and similarity search for bytecode

LHDiff: A Language-Independent Hybrid Approach for Tracking Source Code Lines

A language-independent technique for tracking source code lines across versions that leverages simhash technique together with heuristics to improve accuracy is proposed that shows better performance than a state-of-the-art language- dependent approach.

Management Aspects of Software Clone Detection and Analysis

A clone detector as a plug-in to the Eclipse IDE and a novel clone refactoring scheduler that applies a constraint programming approach to inform clone management in devising effective techniques and strategies are developed.



Cross-language Clone Detection

This paper introduces a tool, which is based on the CodeDOM library that is included with the Microsoft .NET Framework, to demonstrate the existence of cross-language clones in a real software system that contains both C# and Visual Basic.NET source code.

Supporting the analysis of clones in software systems

An in-depth case study of cloning in a large software system that is in wide use, the Apache Web server, is presented; insights into cloning as it exists in this system are provided, and techniques to manage and make effective use of the large result sets of clone-detection tools are demonstrated.

Enhancing Source-Based Clone Detection Using Intermediate Representation

A technique is proposed that transforms the source code to an intermediate representation, and then reuses established source-based clone detection techniques to detect clones in the intermediate representation.

Comparison and evaluation of code clone detection techniques and tools: A qualitative approach

NICAD: Accurate Detection of Near-Miss Intentional Clones Using Flexible Pretty-Printing and Code Normalization

  • C. RoyJ. Cordy
  • Computer Science
    2008 16th IEEE International Conference on Program Comprehension
  • 2008
A new language- specific parser-based but lightweight clone detection approach exploiting a novel application of a source transformation system that is capable of finding near-miss clones with high precision and recall, and with reasonable performance.

Comparison and Evaluation of Clone Detection Tools

An experiment is presented that evaluates six clone detectors based on eight large C and Java programs (altogether almost 850 KLOC) and selects techniques that cover the whole spectrum of the state-of-the-art in clone detection.

On the Effectiveness of Simhash for Detecting Near-Miss Clones in Large Scale Software Systems

Simhash, a state of the art fingerprint based data similarity measurement technique for detecting both exact and near-miss clones in large scale software systems is investigated and experimental data show that simhash is indeed effective in identifying various types of clones in a software system despite wide variations in experimental circumstances.

“Cloning considered harmful” considered harmful: patterns of cloning in software

It is found that as many as 71% of the clones could be considered to have a positive impact on the maintainability of the software system.

A novel approach based on formal methods for clone detection

This paper presents an approach based on formal methods for detecting code clones that performs the analysis on Java bytecode, which is transformed into CCS processes which are successively checked for equivalence.

Detecting source code similarity using low-level languages

  • V. Juricic
  • Computer Science
    Proceedings of the ITI 2011, 33rd International Conference on Information Technology Interfaces
  • 2011
A method for detecting source code plagiarism and calculating similarity between source files is proposed and the results of its performance analysis that was performed on numerous test cases in different languages are shown.