CroLSSim: Cross‐language software similarity detector using hybrid approach of LSA‐based AST‐MDrep features and CNN‐LSTM model
Software similarity in different programming codes is a rapidly evolving field because of its numerous applications in software development, software cloning, software plagiarism, and software forensics. Currently, software researchers and developers search cross‐language open‐source repositories fo...
Gespeichert in:
Veröffentlicht in: | International journal of intelligent systems 2022-09, Vol.37 (9), p.5768-5795 |
---|---|
Hauptverfasser: | , , , , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Software similarity in different programming codes is a rapidly evolving field because of its numerous applications in software development, software cloning, software plagiarism, and software forensics. Currently, software researchers and developers search cross‐language open‐source repositories for similar applications for a variety of reasons, such as reusing programming code, analyzing different implementations, and looking for a better application. However, it is a challenging task because each programming language has a unique syntax and semantic structure. In this paper, a novel tool called Cross‐Language Software Similarity (CroLSSim) is designed to detect similar software applications written in different programming codes. First, the Syntax Tree (AST) features are collected from different programming codes. These are high‐quality features that can show the view of each program. Then, Methods Description (MDrep) in combination with AST is used to examine the relationship among different method calls. Second, the Term Frequency Inverse Document Frequency approach is used to retrieve the local and global weights from AST‐MDrep features. Third, the Latent Semantic Analysis‐based features extraction and selection method is proposed to extract the semantic anchors in reduced dimensional space. Fourth, the Convolution Neural Network (CNN)‐based features extraction method is proposed to mine the deep features. Finally, a hybrid deep learning model of CNN‐Long‐Short‐Term Memory is designed to detect semantically similar software applications from these latent variables. The data set contains approximately 9.5K Java, 8.8K C#, and 7.4K C++ software applications obtained from GitHub. The proposed approach outperforms as compared with the state‐of‐the‐art methods. |
---|---|
ISSN: | 0884-8173 1098-111X |
DOI: | 10.1002/int.22813 |