DocumentCode
176218
Title
Compiling Clones: What Happens?
Author
Kononenko, Oleksii ; Cheng Zhang ; Godfrey, Michael W.
Author_Institution
David R. Cheriton Sch. of Comput. Sci., Univ. of Waterloo, Waterloo, ON, Canada
fYear
2014
fDate
Sept. 29 2014-Oct. 3 2014
Firstpage
481
Lastpage
485
Abstract
Most clone detection techniques have focused on the analysis of source code, however, sometimes stakeholders have access only to compiled code. To address this, some approaches have been developed for finding similarities at the binary level. However, the precise relationships between source-level and binary-level similarities remains unclear: While a compiler will preserve the semantics of the source code in the transformation to an executable, the resulting binary may differ significantly in structure, including the addition and deletion of entities in the source model. Also, compilation sometimes acts as a kind of normalization, transforming syntactically different but semantically similar structures into the same binary-level representation. In this paper, we describe a preliminary study into the effects of the javac Java compiler on the results of clone detection. We use CCFinderX -- which can perform clone detection on sequences of arbitrary tokens -- to find clones in both the source code and the corresponding byte code of four large Java systems. The study shows that source code and byte code clone detection can produce significantly different results, especially for large programs. We report on a few typical examples of differences, and analyze how they are introduced by the compiler. Finally, we discuss the greater significance of this work, and sketch plans for expanded study.
Keywords
Java; program compilers; source code (software); CCFinderX; Java compiler; Java systems; arbitrary tokens; clone detection techniques; compiling clones; source code analysis; source model; Abstracts; Cloning; Java; Manuals; Semantics; Syntactics; Transforms;
fLanguage
English
Publisher
ieee
Conference_Titel
Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on
Conference_Location
Victoria, BC
ISSN
1063-6773
Type
conf
DOI
10.1109/ICSME.2014.78
Filename
6976122
Link To Document