HackerPapers

arXiv:1703.05698cs.PL

Neural Sketch Learning for Conditional Program Generation

Vijayaraghavan Murali, Letao Qi, Swarat Chaudhuri, Chris Jermaine

Early discovery. Linked by one identifiable commenter. This paper is outside the main ranking; a mention is not an endorsement.

Abstract

We study the problem of generating source code in a strongly typed, Java-like programming language, given a label (for example a set of API calls or types) carrying a small amount of information about the code that is desired. The generated programs are expected to respect a "realistic" relationship between programs and labels, as exemplified by a corpus of labeled programs available during training. Two challenges in such conditional program generation are that the generated programs must satisfy a rich set of syntactic and semantic constraints, and that source code contains many low-level features that impede learning. We address these problems by training a neural generator not on code but on program sketches, or models of program syntax that abstract out names and operations that do not generalize across programs. During generation, we infer a posterior distribution over sketches, then concretize samples from this distribution into type-safe programs using combinatorial techniques. We implement our ideas in a system for generating API-heavy Java code, and show that it can often predict the entire body of a method given just a few API calls or data types that appear in the method.

arXiv comments
Journal reference
DOI
Subjects
cs.PLProgramming Languages cs.LGMachine Learning

On Hacker News

Linked by 1 identifiable commenter in 1 comment across 1 thread, from Apr 2018 to Apr 2018.

Comments linking this paper, per year.

Discussed in comments1 thread

    • For those interested, this is based on our ICLR 2018 paper: Neural Sketch Learning for Conditional Program Generation (https://arxiv.org/abs/1703.05698)

      vijaymuraliView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.