Graph Neural Networks For Mapping Variables Between Programs -- Extended Version
Not on the map. Why?
Abstract (arXiv)
Automated program analysis is a pivotal research domain in many areas of Computer Science -- Formal Methods and Artificial Intelligence, in particular. Due to the undecidability of the problem of program equivalence, comparing two programs is highly challenging. Typically, in order to compare two programs, a relation between both programs' sets of variables is required. Thus, mapping variables between two programs is useful for a panoply of tasks such as program equivalence, program analysis, program repair, and clone detection. In this work, we propose using graph neural networks (GNNs) to map the set of variables between two programs based on both programs' abstract syntax trees (ASTs). To demonstrate the strength of variable mappings, we present three use-cases of these mappings on the task of program repair to fix well-studied and recurrent bugs among novice programmers in introductory programming assignments (IPAs). Experimental results on a dataset of 4166 pairs of incorrect/correct programs show that our approach correctly maps 83% of the evaluation dataset. Moreover, our experiments show that the current state-of-the-art on program repair, greatly dependent on the programs' structure, can only repair about 72% of the incorrect programs. In contrast, our approach, which is solely based on variable mappings, can repair around 88.5%.
Key facts. No citing papers in the map yet (data through 7 Oct 2026). Builds on 21 of its 46 references that are in the map. First posted on arXiv 24 Jul 2023.
Builds on
21 of 46 references.
References · 21
- 2014Adam: A Method for Stochastic Optimizationcited by 36,960
- 2016Semi-Supervised Classification with Graph Convolutional Networkscited by 11,282
- 2016Layer Normalizationcited by 5,579
- 2017Modeling Relational Data with Graph Convolutional Networkscited by 1,684
- 2017Learning to Represent Programs with Graphscited by 219
- 2020Graph-based, Self-Supervised Program Repair from Diagnostic Feedbackcited by 93
- 2018DeepBugs: A Learning Approach to Name-based Bug Detectioncited by 65
- 2021Language-Agnostic Representation Learning of Source Code from Structure and Contextcited by 63
- 2021Self-Supervised Bug Detection and Repaircited by 59
- 2019Neural Program Repair by Jointly Learning to Localize and Repaircited by 39
- 2019How Often Do Single-Statement Bugs Occur? The ManySStuBs4J Datasetcited by 35
- 2019Learning to Fix Build Errors with Graph2Diff Neural Networkscited by 26
9 more
- 2017Dynamic Neural Program Embedding for Program Repaircited by 23
- 2016Automated Clustering and Program Repair for Introductory Programming Assignmentscited by 21
- 2020Learning Semantic Program Embeddings with Graph Interval Neural Networkcited by 20
- 2021Structured Citation Trend Prediction Using Graph Neural Networkscited by 11
- 2022The Isabelle ENIGMAcited by 8
- 2021Verifix: Verified Repair of Programming Assignmentscited by 7
- 2022C-Pack of IPAs: A C90 Program Benchmark of Introductory Programming Assignmentscited by 5
- 2022InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignmentscited by 4
- 2022AdaptivePaste: Code Adaptation through Learning Semantics-aware Variable Usage Representationscited by 3
Built on by
Not cited yet.