Lune

ICLR2020Top-tier venue

Hoppity: Learning Graph Transformations to Detect and Fix Bugs in Programs

Elizabeth Dinella, Hanjun Dai, Ziyang Li, Mayur Naik, Le Song, Ke Wang

2020Year
212Citations
49Top-tier citations

Abstract

We present a learning-based approach to detect and fix a broad range of bugs in Javascript programs. We frame the problem in terms of learning a sequence of graph transformations: given a buggy program modeled by a graph structure, our model makes a sequence of predictions including the position of bug nodes and corresponding graph edits to produce a fix. Unlike previous works that use deep neural networks, our approach targets bugs that are more complex and semantic in nature (i.e. bugs that require adding or deleting statements to fix). We have realized our approach in a tool called HOPPITY. By training on 290,715 Javascript code change commits on Github, HOPPITY correctly detects and fixes bugs in 9,490 out of 36,361 programs in an end-to-end fashion. Given the bug location and type of the fix, HOPPITY also outperforms the baseline approach by a wide margin. <br><br>A talk presented at the SIAM CSE21 conference, MS187: Data-Driven Analysis of Scientific Software Quality, Availability, and Development Productivity.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 960f22d1-cbbd-4cb2-8515-e53b0e075671

Cited by top-tier papers49

Ask how each one uses it

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines