Automated Program Description
The Programmer's apprentice (PA) is an automated program development tool. The PA depends upon a library of common algorithms (cliches) as the source of its knowledge about programming. The PA uses these cliches to understand how a program is implemented. This knowledge may also be used to explain to a user of the PA how the program is implemented. The problem with any explanation or description is knowing how much information to present, and how much information to hide. A set of simple heuristics for doing this can be used with the cliche representation of a program to produce reasonable descriptions of parts of programs. The system described combines "canned" phrases corresponding to cliche parts to form explanations. The process is fast and appears to be easily extensible to future versions of the PA and other domains.