Cliche Programming in PROLOG

In this paper I describe an extension to the PROLOG language which allows programmers to define procedures by analogy with existing generalized procedures, called {\em cliches}. This method of programming allows programmers to write commonly occurring program forms just once, but to reuse them in a variety of ways as they wish. One advantage of programming in this manner is that the cliches have properties that are guaranteed to be inherited by their instantiations. I discuss the logical basis for cliche programming, and relate it to previously described work on the implicit definition of logic programs. Finally I describe issues in the implementation of the cliche programming system. A version of the system has been implemented in Quintus PROLOG and is being used as part of the programming environment that I use to develop programs.