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.