The DOI matches its Crossref record.
On finding duplication and near-duplication in large software systems
Abstract
This paper describes how a program called dup can be used to locate instances of duplication or near-duplication in a software system. Dup reports both textually identical sections of code and sections that are the same textually except for systematic substitution of one set of variable names and constants for another. Further processing locates longer sections of code that are the same except for other small modifications. Experimental results from running dup on millions of lines from two large software systems show dup to be both effective at locating duplication and fast. Applications could include identifying sections of code that should be replaced by procedures, elimination of duplication during reengineering of the system, redocumentation to include references to copies, and debugging.
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: 19
- johnson, 1991, Personal communication
- kernighan, 1984, The Unix Programming Environment
- malmi, 1992, Detecting plagiarism in Pascal and C programs
- manber, 1994, Finding similar files in a large file system, Proc 1994 Winter USENIX Technical Conference, 1
- mccabe, 1990, Reverse engineering, reusability, redundancy: the connection, American Programmer, 3, 8
- 10.1145/321941.321946 · DOI · Paper page
- 10.1109/52.210605 · doi:10.1109/52.210605
- 10.1145/322234.322237 · doi:10.1145/322234.322237
- scheifler, 1986, The X window system, ACM Transactions on Graphics, 5, 79, 10.1145/22949.24053 · DOI · Paper page
- 10.1109/TIT.1977.1055714 · DOI · Paper page
- baker, 1995, Parameterized pattern matching via boyer-moore-type algorithms, Proc Sixth Ann ACM-SIAM Symp Discrete Algorithms, 541
- 10.1006/jcss.1996.0003 · DOI · Paper page
- 10.2307/1390697 · doi:10.2307/1390697
- 10.1145/988241.988245 · DOI
- 10.1093/comjnl/31.1.1 · DOI
- 10.1145/93542.93574 · doi:10.1145/93542.93574
- baker, 1993, A theory of parameterized pattern matching: algorithms and applications (extended abstract), Proc The 19th Annual ACM Symposium on Theory of Computing, 71
- 10.1145/73560.73561 · doi:10.1145/73560.73561
- 10.1109/ICSM.1994.336783 · DOI
Cited by
Clone detection using abstract syntax trees
Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., & Bier, L. (2002) · Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272) · doi:10.1109/icsm.1998.738528 · Cited by 1,277
Schleimer, S., S, W. D., & Aiken, A. (2003) · Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data · doi:10.1145/872757.872770 · Cited by 1,099
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
Detecting near-duplicates for web crawling
Manku, G. S., Jain, A., & Das Sarma, A. (2007) · Proceedings of the 16th international conference on World Wide Web · doi:10.1145/1242572.1242592 · Cited by 617
Roy, C. K., & Cordy, J. R. (2008) · 2008 16th IEEE International Conference on Program Comprehension · doi:10.1109/icpc.2008.41 · Cited by 533
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
Luo, L., Ming, J., Wu, D., Liu, P., & Zhu, S. (2014) · Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering · doi:10.1145/2635868.2635900 · Cited by 220
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
Rahman, F., Bird, C., & Devanbu, P. (2012) · Empirical Software Engineering · doi:10.1007/s10664-011-9195-3 · Cited by 132
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
Self-citationValue-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
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
Desktop Tools for Offline Plagiarism Detection in Computer Programs
MOZGOVOY, M. (2006) · Informatics in Education · doi:10.15388/infedu.2006.08 · Cited by 46
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
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
Metadata
- Authors
- Baker, B. S.
- Venue
- Proceedings of 2nd Working Conference on Reverse Engineering
- Publisher
- IEEE Comput. Soc. Press
- Published
- 2002-11-19
- Pages
- 86-95
- OpenAlex
- W2109943392
- Cited by
- 717
- References
- 0
- FWCI
- 24.24
- Type
- conference paper
- Language
- en
- Open access
- closed
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.