A polymorphic type system for PROLOG.
Artificial Intelligence
Identifying the semantic and textual differences between two versions of a program
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Identifying syntactic differences between two programs
Software—Practice & Experience
YAP3: improved detection of similarities in computer program and other texts
SIGCSE '96 Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education
Pattern matching for clone and concept detection
Reverse engineering
Constraint-based mode analysis of mercury
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Winnowing: local algorithms for document fingerprinting
Proceedings of the 2003 ACM SIGMOD international conference on Management of data
Searching semantically equivalent code fragments in logic programs
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Shared information and program plagiarism detection
IEEE Transactions on Information Theory
An Algorithm for Sophisticated Code Matching in Logic Programs
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Clones in logic programs and how to detect them
LOPSTR'11 Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.00 |
In this work we define a program transformation that normalises a Mercury program by reordering clauses, body goals, and predicate arguments. The transformation, which preserves the well-modedness and determinism characteristics of the program, aims at reducing the complexity of performing a search for duplicated or similar code fragments between programs. In previous work, we have defined an analysis that searches for such duplicated functionality basically by pairwise comparing atoms and goals. While feasible in theory, the number of permutations to perform during the search renders it hard if not impossible to use in practice. We conjecture that the transformation to normal form, defined in this work, allows to substantially reduce the number of permutations, and hence the complexity of the search.