Identification of high-level concept clones in source code
- 24 August 2005
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- No. 19384300,p. 107-114
- https://doi.org/10.1109/ase.2001.989796
Abstract
Source code duplication occurs frequently within large software systems. Pieces of source code, functions, and data types are often duplicated in part or in whole, for a variety of reasons. Programmers may simply be reusing a piece of code via copy and paste or they may be "re-inventing the wheel". Previous research on the detection of clones is mainly focused on identifying pieces of code with similar (or nearly similar) structure. Our approach is to examine the source code text (comments and identifiers) and identify implementations of similar high-level concepts (e.g., abstract data types). The approach uses an information retrieval technique (i.e., latent semantic indexing) to statically analyze the software system and determine semantic similarities between source code documents (i.e., functions, files, or code segments). These similarity measures are used to drive the clone detection process. The intention of our approach is to enhance and augment existing clone detection methods that are based on structural analysis. This synergistic use of methods will improve the quality of clone detection. A set of experiments is presented that demonstrate the usage of semantic similarity measure to identify clones within a version of NCSA Mosaic.Keywords
This publication has 31 references indexed in Scilit:
- Clone detection using abstract syntax treesPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Using automatic clustering to produce high-level system organizations of source codePublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Using latent semantic analysis to identify similarities in source code to support program understandingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- A solution to Plato's problem: The latent semantic analysis theory of acquisition, induction, and representation of knowledge.Psychological Review, 1997
- Automatically identifying reusable OO legacy codeComputer, 1997
- Using Linear Algebra for Intelligent Information RetrievalSIAM Review, 1995
- A reverse‐engineering approach to subsystem structure identificationJournal of Software Maintenance: Research and Practice, 1993
- An information retrieval approach for automatically constructing software librariesIEEE Transactions on Software Engineering, 1991
- Indexing by latent semantic analysisJournal of the American Society for Information Science, 1990
- Full text indexing based on lexical relations an application: software librariesPublished by Association for Computing Machinery (ACM) ,1989