Proceedings Article10.1145/800017.800530
Editing by example
Robert Nix
- 15 Jan 1984
- pp 186-195
82
TL;DR: By developing an editing by example system that solves a useful class of text processing problems, this paper demonstrates that program synthesis is feasible in the domain of text editing.
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 the design, analysis, and implementation of a practical editing by example system. In particular, we study the problem of synthesizing a text processing program that generalizes the transformation implicitly described by a small number of input/output examples. We define a class of text processing programs called gap programs, characterize their computational power, study the problems associated with synthesizing them from examples, and derive an efficient heuristic that provably synthesizes a gap program from examples of its input/output behavior.We evaluate how well the gap program synthesis heuristic performs on the text encountered in practice. This evaluation inspires the development of several modifications to the gap program synthesis heuristic that act both to improve the quality of the hypotheses proposed by the system and to reduce the number of examples required to converge to a target program. The result is a gap program synthesis heuristic that can usually synthesize a target gap program from two or three input examples and a single output example.The editing by example system derived from this analysis has been embedded in a production text editor. The system is presented as a group of editor commands that use the standard interfaces of the editor to collect examples, show synthesized programs, and run them. By developing an editing by example system that solves a useful class of text processing problems, we demonstrate 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
Demonstrational interfaces: A step beyond direct manipulation
TL;DR: A survey of the various types of demonstrational interfaces is presented in this article, including general-purpose programming, visualization, macros for direct-manipulation interfaces, drawing packages, text editing and formatting, and user interface development environments.
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.
Query-by-example: a data base language
TL;DR: Discussed is a high-level data base management language that provides the user with a convenient and unified interface to query, update, define, and control a data base.
981