1. [MIT] A portion of a program that is not invoked explicitly, but that lies dormant waiting for some condition(s) to occur. See daemon
. The distinction is that demons are usually processes within a program, while daemons are usually programs running on an operating system.
2. [outside MIT] Often used equivalently to daemon
-- especially in the Unix
world, where the latter spelling and pronunciation is considered mildly archaic.
Demons in sense 1 are particularly common in AI programs. For example, a knowledge-manipulation program might implement inference rules as demons. Whenever a new piece of knowledge was added, various demons would activate (which demons depends on the particular piece of data) and would create additional pieces of knowledge by applying their respective inference rules to the original piece. These new pieces could in turn activate more demons as the inferences filtered down through chains of logic. Meanwhile, the main program could continue with whatever its primary task was.