Program Synthesis and Semantic Parsing with Learned Code Idioms
arXiv:1906.10816
Abstract
Program synthesis of general-purpose source code from natural language specifications is challenging due to the need to reason about high-level patterns in the target program and low-level implementation details at the same time. In this work, we present PATOIS, a system that allows a neural program synthesizer to explicitly interleave high-level and low-level reasoning at every generation step. It accomplishes this by automatically mining common code idioms from a given corpus, incorporating them into the underlying language for neural synthesis, and training a tree-based neural synthesizer to use these idioms during code generation. We evaluate PATOIS on two complex semantic parsing datasets and show that using learned code idioms improves the synthesizer's accuracy.
arXiv comment33rd Conference on Neural Information Processing Systems (NeurIPS) 2019. 13 pages total, 9 pages of main text
Cited by in corpus (9)
- Convo: What does conversational programming need? An exploration of machine learning interface design
- Toward Code Generation: A Survey and Lessons from Semantic Parsing
- Exploring Dynamic Selection of Branch Expansion Orders for Code Generation
- Latent Programmer: Discrete Latent Codes for Program Synthesis
- Investigating Math Word Problems using Pretrained Multilingual Language Models
- Sketch-Driven Regular Expression Generation from Natural Language and Examples
- Autoencoders as Tools for Program Synthesis
- CAST: Enhancing Code Summarization with Hierarchical Splitting and Reconstruction of Abstract Syntax Trees
- Total Recall: a Customized Continual Learning Method for Neural Semantic Parsers