Handbook of theoretical computer science (vol. B)
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
Problems Creating Task-relevant Clone Detection Reference Data
WCRE '03 Proceedings of the 10th Working Conference on Reverse Engineering
Insights into System-Wide Code Duplication
WCRE '04 Proceedings of the 11th Working Conference on Reverse Engineering
On Refactoring Support Based on Code Clone Dependency Relation
METRICS '05 Proceedings of the 11th IEEE International Software Metrics Symposium
Proceedings of the 2007 OOPSLA workshop on eclipse technology eXchange
Improving prolog programs: Refactoring for prolog
Theory and Practice of Logic Programming
Clone detection and removal for Erlang/OTP within a refactoring environment
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Towards a Normal Form for Mercury Programs
Logic-Based Program Synthesis and Transformation
An Algorithm for Sophisticated Code Matching in Logic Programs
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Comparison and evaluation of code clone detection techniques and tools: A qualitative approach
Science of Computer Programming
Clone detection and elimination for Haskell
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Searching semantically equivalent code fragments in logic programs
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Hi-index | 0.00 |
In this paper, we propose a theoretical framework that allows us to capture, by program analysis, the notion of code clone in the context of logic programming. Informally, two code fragments are considered as cloned if they implement the same functionality. Clone detection can be advantageous from a software engineering viewpoint, as the presence of code clones inside a program reveals redundancy, broadly considered a "bad smell". In the paper, we present a detailed definition of a clone in a logic program and provide an efficient detection algorithm able to identify an important subclass of code clones that could be used for various applications such as program refactoring and plagiarism recognition. Our clone detection algorithm is not tied to a particular logic programming language, and can easily be instantiated for different such languages.