Programming by demonstration (PBD) promises to enable non-programmers to do more with their computers. However, PBD systems today are either limited to very narrow application domains, or are not reliable enough concerning the correctness of generated programs. We examine the reasons for this gap between generality and reliability and present a proposal for bridging it, thus leading to a design methodology for general-purpose PBD systems. This is achieved by supporting the visual scanning abilities of humans by a diligently designed user interface, immediate feedback, and ‘trial & error demonstration’. Furthermore, we discuss experiences with a prototype system named Visual AWK implementing the new concept. It enables end-users to create rather complex text-processing programs in a structure editor and thus automates repetitive tasks as they encounter them in their work.
Read full abstract