2005
DOI: 10.1145/1095430.1081733
|View full text |Cite
|
Sign up to set email alerts
|

Detecting higher-level similarity patterns in programs

Abstract: Cloning in software systems is known to create problems during software maintenance. Several techniques have been proposed to detect the same or similar code fragments in software, so-called simple clones. While the knowledge of simple clones is useful, detecting design-level similarities in software could ease maintenance even further, and also help us identify reuse opportunities. We observed that recurring patterns of simple clones -so-called structural clones -often indicate the presence of interesting des… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
30
0

Year Published

2007
2007
2024
2024

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 35 publications
(30 citation statements)
references
References 31 publications
0
30
0
Order By: Relevance
“…Tools such as CP-Miner [21] and CCFinder [18] are token-based and usually more accurate and scalable, but tend to be sensitive to minor code changes. There are also tools based on abstract syntax trees (ASTs) [7,8,17,26]. However, all the above tools are for source code, while ours is the first practical clone detection algorithm for binaries.…”
Section: Related Workmentioning
confidence: 99%
“…Tools such as CP-Miner [21] and CCFinder [18] are token-based and usually more accurate and scalable, but tend to be sensitive to minor code changes. There are also tools based on abstract syntax trees (ASTs) [7,8,17,26]. However, all the above tools are for source code, while ours is the first practical clone detection algorithm for binaries.…”
Section: Related Workmentioning
confidence: 99%
“…In contrast, we mine specifications of malicious behavior, with no a priori definition of "malicious," by comparing malicious and benign programs. Clone-detection techniques compare programs [3,11,13,30], but they target similarities, not distinctions, between and within programs. Programdifferencing techniques have goals similar to ours, but are limited to distinctions at the statement level or at the structural level [2,9,10,17].…”
Section: Related Workmentioning
confidence: 99%
“…This approach supports the requirement that the specification of malicious behavior must capture aspects that are specific to the malware and absent from any benign programs. The software-engineering research community has put a lot of effort in analyzing commonalities and differences between programs and many techniques for clone detection [3,11,13,30] and program differencing [2,9,10,17] have been proposed. The differencing techniques are closest to our goal of mining specifications of malicious behavior, but they fall short because they generally require access to source code and because they produce differences between low-level elements of the program (e.g., individual statements) or between structural elements (e.g., type hierarchy, procedures).…”
Section: Introductionmentioning
confidence: 99%