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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:International journal of intelligent systems 2022-09, Vol.37 (9), p.5768-5795
Hauptverfasser: Ullah, Farhan, Naeem, Muhammad Rashid, Naeem, Hamad, Cheng, Xiaochun, Alazab, Mamoun
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
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