CCFinderX is a tool for detecting code clones from source code, originally developed by Toshiro Kamiya. It is a re-design a previous tool CCFinder, described in the paper "CCFinder: A Multi-Linguistic Token-based Code Clone Detection System for Large Scale Source Code".
CCFindeX can extract code code clones correctly from source code even in cases where the names of variables habe changed.
Features of CCFinderX
- Detect duplicated code written in Java, C, C++, COBOL, VisualBasic and C#.
- Multi-threadding for multi-core CPU
- AST-based preprocessing with an island-parser like parser.
- Search functions
- Support for programming languages in (as possible as) equal level.
- Users can adapt the tool to another programming languages or dialects.
- Analysis using metrics of code clone
- For interoperability with another tools, the tool can read/write data in TSV(tab separated values) text format.
- Code clone shaper as described in "On Software Maintenance Process Improvement Based On Code Clone Analysis"
- Support for parameterized match (P-match) as described in "On finding Duplication and Near-Duplication in Large Software System".
- Interactive analysis with multiple views of GUI front-end GemX, a re-implementation of Gemini, described in "Gemini: Code Clone Analysis Tool".
About this repository
This is a clone of CCFinderX that has the settings to build with autoconf on a Linux machine.
ccfinderx requires the development packages for Python, Boost, JNI (Java SDK), and ICU.
On Debian 8 (jessie), you need at least the following packages installed: # aptitude install libtool autoconf automake make build-essential autoconf-archive
You'll also need various Boost libraries, it may be easiest to just do:
# aptitude install libboost-all-dev
autconf-archive is important to get
AX_BOOST_BASE referenced in
After dependencies are installed, the process to build
$ libtoolize $ aclocal -I m4 --install $ autoconf $ automake --foreign --add-missing $ ./configure $ make
If there is an error in make
ccfinderx_CCFinderX.h, then is necessary to generate it via:
$ cd GemX $ make ccfinderx_CCFinderX_h
To build GemX (the graphical user interface):
$ cd GemX $ make
This fork was made of CCFinder distributed under MIT License since January 25, 2010 (as declared in CCFinder official web page.