Finding Similarities in Source Code Through Factorization

  • Authors:
  • Michel Chilowicz;Étienne Duris;Gilles Roussel

  • Affiliations:
  • Université Paris-Est, Laboratoire d'Informatique de l'Institut Gaspard-Monge, UMR CNRS 8049, 5 Bd Descartes, 77454 Marne-la-Vallée Cedex 2, France;Université Paris-Est, Laboratoire d'Informatique de l'Institut Gaspard-Monge, UMR CNRS 8049, 5 Bd Descartes, 77454 Marne-la-Vallée Cedex 2, France;Université Paris-Est, Laboratoire d'Informatique de l'Institut Gaspard-Monge, UMR CNRS 8049, 5 Bd Descartes, 77454 Marne-la-Vallée Cedex 2, France

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2009

Quantified Score

Hi-index 0.01

Visualization

Abstract

The high availability of a huge number of documents on the Web makes plagiarism very attractive and easy. This plagiarism concerns any kind of document, natural language texts as well as more structured information such as programs. In order to cope with this problem, many tools and algorithms have been proposed to find similarities. In this paper we present a new algorithm designed to detect similarities in source codes. Contrary to existing methods, this algorithm relies on the notion of function and focuses on obfuscation with inlining and outlining of functions. This method is also efficient against insertions, deletions and permutations of instruction blocks. It is based on code factorization and uses adapted pattern matching algorithms and structures such as suffix arrays.