Abstract: Hooks and open points

In this paper a programming language concept called an open point is introduced and discussed. Open points are meant to cover a collection of behavioral parameters of executable programs. Such parameters add openness to a program, which may be used to specialize the program in a variety of directions, all of which are intended to preserve the basic flavor of the original application. The paper gives a survey of different mechanisms from existing programming languages that, in some way or another, may be used as open points. In particular, the paper elaborates on the hook mechanism, as used in several Lisp environments. It is argued that open points should be supported by a set of tools. The purpose of the tools is partly to improve the programmer awareness of the presence of open points, and partly to catalyze an experimental binding of the open points in an exploratory programming process. A concrete collection of tools based on the hook mechanism in Lisp is presented together with an example of its use.