Efficient token based clone detection with flexible tokenization

  • Authors:
  • Hamid Abdul Basit;Simon J. Puglisi;William F. Smyth;Andrew Turpin;Stan Jarzabek

  • Affiliations:
  • Lahore University of Management Sciences, Lahore, Pakistan;Curtin University of Technology;McMaster University;RMIT University;National University of Singapore, Singapore

  • Venue:
  • The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Code clones are similar code fragments that occur at multiple locations in a software system. Detection of code clones provides useful information for maintenance, reengineering, program understanding and reuse. Several techniques have been proposed to detect code clones. These techniques differ in the code representation used for analysis of clones, ranging from plain text to parse trees and program dependence graphs. Clone detection based on lexical tokens involves minimal code transformation and gives good results, but is computationally expensive because of the large number of tokens that need to be compared. We explored string algorithms to find suitable data structures and algorithms for efficient token based clone detection and implemented them in our tool Repeated Tokens Finder (RTF). Instead of using suffix tree for string matching, we use more memory efficient suffix array. RTF incorporates a suffix array based linear time algorithm to detect string matches. It also provides a simple and customizable tokenization mechanism. Initial analysis and experiments show that our clone detection is simple, scalable, and performs better than the previous well-known tools.