Identifying syntactic differences between two programs
Software—Practice & Experience
Parameterized pattern matching: algorithms and applications
Journal of Computer and System Sciences
Sim: a utility for detecting similarity in computer programs
SIGCSE '99 The proceedings of the thirtieth SIGCSE technical symposium on Computer science education
Enhanced code compression for embedded RISC processors
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
A Space-Economical Suffix Tree Construction Algorithm
Journal of the ACM (JACM)
Compiler techniques for code compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Analyzing and compressing assembly code
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Sifting out the mud: low level C++ code reuse
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Substring Matching for Clone Detection and Change Tracking
ICSM '94 Proceedings of the International Conference on Software Maintenance
Experiment on the Automatic Detection of Function Clones in a Software System Using Metrics
ICSM '96 Proceedings of the 1996 International Conference on Software Maintenance
Investigating Large Software System Evolution: The Linux Kernel
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
An Approach to Identify Duplicated Web Pages
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
On Software Maintenance Process Improvement Based on Code Clone Analysis
PROFES '02 Proceedings of the 4th International Conference on Product Focused Software Process Improvement
Visualizing textual redundancy in legacy source
CASCON '94 Proceedings of the 1994 conference of the Centre for Advanced Studies on Collaborative research
Clones occurence in large object oriented software packages
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
On Detection of Gapped Code Clones using Gap Locations
APSEC '02 Proceedings of the Ninth Asia-Pacific Software Engineering Conference
Faster algorithms for the construction of parameterized suffix trees
FOCS '95 Proceedings of the 36th Annual Symposium on Foundations of Computer Science
Measuring Clone Based Reengineering Opportunities
METRICS '99 Proceedings of the 6th International Symposium on Software Metrics
Evaluating Clone Detection Tools for Use during Preventative Maintenance
SCAM '02 Proceedings of the Second IEEE International Workshop on Source Code Analysis and Manipulation
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Evaluation Experiments on the Detection of Programming Patterns Using Software Metrics
WCRE '97 Proceedings of the Fourth Working Conference on Reverse Engineering (WCRE '97)
An Intermediate Representation for Reverse Engineering Analyses
WCRE '98 Proceedings of the Working Conference on Reverse Engineering (WCRE'98)
Identifying Similar Code with Program Dependence Graphs
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Generating Robust Parsers using Island Grammars
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
Modeling clones evolution through time series
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Using Clustering to Support the Migration from Static to Dynamic Web Pages
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Extending Software Quality Assessment Techniques to Java Systems
IWPC '99 Proceedings of the 7th International Workshop on Program Comprehension
Identification of High-Level Concept Clones in Source Code
Proceedings of the 16th IEEE international conference on Automated software engineering
Finding Function Clones in Web Applications
CSMR '03 Proceedings of the Seventh European Conference on Software Maintenance and Reengineering
Identifying redundancy in source code using fingerprints
CASCON '93 Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: software engineering - Volume 1
DMS®: Program Transformations for Practical Scalable Software Evolution
Proceedings of the 26th International Conference on Software Engineering
Detection of Redundant Code Using R2D2
Software Quality Control
Linear Complexity Object-Oriented Similarity for Clone Detection and Software Evolution Analyses
ICSM '04 Proceedings of the 20th IEEE International Conference on Software Maintenance
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Aiding Comprehension of Cloning Through Categorization
IWPSE '04 Proceedings of the Principles of Software Evolution, 7th International Workshop
Clone Detection in Source Code by Frequent Itemset Techniques
SCAM '04 Proceedings of the Source Code Analysis and Manipulation, Fourth IEEE International Workshop
Evaluating Clone Detection Techniques from a Refactoring Perspective
Proceedings of the 19th IEEE international conference on Automated software engineering
Practical language-independent detection of near-miss clones
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Understanding Cloned Patterns in Web Applications
IWPC '05 Proceedings of the 13th International Workshop on Program Comprehension
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
SDD: high performance code clone detection system for large scale source code
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the Use of Clone Detection for Identifying Crosscutting Concern Code
IEEE Transactions on Software Engineering
Archeology of Code Duplication: Recovering Duplication Chains from Small Duplication Fragments
SYNASC '05 Proceedings of the Seventh International Symposium on Symbolic and Numeric Algorithms for Scientific Computing
On the effectiveness of clone detection by string matching: Research Articles
Journal of Software Maintenance and Evolution: Research and Practice
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
ICPC '06 Proceedings of the 14th IEEE International Conference on Program Comprehension
Detecting similar Java classes using tree algorithms
Proceedings of the 2006 international workshop on Mining software repositories
The TXL source transformation language
Science of Computer Programming - The fourth workshop on language descriptions, tools, and applications (LDTA'04)
GPLAG: detection of software plagiarism by program dependence graph analysis
Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining
Clone Detection Using Abstract Syntax Suffix Trees
WCRE '06 Proceedings of the 13th Working Conference on Reverse Engineering
Phoenix-based clone detection using suffix trees
Proceedings of the 44th annual Southeast regional conference
Detecting Duplications in Sequence Diagrams Based on Suffix Trees
APSEC '06 Proceedings of the XIII Asia Pacific Software Engineering Conference
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
ICSE '07 Proceedings of the 29th international conference on Software Engineering
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Using Server Pages to Unify Clones in Web Applications: A Trade-Off Analysis
ICSE '07 Proceedings of the 29th international conference on Software Engineering
How Clones are Maintained: An Empirical Study
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Finding similar files in a large file system
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Deducing similarities in Java sources from bytecodes
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Efficient token based clone detection with flexible tokenization
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Comparison and Evaluation of Clone Detection Tools
IEEE Transactions on Software Engineering
Finding Clones with Dup: Analysis of an Experiment
IEEE Transactions on Software Engineering
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Source code enhancement using reduction of duplicated code
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
Clone Detection via Structural Abstraction
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Scalable detection of semantic clones
Proceedings of the 30th international conference on Software engineering
Clone detection in automotive model-based development
Proceedings of the 30th international conference on Software engineering
Towards a mutation-based automatic framework for evaluating code clone detection tools
Proceedings of the 2008 C3S2E conference
Scenario-Based Comparison of Clone Detection Techniques
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
ICPC '08 Proceedings of the 2008 The 16th IEEE International Conference on Program Comprehension
An Empirical Study of Function Clones in Open Source Software
WCRE '08 Proceedings of the 2008 15th Working Conference on Reverse Engineering
Detecting Clones in Business Applications
WCRE '08 Proceedings of the 2008 15th Working Conference on Reverse Engineering
Empirical evaluation of clone detection using syntax suffix trees
Empirical Software Engineering
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
Clone detection and removal for Erlang/OTP within a refactoring environment
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Near-miss function clones in open source software: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Function clone detection in web applications: a semiautomated approach
Journal of Web Engineering
Clone detection and elimination for Haskell
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Near-miss function clones in open source software: an empirical study
Journal of Software Maintenance and Evolution: Research and Practice - Working Conference on Reverse Engineering (WCRE 2008)
Are scripting languages really different?
Proceedings of the 4th International Workshop on Software Clones
A hybrid approach (syntactic and textual) to clone detection
Proceedings of the 4th International Workshop on Software Clones
Issues in clone classification for dataflow languages
Proceedings of the 4th International Workshop on Software Clones
JCCD: a flexible and extensible API for implementing custom code clone detectors
Proceedings of the IEEE/ACM international conference on Automated software engineering
Timesheet assistant: mining and reporting developer effort
Proceedings of the IEEE/ACM international conference on Automated software engineering
An experience report on scaling tools for mining software repositories using MapReduce
Proceedings of the IEEE/ACM international conference on Automated software engineering
Code clones in feature-oriented software product lines
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
An evaluation framework for plagiarism detection
COLING '10 Proceedings of the 23rd International Conference on Computational Linguistics: Posters
An extended assessment of type-3 clones as detected by state-of-the-art tools
Software Quality Control
Towards web services tagging by similarity detection
The smart internet
Viewing simple clones from structural clones' perspective
Proceedings of the 5th International Workshop on Software Clones
Automated type-3 clone oracle using Levenshtein metric
Proceedings of the 5th International Workshop on Software Clones
Analyzing web service similarity using contextual clones
Proceedings of the 5th International Workshop on Software Clones
Scalable clone detection using description logic
Proceedings of the 5th International Workshop on Software Clones
On the need for human-based empirical validation of techniques and tools for code clone analysis
Proceedings of the 5th International Workshop on Software Clones
Towards flexible code clone detection, management, and refactoring in IDE
Proceedings of the 5th International Workshop on Software Clones
Comparison of similarity metrics for refactoring detection
Proceedings of the 8th Working Conference on Mining Software Repositories
MeCC: memory comparison-based clone detector
Proceedings of the 33rd International Conference on Software Engineering
Towards web services tagging by similarity detection
The smart internet
Incremental clone detection and elimination for erlang programs
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Studying software evolution using artefacts' shared information content
Science of Computer Programming
A method for analyzing code homology in genealogy of evolving software
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
A scalable and accurate approach based on count matrix for detecting code clones
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
An empirical study on inconsistent changes to code clones at the release level
Science of Computer Programming
Learning programming languages through corrective feedback and concept visualisation
ICWL'11 Proceedings of the 10th international conference on Advances in Web-Based Learning
IDE-based real-time focused search for near-miss clones
Proceedings of the 27th Annual ACM Symposium on Applied Computing
CBCD: cloned buggy code detector
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
Automated analysis of CSS rules to support style maintenance
Proceedings of the 34th International Conference on Software Engineering
On how often code is cloned across repositories
Proceedings of the 34th International Conference on Software Engineering
Cloning in DSLs: experiments with OCL
SLE'11 Proceedings of the 4th international conference on Software Language Engineering
Boreas: an accurate and scalable token-based approach to code clone detection
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Clones in logic programs and how to detect them
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Increasing clone maintenance support by unifying clone detection and refactoring activities
Information and Software Technology
An empirical study on clone stability
ACM SIGAPP Applied Computing Review
Proceedings of the 12th Koli Calling International Conference on Computing Education Research
XIAO: tuning code clones at hands of engineers in practice
Proceedings of the 28th Annual Computer Security Applications Conference
Understanding privacy policies
Empirical Software Engineering
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Data clone detection and visualization in spreadsheets
Proceedings of the 2013 International Conference on Software Engineering
Using mutation analysis for a model-clone detector comparison framework
Proceedings of the 2013 International Conference on Software Engineering
On the relationships between domain-based coupling and code clones: an exploratory study
Proceedings of the 2013 International Conference on Software Engineering
Searching for better configurations: a rigorous approach to clone evaluation
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Recovering traceability between features and code in product variants
Proceedings of the 17th International Software Product Line Conference
Submodel pattern extraction for simulink models
Proceedings of the 17th International Software Product Line Conference
Identifying clone removal opportunities based on co-evolution analysis
Proceedings of the 2013 International Workshop on Principles of Software Evolution
SPAPE: A semantic-preserving amorphous procedure extraction method for near-miss clones
Journal of Systems and Software
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Tuning research tools for scalability and performance: The NiCad experience
Science of Computer Programming
Active support for clone refactoring: a perspective
Proceedings of the 2013 ACM workshop on Workshop on refactoring tools
DroidLegacy: Automated Familial Classification of Android Malware
Proceedings of ACM SIGPLAN on Program Protection and Reverse Engineering Workshop 2014
Anti-unification for Unranked Terms and Hedges
Journal of Automated Reasoning
Comparison and evaluation of source code mining tools and techniques: A qualitative approach
Intelligent Data Analysis
Hi-index | 0.00 |
Over the last decade many techniques and tools for software clone detection have been proposed. In this paper, we provide a qualitative comparison and evaluation of the current state-of-the-art in clone detection techniques and tools, and organize the large amount of information into a coherent conceptual framework. We begin with background concepts, a generic clone detection process and an overall taxonomy of current techniques and tools. We then classify, compare and evaluate the techniques and tools in two different dimensions. First, we classify and compare approaches based on a number of facets, each of which has a set of (possibly overlapping) attributes. Second, we qualitatively evaluate the classified techniques and tools with respect to a taxonomy of editing scenarios designed to model the creation of Type-1, Type-2, Type-3 and Type-4 clones. Finally, we provide examples of how one might use the results of this study to choose the most appropriate clone detection tool or technique in the context of a particular set of goals and constraints. The primary contributions of this paper are: (1) a schema for classifying clone detection techniques and tools and a classification of current clone detectors based on this schema, and (2) a taxonomy of editing scenarios that produce different clone types and a qualitative evaluation of current clone detectors based on this taxonomy.