Chapter 2 – Generalizing by Removing Detail: How Any Program Can Be Created by Working with Examples
暂无分享,去创建一个
Publisher Summary
A long-standing goal of the programming by demonstration research community is to enable people to construct programs by showing how the desired programs should work on sample inputs. This chapter describes a programming system called ToonTalk. There is a very important interplay between the way in which programs are created and generalized in ToonTalk and the underlying model of computation. A program is executed as a collection of autonomous processes that communicate asynchronously in which the behavior of a process is specified by a set of guarded clauses. A clause is constructed by performing operations on a single sample data structure. To make the clause capable of operating on other data structures, the programmer needs to remove details from the guard or conditional part of the clause. In ToonTalk, the programmer generalizes recorded actions by explicitly removing details. A major challenge is how to make the programs general. Heuristics and inference can generalize recorded actions on sample data in narrow domains. ToonTalk is the first system in widespread use that enables programmers to construct general-purpose programs by demonstrating how the program should work on examples.
[1] David Canfield Smith,et al. Pygmalion: an executable electronic blackboard , 1993 .
[2] Henry Lieberman,et al. Concurrent object-oriented programming in Act 1 , 1987 .
[3] Seymour Papert,et al. Mindstorms: Children, Computers, and Powerful Ideas , 1981 .
[4] Larry Tesler,et al. Novice Programming Comes of Age , 2001, Your Wish is My Command.