← Search

David Bieber

8 accepted papers

2023

Can Large Language Models Reason about Program Invariants?

ICML 2023poster

Identifying invariants is an important program analysis task with applications towards program understanding, bug finding, vulnerability analysis, and formal verification. Existing tools for identifying program invariants rely on dynamic analysis, requiring traces collected from multiple executions…

Cited by 87SourcePDFScholar
2023

Static Prediction of Runtime Errors by Learning to Execute Programs with External Resource Descriptions

ICLR 2023poster

The execution behavior of a program often depends on external resources, such as program inputs or file contents, and so the program cannot be run in isolation. Nevertheless, software developers benefit from fast iteration loops where automated tools identify errors as early as possible, even before…

2021

BUSTLE: Bottom-Up Program Synthesis Through Learning-Guided Exploration

ICLR 2021spotlight

Program synthesis is challenging largely because of the difficulty of search in a large space of programs. Human programmers routinely tackle the task of writing complex programs by writing sub-programs and then analyzing their intermediate results to compose them in appropriate ways. Motivated by t…

Cited by 68SourcePDFScholar
2021

Learning Semantic Representations to Verify Hardware Designs

NeurIPS 2021poster

Verification is a serious bottleneck in the industrial hardware design cycle, routinely requiring person-years of effort. Practical verification relies on a "best effort" process that simulates the design on test inputs. This suggests a new research question: Can this simulation data be exploited to…

Cited by 40SourcePDFScholar
2020

Global Relational Models of Source Code

ICLR 2020poster

Models of code can learn distributed representations of a program's syntax and semantics to predict many non-trivial properties of a program. Recent state-of-the-art models leverage highly structured representations of programs, such as trees, graphs and paths therein (e.g. data-flow relations), whi…

Cited by 285SourcecodeScholar
2020

Learning to Execute Programs with Instruction Pointer Attention Graph Neural Networks

NeurIPS 2020poster

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…

2019

Neural Program Repair by Jointly Learning to Localize and Repair

ICLR 2019poster

Due to its potential to improve programmer productivity and software quality, automated program repair has been an active topic of research. Newer techniques harness neural networks to learn directly from examples of buggy programs and their fixes. In this work, we consider a recently identified cla…

Cited by 167SourcePDFScholar