Friday, October 24, 2008

Programming by Example

Citation: Henry Lieberman. Programming by Example. In Communications of the ACM, Vol. 43, No. 3, March 2000.
Link: PBE Home

Summary

Programming by example, PBE, (or programming by demonstration) is a radically different approach to programming. A software agent records the interactions between the user and a conventional 'direct manipulation' interface and writes a program corresponding to the user's actions. The agent can then generalize the program based on other examples. 'Generalization' is the central problem to PBE.

Two notable PBE systems, StageCast Creator and ToonTalk, have children (users unspoiled by conventional programming ideas) as primary users. Acceptance of PBE systems requires more good examples. Researchers are exploring the idea of uniting PBE with the Web.

PBE systems provide more opportunity to apply new AI and machine learning techniques to new software. However, they also incur the risk of making unwanted generalizations.

PBE represents a radical departure from conventional programming, and shows promise, but it will take time to become widespread. It is one of the few technologies with the potential of breaking down the barrier between users and programmers.

No comments: