Publication | Open Access
Learning to Infer Program Sketches
32
Citations
0
References
2019
Year
Artificial IntelligenceEngineeringMachine LearningInfer Program SketchesSketch-based ModelingSymbolic SearchSoftware AnalysisNatural Language ProcessingData ScienceComputational LinguisticsProgram Synthesis SystemAutomatic ProgrammingMachine TranslationSymbolic LearningCode GenerationExplicit ReasoningComputer ScienceCode RepresentationAutomated ReasoningProgram AnalysisProgram ComprehensionProgram Synthesis
Our goal is to build systems which write code automatically from the kinds of specifications humans can most easily provide, such as examples and natural language instruction. The key idea of this work is that a flexible combination of pattern recognition and explicit reasoning can be used to solve these complex programming problems. We propose a method for dynamically integrating these types of information. Our novel intermediate representation and training algorithm allow a program synthesis system to learn, without direct supervision, when to rely on pattern recognition and when to perform symbolic search. Our model matches the memorization and generalization performance of neural synthesis and symbolic search, respectively, and achieves state-of-the-art performance on a dataset of simple English description-to-code programming problems.