Graph Neural Networks For Mapping Variables Between Programs – Extended Version

07/24/2023
by   Pedro Orvalho, et al.
0

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 our experiments show that the current state-of-the-art on program repair, greatly dependent on the programs' structure, can only repair about 72 incorrect programs. In contrast, our approach, which is solely based on variable mappings, can repair around 88.5

READ FULL TEXT
research
06/28/2022

InvAASTCluster: On Applying Invariant-Based Program Clustering to Introductory Programming Assignments

Due to the vast number of students enrolled in Massive Open Online Cours...
research
04/03/2019

Neural Program Repair by Jointly Learning to Localize and Repair

Due to its potential to improve programmer productivity and software qua...
research
05/20/2020

Graph-based, Self-Supervised Program Repair from Diagnostic Feedback

We consider the problem of learning to repair programs from diagnostic f...
research
07/14/2021

FAPR: Fast and Accurate Program Repair for Introductory Programming Courses

In introductory programming courses, it is challenging for instructors t...
research
03/20/2018

Program Repair via Direct State Manipulation

The goal of program repair is to automatically fix programs to meet a sp...
research
07/28/2022

Using Graph Neural Networks for Program Termination

Termination analyses investigate the termination behavior of programs, i...
research
08/25/2022

Social Diversity for ATL Repair

Model transformations play an essential role in the Model-Driven Enginee...

Please sign up or login with your details

Forgot password? Click here to reset