CPPCD: A Token-Based Approach to Detecting Potential Clones

Yu Liang Hung, Shingo Takada

Research output: Chapter in Book/Report/Conference proceedingConference contribution

3 Citations (Scopus)

Abstract

Most state-of-the-art clone detection approaches are aimed at finding clones accurately and/or efficiently. Yet, whether a code fragment is a clone often varies according to different people's perspectives and different clone detection tools. In this paper, we present CPPCD (CP-based Potential Clone Detection), a novel token-based approach to detecting potential clones. It generates CP (clone probability) values and CP distribution graphs for developers to decide if a method is a clone. We have evaluated our approach on large-scale software projects written in Java. Our experiments suggest that the majority of clones have CP values greater than or equal to 0.75 and that CPPCD is an accurate (with respect to Type-1, Type-2, and Type-3 clones), efficient, and scalable approach to detecting potential clones.

Original languageEnglish
Title of host publicationIWSC 2020 - Proceedings of the 2020 IEEE 14th International Workshop on Software Clones
EditorsHitesh Sajnani, Chaiyong Ragkhitwetsagul
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages26-32
Number of pages7
ISBN (Electronic)9781728162690
DOIs
Publication statusPublished - 2020 Feb
Event14th IEEE International Workshop on Software Clones, IWSC 2020 - London, Canada
Duration: 2020 Feb 18 → …

Publication series

NameIWSC 2020 - Proceedings of the 2020 IEEE 14th International Workshop on Software Clones

Conference

Conference14th IEEE International Workshop on Software Clones, IWSC 2020
Country/TerritoryCanada
CityLondon
Period20/2/18 → …

Keywords

  • clone detection
  • code clone
  • potential clone

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'CPPCD: A Token-Based Approach to Detecting Potential Clones'. Together they form a unique fingerprint.

Cite this