Journal Article10.1145/4472.4476
Editing by example
108
TL;DR: An editing by example system derived from an efficient heuristic that provably synthesizes a gap program from examples of its input/output behavior is embedded in a production text editor.
read more
Abstract: An editing by example system is an automatic program synthesis facility embedded in a text editor that can be used to solve repetitive text editing problems The user provides the editor with a few examples of a text transformation The system analyzes the examples and generalizes them into a program that can perform the transformation to the rest of the user's text This paper presents an overview of the design, analysis, and implementation of a practical editing by example system It studies the problem of synthesizing a text processing program that generalizes the transformation implicitly described by a small number of input/output examples A class of text processing programs called gap programs is defined and the problems associated with synthesizing them from examples are examined, leading to an efficient heuristic that provably synthesizes a gap program from examples of its input/output behavior The editing by example system derived from this analysis has been embedded in a production text editor By developing an editing by example system that solves a useful class of text processing problems, this work demonstrates that program synthesis is feasible in the domain of text editing
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Automating string processing in spreadsheets using input-output examples
Sumit Gulwani
- 26 Jan 2011
TL;DR: The design of a string programming/expression language that supports restricted forms of regular expressions, conditionals and loops is described and an algorithm based on several novel concepts for synthesizing a desired program in this language is described from input-output examples.
An experimental evaluation of continuous testing during development
David Saff,Michael D. Ernst +1 more
- 01 Jul 2004
TL;DR: A controlled human experiment is reported on to evaluate whether students using continuous testing are more successful in completing programming assignments, indicating that the tool has a statistically significant effect on success in completing a programming task, but no such effect on time worked.
•Proceedings Article
A Machine Learning Framework for Programming by Example
Aditya Krishna Menon,Omer Tamuz,Sumit Gulwani,Butler W. Lampson,Adam Tauman Kalai +4 more
- 16 Jun 2013
TL;DR: The authors use machine learning to learn weights that relate textual features describing the provided input-output examples to plausible sub-components of a program, improving search and ranking on a variety of text processing tasks found on help forums.
Creating user interfaces using programming by example, visual programming, and constraints
TL;DR: Peridot demonstrates that it is possible to provide sophisticated programming capabilities to nonprogrammers in an easy-to-use manner and still have sufficient power to generate interesting and useful programs.
140
A guided tour across the boundaries of learning recursive languages
S. Lange
- 01 Jan 1995
TL;DR: The influence of various monotonicity constraints to the learning process is considered, and a thorough study concerning the influence of several parameters is provided, which provides a unifying framework for learning.
129
References
•Book
Introduction to Automata Theory, Languages, and Computation
John E. Hopcroft,Rajeev Motwani,Rotwani,Jeffrey D. Ullman +3 more
- 01 Jan 1979
TL;DR: This book is a rigorous exposition of formal languages and models of computation, with an introduction to computational complexity, appropriate for upper-level computer science undergraduates who are comfortable with mathematical arguments.
14.5K
Language identification in the limit
TL;DR: It was found that theclass of context-sensitive languages is learnable from an informant, but that not even the class of regular languages is learningable from a text.
3.8K
The String-to-String Correction Problem
TL;DR: An algorithm is presented which solves the string-to-string correction problem in time proportional to the product of the lengths of the two strings.
3.5K
A linear space algorithm for computing maximal common subsequences
TL;DR: The problem of finding a longest common subsequence of two strings has been solved in quadratic time and space and an algorithm is presented which will solve this problem in QuadraticTime and in linear space.
A fast algorithm for computing longest common subsequences
James Hunt,Thomas G. Szymanski +1 more
TL;DR: An algorithm for finding the longest common subsequence of two sequences of length n which has a running time of O((r + n) log n), where r is the total number of ordered pairs of positions at which the two sequences match.
802