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.