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