Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks
Not on the map. Why?
Abstract (arXiv)
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.
Key facts. Cited by 35 papers in the map (data through 7 Oct 2026). First posted on arXiv 23 Oct 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 13; 2022: 8; 2023: 9; 2024: 3; 2025: 1; 2026: 1.
35 papers.
Sort:
By area:
- 2021Program Synthesis with Large Language Modelscited by 3,509
- 2021Show Your Work: Scratchpads for Intermediate Computation with Language Modelscited by 871
- 2024NExT: Teaching Large Language Models to Reason about Code Executioncited by 60
- 2021Latent Execution for Neural Program Synthesiscited by 35
- 2023Efficient and Scalable Graph Generation through Iterative Local Expansioncited by 35
- 2023Code Execution with Pre-trained Language Modelscited by 33
- 2021ProTo: Program-Guided Transformer for Program-Guided Taskscited by 19
- 2023ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesiscited by 17
- 2023GPT is becoming a Turing machine: Here are some ways to program itcited by 16
- 2022Static Prediction of Runtime Errors by Learning to Execute Programs with External Resource Descriptionscited by 11
- 2025What I cannot execute, I do not understand: Training and Evaluating LLMs on Program Execution Tracescited by 11
- 2022Robust Knowledge Adaptation for Dynamic Graph Neural Networkscited by 9
23 more
- 2023Exploiting Code Symmetries for Learning Program Semanticscited by 9
- 2023LExecutor: Learning-Guided Executioncited by 7
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lackingcited by 7
- 2021Large Language Models are not Models of Natural Language: they are Corpus Modelscited by 6
- 2022Compositional Generalization and Decomposition in Neural Program Synthesiscited by 6
- 2021Reinforcement Learning of Implicit and Explicit Control Flow in Instructionscited by 4
- 2022A Library for Representing Python Programs as Graphs for Machine Learningcited by 4
- 2021Learning to Extend Program Graphs to Work-in-Progress Codecited by 3
- 2021Meta-Learning an Inference Algorithm for Probabilistic Programscited by 1
- 2021A Graph Deep Learning Framework for High-Level Synthesis Design Space Explorationcited by 1
- 2023Neuro-Symbolic Execution of Generic Source Codecited by 1
- 2024A Benchmark on Directed Graph Representation Learning in Hardware Designscited by 1
- 2026Towards a Neural Debugger for Pythoncited by 1
- 2021SINGA-Easy: An Easy-to-Use Framework for MultiModal Analysiscited by 0
- 2021VisualTextRank: Unsupervised Graph-based Content Extraction for Automating Ad Text to Image Searchcited by 0
- 2021Text is NOT Enough: Integrating Visual Impressions into Open-domain Dialogue Generationcited by 0
- 2021Towards Neural Functional Program Evaluationcited by 0
- 2022Discovering Personalized Semantics for Soft Attributes in Recommender Systems using Concept Activation Vectorscited by 0
- 2022Reinforced MOOCs Concept Recommendation in Heterogeneous Information Networkscited by 0
- 2022Explanation-Guided Fairness Testing through Genetic Algorithmcited by 0
- 2022Using Graph Neural Networks for Program Terminationcited by 0
- 2023Tribe or Not? Critical Inspection of Group Differences Using TribalGramcited by 0
- 2023NPS: A Framework for Accurate Program Sampling Using Graph Neural Networkcited by 0
- 2026Towards a Neural Debugger for Python10 Mar 2026
- 2025What I cannot execute, I do not understand: Training and Evaluating LLMs on Program Execution Traces10 Feb 2025
- 2024A Benchmark on Directed Graph Representation Learning in Hardware Designs9 Oct 2024
- 2024NExT: Teaching Large Language Models to Reason about Code Execution23 Apr 2024
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lacking19 Feb 2024
- 2023Efficient and Scalable Graph Generation through Iterative Local Expansion14 Dec 2023
- 2023Exploiting Code Symmetries for Learning Program Semantics7 Aug 2023
- 2023ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis26 Jul 2023
- 2023Code Execution with Pre-trained Language Models8 May 2023
- 2023NPS: A Framework for Accurate Program Sampling Using Graph Neural Network18 Apr 2023
- 2023GPT is becoming a Turing machine: Here are some ways to program it25 Mar 2023
- 2023Neuro-Symbolic Execution of Generic Source Code23 Mar 2023
23 more
- 2023Tribe or Not? Critical Inspection of Group Differences Using TribalGram16 Mar 2023
- 2023LExecutor: Learning-Guided Execution5 Feb 2023
- 2022A Library for Representing Python Programs as Graphs for Machine Learning15 Aug 2022
- 2022Using Graph Neural Networks for Program Termination28 Jul 2022
- 2022Robust Knowledge Adaptation for Dynamic Graph Neural Networks22 Jul 2022
- 2022Explanation-Guided Fairness Testing through Genetic Algorithm16 May 2022
- 2022Compositional Generalization and Decomposition in Neural Program Synthesis7 Apr 2022
- 2022Reinforced MOOCs Concept Recommendation in Heterogeneous Information Networks8 Mar 2022
- 2022Static Prediction of Runtime Errors by Learning to Execute Programs with External Resource Descriptions7 Mar 2022
- 2022Discovering Personalized Semantics for Soft Attributes in Recommender Systems using Concept Activation Vectors6 Feb 2022
- 2021Large Language Models are not Models of Natural Language: they are Corpus Models13 Dec 2021
- 2021Towards Neural Functional Program Evaluation9 Dec 2021
- 2021Show Your Work: Scratchpads for Intermediate Computation with Language Models30 Nov 2021
- 2021A Graph Deep Learning Framework for High-Level Synthesis Design Space Exploration29 Nov 2021
- 2021ProTo: Program-Guided Transformer for Program-Guided Tasks2 Oct 2021
- 2021Text is NOT Enough: Integrating Visual Impressions into Open-domain Dialogue Generation13 Sep 2021
- 2021Program Synthesis with Large Language Models16 Aug 2021
- 2021VisualTextRank: Unsupervised Graph-based Content Extraction for Automating Ad Text to Image Search5 Aug 2021
- 2021SINGA-Easy: An Easy-to-Use Framework for MultiModal Analysis3 Aug 2021
- 2021Latent Execution for Neural Program Synthesis29 Jun 2021
- 2021Learning to Extend Program Graphs to Work-in-Progress Code28 May 2021
- 2021Meta-Learning an Inference Algorithm for Probabilistic Programs1 Mar 2021
- 2021Reinforcement Learning of Implicit and Explicit Control Flow in Instructions25 Feb 2021
- 2021Program Synthesis with Large Language Modelscited by 3,509
- 2021Latent Execution for Neural Program Synthesiscited by 35
- 2023Efficient and Scalable Graph Generation through Iterative Local Expansioncited by 35
- 2023Code Execution with Pre-trained Language Modelscited by 33
- 2021ProTo: Program-Guided Transformer for Program-Guided Taskscited by 19
- 2023ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesiscited by 17
- 2023GPT is becoming a Turing machine: Here are some ways to program itcited by 16
- 2022Static Prediction of Runtime Errors by Learning to Execute Programs with External Resource Descriptionscited by 11
- 2025What I cannot execute, I do not understand: Training and Evaluating LLMs on Program Execution Tracescited by 11
- 2022Robust Knowledge Adaptation for Dynamic Graph Neural Networkscited by 9
- 2023Exploiting Code Symmetries for Learning Program Semanticscited by 9
- 2023LExecutor: Learning-Guided Executioncited by 7
12 most cited of 33 All 33 (JSON)
- 2026Towards a Neural Debugger for Python10 Mar 2026
- 2025What I cannot execute, I do not understand: Training and Evaluating LLMs on Program Execution Traces10 Feb 2025
- 2024A Benchmark on Directed Graph Representation Learning in Hardware Designs9 Oct 2024
- 2024CodeArt: Better Code Models by Attention Regularization When Symbols Are Lacking19 Feb 2024
- 2023Efficient and Scalable Graph Generation through Iterative Local Expansion14 Dec 2023
- 2023Exploiting Code Symmetries for Learning Program Semantics7 Aug 2023
- 2023ExeDec: Execution Decomposition for Compositional Generalization in Neural Program Synthesis26 Jul 2023
- 2023Code Execution with Pre-trained Language Models8 May 2023
- 2023NPS: A Framework for Accurate Program Sampling Using Graph Neural Network18 Apr 2023
- 2023GPT is becoming a Turing machine: Here are some ways to program it25 Mar 2023
- 2023Neuro-Symbolic Execution of Generic Source Code23 Mar 2023
- 2023Tribe or Not? Critical Inspection of Group Differences Using TribalGram16 Mar 2023
12 newest of 33 All 33 (JSON)