Abstract:
Assessing the similarity between code components plays a pivotal role in a number of Software Engineering (SE) tasks, such as clone detection, impact analysis, refactorin...Show MoreMetadata
Abstract:
Assessing the similarity between code components plays a pivotal role in a number of Software Engineering (SE) tasks, such as clone detection, impact analysis, refactoring, etc. Code similarity is generally measured by relying on manually defined or hand-crafted features, e.g., by analyzing the overlap among identifiers or comparing the Abstract Syntax Trees of two code components. These features represent a best guess at what SE researchers can utilize to exploit and reliably assess code similarity for a given task. Recent work has shown, when using a stream of identifiers to represent the code, that Deep Learning (DL) can effectively replace manual feature engineering for the task of clone detection. However, source code can be represented at different levels of abstraction: identifiers, Abstract Syntax Trees, Control Flow Graphs, and Bytecode. We conjecture that each code representation can provide a different, yet orthogonal view of the same code fragment, thus, enabling a more reliable detection of similarities in code. In this paper, we demonstrate how SE tasks can benefit from a DL-based approach, which can automatically learn code similarities from different representations.
Date of Conference: 27 May 2018 - 03 June 2018
Date Added to IEEE Xplore: 30 December 2018
ISBN Information:
ISSN Information:
Conference Location: Gothenburg, Sweden
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Deep Learning ,
- Source Code ,
- Code Representation ,
- Representation Of Source Code ,
- Level Of Abstraction ,
- Feature Engineering ,
- Refactoring ,
- Different Levels Of Abstraction ,
- Clone Detection ,
- Code Fragments ,
- DL-based Approaches ,
- Abstract Syntax Tree ,
- Control Flow Graph ,
- False Positive ,
- Training Set ,
- Vocabulary ,
- True Positive ,
- Class Level ,
- Precision And Recall ,
- Deep Learning Approaches ,
- Term Pairs ,
- DL-based Models ,
- Similar Fragmentation ,
- Single Instance ,
- Multiple Representations ,
- Clone Types ,
- Deep Belief Network ,
- Candidate List ,
- Source Code Files ,
- Representation Learning
- Author Keywords
Keywords assist with retrieval of results and provide a means to discovering other relevant content. Learn more.
- IEEE Keywords
- Index Terms
- Deep Learning ,
- Source Code ,
- Code Representation ,
- Representation Of Source Code ,
- Level Of Abstraction ,
- Feature Engineering ,
- Refactoring ,
- Different Levels Of Abstraction ,
- Clone Detection ,
- Code Fragments ,
- DL-based Approaches ,
- Abstract Syntax Tree ,
- Control Flow Graph ,
- False Positive ,
- Training Set ,
- Vocabulary ,
- True Positive ,
- Class Level ,
- Precision And Recall ,
- Deep Learning Approaches ,
- Term Pairs ,
- DL-based Models ,
- Similar Fragmentation ,
- Single Instance ,
- Multiple Representations ,
- Clone Types ,
- Deep Belief Network ,
- Candidate List ,
- Source Code Files ,
- Representation Learning
- Author Keywords