SlideShare a Scribd company logo
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3962
Code Cloning using Abstract Syntax Tree
Gunjan Chugh1, Divya Mahajan2, Nainika Sehgal3, Akanksha Paul4, Leena Budhiraja5
1Assistant Professor, Department of Information Technology, Dr. Akhilesh Das Gupta Institute of Technology &
Management, New Delhi, India
2,3,4,5Student, Dr. Akhilesh Das Gupta Institute of Technology & Management, New Delhi, India
---------------------------------------------------------------------***----------------------------------------------------------------------
Abstract - Today, most of the software that are being developed by the developers consists of code clones in it. Although it is
sometimes necessary to meet deadlines, to save time but in the long run it always emerge as the source of bad design. It increases
maintenance cost which is one of the important phases the of software development life cycle. Not only this, it sometimesbecomes
the source of defects in our code which results in the huge demand for resource utilization thereby increasing the cost for both
development and maintenance phase of the software development the life cycle. In order to detect those clones, a number of
detection techniques have been presented so far. In this paper, an approach to detect code clones from the software is presented
using Abstract Syntax Tree(AST). The aim of proposing this approach is to provide a solution to these code clones by an approach
that is simple yet powerful enough to easily detect the code clones present in the software.
Key Words: clone detection; code cloning; clone class; clone pair; code clones.
1. INTRODUCTION
A clone is a code segment that has been created through duplication of another piece of code[4]. Code cloning is the practice of
duplicating existing source code for use elsewhere within a software system [7]. It is a process of replicating code blocks by
doing copy-and-paste in order to save time and meet deadlines. Doing copyandpasteprovestobea bettersolution intheshort
term to meet the deadlines but in the long run it results in the huge amount of cost that the organization have to spentinorder
to maintain the software not only this but also it results in the increase in amount of resource utilization. If faults found in one
code block, then the entire cloned blocks need modification and it becomes more difficult tasks to maintain if the system
becomes big.
For detecting these code clone’s numerous techniques have been proposed. Text based techniquesarethe earliestandprovide
the easiest way of clone detection. In these techniques, code is compared linebylinein theformofsimplestrings.[9] Thentoken
based technique was proposed which is also the primary step for abstract syntax tree approach thatispresentedin thispaper.
In this techniques, the code is first transformed into tokensbeforecomparing.Inabstractsyntaxtreeapproach,lexical analyzer
is used to transform the code into tokens then source code istransformedintoASTusingtherequiredlanguageparserandthen
code clones are detected by finding similar sub trees from the AST.[8] This method determines exacttreematches;a numberof
adjustments are needed to detect equivalent statement sequences, commutative operands, and nearly exact matches. We
additionally suggest that clone detection could also be useful in producing more structuredcode,andinreverse engineeringto
discover domain concepts and their implementation[6].
2. RELATED TERMINOLOGY
Clone Pair
Two code segments form a clone pair, if they are related to each other by an equivalence relation [3]. An equivalence
relation holds all reflexive, symmetric and transitive relations. A clone try is outlined asa tryofmatchingcodesegments.
Clone Class
Clone class is defined as a set of code segments with similar code portions. Each code segment in a clone class forms a
clone pair with other code segments of that class.
Classifications of Class
Code segments can be identical in two ways. Either they can be identical on the basis of their program text or they can be
functionally identical. They are classified as follows: -
i. On the basis of Program text
On the basis of Program text these clones are classified in three ways namely: -
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3963
1) Type-1 Clones
If a code segment is copied as it is with some minor amendments in whitespaces, layout and comments then it comes
under type-1 or exact clones [5]. In figure 2.1, code segment 2 is an exact copy of code segment 1.
Fig-2.1 Exact Clones
2) Type-2 Clones
If a code segment is copied with some amendments in name of the variables, functions, types and identifiers as shown in
figure 2.1 then it comes under type-2 or renamed clones.
Fig-2.2 Renamed Clones
3) Type-3 Clones
If a code segment is copied with some changes like insertion or deletion of statements along with change in nameof
variables, functions and type, then it comes under type-3 or near miss clones.
Fig -2.3: Near- miss Clones
ii. On the basis of Functional Similarity
4) On the basis of Functional Similarity, clones are classified as follows: -
If two code segments perform the same functionality but they are having different syntax, then they are said to be type-4
or semantic clones [5]. These clones are the most difficult to detect.
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3964
Fig -2.4: Semantic Clones
3. OCCURRENCE OF CODE CLONES
Software clones appear for many reasons:
1.Code reuse by copying existing codes.
2.Programming styles of the programmers.
3.Instantiation of definitional computations.
4. Failure to identify/use abstract data types.
5. Enhancement in the performance.
6. Shortage of time or other resources. [8]
4. METHODOLOGY OF PROPOSED WORK
4.1. Clone Detection Using ASTs
To find the code fragments which yields similar result or are similar in syntax are the main problem in clone detection. So for
this, first the program or the file in which we are trying to find clones is fragmented into parts before comparison. Then, it has
to be determined as impossible, two arbitrary program fragments halting under the same circumstance is not determined.
Hence, it is impossible theoretically to finalize that they compute identical results.[8]
There are some steps in the process of clone detection: -
i. The code is first parsed and then an AST is produced for it using the lexical analyzer for parsing.
ii. Then algorithms are applied to find clones.
a. The purpose of the basic algorithm, which is the first algorithm, is to detect sub –tree clones.
b. The second algorithm is sequence detection algorithm. This is helpful in the detection of statement and in the
declaration of sequence clones.
c. The third algorithm attempts to generalize combinations of other clones and looks for more complex near miss-
clones.
Fig 4.1: Methodology
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3965
4.2. Finding sub-tree clones
For finding sub-tree clones compare every subtree to every other sub-tree for equality. Though it seems easy in theory but in
practice there are many problems associated with it like: near-miss clone detection, sub-clones, and scale. Near misses can be
handled by comparing trees for similarity rather than exact equality whereas the scale problem is harder.
In order to handle this problem associated with practical implementationoffindingsub-cones wegenerallypartitionthesetsof
comparisons by categorizing sub-trees with hash values. The approach is based on the tree matching technique for building
DAGs for expressions in compiler construction[2]. This allows the easy detection of actual subtree clones. But this approach
works well only when we are trying to find exact clones but when we are tryingtolocatenear-misscloneshashingoncomplete
subtrees fails because for a good hash function, it must include all elements of the tree, thus sorts trees with minor differences
into different buckets.
This problem can be solved by choosing an artificially bad hash function. This bad hash function should be characterized in
such a way that the main properties one wants to find on near-miss clones that are preserved. A hash function that ignores
small subtrees is a good choice. [9]
4.3. Finding clone sequences
Finding clone sequences means to detect statement sequence clones in ASTs. And for thatweareusingtheBasicalgorithmasa
foundation. Sequences of subtrees appear in AST as a consequence of the occurrence in the dialect grammar of rules
encapsulating sequences of zero or more syntactic constructs. These sequencerulesaretypicallyexpressed bytheuseofleft or
right recursion on production rules [2].
4.4. Generalization
This method consists of visiting the parents of the already-detected clones and check if the parent is a near miss clone too. An
advantage of this method is that any near miss clones must be assembled from some set of exact sub clones, and therefore no
near miss clones will be missed.[9]
5. BENEFITS OF CODE CLONING
Detection and removal of code clones promises decreased software maintenance costs of possibly the same magnitude.There
are variety of benefits provided by code cloning detection and they are as follows: -
 Reduced Probability of Defects :-Detection of the code clones in the source code may also reduce the probability of bug
propagation in the system.
 Low Resource Requirement: -Code cloning detection results in reducing the system size due to which compilation
time as well as memory requirements for the system also get reduced. It may also result in less expensive software
and hardware upgrades than the one having code clones in it.[9]
 Reduced Maintenance Work and Cost: -Code cloning may result in reduced maintenance effort because during the
maintenance phase if an error or bug is found in one code fragment, then all its corresponding clones shouldbefind outto
detect the same error or bug. This makes maintenance a complex and time consuming task. Code cloning multiplies the
effort required during maintenance. Hence detecting code clones helps to reduce the maintenance work and cost.
 Reduced Chances of Bad Design: -Code duplication also causes unfavourable effects on the system’s design. It results in
poor abstraction and raises difficulty in reusing the code in future projects.[2]
 Inconsistent Updates: -Code cloning may result in inconsistent updates because if there is a need to modify a piece of
code, one needs to modify all clone segments of that piece of code. This can be avoided by code clone detection and
removal.
 Helps in Reducing Code Size :-If the detected code clones are replaced by function calls to a generic code segment
performing the same functionality as that of the code clone, then it results in reducing the complexity and size of software
system. It also improves maintainability and readability of code.[1]
 Better Understanding of Problem :-If working of a cloned segment is apprehended, one is able to understand the
working of all duplicate code segments of the cloned segment.
 Helps in Reducing Code Size :-If the detected code clones are replaced by function calls to a generic code segment
performing the same functionality as that of the code clone, then it results in reducing the complexity and size of software
system. It also improves maintainability and readability of code.
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3966
 Discovering Domain: -Clone detection is not only helpful in producing more structured code but also in discovering
domain concepts and their idiomatic implementations. [8]
6. CONCLUSION
The code clone detection is an issue in the software system which decrease the software’s comprehensibility as well as
maintainability. Therefore, its analysis and detection is necessary for improving the quality, maintenance and design of the
software system. In this paper, discussion in terms of attributes based on code clone detection is presented. The clone
detection method is implemented using abstract syntax trees (ASTs), whichforfindingexactandnearmissclonesforarbitrary
fragments in the source code [2]. Since detection done in the program structure. clones can be factored in the source using
standard transformational methods. The approach is based on variations of methods for compiler to find common subtree on
elimination using hashing and then we find subsequence. The method is straightforward to implement using parsing
technology.
REFERENCES
[1] Lee, Y. J., Lim, J. S., Ji, J. H., Cho, H. G., & Woo, G. (2012). Plagiarism detection among source codes using adaptive methods.
KSII Transactions on Internet and Information Systems (TIIS), 6(6), 1627-1648.
[2] Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., & Bier, L. (1998, November). Clone detection using abstract syntax trees. In
Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272) (pp. 368-377). IEEE.
[3] Morshed, M., Rahman, M., & Ahmed, S. U. (2012). A literature review of code clone analysis to improve software
maintenance process. arXiv preprint arXiv:1205.5615.
[4] Jiang, Z. M., & Hassan, A. E. (2007, September). A framework for studying clones in large software systems. In SeventhIEEE
International Working Conference on Source Code Analysis and Manipulation (SCAM 2007) (pp. 203-212). IEEE.
[5] Roy, C. K., & Cordy, J. R. (2007). A survey on software clone detection research. Queen’s School of Computing TR, 541(115),
64-68.
[6] Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., & Bier, L. (1998, November). Clone detection using abstract syntax trees. In
Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272) (pp. 368-377). IEEE.
[7] Kapser, C. (2009). Toward an understanding of software code cloning as a development practice.
[8] Ijptjournal.org. (2019). Code Cloning Detection using Abstract Syntax Tree. [online] Available at:
http://www.ijpttjournal.org/volume-9/IJPTT-V9P407.pdf [Accessed 17 Apr. 2019].
[9] Baxter, I., Yahin, A., Moura, L. and Bier, L. (2019). Code Cloning Using Abstract Syntax Tree. www.eecs.yorku.c, [online] p.2.
Available at: http://www.eecs.yorku.c [Accessed 17 Apr. 2019].
BIOGRAPHIES
Gunjan Chugh, she is currently
pursuing PhD with specializationin
Computer Science from Delhi
Technological University, New
Delhi. She received her M. Tech
degree in Computer Science from
Banasthali University, Rajasthan in
2013 & is currently working in
Department of Information
Technology, at Dr. Akhilesh Das
Gupta Institute of Technology and
Management, New Delhi. Her
research interest includes Artificial
Intelligence, Machine Learning and
Information Security.
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056
Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072
© 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3967
Divya Mahajan, she is currently
pursuing Bachelor of Technology
with specialization in Information
Technology from Guru Gobind
Singh Indraprastha University,New
Delhi. Her research interest lies in
software engineering, data mining
and Machine learning.
Nainika Sehgal, she is currently a
student who is pursuing Btech in
Information Technology from IP
university. She has searched and
made a research paper on Code
detection using an abstract syntax
tree. The main motive was to study
about clones and different
techniques and how to detect it.
Her career objective is to
continuously enhance her
knowledge, skillsandexperienceby
getting involved in challenging
work environment and utilizethem
for personal and organizational
growth to the best of her ability.
Akanksha Paul, currently she is a
student in Guru Gobind Singh
Indraprastha University,NewDelhi
pursuing herB.Tech inInformation
Technology. She made a research
paper on Code Cloning for better
understanding of clones and code
reuse.
Leena Budhiraja, currently she is
pursuing B. Tech in Guru Gobind
Singh Indraprastha University,New
Delhi in Information Technology.
Her objective of life is to pursue a
challenging career in life and
enhance her knowledge.

More Related Content

What's hot

Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
eSAT Publishing House
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
eSAT Journals
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
ijseajournal
 
Mining Fix Patterns for FindBugs Violations
Mining Fix Patterns for FindBugs ViolationsMining Fix Patterns for FindBugs Violations
Mining Fix Patterns for FindBugs Violations
Dongsun Kim
 
Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...
IOSR Journals
 
TBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program RepairTBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program Repair
Dongsun Kim
 
A Closer Look at Real-World Patches
A Closer Look at Real-World PatchesA Closer Look at Real-World Patches
A Closer Look at Real-World Patches
Dongsun Kim
 
Fuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software ClassificationFuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software Classification
ijcsit
 
scp
scpscp
Software Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of ClonesSoftware Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of Clones
RSIS International
 
Learning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method NamesLearning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method Names
Dongsun Kim
 
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
Jason Papapanagiotakis
 
Behavioral Analysis for Detecting Code Clones
Behavioral Analysis for Detecting Code ClonesBehavioral Analysis for Detecting Code Clones
Behavioral Analysis for Detecting Code Clones
TELKOMNIKA JOURNAL
 
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMU
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMUAutomated Refactoring of Legacy Java Software to Default Methods Talk at GMU
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMU
Raffi Khatchadourian
 
Zarlish attique 187104 project assignment modeller
Zarlish attique 187104 project assignment modellerZarlish attique 187104 project assignment modeller
Zarlish attique 187104 project assignment modeller
ZarlishAttique1
 
Unit 4 Java
Unit 4 JavaUnit 4 Java
Unit 4 Java
arnold 7490
 
C04701019027
C04701019027C04701019027
C04701019027
ijceronline
 

What's hot (17)

Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
Multi step automated refactoring for code smell
Multi step automated refactoring for code smellMulti step automated refactoring for code smell
Multi step automated refactoring for code smell
 
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALEDETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
DETECTION AND REFACTORING OF BAD SMELL CAUSED BY LARGE SCALE
 
Mining Fix Patterns for FindBugs Violations
Mining Fix Patterns for FindBugs ViolationsMining Fix Patterns for FindBugs Violations
Mining Fix Patterns for FindBugs Violations
 
Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...
 
TBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program RepairTBar: Revisiting Template-based Automated Program Repair
TBar: Revisiting Template-based Automated Program Repair
 
A Closer Look at Real-World Patches
A Closer Look at Real-World PatchesA Closer Look at Real-World Patches
A Closer Look at Real-World Patches
 
Fuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software ClassificationFuzzy Rule Base System for Software Classification
Fuzzy Rule Base System for Software Classification
 
scp
scpscp
scp
 
Software Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of ClonesSoftware Product Line Analysis and Detection of Clones
Software Product Line Analysis and Detection of Clones
 
Learning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method NamesLearning to Spot and Refactor Inconsistent Method Names
Learning to Spot and Refactor Inconsistent Method Names
 
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
414351_Iason_Papapanagiotakis-bousy_Iason_Papapanagiotakis_Thesis_2360661_357...
 
Behavioral Analysis for Detecting Code Clones
Behavioral Analysis for Detecting Code ClonesBehavioral Analysis for Detecting Code Clones
Behavioral Analysis for Detecting Code Clones
 
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMU
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMUAutomated Refactoring of Legacy Java Software to Default Methods Talk at GMU
Automated Refactoring of Legacy Java Software to Default Methods Talk at GMU
 
Zarlish attique 187104 project assignment modeller
Zarlish attique 187104 project assignment modellerZarlish attique 187104 project assignment modeller
Zarlish attique 187104 project assignment modeller
 
Unit 4 Java
Unit 4 JavaUnit 4 Java
Unit 4 Java
 
C04701019027
C04701019027C04701019027
C04701019027
 

Similar to IRJET- Code Cloning using Abstract Syntax Tree

Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
IRJET Journal
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
IRJET Journal
 
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
IAEME Publication
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mapping
ijseajournal
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
acijjournal
 
IRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword ManagerIRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword Manager
IRJET Journal
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
eSAT Journals
 
Applying Machine Learning to Software Clustering
Applying Machine Learning to Software ClusteringApplying Machine Learning to Software Clustering
Applying Machine Learning to Software Clustering
butest
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
IRJET Journal
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
SAIL_QU
 
Cohesive Software Design
Cohesive Software DesignCohesive Software Design
Cohesive Software Design
ijtsrd
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET Journal
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Steven Smith
 
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITYSOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
IJDKP
 
2008 chen - towards fault-tolerant hla-based distributed simulations
2008   chen - towards fault-tolerant hla-based distributed simulations2008   chen - towards fault-tolerant hla-based distributed simulations
2008 chen - towards fault-tolerant hla-based distributed simulations
Daniel Vargas
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
IJECEIAES
 
IRJET- Machine Learning Techniques for Code Optimization
IRJET-  	  Machine Learning Techniques for Code OptimizationIRJET-  	  Machine Learning Techniques for Code Optimization
IRJET- Machine Learning Techniques for Code Optimization
IRJET Journal
 
IRJET- Automated CV Classification using Clustering Technique
IRJET- Automated CV Classification using Clustering TechniqueIRJET- Automated CV Classification using Clustering Technique
IRJET- Automated CV Classification using Clustering Technique
IRJET Journal
 
Paper id 22201490
Paper id 22201490Paper id 22201490
Paper id 22201490
IJRAT
 
Best practices in enterprise applications
Best practices in enterprise applicationsBest practices in enterprise applications
Best practices in enterprise applications
Chandra Sekhar Saripaka
 

Similar to IRJET- Code Cloning using Abstract Syntax Tree (20)

Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
 
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...
 
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
GENERIC CODE CLONING METHOD FOR DETECTION OF CLONE CODE IN SOFTWARE DEVELOPMENT
 
A novel approach for clone group mapping
A novel approach for clone group mappingA novel approach for clone group mapping
A novel approach for clone group mapping
 
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
Method-Level Code Clone Modification using Refactoring Techniques for Clone M...
 
IRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword ManagerIRJET- Data Mining - Secure Keyword Manager
IRJET- Data Mining - Secure Keyword Manager
 
Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...Implementation of reducing features to improve code change based bug predicti...
Implementation of reducing features to improve code change based bug predicti...
 
Applying Machine Learning to Software Clustering
Applying Machine Learning to Software ClusteringApplying Machine Learning to Software Clustering
Applying Machine Learning to Software Clustering
 
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
An Adjacent Analysis of the Parallel Programming Model Perspective: A Survey
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
 
Cohesive Software Design
Cohesive Software DesignCohesive Software Design
Cohesive Software Design
 
IRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine LearningIRJET - Pseudocode to Python Translation using Machine Learning
IRJET - Pseudocode to Python Translation using Machine Learning
 
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
Design Pattern Mastery - Momentum Dev Con 19 Apr 2018
 
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITYSOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
SOURCE CODE RETRIEVAL USING SEQUENCE BASED SIMILARITY
 
2008 chen - towards fault-tolerant hla-based distributed simulations
2008   chen - towards fault-tolerant hla-based distributed simulations2008   chen - towards fault-tolerant hla-based distributed simulations
2008 chen - towards fault-tolerant hla-based distributed simulations
 
Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models Finding Bad Code Smells with Neural Network Models
Finding Bad Code Smells with Neural Network Models
 
IRJET- Machine Learning Techniques for Code Optimization
IRJET-  	  Machine Learning Techniques for Code OptimizationIRJET-  	  Machine Learning Techniques for Code Optimization
IRJET- Machine Learning Techniques for Code Optimization
 
IRJET- Automated CV Classification using Clustering Technique
IRJET- Automated CV Classification using Clustering TechniqueIRJET- Automated CV Classification using Clustering Technique
IRJET- Automated CV Classification using Clustering Technique
 
Paper id 22201490
Paper id 22201490Paper id 22201490
Paper id 22201490
 
Best practices in enterprise applications
Best practices in enterprise applicationsBest practices in enterprise applications
Best practices in enterprise applications
 

More from IRJET Journal

TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
IRJET Journal
 
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURESTUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
IRJET Journal
 
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
IRJET Journal
 
Effect of Camber and Angles of Attack on Airfoil Characteristics
Effect of Camber and Angles of Attack on Airfoil CharacteristicsEffect of Camber and Angles of Attack on Airfoil Characteristics
Effect of Camber and Angles of Attack on Airfoil Characteristics
IRJET Journal
 
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
IRJET Journal
 
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
IRJET Journal
 
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
IRJET Journal
 
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
IRJET Journal
 
A REVIEW ON MACHINE LEARNING IN ADAS
A REVIEW ON MACHINE LEARNING IN ADASA REVIEW ON MACHINE LEARNING IN ADAS
A REVIEW ON MACHINE LEARNING IN ADAS
IRJET Journal
 
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
IRJET Journal
 
P.E.B. Framed Structure Design and Analysis Using STAAD Pro
P.E.B. Framed Structure Design and Analysis Using STAAD ProP.E.B. Framed Structure Design and Analysis Using STAAD Pro
P.E.B. Framed Structure Design and Analysis Using STAAD Pro
IRJET Journal
 
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
IRJET Journal
 
Survey Paper on Cloud-Based Secured Healthcare System
Survey Paper on Cloud-Based Secured Healthcare SystemSurvey Paper on Cloud-Based Secured Healthcare System
Survey Paper on Cloud-Based Secured Healthcare System
IRJET Journal
 
Review on studies and research on widening of existing concrete bridges
Review on studies and research on widening of existing concrete bridgesReview on studies and research on widening of existing concrete bridges
Review on studies and research on widening of existing concrete bridges
IRJET Journal
 
React based fullstack edtech web application
React based fullstack edtech web applicationReact based fullstack edtech web application
React based fullstack edtech web application
IRJET Journal
 
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
IRJET Journal
 
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
IRJET Journal
 
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
IRJET Journal
 
Multistoried and Multi Bay Steel Building Frame by using Seismic Design
Multistoried and Multi Bay Steel Building Frame by using Seismic DesignMultistoried and Multi Bay Steel Building Frame by using Seismic Design
Multistoried and Multi Bay Steel Building Frame by using Seismic Design
IRJET Journal
 
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
IRJET Journal
 

More from IRJET Journal (20)

TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
TUNNELING IN HIMALAYAS WITH NATM METHOD: A SPECIAL REFERENCES TO SUNGAL TUNNE...
 
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURESTUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
STUDY THE EFFECT OF RESPONSE REDUCTION FACTOR ON RC FRAMED STRUCTURE
 
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
A COMPARATIVE ANALYSIS OF RCC ELEMENT OF SLAB WITH STARK STEEL (HYSD STEEL) A...
 
Effect of Camber and Angles of Attack on Airfoil Characteristics
Effect of Camber and Angles of Attack on Airfoil CharacteristicsEffect of Camber and Angles of Attack on Airfoil Characteristics
Effect of Camber and Angles of Attack on Airfoil Characteristics
 
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
A Review on the Progress and Challenges of Aluminum-Based Metal Matrix Compos...
 
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
Dynamic Urban Transit Optimization: A Graph Neural Network Approach for Real-...
 
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
Structural Analysis and Design of Multi-Storey Symmetric and Asymmetric Shape...
 
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
A Review of “Seismic Response of RC Structures Having Plan and Vertical Irreg...
 
A REVIEW ON MACHINE LEARNING IN ADAS
A REVIEW ON MACHINE LEARNING IN ADASA REVIEW ON MACHINE LEARNING IN ADAS
A REVIEW ON MACHINE LEARNING IN ADAS
 
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
Long Term Trend Analysis of Precipitation and Temperature for Asosa district,...
 
P.E.B. Framed Structure Design and Analysis Using STAAD Pro
P.E.B. Framed Structure Design and Analysis Using STAAD ProP.E.B. Framed Structure Design and Analysis Using STAAD Pro
P.E.B. Framed Structure Design and Analysis Using STAAD Pro
 
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
A Review on Innovative Fiber Integration for Enhanced Reinforcement of Concre...
 
Survey Paper on Cloud-Based Secured Healthcare System
Survey Paper on Cloud-Based Secured Healthcare SystemSurvey Paper on Cloud-Based Secured Healthcare System
Survey Paper on Cloud-Based Secured Healthcare System
 
Review on studies and research on widening of existing concrete bridges
Review on studies and research on widening of existing concrete bridgesReview on studies and research on widening of existing concrete bridges
Review on studies and research on widening of existing concrete bridges
 
React based fullstack edtech web application
React based fullstack edtech web applicationReact based fullstack edtech web application
React based fullstack edtech web application
 
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
A Comprehensive Review of Integrating IoT and Blockchain Technologies in the ...
 
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
A REVIEW ON THE PERFORMANCE OF COCONUT FIBRE REINFORCED CONCRETE.
 
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
Optimizing Business Management Process Workflows: The Dynamic Influence of Mi...
 
Multistoried and Multi Bay Steel Building Frame by using Seismic Design
Multistoried and Multi Bay Steel Building Frame by using Seismic DesignMultistoried and Multi Bay Steel Building Frame by using Seismic Design
Multistoried and Multi Bay Steel Building Frame by using Seismic Design
 
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
Cost Optimization of Construction Using Plastic Waste as a Sustainable Constr...
 

Recently uploaded

Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
IJECEIAES
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
ydzowc
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
RamonNovais6
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
CVCSOfficial
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
Nada Hikmah
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
PriyankaKilaniya
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
Yasser Mahgoub
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
co23btech11018
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
mahaffeycheryld
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
Gino153088
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
AjmalKhan50578
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
bijceesjournal
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
PKavitha10
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
IJECEIAES
 
AI for Legal Research with applications, tools
AI for Legal Research with applications, toolsAI for Legal Research with applications, tools
AI for Legal Research with applications, tools
mahaffeycheryld
 

Recently uploaded (20)

Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
Embedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoringEmbedded machine learning-based road conditions and driving behavior monitoring
Embedded machine learning-based road conditions and driving behavior monitoring
 
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
原版制作(Humboldt毕业证书)柏林大学毕业证学位证一模一样
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURSCompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
CompEx~Manual~1210 (2).pdf COMPEX GAS AND VAPOURS
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
TIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptxTIME TABLE MANAGEMENT SYSTEM testing.pptx
TIME TABLE MANAGEMENT SYSTEM testing.pptx
 
Curve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods RegressionCurve Fitting in Numerical Methods Regression
Curve Fitting in Numerical Methods Regression
 
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 08 Doors and Windows.pdf
 
Computational Engineering IITH Presentation
Computational Engineering IITH PresentationComputational Engineering IITH Presentation
Computational Engineering IITH Presentation
 
Generative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdfGenerative AI Use cases applications solutions and implementation.pdf
Generative AI Use cases applications solutions and implementation.pdf
 
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
4. Mosca vol I -Fisica-Tipler-5ta-Edicion-Vol-1.pdf
 
Welding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdfWelding Metallurgy Ferrous Materials.pdf
Welding Metallurgy Ferrous Materials.pdf
 
Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...Rainfall intensity duration frequency curve statistical analysis and modeling...
Rainfall intensity duration frequency curve statistical analysis and modeling...
 
CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1CEC 352 - SATELLITE COMMUNICATION UNIT 1
CEC 352 - SATELLITE COMMUNICATION UNIT 1
 
Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...Advanced control scheme of doubly fed induction generator for wind turbine us...
Advanced control scheme of doubly fed induction generator for wind turbine us...
 
AI for Legal Research with applications, tools
AI for Legal Research with applications, toolsAI for Legal Research with applications, tools
AI for Legal Research with applications, tools
 

IRJET- Code Cloning using Abstract Syntax Tree

  • 1. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3962 Code Cloning using Abstract Syntax Tree Gunjan Chugh1, Divya Mahajan2, Nainika Sehgal3, Akanksha Paul4, Leena Budhiraja5 1Assistant Professor, Department of Information Technology, Dr. Akhilesh Das Gupta Institute of Technology & Management, New Delhi, India 2,3,4,5Student, Dr. Akhilesh Das Gupta Institute of Technology & Management, New Delhi, India ---------------------------------------------------------------------***---------------------------------------------------------------------- Abstract - Today, most of the software that are being developed by the developers consists of code clones in it. Although it is sometimes necessary to meet deadlines, to save time but in the long run it always emerge as the source of bad design. It increases maintenance cost which is one of the important phases the of software development life cycle. Not only this, it sometimesbecomes the source of defects in our code which results in the huge demand for resource utilization thereby increasing the cost for both development and maintenance phase of the software development the life cycle. In order to detect those clones, a number of detection techniques have been presented so far. In this paper, an approach to detect code clones from the software is presented using Abstract Syntax Tree(AST). The aim of proposing this approach is to provide a solution to these code clones by an approach that is simple yet powerful enough to easily detect the code clones present in the software. Key Words: clone detection; code cloning; clone class; clone pair; code clones. 1. INTRODUCTION A clone is a code segment that has been created through duplication of another piece of code[4]. Code cloning is the practice of duplicating existing source code for use elsewhere within a software system [7]. It is a process of replicating code blocks by doing copy-and-paste in order to save time and meet deadlines. Doing copyandpasteprovestobea bettersolution intheshort term to meet the deadlines but in the long run it results in the huge amount of cost that the organization have to spentinorder to maintain the software not only this but also it results in the increase in amount of resource utilization. If faults found in one code block, then the entire cloned blocks need modification and it becomes more difficult tasks to maintain if the system becomes big. For detecting these code clone’s numerous techniques have been proposed. Text based techniquesarethe earliestandprovide the easiest way of clone detection. In these techniques, code is compared linebylinein theformofsimplestrings.[9] Thentoken based technique was proposed which is also the primary step for abstract syntax tree approach thatispresentedin thispaper. In this techniques, the code is first transformed into tokensbeforecomparing.Inabstractsyntaxtreeapproach,lexical analyzer is used to transform the code into tokens then source code istransformedintoASTusingtherequiredlanguageparserandthen code clones are detected by finding similar sub trees from the AST.[8] This method determines exacttreematches;a numberof adjustments are needed to detect equivalent statement sequences, commutative operands, and nearly exact matches. We additionally suggest that clone detection could also be useful in producing more structuredcode,andinreverse engineeringto discover domain concepts and their implementation[6]. 2. RELATED TERMINOLOGY Clone Pair Two code segments form a clone pair, if they are related to each other by an equivalence relation [3]. An equivalence relation holds all reflexive, symmetric and transitive relations. A clone try is outlined asa tryofmatchingcodesegments. Clone Class Clone class is defined as a set of code segments with similar code portions. Each code segment in a clone class forms a clone pair with other code segments of that class. Classifications of Class Code segments can be identical in two ways. Either they can be identical on the basis of their program text or they can be functionally identical. They are classified as follows: - i. On the basis of Program text On the basis of Program text these clones are classified in three ways namely: -
  • 2. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3963 1) Type-1 Clones If a code segment is copied as it is with some minor amendments in whitespaces, layout and comments then it comes under type-1 or exact clones [5]. In figure 2.1, code segment 2 is an exact copy of code segment 1. Fig-2.1 Exact Clones 2) Type-2 Clones If a code segment is copied with some amendments in name of the variables, functions, types and identifiers as shown in figure 2.1 then it comes under type-2 or renamed clones. Fig-2.2 Renamed Clones 3) Type-3 Clones If a code segment is copied with some changes like insertion or deletion of statements along with change in nameof variables, functions and type, then it comes under type-3 or near miss clones. Fig -2.3: Near- miss Clones ii. On the basis of Functional Similarity 4) On the basis of Functional Similarity, clones are classified as follows: - If two code segments perform the same functionality but they are having different syntax, then they are said to be type-4 or semantic clones [5]. These clones are the most difficult to detect.
  • 3. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3964 Fig -2.4: Semantic Clones 3. OCCURRENCE OF CODE CLONES Software clones appear for many reasons: 1.Code reuse by copying existing codes. 2.Programming styles of the programmers. 3.Instantiation of definitional computations. 4. Failure to identify/use abstract data types. 5. Enhancement in the performance. 6. Shortage of time or other resources. [8] 4. METHODOLOGY OF PROPOSED WORK 4.1. Clone Detection Using ASTs To find the code fragments which yields similar result or are similar in syntax are the main problem in clone detection. So for this, first the program or the file in which we are trying to find clones is fragmented into parts before comparison. Then, it has to be determined as impossible, two arbitrary program fragments halting under the same circumstance is not determined. Hence, it is impossible theoretically to finalize that they compute identical results.[8] There are some steps in the process of clone detection: - i. The code is first parsed and then an AST is produced for it using the lexical analyzer for parsing. ii. Then algorithms are applied to find clones. a. The purpose of the basic algorithm, which is the first algorithm, is to detect sub –tree clones. b. The second algorithm is sequence detection algorithm. This is helpful in the detection of statement and in the declaration of sequence clones. c. The third algorithm attempts to generalize combinations of other clones and looks for more complex near miss- clones. Fig 4.1: Methodology
  • 4. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3965 4.2. Finding sub-tree clones For finding sub-tree clones compare every subtree to every other sub-tree for equality. Though it seems easy in theory but in practice there are many problems associated with it like: near-miss clone detection, sub-clones, and scale. Near misses can be handled by comparing trees for similarity rather than exact equality whereas the scale problem is harder. In order to handle this problem associated with practical implementationoffindingsub-cones wegenerallypartitionthesetsof comparisons by categorizing sub-trees with hash values. The approach is based on the tree matching technique for building DAGs for expressions in compiler construction[2]. This allows the easy detection of actual subtree clones. But this approach works well only when we are trying to find exact clones but when we are tryingtolocatenear-misscloneshashingoncomplete subtrees fails because for a good hash function, it must include all elements of the tree, thus sorts trees with minor differences into different buckets. This problem can be solved by choosing an artificially bad hash function. This bad hash function should be characterized in such a way that the main properties one wants to find on near-miss clones that are preserved. A hash function that ignores small subtrees is a good choice. [9] 4.3. Finding clone sequences Finding clone sequences means to detect statement sequence clones in ASTs. And for thatweareusingtheBasicalgorithmasa foundation. Sequences of subtrees appear in AST as a consequence of the occurrence in the dialect grammar of rules encapsulating sequences of zero or more syntactic constructs. These sequencerulesaretypicallyexpressed bytheuseofleft or right recursion on production rules [2]. 4.4. Generalization This method consists of visiting the parents of the already-detected clones and check if the parent is a near miss clone too. An advantage of this method is that any near miss clones must be assembled from some set of exact sub clones, and therefore no near miss clones will be missed.[9] 5. BENEFITS OF CODE CLONING Detection and removal of code clones promises decreased software maintenance costs of possibly the same magnitude.There are variety of benefits provided by code cloning detection and they are as follows: -  Reduced Probability of Defects :-Detection of the code clones in the source code may also reduce the probability of bug propagation in the system.  Low Resource Requirement: -Code cloning detection results in reducing the system size due to which compilation time as well as memory requirements for the system also get reduced. It may also result in less expensive software and hardware upgrades than the one having code clones in it.[9]  Reduced Maintenance Work and Cost: -Code cloning may result in reduced maintenance effort because during the maintenance phase if an error or bug is found in one code fragment, then all its corresponding clones shouldbefind outto detect the same error or bug. This makes maintenance a complex and time consuming task. Code cloning multiplies the effort required during maintenance. Hence detecting code clones helps to reduce the maintenance work and cost.  Reduced Chances of Bad Design: -Code duplication also causes unfavourable effects on the system’s design. It results in poor abstraction and raises difficulty in reusing the code in future projects.[2]  Inconsistent Updates: -Code cloning may result in inconsistent updates because if there is a need to modify a piece of code, one needs to modify all clone segments of that piece of code. This can be avoided by code clone detection and removal.  Helps in Reducing Code Size :-If the detected code clones are replaced by function calls to a generic code segment performing the same functionality as that of the code clone, then it results in reducing the complexity and size of software system. It also improves maintainability and readability of code.[1]  Better Understanding of Problem :-If working of a cloned segment is apprehended, one is able to understand the working of all duplicate code segments of the cloned segment.  Helps in Reducing Code Size :-If the detected code clones are replaced by function calls to a generic code segment performing the same functionality as that of the code clone, then it results in reducing the complexity and size of software system. It also improves maintainability and readability of code.
  • 5. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3966  Discovering Domain: -Clone detection is not only helpful in producing more structured code but also in discovering domain concepts and their idiomatic implementations. [8] 6. CONCLUSION The code clone detection is an issue in the software system which decrease the software’s comprehensibility as well as maintainability. Therefore, its analysis and detection is necessary for improving the quality, maintenance and design of the software system. In this paper, discussion in terms of attributes based on code clone detection is presented. The clone detection method is implemented using abstract syntax trees (ASTs), whichforfindingexactandnearmissclonesforarbitrary fragments in the source code [2]. Since detection done in the program structure. clones can be factored in the source using standard transformational methods. The approach is based on variations of methods for compiler to find common subtree on elimination using hashing and then we find subsequence. The method is straightforward to implement using parsing technology. REFERENCES [1] Lee, Y. J., Lim, J. S., Ji, J. H., Cho, H. G., & Woo, G. (2012). Plagiarism detection among source codes using adaptive methods. KSII Transactions on Internet and Information Systems (TIIS), 6(6), 1627-1648. [2] Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., & Bier, L. (1998, November). Clone detection using abstract syntax trees. In Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272) (pp. 368-377). IEEE. [3] Morshed, M., Rahman, M., & Ahmed, S. U. (2012). A literature review of code clone analysis to improve software maintenance process. arXiv preprint arXiv:1205.5615. [4] Jiang, Z. M., & Hassan, A. E. (2007, September). A framework for studying clones in large software systems. In SeventhIEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2007) (pp. 203-212). IEEE. [5] Roy, C. K., & Cordy, J. R. (2007). A survey on software clone detection research. Queen’s School of Computing TR, 541(115), 64-68. [6] Baxter, I. D., Yahin, A., Moura, L., Sant'Anna, M., & Bier, L. (1998, November). Clone detection using abstract syntax trees. In Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272) (pp. 368-377). IEEE. [7] Kapser, C. (2009). Toward an understanding of software code cloning as a development practice. [8] Ijptjournal.org. (2019). Code Cloning Detection using Abstract Syntax Tree. [online] Available at: http://www.ijpttjournal.org/volume-9/IJPTT-V9P407.pdf [Accessed 17 Apr. 2019]. [9] Baxter, I., Yahin, A., Moura, L. and Bier, L. (2019). Code Cloning Using Abstract Syntax Tree. www.eecs.yorku.c, [online] p.2. Available at: http://www.eecs.yorku.c [Accessed 17 Apr. 2019]. BIOGRAPHIES Gunjan Chugh, she is currently pursuing PhD with specializationin Computer Science from Delhi Technological University, New Delhi. She received her M. Tech degree in Computer Science from Banasthali University, Rajasthan in 2013 & is currently working in Department of Information Technology, at Dr. Akhilesh Das Gupta Institute of Technology and Management, New Delhi. Her research interest includes Artificial Intelligence, Machine Learning and Information Security.
  • 6. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 06 Issue: 04 | Apr 2019 www.irjet.net p-ISSN: 2395-0072 © 2019, IRJET | Impact Factor value: 7.211 | ISO 9001:2008 Certified Journal | Page 3967 Divya Mahajan, she is currently pursuing Bachelor of Technology with specialization in Information Technology from Guru Gobind Singh Indraprastha University,New Delhi. Her research interest lies in software engineering, data mining and Machine learning. Nainika Sehgal, she is currently a student who is pursuing Btech in Information Technology from IP university. She has searched and made a research paper on Code detection using an abstract syntax tree. The main motive was to study about clones and different techniques and how to detect it. Her career objective is to continuously enhance her knowledge, skillsandexperienceby getting involved in challenging work environment and utilizethem for personal and organizational growth to the best of her ability. Akanksha Paul, currently she is a student in Guru Gobind Singh Indraprastha University,NewDelhi pursuing herB.Tech inInformation Technology. She made a research paper on Code Cloning for better understanding of clones and code reuse. Leena Budhiraja, currently she is pursuing B. Tech in Guru Gobind Singh Indraprastha University,New Delhi in Information Technology. Her objective of life is to pursue a challenging career in life and enhance her knowledge.