1,216 research outputs found
An Extended Stable Marriage Problem Algorithm for Clone Detection
Code cloning negatively affects industrial software and threatens
intellectual property. This paper presents a novel approach to detecting cloned
software by using a bijective matching technique. The proposed approach focuses
on increasing the range of similarity measures and thus enhancing the precision
of the detection. This is achieved by extending a well-known stable-marriage
problem (SMP) and demonstrating how matches between code fragments of different
files can be expressed. A prototype of the proposed approach is provided using
a proper scenario, which shows a noticeable improvement in several features of
clone detection such as scalability and accuracy.Comment: 20 pages, 10 figures, 6 table
The wonderland of reflections
A fundamental fact for the algebraic theory of constraint satisfaction
problems (CSPs) over a fixed template is that pp-interpretations between at
most countable \omega-categorical relational structures have two algebraic
counterparts for their polymorphism clones: a semantic one via the standard
algebraic operators H, S, P, and a syntactic one via clone homomorphisms
(capturing identities). We provide a similar characterization which
incorporates all relational constructions relevant for CSPs, that is,
homomorphic equivalence and adding singletons to cores in addition to
pp-interpretations. For the semantic part we introduce a new construction,
called reflection, and for the syntactic part we find an appropriate weakening
of clone homomorphisms, called h1 clone homomorphisms (capturing identities of
height 1).
As a consequence, the complexity of the CSP of an at most countable
-categorical structure depends only on the identities of height 1
satisfied in its polymorphism clone as well as the the natural uniformity
thereon. This allows us in turn to formulate a new elegant dichotomy conjecture
for the CSPs of reducts of finitely bounded homogeneous structures.
Finally, we reveal a close connection between h1 clone homomorphisms and the
notion of compatibility with projections used in the study of the lattice of
interpretability types of varieties.Comment: 24 page
The Survey of the Code Clone Detection Techniques and Process with Types (I, II, III and IV)
In software upgradation code clones are regularly utilized. So, we can contemplate on code location strategies goes past introductory code. In condition of-craftsmanship on clone programming study, we perceived the absence of methodical overview. We clarified the earlier research-in view of deliberate and broad database find and the hole of research for additionally think about. Software support cost is more than outlining cost. Code cloning is useful in several areas like detecting library contents, understanding program, detecting malicious program, etc. and apart from pros several serious impact of code cloning on quality, reusability and continuity of software framework. In this paper, we have discussed the code clone and its evolution and classification of code clone. Code clone is classified into 4 types namely Type I, Type II, III and IV. The exact code as well as copied code is depicted in detail for each type of code clone. Several clone detection techniques such as: Text, token, metric, hybrid based techniques were studied comparatively. Comparison of detection tools such as: clone DR, covet, Duploc, CLAN, etc. based on different techniques used are highlighted and cloning process is also explained. Code clones are identical segment of source code which might be inserted intentionally or unintentionally. Reusing code snippets via copying and pasting with or without minor alterations is general task in software development. But the existence of code clones may reduce the design structure and quality of software like changeability, readability and maintainability and hence increase the continuation charges
CODEWEAVE: exploring fine-grained mobility of code
This paper is concerned with an abstract exploration of code mobility constructs designed for use in settings where the level of granularity associated with the mobile units exhibits significant variability. Units of mobility that are both finer and coarser grained than the unit of execution are examined. To accomplish this, we take the extreme view that every line of code and every variable declaration are potentially mobile, i.e., it may be duplicated or moved from one program context to another on the same host or across the network. We also assume that complex code assemblies may move with equal ease. The result is CODEWEAVE, a model that shows how to develop new forms of code mobility, assign them precise meaning, and facilitate formal verification of programs employing them. The design of CODEWEAVE relies greatly on Mobile UNITY, a notation and proof logic for mobile computing. Mobile UNITY offers a computational milieu for examining a wide range of constructs and semantic alternatives in a clean abstract setting, i.e., unconstrained by compilation and performance considerations traditionally associated with programming language design. Ultimately, the notation offered by CODEWEAVE is given exact semantic definition by means of a direct mapping to the underlying Mobile UNITY model. The abstract and formal treatment of code mobility offered by CODEWEAVE establishes a technical foundation for examining competing proposals and for subsequent integration of some of the mobility constructs both at the language level and within middleware for mobility
- …