Program Synthesis and Semantic Parsing with Learned Code Idioms
By Richard Shin, Miltiadis Allamanis, Marc Brockschmidt, Oleksandr Polozov. 2019
92 citations recorded by the source corpus.
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.
Subfields: Artificial Intelligence, Information Systems, Natural Language Processing, Code Generation & Program Synthesis
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Josh Tenenbaum
- Mohit Bansal
- Percy Liang
- Swarat Chaudhuri
- Rishabh Singh
- Omer Levy
- Uri Alon
- Graham Neubig
In Information Systems
- Rishabh Singh
- Uri Alon
- Eran Yahav
- Armando Solar-Lezama
- Swarat Chaudhuri
- Josh Tenenbaum
- Alexey Svyatkovskiy
- Neel Sundaresan
In Natural Language Processing
- Josh Tenenbaum
- Swarat Chaudhuri
- Uri Alon
- Eran Yahav
- Rishabh Singh
- Omer Levy
- Oleksandr Polozov
- Armando Solar-Lezama
In Code Generation & Program Synthesis
- Swarat Chaudhuri
- Armando Solar-Lezama
- Rishabh Singh
- Josh Tenenbaum
- Uri Alon
- Oleksandr Polozov
- Kevin Ellis
- Eran Yahav
Citations in the corpus
- A Hazard Analysis Framework for Code Synthesis Large Language Models (2022, background): “Deriving from programming language synthesis techniques may lead the way on how this can be carried out [9, 12, 16, 18, 32].”
- Total Recall: a Customized Continual Learning Method for Neural Semantic Parsers (2021, methodology): “As in (Shin et al., 2019), the idioms (frequently occurred AST fragments) are collapsed into single units.”
- IntelliCode compose: code generation using transformer (2020, background): “Some of the early applications of machine learning of source code include code search [1, 2], bug detection and localization [3], program synthesis [4], code summarization [5] and code completion [6–10].”
- Structural Language Models for Any-Code Generation (2019, background): “…1971) are tailored to domain-specific languages (Gulwani, 2011), semantic parsing approaches focus on highly templated datasets (Ling et al., 2016; Shin et al., 2019) or SQL (Yu et al., 2018; Dong and Lapata, 2018), while other recent approaches generate code in general languages like Java and…”
- Leveraging Language to Learn Program Abstractions and Search Heuristics (2021, background): “…Abolafia et al., 2018; Nye et al., 2019; Ellis et al., 2019; Si et al., 2019; Ye et al., 2020a); and learn libraries of symbolic abstractions from a collection of related programs or tasks (Dechter et al., 2013; Zhang et al., 2017; Shin et al., 2019; Dumancić & Cropper; Ellis et al., 2018; 2021).”
- Investigating Math Word Problems using Pretrained Multilingual Language Models (2021, background): “This task therefore can be seen as a special case of code synthesis (Desai et al., 2016; Lin et al., 2018; Shin et al., 2019; Wang et al., 2020) in a restricted domain, where the code to be synthesized is the expression tree.”
- Neurosymbolic Programming (2021, methodology): “In a semantic parsing domain, the system might learn and reuse chunks of code which execute common English phrases (Shin et al., 2019a).”