Replacements and Replaceables: Making the Case for Code Variants
There are often multiple ways to implement the same requirement in source code. Different implementation choices can result in code snippets that are similar, and have been defined in multiple ways: code clones, examples, simions and variants. Currently, there is a lack of a consistent and unambiguo...
Gespeichert in:
Hauptverfasser: | , , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | There are often multiple ways to implement the same requirement in source
code. Different implementation choices can result in code snippets that are
similar, and have been defined in multiple ways: code clones, examples, simions
and variants. Currently, there is a lack of a consistent and unambiguous
definition of such types of code snippets. Here we present a characterization
study of code variants - a specific type of code snippets that differ from each
other by at least one desired property, within a given code context. We
distinguish code variants from other types of redundancies in source code, and
demonstrate the significant role that they play: about 25% to 43% of developer
discussions (in a set of nine open source projects) were about variants. We
characterize different types of variants based on their code context and
desired properties. As a demonstration of the possible use of our
characterization of code variants, we show how search results can be ranked
based on a desired property (e.g., speed of execution). |
---|---|
DOI: | 10.48550/arxiv.2006.03844 |