hook

n. A software or hardware feature included in order to simplify later
additions or changes by a user. For example, a simple program that prints
numbers might always print them in base 10, but a more flexible version
would let a variable determine what base to use; setting the variable to 5
would make the program print numbers in base 5. The variable is a simple
hook. An even more flexible program might examine the variable and treat a
value of 16 or less as the base to use, but treat any other number as the
address of a user-supplied routine for printing a number. This is a hairy
but powerful hook; one can then write a routine to print numbers as Roman
numerals, say, or as Hebrew characters, and plug it into the program through
the hook. Often the difference between a good program and a superb one is
that the latter has useful hooks in judiciously chosen places. Both may do
the original job about equally well, but the one with the hooks is much more
flexible for future expansion of capabilities ( EMACS , for example, is all
hooks). The term user exit is synonymous but much more formal and less
hackish.

