SEED: Semantic Graph based Deep detection for type-4 clone
arXiv:2109.12079 · doi:10.1007/978-3-031-08129-3_8
Abstract
Type-4 clones refer to a pair of code snippets with similar semantics but written in different syntax, which challenges the existing code clone detection techniques. Previous studies, however, highly rely on syntactic structures and textual tokens, which cannot precisely represent the semantic information of code and might introduce non-negligible noise into the detection models. To overcome these limitations, we design a novel semantic graph-based deep detection approach, called SEED. For a pair of code snippets, SEED constructs a semantic graph of each code snippet based on intermediate representation to represent the code semantic more precisely compared to the representations based on lexical and syntactic analysis. To accommodate the characteristics of Type-4 clones, a semantic graph is constructed focusing on the operators and API calls instead of all tokens. Then, SEED generates the feature vectors by using the graph match network and performs clone detection based on the similarity among the vectors. Extensive experiments show that our approach significantly outperforms two baseline approaches over two public datasets and one customized dataset. Especially, SEED outperforms other baseline methods by an average of 25.2% in the form of F1-Score. Our experiments demonstrate that SEED can reach state-of-the-art and be useful for Type-4 clone detection in practice.
arXiv comment18 pages
References in corpus (13)
- Efficient Estimation of Word Representations in Vector Space
- PyTorch: An Imperative Style, High-Performance Deep Learning Library
- Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
- Enhanced LSTM for Natural Language Inference
- Gated Graph Sequence Neural Networks
- Convolutional Neural Networks over Tree Structures for Programming Language Processing
- Graph Matching Networks for Learning the Similarity of Graph Structured Objects
- Learning and Evaluating Contextual Embedding of Source Code
- Oreo: Detection of Clones in the Twilight Zone
- Neural Code Comprehension: A Learnable Representation of Code Semantics
- Detecting Code Clones with Graph Neural Networkand Flow-Augmented Abstract Syntax Tree
- deGraphCS: Embedding Variable-based Flow Graph for Neural Code Search
- Generating Comments From Source Code with CCGs