“…CCFinder can also handle name changes, which the line-by-line approach cannot handle. However, CCFinder or a token-based technique takes more CPU time and more memory than lineby-line comparison [8,35,17,5]. CCFinder uses a suffix tree algorithm, and so it cannot handle statement insertions and deletions in code clones [7].…”
Section: Summary Of Textual Approachesmentioning
confidence: 99%
“…Tokenization is performed during lexical analysis by compiler front ends in programing languages [5,8,9,10]. Each line of source code is converted into a sequence of tokens.…”
Section: Transformationmentioning
confidence: 99%
“…The presence of duplicated but identical bugs in many locations within a piece of software increases the difficulty of software maintenance. Recent research [5,8,10,11] with large software systems [8,35] has detected that 22.3% of Linux code has clones. Kamiya et al [4] has reported 29% cloned code in JDK.…”
Section: Introductionmentioning
confidence: 99%
“…1) Detecting cloned code may help detect malicious software [3]. 2) Code clone detection may find similar code and help detect plagiarism and copyright infringement [2,4,5]. 3) Code clone detection helps reduce the source code size by performing code compaction [6].…”
If two fragments of source code are identical or similar to each other, they are called code clones. Code clones introduce difficulties in software maintenance and cause bug propagation. Software clones occur due to several reasons such as code reuse by copying pre-existing fragments, coding style, and repeated computation using duplicated functions with slight changes in variables or data structures used. If a code fragment is edited, it will have to be checked against all related code clones to see if they need to be modified as well. Removal, avoidance or refactoring of cloned code are other important issues in software maintenance. However, several research studies have demonstrated that removal or refactoring of cloned code is sometimes harmful. In this study, code clones, common types of clones, phases of clone detection, the state-ofthe-art in code clone detection techniques and tools, and challenges faced by clone detection techniques are discussed.
“…CCFinder can also handle name changes, which the line-by-line approach cannot handle. However, CCFinder or a token-based technique takes more CPU time and more memory than lineby-line comparison [8,35,17,5]. CCFinder uses a suffix tree algorithm, and so it cannot handle statement insertions and deletions in code clones [7].…”
Section: Summary Of Textual Approachesmentioning
confidence: 99%
“…Tokenization is performed during lexical analysis by compiler front ends in programing languages [5,8,9,10]. Each line of source code is converted into a sequence of tokens.…”
Section: Transformationmentioning
confidence: 99%
“…The presence of duplicated but identical bugs in many locations within a piece of software increases the difficulty of software maintenance. Recent research [5,8,10,11] with large software systems [8,35] has detected that 22.3% of Linux code has clones. Kamiya et al [4] has reported 29% cloned code in JDK.…”
Section: Introductionmentioning
confidence: 99%
“…1) Detecting cloned code may help detect malicious software [3]. 2) Code clone detection may find similar code and help detect plagiarism and copyright infringement [2,4,5]. 3) Code clone detection helps reduce the source code size by performing code compaction [6].…”
If two fragments of source code are identical or similar to each other, they are called code clones. Code clones introduce difficulties in software maintenance and cause bug propagation. Software clones occur due to several reasons such as code reuse by copying pre-existing fragments, coding style, and repeated computation using duplicated functions with slight changes in variables or data structures used. If a code fragment is edited, it will have to be checked against all related code clones to see if they need to be modified as well. Removal, avoidance or refactoring of cloned code are other important issues in software maintenance. However, several research studies have demonstrated that removal or refactoring of cloned code is sometimes harmful. In this study, code clones, common types of clones, phases of clone detection, the state-ofthe-art in code clone detection techniques and tools, and challenges faced by clone detection techniques are discussed.
“…However, all the work mentioned above are constricted to extracting patterns only in data flow graphs, without considering higher level control flow structures. In [17] both control and data flow level differences have been considered for program partition, but their method merely compares signatures between two partitions without accurate similarity evaluation.…”
ABSTRACT-Pattern recognition has many applications in design automation. A generalized pattern recognition algorithm is presented in this paper which can efficiently extract similar patterns in programs. Compared to previous pattern-based techniques, our approach overcomes their limitation in handling control-flow-aware patterns, and leads to more opportunities for optimization. Our algorithm uses a feature-based filtering approach for fast pruning, and an elegant graph similarity metric called the generalized edit distance for measuring variations in CDFGs. Furthermore, our pattern recognition algorithm is applied to solve the area optimization problem in behavioral synthesis. Our experimental results show up to a 40% area reduction on a set of real-world benchmarks with a moderate 9% latency overhead, compared to synthesis results without pattern extractions; and up to a 30% area reduction, compared to the results using only data-flow patterns.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.