Handbook of logic in artificial intelligence and logic programming
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Tool Demonstration: Finding Duplicated Code Using Program Dependences
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
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
CP-Miner: Finding Copy-Paste and Related Bugs in Large-Scale Software Code
IEEE Transactions on Software Engineering
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Comparison and Evaluation of Clone Detection Tools
IEEE Transactions on Software Engineering
Clone Detection via Structural Abstraction
WCRE '07 Proceedings of the 14th Working Conference on Reverse Engineering
Refactoring with wrangler, updated: data and process refactorings, and integration with eclipse
Proceedings of the 7th ACM SIGPLAN workshop on ERLANG
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
CSMR '09 Proceedings of the 2009 European Conference on Software Maintenance and Reengineering
An Assessment of Type-3 Clones as Detected by State-of-the-Art Tools
SCAM '09 Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation
Clone detection and elimination for Haskell
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
ERLANG Programming
Similar code detection and elimination for erlang programs
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
A domain-specific language for scripting refactorings in erlang
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
What kind of and how clones are refactored?: a case study of three OSS projects
Proceedings of the Fifth Workshop on Refactoring Tools
Let's make refactoring tools user-extensible!
Proceedings of the Fifth Workshop on Refactoring Tools
Multicore profiling for Erlang programs using percept2
Proceedings of the twelfth ACM SIGPLAN workshop on Erlang
Hi-index | 0.00 |
A well-known bad code smell in refactoring and software maintenance is the existence of code clones, which are code fragments that are identical or similar to one another. This paper describes an approach to incrementally detecting 'similar' code based on the notion of least-general common abstraction, or anti-unification, as well as a framework for user-controlled incremental elimination of code clones within the context of Erlang programs. The clone detection algorithm proposed in this paper achieves 100% precision, high recall rate, and is user-customisable regarding the granularity of the clone classes reported. By detecting and eliminating clones in an incremental way, we make it possible for the tool to be used in an interactive way even with large codebases. Both the clone detection and elimination functionalities are integrated with Wrangler, a tool for interactive refactoring of Erlang programs. We evaluate the approach with various case studies.