Detecting code clones with gaps by function applications

Tsubasa Matsushita, Isao Sasano

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

8 Citations (Scopus)

Abstract

Code clones are pairs or groups of code segments which are identical or similar to each other. Generally the existence of code clones is considered to make it cumbersome to maintain the source code, so that various kinds of code clone detection tools have been developed. Simple ones divide the source code into a sequence of lines or tokens and find identical or similar sub-sequences. Differences among code clones, called gaps, may prevent clones from being detected or may make clones to be detected with being fragmented. In order to cope with gaps, various tools have been developed by using abstract syntax trees, comparing some metrics, or using program dependency graphs. In this paper we present a novel algorithm for detecting clones by focusing on gaps by function applications. Based on the algorithm we have implemented a tool for detecting code clones on programs written in Standard ML. Copyright is held by the owner/author(s).

Original languageEnglish
Title of host publicationPEPM 2017 - Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, co-located with POPL 2017
EditorsUlrik Pagh Schultz, Jeremy Yallop
PublisherAssociation for Computing Machinery, Inc
Pages12-22
Number of pages11
ISBN (Electronic)9781450347211
DOIs
Publication statusPublished - 2017 Jan 2
Event2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2017 - Paris, France
Duration: 2017 Jan 162017 Jan 17

Publication series

NamePEPM 2017 - Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, co-located with POPL 2017

Other

Other2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2017
Country/TerritoryFrance
CityParis
Period17/1/1617/1/17

Keywords

  • Abstract syntax tree
  • Code clone
  • Function application
  • Gap

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design
  • Computer Vision and Pattern Recognition

Cite this