Learning Scalable and Precise Representation of Program Semantics

05/13/2019
by   Ke Wang, et al.
0

Neural program embedding has shown potential in aiding the analysis of large-scale, complicated software. Newly proposed deep neural architectures pride themselves on learning program semantics rather than superficial syntactic features. However, by considering the source code only, the vast majority of neural networks do not capture a deep, precise representation of program semantics. In this paper, we present , a novel deep neural network that learns from program execution traces. Compared to the prior dynamic models, not only is capable of generalizing across multiple executions for learning a program's dynamic semantics in its entirety, but is also more efficient when dealing with programs yielding long execution traces. For evaluation, we task with semantic classification ( categorizing programs based on their semantics) and compared it against two prominent static models: Gated Graph Neural Network and TreeLSTM. We find that achieves the highest prediction accuracy among all models. To further reveal the capacity of all aforementioned deep neural architectures, we examine if the models can learn to detect deeper semantic properties of a program. In particular given a task of recognizing loop invariants, we show beats all static models by a wide margin.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/03/2019

A Hybrid Approach for Learning Program Representations

Learning neural program embedding is the key to utilizing deep neural ne...
research
07/03/2019

Learning Blended, Precise Semantic Program Embeddings

Learning neural program embeddings is key to utilizing deep neural netwo...
research
05/27/2019

COSET: A Benchmark for Evaluating Neural Program Embeddings

Neural program embedding can be helpful in analyzing large software, a t...
research
03/09/2021

Mining Program Properties From Neural Networks Trained on Source Code Embeddings

In this paper, we propose a novel approach for mining different program ...
research
08/29/2023

PEM: Representing Binary Program Semantics for Similarity Analysis via a Probabilistic Execution Model

Binary similarity analysis determines if two binary executables are from...
research
02/14/2018

Convolutional Neural Networks over Control Flow Graphs for Software Defect Prediction

Existing defects in software components is unavoidable and leads to not ...
research
11/18/2020

GRAPHSPY: Fused Program Semantic-Level Embedding via Graph Neural Networks for Dead Store Detection

Production software oftentimes suffers from the issue of performance ine...

Please sign up or login with your details

Forgot password? Click here to reset