The DOI matches its Crossref record.
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
Open accessAbstract
A code clone is a code portion in source files that is identical or similar to another. Since code clones are believed to reduce the maintainability of software, several code clone detection techniques and tools have been proposed. This paper proposes a new clone detection technique, which consists of the transformation of input source text and a token-by-token comparison. For its implementation with several useful optimization techniques, we have developed a tool, named CCFinder (Code Clone Finder), which extracts code clones in C, C++, Java, COBOL and other source files. In addition, metrics for the code clones have been developed. In order to evaluate the usefulness of CCFinder and metrics, we conducted several case studies where we applied the new tool to the source code of JDK, FreeBSD, NetBSD, Linux, and many other systems. As a result, CCFinder has effectively found clones and the metrics have been able to effectively identify the characteristics of the systems. In addition, we have compared the proposed technique with other clone detection techniques.
Overview
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Integrity signals
Registry
Cites
Statistics
Verification
Claims the paper makes
The claims and statistics of this paper haven’t been checked yet.
Run the check — free, no account needed. It reads the open-access text and checks the sources it cites.
Self-check
Percentages, sums and reported differences re-computed from the paper’s own numbers.
The self-check needs the paper’s full text.
Citations
Cites
No references could be resolved yet.
Research works printed but not linked: 21
- Baker, A Program for Identifying Duplicated Code, 24, 49
- 10.1109/WCRE.1995.514697 · DOI · Paper page
- 10.1109/METRIC.1999.809750 · doi:10.1109/metric.1999.809750
- 10.1109/WCRE.1999.806971 · DOI
- 10.1109/ICSM.1998.738528 · DOI · Paper page
- 10.1109/ICSM.1999.792593 · DOI · Paper page
- 2002, FreeBSD
- 2002, Gnu Project
- 10.1017/CBO9780511574931 · DOI · Paper page
- Johnson, Identifying Redundancy in Source Code Using Fingerprints, 171
- 10.1109/ICSM.1994.336783 · DOI
- 10.1016/S0164-1212(98)10008-0 · doi:10.1016/s0164-1212(98)10008-0
- 10.1007/bf00126960 · DOI
- 10.1109/ICSM.1997.624264 · DOI · Paper page
- 2002, Linux Online
- 10.1109/ICSM.1996.565012 · DOI · Paper page
- 10.1109/METRIC.2002.1011328 · DOI
- 2002, NetBSD Project
- 2002, OpenOffice.org Source Project
- Takabayashi, The Detection of Fault-Prone Program Using a NeuralNetwork, 81
- 2002, The Source for Java Technology
Cited by
DECKARD: Scalable and Accurate Tree-Based Detection of Code Clones
Jiang, L., Misherghi, G., Su, Z., & Glondu, S. (2007) · 29th International Conference on Software Engineering (ICSE'07) · doi:10.1109/icse.2007.30 · Cited by 1,039
Maintaining mental models: a study of developer work habits
LaToza, T. D., Venolia, G., & DeLine, R. (2006) · Proceedings of the 28th international conference on Software engineering · doi:10.1145/1134285.1134355 · Cited by 628
Roy, C. K., & Cordy, J. R. (2008) · 2008 16th IEEE International Conference on Program Comprehension · doi:10.1109/icpc.2008.41 · Cited by 533
Managing technical debt in software-reliant systems
Brown, N., Cai, Y., Guo, Y., Kazman, R., Kim, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., et al. (2010) · Proceedings of the FSE/SDP workshop on Future of software engineering research · doi:10.1145/1882362.1882373 · Cited by 432
GPLAG: detection of software plagiarism by program dependence graph analysis
Liu, C., Chen, C., Han, J., & Yu, P. S. (2006) · Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining · doi:10.1145/1150402.1150522 · Cited by 422
Shaping program repair space with existing patches and similar code
Jiang, J., Xiong, Y., Zhang, H., Gao, Q., & Chen, X. (2018) · Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis · doi:10.1145/3213846.3213871 · Cited by 329
Retrieval-based neural source code summarization
Zhang, J., Wang, X., Zhang, H., Sun, H., & Liu, X. (2020) · Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering · doi:10.1145/3377811.3380383 · Cited by 275
Tracking Code Clones in Evolving Software
Duala-Ekoko, E., & Robillard, M. P. (2007) · 29th International Conference on Software Engineering (ICSE'07) · doi:10.1109/icse.2007.90 · Cited by 222
Detecting Vulnerability on IoT Device Firmware: A Survey
Feng, X., Zhu, X., Han, Q.-L., Zhou, W., Wen, S., & Xiang, Y. (2023) · IEEE/CAA Journal of Automatica Sinica · doi:10.1109/jas.2022.105860 · Cited by 185
DéjàVu: a map of code duplicates on GitHub
Lopes, C. V., Maj, P., Martins, P., Saini, V., Yang, D., Zitny, J., Sajnani, H., & Vitek, J. (2017) · Proceedings of the ACM on Programming Languages · doi:10.1145/3133908 · Cited by 183
Evaluating clone detection tools with BigCloneBench
Svajlenko, J., & Roy, C. K. (2015) · 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME) · doi:10.1109/icsm.2015.7332459 · Cited by 172
(2014) · doi:10.1145/2635868.2635901 · Cited by 159
Searching for better configurations: a rigorous approach to clone evaluation
Wang, T., Harman, M., Jia, Y., & Krinke, J. (2013) · Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering · doi:10.1145/2491411.2491420 · Cited by 147
Deep learning similarities from different representations of source code
Tufano, M., Watson, C., Bavota, G., Di Penta, M., White, M., & Poshyvanyk, D. (2018) · Proceedings of the 15th International Conference on Mining Software Repositories · doi:10.1145/3196398.3196431 · Cited by 158
Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S. (2017) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2017.2655046 · Cited by 144
Hard-to-answer questions about code
LaToza, T. D., & Myers, B. A. (2010) · Evaluation and Usability of Programming Languages and Tools · doi:10.1145/1937117.1937125 · Cited by 141
Rahman, F., Bird, C., & Devanbu, P. (2012) · Empirical Software Engineering · doi:10.1007/s10664-011-9195-3 · Cited by 132
A comparison of code similarity analysers
Ragkhitwetsagul, C., Krinke, J., & Clark, D. (2018) · Empirical Software Engineering · doi:10.1007/s10664-017-9564-7 · Cited by 122
Behavior based software theft detection
Wang, X., Jhi, Y.-C., Zhu, S., & Liu, P. (2009) · Proceedings of the 16th ACM conference on Computer and communications security · doi:10.1145/1653662.1653696 · Cited by 101
Finding Clones with Dup: Analysis of an Experiment
Baker, B. S. (2007) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2007.70720 · Cited by 85
Value-based program characterization and its application to software plagiarism detection
Jhi, Y.-C., Wang, X., Jia, X., Zhu, S., Liu, P., & Wu, D. (2011) · Proceedings of the 33rd International Conference on Software Engineering · doi:10.1145/1985793.1985899 · Cited by 83
Retrieve and refine: exemplar-based neural comment generation
Wei, B., Li, Y., Li, G., Xia, X., & Jin, Z. (2020) · Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering · doi:10.1145/3324884.3416578 · Cited by 69
Program Logic Based Software Plagiarism Detection
Zhang, F., Wu, D., Liu, P., & Zhu, S. (2014) · 2014 IEEE 25th International Symposium on Software Reliability Engineering · doi:10.1109/issre.2014.18 · Cited by 57
Detecting differences across multiple instances of code clones
Lin, Y., Xing, Z., Xue, Y., Liu, Y., Peng, X., Sun, J., & Zhao, W. (2014) · Proceedings of the 36th International Conference on Software Engineering · doi:10.1145/2568225.2568298 · Cited by 41
Diet code is healthy: simplifying programs for pre-trained models of code
Zhang, Z., Zhang, H., Shen, B., & Gu, X. (2022) · Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3540250.3549094 · Cited by 41
Does BLEU Score Work for Code Migration?
Tran, N., Tran, H., Nguyen, S., Nguyen, H., & Nguyen, T. (2019) · 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) · doi:10.1109/icpc.2019.00034 · Cited by 49
Program Characterization Using Runtime Values and Its Application to Software Plagiarism Detection
Jhi, Y.-C., Jia, X., Wang, X., Zhu, S., Liu, P., & Wu, D. (2015) · IEEE Transactions on Software Engineering · doi:10.1109/tse.2015.2418777 · Cited by 35
Ming, J., Zhang, F., Wu, D., Liu, P., & Zhu, S. (2016) · IEEE Transactions on Reliability · doi:10.1109/tr.2016.2570554 · Cited by 33
Active Inductive Logic Programming for Code Search
Sivaraman, A., Zhang, T., Van den Broeck, G., & Kim, M. (2019) · 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE) · doi:10.1109/icse.2019.00044 · Cited by 34
Measuring code behavioral similarity for programming and software engineering education
Li, S., Xiao, X., Bassett, B., Xie, T., & Tillmann, N. (2016) · Proceedings of the 38th International Conference on Software Engineering Companion · doi:10.1145/2889160.2889204 · Cited by 30
AuDeNTES: Automatic Detection of teNtative plagiarism according to a rEference Solution
Mariani, L., & Micucci, D. (2012) · ACM Transactions on Computing Education · doi:10.1145/2133797.2133799 · Cited by 12
PaReco: patched clones and missed patches among the divergent variants of a software family
Ramkisoen, P. K., Businge, J., van Bladel, B., Decan, A., Demeyer, S., De Roover, C., & Khomh, F. (2022) · Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering · doi:10.1145/3540250.3549112 · Cited by 10
Metadata
- Authors
- Kamiya, T., Kusumoto, S., & Inoue, K.
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2002-07
- Volume
- 28
- Issue
- 7
- Pages
- 654-670
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- 2326-3881
- OpenAlex
- W2138756793
- Cited by
- 1,711
- References
- 0
- FWCI
- 85.77
- Type
- journal article
- Language
- en
- Open access
- green
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review
Data sources
Bibliographic data: Semantic Scholar, OpenAlex, Crossref.
Contains information from the Semantic Scholar Academic Graph Datasets, made available under the ODC Attribution License (ODC-BY 1.0).
Semantic Scholar’s data is described in: Kinney, R., et al. (2023). The Semantic Scholar Open Data Platform. arXiv:2301.10140.