Applying Symbolic Execution to Semantic Code Clone Detection

Kazusa Takemoto, Shingo Takada

Research output: Contribution to journalConference articlepeer-review

Abstract

Many approaches have been proposed to detect code clones, which are basically similar code fragments. Most approaches are based on textual similarity. These approaches cannot detect semantic code clones, which are clones that have the same functionality but implemented with different syntax. Two functions can be considered to have the same functionality, when the output is the same given the same input. In order to appropriately generate inputs, we propose applying symbolic execution to semantic code clone detection. These functions are executed to obtain outputs, which are compared to determine if function pairs are clones. Our approach also does not limit output to return values; we also handle arrays and pointers as output, as the execution of the function may cause changes in their values. Furthermore, we classify types to enable cases where the types of inputs and/or outputs are not exactly the same. We evaluate our approach on SemanticCloneBench.

Original languageEnglish
Pages (from-to)118-122
Number of pages5
JournalProceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE
Volume2023-July
DOIs
Publication statusPublished - 2023
Event35th International Conference on Software Engineering and Knowledge Engineering, SEKE 2023 - Hybrid, San Francisco, United States
Duration: 2023 Jul 12023 Jul 10

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Applying Symbolic Execution to Semantic Code Clone Detection'. Together they form a unique fingerprint.

Cite this