by Hannes Thaller, Lukas Linsbauer, Alexander Egyed
Abstract:
Semantic clone detection is the process of finding program elements with similar or equal runtime behavior. For example, detecting the semantic equality between the recursive and iterative implementation of the factorial computation. Semantic clone detection is the de facto technical boundary of clone detectors. In recent years, this boundary has been tested using interesting new approaches. This article contributes a semantic clone detection approach that detects clones which have 0 % syntactic similarity. We present Semantic Clone Detection via Probabilistic Software Modeling (SCD-PSM) as a stable and precise solution to semantic clone detection. PSM builds a probabilistic model of a program that is capable of evaluating and generating runtime data. SCD-PSM leverages this model and its model elements for finding behaviorally equal model elements. This behavioral equality is then generalized to semantic equality of the original program elements. It uses the likelihood between model elements as a distance metric. Then, it employs the likelihood ratio significance test to decide whether this distance is significant, given a pre-specified and controllable false-positive rate. The output of SCD-PSM are pairs of program elements (i.e., methods), their distance, and a decision on whether they are clones or not. SCD-PSM yields excellent results with a Matthews Correlation Coefficient greater than 0.9. These results are obtained on classical semantic clone detection problems such as detecting recursive and iterative versions of an algorithm, but also on complex problems used in coding competitions.
Reference:
Semantic Clone Detection via Probabilistic Software Modeling (Hannes Thaller, Lukas Linsbauer, Alexander Egyed), In Fundamental Approaches to Software Engineering - 25th International Conference, FASE 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022, Munich, Germany, April 2-7, 2022, Proceedings (Einar Broch Johnsen, Manuel Wimmer, eds.), Springer, volume 13241, 2022.
Bibtex Entry:
@Conference{Thaller2022,
author = {Hannes Thaller and Lukas Linsbauer and Alexander Egyed},
booktitle = {Fundamental Approaches to Software Engineering - 25th International Conference, {FASE} 2022, Held as Part of the European Joint Conferences on Theory and Practice of Software, {ETAPS} 2022, Munich, Germany, April 2-7, 2022, Proceedings},
title = {Semantic Clone Detection via Probabilistic Software Modeling},
year = {2022},
editor = {Einar Broch Johnsen and Manuel Wimmer},
pages = {288--309},
publisher = {Springer},
series = {Lecture Notes in Computer Science},
volume = {13241},
abstract = {Semantic clone detection is the process of finding program elements with similar or equal runtime behavior. For example, detecting the semantic equality between the recursive and iterative implementation of the factorial computation. Semantic clone detection is the de facto technical boundary of clone detectors. In recent years, this boundary has been tested using interesting new approaches. This article contributes a semantic clone detection approach that detects clones which have 0 % syntactic similarity. We present Semantic Clone Detection via Probabilistic Software Modeling (SCD-PSM) as a stable and precise solution to semantic clone detection. PSM builds a probabilistic model of a program that is capable of evaluating and generating runtime data. SCD-PSM leverages this model and its model elements for finding behaviorally equal model elements. This behavioral equality is then generalized to semantic equality of the original program elements. It uses the likelihood between model elements as a distance metric. Then, it employs the likelihood ratio significance test to decide whether this distance is significant, given a pre-specified and controllable false-positive rate. The output of SCD-PSM are pairs of program elements (i.e., methods), their distance, and a decision on whether they are clones or not. SCD-PSM yields excellent results with a Matthews Correlation Coefficient greater than 0.9. These results are obtained on classical semantic clone detection problems such as detecting recursive and iterative versions of an algorithm, but also on complex problems used in coding competitions.},
bibsource = {dblp computer science bibliography, https://dblp.org},
biburl = {https://dblp.org/rec/conf/fase/ThallerLE22.bib},
doi = {10.1007/978-3-030-99429-7\_16},
file = {:Conferences/FASE 2022 - Semantic Clone Detection via Probabilistic Software Modeling/FASE 2022 - Semantic Clone Detection via Probabilistic Software Modeling.pdf:PDF},
timestamp = {Fri, 01 Apr 2022 15:49:27 +0200},
url = {https://doi.org/10.1007/978-3-030-99429-7\_16},
}