I'm happy to announce the first release of Clone Digger tool (1.0-beta).
Two continuous fragments of code form clone if they are similar enough. The presence of clones can greatly increase the software maintenance cost. For instance, every error in the original have to be fixed in all copies.
Clone Digger is the tool for finding software clones (duplicate code) in programs. Currently Python language is supported, Java support will be added later. The following definition of clone is used: two sequences of statements form clone if one of it can be obtained from the other by replacing some subtrees of its abstract syntax tree by other subtrees. Found clone candidates are reported to the HTML with a highlighting of differences. This report can be used to form recommendations for refactoring.
Clone Digger is provided under the GPL license.
To my knowledge Clone Digger is the first tool that finds software clones in Python sources (excluding tools working on the pure text level). I hope that Clone Digger will be very useful for the Python community.
p.s. Clone Digger participates in the Google Summer of Code 2008 program. I am looking for a student willing to work on code analysis and refactoring. The project ideas are listed here: http://clonedigger.sourceforge.net/google_summer_of_code.html<P><A HREF="http://clonedigger.sourceforge.net">Clone Digger 1.0-beta</A> - the tool for finding software clones in Python programs. (23-March-2008) </P>
-- Best regards, Peter Bulychev.