Code completion with statistical language models
We address the problem of synthesizing code completions for programs using APIs. Given a
program with holes, we synthesize completions for holes with the most likely sequences of …
program with holes, we synthesize completions for holes with the most likely sequences of …
Synthesizing data structure transformations from input-output examples
We present a method for example-guided synthesis of functional programs over recursive
data structures. Given a set of input-output examples, our method synthesizes a program in …
data structures. Given a set of input-output examples, our method synthesizes a program in …
Program synthesis from polymorphic refinement types
We present a method for synthesizing recursive functions that provably satisfy a given
specification in the form of a polymorphic refinement type. We observe that such …
specification in the form of a polymorphic refinement type. We observe that such …
Type-and-example-directed program synthesis
PM Osera, S Zdancewic - ACM SIGPLAN Notices, 2015 - dl.acm.org
This paper presents an algorithm for synthesizing recursive functions that process algebraic
datatypes. It is founded on proof-theoretic techniques that exploit both type information and …
datatypes. It is founded on proof-theoretic techniques that exploit both type information and …
SWIM: synthesizing what I mean: code search and idiomatic snippet synthesis
Modern programming frameworks come with large libraries, with diverse applications such
as for matching regular expressions, parsing XML files and sending email. Programmers …
as for matching regular expressions, parsing XML files and sending email. Programmers …
Component-based synthesis for complex APIs
Component-based approaches to program synthesis assemble programs from a database
of existing components, such as methods provided by an API. In this paper, we present a …
of existing components, such as methods provided by an API. In this paper, we present a …
Program synthesis using natural language
Interacting with computers is a ubiquitous activity for millions of people. Repetitive or
specialized tasks often require creation of small, often one-off, programs. End-users struggle …
specialized tasks often require creation of small, often one-off, programs. End-users struggle …
Complete completion using types and weights
Developing modern software typically involves composing functionality from existing
libraries. This task is difficult because libraries may expose many methods to the developer …
libraries. This task is difficult because libraries may expose many methods to the developer …
Codehint: Dynamic and interactive synthesis of code snippets
There are many tools that help programmers find code fragments, but most are inexpressive
and rely on static information. We present a new technique for synthesizing code that is …
and rely on static information. We present a new technique for synthesizing code that is …