DAEMON (day'mun, dee'mun)
[archaic form of "demon", which has slightly different connotations (q.v.)] n. A program which is not invoked
explicitly, but which lays dormant waiting for some condition(s) to occur. The idea is that the perpetrator of the condition need not be aware that a daemon is lurking (though often a program will commit an action only because it knows that it will implicitly invoke a daemon). For example, writing a file on the lpt spooler's directory will invoke the spooling daemon, which prints the file. The advantage is that programs which want (in this example) files
printed need not compete for access to the lpt. They simply enter their implicit requests and let the daemon decide what to do with them. Daemons are usually spawned automatically by the system, and may either live forever or be regenerated at intervals. Usage: DAEMON and DEMON (q.v.) are often used interchangeably, but seem to have distinct connotations. DAEMON was introduced to computing by CTSS people (who pronounced it dee'mon) and used it to refer to what is now called a DRAGON or PHANTOM (q.v.). The meaning and pronunciation have drifted, and we think this glossary reflects current usage.

DAY MODE
See PHASE (of people).

DEADLOCK
n. A situation wherein two or more processes are unable to proceed because each is waiting for another to do something. A common example is a program communicating to a PTY or STY, which may find itself waiting for output from the PTY/STY before sending anything more to it, while the PTY/STY is similarly waiting for more input from the controlling program before outputting anything. (This particular flavor of deadlock is called "starvation". Another common flavor is "constipation", where each process is trying to send stuff to the other, but all buffers are full because nobody is reading anything.) See DEADLY EMBRACE.

DEADLY EMBRACE
n. Same as DEADLOCK (q.v.), though usually used only when exactly two processes are involved. DEADLY EMBRACE is the more popular term in Europe; DEADLOCK in the United States.

DEMENTED
adj. Yet another term of disgust used to describe a program. The connotation in this case is that the program works as designed, but the design is bad. For example, a program that generates large numbers of meaningless error messages implying it is on the point of imminent collapse.

DEMON (dee'mun)
n. A portion of a program which is not invoked explicitly, but which lays 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. Demons 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.

DIABLO (dee-ah'blow)
[from the Diablo printer] 1. n. Any letter- quality printing device.
2. v. To produce letter-quality output from such a device.

DIDDLE
v. To work with in a not particularly serious manner. "I diddled with a copy of ADVENT so it didn't double-space all the time." "Let's diddle this piece of code and see if the problem goes away." See TWEAK and TWIDDLE

DIKE
[from "diagonal cutters"] v. To remove a module or disable it. "When in doubt, dike it out."

DMP (dump)
See BIN

DO PROTOCOL
[from network protocol programming] v. To perform an interaction with somebody or something that follows a clearly defined procedure. For example, "Let's do protocol with the check" at a restaurant means to ask the waitress for the check, calculate the tip and everybody's share, generate change as necessary, and pay the bill.

DOWN
1. adj. Not working. "The up escalator is down."
2. TAKE DOWN, BRING DOWN: v. To deactivate, usually for repair work. See UP.

DPB (duh-pib')
[from the PDP-10 instruction set] v. To plop something down in the middle.

DRAGON
n. (MIT) A program similar to a "daemon" (q.v.), except that it is not invoked at all, but is instead used by the system to perform various secondary tasks. A typical example would be an accounting program, which keeps track of who is logged in, accumulates load- average statistics, etc. At MIT, all free TV's display a list of people logged in, where they are, what they're running, etc. along with some random picture (such as a unicorn, Snoopy, or the Enterprise) which is generated by the "NAME DRAGON". See PHANTOM.

DWIM
[Do What I Mean]
1. adj. Able to guess, sometimes even correctly, what result was intended when provided with bogus input. Often suggested in jest as a desired feature for a complex program. A related term, more often seen as a verb, is DTRT (Do The Right Thing).
2. n. The INTERLISP function that attempts to accomplish this feat by correcting many of the more common errors. See HAIRY.