Automating string processing in spreadsheets using input-output examples
By Sumit Gulwani. 2011
1,011 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Natural Language Processing
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
- Percy Liang
- Luke S. Zettlemoyer
- Mohit Bansal
- Jianfeng Gao
- Quoc V. Le
- Sergey Levine
- Graham Neubig
- Yejin Choi
In Natural Language Processing
- Percy Liang
- Luke S. Zettlemoyer
- Mohit Bansal
- Graham Neubig
- Jianfeng Gao
- Christopher D. Manning
- Yejin Choi
- Caiming Xiong
Citations in the corpus
- Competition-level code generation with AlphaCode (2022, background): “Later on, input/output-based task specifications became more popular, with notable examples like FlashFill (Gulwani, 2011).”
- Program Synthesis with Large Language Models (2021, methodology): “, 2020], but these techniques have largely been applied to restricted domain-specific languages (DSLs) [Gulwani, 2011] or to languages that are more fully featured but that nevertheless are designed specifically with synthesis in mind [Odena and Sutton, 2020].”
- Evaluating Large Language Models Trained on Code (2021, background): “, string manipulation in FlashFill (Gulwani, 2011)).”
- SPoC: Search-based Pseudocode to Code (2019, background): “In contrast, program synthesis in the programming languages community emphasizes producing programs with the correct semantics, typically captured by a set of input-output test cases that the program must compute correctly [11, 10].”
- InCoder: A Generative Model for Code Infilling and Synthesis (2022, background): “, input-output examples [12, 28, 19, 13], partial implementations [58], or natural language descriptions [74, 73, 72, 42, 18] of the desired program as input.”
- CodeGen: An Open Large Language Model for Code with Multi-Turn Program Synthesis (2022, methodology): “Complete and formal specifications require too much effort, while informal ones like input-output examples often under-specify problems (Gulwani, 2011).”
- Learning with Latent Language (2017, methodology): “thm with additional kinds of training data. The approach we present in this paper combines elements of both, so we begin with a review of existing work. (Inductive) program synthesis approaches (e.g. Gulwani, 2011) reduce the effective size of the parameter space H by moving the optimization problem”
- A Hazard Analysis Framework for Code Synthesis Large Language Models (2022, neutral): “This has led the majority of synthesis methodologies to tackle only tightly specified, constrained problem instances or narrow tasks requiring much smaller datasets (e.g., string manipulation by FlashFill [17]).”
- Neuro-Symbolic Program Synthesis (2016, methodology): “Most of the recently proposed methods for program synthesis operate by searching the space of programs in a Domain-Specific Language (DSL) instead of arbitrary Turing-complete languages.”
- Structured Generative Models of Natural Source Code (2014, background): “Finally, one might hope to solve new source code-related tasks that would not otherwise be possible, such as automatic translation between programming languages, automatic code summarization, and learning representations of source code for the purposes of visualization or discriminative learning.”
- TerpreT: A Probabilistic Programming Language for Program Induction (2016, background): “, 2013), version-space algebra based search algorithms (Gulwani et al., 2012; Gulwani, 2011), and stochastic search (Schkufza et al.”
- Program Synthesis and Semantic Parsing with Learned Code Idioms (2019, methodology): “Second, many successful applications of inductive program synthesis such as FlashFill [14] rely on a manually designed DSL to make the underlying search process scalable.”
- Efficient Synthesis with Probabilistic Constraints (2019, background): “Over the past few years, progress in automatic program synthesis has touched many application domains, including automating data wrangling and data extraction tasks [20,21,29,14,2,12], generating network configurations that meet user intents [28,9], optimizing low-level code [27,24], and more [4,13].”
- Learning to Represent Programs with Property Signatures (2020, background): “Much (though not all) work on program synthesis is focused on domain specific languages that are less than maximally expressive (Gulwani, 2011; Balog et al., 2016; Wang et al., 2017; Alur et al., 2015).”
- Improving Molecular Design by Stochastic Iterative Target Augmentation (2020, methodology): “Program synthesis is the task of generating a program (using domain-specific language) based on given input-output specifications (Bunel et al., 2018; Gulwani, 2011; Devlin et al., 2017).”
- Accelerating search-based program synthesis using learned probabilistic models (2018, methodology): “As a result, recent years have witnessed a surge of interest in applying this technology to a wide range of problems, including end-user programming [12], intelligent tutoring [27], circuit transformation [9], and program repair [20], among many others.”
- Synthesizing benchmarks for predictive modeling (2017, methodology): “Program synthesis from input/output examples is used for simple algorithms in [42], string manipulation in [43], and geometry constructions in [44].”
- Emergent Communication of Generalizations (2021, methodology): “One way of benchmarking more cleanly compositional languages is to restrict ACRe models to more constrained and interpretable programs learned with techniques from the program synthesis [11] or grammar induction [10] literature.”
- Overview and Importance of Data Quality for Machine Learning Tasks (2020, background): “Data Transformation: This topic will span over the following important research papers [6, 8] to communicate how the field of Programming-by-Example (for string manipulation / correction) tasks evolved over time and what are the current state-of-the-art practices.”