Font Size: a A A

Research On Code Analysis Method Based On Neural Network Language Model

Posted on:2018-02-08Degree:MasterType:Thesis
Country:ChinaCandidate:Q TuFull Text:PDF
GTID:2348330512483300Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
Deep Learning has made significant breakthroughs in various fields of artificial intelligence.Advantages of deep learning include the ability to capture highly complicated features,weak involvement of human engineering,etc.However,it is still virtually impossible to use deep learning to analyze programs since deep architectures cannot be trained effectively with pure back propagation.In this paper,we propose the coding criterion to build program vector representations based on the abstract syntax tree nodes,which are the premise of deep learning for program analysis.We evaluate the learned vector representations both qualitatively and quantitatively.We conclude,based on the experiments,the coding criterion is successful in building program representations.To evaluate whether deep learning is beneficial for program analysis,we feed the representations to deep neural networks,and achieve higher accuracy in the program classification task than shallow methods,such as logistic regression and the support vector machine.This result confirms the feasibility of deep learning to analyze programs.We present another approach that learn latent representations of rooted subgraph from control flow graphs of the programs inspired by recent advancements in graph kernels.The model leverages on local information obtained from neighbourhoods of nodes to learn their latent representations in an unsupervised fashion.We demonstrate that subgraph vectors learnt by our approach could be used in conjunction with classifiers such as support vector machine and relational data clustering algorithms to achieve significantly accuracies.Our experiments on several benchmark and real-world datasets reveal that the model achieves significant improvements over existing graph kernels on both supervised and unsupervised learning task.We believe deep learning will become an outstanding technique for program analysis in the future.
Keywords/Search Tags:deep learning, program analysis, vector representation, abstract syntax tree, control flow graph, graph kernel
PDF Full Text Request
Related items