EDP Dictionary - D

D

	1. "The Data Language."  {MS-DOS} 4GL.

	2. A {Haskell}-like language, with {type class}es.

	E-mail: <polar@cs.syr.edu>.

DAA

	Distributed Application Architecture: under design by
	Hewlett-Packard and Sun.  A distributed object management
	environment that will allow applications to be developed
	independent of operating system, network or windowing system.

DACAPO

	Broad-range hardware specification language.  "Mixed Level
	Modelling and Simulation of VLSI Systems", F.J. Rammig in
	Logic Design and Simulation, E. Horbst ed, N-H 1986.

DACNOS

	A prototype network operating system for multi-vendor
	environments, from IBM European Networking Centre Heidelberg
	and University of Karlsruhe.

	(16 Jan 1995)

DACTL

	Declarative Alvey Compiler Target Language.

	An intermediate language from the {University of East Anglia},
	used in the {Flagship} project.  DACTL is based on a form of
	{graph rewriting} which can be used to implement {functional
	language}s, {logic language}s and {imperative} languages.  The
	current version is Dactl0.

	["DACTL - A Computational Model and Compiler Target Language
	Based on Graph Reduction", J.R.W. Glauert et al, ICL Tech J
	5(3) (1987)].

	(22 Sep 1994)

daemon

	<operating system> /day'mn/ or /dee'mn/ (From the mythological
	meaning, later rationalised as the acronym "Disk And Execution
	MONitor") A program that is not invoked explicitly, but lies
	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, under {ITS} writing a file on the {LPT} spooler's
	directory would invoke the spooling daemon, which would then
	print the file.  The advantage is that programs wanting files
	printed need neither compete for access to, nor understand any
	idiosyncrasies of, 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.

	{Unix} systems run many daemons, chiefly to handle requests
	for services from other {host}s on a {network}.  Most of these
	are now started as required by a single real daemon, {inetd},
	rather than running continuously.  Examples are {cron} (local
	timed command execution), {rshd} (remote command execution),
	{rlogind} and {telnetd} (remote login), {ftpd}, {nfsd} (file
	transfer), {lpd} (printing).

	Daemon and {demon} are often used interchangeably, but seem to
	have distinct connotations (see {demon}).  The term "daemon"
	was introduced to computing by {CTSS} people (who pronounced
	it /dee'mon/) and used it to refer to what {ITS} called a
	{dragon}.

	(11 May 1995)

DAG

	{directed acyclic graph}

Daisy

	A {functional language}.

	["Daisy Programming Manual", S.D. Johnson, CS Dept TR, Indiana
	U, 1988].

DAISY 201

	An early system on {G-15}.

	[Listed in CACM 2(5):16 (May 1959)].

daisy chain

	<networking> A {bus} wiring scheme in which, for example,
	device A is wired to device B, device B is wired to device C,
	etc.  The last device is normally wired to a resistor or
	{terminator}.  All devices may receive identical signals or,
	in contrast to a simple bus, each device in the chain may
	modify one or more signals before passing them on.

	Characteristic of {RS-485}, of {Apple}'s {LocalTalk}, and of
	various industrial control networks; also often used to
	describe {Thinwire} {Ethernet} ({10Base2}).

	(07 Jan 1997)

dangling pointer

	<programming> A reference that doesn't actually lead anywhere.
	In {C} and some other languages, a pointer that doesn't
	actually point at anything valid.  Usually this happens
	because it formerly pointed to something that has moved or
	disappeared, e.g. a {heap}-allocated block which has been freed
	and reused.

	Used as jargon in a generalisation of its technical meaning;
	for example, a local phone number for a person who has since
	moved is a dangling pointer.

DANTE

	A company established by the national research networks in
	Europe to provide international network services.

DAP Fortran

	["Efficient High Speed Computing with the Distributed Array
	Processor", P.M. Flanders et al, pp.113-127 (1977)].

	[Same as Fortran- Plus?]

DAPLEX

	["The Functional Data Model and the Data Language DAPLEX",
	D.W. Shipman, ACM Trans Database Sys, 6(1):140-173 (Mar
	1981)].

DARE

	Differential Analyzer REplacement.  A family of simulation
	languages for continuous systems.

	["Digital Continuous System Simulation", G.A. Korn et al, P-H
	1978].

dark-side hacker

	A criminal or malicious hacker; a {cracker}.  From George
	Lucas's Darth Vader, "seduced by the dark side of the Force".
	The implication that hackers form a sort of elite of
	technological Jedi Knights is intended.  Oppose {samurai}.

Darms

	<language> A music language.

	["The Darms Project: A Status Report", R.F. Erickson,
	Computers and the Humanities 9(6):291-298 (June 1975)].

	(12 May 1995)

DARPA

	<body> {Defense Advanced Research Project Agency}.

Dartmouth BASIC

	<language> The original {BASIC} by Kemeny and Kurtz.

	(12 May 1995)

Darwin

	A general purpose structuring tool of use in building complex
	{distributed system}s from diverse components and diverse
	component interaction mechanisms.  Darwin is being developed
	by the Distributed Software Engineering Section of the
	Department of Computing at {Imperial College}.  It is in
	essence a {declarative} binding language which can be used to
	define hierarchic compositions of interconnected components.
	Distribution is dealt with orthogonally to system structuring.
	The language allows the specification of both static
	structures and dynamic structures which evolve during
	execution.  The central abstractions managed by Darwin are
	components and services.  Bindings are formed by manipulating
	references to services.

	The {operational semantics} of Darwin is described in terms of
	the {Pi-calculus}, {Milner}'s calculus of mobile processes.
	The correspondence between the treatment of names in the
	Pi-calculus and the management of service references in Darwin
	leads to an elegant and concise Pi-calculus model of Darwin's
	{operational semantics}.  The model has proved useful in
	arguing the correctness of Darwin implementations and in
	designing extensions to Darwin and reasoning about their
	behaviour.

	{Distributed Software Engineering Section
	(http://www-dse.doc.ic.ac.uk/)}.  {Darwin publications
	(http://scorch.doc.ic.ac.uk/dse-papers/darwin/)}.

	E-mail: Jeff Magee <jnm@doc.ic.ac.uk>, Naranker Dulay
	<nd@doc.ic.ac.uk>.

	(08 Nov 1994)

DAS

	Digital Analog Simulator.

	Represents {analog computer} design.

	(08 Nov 1994)

DASD

	{Direct-Access Storage Device}

DASE

	{Distributed Application Support Environment}

DASL

	Datapoint's Advanced System Language.

	A cross between {C} and {Pascal} by Gene Hughes with custom
	features for {Datapoint} hardware (no {stack}).  It is used
	internally by Datapoint.

	(08 Nov 1994)

DAT

	1. {Digital Audio Tape}.

	2. {Dynamic Address Translation}.

data

	<data processing, jargon> (Or "raw data", "information",
	"wisdom") Numbers, {characters}, {images} or other method of
	recording, in a form which can be assessed by a human or
	(especially) input into a {computer}, stored and {processed}
	there, or transmitted on some {digital channel}.

	Data on its own has no meaning, only when interpreted by some
	kind of {data processing system} does it take on meaning and
	become {information}.  For example, the number 123454657.99 is
	data but if it is output as your bank balance then that is
	information.

	People or computers can find patterns in data to perceive
	information, and information can be used to enhance
	{knowledge}.  Since knowledge is prerequisite to wisdom, we
	always want more data and information.  But, as modern
	societies verge on {information overload}, we especially need
	better ways to find patterns.

	123454657.99 is data.

	"Your bank balance has jumped 8087% to 123454657.99" is
	information.

	"Nobody owes me that much money" is knowledge.

	"I'd better talk to the bank before I spend it, because of
	what has happened to other people" is wisdom.

	(18 May 1996)

data abstraction

	{abstract data type}

database

	1. <database> One or more large structured sets of persistent
	data, usually associated with software to update and {query}
	the data.  A simple database might be a single file containing
	many {records}, each of which contains the same set of
	{fields} where each field is a certain fixed width.

	A database is one component of a {database management system}.

	See also {ANSI/SPARC Architecture}, {atomic}, {blob}, {data
	definition language}, {deductive database}, {distributed
	database}, {fourth generation language}, {functional
	database}, {object-oriented database}, {relational database}.

	2. <hypertext> A collection of {node}s managed and stored in
	one place and all accessible via the same {server}.  {Link}s
	outside this are "external", and those inside are "internal".

	On the {World-Wide Web} this is called a {web site}.

	3. All the facts and rules comprising a {logic programming}
	program.

	(04 Mar 1997)

database administrator

	An individual responsible for the design and management of the
	{database} and for the evaluation, selection and
	implementation of the {database management system}.  In
	smaller organisations, the data administrator and database
	administrator are often one in the same; however, when they
	are different, the database administrator's function is more
	technical.  The database administrator would implement the
	database software that meets the requirements outlined by the
	organisation's data administrator and {systems analyst}s.

database machine

	A computer or special hardware that stores and retrieves data
	from a {database}.  It is specially designed for database
	access and is coupled to the main ({front-end}) computer(s) by
	a high-speed channel.  This contrasts with a {database
	server}, which is a computer in a {local area network} that
	holds a database.  The database machine is tightly coupled to
	the main CPU, whereas the database server is loosely coupled
	via the network.

database management system

	(DBMS) A suite of programs which typically manage large
	structured sets of persistent data, offering ad hoc query
	facilities to many users.  They are widely used in business
	applications.  Commercial examples include {Ingres}, {Oracle}
	and {Sybase}.

	A database management system (DBMS) is an extremely complex
	set of software programs that controls the organisation,
	storage and retrieval of data (fields, records and files) in a
	database.  It also controls the security and integrity of the
	database.  The DBMS accepts requests for data from the
	application program and instructs the operating system to
	transfer the appropriate data.

	When a DBMS is used, information systems can be changed much
	more easily as the organisation's information requirements
	change.  New categories of data can be added to the database
	without disruption to the existing system.

	MAJOR FEATURES OF A DBMS

	DATA SECURITY AND INTEGRITY

	Data security prevents unauthorised users from viewing or
	updating the database.  Using passwords, users are allowed
	access to the entire database or subsets of the database,
	called subschemas (pronounced "sub-skeema").  For example, an
	employee database can contain all the data about an individual
	employee, but one group of users may be authorised to view
	only payroll data, while others are allowed access to only
	work history and medical data.

	The DBMS can maintain the integrity of the database by not
	allowing more than one user to update the same record at the
	same time.  The DBMS can keep duplicate records out of the
	database; for example, no two customers with the same customer
	numbers (key fields) can be entered into the database.

	INTERACTIVE QUERY

	Query languages and report writers allow users to
	interactively interrogate the database and analyse its data.

	INTERACTIVE DATA ENTRY AND UPDATING

	If the DBMS provides a way to interactively enter and update
	the database, as well as interrogate it, this capability
	allows for managing personal databases.  However, it does not
	automatically leave an audit trail of actions and does not
	provide the kinds of controls necessary in a multi-user
	organisation.  These controls are only available when a set of
	application programs are customised for each data entry and
	updating function.

	This is one of the most common misconceptions about database
	management systems that are used in personal computers.
	Thoroughly comprehensive and sophisticated business systems
	can be developed in dBASE, Paradox and other DBMSs; however,
	they are created by experienced programmers using the DBMS's
	own programming language.

	DATABASE DESIGN

	A business information system is made up of subjects
	(customers, employees, vendors, etc.) and activities (orders,
	payments, purchases, etc.).  Database design is the process of
	deciding how to organize this data into record types and how
	the record types will relate to each other.  The DBMS that is
	chosen is the one that can mirror the organisation's data
	structure properly and process the transaction volume
	efficiently.

	Organisations may use one kind of DBMS for daily transaction
	processing and then move the detail onto another computer that
	uses another DBMS better suited for random inquiries and
	analysis.  Overall systems design decisions are performed by
	data administrators and systems analysts.  Detailed database
	design is performed by database administrators.

	HIERARCHICAL, NETWORK AND RELATIONAL DATABASES

	Hierarchical, network and relational databases are the three
	most commonly advertised methods of organizing data.  A
	database management system may provide one, two or all three
	methods.  Inverted lists and other methods are also used.

	The structure that best suits an organisation depends on the
	organisation's particular requirements, the volume of daily
	transactions and the estimated number of ad hoc inquiries that
	will be made.

	Hierarchical databases link records together like an
	organisation chart, and a record type can be owned by only one
	owner.  For example, orders are owned by only customer.
	Hierarchical structures were widely used in the first
	mainframe database management systems.  However, due to their
	restrictions, they often cannot be used to relate structures
	that exist in the real world.

	In network database structures, a record type can have
	multiple owners.  In the order processing example, orders are
	owned by both customers and products, since that's the way
	they relate in the business.

	Relational databases don't link records together physically,
	but the design of the records must provide a common field,
	such as account number, to allow for matching.  Quite often,
	the fields used for matching are indexed in order to speed up
	the process.  In the order processing example, customers,
	orders and products are linked by comparing data fields and/or
	indexes when information from more than one record type is
	needed.  This method is the most flexible for ad hoc
	inquiries, but may be too slow for heavy transaction
	processing environments.  Although relational database is
	often considered a new concept, database management systems
	have traditionally provided relational capability with their
	hierarchical or network designs.

	INTELLIGENT DATABASES

	All DBMSs provide some data validation; for example, they will
	reject invalid dates entered into date fields, alphabetic data
	entered into money fields.  But the real processing is left up
	to the application programs.

	Intelligent databases provide more validation; for example,
	table lookups will reject incorrect spelling or coding of
	items.  There's no limit to the amount of processing that can
	be placed into an intelligent database as long as the process
	is a standardised function for that data.  For example, the
	correct sales tax can be computed by the database and applied
	to all orders for the customer based on the customer's billing
	address.

	When the validation process is left up to the individual
	application program, one program can allow one set of codes to
	be entered into a field, while another program can allow a
	totally different, and erroneous, set of codes.  Data
	integrity is best served when there's one controlling source
	for the validation of data.

	Mainframe databases have increasingly become more intelligent,
	and personal computer database systems are rapidly following
	suit.  In time, all database management systems will be
	"intelligent."

	DATABASE MACHINES

	Database machines are specially designed computers that hold
	the actual databases and run only the DBMS and related
	software.  Connected to one or more mainframes via a
	high-speed channel, database machines are used in large volume
	transaction processing environments.  Database machines have a
	large number of DBMS functions built into the hardware and
	also provide special techniques for accessing the disks
	containing the databases, such as using multiple processors
	concurrently for high-speed searches.

	FUTURE DATABASES

	The world of information is made up of data, text, pictures
	and voice.  Many DBMSs manage text as well as data, but very
	few manage both with equal proficiency.  Throughout the 1990s,
	as storage capacities continue to increase, DBMSs will begin
	to integrate all forms of information.  Eventually, it will be
	common for a database to handle data, text, graphics, voice
	and video with the same ease as today's systems handle data.
	When this happens, the office of the future will have finally
	arrived!

database manager

	The part of the database management system (DBMS) that handles
	the organisation, storage and retrieval of the data.  A
	database manager may work with traditional programming
	languages, such as COBOL and BASIC, or may work only with its
	proprietary programming language.  The terms database manager
	and database management system are used interchangeably.

	A database manager links two or more files together and is the
	foundation for developing routine business systems.  Contrast
	with file manager, which works with only one file at a time
	and is typically used interactively on a personal computer for
	managing personal, independent files, such as name and address
	lists.

database query language

	A language in which users of a {database} can (interactively)
	formulate requests and generate reports.  The best known is
	{SQL}.

databases

	{database}

database server

	A stand-alone computer in a local area network that holds and
	manages the database.  It implies that database management
	functions, such as locating the actual record being requested,
	is performed in the server computer.  Contrast with file
	server, which acts as a remote disk drive and requires that
	large parts of the database, for example, entire indexes, be
	transmitted to the user's computer where the real database
	management tasks are performed.

	First-generation personal computer database software was not
	designed for a network; thus, modified versions of the
	software released by the vendors employed the file server
	concept.  Second-generation products, designed for local area
	networks, perform the management tasks in the server where
	they should be done, and consequently are turning the file
	server into a database server.

Data/BASIC

	Also known as Pick BASIC.  A BASIC-like language with database
	capabilities, the main programming language on the Pick OS.
	"The Data/BASIC Language - A Data Processing Language for
	Non-Professional Programmers", P.C. Dressen, Proc SJCC 36,
	AFIPS (Spring 1970).

DATABUS

	DATApoint BUSiness Language.

	A language like an interpreted {assembly language}, used for
	custom applications on {Datapoint} computers.

	(16 Jan 1995)

data bus

	<architecture> (Or "data path", "datapath") The connections
	between the {CPU}, memory and peripherals used to carry data.
	Other connections are the {address bus} and control signals.

	The width of the data bus is one of the main factors
	determining the processing power of a computer.  Most current
	processor designs use a 32 bit bus, meaning that 32 bits of
	data can be transferred at once.  Some processors have an
	internal data bus which is wider than their external bus in
	order to make external connections cheaper while retaining
	some of the benefits in processing power of a wider bus.

	(16 Jan 1995)

data channel

	<communications> A channel (on a {BRI} or {PRI} line) used to
	carry control information, to set up connections on the
	associated {bearer channels}.  The name wasn't too bad back
	when users were sending voice (not data) over the {bearer
	channels}, but in 1997 it's quite a misnomer.

	(10 Mar 1997)

DATACODE I

	<language> An early system used on the {Datatron 200} series.

	[Listed in CACM 2(5):16, May 1959].

	(06 Dec 1994)

Datacom

	A {DBMS} from {Computer Associates International}.

	(06 Dec 1994)

Data Communication Equipment

	<communications, hardware> (DCE) The devices and connections
	of a communications network that connect the communication
	circuit between the data source and destination (the {Data
	Terminal Equipment} or DTE).  A {modem} is the most common
	kind of DCE.

	Before data can be transmited over a modem, the DTR (Data
	Terminal Ready) signal must be active.  DTR tells the DCE that
	the DTE is ready to transmit and receive data.

	DCE and DTE are usually connected by an {RS-232} {serial
	line}.  It is necessary to distinguish these two types of
	device because their connectors must be wired differently if a
	"straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.)
	is to be used.  DCE should have a female connector and should
	transmit on pin two and receive on pin three.  It is a curious
	fact that many {modem}s are "DTE" according to the original
	standard.

	(28 Feb 1995)

Data Communications Equipment

	{Data Communication Equipment}

data compression

	<algorithm> {compression}.  Probably to distinguish it from
	(electronic) {signal compression}.

	(02 Apr 1995)

data definition language

	(DDL) 1. A language enabling the structure and instances of a
	{database} to be defined in a human- and machine-readable
	form.

	2. A specification language for databases, based on the
	{entity-relationship} model.  It is used in the {Eli}
	{compiler-compiler} to manage type definitions.

	["DDL Reference Manual", ECE Dept U Colorado, 1991].

	(06 Dec 1994)

data dictionary

	A set of {data description}s that can be shared by several
	applications.

data driven

	A data driven architecture/language performs computations in
	an order dictated by data dependencies.  Two kinds of data
	driven computation are {dataflow} and {demand driven}.

	From about 1970 research in parallel {data driven} computation
	increased.  Centres of excellence emerged at {MIT},
	{CERT-ONERA} in France, {NTT} and {ETL} in Japan and
	{Manchester University}.

Data Encryption Algorithm

	(DEA) An {ANSI} {standard} defined in ANSI X3.92-1981.  It is
	identical to the {Data Encryption Standard} (DES).

	(06 Dec 1994)

Data Encryption Key

	(DEK) Used for the {encryption} of message text and for the
	computation of message integrity checks (signatures).

	See {cryptography}.

	(06 Dec 1994)

Data Encryption Standard

	(DES) The {NBS}'s popular, standard {encryption} algorithm.
	It is a {product cipher} that operates on 64 bit blocks of
	data, using a 56 bit key.  It is defined in {FIPS} 46-1 (1988)
	(which supersedes FIPS 46 (1977)).  DES is identical to the
	{ANSI} standard {Data Encryption Algorithm} (DEA) defined in
	ANSI X3.92-1981.

	DES has been implemented in {VLSI}.  {SunOS} provides a des
	command which can make use of DES hardware if fitted.  Neither
	the software nor the hardware are supposed to be distributed
	outside the USA.

	{Unix manual pages}: des(1), des(3), des(4).

	(06 Dec 1994)

data flow

	A data flow architecture or language performs a computation
	when all the {operand}s are available.  Data flow is one kind
	of {data driven} architecture, the other is {demand driven}.
	It is a technique for specifying parallel computation at a
	fine-grain level, usually in the form of two-dimensional
	graphs in which instructions that are available for concurrent
	execution are written alongside each other while those that
	must be executed in sequence are written one under the other.
	Data dependencies between instructions are indicated by
	directed arcs.  Instructions do not reference memory since the
	data dependence arcs allow data to be transmitted directly
	from the producing instruction to the consuming one.

	Data flow schemes differ chiefly in the way that they handle
	{re-entrant} code.  Static schemes disallow it, dynamic
	schemes use either "code copying" or "tagging" at every point
	of reentry.

	An example of a data flow architecture is {MIT}'s {VAL}
	machine.

data flow analysis

	<programming> A process to discover the dependencies between
	different data items manipulated by a program.  The order of
	execution in a {data driven} language is determined solely by
	the data dependencies.  For example, given the equations

		1. X = A + B
		2. B = 2 + 2
		3. A = 3 + 4

	a data-flow analysis would find that 2 and 3 must be evaluated
	before 1.  Since there are no data dependencies between 2 and
	3, they may be evaluated in any order, including in parallel.

	This technique is implemented in {hardware} in some
	{pipelined} processors with multiple {functional units}.  It
	allows instructions to be executed as soon as their inputs are
	available, independent of the original program order.

	(13 May 1996)

Data Flow Diagram

	A graphical notation used to describe how data flows between
	processes in a system.  An important tool of most {structured
	analysis} techniques.

data fork

	<file system> See {Macintosh file system}.

	(04 Mar 1996)

data frame

	See {activation record}.

Data General

	US computer manufacturer.  Responsible for the {Nova}
	minicomputer.

	Quarterly sales $284M, profits -$12M (Aug 1994).

	(26 Sep 1994)

data glove

	<hardware, virtual reality> An input device for {virtual
	reality} in the form of a glove which measures the movements
	of the wearer's fingers and transmits them to the computer.
	Sophisticated data gloves also measure movement of the wrist
	and elbow.  A data glove may also contain control buttons or
	act as an output device, e.g. vibrating under control of the
	computer.  The user usually sees a virtual image of the
	data glove and can point or grip and push objects.

	Examples are {Fifth Dimension Technologies} (5DT)'s {5th
	Glove}, and {Virtual Technologies}' {CyberGlove}.  A cheaper
	alternative is {InWorld VR}'s {CyberWand}.

	["Full freedom plus input", PC Magazine, Mar 14 1995,
	pp. 168-190].

	[Inventor?]

	(04 Apr 1995)

datagram

	A self-contained, independent entity of data carrying
	sufficient information to be {route}d from the source to the
	destination computer without reliance on earlier exchanges
	between this source and destination computer and the
	transporting {network}.

	See also {connectionless}, {frame}, {packet}.

data hierarchy

	The system of data objects which provide the {method}s for
	{information} storage and retrieval.  Broadly, a data
	hierarchy may be considered to be either natural, which arises
	from the alphabet or syntax of the language in which the
	information is expressed, or machine, which reflects the
	facilities of the computer, both hardware and software.

	A natural data hierarchy might consist of {bits},
	{characters}, words, phrases, sentences, paragraphs, and
	chapters.  One might use components bound to an application,
	such as field, record, and file, and these would ordinarily be
	further specified by having {data descriptors} such as name
	field, address field, etc.  On the other hand, a machine or
	software system might use {bit}, {byte}, {word}, {block},
	{partition}, {channel}, and {port}.

	Programming languages often provide {types} or {objects} which
	can create data hierarchies of arbitrary complexity, thus
	allowing software system designers to model language
	structures described by the linguist to greater or lesser
	degree.

	The distinction between the natural form of data and the
	facilities provided by the machine may be obscure, because
	users force their needs into the molds provided, and
	programmers change machine designs.  As an example, the
	natural data type "character" and the machine type "byte" are
	often used interchangably, because the latter has evolved to
	meet the need of representing the former.

	(03 Nov 1995)

Data Jack

	<hardware> A wall-mounted or desk-mounted connector
	(frequently a wide telephone-style 8-pin {RJ-45}) for
	connecting to data cabling in a building.

	(07 Jan 1997)

Datakit

	<networking> A {circuit-switched} digital network, similar to
	{X.25}.  Datakit supports {host-to-host} connections and
	{RS-232} connections for {terminals}, {printers}, and {hosts}.

	Most of {Bell Laboratories} is {trunk}ed together on Datakit.
	On top of DK transport service, people run {UUCP} for
	{electronic mail} and {dkcu} for {remote login}.

	ISN is the version of Datakit supported by {AT&T} Information
	Systems.  Bell Laboratories in Holmdel, New Jersey, uses ISN
	for internal data communication.

	{(http://www.fc.net:80/phrack/files/p18/p18-9.html)}.

	["Towards a universal data transport system", A. G. Fraser,
	IEEE Journal on Selected Areas in Communications, SAC-1(5)
	pp. 803-16, 1983].

	(20 Oct 1996)

Data Link Control Identifier

	<networking> (DLCI) A channel number which is attached to
	{data frames} to tell the network how to route the data.

	{Frame Relay FAQ (http://www.etinc.com/)}.

	(01 Mar 1997)

datalink layer

	<networking> Layer two, the second lowest layer in the {ISO}
	{seven layer model}.  It splits data into {frame}s (see
	{fragmentation}) for sending on the {physical layer} and
	receives acknowledgement frames.  It performs error checking
	and re-transmits frames not received correctly.  It provides
	an error-free virtual channel to the the {network layer}.  The
	datalink layer is split into an upper sublayer, {Logical Link
	Control} (LLC), and a lower sublayer, {Media Access Control}
	(MAC).

	Example {protocols} at this layer are {ABP}, {Go Back N},
	{SRP}.

	(14 Feb 1995)

data link level

	{datalink layer}

Data Link Provider Interface

	<networking> (DLPI) The interface that a {network driver}
	presents to the (higher level) {logical link layer} for
	driving the network at the {datagram} level in a {Unix}
	{STREAMS} environment and possibly elsewhere.

	DLPI corresponds to {ISO 8802}/2 ({LLC}) which covers both
	{connection-oriented} and {connectionless} {protocols}.

	[Is this correct?  Better explanation?]

	(29 Jan 1996)

Datamation

	/day"t*-may"sh*n/ A magazine that many hackers assume all
	{suit}s read.  Used to question an unbelieved quote, as in
	"Did you read that in "Datamation?""  It used to publish
	something hackishly funny every once in a while, like the
	original paper on {COME FROM} in 1973, and Ed Post's "Real
	Programmers Don't Use Pascal" ten years later, but it has
	since become much more exclusively {suit}-oriented and boring.

data mining

	Analysis of data in a {database} using tools which look for
	trends or anomalies without knowledge of the meaning of the
	data.

	[Products?]

	(20 Oct 1994)

data model

	<database>

	A mathematical formalism with a notation for describing data
	structures and a set of operations used to manipulate and
	validate that data.

	The {Relational model} is the most widely used data model.

	An example is {NIAM}.

	["Principles of Database and Knowledge-Base Systems",
	J.D. Ullman, Volume I, Computer Science Press, 1988, p. 32].

	[What does this mean?]

	(31 Mar 1995)

data packet

	{packet}

Dataparallel-C

	{C} with parallel extensions by Hatcher and Quinn of the
	University of New Hampshire.  It was based on an early version
	of {C*} and runs on the {Intel} {iPSC-2} and {nCube}.

Data Parallel Haskell

	<language, parallel> Adds Parallel Objects with arbitrary
	Dimension (PODs) and POD comprehensions to Haskell.

	{(ftp://redstar.dcs.qmw.ac.uk/cpc/jon_hill/dpGlue.ps.Z)}

	["Data Parallel Haskell: Mixing Old and New Glue", J. Hill].

	(30 Mar 1995)

data path

	{data bus}

Dataphone Digital Service

	<communications, product> (DDS) The first private-line digital
	service offered by {AT&T}, with data rates typically at 2.4,
	4.8, 9.6 and 56 kilobits per second.  DDS is now part of
	AT&T's {Accunet} family of services.  Most LEC (local exchange
	carriers) and IXC (IntereXchange Carriers) offer similar
	services.

	(28 Feb 1995)

data processing

	<application> The input, verification, organisation, storage,
	retrieval, transformation, and extraction of {information}
	from {data}.  The term is normally associated with commercial
	applications such as stock control or payroll.

	(30 Mar 1995)

data rate

	See {baud}.

Datastorm Technologies, Inc.

	<company> Suppliers of {Procomm}.

	Address: Columbia MO, USA.

	(04 Apr 1995)

data striping

	<storage> Segmentation of logically {sequential} data, such as
	a single file, so that segments can be written to multiple
	physical devices (usually {disk drives}) in a {round-robin}
	fashion.  This technique is useful if the processor is capable
	of reading or writing data faster than a single disk can
	supply or accept it.  While data is being transferred from the
	first disk, the second disk can locate the next segment.

	Data striping is used in some modern {databases}, such as
	{Sybase}, and in certain {RAID} devices under hardware
	control, such as {IBM}'s {RAMAC} array subsystem (9304/9395).

	Data striping is different from, and may be used in
	conjunction with, {mirroring}.

	(17 Oct 1996)

Data Structures Language

	<language> A dialect of {MAD} with extensions for lists and
	graphics, on {Philco 212}.

	["A Compiler Language for Data Structures", N. Laurance, Proc
	ACM 23rd Natl Conf 36 (1968)].

	(28 Feb 1995)

Data Terminal Equipment

	<communications, hardware> (DTE) A device which acts as the
	source and/or destination of data and which controls the
	communication channel.  DTE includes terminals, computers,
	{protocol converter}s, and {multiplexor}s.

	DTE is usually connected via an {RS-232} {serial line} to
	{Data Communication Equipment} (DCE), typically a {modem}.  It
	is necessary to distinguish these two types of device because
	their connectors must be wired differently if a
	"straight-through" cable (pin 1 to pin 1, pin 2 to pin 2 etc.)
	is to be used.  DTE should have a male connector and should
	should transmit on pin three and receive on pin two.  It is a
	curious fact that many {modem}s are actually "DTE" according
	to the original standard.

	(28 Feb 1995)

DATA-TEXT

	<tool> A system from {Harvard} for numerical computations in
	the Social Sciences.

	["DATA-TEXT Primer", D.J. Armor, Free Press 1972].

	(06 Dec 1994)

DATATRIEVE

	A query and report system for use with DEC's VMS system (RMS,
	VAX Rdb/VMS or VAX DBMS).

DataViews

	{Graphical user interface} development software from
	{V.I.Corporation}, aimed at constructing
	{platform}-independent interactive views of dynamic data.

	(07 Dec 1994)

DataVis

	A {dataflow} language for scientific {visualisation}.

	["Data Flow Visual Programming Languages", D. Hils, J Vis
	Langs and Comput, Dec 1991].

	(06 Dec 1994)

data warehouse

	<database> 1. A generic term for a system for storing,
	retrieving and managing large amounts of any type of data.
	Data warehouse software often includes sophisticated
	{compression} and {hashing} techniques for fast searches, as
	well as advanced filtering.

	2. A {database}, often remote, containing recent snapshots of
	corporate data.  Planners and researchers can use this
	database freely without worrying about slowing down day-to-day
	operations of the production database.

	(01 Aug 1996)

data warehousing

	{data warehouse}

DAU

	/dow/ [German Fidonet] D"ummster Anzunehmender User.  A German
	acronym for stupidest imaginable user.  From the
	engineering-slang GAU for Gr"osster Anzunehmender Unfall
	(worst foreseeable accident), especially of a LNG tank farm
	plant or something with similarly disastrous consequences.  In
	popular German, GAU is used only to refer to worst-case
	nuclear accidents such as a core meltdown.

	See {cretin}, {loser} and {weasel}.

	(06 Dec 1994)

David Turner

	Professor David A Turner.  One of the pioneers of modern
	{functional language}s.  He designed several languages,
	including, {SASL} (1976), {KRC} (1981) and {Miranda}, many of
	which were implemented using {combinator}s and the {S-K
	reduction machine} which he defined.

	He coined the name "{ZF expression}" for the {list
	comprehension}.

	He set up a company, {Research Software} Limited to market
	{Miranda}.

	E-mail: <dat@ukc.ac.uk>.

	(06 Dec 1994)

day mode

	See {phase} (sense 1).  Used of people only.

DAZIX

	Daisy/Cadnetix Corporation.

	A supplier of digital electronic {CAE} systems.

	(06 Dec 1994)

DB

	{database}

DB2

	A {DBMS} from IBM.

DB-25

	<hardware> The standard 25-pin "D-type" connector used for
	{RS-232} serial communication.

	{DB-9} is a common alternative, especially on {personal
	computers}.

	(08 Dec 1996)

DB-9

	<hardware> The standard 9-pin connector used for {RS-232}
	serial communication (in place of {DB-25}).

	(08 Dec 1996)

DBA

	{database administrator}

dBASE

	<tool, product, language> A {DBMS} from {Ashton-Tate
	Corporation} and the language used by it.

	The first release was dBASE II, ca 1980.  There never was a
	"dBASE I".  Later versions: {dBASE III}, dBASE III+, and dBASE
	IV.

	{Visual dBASE} is a graphical development environment.

	(05 Nov 1996)

DBC

	<language, parallel> A {data-parallel} {bit-serial} {C} based
	on {MPL}.  SRC, Bowie MD.

	E-mail: <maya@super.org>.

	(01 May 1995)

DBCS

	<character> (IBM) double-byte character set.

	A {character set} that uses 16 bits to represent a character.

	(21 Mar 1995)

dBFAST

	{dBASE} dialect for {MS-DOS} and {MS-Windows}.

DBH

	{Denis Howe}

DBMS

	{database management system}

DBPL

	A {procedural language} with {relational database} constructs.
	A successor to {Pascal/R} and {Modula/R}.

	["DBPL Report", J.W. Schmidt et al, DBPL-Memo 111-88,
	Fachbereich Informatik, Johann Wolfgang Goethe-Universitaet,
	Frankfurt, Germany, 1988].

	(07 Dec 1994)

DBRI

	{Dual Basic Rate Interface}

dBXL

	A {dBASE}-like {interpreter}/language for {MS-DOS} from
	{WordTech}, Orinda, CA.

	(07 Dec 1994)

DC

	<language, tool> The {Unix} {arbitrary precision} {postfix}
	calculator and its language.

	Here is an example program which prints out {factorial}s:

		echo "[la1+dsa*pla2220>y]sy0sa1lyx" | dc

	{Unix manual page}: dc(1).

	{bc} provides a somewhat more readable syntax which is
	compiled into dc.  There is also a {GNU DC}.

	(17 Mar 1995)

DC1

	{control-Q}

DC2

	{Device Control 2}

DC3

	{Control-S}

DC4

	{Device Control 4}

DCA

	1. Defense Communications Agency.  See {DISA}.

	2. {Document Content Architecture} from {IBM}.

DCALGOL

	Data Communications ALGOL.  A superset of {Burroughs Extended
	ALGOL} used for writing Message Control Systems.

DCC

	<networking> {Direct Client to Client Protocol}.

DCDL

	Digital Control Design Language.  A language for simulating
	computer systems.

	["DCDS Digital Simulating System", H. Potash et al, Proc FJCC
	35, AFIPS (Fall 1969)].

DCE

	1. {Data Communication Equipment}.

	2. Data Circuit-terminating Equipment.

	3. {Distributed Computing Environment} from {OSF}.

DCG

	{Definite Clause Grammar}

DCL

	1. DIGITAL Command Language.  The interactive command and
	scripting language for VAX/VMS.

	2. Delphi Common LISP.  An implementation of Common LISP that
	has been used as a basis for CLOS.

DCP

	{definitional constraint programming}

D. C. Power Lab

	The former site of {SAIL}.  This name was very funny because
	the obvious connection to electrical engineering was
	nonexistent - the lab was named after a Donald C. Power.
	Compare {Marginal Hacks}.

	[But did DCP's parents realise the joke?]

DCS

	{Digital Cellular System}

DCT

	{Discrete Cosine Transform}

DD

	{Data Dictionary}

dd

	A {Unix} copy command with special options suitable for
	block-oriented devices; it was often used in heavy-handed
	system maintenance, as in "Let's "dd" the {root partition}
	onto a tape, then use the {boot PROM} to load it back on to a
	new disk".

	The Unix "dd" was designed with a weird, distinctly non-Unixy
	keyword option syntax reminiscent of {IBM} {System/360} JCL
	(which had an elaborate DD "Dataset Definition" specification
	for I/O devices); though the command filled a need, the
	interface design was clearly a prank.

	The jargon usage is now very rare outside Unix sites and now
	nearly obsolete even there, as "dd" has been {deprecated} for
	a long time (though it has no exact replacement).  The term
	has been displaced by {BLT} or simple English "copy".

	(03 Feb 1995)

DDB

	{device independent bitmap}

DDCMP

	{Digital Data Communications Message Protocol} ({DEC}).

DDE

	{Dynamic Data Exchange}

DDE Manager

	An {Oracle} product that lets {Microsoft Windows}
	applications that support the {Dynamic Data Exchange} (DDE)
	{protocol} act as front end tools for Oracle.  It allows
	applications like {Excel}, {Word}, {Ami Professional}, {WingZ}
	and {ToolBook} to query, update, graph and report information
	stored in Oracle.

DDIF

	Digital Document Interchange Format.  A CDA specification for
	representing compound documents in revisable format; a DEC
	standard for document encoding.

DDL

	1. "A Digital System Design Language" (DDL)", J.R. Duley, IEEE
	Trans on Computers c-17(9):850-861 (Sep 1968).

	2. M. Urban, C. Kostanick et al, UCLA Computer Club.  An
	{adventure} language, the forerunner of {ADL}.

	3. {Data Definition Language}.

	4. {document description language}.

DDM

	Dataflow language.  "The Architecture and System Method of
	DDM-1: A Recursively Structured Data Driven Machine",
	A. Davis, Proc 5th Ann Symp Comp Arch, IEEE 1978.

DDN

	{Defense Data Network}

DDP

	{Distributed Data Processing}

DDS

	1. {Digital Data Service}.

	2. {Digital Data System}.

	3. {Dataphone Digital Service}.

DDT

	1. Generic term for a program that assists in debugging other
	programs by showing individual machine instructions in a
	readable symbolic form and letting the user change them.  In
	this sense the term DDT is now archaic, having been widely
	displaced by "debugger" or names of individual programs like
	"{adb}", "{sdb}", "{dbx}", or "{gdb}".

	2. Under {MIT}'s fabled {ITS} {operating system}, DDT (running
	under the alias HACTRN) was also used as the {shell} or top
	level command language used to execute other programs.

	3. Any one of several specific debuggers supported on early
	{DEC} hardware.  The {DEC} {PDP-10} Reference Handbook (1969)
	contained a footnote on the first page of the documentation
	for DDT that illuminates the origin of the term:

	Historical footnote: DDT was developed at {MIT} for the
	{PDP-1} computer in 1961.  At that time DDT stood for "DEC
	Debugging Tape".  Since then, the idea of an on-line debugging
	program has propagated throughout the computer industry.  DDT
	programs are now available for all DEC computers.  Since media
	other than tape are now frequently used, the more descriptive
	name "Dynamic Debugging Technique" has been adopted, retaining
	the DDT abbreviation.  Confusion between DDT-10 and another
	well known pesticide, dichloro-diphenyl-trichloroethane
	(C14-H9-Cl5) should be minimal since each attacks a different,
	and apparently mutually exclusive, class of bugs.

	(The "tape" referred to was, incidentally, not magnetic but
	paper.)  Sadly, this quotation was removed from later editions
	of the handbook after the {suit}s took over and DEC became
	much more "businesslike".

	The history above is known to many old-time hackers.  But
	there's more: Peter Samson, compiler of the original {TMRC}
	lexicon, reports that he named "DDT" after a similar tool on
	the {TX-0} computer, the direct ancestor of the PDP-1 built at
	{MIT}'s Lincoln Lab in 1957.  The debugger on that
	ground-breaking machine (the first transistorised computer)
	rejoiced in the name FLIT (FLexowriter Interrogation Tape).

DEA

	{Data Encryption Algorithm}

DEACON

	Direct English Access and CONtrol.  English-like query system.
	Sammet 1969, p.668.

dead

	1. Non-functional; {down}; {crash}ed.  Especially used of
	{hardware}.

	2. At {XEROX PARC}, software that is working but not
	undergoing continued development and support.

DEADBEEF

	/ded-beef/ The {hexadecimal} word-fill pattern for freshly
	allocated memory (decimal -21524111) under a number of {IBM}
	environments, including the {RS/6000}.  As in "Your program is
	DEADBEEF" (meaning gone, aborted, flushed from memory); if you
	start from an odd half-word boundary, of course, you have
	BEEFDEAD.

dead code

	<programming> (Or "infeasible path", "{grunge}") Any part of a
	program that can never be accessed because all calls to it
	have been removed, or because it is guarded by a control
	structure that provably must always transfer control somewhere
	else.  The presence of dead code may reveal either logical
	errors due to alterations in the program or significant
	changes in the assumptions and environment of the program (see
	also {software rot}); a good compiler should report dead code
	so a maintainer can think about what it means.  Sometimes it
	simply means that an *extremely* defensive programmer has
	inserted {can't happen} tests which really can't happen - yet.

	Synonym {grunge}.

	(22 May 1996)

deadlock

	1. A situation wherein two or more processes are unable to
	proceed because each is waiting for one of the others to do
	something.  A common example is a program communicating to a
	server, which may find itself waiting for output from the
	server before sending anything more to it, while the server is
	similarly waiting for more input from the controlling program
	before outputting anything.  (It is reported that this
	particular flavour of deadlock is sometimes called a
	"starvation deadlock", though the term "starvation" is more
	properly used for situations where a program can never run
	simply because it never gets high enough priority.  Another
	common flavour is "constipation", in which each process is
	trying to send stuff to the other but all buffers are full
	because nobody is reading anything.)  See {deadly embrace}.

	2. Also used of deadlock-like interactions between humans, as
	when two people meet in a narrow corridor, and each tries to
	be polite by moving aside to let the other pass, but they end
	up swaying from side to side without making any progress
	because they always move the same way at the same time.

deadly embrace

	Same as {deadlock}, though usually used only when exactly two
	processes are involved.  This is the more popular term in
	Europe, while {deadlock} predominates in the United States.

deamon

	<spelling> Misspelling of "{daemon}".

	(13 Dec 1996)

death code

	A routine whose job is to set everything in the computer -
	{register}s, memory, flags - to zero, including that portion
	of memory where it is running; its last act is to stomp on its
	own "store zero" instruction.  Death code isn't very useful,
	but writing it is an interesting hacking challenge on
	architectures where the instruction set makes it possible,
	such as the {PDP-8} or the {Data General} {Nova}.

	Perhaps the ultimate death code is on the {TI 990} series,
	where all {register}s are actually in {RAM}, and the
	instruction "store immediate 0" has the {opcode} 0.  The
	{program counter} will immediately wrap around core as many
	times as it can until a user hits HALT.  Any empty memory
	location is death code.  Worse, the manufacturer recommended
	use of this instruction in startup code (which would be in
	{ROM} and therefore survive).

Death Star

	["Star Wars" film] 1. The AT&T corporate logo, which appears
	on computers sold by AT&T and bears an uncanny resemblance to
	the Death Star in the movie.  This usage is particularly
	common among partisans of {BSD} Unix, who tend to regard the
	AT&T versions as inferior and AT&T as a bad guy.  Copies still
	circulate of a poster printed by Mt. Xinu showing a starscape
	with a space fighter labelled {4.2BSD} streaking away from a
	broken AT&T logo wreathed in flames.

	2. AT&T's internal magazine, "Focus", uses "death star" to
	describe an incorrectly done AT&T logo in which the inner
	circle in the top left is dark instead of light - a frequent
	result of dark-on-light logo images.

De Bruijn notation

	A variation of lambda notation for specifying functions using
	numbers instead of names to refer to formal parameters.  A
	reference to a formal parameter is a number which gives the
	number of lambdas (written as \ here) between the reference
	and the lambda which binds the parameter.  E.g. the function \
	f . \ x . f x would be written \ . \ . 1 0.  The 0 refers to
	the innermost lambda, the 1 to the next etc.  The chief
	advantage of this notation is that it avoids the possibility
	of name capture and removes the need for alpha conversion.
	[N.G. De Bruijn, "Lambda Calculus Notation with Nameless
	Dummies: A Tool for Automatic Formula Manipulation, with
	Application to the Church-Rosser Theorem", Indag Math. 34, pp
	381-392]

debugging

	<programming> Attempting to determine the cause of the
	symptoms of malfunctions detected by testing or by frenzied
	user complaints.

	(13 May 1996)

DEC

	{Digital Equipment Corporation}

dec

	<programming> /dek/ decrement, decrease by one.  Especially
	used by {assembly language} programmers, as many assembly
	languages have a "dec" {mnemonic}.

	Opposite: {inc}.

DEC Alpha

	<processor> A {RISC} {microprocessor} from {DEC} clocked at
	200 Mhz or more.  The Alpha is purportedly the fastest
	non-research chip available in commonly available
	{workstations} (Nov 1995).

	[Features?  Dates?]

	(18 Feb 1996)

decay

	[Nuclear physics] An automatic conversion which is applied to
	most array-valued expressions in {C}; they "decay into"
	pointer-valued expressions pointing to the array's first
	element.  This term is not used in the official standard for
	the language.

DECdesign

	A software analysis and design tool from {DEC} supporting
	several methodologies.  Now replaced by {Teamwork}.

	(05 Sep 1994)

DECdns

	Distributed Naming Service.

	Adopted by {OSF} as the naming service for {DCE}.

DEChead

	/dek'hed/ 1. A {DEC} {field servoid}.  Not flattering.

	2. ["deadhead"] A Grateful Dead fan working at {DEC}.

decidability

	<mathematics> A property of sets for which one can determine
	whether something is a member or not in a {finite} number of
	computational steps.

	Decidability is an important concept in {computability
	theory}.  A set (e.g. "all numbers with a 5 in them") is said
	to be "decidable" if I can write a program (usually for a
	{Turing Machine}) to determine whether a number is in the set
	and the program will always terminate with an answer YES or NO
	after a finite number of steps.

	Most sets you can describe easily are decidable, but there are
	infinitely many sets so most sets are undecidable, assuming
	any finite limit on the size (number of instructions or number
	of states) of our programs.  I.e. how ever big you allow your
	program to be there will always be sets which need a bigger
	program to decide membership.

	One example of an undecidable set comes from the {halting
	problem}.  It turns out that you can encode every program as a
	number: encode every symbol in the program as a number (001,
	002, ...) and then string all the symbol codes together.  Then
	you can create an undecidable set by defining it as the set of
	all numbers that represent a program that terminates in a
	finite number of steps.

	A set can also be "semi-decidable" - there is an {algorithm}
	that is guaranteed to return YES if the number is in the set,
	but if the number is not in the set, it may either return NO
	or run for ever.

	The {halting problem}'s set described above is semi-decidable.
	You decode the given number and run the resulting program.  If
	it terminates the answer is YES.  If it never terminates, then
	neither will the decision algorithm.

	(13 Jan 1995)

decidable

	{decidability}

decimal point

	<character> "." {ASCII} character 46.  Common names are:
	point; {dot}; {ITU-T}, USA: period; {ITU-T}: decimal point.
	Rare: radix point; UK: full stop; {INTERCAL}: spot.

	(14 Mar 1995)

decision problem

	<theory> A problem with a yes/no answer.  Determining whether
	some potential solution to a question is actually a solution
	or not.  E.g. "Is 43669" a {prime number}?".  This is in
	contrast to a "{search problem}" which must find a solution
	from scratch, e.g. "What is the millionth prime number?".

	See {decidability}.

	(03 May 1996)

decision support

	Software used to aid management decision making, typically
	relying on a {decision support database}.

	[Examples?]

	(14 Feb 1995)

decision support database

	A {database} from which data is extracted and analysed
	statistically (but not modified) in order to inform business
	or other decisions.  This is in contrast to an {operational
	database} which is being continuously updated.

	For example, a decision support database might provide data to
	determine the average salary of different types of workers,
	whereas an operational database containing the same data would
	be used to calculate pay check amounts.

	Often, decision support data is extracted from operation
	databases.

	(14 Feb 1995)

Decision Support Systems

	<application, tool> (DSS) Software tools to help with
	{decision support}.

	(14 Feb 1995)

decision theory

	<probability> A branch of statistics concerning strategies for
	decision making in non-{deterministic} systems.  Decision
	theory seeks to find strategies that maximise the expected
	value of a {utility function} measuring the desirability of
	possible outcomes.

	(22 Sep 1995)

deckle

	/dek'l/ (From "dec-" and "{nybble}"; the original spelling
	seems to have been "decle") Two {nickle}s; 10 {bit}s.
	Reported among developers for {Mattel}'s {GI 1600} (the
	{Intellivision} games processor), a chip with 16 bit wide
	{RAM} but 10 bit wide {ROM}.

	(23 Nov 1994)

declarative language

	A general term for a {relational language} or a {functional
	language}, as opposed to an {imperative language}.  Imperative
	(or procedural) languages specify explicit sequences of steps
	to follow to produce a result, while declarative languages
	describe relationships between variables in terms of functions
	or {inference rule}s and the language executor ({interpreter}
	or {compiler}) applies some fixed {algorithm} to these
	relations to produce a result.  The most common examples of
	declarative languages are {logic programming} languages such
	as {Prolog} and {functional language}s like {Haskell}.

	See also {production system}.

	(23 Nov 1994)

DECmate

	{DEC}'s original competition for the {IBM PC}.  It used the
	{Intersil 6120} {microprocessor}.

	(23 Nov 1994)

DECnet

	A proprietary network protocol designed by Digital Equipment
	Corporation.  The functionality of each Phase of the
	implementation, such as Phase IV and Phase V, is different.

Decomposed Petri Net

	(DPN) The basis of {concurrency} in {ConC}.

decryption

	<cryptography> Any procedure used in {cryptography} to convert
	{ciphertext} (encrypted data) into {plaintext}.

	(10 May 1995)

DECstation

	A range of {RISC} based {workstation}s manufactured by {DEC}.

DECT

	{Digital Enhanced Cordless Telecommunications}

DECtape

	<hardware, storage> A small reel, about 4 inches in diameter,
	of {magnetic tape} about an inch wide.  Unlike those for
	today's {macrotape}s, microtape drivers allowed random access
	to the data, and therefore could be used to support file
	systems and even for swapping (this was generally done purely
	for {hack value}, as they were far too slow for practical
	use).  In their heyday they were used in pretty much the same
	ways one would now use a {floppy disk}: as a small, portable
	way to save and transport files and programs.

	(16 Mar 1995)

DECUS

	{Digital Equipment Computer Users Society}

Decus cpp

	An almost-{ANSI C} {preprocessor} by Martin Minow.  It is
	shipped with {X11R5} (contrib/util/cpp) because some systems
	don't have a working {cpp}.

	It runs on {VMS} ({Vax C}, {Decus C}), {RSX-11M}, {RSTS/E},
	{P/OS}, {RT11}, {A/UX} and {Apollo Domain}/IX 9.6 and is
	highly portable.

	(03 Nov 1994)

DEC Wars

	A 1983 {Usenet} posting by Alan Hastings and Steve Tarr
	spoofing the "Star Wars" movies in hackish terms.  Some years
	later, ESR (disappointed by Hastings and Tarr's failure to
	exploit a great premise more thoroughly) posted a
	3-times-longer complete rewrite called "Unix WARS"; the two
	are often confused.

DECwindows

	DEC's windowing environment based on the {X Window System}.

DECwrite

	{DEC}'s {CDA}-based, {WYSIWYG} document processing
	application.  It can generate and import {SGML} marked-up
	documents.

DED

	Dark-Emitting Diode (that is, a burned-out LED).  Compare
	{SED}, {LER}, {write-only memory}.  In the early 1970s both
	Signetics and Texas instruments released DED spec sheets as
	{AFJ}s (suggested uses included "as a power-off indicator").

dedicated line

	<communications> A telephone line leased expressly for the
	purpose of connecting two users more-or-less permenantly..
	Such lines may be "voice grade" which provides the {bandwidth}
	and {signal to noise ratio} of ordinary {public switched
	telephone network} circuits, or specified in ways which allow
	transport of suitably encoded digital signals at faster rates.

	In some cases, lines may be physical wires between the
	communicating parties.  Over longer distances, it is common
	for the connection to be virtual, which means that although
	the two users can communicate only with each other, their
	signals and others are multiplexed, amplified, switched,
	scrambled, demultiplexed and so on in complex ways between the
	end points.

	This contrasts with a {dial-up} connection which is only
	opened when one end requires it.

	(10 Aug 1996)

deductive database

	<database> A combination of a conventional {database}
	containing {fact}s, a {knowledge base} containing {rule}s, and
	an {inference engine} which allows the derivation of
	{information} implied by the facts and rules.

	Commonly, the knowledge base is expressed in a subset of
	{first-order logic} and either a {SLDNF} or {Datalog}
	inference engine is used.

	(27 Apr 1995)

deductive tableau

	<tool> A theorem proof system consisting of a table whose rows
	contain assertions or goals.  Variables in assertions are
	implicitly universally quantified and variables in goals are
	implicitly existentially quantified.  The declarative meaning
	of a tableau is that if every instance of every assertion is
	true then some instance of at least one of the goals is true.

	(07 Dec 1994)

deep hack mode

	See {hack mode}.

deep magic

	[possibly from C. S. Lewis's "Narnia" books] An awesomely
	arcane technique central to a program or system, especially
	one neither generally published nor available to hackers at
	large (compare {black art}); one that could only have been
	composed by a true {wizard}.  Compiler optimisation techniques
	and many aspects of {OS} design used to be {deep magic}; many
	techniques in cryptography, signal processing, graphics, and
	AI still are.  Compare {heavy wizardry}.  Especially found in
	comments of the form "Deep magic begins here.".  Compare
	{voodoo programming}.

deep space

	1. The notional location of any program that has gone {off the
	trolley}.  Especially used of programs that just sit there
	silently grinding long after either failure or some output is
	expected.  "Uh oh.  I should have had a prompt ten seconds
	ago.  The program's in deep space somewhere." Compare {buzz},
	{catatonic}, {hyperspace}.

	2. The metaphorical location of a human so dazed and/or
	confused or caught up in some esoteric form of {bogosity} that
	he or she no longer responds coherently to normal
	communication.

de facto standard

	A widespread consensus on a particular product or {protocol}
	which has not been ratified by any official {standard}s body,
	such as {ISO}, but which nevertheless has a large market
	share.

	The archetypal example of a de facto standard is the {IBM PC}
	which, despite is many glaring technical deficiencies, has
	gained such a large share of the {personal computer} market
	that it is now popular simply because it is popular and
	therefore enjoys fierce competition in pricing and software
	development.

	(27 Oct 1994)

default route

	<networking> A {routing table} entry which is used to direct
	{packets} addressed to {hosts} or {networks} not explicitly
	listed in the routing table.

	(13 May 1996)

defect

	{bug}

defect analysis

	<programming> Using defects as data for continuous quality
	improvement.  Defect analysis generally seeks to classify
	defects into categories and identify possible causes in order
	to direct process improvement efforts.

	(13 May 1996)

defect density

	<programming> The ratio of the number of {defects} to program
	length.

	(13 May 1996)

defenestration

	<humour> (From the traditional Czechoslovakian method of
	assassinating prime ministers, via SF fandom) 1. Proper karmic
	retribution for an incorrigible punster.  "Oh, ghod, that was
	*awful*!"  "Quick!  Defenestrate him!"

	2. The act of exiting a window system in order to get better
	response time from a full-screen program.  This comes from the
	dictionary meaning of "defenestrate", which is to throw
	something out a window.

	3. The act of discarding something under the assumption that
	it will improve matters.  "I don't have any disk space left."
	"Well, why don't you defenestrate that 100 megs worth of old
	core dumps?"

	(13 May 1996)

Defense Advanced Research Project Agency

	{Advanced Research Projects Agency}

Defense Advanced Research Projects Agency

	{Advanced Research Projects Agency}

Defense Communications Agency

	(DCA) Now called Defense Information Systems Agency (DISA).

Defense Data Network

	(DDN) A global communications network serving the US
	Department of Defense.  Composed of {MILNET}, other portions
	of the {Internet}, and classified networks which are not part
	of the {Internet}.  The DDN is used to connect military
	installations and is managed by the {Defense Information
	Systems Agency}.

	(01 Dec 1994)

Defense Data Network Network Information Center

	(DDN NIC or just "The NIC") The {DDN} {NIC}'s primary
	responsibility is the assignment of {Internet address}es and
	{Autonomous System number}s, the administration of the root
	domain, and providing information and support services to the
	{DDN}.  It is also a primary repository for {RFC}s.

	See also {Internet Registry}.

	(07 Dec 1994)

Defense Information Systems Agency

	(DISA) Formerly called the Defense Communications Agency
	(DCA), this is the government agency responsible for managing
	the {Defense Data Network} (DDN) portion of the {Internet},
	including the {MILNET}.  Currently, DISA administers the
	{DDN}, and supports the user assistance services of the DDN
	{NIC}.

	{Home (http://www.disa.mil/)}

	(01 Dec 1994)

Defense Trade Regulations

	<legal> The U.S. law governening munitions export and defense
	technology (F-16s, TOW missiles and {cryptology}).  According
	to the U.S. (and Canada) cryptography is a munition and people
	who export it can be charged as though they were exporting
	bombs or state secrets.  People have been.

	See also {EFF}.

	(19 Jun 1995)

deferral

	Waiting for quiet on the {Ethernet}.

definite clause

	See {Horn clause}.

definite sentence

	A collection of {definite clause}s.

definitional constraint programming

	<language> (DCP) A declarative, programming paradigm which
	integrates {concurrent constraint programming}, {constraint
	logic programming} and {functional programming}.  In this
	setting a concurrent constraint language becomes a
	coordination system that organises the concurrent interaction
	of parallel functional computations.  The language is also a
	generalisation of parallel {functional programming} languages,
	such as {Id}, where {constraint}s and constraint abstractions
	are reused to define new constraints, as the means of
	programming logical variables for parallel coordination.

	{Goffin} is a DCP language.

	(28 Mar 1995)

deforestation

	A technique invented by {Phil Wadler} for eliminating
	intermediate data structures built and passed between composed
	functions in {function language}s.

degree

	The degree (or valency) of a node in a graph is the number of
	edges joined to it.

degrees of freedom

	The number of independent parameters required to specify the
	position and orientation of an object.  Often used to classify
	{robot} arms.  For example, an arm with six degrees of freedom
	could reach any position close enough and could orient it's
	end effector (grip or tool etc.) at any angle about the three
	perpendicular axes.

dehose

	/dee-hohz/ To clear a {hosed} condition.

DEK

	{Data Encryption Key}

delayed control-transfer

	A technique used on the {SPARC} which attempts to reduce the
	effect of {pipeline break}s by executing the instruction after
	a branch instruction (the "delay instruction" in the "delay
	slot").  If there is no useful instruction which can be placed
	in the delay slot then the "annul bit" on the control-transfer
	instruction can be set, preventing execution of the delay
	instruction (unless the control-transfer is conditional and is
	taken).

	If the delay instruction is also a control-transfer
	instruction then it gets more complicated.  Both
	control-transfer instructions are executed (but not the
	following instruction) and, assuming they are both taken,
	control is transferred briefly to the destination of the first
	and then immediately to the destination of the second.

delay instruction

	The instruction in a {delay slot} in a program for a processor
	which uses {delayed control-transfer}.

delay slot

	The instruction location following a control-transfer
	instruction for a processor which uses {delayed
	control-transfer}.

delete

	1. <operating system> To make a file inaccessible.

	Usually this operation only deletes information from the
	tables the {file system} uses to locate named files; the
	file's contents still exist on disk and can sometimes be
	recovered by scanning the whole disk for strings which are
	known to have been in the file.  Files created subsequently on
	the same disk are quite likely to reuse the same blocks and
	thus overwrite the deleted file's data permanently.

	2. <character> The {control character} with ASCII code 127.
	Usually entering this character from the keyboard deletes the
	last character typed from the {input buffer}.  Sadly there is
	great confusion between {operating systems} and keyboard
	manufacturers as to whether this function should be assigned
	to the delete or {backspace} key/character.

	The choice of code 127 (binary 1111111) is not arbitrary but
	dates back to the use of {paper tape} for input.  The delete
	key rewound the tape by one character and punched out all
	seven holes, thus obliterating whatever character was there
	before.  The tape reading software ignored any delete
	characters in the input.

	(01 Dec 1996)

delint

	/dee-lint/ To modify code to remove problems detected when
	{lint}ing.  Confusingly, this process is also referred to as
	"linting" code.

Delirium

	An embedding coordinate language for parallel programming,
	implemented on {Sequent Symmetry}, {Cray}, {BBN Butterfly}.

	["Parallel Programming with Coordination Structures", S. Lucco
	et al, 18th POPL, pp.197-208 (1991)].

Delivered Source Instruction

	<programming, unit> (DSI) One line of source code (LOC)
	developed by a project.

	DSI is the primary input to many tools for estimating software
	cost.  The term "delivered" is generally meant to exclude
	non-delivered support software such as test drivers.  However,
	if these are developed with the same care as delivered
	software, with their own reviews, test plans, documentation,
	etc., then they should be counted.  The "source instructions"
	include all program instructions created by project personnel
	and processed into {machine code} by some combination of
	preprocessors, compilers, and assemblers.  It excludes
	comments and unmodified utility software.  It includes {job
	control language}, format statements, and data declarations.

	(29 May 1996)

Dell Computer Corporation

	<company> One of the biggest US manufacturers of {IBM PC}
	compatibles.

	"From notebooks to networks", their slogan says.

	{Home (http://www.us.dell.com)}.

	(29 May 1996)

Delphi

	1. <company, communications> A US {Internet service provider}.

	[Addresses?]

	(06 Apr 1995)

	2. <language> {Borland}'s {Object Orientated Pascal}
	(OOPascal) {Rapid Application Development} package for
	{Microsoft Windows}.  Delphi combines visual, component-based
	design with an optimising {native code compiler} and scalable
	database access.

	(27 May 1996)

Delphi Technique

	<programming, tool> A group forecasting technique, generally
	used for future events such as technological developments,
	that uses estimates from experts and feedback summaries of
	these estimates for additional estimates by these experts
	until reasonable consensus occurs.  It has been used in
	various software cost-estimating activities, including
	estimation of factors influencing software costs.

	(29 May 1996)

Delta

	1. An expression-based language by J.C. Cleaveland, 1978.

	2. A string-processing language with single-character
	commands.  Tandem.

	3. Language for system specification of simulation execution.
	"System Description and the DELTA Language", E. Holback-Hansen
	et al, DELTA Proj Rep 4, Norweg Comput Ctr, Feb 1977.

delta

	1. A quantitative change, especially a small or incremental
	one (this use is general in physics and engineering).  "I just
	doubled the speed of my program!"  "What was the delta on
	program size?"  "About 30 percent."  (He doubled the speed of
	his program, but increased its size by only 30 percent.)

	2. [Unix] A {diff}, especially a {diff} stored under the set
	of version-control tools called SCCS (Source Code Control
	System) or RCS (Revision Control System).  See {change
	management}.

	3.  A small quantity, but not as small as {epsilon}.  The
	jargon usage of {delta} and {epsilon} stems from the
	traditional use of these letters in mathematics for very small
	numerical quantities, particularly in "epsilon-delta" proofs
	in limit theory (as in the differential calculus).  The term
	{delta} is often used, once {epsilon} has been mentioned, to
	mean a quantity that is slightly bigger than {epsilon} but
	still very small.  "The cost isn't epsilon, but it's delta"
	means that the cost isn't totally negligible, but it is
	nevertheless very small.  Common constructions include "within
	delta of ---", "within epsilon of ---": that is, "close to"
	and "even closer to".

Delta-4

	Definition and Design of an open Dependable Distributed system
	architecture.  An Esprit project investigating the achievement
	of dependability in open distributed systems, including
	real-time systems.

delta conversion

	{delta reduction}

Delta-Prolog

	A {Prolog} extension with {AND-parallelism}, {don't-know
	nondeterminism} and interprocess communication using
	{synchronous event goal}s and {distributed backtracking}.

	["Delta-Prolog: A Distributed Logic Programming Language",
	L.M. Pereira et al, Intl Conf 5th Gen Comp Sys, Nov 1984].

delta reduction

	<theory> In {lambda-calculus} extended with constants, delta
	reduction replaces a function applied to the required number
	of arguments (a {redex}) by a result.  E.g. plus 2 3 --> 5.
	In contrast with {beta reduction} (the only kind of reduction
	in the {pure lambda-calculus}) the result is not formed simply
	by textual substitution of arguments into the body of a
	function.  Instead, a delta redex is matched against the left
	hand side of all delta rules and is replaced by the right hand
	side of the (first) matching rule.  There is notionally one
	delta rule for each possible combination of function and
	arguments.  Where this implies an infinite number of rules,
	the result is usually defined by reference to some external
	system such as mathematical addition or the hardware
	operations of some computer.  For other types, all rules can
	be given explicitly, for example {Boolean} negation:

		not True  = False
		not False = True

	(20 Feb 1997)

DELTASE

	A distributed processing environment concerned with
	fault-tolerant and process-control applications from the
	Esprit Delta-4 project.

demand driven

	A demand driven architecture/language performs computations
	when the result is required by some other computation.
	E.g. {Imperial College}'s {ALICE} running {HOPE}.

	See also {data flow}, {lazy evaluation}, {reduction}.

	(16 Feb 1995)

demand paged

	{demand paging}

demand paging

	A kind of {virtual memory} where a {page} of memory will be
	{paged in} if an attempt is made to access it and it is not
	already present in main memory.  This normally involves a
	{memory management unit} which looks up the {virtual address}
	in a {page map} to see if it is paged in.  If it is not then
	the {operating system} will page it in, update the page map
	and restart the failed access.  This implies that the
	processor must be able to recover from and restart a failed
	memory access or must be suspended while some other mechanism
	is used to perform the paging.

	Paging in a page may first require some other page to be moved
	from main memory to disk ("paged out") to make room.  If this
	page has not been modified since it was paged in, it can
	simply be reused without writing it back to disk.  This is
	determined from the "modified" or "dirty" flag bit in the
	{page map}.  A {replacement algorithm} or policy is used to
	select the page to be paged out, often this is the {least
	recently used} (LRU) {algorithm}.

	(16 Feb 1995)

DeMarco

	Tom DeMarco proposed a form of {structured analysis}.

	(16 Feb 1995)

DeMarco/Yourdon

	{Yourdon/Demarco}

demented

	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.  Said, for example, of a
	program that generates large numbers of meaningless error
	messages, implying that it is on the brink of imminent
	collapse.

	(07 Dec 1994)

Demeter

	A {CASE} tool developed mainly by Karl Lieberherr.

	["Contributions to Teaching Object-Oriented Design and
	Programming" Aug/Sep 1988 issue of JOOP, OOPSLA '89
	Proceedings].

	(07 Dec 1994)

demigod

	<person> A hacker with years of experience, a national
	reputation, and a major role in the development of at least
	one design, tool, or game used by or known to more than half
	of the hacker community.  To qualify as a genuine demigod, the
	person must recognisably identify with the hacker community
	and have helped shape it.  Major demigods include {Ken
	Thompson} and {Dennis Ritchie} (co-inventors of {Unix} and
	{C}) and {Richard Stallman} (inventor of {EMACS}).  In their
	hearts of hearts, most hackers dream of someday becoming
	demigods themselves, and more than one major software project
	has been driven to completion by the author's veiled hopes of
	apotheosis.

	See also {net.god}, {true-hacker}.

	(27 Oct 1994)

De-Militarised Zone

	(DMZ) (From the military term for an area between two
	opponents where fighting is prevented) DMZ {Ethernet}s connect
	networks and computers controlled by different bodies.  They
	may be external or internal.  External DMZ Ethernets link
	regional networks with {router}s to internal networks.
	Internal DMZ Ethernets link local nodes with routers to the
	regional networks.

	(23 Feb 1995)

demo

	/de'moh/ 1. A demonstration of a product, often of an early
	version or prototype.  A demo is a far more effective way of
	inducing bugs to manifest themselves than any number of {test}
	runs, especially when important people are watching.

	2. {demo version}.

	3. A program written to demonstrate the programmer's coding
	ability and/or the power of the computer it runs on.  Such
	demos are nearly always written in {machine code} and
	traditionally feature scrolling text about the author, his
	friends, his code and anything else he fancies and animated
	graphics.

	(04 Nov 1994)

demo mode

	({Sun)} 1. The state of being {heads down} in order to finish
	code in time for a {demo}, usually due yesterday.

	2. <games> (Or "attract mode") A mode in which video games sit
	by themselves running through a portion of the game.  Some
	serious {app}s have a demo mode they use as a screen saver, or
	may go through a demo mode on startup (for example, the
	{Microsoft Windows} opening screen - which lets you impress
	your neighbors without actually having to put up with
	{Microsloth Windows}).

	(22 Feb 1995)

demon

	1. (Often used equivalently to {daemon}, especially in the
	{Unix} world, where the latter spelling and pronunciation is
	considered mildly archaic).  A program or part of a program
	which is not invoked explicitly, but that lies dormant waiting
	for some condition(s) to occur.

	At {MIT} they use "demon" for part of a program and "daemon"
	for an {operating system} process.

	Demons (parts of programs) are particularly common in {AI}
	programs.  For example, a knowledge-manipulation program might
	implement {inference rule}s 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.

	(The use of this term may derive from "Maxwell's Demons' -
	minute beings which can reverse the normal flow of heat from a
	hot body to a cold body by only allowing fast moving molecules
	to go from the cold body to the hot one and slow molecules
	from hot to cold.  The solution to this apparent thermodynamic
	paradox is that the demons would require an external supply of
	energy to do their work and it is only in the absence of such
	a supply that heat must necessarily flow from hot to cold).

	2. {Demon Internet} Ltd.

	3. A program generator for differential equation problems.

	[N.W. Bennett, Australian AEC Research Establishment,
	AAEC/E142, Aug 1965].

	(22 Feb 1995)

Demon Internet Ltd.

	A company which provides public {Internet} access in the UK.

	The staff of Demon Systems Ltd., an established software
	house, started Demon Internet on 1st June 1992 and it was the
	first system in the United Kingdom to offer low cost full
	{Internet} access.  It was started with the support of about
	100 founder members who discussed the idea on {Compulink
	Information Exchange}, and were brave enough to pay a year's
	subscription in advance.  They aimed to have 200 members in
	the first year to cover costs, ignoring any time spent.  After
	about two weeks they realised they needed nearer 400.  By
	November 1993 they had over 2000 subscribers and by August
	1994 they had about 11000 with 20% per month growth.  All
	revenues have been reinvested in resources and expansion of
	service.

	The service runs on {Sun} and {Apricot} {Unix} machines
	centred around the Network Operation Centre in Finchley, North
	London.  Connected via {Ethernet}, as well as various
	{router}s, is the news server (news.demon.co.uk) which is a
	{SPARC IPX} (dis.demon.co.uk).  A Sun {SPARC 10},
	post.demon.co.uk handles {electronic mail} and
	nether.demon.co.uk, a {SPARC}, handles routing.
	ftp.demon.co.uk, another {Sun} is the {FTP} server.

	A 256 Kbps line to {Sprintlink} network {hub} in the United
	States makes Demon a totally independent Internet service
	provider.  They peer with {EUNet} and {PIPEX} to ensure good
	connectivity in Great Britain as well as having on order a 384
	Kbps line to the {JANET}/{JIPS} UK academic network.  A direct
	line into the {Department of Computing, Imperial College,
	London (http://sunsite.doc.ic.ac.uk)} from their Central
	London {Point of Presence} (PoP) (styx.demon.co.uk) gives
	access to the biggest {FTP} and {Archie} site in Europe.

	Demon have over 100 {dial-up} lines operating in racks of
	{U.S. Robotics} {V.32bis} {modem}s on all digital exchanges.
	In addition they have a number of dedicated phone lines for
	their network customers, private staff numbers etc.  There are
	{PoP}s in Warrington, Edinburgh and many other places,
	bringing local call access to a large proportion of the UK.
	The central London {PoP} provides {leased line} connections at
	a cheaper rate for those customers in the central 0171 area.
	Further lines and {PoP}s are being added continuously.

	Subscribers get allocated an {Internet Address} and you can
	choose your own {hostname} within the demon.co.uk {domain},
	e.g. hostname yourmc.demon.co.uk.  You can have any number of
	mail address at that host.  You need software on your machine
	which can use {Internet Protocol} - either {Serial Line
	Internet Protocol} or {Point-to-Point Protocol}.  Demon have
	free software for all types of computer.

	Demon hosts:

	 post.demon.co.uk 158.152.1.72             e-mail
	 dis.demon.co.uk 158.152.1.69              FTP
	 (a.k.a. ftp.demon.co.uk)
	 newnews.demon.co.uk 158.152.254.254       news
	 (a.k.a. news.demon.co.uk)
	 nether.demon.co.uk 158.152.1.71           router
	 disme.demon.co.uk 158.152.1.70            accounts
	 dismayl.demon.co.uk 158.152.1.76          IRC etc.
	 ns.demon.co.uk 158.152.1.193              a parallel port!
	 gate.demon.co.uk 158.152.1.65             London
	 styx.demon.co.uk 158.152.1.73             Central London
	 hel.demon.co.uk 158.152.5.65              Warrington
	 clootie.demon.co.uk 158.152.6.65          Edinburgh
	 ragnarok.demon.co.uk 158.152.12.194       Reading
	 thokk.demon.co.uk 158.152.7.194           Sunderland
	 tyr.demon.co.uk 158.152.14.194            Yorkshire

	In October 1994 Demon confirmed a large contract with the
	major telecommunications provider {Energis}.  They will supply
	guaranteed bandwidth to Demon's 10Mb/s {backbone} from several
	cities and towns.  Several {PoP}s will be phased out and
	replaced with others during 1995.

	E-mail: <internet@demon.net>.

	{(ftp://ftp.demon.co.uk/)}

	{(http://www.demon.co.uk/)}.

	{Usenet} newsgroup: {news:demon.announce}.

	Telephone: +44 (181) 349 0063.

	Address: Demon Internet Ltd., 42 Hendon Lane, Finchley, London
	N3 1TT.

	(08 Nov 1994)

DeMorgan's theorem

	<logic> A logical {theorem} which states that the {complement}
	of a {conjunction} is the {disjunction} of the complements or
	vice versa.  In symbols:

		not (x and y) = (not x) or (not y)
		not (x or y)  = (not x) and (not y)

	E.g. if it is not the case that I am tall and thin then I am
	either short or fat (or both).  The theorem can be extended to
	combinations of more than two terms in the obvious way.

	The same laws also apply to sets, replacing logical complement
	with set complement, conjunction ("and") with set
	intersection, and disjunction ("or") with set union.

	A ({C}) programmer might use this to re-write

		if (!foo && !bar) ...
	as
		if (!(foo || bar)) ...

	thus saving one operator application (though an {optimising
	compiler} should do the same, leaving the programmer free to
	use whichever form seemed clearest).

	(14 Dec 1995)

demo version

	1. An early, barely-functional version of a program which
	can be used for demonstration purposes as long as the operator
	uses *exactly* the right commands and skirts its numerous
	bugs, deficiencies, and unimplemented portions.

	2. A special version of a finished program (frequently with
	some features crippled) which is distributed at little or no
	cost to the user for enticement purposes.  See {crippleware}.

	(04 Nov 1994)

Denis Howe

	<person> Denis B. Howe.  Editor of the {Free On-line
	Dictionary of Computing}.

	{Curriculum vitae (http://wombat.doc.ic.ac.uk/denis-cv.html)}

	E-mail: Denis Howe <dbh@doc.ic.ac.uk>.

	Telephone: +44 (171) 606 7080 x8161.

	(13 Dec 1995)

Dennis Ritchie

	Dennis M. Ritchie, co-author of the {Unix} {operating system},
	inventor of the {C} programming language and {demigod}.

	See also {K&R}, {Core War}, {If you want X, you know where to
	find it}.

denotational semantics

	<theory> A technique for describing the meaning of programs in
	terms of mathematical {functions} on programs and program
	components.  Programs are translated into functions about
	which properties can be proved using the standard mathematical
	theory of functions, and especially {domain theory}.

	Compare {axiomatic semantics}, {operational semantics},
	{standard semantics}.

	(21 Aug 1996)

Denotational Semantics Language

	<specification, language> (DSL) The {specification language}
	used by the {SIS} {compiler generator}.

	["SIS - Semantics Implementation System", P.D. Mosses, TR
	DAIMI MD-30, Aarhus U, Denmark].

	(13 Oct 1996)

Department of Defense

	<body> (DoD) The US military body responsible for sponsoring
	many software engineering standards.

	(29 May 1996)

Department of Defense Network

	<networking> (DDN) A military subset of the {Internet}, which
	includes {ARPAnet}.

	(07 Dec 1994)

depeditate

	/dee-ped'*-tayt/ [by (faulty) analogy with "decapitate"]
	Humorously, to cut off the feet of.  When one is using some
	computer-aided typesetting tools, careless placement of text
	blocks within a page or above a rule can result in chopped-off
	letter descenders.  Such letters are said to have been
	depeditated.

dependability

	See {software reliability}.

dependable software

	See {software reliability}.

deprecated

	Said of a program or feature that is considered obsolescent
	and in the process of being phased out, usually in favour of a
	specified replacement.  Deprecated features can,
	unfortunately, linger on for many years.  This term appears
	with distressing frequency in standards documents when the
	committees writing the documents realise that large amounts of
	extant (and presumably happily working) code depend on the
	feature(s) that have passed out of favour.

	See also {dusty deck}.

	(19 Apr 1995)

depth-first search

	<algorithm> A graph search {algorithm} which extends the
	current path as far as possible before {backtracking} to the
	last {choice point} and trying the next alternative path.
	Depth-first search may fail to find a solution if it enters a
	cycle in the graph.  This can be avoided if we never extend a
	path to a node which it already contains.

	Opposite of {breadth first search}.  See also {iterative
	deepening}.

	(19 Apr 1995)

dereference

	<programming> To access the thing to which a pointer points,
	i.e. to follow the pointer.  E.g. in {C}, the declarations

		int i;
		int *p = &i;

	declare i as an integer and p as a pointer to integer.  p is
	initialised to point at i ("&i" is the address of i - the
	inverse of "*").  The expression *p dereferences p to yeild i
	as an {lvalue}, i.e. something which can appear either on the
	left of an {assignment} or anywhere an integer expression is
	valid.  Thus

		*p = 17;

	would set i to 17.  *p++ is not the same as i++ however since
	it is parsed as *(p++), i.e. increment p (which would be an
	invalid thing to do if it was pointing to a single int, as in
	this example) then dereference p's old value.

	The {C} operator "->" also dereferences its left hand argument
	which is assumed to point to a {structure} or {union} of which
	the right hand argument is a {member}.

	(19 Apr 1995)

de-rezz

	<jargon> /dee-rez'/ (Or "derez") "de-resolve" via the film
	"Tron".  1. To disappear or dissolve; the image that goes with
	it is of an object breaking up into raster lines and static
	and then dissolving.  Occasionally used of a person who seems
	to have suddenly "fuzzed out" mentally rather than physically.
	Usage: extremely silly, also rare.  This verb was actually
	invented as *fictional* hacker jargon, and adopted in a spirit
	of irony by real hackers years after the fact.

	2. The Macintosh resource decompiler.  On a Macintosh, many
	program structures (including the code itself) are managed in
	small segments of the program file known as "resources"; "Rez"
	and "DeRez" are a pair of utilities for compiling and
	decompiling resource files.  Thus, decompiling a resource is
	"derezzing".  Usage: very common.

derived type

	<programming> A type constructed from {primitive type}s or
	other derived types using a {type constructor function}.  This
	term is usually applied to {procedural language}s such as {C}
	or {Ada}.  C's derived types are the {array}, function,
	pointer, {struct}ure and {union}.

	(16 Feb 1995)

DES

	{Data Encryption Standard}

descent function

	If a {recursive} function is of the form

		f x = ... f (d x) ...

	then d is known as the descent function.

Descriptive Top-Level Specification

	(DTLS) A language used in {POSIX} and {TRUSIX}.

	(11 Nov 1994)

design

	<process> The approach that engineering (and some other)
	disciplines use to specify how to create or do something.  A
	successful design must satisfies a (perhaps informal)
	functional specification (do what it was designed to do);
	conforms to the limitations of the target medium (it is
	possible to implement); meets implicit or explicit
	requirements on performance and resource usage (it is
	efficient enough).

	A design may also have to satisfy restrictions on the design
	process itself, such as its length or cost, or the tools
	available for doing the design.

	In the {software life-cycle}, design follows {requirements
	analysis} and is followed by implementation.

	["Object-Oriented Analysis and Design with Applications", 2nd
	ed., Grady Booch].

	(08 Dec 1996)

design recovery

	<process> A subtask of {reverse engineering} in which domain
	knowledge, external information, and deduction of fuzzy
	reasoning are added to the observations of the subject system
	to identify meaningful higher level abstractions beyond those
	obtained directly by examining the system itself.

	In other words, design recovery aims to work out what a system
	or component was designed to do rather than just examining its
	subcomponents and their interrelationships.

	(08 Dec 1996)

Design System language

	J. Gaffney, Evans & Sutherland 1976.  Interpretive FORTH-like
	language for 3-D graphics databases.  Earliest forerunner of
	both Interpress and PostScript.  Mentioned in PostScript
	Language Reference Manual, Adobe Systems, A-W 1985.

desk check

	<programming> To {grovel} over hardcopy of {source code},
	mentally simulating the {control flow}; a method of catching
	bugs.  No longer common practice in this age of on-screen
	editing, fast compiles, and sophisticated debuggers - though
	some maintain stoutly that it ought to be.

	Compare {dry run}, {eyeball search}, {vdiff}, {vgrep}.

	(13 May 1996)

desktop database

	<file system> See {Macintosh file system}.

	(04 Mar 1996)

desktop manager

	A {user interface} to system services, usually {icon} and
	{menu} based like the {Macintosh} {Finder}, enabling the user
	to run {application program}s and use a {file system}
	without directly using the command language of the {operating
	system}.

	(07 Dec 1994)

desktop publishing

	<text, application> (DTP) Using computers to lay out text and
	graphics for printing in magazines, newsletters, brochures,
	etc.  A good DTP system will provide, among other things,
	facilities to fit text into irregular shapes in a variety of
	fonts and sizes.

	{(http://www.cs.purdue.edu/homes/gwp/dtp/dtp.html)}

	[Other features?  Usenet newsgroup?  Software?]

	(05 Jan 1995)

DESQview

	A system from {Quarterdeck Office Systems} implementing
	{multitasking} under {MS-DOS}.

destructor

	A function provided by a {class} in {C++} to delete an object.

DESY

	Deutsches Electronen Synchrotron Laboratory, Hamburg, Germany.

DETAB

	DEcision TABle.

	A {decision table} {COBOL} preprocessor written by A. Chapman
	in 1964.

	Versions: DETAB 65, DETAB X.

	[Sammet 1969, p. 315].

	(07 Dec 1994)

deterministic

	1. <probability> Describes a system whose time evolution can
	be predicted exactly.

	Contrast {probabilistic}.

	2. <algorithm> Describes an {algorithm} in which the correct
	next step depends only on the current state.  This contrasts
	with an algorithm involving {backtracking} where at each point
	there may be several possible actions and no way to chose
	between them except by trying each one and backtracking if it
	fails.

	(22 Sep 1995)

deterministic automaton

	<theory> A {finite-state automaton} in which the overall
	course of the computation is completely determined by the
	program, the starting state, and the initial inputs.  The
	class of problems solvable by such automata is the class P
	(see {polynomial-time algorithm}).

	(03 May 1996)

DETOL

	<language> {Directly Executable Test Oriented
	Language}.

	(29 Sep 1995)

development

	The process of analysis, design, coding and testing software.

Developmental Test and Evaluation

	<programming> (DT&E) Activity which focuses on the
	technological and engineering aspects of a system or piece of
	equipment.

	(13 May 1996)

Device Control

	<character> One of the four {ASCII} characters, {DC1}, {DC2},
	{DC3}, and {DC4}, once used to remotely control equipment
	(e.g. a {paper tape} reader) via electromagnetic switches.
	The characters were usually paired, DC1/DC3 turning one device
	on/off, and DC2/DC4 another.

	[Other examples of equipment?]

	(20 Aug 1996)

Device Control 1

	{Control-Q}

Device Control 2

	<character> (DC2) The {mnemonic} for {ASCII} character 18, one
	of the four {Device Control} characters.

	(28 Jun 1996)

Device Control 3

	{Control-S}

Device Control 4

	<character> (DC4) The {mnemonic} for {ASCII} character 20, one
	of the four {Device Control} characters.

	(28 Jun 1996)

device driver

	<operating system> {Software} to control a hardware component
	or {peripheral} device of a computer such as a {magnetic
	disk}, {magnetic tape} or printer.

	A device driver is responsible for accessing the hardware
	{register}s of the device and often includes an {interrupt
	handler} to service interrupts generated by the device.

	Device drivers often form part of the lowest level of the
	{operating system} {kernel}, with which they are linked when
	the kernel is built.  Some more recent systems have loadable
	device drivers which can be installed from files after the
	{operating system} is running.

	(27 Oct 1994)

device independent bitmap

	<graphics, file format> (DIB) An {image} format in which the
	sequence and depth of {pixels} in the file is not specifically
	related to their layout in any particular device.  This allows
	any device dependent bitmap (DDB) image to be converted to or
	DIB format without loss of information, and this can then
	later be converted to other DDB formats for, e.g., printing or
	display.  Rather than requiring converters from each DDB
	format to all other formats, only converters to and from DIB
	are needed.

	DIB images are normally transferred in {metafiles}, {BMP}
	files, and the {clipboard}.

	Transferring colour bitmaps from one device to another was not
	possible in versions of {Microsoft Windows} earlier than 3.0.
	{Application programs} can build DIB images without any
	interaction with Windows.  If Windows lacks a drawing
	primitive, the application can simulate it directly into the
	DIB instead of using the existing {graphics device interface}
	(GDI) primitives.  Unfortunately, under Windows versions 3.0
	and 3.1, {GDI} cannot perform output operations directly to a
	DIB.

	Conversion between DIB and DDB is performed by the {device
	driver}.  Where the driver does not have this facility, the
	conversion is performed by GDI but only in monochrome.  DIBs
	are slower to use than device dependent bitmaps due to the
	conversions required.

	(20 Sep 1996)

Devil Book

	<publication> "The Design and Implementation of the {4.3BSD}
	Unix Operating System", by Samuel J. Leffler, Marshall Kirk
	McKusick, Michael J. Karels, and John S. Quarterman
	(Addison-Wesley Publishers, 1989, ISBN 0-201-06196-1).

	The standard reference book on the internals of {BSD} {Unix}.
	So called because the cover has a picture depicting a little
	devil (a visual play on {daemon}) in sneakers, holding a
	pitchfork (referring to one of the characteristic features of
	Unix, the "{fork}(2)" {system call}).

	(03 Dec 1996)

/dev/null

	/dev-nuhl/ [The Unix null device, used as a {data sink}] A
	notional "black hole" in any information space being
	discussed, used, or referred to.  A controversial posting, for
	example, might end "Kudos to rasputin@kremlin.org, flames to
	/dev/null".  See {bit bucket}.

devo

	/dee'voh/ (In-house jargon at {Symbolics}) A person in a
	development group.  See also {doco} and {mango}.

	(04 Nov 1994)

DEX

	A cross between {Modula-2} and {C} by W. van Oortmerssen.

	{Amiga version 1.2
	(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff743/TurboDEX.lzh)}.

DFA

	Deterministic Finite-state Automaton.  See {Finite State
	Machine}.

DFC

	A {dataflow} language.

	["Data Flow Language DFC: Design and Implementation",
	S. Toshio et al, Systems and Computers in Japan, 20(6):1- 10
	(Jun 1989)].

DFD

	{Data Flow Diagram}

DFS

	1. <algorithm> {Depth-First Search}.

	2. <file system> {Distributed File System}.

DFT

	{discrete Fourier transform}

DGL

	1. Data Generation Language.  A tool for generating test data
	for hardware or software systems.

	2. Distributed {GL}.

DG/L

	1. Descriptive Geometry Language.  Early CAD/CAE language,
	used light pen.  "Interactive Graphic Consoles - Environment
	and Software", R.L.  Beckermeyer, Proc FJCC 37 (1970).

	2. Data General ca 1973-1974.  Derivative of ALGOL 60,
	developed from DG's ALGOL-5, used as the systems language
	under AOS and RDOS for the DG Eclipse family of computers.
	Replaced by PL/I in the early 80's.  Data General manual
	093-000229-01.

DHCP

	{Dynamic Host Configuration Protocol}

Dhrystone

	A short {synthetic benchmark} program by Reinhold Weicker
	<weicker.muc@sni.de>, <weicker.muc@sni-usa.com>, intended to
	be representative of system (integer) programming.  It is
	available in {ADA}, {Pascal} and {C}.

	The current version is Dhrystone 2.1.  The author says,
	"Relying on MIPS V1.1 (the result of V1.1) numbers can be
	hazardous to your professional health."

	Due to its small size, the memory system outside the {cache}
	is not tested.  Compilers can too easily optimise for
	Dhrystone.  String operations are somewhat over-represented.

	{Sources (ftp://netlib.att.com:/netlib/benchmark/)} (files
	dhry-ada.Z, dhry-c.Z and dhry-pascal.Z).

	{Results
	(http://performance.netlib.org/performance/html/dhrystone.data.col0.html)}
	and {(ftp://ftp.nosc.mil/pub/aburto/dhry.tbl)}.

	(14 Nov 1994)

DHSD

	{Duplex High Speed Data}

DIALOG

	1. A commercial bibliographic database and retrieval service
	from DIALOG Information Services.

	2. Interactive mathematics using a {graphics tablet} by
	Illinois Inst Tech, 1966.

	["DIALOG: A Conversational Programming System with a Graphical
	Orientation", S.H. Cameron et al, CACM 10:349-357 (1967).
	Sammet 1969, p.255-258].

dialup

	A temporary, as opposed to dedicated, connection between
	machines established over a telephone line using {modem}s.

DIAMAG

	An interactive extension of {ALGOL}.

	[Sammet 1969, p.195].

diameter

	The diameter of a {graph} is the maximum value of the minimum
	distance between any two nodes.

Diamond

	One of five pedagogical languages based on Markov algorithms,
	used in "Nonpareil, a Machine Level Machine Independent
	Language for the Study of Semantics", B. Higman, ULICS Intl
	Report No ICSI 170, U London (1968).  (cf. Brilliant,
	Nonpareil, Pearl[3], Ruby[2]).

DIANA

	Descriptive Intermediate Attributed Notation for Ada.

	A {de facto standard} intermediate language for {Ada}
	programs, developed by Goos and Wulf at CMU in Jan 1981.
	DIANA is an {attributed tree} representation, with an abstract
	interface defined in {Interface Description Language} (Nestor,
	Lamb and Wulf, CMU, 1981; Snodgrass(?), 1989(?)).  DIANA
	resulted from a merger of {AIDA} and {TCOL.Ada}.

	["DIANA - An Intermediate Language for Ada", G.T. Goos et al,
	LNCS 161, Springer 1983].

	(11 Nov 1994)

DIB

	{device independent bitmap}

DIBOL

	Digital Interactive Business Oriented Language.

	DEC, 1970.

	FORTRAN syntax with BCD arithmetic.

	Versions for PDP-8 and RT-11.

	ANSI X3.165-1988.

dickless workstation

	<abuse> Extremely pejorative hackerism for "{diskless
	workstation}".

	(28 Mar 1995)

DICOM

	<medical, standard> (From Digital Imaging and COmmunications
	in Medicine) A {standard} developed by ACR-NEMA (American
	College of Radiology - National Electrical Manufacturer's
	Association) for communications between medical imaging
	devices.  It conforms to the {ISO reference model} for network
	communications and incorporates {object-oriented} design
	concepts.

	(29 Mar 1995)

Dictionary APL

	Nickname for {Sharp APL}.

dictionary flame

	[{Usenet}] An attempt to sidetrack a debate away from issues
	by insisting on meanings for key terms that presuppose a
	desired conclusion or smuggle in an implicit premise.  A
	common tactic of people who prefer argument over definitions
	to disputes about reality.  Compare {spelling flame}.

Dictionary of Computing

	See {Free On-line Dictionary of Computing}.

diddle

	1. To work with or modify in a not particularly serious
	manner.  "I diddled 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}.

	2. The action or result of diddling.

	See also {tweak}, {twiddle}, {frob}.

	(31 Jan 1995)

die

	1. <jargon> {crash}.  Unlike {crash}, which is used primarily
	of hardware, this verb is used of both hardware and software.

	See also {go flatline}, {casters-up mode}.

	2. <electronics> An unpackaged {integrated circuit}.

	(28 May 1996)

die horribly

	<jargon> The software equivalent of {crash and burn}, and the
	preferred emphatic form of {die}.  "The converter choked on an
	FF in its input and died horribly".

	(28 May 1996)

diff

	/dif/ 1. A change listing, especially giving differences
	between (and additions to) different versions of a piece of
	source code or documentation (the term is often used in the
	plural "diffs").  "Send me your diffs for the Jargon File!"

	Compare {vdiff}.

	2. Specifically, such a listing produced by the diff {Unix}
	command, especially when used as input to the {patch} utility
	(which actually performs the modifications).  This is a common
	method of distributing patches and source updates.

	3. To compare (whether or not by use of automated tools on
	machine-readable files).

	See also {vdiff}, {mod}.

	(10 Feb 1995)

difference equation

	A relation between consecutive elements of a sequence.  The
	first difference is

		D u(n) = u(n+1) - u(n)

	where u(n) is the nth element of sequence u.  The second
	difference is

		D2 u(n) = D (D u(n))
			= (u(n+2) - u(n+1)) - (u(n+1) - u(n))
			= u(n+2) - 2u(n+1) + u(n)

	And so on.  A recurrence relation such as

		u(n+2) + a u(n+1) + b u(n) = 0

	can be converted to a difference equation (in this case, a
	second order linear difference equation):

		D2 u(n) + p D u(n) + q u(n) = 0

	and vice versa.  a, b, p, q are constants.

	(10 Feb 1995)

differential

	<hardware> {differential line}.

differential driver

	<hardware> An electronic device (commonly an {integrated
	circuit}), containing two amplifiers, used to drive a
	{differential line}.

	(14 Mar 1995)

differential line

	<hardware> A kind of electrical connection using two wires,
	one of which carries the normal signal (V) and the other
	carries an inverted version the signal (-V).  A differential
	amplifier at the reciever subtracts the inverted signal from
	the normal signal to yeild a signal proportional to V.  This
	subtraction is intended to cancel out any noise induced in the
	wires, on the assmption that the same level of noise will have
	been induced in both wires.  {Twisted pair} wiring is often
	used to try to ensure that this is the case.

	The two wires might be connected at the receiver to separate
	{analogue to digital converter}s and the subtraction performed
	digitally.

	The {RS-422} {serial line} {standard} specifies differential
	drivers and recievers, whereas the earlier {RS-232} standard
	does not.

	Oppose {single ended}.

	(08 Mar 1995)

digerati

	<jargon> (Or "digirati".  By analogy with "literati" - people
	knowledgeable about literature) People knowledgeable about
	computers, "computer literate".

	[Newsweek, March 1995?].

	(07 May 1995)

digest

	A periodical collection of messages which have been posted to
	a {newsgroup} or {mailing list}.  A digest is prepared by a
	{moderator} who selects articles from the group or list,
	formats them and adds a contents list.  The digest is then
	either mailed to an alternative {mailing list} or posted to an
	alternative newsgroup.

	Some {news reader}s and {electronic mail} programs provide
	commands to "undigestify" a digest, i.e. to split it up into
	individual articles which may then be read and saved or
	discarded separately.

Digex

	{Digital Express Group, Inc.}

DigiCash

	<company> A company, started in April 1990, which aims to
	develop and license products to support electronic payment
	methods including {chip card}, software only, and hybrid.

	{Ecash} is their trial form of software-only electronic money.

	{Home (http://www.digicash.com/home.html)}

	(10 Apr 1995)

Digicom

	{(ftp://ftp.whnet.com/pub/wolfgang)},
	{(ftp://softmodem.whnet.com/pub/wolfgang)},
	{(ftp://ftp.netcom.com/pub/wolfgang)}.
	{(http://ftp.whnet.com/wolfgang/)}.

	[Description?]

digirati

	{digerati}

digit

	An employee of Digital Equipment Corporation.  See also
	{VAX}, {VMS}, {PDP-10}, {TOPS-10}, {DEChead}, {double
	DECkers}, {field circus}.

Digital

	<company> Common abbreviation for {Digital Equipment
	Corporation}.

	(18 Dec 1995)

Digital Audio Tape

	<storage> (DAT) A format for storing music on magnetic tape,
	developed in the mid-1980s by {Sony} and {Philips}.  As
	digital music was popularized by {compact disc}s, the need for
	a digital recording format for the consumer existed.  The
	problem is that digital music contains over 5 megabytes of
	data per minute before error correction and supplementary
	information.  Before DAT, the only way to record digitally was
	to use a video or a reel-to-reel recorder.

	DAT uses a rotary-head (or "helical scan") format, where the
	read/write head spins diagonally across the tape like a video
	cassette recorder.  Thus the proper name is "R-DAT", where "R"
	for rotary distinguishes it from "S-DAT", a stationary design
	that did not make it out of the laboratories.  Studio
	reel-to-reel decks are able to use stationary heads because
	they can have wider tape and faster tape speeds, but for the
	desired small medium of DAT the rotary-head compromise was
	made despite the potential problems with more moving parts.

	Most DAT recorders appear to be a cross between a typical
	analog cassette deck and a {compact disc} player.  In addition
	to the music, one can record subcode information such as the
	number of the track (so one can jump between songs in a
	certain order) or absolute time (counted from the beginning of
	the tape).  The tape speed is much faster than a regular deck
	(one can rewind 30 minutes of music in 10-25 seconds), though
	not quite as fast as a compact disc player.  DAT decks have
	both analog and digital inputs and outputs.

	DAT tapes have only one recordable side and can be as long 120
	minutes.

	DAT defines the following recording modes with the following
	performance specifications...

	   2 channel 48KHz Sample rate, 16 bit linear encoding
	   120 min max.
	   Frequency Response 2-22KHz (+-0.5dB)
	   SN = 93 dB   DR = 93 dB

	   2 channel 44.1Khz Sample rate, 16 bit linear encoding
	   120 min max
	   Frequency Response 2-22KHz (+-0.5dB)
	   SN = 93 dB   DR = 93 dB

	   2 channel 32KHz Sample Rate, 12 bit non-linear encoding
	   240 min max
	   Frequency Response 2-14.5KHz (+-0.5dB)
	   SN = 92 dB   DR = 92 dB

	   4 channel 32KHz (not supported by any deck)

	DAT is also used for recording computer data.  Most computer
	DAT recorders use DDS format which is the same as audio DAT
	but they usually have completely different connectors and it
	is not always possible to read tapes from one system on the
	other.  Computer tapes can be used in audio machines but are
	usually more expensive.  You can record for two minutes on
	each metre of tape.

	(09 Feb 1995)

digital carrier

	<hardware, communications> A medium which can carry {digital}
	signals; broadly equivalent to the {physical layer} of the
	{ISO seven layer model} of networks.  Carriers can be
	described as {baseband} or {broadband}.  A baseband carrier
	can include direct current (DC), whereas broadband carriers
	are modulated by various methods into frequency bands which do
	not include DC.

	Sometimes a {modem} (modulator/demodulator) or {codec}
	(coder/decoder) combines several channels on one transmission
	path.  The combining of channels is called {multiplexing}, and
	their separation is called demultiplexing, independent of
	whether a modem or codec bank is used.  Modems can be
	associated with {frequency division multiplexing} (FDM) and
	codecs with {time division multiplexing} (TDM) though this
	grouping of concepts is somewhat arbitrary.

	If the medium of a carrier is copper telephone wire, the
	circuit may be called {T1}, {T3}, etc. as these designations
	originally described such.

	T1 carriers used a restored polar line coding scheme which
	allowed a baseband signal to be transported as broadband and
	restored to baseband at the receiver.  T1 is not used in this
	sense today, and indeed it is often confused with the {DS1}
	signal carried.

	(31 Mar 1996)

Digital Data Service

	<communications> (DDS) The class of service offered by
	telecommunications companies for transmitting digital data as
	opposed to voice.

	(28 Feb 1995)

Digital Equipment Computer Users Society

	(DECUS) A world wide organisation of information technology
	professionals interested in the products, services, and
	technologies of {Digital Equipment Corporation} and related
	vendors.  Membership in the US chapter is free and provides
	participants with the means to enhance their professional
	development, forums for technical training, mechanisms for
	obtaining up-to-date information, advocacy programs, and
	opportunities for informal disclosure and interaction with
	professional colleagues of like interest.

	Address: 334 South Street, SHR3-1/T25, Shrewsbury, MA
	01545-4195, USA.

	Telephone: +1 (800) DECUS55.

	(08 Feb 1995)

Digital Equipment Corporation

	<company> (DEC) A computer manufacturer and software vendor.
	Before the {killer micro} revolution of the late 1980s,
	hackerdom was closely symbiotic with DEC's pioneering
	{time-sharing} machines.  The first of the group of hacker
	cultures nucleated around the {PDP-1} (see {TMRC}).
	Subsequently, the {PDP-6}, {PDP-10}, {PDP-20}, {PDP-11} and
	{VAX} were all foci of large and important hackerdoms, and DEC
	machines long dominated the {ARPANET} and {Internet} machine
	population.  DEC was the technological leader of the
	minicomputer era (roughly 1967 to 1987), but its failure to
	embrace {microcomputer}s and {Unix} early cost it heavily in
	profits and prestige after {silicon} got cheap.  However, the
	{microprocessor} design tradition owes a heavy debt to the
	{PDP-11} {instruction set}, and every one of the major
	general-purpose microcomputer {operating system}s so far
	(CP/M, {MS-DOS}, {Unix}, {OS/2}) were either genetically
	descended from a DEC OS, or incubated on DEC hardware or both.
	Accordingly, DEC is still regarded with a certain wry
	affection even among many hackers too young to have grown up
	on DEC machines.  The contrast with {IBM} is instructive.

	Quarterly sales $3923M, profits -$1746M (Aug 1994).

	{(http://www.dec.com/info.html)}

	(07 Dec 1994)

Digital Equipment Corporation Network

	(DECNET) Ethernet software used on DEC machines, e.g. Vax.

Digital Express Group, Inc.

	(Digex) The largest {Internet provider} in the Washington
	metropolitan area with {POP}s in Maryland, Virginia, New
	Jersey, New York and California.

	{(http://www.digex.net)}

	(25 Oct 1994)

Digital Lempel Ziv 1

	(DLZ1) The {compression} {algorithm} used on {Digital Linear
	Tape}.

	[Details?]

	(22 Feb 1995)

Digital Library Initiative

	A project to research digital libraries which aims to provide
	real collections to real users (high school students,
	University researchers and students, users in public
	libraries).  The project is sponsored jointly by three US
	federal funding agencies, led by the National Science
	Foundation.

	The {University of Michigan}, one of the six sites selected in
	1994 to collaborate, will provide collections on earth and
	space sciences.  The project, known there as the University of
	Michigan Digital Library Project (UMDL), is a large,
	multi-year project headed by Daniel Atkins, Dean of the School
	of Information and Library Studies.

	{UMDL (http://http2.sils.umich.edu/UMDL/HomePage.html)}

	(23 Feb 1995)

Digital Linear Tape

	(DLT) A {magnetic tape} drive format developed by {DEC}, based
	on the {Digital Lempel Ziv 1} (DLZ1) {compression}
	{algorithm}.  DLT drives are capable of 2.5 megabytes per
	second transfer rates with compression, and 1.25M bytes/s
	uncompressed.  DEC's tests have achieved about 1 gigabyte in
	12 minutes.  One of the available drives has a 10GB raw/20GB
	compressed capacity on a single cartridge.

	The {Lempel-Ziv compression} type used maps variable length
	input strings to variable length output symbols.  During
	compression, the algorithm builds a dictionary of strings
	which is accessed by means of a {hash table}.  Compression
	occurs when input data matches a string in the table and is
	replaced with the output symbol.

	(22 Feb 1995)

Digital Multimeter

	<electronics> (DMM) A peice of test equipment used for
	measuring voltage, current, resistance, and possibly other
	electircal quantities and displaying the value in number form.

	(12 Feb 1997)

Digital Research

	<company> The company which developed {CP/M}, the {operating
	system} used on many of the first generation 8 bit
	{microprocessor}-based {personal computer}s.

	Address: Santa Cruz, CA, USA.

	[Did they do DR-DOS?]

	(01 Feb 1995)

digital service unit

	<communications> (DSU or "data service unit") A device used in
	digital transmission for connecting a CSU (Channel Service
	Unit) to {Data Terminal Equipment} (a terminal or computer),
	in the same way that a {modem} is used for connection to an
	analogue medium.

	A DSU provides a standard interface to a user's terminal which
	is compatible with {modem}s and handles such functions as
	signal translation, regeneration, reformatting, and timing.
	The transmitting portion of the DSU processeses the customers'
	signal into bipolar pulses suitable for transmission over the
	digital facility.  The receiving portion of the DSU is used
	both to extract timing information and to regenerate mark and
	space information from the received bipolar signal.

	(30 Jan 1995)

Digital Signal Processing

	(DSP) Computer manipulation of analog signals (commonly sound
	or {image}) which have been converted to digital form
	(sampled).

	(07 Dec 1994)

digital signature

	Extra data appended to a message which identifies and
	authenticates the sender and message data using {public-key
	encryption}.

	The sender uses a {one-way hash function} to generate a
	hash-code of about 32 bits from the message data.  He then
	encrypts the hash-code with his private key.  The receiver
	recomputes the hash-code from the data and decrypts the
	received hash with the sender's public key.  If the two
	hash-codes are equal, the receiver can be sure that data has
	not been corrupted and that it came from the given sender.

	(07 Feb 1995)

Digital Signature Standard

	<cryptography, standard> The {NIST}'s {standard} for {digital
	signatures} (authenticating both a message and the signer)
	that was first announced in 1991.  It is based on an
	{algorithm} using {discrete logarithms}, which is a variant of
	the {Elgamal algorithm} with Schnorr's improvements.  DSS's
	security is currently considered very strong - comparable to
	{RSA}.  It is estimated that DSS's 1024 bit keys would take
	1.4E16 {MIPS}-years to crack.

	(16 Nov 1995)

Digital Simulation Language

	<language> (DSL) Extensions to {FORTRAN} to simulate {analog
	computer} functions.  Version DSL/90 ran on the {IBM 7090}.

	["DSL/90 - A Digital Simulation Program for Continuous System
	Modelling", Proc SJCC 28, AFIPS, Spring 1966].

	[Sammet 1969, p 632].

	(13 Oct 1996)

Digital Simultaneous Voice and Data

	<communications> (DSVD) A technique for multiplexing
	compressed speech with digital data for transmission over a
	normal telephone line.

	[How does it work?  References?]

	(01 Dec 1996)

DIGITAL Standard MUMPS

	(DSM) {DEC}'s version of {MUMPS}.

	(10 Jan 1995)

Digital Subscriber Line

	<communications, protocol> (DSL, or "Digital Subscriber Loop",
	HDSL, High-Speed DSL) A {digital} {telecommunications}
	{protocol} for use over existing {copper} telephone lines, as
	opposed to {fibre optics}.

	See also {ADSL}.

	["Data Cooks, But Will Vendors Get Burned?", "Supercomm
	Spotlight On ADSL" & "Lucent Sells Paradine", Wilson & Carol,
	Inter@ctive Week Vol.  3 #13, p1 & 6, June 24 1996].

	(13 Oct 1996)

Digital Subscriber Loop

	{Digital Subscriber Line}

Digital Versatile Disc

	{Digital Video Disc}

Digital Video Disc

	<storage> (DVD) An optical storage medium with improved
	capacity and bandwidth over the {Compact Disc}.  DVD, like CD,
	is initally marketed for entertainment.  It will be available
	for computer users in late 1996.

	As an entertainment product DVD will be used for full length
	movies with up to 133 minutes of high quality video ({MPEG-2}
	format) and audio.

	The first DVD drives for computers will be read-only drives
	("DVD-ROM").  These will provide over 7 times the storage
	capacity of CD-ROM (4.7GBytes).  DVD-ROM drives will read
	existing CD-ROMs and music CDs and will be compatible with
	installed sound and video boards.  Additionally, the DVD-ROM
	drive will read DVD movie titles using an advanced (MPEG-2)
	video board, required to decode the high resolution video
	format.

	DVD-ROM drives will ultimately be available from many
	manufacturers.  The first drives, using a single-layer disc of
	4.7GB, will be available during the second half of 1996 from
	several manufacturers including {Toshiba}, {Philips}, {Sony}
	and {Hitachi}.  In 1997, dual-layer discs are expected to
	increase the disc capacity to 8.5GB.  Double-sided, dual-layer
	discs will eventually increase the capacity to 17GB.

	Write-once DVD-R ("recordable") drives will record a 3.9GB
	DVD-R disc that can be read on a DVD-ROM drive.  The first
	DVD-R drive is expected by mid 1997.

	By the end of 1997, the rewritable DVD-RAM (by false analogy
	with {random access memory}) drive will become available.
	DVD-RAM drives will read and write to a 2.6GB DVD-RAM disc,
	read and write-once to a 3.9GB DVD-R disc, and read a
	4.7GB/8.5GB DVD-ROM disc.  Also, it is expected that a DVD-RAM
	disc will be readable on both the DVD-R and DVD-ROM drives.

	{Background (http://www.tacmar.com/dvd_background.htm)}.
	{RCA home (http://www.imagematrix.com/DVD/home.html)}.

	(17 Nov 1996)

Dijkstra's guarded command language

	<language> A language invented by {Edsger Dijkstra} ca. 1974.
	It introduced the concept of {guards} and {committed choice
	nondeterminism} ({don't care nondeterminism}).  Described and
	used in ["A Discipline of Programming", E. Dijkstra, P-H
	1976].

	(07 Dec 1994)

dike

	To remove or disable a portion of something, as a wire from a
	computer or a subroutine from a program.  A standard slogan is
	"When in doubt, dike it out".  (The implication is that it is
	usually more effective to attack software problems by reducing
	complexity than by increasing it.)  The word "dikes" is widely
	used among mechanics and engineers to mean "diagonal cutters",
	especially the heavy-duty metal-cutting version, but may also
	refer to a kind of wire-cutters used by electronics
	technicians.  To "dike something out" means to use such
	cutters to remove something.  Indeed, the TMRC Dictionary
	defined dike as "to attack with dikes".  Among hackers this
	term has been metaphorically extended to informational objects
	such as sections of code.

DIL

	{Dual In-Line Package}

Dilbert

	<recreation> A cartoon computer worker drawn by Scott Adams
	<scottadams@aol.com>, who works in Silicon Valley.  The
	cartoon became so popular he left his day job.  The cartoon
	satirises typical corporate life, especially that which
	revolves around computers.

	{Home (http://www.unitedmedia.com/comics/dilbert/)}.
	{Latest cartoons
	(http://www.unitedmedia.com/comics/dilbert/archive/)}.

	(11 Oct 1996)

DIMATE

	<language> Depot Installed Maintenance Automatic Test
	Equipment.  A language for programming {automatic test
	equipment}.  It Runs on the {RCA 301}.

	["A Simple User-Oriented Source Language for Programming
	Automatic Test Equipment", B.H. Scheff, CACM 9(4) (Apr 1966)].

	[Sammet 1969, p. 647].

	(07 Jan 1996)

DIMM

	<storage> {Dual In-Line Memory Module}.

	(07 Jan 1996)

DIN

	Deutsche Institut fuer Normung.  The German standardisation
	body, a member of {ISO}.

DIN-8

	<hardware> An 8-pin round connector, sometimes used for
	{RS-232} serial communication when space is restricted, such
	as on {laptops}.

	(08 Dec 1996)

ding

	1. Synonym for {feep}.  Usage: rare among hackers, but
	commoner in the {Real World}.

	2. "dinged": What happens when someone in authority gives you
	a minor bitching about something, especially something
	trivial.  "I was dinged for having a messy desk."

dink

	/dink/ Said of a machine that has the {bitty box} nature; a
	machine too small to be worth bothering with - sometimes the
	system you're currently forced to work on.  First heard from
	an {MIT} hacker working on a {CP/M} system with 64K, in
	reference to any {6502} system, then from fans of 32 bit
	architectures about 16 bit machines.  "GNUMACS will never work
	on that dink machine."  Probably derived from mainstream
	"dinky", which isn't sufficiently pejorative.

	See {macdink}.

	(31 Oct 1994)

DinnerBell

	An {object-oriented} {dataflow} language with {single
	assignment}.

	["Object-Oriented Load Distribution in DinnerBell", S. Kono
	<kono@csl.sony.co.jp> et al, in TOOLS Pacific 90].

	(31 Oct 1994)

DINO

	{Data parallel} superset of {C}.

	{(ftp://ftp.cs.colorado.edu/pub/cs/distribs/dino/)}

	["The DINO Parallel Programming Language", M. Rosing et al, J
	Parallel Dist Comp 13(9):30-42 (Sep 1991)].

	["DINO Parallel Programming Language", M. Rosing et al,
	CU-CS-457-90, U Colorado, April 1990].

dinosaur

	1. Any hardware requiring raised flooring and special power.
	Used especially of old {minicomputer}s and {mainframe}s, in
	contrast with newer {microprocessor}-based machines.

	In a famous quote from the 1988 Unix EXPO, {Bill Joy} compared
	the liquid-cooled mainframe in the massive {IBM} display with
	a grazing dinosaur "with a truck outside pumping its bodily
	fluids through it".  IBM was not amused.

	Compare {big iron}; see also {dinosaurs mating}.

	2. [IBM] A very conservative user; a {zipperhead}.

dinosaur pen

	A traditional {mainframe} computer room complete with raised
	flooring, special power, its own ultra-heavy-duty air
	conditioning, and a side order of Halon fire extinguishers.

	See {boa}.

	(17 Nov 1995)

dinosaurs mating

	<humour> The activity said to occur when yet another {big
	iron} merger or buy-out occurs; reflects a perception by
	hackers that these signal another stage in the long, slow
	dying of the {mainframe} industry.  Also described as
	"elephants mating": lots of noise and action at a high level,
	with an eventual outcome in the somewhat distant future.

	In its glory days of the 1960s, it was "{IBM} and the Seven
	Dwarves": {Burroughs}, {Control Data}, {General Electric},
	{Honeywell}, {NCR}, {RCA}, and {Univac}.  Early on, RCA sold
	out to Univac and GE also sold out, and it was "IBM and the
	Bunch" (Burroughs, Univac, NCR, Control Data, and Honeywell)
	for a while.  Honeywell was bought out by Bull.

	Univac in turn merged with {Sperry} to form Sperry/Univac,
	which was later merged (although the employees of Sperry
	called it a hostile takeover) with Burroughs to form {Unisys}
	(in 1984 - this was when the phrase "dinosaurs mating" was
	coined); and in 1991 {AT&T} absorbed NCR, only to spit it out
	again in 1996.  Unisys later bought {Convergent Technologies}
	(among others).

	More such earth-shaking unions of doomed giants seem
	inevitable.

	[More dates?]

	(18 Feb 1996)

diode

	<hardware, electronics> A {semiconductor} device which
	conducts electric current run in one direction only.  This is
	the simplest kind of semiconductor device, it has two
	terminals and a single PN junction.  One diode can be used as
	a {half-wave rectifier} or four as a {full-wave rectifier}.

	(14 Mar 1995)

DIP

	1. {Dual In-line Package}.

	2. {Document Image Processing}.

Direct-Access Storage Device

	<hardware> (DASD) {IBM} {mainframe} terminology for a {disk
	drive}, in contrast with a tape drive which is a sequential
	access device.

	(01 Mar 1995)

Direct Client to Client Protocol

	<networking> (DCC) An {IRC} {protocol} created to allow users
	to chat privately and to send and receive files directly
	instead of having to go thorugh the IRC servers.  DCC protects
	users from being monitored by IRC Server operators that have
	enabled conversation logging.  It also allows much more
	efficient use of available {bandwidth} as the data does not
	need to be {broadcast} all over the world just to reach a
	specific user.

	The available DCC commands include DCC CHAT (direct user to
	user chat), DCC SEND (direct user to user file send) and DCC
	GET (file acknowledgement from a receiver).

	(12 Apr 1995)

Direct Connection

	A re-seller of {Internet} connections to the {PIPEX}
	{backbone}.

directed acyclic graph

	(DAG) A {directed graph} containing no cycles.  This means
	that if there is a route from node A to node B then there is
	no way back.

	(07 Dec 1994)

directed graph

	(digraph) A graph with one-way edges.

	See also {directed acyclic graph}.

	(11 Nov 1994)

directed set

	A set X is directed under some relation, <= (less than or
	equal), if it is non-empty and if for any two elements x and y
	there exists an element z such that x <= z and y <= z.
	I.e. all pairs have an {upper bound}.

	(11 Nov 1994)

directional coupler

	<communications> (tap) A {passive} device used in {cable}
	systems to divide and combine radio frequency signals.  A
	directional coupler has at least three ports: line in, line
	out, and the tap.  The signal passes between line in and line
	out ports with loss referred to as the {insertion loss}.  A
	small portion of the signal power applied to the line in port
	passes to the tap port.  A signal applied to the tap port is
	passed to the line in port less the tap attenuation value.
	The tap signals are isolated from the line out port to prevent
	reflections.  A signal applied to the line out port passes to
	the line in port and is isolated from the tap port.  Some
	devices provide more than one tap output line (multi-taps).

	(23 Dec 1995)

Directly Executable Test Oriented Language

	<language> (DETOL) A simple language to control a specific
	type of test equipment.

	["Improved DETOL Programming Manual for the Series 5500
	Automatic Test System", Pub. 5500-31-0-1, AAI Corporation  Sep
	1973].

	(29 Sep 1995)

direct mapped cache

	<architecture> A {cache} where the cache location for a given
	address is determined from the middle address bits.  If the
	{cache line} size is 2^n then the bottom n address bits
	correspond to an offset within a cache entry.  If the cache
	can hold 2^m entries then the next m address bits give the
	cache location.  The remaining top address bits are stored as
	a "tag" along with the entry.

	In this scheme, there is no choice of which block to flush on
	a cache miss since there is only one place for any block to
	go.  This simple scheme has the disadvantage that if the
	program alternately accesses different addresses which map to
	the same cache location then it will suffer a cache miss on
	every access to these locations.  This kind of {cache
	conflict} is quite likely on a multi-processor.  See also
	{fully associative cache}, {set associative cache}.

Direct Memory Access

	<architecture> (DMA) A facility of some architectures which
	allows a peripheral to read and write memory without
	intervention by the CPU.  DMA is a limited form of {bus
	master}ing.

	(23 Aug 1996)

directory

	<file system> A node in a {hierarchical file system}.

	(21 Nov 1996)

Directory Access Protocol

	X.500 protocol used for communication between a Directory User
	Agent and a Directory System Agent.

Directory System Agent

	(DSA) The software that provides the {X.500} Directory Service
	for a portion of the directory information base.  Generally,
	each DSA is responsible for the directory information for a
	single organisation or organisational unit.

	(07 Dec 1994)

Directory User Agent

	(DUA) The software that accesses the {X.500} Directory Service
	on behalf of the directory user.  The directory user may be a
	person or another software element.

	(07 Dec 1994)

DirectX

	<programming, hardware> A new {Microsoft} programming
	interface {standard} for {Windows 95}.  DirectX gives (games)
	programmers a standard way to gain direct access to enhanced
	hardware features under Windows 95 instead of going via the
	Windows 95 {GDI}.  Some DirectX code runs faster than the
	equivalent under {MS DOS}.

	DirectX promises performance improvements for graphics, sound,
	video, 3D, and network capabilites of games, but only where
	both hardware and software support DirectX.

	DirectX 2 introduced the Direct3D interface.  The current
	version (1996) is DirectX 3.

	{(http://www.nfinity.com/~swhalen/directx.html)}.

	(27 Dec 1996)

Dirt

	Design In Real Time.

	A user interface builder for the {X Window System} by
	R. Hesketh.

	(07 Dec 1994)

dirtball

	({XEROX PARC}) A small, perhaps struggling outsider; not in
	the major or even the minor leagues.  For example, "Xerox is
	not a dirtball company".

	Outsiders often observe in the PARC culture an institutional
	arrogance which usage of this term exemplifies.  The
	brilliance and scope of PARC's contributions to computer
	science have been such that this superior attitude is not much
	resented.  - ESR

	(07 Dec 1994)

dirty power

	Electrical mains voltage that is unfriendly to the delicate
	innards of computers.  Spikes, {drop-outs}, average voltage
	significantly higher or lower than nominal, or just plain
	noise can all cause problems of varying subtlety and severity
	(these are collectively known as {power hit}s).

DISA

	{Defense Information Systems Agency}

disc

	<storage, spelling> British spelling of "{disk}", normally
	only used for "{compact disc}".

	(30 Jul 1995)

disclaimer

	<networking> Statement ritually appended to many {Usenet}
	postings (sometimes automatically, by the posting software)
	reiterating the fact (which should be obvious, but is easily
	forgotten) that the article reflects its author's opinions and
	not necessarily those of the organisation running the computer
	through which the article entered the network.

	(30 Jul 1995)

Discordianism

	<recreation> /dis-kor'di-*n-ism/ The veneration of {Eris},
	also known as Discordia; widely popular among hackers.
	Discordianism was popularised by Robert Shea and Robert Anton
	Wilson's novel "Illuminatus!" as a sort of self-subverting
	Dada-Zen for Westerners - it should on no account be taken
	seriously but is far more serious than most jokes.  Consider,
	for example, the Fifth Commandment of the Pentabarf, from
	"Principia Discordia": "A Discordian is Prohibited of
	Believing What he Reads."  Discordianism is usually connected
	with an elaborate conspiracy theory/joke involving
	millennia-long warfare between the anarcho-surrealist
	partisans of Eris and a malevolent, authoritarian secret
	society called the Illuminati.

	{Joke religions
	(http://www.goucher.edu/~jlasser/hairboys/religion.html)}.

	See {Religion}, {Church of the SubGenius}, and {ha ha only
	serious}.

	(12 Apr 1995)

discrete cosine transform

	<mathematics> (DCT) A technique for expressing a waveform as a
	weighted sum of cosines.

	The DCT is central to many kinds of {signal processing},
	especially video {compression}.

	Given data A(i), where i is an integer in the range 0 to N-1,
	the forward DCT (which would be used e.g. by an encoder) is:

	 B(k) =    sum    A(i) cos((pi k/N) (2 i + 1)/2)
	        i=0 to N-1

	B(k) is defined for all values of the frequency-space variable
	k, but we only care about integer k in the range 0 to N-1.
	The inverse DCT (which would be used e.g. by a decoder) is:

	 AA(i)=    sum    B(k) (2-delta(k-0)) cos((pi k/N)(2 i + 1)/2)
	        k=0 to N-1

	where delta(k) is the {Kronecker delta}.

	The main difference between this and a {discrete Fourier
	transform} (DFT) is that the DFT traditionally assumes that
	the data A(i) is periodically continued with a period of N,
	whereas the DCT assumes that the data is continued with its
	mirror image, then periodically continued with a period of 2N.

	Mathematically, this transform pair is exact, i.e. AA(i) ==
	A(i), resulting in {lossless coding}; only when some of the
	coefficients are approximated does compression occur.

	There exist fast DCT {algorithms} in analogy to the {Fast
	Fourier Transform}.

	(10 Mar 1997)

discrete Fourier transform

	<mathematics> (DFT) A {Fourier transform}, specialized to the
	case where the {abscissas} are integers.

	The DFT is central to many kinds of {signal processing},
	including the analysis and {compression} of video and {sound}
	information.

	A common implementation of the DFT is the {Fast Fourier
	Transform} (FFT).

	See also {discrete cosine transform}.

	(10 Mar 1997)

discrete preorder

	<mathematics> A {preorder} is said to be discrete if any two
	of its elements are {incomparable}.

	(21 Sep 1995)

discriminated union

	<theory> The discriminated union of two sets A and B is

		A + B = {(inA, a) | a in A} U {(inB, b)| b in B}

	where inA and inB are arbitrary tags which specify which
	summand an element originates from.

	A {type} (especially an {algebraic data type}) might be
	described as a discriminated union if it is a {sum type} whose
	objects consist of a tag to say which part of the union they
	belong to and a value of the corresponding type.

	(25 Apr 1995)

Disiple

	A {DSP} language.

	["A Compiler that Easily Retargets High Level Language
	Programs for Different Signal Processing Architectures", J.E.
	Peters & S.M. Dunn, Proc ICASSP 89, pp.1103-1106, (May 1989)].

disjoint union

	In {domain theory}, a union (or sum) which results in a domain
	without a least element.

Disjunctive Normal Form

	(DNF) A logical formula consisting of a {disjunction} of
	{conjunction}s where no conjunction contains a disjunction.
	E.g. the DNF of (A or B) and C is (A and C) or (B and C).

	(07 Dec 1994)

disk

	<storage> 1. {magnetic disk}.

	2. {compact disc}.

	3. {optical disk}.

	Note: the american spelling, "disk", is normal for most
	computer disks whereas "compact disc", having come to
	computers via the audio world, are correctly spelled with a
	"c", indeed, this spelling is part of the CD standard.

	(30 Jul 1995)

disk drive

	<hardware> A {peripheral} device that reads and writes {floppy
	disk}s or {hard disk}s.  The drive contains a motor to rotate
	the disk at a constant rate and one or more read/write heads
	which are positioned over the desired {track} by a servo
	mechanism.  It also contains the electronics to amplify the
	signals from the heads to normal digital logic levels and vice
	versa.

	The disks may be removable; floppy disks always are, removable
	hard disks were common on {mainframe}s and {minicomputer}s but
	less so on {microcomputer}s.

	A {CD-ROM} drive is not usually referred to as a disk drive.

	See also {Integrated Drive Electronics}.

	(14 Mar 1995)

disk duplexing

	<hardware, storage> A variation on {disk mirroring} where, as
	well as redundant {disk drives}, a second {disk controller} or
	{host adapter} is also present.

	(22 Feb 1996)

diskette

	{floppy disk}

disk farm

	<jargon> (Or "{laundromat}") A large room or rooms filled with
	disk drives (especially {washing machine}s).

	(27 Mar 1995)

diskless workstation

	<computer, networking> A {personal computer} or {workstation}
	which has neither a {hard disk} nor {floppy disk} drive and
	which performs all file access via a {local area network}
	connection to a {file server}.  The lowest level {bootstrap}
	code is stored in {non-volatile} memory.  This uses a simple
	{protocol} such as {BOOTP} to request and {download} more
	sophisticated boot code and eventually, the {operating
	system}.

	The archtypal product was the {3Station} developed by Bob
	Metcalfe at {3Com}.  Another example was the {Sun} 3/50.

	Diskless workstations are ideal when many users are running
	the same application.  They are small, quiet, more reliable
	than products with disks, and help prevent both the theft of
	data and the introduction of viruses since the software and
	data available on them is controlled by the network
	administrator or system administrator.  They do however rely
	on a server which becomes a disadvantage if it is heavily
	loaded or {down}.

	See also {breath-of-life packet}.

	(28 Mar 1995)

disk mirroring

	<hardware, storage> Use of one or more {mirrors} of a {hard
	disk}.

	(17 Feb 1996)

Disk Operating System

	<operating system> (DOS) The name of a number of {operating
	system}s which include facilities for storing files on disk.
	Such a system must handle physical disk I/O, the mapping of
	file names to disk addresses and protection of files from
	unauthorised access (in a {multi-user} system).  Ideally, it
	will present a uniform interface to different kinds of storage
	device such as {floppy disk}s, {hard disk}s and {magnetic
	tape} drives.  It may also provide some kind of locking to
	prevent unintentional simultaneous access by two processes to
	the same file (or record).

disk striping

	{data striping}

Dislang

	<language>

	["Dislang: A Distributed Programming Language/System", C. Li
	et al, Proc 2nd Intl Conf Distrib Comp Sys, IEEE 1981,
	pp. 162-172].

	(10 May 1995)

display

	1. <hardware> {monitor}.

	2. <language> A vector of pointers to {activation record}s.
	The Nth element points to the activation record containing
	variables declared at {lexical depth} N.  This allows faster
	access to variables from outer {scope}s than the alternative
	of linked activation records (but most variable accesses are
	either local or global or occasionally to the immediately
	enclosing scope).  Displays were used in some {ALGOL}
	implementations.

	(22 Feb 1996)

display hack

	<graphics> A program with the same approximate purpose as a
	kaleidoscope: to make pretty pictures.  Famous display hacks
	include {munching squares}, {smoking clover}, the {BSD Unix}
	"rain(6)" program, "worms(6)" on miscellaneous Unixes, and the
	{X} "kaleid(1)" program.  Display hacks can also be
	implemented without programming by creating text files
	containing numerous escape sequences for interpretation by a
	video terminal; one notable example displayed, on any VT100, a
	Christmas tree with twinkling lights and a toy train circling
	its base.  The {hack value} of a display hack is proportional
	to the aesthetic value of the images times the cleverness of
	the algorithm divided by the size of the code.  Synonym
	{psychedelicware}.

	(10 May 1995)

Display PostScript

	An extended form of {PostScript} permitting its interactive
	use with {bitmap display}s.

display standard

	<hardware> {IBM} and others have introduced a bewildering
	plethora of graphics and text display {standard}s for {IBM
	PC}s.  The standards are mostly implemented by plugging in a
	video display board (or "{graphics adaptor}") and connecting
	the appropriate monitor to it.  Each new standard subsumes its
	predecessors.  For example, an {EGA} board has {CGA} and {MDA}
	capability.

	With the {PS/2}, IBM introduced the {VGA} standard and built
	it into the main system board ({motherboard}).	VGA is also
	available as a plug-in board for PCs from third-party vendors.
	Also with the PS/2, IBM introduced the {8514} high-resolution
	graphics standard.  An 8514 adaptor board plugs into the PS/2,
	providing a dual-monitor capability.  The 8514 will be built
	into future models of the PS/2 line, as well.

	Graphics software has to support the major IBM graphics
	standards and many non-IBM, proprietary standards for
	high-resolution displays.  Either software vendors provide
	{display driver}s or display vendors provide drivers for the
	software package.  In either case, switching software or
	switching display systems is fraught with compatibility
	problems.

	 Display    Resolution Colours Sponsor	Systems

	 MDA	    720x350 T	  2   	IBM     PC
	 CGA	    320x200	  4   	IBM     PC
	 EGA	    640x350	 16   	IBM     PC
	 PGA	    640x480	256   	IBM     PC

	 Hercules   729x348	  2   non-IBM	PC

	 MCGA	    720x400 T
		    320x200 G	256		PS/2

	 VGA	    720x400 T
		    640x480 G	 16

	 SVGA	    800x600	 16	VESA

	 8514	   1024x768	256

	T: text,  G: graphics.

	More colours are available from third-party vendors for some
	display types.

	See also {MDA}, {CGA}, {EGA}, {PGA}, {Hercules}, {MCGA},
	{VGA}, {SVGA}, {8514}, {VESA}.

	(10 May 1995)

display standards

	{display standard}

display terminal

	{video display terminal}

Dissociated Press

	[Play on "Associated Press"; perhaps inspired by a reference
	in the 1949 Bugs Bunny cartoon "What's Up, Doc?"]  An
	algorithm for transforming any text into potentially humorous
	garbage even more efficiently than by passing it through a
	{marketroid}.  The algorithm starts by printing any N
	consecutive words (or letters) in the text.  Then at every
	step it searches for any random occurrence in the original
	text of the last N words (or letters) already printed and then
	prints the next word or letter.  {EMACS} has a handy command
	for this.  Here is a short example of word-based Dissociated
	Press applied to an earlier version of the {Jargon File}:

	wart:  A small, crocky {feature} that sticks out of
	an array (C has no checks for this).  This is relatively
	benign and easy to spot if the phrase is bent so as to be
	not worth paying attention to the medium in question.

	Here is a short example of letter-based Dissociated Press
	applied to the same source:

	window sysIWYG:  A bit was named aften /bee't*/ prefer
	to use the other guy's re, especially in every cast a
	chuckle on neithout getting into useful informash speech
	makes removing a featuring a move or usage actual
	abstractionsidered interj. Indeed spectace logic or problem!

	A hackish idle pastime is to apply letter-based Dissociated
	Press to a random body of text and {vgrep} the output in hopes
	of finding an interesting new word.  (In the preceding
	example, "window sysIWYG" and "informash" show some promise.)
	Iterated applications of Dissociated Press usually yield
	better results.  Similar techniques called "travesty
	generators" have been employed with considerable satirical
	effect to the utterances of {Usenet} flamers; see {pseudo}.

distfix

	<programming> ("distributed {fixity}"?) A description of an
	{operator} represented by multiple symbols before, between,
	and/or after the arguments.

	The classical example is the {C} conditional operator, "?:"
	which is written

		E1 ? E2 : E3

	If E1 is true it returns E2 otherwise it returns E3.  Several
	{functional programming languages}, e.g. {Hope}, {Haskell},
	have similar operators ("if E1 then E2 else E3").

	{Objective C} {messages} are effectively distfix operator
	applications:

		getRow:row andColumn:col ofCell:cell

	is a message with three arguments, row, col, and cell.

	(21 Jan 1997)

Distributed Computing Environment

	(DCE) An architecture consisting of {standard} programming
	interfaces, conventions and {server} functionalities
	(e.g. naming, distributed file system, {remote procedure call})
	for distributing applications transparently across networks of
	{heterogeneous} computers.  DCE is promoted and controlled by
	the {Open Software Foundation} (OSF).

	{Usenet} newsgroup: {news:comp.soft-sys.dce}.

	{(http://www.dstc.edu.au/AU/research_news/dce/dce.html)}

	(07 Dec 1994)

distributed database

	A collection of several different {database}s that looks like
	a single {database} to the user.  An example is the {Internet}
	{Domain Name System} (DNS).

	(07 Dec 1994)

Distributed Eiffel

	["Distributed Eiffel: A Language for Programming
	Multi-Granular Distributed Objects on the Clouds Operating
	System", L. Gunaseelan et al, IEEE Conf Comp Langs, 1992].

	(07 Dec 1994)

Distributed Logic Programming

	<language> (DLP) A {logic programming} language similar to
	{Prolog}, combined with parallel {object orientation} similar
	to {POOL}.  DLP supports distributed {backtracking} over the
	results of a {rendezvous} between {object}s.  {Multi-threaded}
	objects have autonomous activity and may simultaneously
	evaluate {method} calls.

	["DLP: A Language for Distributed Logic Programming",
	A. Eliens, Wiley 1992].

	(07 Jan 1996)

Distributed Management Environment

	(DME) An {OSF} {standard}.  It had reached the {RFT} stage.

	(22 Feb 1995)

distributed memory

	<architecture> The kind of memory in a {parallel processor}
	where each processor has fast access to its own local memory
	and where to access another processor's memory it must send a
	message via the inter-processor network.

	Oppose {shared memory}.

	(22 Mar 1995)

Distributed Network Operating System

	<operating system> (DNOS) A proprietary {operating system} for
	{Texas Instruments} {990}-series {minicomputers}.

	(01 Apr 1996)

Distributed Operating Multi Access Interactive Network

	(DOMAIN) The proprietary network {protocol} used by {Apollo}
	{workstation}s.

	(16 Feb 1995)

Distributed Processes

	(DP) The first {concurrent} language based on {remote
	procedure call}s.

	["Distributed Processes: A Concurrent Programming Concept",
	Per Brinch Hansen CACM 21(11):934-940 (Nov 1978)].

	(02 Dec 1994)

Distributed Queue Dual Bus

	<networking, standard> (DQDB) An {IEEE} {standard} for
	{metropolitan area network}s.

	[Details?]

	(28 Mar 1995)

Distributed Smalltalk

	["The Design and Implementation of DIstributed Smalltalk",
	J. Bennett, SIGPLAN Notices 22(12):318-330 (Dec 1980)].

	(02 Dec 1994)

distributed system

	A collection of (probably heterogeneous) automata whose
	distribution is transparent to the user so that the system
	appears as one local machine.  This is in contrast to a
	network, where the user is aware that there are several
	machines, and their location, storage replication, load
	balancing and functionality is not transparent.  Distributed
	systems usually use some kind of {client-server} organisation.

	Distributed systems are considered by some to be the "next
	wave" of computing.

	{Distributed Computing Environment} is the {Open Software
	Foundation}'s software architecture for distributed systems.

	{(http://www.dstc.edu.au/AU/research_news/dist-env.html)}

	(06 Dec 1994)

distributed systems

	{distributed system}

distribution

	1. A software source tree packaged for distribution; but see
	{kit}.

	2. A vague term encompassing {mailing list}s and {Usenet}
	{newsgroup}s (but not {BBS} {fora}); any topic-oriented
	message channel with multiple recipients.

	3. An information-space domain (usually loosely correlated
	with geography) to which propagation of a {Usenet} message is
	restricted; a much-underused feature.

distributive lattice

	A {lattice} for which the {least upper bound} (lub) and
	{greatest lower bound} (glb) operators distribute over one
	another so that

		a lub (b glb c) == (a glb c) lub (a glb b)

	and vice versa.

	("lub" and "glb" are written in {LateX} as {\sqcup} and
	{\sqcap}).

	(03 Feb 1995)

disusered

	({Usenet}) Said of a person whose account on a computer has
	been removed, especially for cause rather than through normal
	attrition.  "He got disusered when they found out he'd been
	{cracking} through the school's {Internet} access."  The verb
	"disuser" is less common.  Both usages probably derive from
	the DISUSER account status flag on {VMS}; setting it disables
	the account.

	(08 Dec 1994)

dithering

	A technique used in {computer graphics} to create additional
	colors and shades from an existing {palette} by interspersing
	{pixel}s of different colours.  On a {monochrome} display,
	areas of gray are created by varying the proportion of black
	and white pixels.  In color displays, colors and textures are
	created by varying the proportions of existing colors.  The
	different colours can either be distributed randomly or
	regularly.  The higher the {resolution} of the display, the
	smoother the dithered colour will appear to the eye.

	Dithering is used to create patterns for use as backgrounds,
	fills and shading, as well as for creating {halftones} for
	printing.  It is also used in {anti-aliasing} in order to make
	jagged lines appear smoother on screen.

	(02 Nov 1994)

diverge

	If a series of approximations to some value get progressively
	further from it then the series is said to diverge.

	The {reduction} of some term under some {evaluation strategy}
	diverges if it does not reach a {normal form} after a finite
	number of reductions.

	(08 Dec 1994)

divisor

	A quantity that evenly divides another quantity.

	Unless otherwise stated, use of this term implies that the
	quantities involved are integers.  (For non-integers, the more
	general term {factor} may be more appropriate.)

	 Example: 3 is a divisor of 15.
	 Example: 3 is not a divisor of 14.

	(07 Mar 1997)

DJGPP

	<tool> A 32 bit {GNU} {C}/{C++}/etc development system for
	{MS-DOS}.

	{Home (http://www.delorie.com/djgpp/)}

	Address: DJ Delorie, Rochester, NH, USA.

	(10 Apr 1995)

DK

	{Datakit}

DL/1

	Query language, linear keyword.

DLC

	{Data Link Control}

DLCI

	{Data Link Control Identifier}

	[Is this correct?]

	(01 Mar 1997)

DLE

	<character> Data Link Escape, the {mnemonic} for {ASCII} 16.

	(24 Jun 1996)

DLG

	(DFA-based Lexical analyser Generator) The {lexical analyser}
	generator in the {Purdue Compiler-Construction Tool Set}.

DL/I

	The data manipulation language of IMS.

DLL

	1. {Datalink Layer}.

	2. {Dynamically linked library}.

	3. Dial Long Line equipment.

DLM

	Distributed Lock Manager on distributed VMS systems.

DLP

	<language> {Distributed Logic Programming}.

	(07 Jan 1996)

DLPI

	{Data Link Provider Interface}

DLT

	{Digital Linear Tape}

DLZ1

	{Digital Lempel Ziv 1}

DMA

	{Direct Memory Access}

DMAD

	Diagnostic Machine Aid-Digital.  A system for functional
	testing of digital devices.

	["DMAD M/MM Manual", BR-8392, Raytheon Co. (Oct 1973)]

	(02 Nov 1994)

dmake

	Required by {uC++}.

	{(ftp://plg.uwaterloo.ca/pub/dmake/dmake38.tar.Z)}

	[What is it?]

	(02 Nov 1994)

DMALGOL

	{ALGOL} with extensions to interface to {DMS II}, the
	{Burroughs} {database}.

	(22 Feb 1995)

DME

	{Distributed Management Environment}

DML

	1. Data Management Language.  Early ALGOL-like language with
	lists, graphics, on Honeywell 635.  "DML: A Data Management
	Language", D.W. Bray et al, GE, Syracuse NY.

	2. "DML: A Meta-language and System for the Generation of
	Practical and Efficient Compilers from Denotational
	Specifications", M. Pettersson et al, IEEE Conf Comp Langs,
	1992.

DMM

	{Digital Multimeter}

DMZ

	{De-Militarised Zone}

DNA computing

	<architecture> The use of DNA molecules to encode
	computational problems.  Standard operations of molecular
	biology can then be used to solve some {NP-hard} {search
	problems} in parallel using a very large number of molecules.
	The exponential scaling of NP-hard problems still remains, so
	this method will require a huge amount of DNA to solve large
	problems.

	[L. M. Adleman, "Molecular Computation of Solutions to
	Combinatorial Problems", Science 266:1021-1024, 1994].

	(11 Feb 1997)

DNF

	{disjunctive normal form}

DNIS

	{Dialled Number Identification Service}

DNOS

	{Distributed Network Operating System}

DNS

	1. {Domain Name System}.

	2. Distributed Name Service.  See {DECdns}.

DOA

	<jargon> Dead on arrival.  A piece of {hardware} has never worked.

	(28 Nov 1996)

Doc

	Directed Oc.  "Programming Language Doc and Its
	Self-Description, or 'X=X Is Considered Harmful'", M. Hirata,
	Proc 3rd Conf Japan Soc Soft Sci Tech, pp.69-72 (1986).

doc

	/dok/ Common spoken and written shorthand for "documentation".
	Often used in the plural "docs" and in the construction "doc
	file" (i.e. documentation available on-line).

doco

	<jargon> /do'koh/ (In-house jargon at Symbolics) A
	documentation writer.

	See also {devo} and {mango}.

	(16 Apr 1995)

document

	A term used on some systems (e.g. {Intermedia}) for a
	{hypertext} {node}.  It is sometimes used for a collection of
	nodes on related topics, possibly stored or distributed as
	one.

documentation

	The multiple kilograms of macerated, pounded, steamed,
	bleached, and pressed trees that accompany most modern
	software or hardware products (see also {tree-killer}).
	Hackers seldom read paper documentation and (too) often resist
	writing it; they prefer theirs to be terse and on-line.  A
	common comment on this predilection is "You can't {grep} dead
	trees".  See {drool-proof paper}, {verbiage}, {treeware}.

Document Examiner

	<hypertext, tool> A high-performance {hypertext} system by
	{Symbolics} that provides on-line access to their user
	documentation.

	(16 Apr 1995)

Document Image Processing

	(DIP) Storage, management and retrieval of {image}s.

	(11 Nov 1994)

Document Style Semantics and Specification Language

	(DSSSL) An {ISO} {standard} under preparation, addressing the
	{semantics} of high-quality composition in a manner
	independent of particular formatting systems or processes.
	DSSSL is intended as a complementary standard to {SGML} for
	the specification of semantics.

Document Type Definition

	<text, standard> (DTD) The definition of a document type in
	{SGML}, consisting of a set of {mark-up} tags and their
	interpretation.

	{HTML DTD (http://www.w3.org/pub/WWW/MarkUp/Cougar/HTML.dtd)}.

	(08 Dec 1994)

DOCUS

	Display Oriented Computer Usage System.  Interactive system
	using push buttons.  Sammet 1969, p.678

DoD

	{Department of Defense}

DoD-1

	Unofficial name of the language that became Ada.

dodgy

	Synonym with {flaky}.  Preferred outside the US

DOD-STD-2167A

	<standard> A {DoD} {standard} specifying the overall process
	for the development and documentation of mission-critical
	software systems.

	(28 May 1996)

DoD-STD-2168

	<standard> A {DoD} {standard} for software quality assurance
	procedures.

	(29 May 1996)

DOE

	Distributed Object Environment: a distributed object-oriented
	application framework from SunSoft.

DOF

	{degrees of freedom}

dogcow

	/dog'kow/  See {Moof}.

dogpile

	({Usenet}, probably from mainstream "puppy pile") When many
	people post unfriendly responses in short order to a single
	posting, they are sometimes said to "dogpile" or "dogpile on"
	the person to whom they're responding.  For example, when a
	religious missionary posts a simplistic appeal to alt.atheism,
	he can expect to be dogpiled.

	(08 Dec 1994)

dogwash

	/dog'wosh/ (a quip in the "urgency" field of a very optional
	software change request, ca. 1982.  It was something like
	"Urgency: Wash your dog first"). A project of minimal
	priority, undertaken as an escape from more serious work.
	Many games and much {freeware} get written this way, including
	{this dictionary}.

	(08 Dec 1994)

DOL

	Display Oriented Language.  Subsystem of DOCUS.  Sammet 1969,
	p.678.

dollar

	$

	Common: {ITU-T}: dollar sign.  Rare: currency symbol;
	buck; cash; string (from BASIC); escape (when used as the echo
	of ASCII ESC); ding; cache; {INTERCAL}: big money.

	(06 Mar 1995)

domain

	1. <mathematics> In the theory of functions, the set of
	argument values for which a {function} is defined.

	See {domain theory}.

	2. <networking> On the {Internet}, "domain" is most commonly
	used to refer to a group of computers whose {hostname}s share
	a common suffix, the domain name.  Some important domains are:
	.com (commercial), .edu (educational, mostly US), .net
	(network operations), .gov (US government), and .mil (US
	military).  Most countries also have a domain.  For example,
	.us (United States), .uk (United Kingdom), .au (Australia),
	.su (ex-Soviet Union (see {kremvax})).

	Within the .us domain, there are subdomains for the fifty
	states, each generally with a name identical to the state's
	postal abbreviation.  These are rarely used however.  Within
	the .uk domain, there is a .ac.uk subdomain for academic sites
	and a .co.uk domain for commercial ones.  Other top-level
	domains may be divided up in similar ways.

	See {administrative domain}, {Domain Name System}, {fully
	qualified domain name}.

	3. {Distributed Operating Multi Access Interactive Network}.

	4. <programming> A specific phase of the {software life cycle}
	in which a developer works.  Domains define developers' and
	users' areas of responsibility and the scope of possible
	relationships between products.

	(29 May 1996)

domain address

	<networking> The name of a {host} on the {Internet} belonging
	to the {hierarchy} of Internet {domain}s.

	(27 Oct 1994)

domainist

	/doh-mayn'ist/ 1. Said of a domain address (as opposed to
	a {bang path}) because the part to the right of the "@"
	specifies a nested series of "domains"; for example,
	esr@snark.thyrsus.com specifies the machine called snark in
	the subdomain called thyrsus within the top-level domain
	called com.  See also {big-endian}.

	2. Said of a site, mailer or routing program which knows how
	to handle domainist addresses.

	3. Said of a person (especially a site admin) who prefers
	domain addressing, supports a domainist mailer, or
	proselytises for domainist addressing and disdains {bang
	path}s.  This term is now (1993) semi-obsolete, as most sites
	have converted.

	(21 Apr 1995)

Domain Name Server

	(DNS) {RFC} 1034 calls it {Domain Name System}.

	[Does anyone call it "Domain Name Server(s)"?].

	(21 Apr 1995)

Domain Name System

	<networking> (DNS) A general-purpose distributed, replicated,
	data query service chiefly used on {Internet} for translating
	{hostname}s into {Internet address}es.  Also, the style of
	{hostname} used on the Internet (though such a name is
	properly called a {fully qualified domain name}).  DNS can be
	configured to use a sequence of name servers, based on the
	domains in the name being looked for, until a match is found.

	DNS is usually installed as a replacement for the hostname
	translation offered by {Sun Microsystem}'s {Network
	Information System}.  Whereas NIS relies on a single {server},
	DNS is a {distributed database}.  It can be queried
	interactively using the command {nslookup}.  It is defined in
	{STD} 13, {RFC}s 1034 and 1035.

	The Domain Name System refers to both the way of naming hosts
	and the servers and clients that administer that information
	across the Internet.

	See also {BIND}.

	{Info from Virtual Office, Inc.
	(http://virtual.office.com/domains.html)}.

	{(ftp://src.doc.ic.ac.uk/rfc/rfc1034.txt.gz)}

	(21 Apr 1995)

Domain Software Engineering Environment

	<programming> (DSEE) A proprietary {CASE} framework and
	{configuration management} system from {Apollo}.

	(29 May 1996)

domain theory

	A branch of mathematics introduced by Dana Scott in 1970 as a
	mathematical theory of programming languages, and for nearly a
	quarter of a century developed almost exclusively in
	connection with {denotational semantics} in computer science.

	In {denotational semantics} of programming languages, the
	meaning of a program is taken to be an element of a domain.  A
	domain is a mathematical structure consisting of a set of
	values (or "points") and an ordering relation, <= on those
	values.  Domain theory is the study of such structures.

	("<=" is written in {LaTeX} as {\subseteq})

	Different domains correspond to the different types of object
	with which a program deals.  In a language containing
	functions, we might have a domain X -> Y which is the set of
	functions from domain X to domain Y with the ordering f <= g
	iff for all x in X, f x <= g x.  In the {pure lambda-calculus}
	all objects are functions or {application}s of functions to
	other functions.  To represent the meaning of such programs,
	we must solve the {recursive} equation over domains,

		D = D -> D

	which states that domain D is ({isomorphic} to) some {function
	space} from D to itself.  I.e. it is a {fixed point} D = F(D)
	for some operator F that takes a domain D to D -> D.  The
	equivalent equation has no non-trivial solution in {set
	theory}.

	There are many definitions of domains, with different
	properties and suitable for different purposes.  One commonly
	used definition is that of Scott domains, often simply called
	domains, which are {omega-algebraic}, {consistently complete}
	{CPO}s.

	There are domain-theoretic computational models in other
	branches of mathematics including {dynamical system}s,
	{fractal}s, {measure theory}, {integration theory},
	{probability theory} and {stochastic process}es.

	See also {abstract interpretation}, {bottom}, {pointed
	domain}.

DOMF

	Distributed Object Management Facility.

	An {OMG}-compliant object management system; part of {DOE}.
	Produced by {SunSoft}.

	(04 Nov 1994)

Donald Knuth

	<person> Donald E. Knuth, the author of the {TeX} document
	formatting system, {Metafont} its {font}-design program and
	the 3 volume computer science "Bible" of {algorithms}, "The
	Art of Computer Programming".

	Knuth suggested the name "{Backus-Naur Form}" and was also
	involved in the {SOL} simulation language, and developed the
	{WEB} {literate programming} system.

	See also {MIX}, {Turingol}.

	(04 Nov 1994)

dongle

	/dong'gl/ 1. A security or {copy protection} device for
	commercial microcomputer programs consisting of a serialised
	EPROM and some drivers in a D-25 connector shell, which must
	be connected to an I/O port of the computer while the program
	is run.  Programs that use a dongle query the port at startup
	and at programmed intervals thereafter, and terminate if it
	does not respond with the dongle's programmed validation code.
	Thus, users can make as many copies of the program as they
	want but must pay for each dongle.  The idea was clever, but
	it was initially a failure, as users disliked tying up a
	serial port this way.  Almost all dongles on the market today
	(1993) will pass data through the port and monitor for {magic}
	codes (and combinations of status lines) with minimal if any
	interference with devices further down the line - this
	innovation was necessary to allow daisy-chained dongles for
	multiple pieces of software.  The devices are still not widely
	used, as the industry has moved away from copy-protection
	schemes in general.  2. By extension, any physical electronic
	key or transferable ID required for a program to function.
	Common variations on this theme have used parallel or even
	joystick ports.  See {dongle-disk}.

	[Note: in early 1992, advertising copy from Rainbow
	Technologies (a manufacturer of dongles) included a claim that
	the word derived from "Don Gall", allegedly the inventor of
	the device.  The company's receptionist will cheerfully tell
	you that the story is a myth invented for the ad copy.
	Nevertheless, I expect it to haunt my life as a lexicographer
	for at least the next ten years. - ESR]

dongle-disk

	/don'gl disk/ A special floppy disk that is required in order
	to perform some task.  Some contain special coding that allows
	an application to identify it uniquely, others *are* special
	code that does something that normally-resident programs don't
	or can't.  (For example, {AT&T}'s "Unix PC" would only come up
	in {root mode} with a special boot disk.)  Also called a "key
	disk".  See {dongle}.

Don't do that, then!

	[An old doctor's office joke about a patient with a trivial
	complaint] Stock response to a user complaint.  "When I type
	control-S, the whole system comes to a halt for thirty
	seconds."  "Don't do that, then!" (or "So don't do that!").
	Compare {RTFM}.

donuts

	(Obsolete) A collective noun for any set of memory bits.  This
	usage is extremely archaic and may no longer be live jargon;
	it dates from the days of {ferrite core memories} in which
	each bit was implemented by a doughnut-shaped magnetic
	{flip-flop}.

DOOM

	<games> A simulated 3D moster-hunting action game for {IBM
	PC}s, created and published by {id Software}.  The original
	press release was dated January 1993.  A cut-down shareware
	version v1.0 was released on 10 December 1993 and again with
	some bug-fixes, as v1.4 in June 1994.

	DOOM is similar to Wolfenstein 3-D (id Software, Apogee) but
	has better {texture mapping}; walls can be at any angle, of
	any thickness and have windows; lighting can fade into the
	distance or come from point sources; floors and ceilings can
	be of any height; many surfaces are animated; up to four
	players can play over a network or two by serial link; it has
	a high {frame rate} (comparable to TV on a {486}/33); DOOM
	isn't just a collection of connected closed rooms like
	Wolfenstein but sounds can travel anywhere and alert monsters
	of your approach.

	The shareware version is available from these sites:
	{Cactus(ftp://cactus.org/pub/IHHD/multi-player/)},
	{Manitoba(ftp://ftp.cc.umanitoba.ca/pub/doom/)},
	{UK(ftp://ftp.demon.co.uk/pub/ibmpc/games/id/)},
	{South Africa(ftp://ftp.sun.ac.za/pub/msdos/games/id/)},
	{UWP ftp(ftp://archive.uwp.edu/pub/msdos/games/id/)},
	{UWP http(http://archive.uwp.edu/pub/msdos/games/id/)},
	{Finland(ftp://ftp.funet.fi/pub/msdos/games/id)},
	{Washington(ftp://wuarchive.wustl.edu/pub/MSDOS_UPLOADS/games/doom)}.

	A {FAQ} by Hank Leukart <ap641@cleveland.freenet.edu>: {UWP
	(ftp://ftp.uwp.edu/pub/msdos/games/id/home-brew/doom)},
	{Washington
	(ftp://wuarchive.wustl.edu/pub/MSDOS_UPLOADS/games/doomstuff)}.
	{FAQ on WWW (http://venom.st.hmc.edu/~tkelly/doomfaq/intro.html)}.
	{Other links (http://www.gamesdomain.co.uk/descript/doom.html)}.

	{Usenet} newsgroups: {news:rec.games.computer.doom.announce},
	{news:rec.games.computer.doom.editing},
	{news:rec.games.computer.doom.help},
	{news:rec.games.computer.doom.misc},
	{news:rec.games.computer.doom.playing}, {news:alt.games.doom},
	{news:comp.sys.ibm.pc.games.action},
	{news:comp.sys.ibm.pc.games.announce},
	{news:comp.sys.ibm.pc.games.misc}.

	Mailing List: <listserv@cedar.univie.ac.at> ("sub DOOML" in
	the message body, no subject).

	Telephone: +44 (1222) 362 361 - the UK's first multi-player
	DOOM and games server.

	(14 Dec 1994)

DOORS

	{Dynamic Object Oriented Requirements System}

doorstop

	Used to describe equipment that is non-functional and halfway
	expected to remain so, especially obsolete equipment kept
	around for political reasons or ostensibly as a backup.  "When
	we get another Wyse-50 in here, that ADM 3 will turn into a
	doorstop."

	Compare {boat anchor}.

DOS

	1. {Disk Operating System}.

	2. Common abbreviation for {MS-DOS}.

DOS Protected Mode Interface

	(DPMI) The method which {Microsoft} prescribes for a {DOS}
	program to access {extended memory} under a {multitasking}
	environment, e.g. {Microsoft Windows}.  This service is
	provided by the HIMEM.SYS driver on {IBM PC}s.

	The DPMI specification was finalized in 1990.  The
	specification itself is available from {Intel Literature
	Sales}.

	VCPI (Virtual Control Program Interface), which was an
	alternative, and incompatible method for doing the same thing.

	["Windows 3.1 Secrets", Brian Livingston, 1992, ISBN
	1-878058-43-6, pages 280-281 and 302].

	(12 Jan 1995)

dot

	<character> {decimal point}.

	See also {dot file}, {dot notation}.

	(14 Mar 1995)

dot address

	An {Internet address} in {dot notation}.

dot file

	(Unix) A file that is not visible by default to normal
	directory-browsing tools (on {Unix}, files named with a
	leading dot are, by convention, not normally presented in
	directory listings).  Many programs define one or more dot
	files in which startup or configuration information may be
	optionally recorded; a user can customise the program's
	behaviour by creating the appropriate file in the current or
	home directory.  Dot files tend to {creep} - with every
	nontrivial application program defining at least one, a user's
	home directory can be filled with scores of dot files, without
	the user really being aware of it.

	See also {profile}, {rc file}.

	(07 Dec 1994)

dot matrix printer

	<hardware, printer> A kind of printer with a vertical column
	of up to 48 small closely packed needles or "pins" each of
	which can be individually forced forwards to press an ink
	ribbon against the paper.  The print head is repeatedly
	scanned across the page and different combinations of needles
	activated at each point.

	Dot matrix printers are noisy compared to {non-impact
	printer}s.

	[Other pin arrangements?]

	(14 Mar 1995)

dot notation

	{Berkeley Unix} notation for {Internet address}es.  An
	{Internet address} in dot notation consists of one to four
	numbers in hexadecimal (leading 0x), octal (leading 0) or
	decimal.  It represents a 32 bit address.  Each leading number
	represents eight bits of the address (high byte first) and the
	last number represents the rest.  E.g. address 0x25.32.0xab
	represents 0x252000ab.  By far the most common form is four
	decimal numbers, e.g. 146.169.22.42.  Many commands will accept
	an address in dot notation in place of a hostname.

	(07 Dec 1994)

dot pitch

	<hardware> The distance between a dot and the closest dot of
	the same colour (red, green or blue) on a color {CRT}.  Dot
	pitch is typically from 0.28 to 0.51 mm but large presentation
	monitors may go up to 1.0 mm.  The smaller the dot pitch, the
	crisper the image, 0.31 or less provides a sharp image,
	especially when displaying text.

	Dot pitch measurements between conventional tubes and {Sony}'s
	{Trinitron} tubes are roughly, but not exactly comparable.
	Sony's {CRT}s use vertical stripes, not dots, and its
	measurement is the distance between stripes, not the diagonal
	distance between dots.

	["The Computer Glossary", Alan Freedman].

	(14 Dec 1995)

double bucky

	Using both the CTRL and META keys.  "The command to burn all
	LEDs is double bucky F."

	This term originated on the Stanford extended-ASCII keyboard,
	and was later taken up by users of the {space-cadet keyboard}
	at MIT.  A typical MIT comment was that the Stanford {bucky
	bits} (control and meta shifting keys) were nice, but there
	weren't enough of them; you could type only 512 different
	characters on a Stanford keyboard.  An obvious way to address
	this was simply to add more shifting keys, and this was
	eventually done; but a keyboard with that many shifting keys
	is hard on touch-typists, who don't like to move their hands
	away from the home position on the keyboard.  It was
	half-seriously suggested that the extra shifting keys be
	implemented as pedals; typing on such a keyboard would be very
	much like playing a full pipe organ.  This idea is mentioned
	in a parody of a very fine song by Jeffrey Moss called "Rubber
	Duckie", which was published in "The Sesame Street Songbook"
	(Simon and Schuster 1971, ISBN 0-671-21036-X).  These lyrics
	were written on May 27, 1978, in celebration of the Stanford
	keyboard:

	                  Double Bucky

	  Double bucky, you're the one!
	  You make my keyboard lots of fun.
	      Double bucky, an additional bit or two:
	  (Vo-vo-de-o!)
	  Control and meta, side by side,
	  Augmented ASCII, nine bits wide!
	      Double bucky!  Half a thousand glyphs, plus a few!
	          Oh,
	          I sure wish that I
	          Had a couple of
	              Bits more!
	          Perhaps a
	          Set of pedals to
	          Make the number of
	              Bits four:
	          Double double bucky!
	  Double bucky, left and right
	  OR'd together, outta sight!
	      Double bucky, I'd like a whole word of
	      Double bucky, I'm happy I heard of
	      Double bucky, I'd like a whole word of you!

	  - The Great Quux

	(With apologies to Jeffrey Moss.  This, by the way, is an
	excellent example of computer {filk} --- ESR).

	See also {meta bit}, {cokebottle}, and {quadruple bucky}.

	(07 Dec 1994)

double-click

	<operating system> To click a {mouse} button twice in rapid
	succession without moving the mouse.  Often used as a
	shortcut, combining the actions of selecting, and then opening
	a document (or activating some other kind of object) within a
	{graphical user interface}.  Some {text editors} use
	double-click to select the word under the {mouse pointer}.

	(21 Mar 1997)

double DECkers

	Used to describe married couples in which both partners work
	for {Digital Equipment Corporation}.

	(07 Dec 1994)

doubled sig

	A {sig block} that has been included twice in a {Usenet}
	article or, less commonly, in an {electronic mail} message.
	An article or message with a doubled sig can be caused by
	improperly configured software.  More often, however, it
	reveals the author's lack of experience in electronic
	communication.

	See {BIFF}, {pseudo}.

	(07 Dec 1994)

double quote

	<character> '"' {ASCII} character 34.  Often used in
	programming languages to delimit strings.  In {Unix} {shell}s
	and {Perl} it delimits a string inside which variable
	substitution may occur.

	Common names: quote.  Rare: literal mark; double-glitch;
	{ITU-T}: quotation marks; {ITU-T}: dieresis; dirk; {INTERCAL}:
	rabbit-ears; double prime.

	(28 Mar 1995)

doubly linked list

	<programming> A data structure in which each element contains
	pointers to the next and previous elements in the list, thus
	forming a bidirectional linear list.

	(28 Mar 1995)

DOUGLAS

	An early system on the {IBM 701}.

	[Listed in CACM 2(5):16 (May 1959)].

	(07 Dec 1994)

DOW COMPILER

	An early system on the {Datatron 200} series.

	[Listed in CACM 2(5):16 (May 1959)].

	(07 Dec 1994)

down

	1. Not operating.  "The up escalator is down" is considered a
	humorous thing to say, and "The elevator is down" always
	means "The elevator isn't working" and never refers to what
	floor the elevator is on.  With respect to computers, this
	term has passed into the mainstream; the extension to other
	kinds of machine is still hackish.

	2. "go down" To stop functioning; usually said of the
	{system}.  The message from the {console} that every hacker
	hates to hear from the operator is "System going down in 5
	minutes".

	3. "take down", "bring down" To deactivate purposely, usually
	for repair work or {PM}.  "I'm taking the system down to work
	on that bug in the tape drive."  Occasionally one hears the
	word "down" by itself used as a verb in this sense.

	See {crash}; oppose {up}.

	(07 Dec 1994)

download

	To transfer data or (especially) code from one computer to
	another.  The distinction between downloading and uploading is
	hazy but downloading often refers to transfer from a larger
	"host" system (especially a {mainframe}) to a smaller "client"
	system, especially a {microcomputer} or specialised
	peripheral.

	Oppose {upload}.

	However, note that ground-to-space communications has its own
	usage rule for this term.  Space-to-earth transmission is
	always "down" and the reverse "up" regardless of the relative
	size of the computers involved.  So far the in-space machines
	have invariably been smaller; thus the upload/download
	distinction has been reversed from its usual sense.

	(07 Dec 1994)

downloading

	{download}

downsizing

	<jargon> The process of moving an {application program} from a
	{mainframe} to a cheaper system, typically a {client-server}
	system.

	(27 Mar 1995)

downward closed

	left closed.

	See {closure}.

	(07 Dec 1994)

DP

	1. {data processing}.

	According to hackers, use of the term marks one immediately as
	a {suit}.

	See {DPer}.

	2. {dot pitch}.

	3. {Dissociated Press}.

	(22 Jul 1996)

DPB

	/d*-pib'/ The {PDP-10} instruction "DePosit Byte" that inserts
	some bits into the middle of some other bits.  Hackish usage
	has been kept alive by the {Common LISP} function of the same
	name.

	(07 Dec 1994)

DPer

	/dee-pee-er/ Data Processor.  Hackers are absolutely amazed
	that {suit}s use this term self-referentially.  *Computers*
	process data, not people!

	See {DP}.

	(07 Dec 1994)

dpi

	Dots per inch.

	A measure of resolution for printers, scanners and displays.

	{Laser printer}s typically reach 300 DPI, though 600 DPI is
	becoming more common.  Commercial typesetters are usually
	around 1200 DPI.

	(05 Jan 1995)

DPL

	DECmmp Parallel Language.

	A {C}-like parallel language for the {DECmpp} machine.

	(07 Dec 1994)

DPL-82

	["DPL-82: A Language for Distributed Processing", L. Ericson,
	Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982, pp.526-531].

	(07 Dec 1994)

DPLL

	{Digital Phase-Locked Loop}

DPMI

	{DOS Protected Mode Interface}

DPMS

	<hardware> {Display Power Management Signaling}.

	(11 Dec 1995)

DPN

	{Decomposed Petri Net}

d-Prolog

	{Prolog} extended with {defeasible reasoning}.

	{(ftp://aisun1.ai.uga.edu/ai.prolog/)} for {MS-DOS} and {Unix}.

	(07 Dec 1994)

DPS

	1. <language, text> {Display PostScript}.

	2. <language> A {real-time} language with direct
	expression of timing requests.

	["Language Constructs for Distributed Real-Time PRogramming",
	I. Lee et al Proc IEEE Real-Time Sys Symp pp.57-66 (Dec
	1985)].

	[Expansion?]

	(28 Mar 1995)

dpSather

	{Data-parallel} {Sather}.  Fine-grained {deterministic}
	parallelism.

	E-mail: <hws@csis.dit.csiro.au>.
	{(ftp://lynx.csis.dit.csiro.au/p/pub/ather/dpsather.papers)}.

DPSK

	<communications> {Differential Phase Shift Keying}.

DQDB

	{Distributed Queue Dual Bus}

draco

	A blend of {Pascal}, {C} and {ALGOL 68} developed by Chris
	Gray in 1987.  It has been implemented for {CP/M-80} and
	{Amiga}.

	(04 Nov 1994)

drag and drop

	A common method for manipulating files (and sometimes text)
	under a {graphical user interface} or {WIMP} environment.  The
	user moves the pointer over an icon representing a file and
	presses a mouse button.  He holds the button down while moving
	the pointer (dragging the file) to another place, usually a
	directory viewer or an icon for some {application program},
	and then releases the button (dropping the file).  The meaning
	of this action can often be modified by holding certain keys
	on the keyboard at the same time.

	Some systems also use this technique for objects other than
	files, e.g. portions of text in a {word processor}.

	The biggest problem with drag and drop is does it mean "copy"
	or "move"?  The answer to this question is not intuitively
	evident, and there is no consensus for which is the right
	answer.  The same vendor even makes it move in some cases and
	copy in others.  Not being sure whether an operation is copy
	or move will cause you to check very often, perhaps every time
	if you need to be certain.  Mistakes can be costly.  People
	make mistakes all the time with drag and drop.  {Human
	computer interaction} studies show a higher failure rate for
	such operations, but also a higher "forgiveness rate" (users
	think "silly me") than failures with commands (users think
	"stupid machine").  Overall, drag and drop took some 40 times
	longer to do than single-key commands.

	[Erik Naggum <erik@naggum.no>]

drag-n-drop

	<spelling> Stupid spelling of {drag and drop}.

	(13 Dec 1996)

DRAGON

	1. An {Esprit} project aimed at providing effective support to
	{reuse} in {real-time} distributed {Ada} {application
	program}s.

	2. An implementation language used by {BTI Computer Systems}.

	E-mail: Pat Helland <helland@hal.com>.

	(08 Dec 1994)

dragon

	[MIT] A program similar to a {daemon}, 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.  Under ITS, many
	terminals displayed a list of people logged in, where they
	were, what they were running, etc., along with some random
	picture (such as a unicorn, Snoopy or the Enterprise), which
	was generated by the "name dragon".  Use is rare outside
	{MIT}, under {Unix} and most other {operating system}s this
	would be called a "background {demon}" or {daemon}.  The
	best-known Unix example of a dragon is {cron}.  At {SAIL},
	they called this sort of thing a "phantom".

Dragon Book

	<publication> The classic text "Compilers: Principles,
	Techniques and Tools", by Alfred V. Aho, Ravi Sethi, and
	Jeffrey D.  Ullman (Addison-Wesley 1986; ISBN 0-201-10088-6).
	So called because of the cover design featuring a dragon
	labelled "complexity of compiler design" and a knight bearing
	the lance "LALR parser generator" among his other trappings.
	This one is more specifically known as the "Red Dragon Book"
	(1986); an earlier edition, sans Sethi and titled "Principles
	Of Compiler Design" (Alfred V. Aho and Jeffrey D. Ullman;
	Addison-Wesley, 1977; ISBN 0-201-00022-9), was the "Green
	Dragon Book" (1977).  (Also "New Dragon Book", "Old Dragon
	Book".)  The horsed knight and the Green Dragon were warily
	eying each other at a distance; now the knight is typing
	(wearing gauntlets!) at a terminal showing a video-game
	representation of the Red Dragon's head while the rest of the
	beast extends back in normal space.

	See also: {book titles}.

	(03 Dec 1996)

DRAGOON

	A distributed concurrent {object-oriented} {Ada}-based
	language from the {Esprit} {DRAGON} project by Colin Atkinson
	<atkinson@cl.uh.edu>, Imperial College 1989.  (Now at
	University of Houston, Clear Lake).  Object-oriented
	programming for embeddable systems.  Presently implemented as
	an Ada {preprocessor}.  E-mail: <adimaio@vms.eurokom.ie>.

	["Object-Oriented Reuse, Concurrency and Distribution: An
	Ada-Based Approach", C. Atkinson, A-W 1991, ISBN
	0-2015-6-5277].

drain

	[IBM] Synonym for {flush}.  Has a connotation of finality
	about it; one speaks of draining a device before taking it
	off-line.

DRAM

	{dynamic random access memory}

DRAM refresh

	<storage> The operation which cycles through a {DRAM} reading
	each row and writing it back again to compensate for the
	gradual leakage of charge from the {capacitors} which store
	the data.  This may be done by the {CPU} but is often done by
	a dedicated {memory controller}.

	(23 Feb 1997)

Drawing eXchange Format

	(DXF) A file format for graphical information, similar to
	{IGES}.  Commonly used by {CAD} systems like {AutoCAD}.

	(08 Dec 1994)

dread high bit disease

	A condition endemic to PRIME (also known as "PR1ME")
	minicomputers that results in all the characters having their
	high (0x80) bit ON rather than OFF.  This of course makes
	transporting files to other systems much more difficult, not
	to mention talking to true 8 bit devices.  Folklore had it
	that PRIME adopted the reversed-8 bit convention in order to
	save 25 cents per {serial line} per machine; PRIME old-timers,
	on the other hand, claim they inherited the disease from
	Honeywell via customer NASA's compatibility requirements and
	struggled heroically to cure it.  Whoever was responsible,
	this probably qualifies as one of the most cretinous design
	tradeoffs ever made.  See {meta bit}.  A few other machines
	have exhibited similar brain damage.

DRECNET

	/drek'net/ [Yiddish/German "dreck", meaning filth] Deliberate
	distortion of DECNET, a networking protocol used in the {VMS}
	community.  So called because DEC helped write the Ethernet
	specification and then (either stupidly or as a malignant
	customer-control tactic) violated that spec in the design of
	DRECNET in a way that made it incompatible.  See also
	{connector conspiracy}.

driver

	1. <operating system> {device driver}.

	2. <programming> The {main loop} of an event-processing
	program; the code that gets commands and dispatches them for
	execution.

	3. <tool> In the {TeX} world and the computerised typesetting
	world in general, a program that translates some
	device-independent or other common format to something a real
	device can actually understand.

drivers

	{driver}

droid

	<abuse> (From "android", SF terminology for a humanoid robot
	of essentially biological (as opposed to mechanical or
	electronic) construction).  A person (especially a low-level
	bureaucrat or service-business employee) exhibiting most of
	the following characteristics: (a) naive trust in the wisdom
	of the parent organisation or "the system"; (b) a blind-faith
	propensity to believe obvious nonsense emitted by authority
	figures (or computers!); (c) a rule-governed mentality, one
	unwilling or unable to look beyond the "letter of the law" in
	exceptional situations; (d) a paralysing fear of official
	reprimand or worse if Procedures are not followed No Matter
	What; and (e) no interest in doing anything above or beyond
	the call of a very narrowly-interpreted duty, or in particular
	in fixing that which is broken; an "It's not my job, man"
	attitude.

	Typical droid positions include supermarket checkout assistant
	and bank clerk; the syndrome is also endemic in low-level
	government employees.  The implication is that the rules and
	official procedures constitute {software} that the droid is
	executing; problems arise when the software has not been
	properly debugged.  The term "droid mentality" is also used to
	describe the mind-set behind this behaviour.

	Compare {suit}, {marketroid}.

	(27 Sep 1995)

DROOL

	<games> Dave's Recycled Object-Oriented Language.  Language
	for writing adventure games.  An updated implementation of
	AdvSys.  {multiple inheritance}, garbage collection.

	["Dave's Recycled OO Language", David Betz, Dr. Dobbs J, Oct
	1993, pp.74-78].

drool-proof paper

	Documentation that has been obsessively {dumbed down}, to the
	point where only a {cretin} could bear to read it, is said to
	have succumbed to the "drool-proof paper syndrome" or to have
	been "written on drool-proof paper".  For example, this is an
	actual quote from {Apple Computer}'s LaserWriter manual: "Do not expose
	your LaserWriter to open fire or flame."

drop cable

	Wiring between a computer and its {Ethernet transceiver}.
	Maximum length if full-spec is 47m.

drop-ins

	[analogy with {drop-outs}] Spurious characters appearing on a
	terminal or console as a result of {line noise} or a system
	malfunction of some sort.  Especially used when these are
	interspersed with one's own typed input.

drop on the floor

	To react to an error condition by silently discarding messages
	or other valuable data.  "The gateway ran out of memory, so it
	just started dropping packets on the floor."  Also frequently
	used of faulty mail and netnews relay sites that lose
	messages.  See also {black hole}, {bit bucket}.

drop-outs

	1. A variety of "power glitch" (see {glitch}); momentary 0
	voltage on the electrical mains.

	2. Missing characters in typed input due to software
	malfunction or system saturation (one cause of such behaviour
	under {Unix} when a bad connection to a modem swamps the
	processor with spurious character interrupts; see {screaming
	tty}).

	3. Mental glitches; used as a way of describing those
	occasions when the mind just seems to shut down for a couple
	of beats.  See {glitch}, {fried}.

DRUCO I

	Early system on IBM 650.  Listed in CACM 2(5):16 (May 1959).

drugged

	(Or "on drugs") 1. Conspicuously stupid, heading toward
	{brain-damaged}.  Often accompanied by a pantomime of toking a
	joint.

	2. Of hardware, very slow relative to normal performance.

drum

	Ancient slow, cylindrical magnetic media that were once
	state-of-the-art storage devices.  Under {BSD} {Unix} the disk
	partition used for swapping is still called "/dev/drum"; this
	has led to considerable humour and not a few straight-faced
	but utterly bogus "explanations" getting foisted on {newbie}s.

	See also "{The Story of Mel}".

	(22 Dec 1994)

drunk mouse syndrome

	(Also "mouse on drugs") A malady exhibited by the mouse
	pointing device of some computers.  The typical symptom is for
	the mouse cursor on the screen to move in random directions
	and not in sync with the motion of the actual mouse.  Can
	usually be corrected by unplugging the mouse and plugging it
	back again.  Another recommended fix for optical mice is to
	rotate your mouse pad 90 degrees.

	At {Xerox PARC} in the 1970s, most people kept a can of copier
	cleaner (isopropyl alcohol) at their desks.  When the steel
	ball on the mouse had picked up enough {cruft} to be
	unreliable, the mouse was doused in cleaner, which restored it
	for a while.  However, this operation left a fine residue that
	accelerated the accumulation of cruft, so the dousings became
	more and more frequent.  Finally, the mouse was declared
	"alcoholic" and sent to the clinic to be dried out in a CFC
	ultrasonic bath.

dry run

	<programming> To execute a program by hand, writing values of
	variables and other run-time data on paper, in order to check
	its operation or to track down a {bug}.  A dry run is an
	extreme form of {desk check} and is practical only for fairly
	simple programs and small amounts of data.

	(13 May 1996)

DS0

	<communications> The zeroth {DS level}, a {framing
	specification} for digital signals in the North American
	digital transmission hierarchy.  A DS0 signal has a
	transmission rate of 64 kilobits per second.

	(12 Jan 1995)

DS1

	<communications> A {DS level} and {framing specification} for
	synchronous digital streams, over circuits in the North
	American digital transmission hierarchy, at the {T1}
	transmission rate of 1544000 bits per second ({baud}).  DS1 is
	a {bipolar}, 50% {duty cycle} signal.  A logical zero is
	represented by no pulse, a one by a pulse.

	In the US a DS1 "frame" is composed of 24 eight bit bytes
	(commonly from 24 {DS0) sources, originally digitised
	voice-grade telephone signals), plus one {framing bit} (193
	bits).  8000 bytes per second come from each source, and thus
	8000 frames per second are transported by the DS1 signal.  The
	result is 193*8000 = 1,544,000 bits per second.

	In the original standard, the framing bits continuously
	repeated the sequence 110111001000, and such a 12-frame unit
	is called a super-frame.  In voice telephony, errors are
	acceptable (early standards allowed as much as one frame in
	six to be missing entirely), so the least significant bit in
	two of the 24 streams was used for signaling between network
	equipments.  This is called {robbed-bit signaling}.

	To promote error-free transmission, an alternative called the
	extended super-frame (ESF) of 24 frames was developed.  In
	this standard, six of the 24 framing bits provide a six bit
	{cyclic redundancy code} (CRC-6), and six provide the actual
	framing.  The other 12 form a virtual circuit of 4000 bits per
	second for use by the transmission equipment, for {call
	progress signals} such as busy, idle and ringing.  DS1 signals
	using ESF equipment are nearly error-free, because the CRC
	detects errors and allows automatic re-routing of connections.

	Compare {T-carrier systems}.

	[Kenneth Sherman, "Data Communications : a user's guide",
	third edition (1990), Reston/Prentice-Hall/Simon & Schuster].

	(30 Mar 1996)

DS1C

	<communications> A {DS level} and {framing specification} for
	digital signals in the North American digital transmission
	hierarchy.  A DS1C signal uses 48 {PCM} channels and has a
	transmission rate of 3.15 Megabits per second, twice that of
	{DS1}.

	DS1C uses two {DS1} signals combined and sent on a 3.152
	megabit per second {carrier} which allows 64 kilobits per
	second for synchronisation and {framing} using "{pulse
	stuffing}".  The channel 2 signal is logically inverted, and a
	framing bit is stuffed in two out of three code words,
	resulting in 26 bit information units.  The channels are
	interleaved and then scrambled by the addition {modulo} 2 of
	the signal with the previous bit.  Finally the bit stream is
	combined with a control bit sequence that permits the
	{demultiplexor} to function by preceding each 52 bits with one
	DS1C framing bit.  A series of 24 such 53 bit frames forms a
	1272 bit "M-frame".

	(07 Feb 1995)

DS2

	<communications> A {DS level} and {framing specification} for
	digital signals in the North American digital transmission
	hierarchy.  A DS2 signal uses 96 {PCM} channels and has a
	transmission rate of 6.31 Megabits per second, twice that of
	{DS1C}.

	(07 Feb 1995)

DS3

	<communications> The third {DS level}, a {framing
	specification} for digital signals in the North American
	digital transmission hierarchy.  A DS3 signal has a
	transmission rate of 44.736 Megabits per second.

	DS3 is used, for example, on {T3} synchronous {Integrated
	Services Digital Network} lines.

	(12 Jan 1995)

DSA

	{Directory System Agent}

DSE

	{Data Structure Editor}

DSEE

	{Domain Software Engineering Environment}

DSI

	{Delivered Source Instruction}

DSL

	1. <communications> {Digital Subscriber Line}.

	2. <language> {Digital Simulation Language}.

	3. <language> {Denotational Semantics Language}.

	(13 Oct 1996)

DS level

	<communications> (Data Service level) A generic measure of
	data service rates that can be used to classify the user
	access rates for various point-to-point {WAN} technologies or
	standards (e.g. {X.25}, {SMDS}, {ISDN}, {ATM}, {PDH}).  They
	tend to mark off the low and high ends of access rates for
	these technologies.

	 DS0      64 Kbps
	 DS1   1.544 Mbps
	 DS1C  3.15  Mbps
	 DS2   6.31  Mbps
	 DS3  44.736 Mbps

	(where K and M signify multiplication by 1000 and 1000000,
	rather than powers of two).

	Japan uses the US standards for DS0 through DS2 but Japanese
	DS5 has roughly the circuit capacity of US DS4, while the
	European standards are entirely different.  In the US all of
	the transmission rates are integral multiples of 8000 bits per
	second but rates above DS1 are not necessarily integral
	multiples of 1,544,000 bps.

	See {DS0}, {DS1}, {DS1C}, {DS2}, {DS3}.

	(08 Feb 1995)

DSM

	1. Data Structure Manager.

	An {object-oriented} language by J.E. Rumbaugh and M.E. Loomis
	of {GE}, similar to {C++}.  It is used in implementation of
	{CAD}/{CAE} software.  DSM is written in DSM and {C} and
	produces {C} as output.

	["DSM: An Object-Relationship Modeling Language", A. Shah et
	al, SIGPLAN Notices 24(10):191-202 (OOPSLA '89) (Oct 1989)].

	2. {DIGITAL Standard MUMPS}.

	(10 Jan 1995)

DSP

	{digital signal processing}

DSP32 Assembly Language

	A high-level assembly language for the DSP32
	Programmable DSP Chip.

DSP56000

	A {digital signal processing} chip from {Motorola}.

	An assembler called {a56} and a port of {gcc} called
	{dsp56k-gcc} are available.

DSP56001

	A {digital signal processing} chip from {Motorola}.

	An assembler called {a56} is available.

dsp56165-gcc

	A port of {gcc} version 1.40 to the {Motorola} {DSP56156} and
	{DSP56000} by Andrew Sterian <asterian@eecs.umich.edu>.

	{alt.sources}

dsp56k-gcc

	{Motorola}'s port of {gcc} version 1.37.1 to the {Motorola}
	{DSP56000}.

	{Finland
	(ftp://nic.funet.fi/pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z)}.
	{Australia
	(ftp://evans.ee.adfa.oz.au/pub/micros/56k/g56k.tar.Z)}.

DSP/C

	Numerical extension to C, for DSP applications.

	["DSP/C: A Standard High Level Language for DSP and Numeric
	Processing", K. Leary & W.  Waddington, Proc ICASSP 90, Apr
	1990, pp.1065-1068].

DSPL

	Digital Signal Processing Language.

	A {C}-derived {DSP} language.

	["The Programming Language DSPL", A. Schwarte & H. Hanselmann,
	Proc PCIM 90, 1990].

	(01 Dec 1994)

DSS

	1. {Decision Support Systems}.

	2. {Digital Signature Standard}.

	(16 Nov 1995)

DSSSL

	{Document Style Semantics and Specification Language}

DSU

	1. <communications> {Digital Service Unit}.

	2. {Disk Subsystem Unit} ({Artecon}).

	3. <humour> {Dwarf Storage Unit}.

	(01 Dec 1996)

DSVD

	{Digital Simultaneous Voice and Data}

DTALGOL

	Decision Table ALGOL.

	An {ALGOL} superset from {Victoria University}, Wellington
	that added {decision table}s and runs on {Burroughs Large
	System}.

	(02 Feb 1995)

DTD

	{Document Type Definition}

DTE

	{Data Terminal Equipment}

DT&E

	{Developmental Test and Evaluation}

DTLS

	{Descriptive Top-Level Specification}

DTMF

	{Dual Tone Multi Frequency}

DTP

	{desktop publishing}

DTS

	{Distributed Time Service}

D-type

	1. <hardware> A type of computer peripheral connector so named
	because one side is shorter (with one less pin) than the other
	giving a (squarish) "D" shape.  The connectors have two rows
	of pins (or holes).  Common types are 25-way (13+12 pins) and
	9-way (5+4 pins).  They are often used for serial lines,
	especially {RS-232}.

	(05 Jan 1995)

	2. {D-type flip-flop}.

D-type flip-flop

	<hardware> A digital logic device that stores the status of
	its "D" input whenever its clock input makes a certain
	transition (low to high or high to low).  The output, "Q",
	shows the currently stored value.

	Compare {J-K flip-flop}.

	(28 Mar 1995)

DUA

	{Directory User Agent}

dual

	<mathematics> Every field of mathematics has a different
	meaning of dual.  Loosely, where there is some binary symmetry
	of a theory, the image of what you look at normally under this
	symmetry is referred to as the dual of your normal things.

	In linear algebra for example, for any {vector space} V, over
	a {field}, F, the vector space of {linear maps} from V to F is
	known as the dual of V.  It can be shown that if V is
	finite-dimensional, V and its dual are {isomorphic} (though no
	isomorphism between them is any more natural than any other).

	There is a natural {embedding} of any vector space in the dual
	of its dual:

	    V -> V'': v -> (V': w -> wv : F)

	(x' is normally written as x with a horizontal bar above it).
	I.e. v'' is the linear map, from V' to F, which maps any w to
	the scalar obtained by applying w to v.  In short, this
	double-dual mapping simply exchanges the roles of function and
	argument.

	It is conventional, when talking about vectors in V, to refer
	to the members of V' as covectors.

	(16 Mar 1997)

DUAL-607

	An early system on the {IBM 701}.

	[CACM 2(5):16 (May 1959)].

	(13 Dec 1994)

dual-attached

	The form of {FDDI} interface where a device is connected to
	both FDDI token-passing rings, so that uninterrupted operation
	continues in the event of a failure of either of the rings.
	All connections to the main {FDDI} rings are dual-attached.
	Typically, a small number of critical infrastructure devices
	such as {router}s and {concentrator}s are dual-attached,
	whereas {host} computers are normally single-attached or
	{dual-homed} to a router or concentrator.

	For example, a ring could be formed between a single router
	and two concentrators (all dual-attached) then all other
	components that need to be fault-tolerant (typically file
	servers) can be {dual-homed} to both concentrators.

	(13 Dec 1994)

dual-homed

	<networking> A kind of connection to a {FDDI} network where a
	{host} is simultaneously connected to two separate devices in
	the same FDDI ring.  One of the connections becomes active
	while the other one is automatically blocked.  If the first
	connection fails, the backup link takes over with no
	perceptible delay.

	A dual-homed device can tolerate a fault in one of its "homes"
	whereas a {dual-attached} device can tolerate a fault in one
	of the rings.

	(13 Dec 1994)

Dual In-Line

	<hardware> {Dual In-Line Package}.

Dual In-line Memory Module

	<storage> Small circuit boards carrying memory {integrated
	circuits}, with signal and power pins on both sides of the
	board, in contrast to {single-in-line memory modules} (SIMM).

	The individual gold or lead connectors (pins) on SIMMs,
	although they are on both sides of the chip, are connected to
	the same memory chip, while on a DIMM, the connections on each
	side of the module connect to different chips.  This allows
	for a wider data path, as more modules can be accessed at
	once.  DIMM pins are arranged in a zigzag design to allow PCB
	tracks to pass between them.

	The 8-byte DIMM format with dual-sided contacts can
	accommodate 4- and 16-megabit {dynamic RAM} chips, and is
	predicted to handle 64- and 256-Mbit devices.  The 8-byte DIMM
	will hold up to 32 megabytes of memory using 16-Mbit DRAMs,
	but with the 256-Mbit future-generation DRAM, it will be able
	to hold a 64-Mx64 configuration.  Another variation, the
	72-pin {SO-DIMM}, is designed to connect directly to 32 bit
	data buses, and is intended for use in memory-expansion
	applications in {notebooks}.

	A Dual in-line memory module (DIMM), as opposed to SIMMs (used
	by the majority of the PC industry) allows for a 128 bit data
	path by interleaving memory on alternating memory access
	cycles.  SIMMs on the other hand, have a 64 bit data path.
	Suppliers are unanimous in their belief that the DIMM will
	eventually replace the SIMM as the market's preferred memory
	module.

	(28 Jan 1996)

Dual In-Line Package

	<hardware> (DIL, DIP) The most common type of package for
	small and medium scale {integrated circuit}s, with up to about
	48 pins.  The pins hang vertically from the two long edges of
	the rectangular package, spaced at intervals of 0.1 inch.  The
	pins fit through holes in the circuit board to which they are
	soldered or into a socket.

	[More than 48 pins?]

	(06 Feb 1995)

dual ported

	A term used to describe memory {integrated circuit}s which can
	be accessed simultaneously via two independent address and
	data busses.

	Dual ported memory is often used in {video display} hardware,
	especially in conjunction with {Video Random Access Memory}
	(VRAM).  The two ports allow the video display hardware to
	read memory to display the contents on screen at the same time
	as the CPU writes data to other areas of the same memory.  In
	single-ported memory these two processes cannot occur
	simultanteously, the CPU must wait, thus resulting in slower
	access times.  {Cycle stealing} is one technique used to avoid
	this in single-ported {video memory}.

	(12 Jan 1995)

Dual Tone Multi Frequency

	<communications> (DTMF, or "touch-tone") A method used by the
	telephone system to communicate the keys pressed when
	dialling.  Pressing a key on the phone's keypad generates two
	simultaneous tones, one for the row and one for the column.
	These are decoded by the exchange to determine which key was
	pressed.

	(28 Mar 1995)

DUEL

	A front end to {gdb} by Michael Golan <mg@cs.princeton.edu>.
	DUEL implements a language designed for debugging {C}
	programs.  It mainly features efficient ways to select and
	display data items.  It is normally linked into the gdb
	executable, but could stand alone.  It interprets a subset of
	{C} in addition to its own language.

	Version 1.10.

	{(ftp://ftp.cs.princeton.edu/duel/)}

	(20 Mar 1993)

Duff's device

	The most dramatic use yet seen of {fall through} in {C},
	invented by Tom Duff when he was at Lucasfilm.  Trying to
	{bum} all the instructions he could out of an inner loop that
	copied data serially onto an output port, he decided to unroll
	it.  He then realised that the unrolled version could be
	implemented by *interlacing* the structures of a switch and a
	loop:

	  register n = (count + 7) / 8;      /* count > 0 assumed */

	  switch (count % 8)
	  {
	  case 0:        do {  *to = *from++;
	  case 7:              *to = *from++;
	  case 6:              *to = *from++;
	  case 5:              *to = *from++;
	  case 4:              *to = *from++;
	  case 3:              *to = *from++;
	  case 2:              *to = *from++;
	  case 1:              *to = *from++;
	                     } while (--n > 0);
	  }

	Shocking though it appears to all who encounter it for the
	first time, the device is actually perfectly valid, legal C.
	C's default {fall through} in case statements has long been
	its most controversial single feature; Duff observed that
	"This code forms some sort of argument in that debate, but I'm
	not sure whether it's for or against."

	[For maximal obscurity, the outermost pair of braces above
	could be actually be removed - GLS]

dumbed down

	<jargon> Simplified, with a strong connotation of
	*over*simplified.  Often, a {marketroid} will insist that the
	interfaces and documentation of software be dumbed down after
	the designer has burned untold gallons of midnight oil making
	it smart.  This creates friction.

	See {user-friendly}.

	(14 Apr 1995)

dumb terminal

	<hardware> A type of {terminal} that consists of a keyboard
	and a display screen that can be used to enter and transmit
	data to, or display data from, a computer to which it is
	connected.  A dumb terminal, in contrast to an {intelligent
	terminal}, has no independent processing capability or
	{auxiliary storage} and thus cannot function as a stand-alone
	device.

	The dumbest kind of terminal is a {glass tty}.  The next step
	up has a minimally {addressable cursor} but no on-screen
	editing or other features normally supported by an
	{intelligent terminal}.

	Once upon a time, when glass ttys were common and addressable
	cursors were something special, what is now called a dumb
	terminal could pass for a smart terminal.

	[Examples?]

	(14 Apr 1995)

dump

	<operating system> 1. An undigested and voluminous mass of
	information about a problem or the state of a system,
	especially one routed to the slowest available output device
	(compare {core dump}), and most especially one consisting of
	hex or octal {runes} describing the byte-by-byte state of
	memory, mass storage, or some file.  In {elder days},
	debugging was generally done by "groveling over" a dump (see
	{grovel}); increasing use of high-level languages and
	interactive debuggers has made such tedium uncommon, and the
	term "dump" now has a faintly archaic flavour.

	2. A {backup}.  This usage is typical only at large
	{time-sharing} installations.

	{Unix manual page}: dump(1).

	(01 Dec 1994)

dumpster diving

	/dump'-ster di:'-ving/ 1. The practice of sifting refuse from
	an office or technical installation to extract confidential
	data, especially security-compromising information ("dumpster"
	is an Americanism for what is elsewhere called a "skip").
	Back in AT&T's monopoly days, before paper shredders became
	common office equipment, phone phreaks (see {phreaking}) used
	to organise regular dumpster runs against phone company plants
	and offices.  Discarded and damaged copies of AT&T internal
	manuals taught them much.  The technique is still rumored to
	be a favourite of crackers operating against careless targets.

	2. The practice of raiding the dumpsters behind buildings
	where producers and/or consumers of high-tech equipment are
	located, with the expectation (usually justified) of finding
	discarded but still-valuable equipment to be nursed back to
	health in some hacker's den.  Experienced dumpster-divers not
	infrequently accumulate basements full of moldering (but still
	potentially useful) {cruft}.

dup killer

	/d[y]oop kill'r/ Software that is supposed to detect and
	delete duplicates of a message that may have reached the
	{FidoNet} system via different routes.

	See also {dup loop}.

	(02 Feb 1995)

duplex

	<communications> A half-duplex communication channel can, at
	any given time, carry data in either one direction or the
	other, but not both.  A full-duplex channel can carry data in
	both directions at once.  A {simplex} channel can only ever
	carry data in one direction.

	Early use of the term "duplex" arose in wireless, telegraph,
	and telephone communications, where "duplex" circuits between
	communicating terminals were capable of transmission in both
	directions, and "simplex" indicated transmission from a sender
	to a reciever, or broadcast to several potential receivers.

	In communications between computers or computing processes,
	particularly those involving human keyboarding and/or reading,
	duplex came to mean the re-transmission of a keyboard
	character to the output display.  Early input device such as
	the Teletype {ASR-33} {teleprinter}, being descended from the
	electric typewriter, print all input characters as they are
	typed.  In contrast, the {video terminal}s that have replaced
	them require that, as well as the character be transmitted to
	the receiver, it should also be displayed on the screen
	("{echo}ed").  The echo can be effected locally, but this can
	confuse the operator because characters continue to appear on
	the screen, even when the communication circuit has failed.

	Additionally, if the echo of the character was effected by the
	remote (receiving) process, the operator could see and correct
	not only typing errors, but also transmission errors.  This
	crude but effective mechanism was called, somewhat
	misleadingly, "full duplex", and the echoing of characters by
	the sending process was called half duplex.  The terms "remote
	echo" and "local echo" are now more common.  Nearly all
	communications circuits used by computers are two-way, so the
	distinction between simplex and duplex is seldom made.

	(12 Apr 1995)

Duplex High Speed Data

	(DHSD) A term which describes a {full-duplex} channel that can
	carry 64 kilobits per second.

	This is the kind of service provided by an Inmarsat-B type
	portable earth station or a {leased line} (not {ISDN}).

	(02 Feb 1995)

dup loop

	/d[y]oop loop/ (also "dupe loop") [FidoNet] An infinite stream
	of duplicated, near-identical messages on a FidoNet {echo},
	the only difference being unique or mangled identification
	information applied by a faulty or incorrectly configured
	system or network gateway, thus rendering {dup killer}s
	ineffective.  If such a duplicate message eventually reaches a
	system through which it has already passed (with the original
	identification information), all systems passed on the way
	back to that system are said to be involved in a {dup loop}.

Durra

	Description language for coarse-grained concurrency on
	heterogeneous processors.  "Durra: A Task-level Description
	Language", M.R.  Barbacci et al, CMU/SEI-86-TR-3, CMU 1986.

dusty deck

	Old software (especially applications) which one is obliged to
	remain compatible with, or to maintain.  {DP} types call this
	"legacy code", a term hackers consider smarmy and excessively
	reverent.  The term implies that the software in question is a
	holdover from card-punch days.  Used especially when referring
	to old scientific and {number crunching} software, much of
	which was written in FORTRAN and very poorly documented but is
	believed to be too expensive to replace.  See {fossil};
	compare {crawling horror}.

DV cartridge

	<games> (Digital Video?)  A plug-in circuit cartridge required
	by some games consoles in order to play {MPEG} video material.

	(02 Nov 1994)

DVD

	{Digital Video Disc}

DVD-R

	{Digital Video Disc}

DVD-ROM

	{Digital Video Disc}

DVI

	<file format> Device independent file format.  A dvi file
	containing a description of a formatted document is the usual
	output of {TeX}.  A number of utiltiies exist to view and
	print DVI files on various systems and devices.

	(17 Nov 1996)

Dvorak

	<hardware> A configuration of (computer) keyboard keys
	arranged to increase the speed and ease of typing over the
	normal {qwerty} layout.  The home row of keys are for the
	characters A, O, E, U, I, D, H, T, N and S.

	(17 Nov 1996)

Dwarf Storage Unit

	<humour> (DSU) An {IBM} term for a cupboard.

	(24 Jun 1996)

dweeb

	An even lower form of life than the {spod}, found in much the
	same habitat as the former.  though more prevailent on {talker
	system}s.  Unlike spods, upon receiving the desired response
	to the question "Are you male or female?", dweebs will then
	engage upon a detailed description of themselves and how
	wonderful they are, often in the hopes of truly impressing the
	other with their "charm" and "wit".  Nearly all dweebs are
	male, but very few actually live up to the image that they
	present.  Dweebs, unfortunately, are often the cause of
	ill-will, and may well bring a bad reputation to the system in
	question.  They are often, however, easy to wind up and can be
	the source of great mirth to the seasoned user.

dwg

	<file name extension> The file name extension for {drawing}
	files.

	[From which program(s)?]

	(26 Jan 1997)

DWIM

	/dwim/ [acronym, "Do What I Mean" (not what I say)] 1. Able to
	guess, sometimes even correctly, the result intended when
	bogus input was provided.

	2. The BBNLISP/INTERLISP function that attempted to accomplish
	this feat by correcting many of the more common errors.  See
	{hairy}.

	3. Occasionally, an interjection hurled at a balky computer,
	especially when one senses one might be tripping over
	legalisms (see {legalese}).

	Warren Teitelman originally wrote DWIM to fix his typos and
	spelling errors, so it was somewhat idiosyncratic to his
	style, and would often make hash of anyone else's typos if
	they were stylistically different.  Some victims of DWIM thus
	claimed that the acronym stood for "Damn Warren's Infernal
	Machine!'.

	In one notorious incident, Warren added a DWIM feature to the
	command interpreter used at {Xerox PARC}.  One day another
	hacker there typed "delete *$" to free up some disk space.
	(The editor there named backup files by appending "$" to the
	original file name, so he was trying to delete any backup
	files left over from old editing sessions.)  It happened that
	there weren't any editor backup files, so DWIM helpfully
	reported "*$ not found, assuming you meant 'delete *'".  It
	then started to delete all the files on the disk!  The hacker
	managed to stop it with a {Vulcan nerve pinch} after only a
	half dozen or so files were lost.

	The disgruntled victim later said he had been sorely tempted
	to go to Warren's office, tie Warren down in his chair in
	front of his workstation, and then type "delete *$" twice.

	DWIM is often suggested in jest as a desired feature for a
	complex program; it is also occasionally described as the
	single instruction the ideal computer would have.  Back when
	proofs of program correctness were in vogue, there were also
	jokes about "DWIMC" (Do What I Mean, Correctly).  A related
	term, more often seen as a verb, is DTRT (Do The Right Thing);
	see {Right Thing}.

DX4

	See {Intel DX4}.

DXF

	{Drawing Exchange Format}

DYANA

	DYnamics ANAlyzer.  Early specialised language for vibrational
	and other dynamic systems.  [Sammet 1969, p.628].

Dylan

	<language> DYnamic LANguage.

	A simple {object-oriented} {Lisp} dialect, most closely
	resembling {CLOS} and {Scheme}, developed by Advanced
	Technology Group East at {Apple Computer}.

	See also {Marlais}.

	{Compiler implemented in Scheme
	(ftp://crl.dec.com/pub/DEC/Thomas)}.

	E-mail: <dylan-manual-request@cambridge.apple.com>.

	Mailing list: <info-thomas@crl.dec.com>.

	["Dylan, an Object-Oriented Dynamic Language", Apple 1992].

	(19 Apr 1995)

Dylperl

	A {dynamic linking} package for {Perl} by Roberto Salama
	<rs@fi.gs.com>.  Dynamically loaded functions are accessed as
	if they were user-defined functions.  This code is based on
	Oliver Sharp's May 1993 article in Dr. Dobbs Journal ("Dynamic
	Linking under Berkeley Unix").

	Posted to {news:comp.lang.perl}, 11 Aug 1993, article
	<CBM3Bo.Lpw@fi.gs.com>.

	(11 Aug 1993)

dynamic adaptive routing

	Automatic re{routing} of traffic based on analysis of current
	{network} conditions.  This does not include routing decisions
	based on predefined information.

	(30 Jan 1995)

Dynamic Address Translation

	<architecture> (DAT) Conversion of a {virtual address} into a
	{physical address}, as performed by a {memory management unit}
	and an {operating system} which supports {virtual memory}.

	(30 Jan 1995)

Dynamically Linked Library

	<library> (DLL) A {library} which is linked to {application
	programs} when they are loaded or run rather than as the final
	phase of {compilation}.  This means that the same block of
	library code can be shared between several {tasks} rather than
	each task containing copies of the routines it uses.  The
	executable is compiled with a library of "{stubs}" which allow
	{link errors} to be detected at {compile-time}.  Then, at
	{run-time}, either the system {loader} or the task's entry
	code must arrange for library calls to be patched with the
	addresses of the real shared library routines, possibly via a
	{jump table}.

	The alternative is to make library calls part of the
	{operating system} {kernel} and enter them via some kind of
	{trap} instruction.  This is generally less efficient than an
	ordinary {subroutine} call.  It is important to ensure that
	the version of a dynamically linked library is compatible with
	what the executable expects.

	Examples of operating systems using dynamic linking are
	{SunOS}, {Microsoft Windows} and {RISC OS} on the {Acorn}
	{Archimedes}.

	(12 Dec 1995)

dynamic analysis

	<programming> Evaluation of a program based on its execution.
	Dynamic analysis relies on executing a piece of software with
	selected test data.

	(13 May 1996)

dynamic binding

	The property of {object-oriented programming} languages where
	the code executed to perform a given operation is determined
	at run-time from the {class} of the operand(s) (the receiver
	of the message).  There may be several different classes of
	objects which can receive a given message.  An expression may
	denote an object which may have more than one possible class
	and that class can only be determined at run-time.  New
	classes may be created that can receive a particular message,
	without changing (or recompiling) the code which sends the
	message.  An class may be created that can receive any set of
	existing messages.

	{C++} implements dynamic binding using "{virtual member
	function}s".

	One important reason for having dynamic binding is that it
	provides a mechanism for selecting between alternatives which
	is arguably more robust than explicit selection by
	conditionals or {pattern matching}.  When a new {subclass} is
	added, or an existing subclass changes, the necessary
	modifications are localised: you don't have incomplete
	conditionals and broken patterns scattered all over the
	program.

	See {overloading}.

Dynamic Data Exchange

	(DDE) A {Microsoft Windows} 3 {hotlink} {protocol} that allows
	{application program}s to communicate using a {client-server}
	model.  Whenever the server (or "publisher") modifies part of
	a document which is being shared via DDE, one or more clients
	("subscribers") are informed and include the modification in
	the copy of the data on which they are working.

Dynamic Execution

	<processor> A combination of techniques - {multiple branch
	prediction}, {data flow analysis} and {speculative execution}.
	{Intel} implemented Dynamic Execution in the {P6} after
	analysing the execution of billions of lines of code.

	(05 May 1995)

Dynamic Host Configuration Protocol

	(DHCP) A {protocol} introduced by {Microsoft} on their {NT
	server} with version 3.5 in late 1994.  This protocol provides
	a means to dynamically allocate {IP address}es to {IBM PC}s
	running on a {Microsoft Windows} {local area network}.  The
	system administrator assigns a range of IP addresses to DHCP
	and each client PC on the LAN has its {TCP/IP} software
	configured to request an IP address from the DHCP server.  The
	request and grant process uses a lease concept with a
	controllable time period.  More information can be found in
	the Microsoft documentation on NT Server.

	Compare {Reverse Address Resolution Protocol}.

	(12 Jan 1995)

dynamic link

	<compiler> A pointer from an {activation record} to the
	{activation record} for the {scope} from which the current
	scope was called at {run-time}.  This is used in a {statically
	scoped} language to restore the {environment pointer} on exit
	from a scope.  To access a {non-local variable} in a
	{dynamically scoped} language, dynamic links are followed
	until a binding for the given variable name is found.

	(07 Mar 1995)

Dynamic Object-Oriented Requirements System

	<programming, tool, product> (DOORS) A tool from {Quality
	Systems & Software Ltd.} for handling all kinds of
	{requirements} (in fact, any information at all) as modules
	containing trees of text objects, qualified by an arbitrary
	number of user-defined attributes, and cross-linked by
	directional links.

dynamic RAM

	{dynamic random access memory}

dynamic random access memory

	<storage> (DRAM) A type of {semiconductor} memory in which the
	information is stored in {capacitors} on a {MOS} {integrated
	circuit}.  Typically each {bit} is stored as an amount of
	electrical charge in a storage cell consisting of a capacitor
	and a {transistor}.  Due to leakage the capacitor discharges
	gradually and the memory cell loses the information.
	Therefore, to preserve the information, the memory has to be
	refreshed periodically.  Despite this inconvenience, the DRAM
	is a very popular memory technology because of its high
	density and consequent low price.

	The first commercially available DRAM chip was the {Intel
	1103}, introduced in 1970.

	The early DRAM chips up to a 16k x 1 (16384 locations of one
	bit each) model needed 3 supply voltages (+5V, -5V and +12V).
	Beginning with the 64 kilobit chips, {charge pumps} were
	included on-chip to create the necessary supply voltages out
	of a single +5V supply.  This was necessary to fit the device
	into a 16-pin {DIL} package, which was the preferred package
	at the time, and also made them easier to use.

	To reduce the pin count, thereby helping miniaturization,
	DRAMs generally had a single data line which meant that a
	computer with an N bit wide {data bus} needed a "bank" of (at
	least) N DRAM chips.  In a bank, the address and control
	signals of all chips were common and the data line of each
	chip was connected to one of the data bus lines.

	Beginning with the 256 kilobit DRAM, a tendency towards
	{surface mount} packaging arose and DRAMs with more than one
	data line appeared (e.g. 64k x 4), reducing the number of
	chips per bank.  This trend has continued and DRAM chips with
	up to 36 data lines are available today.  Furthermore,
	together with surface mount packages, memory manufacturers
	began to offer memory modules, where a bank of memory chips
	was preassembled on a little {printed circuit} board (SIP =
	Single Inline Pin Module, SIMM = Single Inline Memory Module,
	DIMM = Dual Inline Memory Module).  Today, this is the
	preferred way to buy memory for {workstations} and {personal
	computers}.

	DRAM bit cells are arranged on a chip in a grid of rows and
	columns where the number of rows and columns are usually a
	power of two.  Often, but not always, the number of rows and
	columns is the same.  A one megabit device would then have
	1024 x 1024 memory cells.  A single memory cell can be
	selected by a 10 bit row address and a 10 bit column address.

	To access a memory cell, one entire row of cells is selected
	and its contents are transferred into an on-chip buffer.  This
	discharges the storage capacitors in the bit cells.  The
	desired bits are then read or written in the buffer.  The
	(possibly altered) information is finally written back into
	the selected row, thereby refreshing all bits (recharging the
	capacitors) in the row.

	To prevent data loss, all bit cells in the memory need to be
	refreshed periodically.  This can be done by reading all rows
	in regular intervals.  Most DRAMs since 1970 have been
	specified such that one of the rows needs to be refreshed at
	least every 15.625 microseconds.  For a device with 1024 rows,
	a complete refresh of all rows would then take up to 16 ms; in
	other words, each cell is guaranteed to hold the data for 16
	ms without refresh.  Devices with more rows have accordingly
	longer retention times.

	Many varieties of DRAM exist today.  They differ in the the
	way they are interfaced to the system - the structure of the
	memory cell itself is essentially the same.

	"Traditional" DRAMs have multiplexed address lines and
	separate data inputs and outputs.  There are three control
	signals: RAS\ (row address strobe), CAS\ (column address
	strobe), and WE\ (write enable) (the backslash indicates an
	{active low} signal).  Memory access procedes as follows:
	1. The control signals initially all being inactive (high), a
	memory cycle is started with the row address applied to the
	address inputs and a falling edge of RAS\ .  This latches the
	row address and "opens" the row, transferring the data in the
	row to the buffer.  The row address can then be removed from
	the address inputs since it is latched on-chip.  2. With RAS\
	still active, the column address is applied to the address
	pins and CAS\ is made active as well.  This selects the
	desired bit or bits in the row which subsequently appear at
	the data output(s).  By additionally activating WE\ the data
	applied to the data inputs can be written into the selected
	location in the buffer.  3. Deactivating CAS\ disables the
	data input and output again.  4. Deactivating RAS\ causes the
	data in the buffer to be written back into the memory array.

	Certain timing rules must be obeyed to guarantee reliable
	operation.  1. RAS\ must remain inactivate for a while before
	the next memory cycle is started to provide sufficient time
	for the storage capacitors to charge (Precharge Time).  2. It
	takes some time from the falling edge of the RAS\ or CAS\
	signals until the data appears at the data output.  This is
	specified as the Row Access Time and the Column Access Time.
	Current DRAM's have Row Access Times of 50-100 ns and Column
	Access Times of 15-40 ns.  Speed grades usually refer to the
	former, more important figure.

	Note that the Memory Cycle Time, which is the minimum time
	from the beginning of one access to the beginning of the next,
	is longer than the Row Access Time (because of the Precharge
	Time).

	Multiplexing the address pins saves pins on the chip, but
	usually requires additional logic in the system to properly
	generate the address and control signals, not to mention
	further logic for refresh.  Therefore, DRAM chips are usually
	preferred when (because of the required memory size) the
	additional cost for the control logic is outweighed by the
	lower price.

	Based on these principles, chip designers have developed many
	varieties to improve performance or ease system integration of
	DRAMs:

	PSRAMs (Pseudo Static Random Access Memory) are essentially
	DRAMs with a built-in address {multiplexor} and refresh
	controller.  This saves some system logic and makes the device
	look like a normal {SRAM}.  This has been popular as a lower
	cost alternative for SRAM in {embedded systems}.  It is not a
	complete SRAM substitute because it is sometimes busy when
	doing self-refresh, which can be tedious.

	Nibble Mode DRAM is a standard DRAM where four successive bits
	can be clocked out of the single data line by successive
	pulses on the CAS\ line while RAS\ is active, without
	supplying a column address for the bits following the first.
	This mode is now unfashionable but can be found on older chips
	(64 kilobit and 256 kilobit).

	{Page Mode DRAM} is a standard DRAM where any number of
	accesses to the currently open row can be made while the RAS
	signal is kept active.

	Static Column DRAM is similar to Page Mode DRAM, but to access
	different bits in the open row, only the column address needs
	to be changed while the CAS\ signal stays active.  The row
	buffer essentially behaves like SRAM.

	{Extended Data Out DRAM} (EDO DRAM) can continue to output
	data from one address while setting up a new address, for use
	in {pipelined} systems.

	VRAM (Video RAM) is DRAM with an additional long shift
	register that can be loaded from the row buffer.  The shift
	register can be regarded as a second interface to the memory
	that can be operated in parallel to the normal interface.
	This is especially useful in {frame buffers} for {CRT}
	displays.  These frame buffers generate a serial data stream
	that is sent to the CRT to modulate the electron beam.  By
	using the shift register in the VRAM to generate this stream,
	the memory is available to the computer through the normal
	interface most of the time for updating the display data,
	thereby speeding up display data manipulations.

	SDRAM (Synchronous DRAM) adds a separate clock signal to the
	control signals.  It allows more complex {state machines} on
	the chip and high speed "burst" accesses that clock a series
	of successive bits out (similar to the nibble mode).

	CDRAM (Cached DRAM) adds a separate static RAM array used for
	caching.  It essentially combines main memory and {cache}
	memory in a single chip.  The cache memory controller needs to
	be added externally.

	RDRAM (Rambus DRAM) changes the system interface of DRAM
	completely.  A byte-wide bus is used for address, data and
	command transfers.  The bus operates at very high speed: 500
	million transfers per second.  The chip operates synchronously
	with a 250MHz clock.  Data is transferred at both rising and
	falling edges of the clock.  A system with signals at such
	frequencies must be very carefully designed, and the the
	signals on the Rambus Channel use nonstandard signal levels,
	making it incompatible with standard system logic.  These
	disadvantages are compensated by a very fast data transfer,
	especially for burst accesses to a block of successive
	locations.

	A number of different refresh modes can be included in some of
	the above device varieties:

	RAS\ only refresh: a row is refreshed by an ordinary read
	access without asserting CAS\.  The data output remains
	disabled.

	CAS\ before RAS\ refresh: the device has a built-in counter
	for the refresh row address.  By activating CAS\ before
	activating RAS\, this counter is selected to supply the row
	address instead of the address inputs.

	Self-Refresh: The device is able to generate refresh cycles
	internally.  No external control signal transitions other than
	those for bringing the device into self-refresh mode are
	needed to maintain data integrity.

	(11 Jul 1996)

dynamic scope

	<language> In a dynamically scoped language, e.g. most
	versions of {Lisp}, an {identifier} can be referred to, not
	only in the block where it is declared, but also in any
	function or procedure called from within that block, even if
	the called procedure is declared outside the block.

	This can be implemented as a simple stack of (identifier,
	value) pairs, accessed by searching down from the top of stack
	for the most recent instance of a given identifier.

	The opposite is {lexical scope}.  A common implementation of
	dynamic scope is {shallow binding}.

	(11 Jul 1996)

dynamic scoping

	{dynamic scope}

DYNAMO

	DYNamic MOdels.  A language for continuous {simulation}
	including economic, industrial and social systems, developed
	by Phyllis Fox and A.L. Pugh in 1959.

	Versions include DYNAMO II, DYNAMO II/370, DYNAMO II/F, DYNAMO
	III and Gaming DYNAMO.

	["DYNAMO User's Manual", A.L. Pugh, MIT Press 1976].

Dynix

	<library> A {host-based} library automation system from {Dynix
	Automated Library Systems}.  First installed in 1993, it is
	now used in over 2000 libraries worldwide.

	Dynix runs on {Unix} using the {UniVerse} post relational
	database.  The software is configurable using tables of
	parameters.  It includes modules for cataloguing, circulation,
	OPAC, acquisitions, serials, reserve book room, advance
	bookings, homebound, BiblioBus, Pac Plus for Windows, Kids
	Catalog, Dynix Online Catalog, media bookings, and community
	information.

	{(http://www.uk.dynix.com/classic.html)}

	(28 Apr 1995)

Dynix Automated Library Systems

	<company> The world's largest supplier of library automation
	systems with European offices in France, Germany, Ireland, the
	Netherlands and the UK.

	Dynix sell two library management systems - Horizon
	({client/server}) and, Dynix ({host-based}).  Both have {GUI}
	or {terminal interface}s.  Dynix also sell other products and
	services for {database} enrichment, interconnectivity, and
	on-line and {CD-ROM} databases.

	{Home (http://www.uk.dynix.com/dynix.html)}

	(28 Apr 1995)

dynner

	/din'r/ 32 bits, by analogy with {nybble} and {byte}.  Usage:
	rare and extremely silly.  See also {playte}, {tayste},
	{crumb}.

DYSAC

	Digital Simulated Analog Computer.

	[Sammet 1969, p. 629].

DYSTAL

	DYnamic STorage ALlocation.

	Adds lists, strings, sorting, statistics and matrix operations
	to FORTRAN.  Sammet 1969, p.388.  "DYSTAL: Dynamic Storage
	Allocation Language in FORTRAN", J.M. Sakoda, in Symbol
	Manipulation Languages and Techniques, D.G. Bobrow ed, N-H
	1971, pp.302- 311.

	(17 Mar 1995)