scispace - formally typeset
Open Access

Programming by example

Daniel C. Halbert
- pp 132-132
TLDR
This research has demonstrated that programming by example is a practical method for creating programs and can be applied to other systems as well.
Abstract
Programming by example is a way of programming a software system in its own user interface. The user of the system writes a program by giving an example of what the program should do. The system records the sequence of actions, and can perform it again. Programming by example allows a user to create programs without doing conventional programming. Programming by example was incorporated into a simulation of an office information system. As the system evolved, it became clear that the basic concept of programming by example needed to be extended: certain aspects of program creation are better done by program modification than by using the programming-by-example mechanism. The final system includes a static program representation that is easy to understand, a mechanism for describing data, and a method of adding control structure. A user operates on certain data while creating a program by example, but does not necessarily tell the system why that data was selected. The user can supply this missing information by using data descriptions, which are program operands that specify how to choose the data to be used when the program is run. The system automatically supplies reasonable default data descriptions while recording a program; if necessary the user can modify the descriptions later to reflect his or her true intentions. Since programming by example is best at recording sequential user actions, rather than branching or iteration, control structure that alters program flow is specified by program editing. The operands in iterations and the predicates in conditional control structures are built from data descriptions. Real users have learned to use the system quickly and with little difficulty. The techniques used in this system can be applied to other systems as well. This research has demonstrated that programming by example is a practical method for creating programs. This document is a slightly corrected version of a dissertation submitted to the Department of Electrical Engineering and Computer Sciences, Computer Science Division, University of California, Berkeley, in partial satisfaction of the requirements for the degree of Doctor of Philosophy in Computer Science. A nearly identical version of this document was also published by the Office Systems Division, Systems Development Department, Xerox Corporation, as technical report OSD-T8402, December, 1984. An online version of this document was recreated by the author in March, 1999. For more information, contact the author at halbert@world.std.com halbert@halwitz.org. Copyright © 1984 by Daniel Conrad Halbert. All rights reserved.

read more

Content maybe subject to copyright    Report

Citations
More filters
Book

Usability Engineering: Scenario-Based Development of Human-Computer Interaction

TL;DR: Usability Engineering: Scenario-Based Development of Human-Computer Interaction as discussed by the authors focuses on the realities of product development, showing how user interaction scenarios can make usability practices an integral part of interactive system development.
Proceedings ArticleDOI

Interactive sketching for the early stages of user interface design

TL;DR: An interactive tool that allows designers to quickly sketch an interface using an electronic pad and stylus and can transform the sketch into a complete, finished interface in a specified look-and-feel.
Journal ArticleDOI

Taxonomies of visual programming and program visualization

TL;DR: This paper surveys a number of systems that can be classified as providing Visual Programming or Program Visualization, and then surveys these systems by classifying them into three different taxonomies.
Journal ArticleDOI

KidSim: programming agents without a programming language

TL;DR: Hoftware agents are the authors' hope during the 1990s for obtaining more power and utility from personal computers, but people do not want generic agents-they want help with their jobs, their tasks, their goals.
Journal ArticleDOI

Can robots make good models of biological behaviour

TL;DR: It is argued that in building robot models biological relevance is more effective than loose biological inspiration; multiple levels can be integrated; that generality cannot be assumed but might emerge from studying specific instances; abstraction is better done by simplification than idealisation; accuracy can be approached through iterations of complete systems; that the model should be able to match and predict target behaviour; and that a physical medium can have significant advantages.
References
More filters
Book

Smalltalk-80: The Language and its Implementation

TL;DR: This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
Journal ArticleDOI

Direct Manipulation: A Step Beyond Programming Languages

TL;DR: As I talked with enthusiasts and examined the systems they used, I began to develop a model of the features that produced such delight, and the central ideas seemed to be visibility of the object of interest; rapid, reversible, incremental actions; and replacement of complex command language syntax by direct manipulation of the objects of interest.
Journal ArticleDOI

Query-by-example: a data base language

M. M. Zloof
- 01 Dec 1977 - 
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.
Proceedings ArticleDOI

The star user interface: an overview

TL;DR: The Star user interface differs from that of other office computer systems by its emphasis on graphics, its adherence to a metaphor of a physical office, and its rigorous application of a small set of design principles.
Journal ArticleDOI

Constructing Programs from Example Computations

TL;DR: The paper describes the computational environment provided by the system, proves that the program synthesis technique is both "sound" and "complete," the design of the system is described, and some programs it was used to create.