LGOct 23, 2020

Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks

arXiv:2010.12621v148 citations
Originality Incremental advance
AI Analysis

This addresses a challenge in software engineering for tasks requiring both structural and sequential reasoning, such as program execution and synthesis, though it appears incremental in combining existing approaches.

The paper tackles the problem of learning to execute programs by combining the strengths of graph neural networks (GNNs) for program structure and recurrent neural networks (RNNs) for sequential reasoning, introducing the IPA-GNN architecture. The result shows that IPA-GNN outperforms various RNN and GNN baselines on tasks like systematic generalization and executing partial programs.

Graph neural networks (GNNs) have emerged as a powerful tool for learning software engineering tasks including code completion, bug finding, and program repair. They benefit from leveraging program structure like control flow graphs, but they are not well-suited to tasks like program execution that require far more sequential reasoning steps than number of GNN propagation steps. Recurrent neural networks (RNNs), on the other hand, are well-suited to long sequential chains of reasoning, but they do not naturally incorporate program structure and generally perform worse on the above tasks. Our aim is to achieve the best of both worlds, and we do so by introducing a novel GNN architecture, the Instruction Pointer Attention Graph Neural Networks (IPA-GNN), which achieves improved systematic generalization on the task of learning to execute programs using control flow graphs. The model arises by considering RNNs operating on program traces with branch decisions as latent variables. The IPA-GNN can be seen either as a continuous relaxation of the RNN model or as a GNN variant more tailored to execution. To test the models, we propose evaluating systematic generalization on learning to execute using control flow graphs, which tests sequential reasoning and use of program structure. More practically, we evaluate these models on the task of learning to execute partial programs, as might arise if using the model as a heuristic function in program synthesis. Results show that the IPA-GNN outperforms a variety of RNN and GNN baselines on both tasks.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes