Lieberman, H. (Ed.). (2001). Your Wish Is My Command: Programming by Example. San Francisco: Morgan-Kaufmann.

I got this very interesting book out from the library and was amazed to see that research in programming by demonstration has not come an awful long way since the heady days of the first PBD systems.

I was also struck by the fact that the kinds of systems being developed fall into what I think are three broad categories: were spreadsheet, simulation and CAD systems. That is to say, they lean more towards Decision Support Systems (DSS) and Computer Aided Design (CAD) Systems than Transaction Processing Systems (TPS).

Below are a number of key references I lifted form the book:

  • Andre, J. (1977). Thinking with the Teachable Machine. London: Academic Press.
  • Biermann, A. (1976). Approaches to Automatic Programming. In M. Rubinoff & M. Yovitz (Eds.), Advances in Computers (pp. 1-63). New York: Academic Press.
  • Curry, G. (1978). Programming by Abstract Demonstration. Unpublished PhD, University of Washington Seattle.
  • Pangaro, P., Steinberg, S., Davis, J., & McCann, B. (1977). EOM: A Graphically-Scripted, Simulation-Based Animation System (No. Internal Document): Massachusetts Institute of Technology.
  • Smith, D. (1975). Pygmalion: A creative programming environment (No. STAN-CS-75-499): Department of Computer Science, Stanford University.
    Summers, P. (1977). A Methodology for LISP Program Construction from Examples. Journal of the ACM, 24(1), 161-175.

  • Winston, P. (1970). Learning Structure Descriptions from Examples. The Psychology of Computer Vision, 157-209.
  • Zloof, M. (1977). Query-by-Example: A Data Base Language. IBM Systems Journal, 16, 324-343.

Also, it was interesting to note that the most successful PBD systems focused on a very specific domain rather than trying to be a jack of all trades. I don’t think a “generic programming by demonstration” system is possible.