Free On-line Dictionary of Computing

	<introduction> FOLDOC is a searchable dictionary of acronyms,
	jargon, programming languages, tools, architecture, operating
	systems, networking, theory, conventions, standards,
	mathematics, telecoms, electronics, institutions, companies,
	projects, products, history, in fact anything to do with
	computing.

	Copyright 1985 by Denis Howe

	Permission is granted to copy, distribute and/or modify this
	document under the terms of the GNU Free Documentation
	License, Version 1.1 or any later version published by the
	Free Software Foundation; with no Invariant Sections, Front-
	or Back-Cover Texts.  A copy of the license is included in the
	section entitled "{GNU Free Documentation License}".

	Please refer to the dictionary as "The Free On-line Dictionary
	of Computing, http://foldoc.org/, Editor Denis Howe" or
	similar.  Please make the URL both text (for humans) and a
	hyperlink (for Google).

	The dictionary has been growing since 1985 and now contains
	nearly 15,000 definitions in over five megabytes of text.
	Entries are cross-referenced to each other and to related
	resources elsewhere on the net.

	Where {LaTeX} commands for certain non-{ASCII} symbols are
	mentioned, they are described in their own entries.  "\" is
	also used to represent the Greek lower-case lambda used in
	{lambda-calculus}.  Cross-references to other entries look
	{like this}.  Note that not all cross-references actually lead
	anywhere yet, but if you find one that leads to something
	inappropriate, please {let me know (feedback.html)}.  Dates
	after entries indicate when that entry was last updated.  They
	do not imply that it was up-to-date at that time.

	You can search the latest version of the dictionary on the
	{WWW} at URL http://foldoc.org/.  If you find an entry that is
	wrong or inadequate please let me know.

	See {Pronunciation} for how to interpret the pronunciation
	given for some entries.

	{More about FOLDOC (about.html)}.

	(2007-07-25)

Acknowledgements

	<introduction> Many thanks to the hundreds of {contributors
	(contributors.html)}, and especially to the {Guest Editors
	(editors.html)}, mirror site maintainers and the maintainers
	of the following resources from which some entries originate:

	Mike Sendall's STING Software engineering glossary
	<sendall@dxpt01.cern.ch>, 1993-10-13,

	Bill Kinnersley's {Language List
	(http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm)}
	v2.2, 1994-01-15,

	Mark Hopkins' catalogue of Free Compilers and Interpreters
	v6.4, 1994-02-28,

	The on-line hacker {Jargon File} v3.0.0, 1993-07-27,

	Internet Users' Glossary (RFC 1392, FYI 18), Jan 1993.

	John Cross's computer glossary, 1994-11-01.

	John Bayko's Great Microprocessors of the Past and Present,
	v4.0.0, 1994-08-18.

	{Electronic Commerce Dictionary}.

	(2007-11-16)

Missing definition

	<introduction> First, this is an (English language)
	__computing__ dictionary.  It includes lots of terms from
	related fields such as mathematics and electronics, but if
	you're looking for (or want to submit) words from other
	subjects or general English words or other languages, try
	{(http://wikipedia.org/)}, {(http://onelook.com/)},
	{(http://yourdictionary.com/)} or
	{(http://reference.allrefer.com/)}.

	If you've already searched the dictionary for a computing term
	and it's not here then please __don't tell me__.  There are,
	and always will be, a great many missing terms, no dictionary
	is ever complete.  I use my limited time to process the
	corrections and definitions people have submitted and to add
	the {most frequently requested missing terms (missing.html)}.

	Try one of the sources mentioned above or
	{(http://techweb.com/encyclopedia/)},
	{(http://whatis.techtarget.com/)} or
	{(http://google.com/)}.

	See also the note on {bad cross-references (dangling.html)}.

	What does ... mean?  How do I ...?  Where can I find ...?

	I'm afraid I don't have time to answer personal requests for
	definitions, help configure your PC, do your homework, or
	explain what that Windoze error message means, etc. so please
	__don't ask me__.

	How do I submit a definition?

	I'm afraid I can't accept any more new definitions at the moment, I
	have a huge backlog awaiting processing.

	(2007-08-02)

!

	{exclamation mark}

"

	{double quote}

#

	{hash}

$

	{dollar}

$1

	<programming> The first {positional parameter} in {shell}
	programming and related languages.  Occurrences of $1 are
	replaced by the first {actual argument} provided by the user
	when the {shell script} is run.  $2 is replaced by the second
	argument, and so on up to $9.

	You may have arrived at this entry by following a {URL} like
	"http://foldoc.org?$1", which is actually a {template} used to
	generate pointers to FOLDOC definitions by replacing "$1" with
	the term to be defined, e.g. in a {wiki} {interwiki map}.

	(2006-09-10)

%

	{percent}

'

	{single quote}

+

	{plus}

,

	{comma}

/

	{oblique stroke}

0

	{zero}

0/1 knapsack problem

	<application> The {knapsack problem} restricted so that the
	number of each item is zero or one.

	(1995-03-13)

1

	{one}

100BaseFX

	<networking> {Fast Ethernet} over {optical fibre}.

	(1998-03-23)

100BaseT

	<networking> Any of several {Fast Ethernet} 100 {MBps}
	{CSMA/CD} standards for {twisted pair} cables, including:
	100BaseTx (100 Mbps over two-pair {Cat5} or better cable),
	100BaseT4 (100 Mbps over four-pair {Cat3} or better cable),
	100BaseT2 (in committee; 100 Mbps over two-pair Cat3 or better
	cable).  All are standards (or planned standards) under {IEEE}
	{802.3}.

	(1997-01-07)

100BaseTX

	<networking> The predominant form of {Fast Ethernet}.
	100BaseTX runs over two pairs of wires in {category 5} cable.

	(1998-06-30)

100BaseVG

	<networking> A 100 {MBps} {Ethernet} standard specified to run
	over four pairs of {category 3} {UTP} wires (known as voice
	grade, hence the "VG").  It is also called 100VG-AnyLAN
	because it was defined to carry both {Ethernet} and {token
	ring} {frame} types.

	100BaseVG was originally proposed by {Hewlett-Packard},
	ratified by the {ISO} in 1995 and practically extinct by 1998.

	100BaseVG started in the IEEE 802.3u committee as {Fast
	Ethernet}.  One faction wanted to keep {CSMA/CD} in order to
	keep it pure Ethernet, even though the {collision domain}
	problem limited the distances to one tenth that of {10baseT}.
	Another faction wanted to change to a polling architecture
	from the hub (they called it "demand priority") in order to
	maintain the 10baseT distances, and also to make it a
	{deterministic} {protocol}.  The CSMA/CD crowd said, "This is
	802.3 -- the Ethernet committee.  If you guys want to make a
	different protocol, form your own committee".  The IEEE 802.12
	committee was thus formed and standardised 100BaseVG.  The
	rest is history.

	(1998-06-30)

100VG-AnyLAN

	{100BaseVG}

10base2

	<networking> (Or "cheapernet") The variant of {Ethernet} that
	uses thin {coaxial} cable (RG-58 or similar), as opposed to
	{10base5} cable.

	The "10" means 10 {Mbps}, "base" means "baseband" as opposed
	to {radio frequency} and "2" means a maximum single cable
	length of 200m.

	(1995-11-14)

10base5

	<networking> An {Ethernet} network cabling specification
	operating at ten {Mbps}, "baseband" (as opposed to {radio
	frequency}), and with a maximum single cable length of 500
	metres.  This is normally carried on {RG8} cable.

	Compare {10base2}, {10baseT}.

	(2002-06-17)

10baseT

	<networking> A variant of {Ethernet} which allows stations to
	be attached via {twisted pair} cable.

	(1995-01-24)

120 reset

	<jargon> /wuhn-twen'tee ree'set/ (After 120 volts, US mains
	voltage) To cycle power on a computer in order to reset or
	unjam it.

	Compare {Big Red Switch}, {power cycle}.

	[{Jargon File}]

	(1994-11-23)

1-2-3

	{Lotus 1-2-3}

1394

	{High Performance Serial Bus}

1541

	{Commodore 1541}

1581

	{Commodore 1581}

16000

	{National Semiconductor 16000}

16450

	<hardware> A {UART} with a one-byte {FIFO} buffer.  The 16450
	is a higher speed, fixed version of the {8250}.  It was
	superseded by the {16550}.

	The 16450 was used for the {IBM PC AT} and {PS/2} but will not
	work in a {IBM PC XT}.

	(2004-03-21)

16550

	<hardware> A version of the {16450} {UART} with a 16-byte
	{FIFO}.  Superseded by the 16550A.

	This chip might not operate correctly with all software.

	The 16C550 is a {CMOS} version.

	(2004-03-24)

16550A

	<hardware> A version of the {16550} {UART}.  Superseded by the
	{16650}.

	(2003-07-05)

16650

	<hardware> A version of the {16550A} {UART} with a 32-byte
	{FIFO}.  Superseded by the {16750C}.

	(2003-07-05)

16750C

	<hardware> A {UART} with a 64-byte {FIFO}.

	The 16C750 is a {CMOS} version.

	[Is there a 16750 (with no "C" on the end)?]

	(2004-03-24)

16 bit

	<architecture, programming> Using {words} containing sixteen
	{bits}.  This adjective often refers to the number of bits
	used internally by a computer's {CPU}.  E.g. "The {Intel 8086}
	is a sixteen bit processor".  Its external {data bus} or
	{address bus} may be narrower.  The term may also refer to the
	size of an instruction in the computer's {instruction set} or
	to any other item of data.

	See also {16-bit application}.

	(1996-05-13)

16-bit application

	<operating system> Software for {MS-DOS} or {Microsoft
	Windows} which originally ran on the 16-bit {Intel 8088} and
	{80286} {microprocessors}.  These used a {segmented address
	space} to extend the range of addresses from what is possible
	with just a 16-bit address.  Programs with more than 64
	kilobytes of code or data therefore had to waste time
	switching between {segments}.  Furthermore, programming with
	segments is more involved than programming in a {flat address
	space}, giving rise to {warts} like {memory models} in {C} and
	{C++}.

	Compare {32-bit application}.

	(1996-04-06)

16C550

	{16550}

16C750

	{16750C}

16C850

	<hardware> A version of the {16450} {UART} in {CMOS} with
	128-{byte} {FIFO}.

	(2004-03-24)

1802

	<processor> An 8-bit {microprocessor} manufactured as CDP1802
	by {HARRIS Semiconductor}.  It has been around for ten years
	at least and is ideally suited for {embedded} applications.
	Some of its features are: 8-bit parallel organisation with
	bidirectional {data bus} and {multiplexed address bus}; static
	design -- no minimum {clock rate}; bit-programmable output
	port; four input pins which are directly tested by branch
	instructions; flexible programmable I/O mode; single-phase
	clock, with on-chip oscillator; 16 x 16 register matrix to
	implement multiple {program counters}, pointers, or
	{registers}

	(1995-11-21)

192.168.1.1

	<networking> The default {IP address} used to connect to many
	brands of {router} to set them up.  It can be used from a {web
	browser} in the {URL} {(http://192.168.1.1)}.  This URL, and
	the necessary default login details, are often printed on the
	router.  The same address may also be accessible via a
	{telnet} {command line interface}.

	This is a {private address} that is only visible when
	connected directly to the router, i.e. it will not be routed
	by other network hardware.

	{i19216811.com (http://www.i19216811.com/)}.

	(2012-09-20)

1NF

	{database normalisation}

1TBS

	{indent style}

1.TR.6

	<networking, protocol> A {control channel protocol} for
	{ISDN}.  It is a national {standard} in Germany but is being
	replaced by {Euro-ISDN}.

	(1995-03-27)

2

	<convention, character> In names of translation software,
	infix 2 often represents the word "to" with the connotation
	"translate to", as in {dvi2ps} ({DVI} to {PostScript}),
	int2string (integer to string) and {texi2roff} ({Texinfo} to
	[nt]{roff}).

	[{Jargon File}]

	(1995-01-25)

20-GATE

	<language> An algebraic language for the {G-20}, developed at
	{Carnegie} around 1965.

	(1995-02-27)

2780

	{Binary Synchronous Transmission}

2B1D

	{Basic Rate Interface}

2B1Q

	{two-binary, one-quaternary}

2B+D

	{Basic Rate Interface}

2NF

	{database normalisation}

2.PAK

	<language> An {artificial intelligence} language with
	{coroutines}.

	["The 2.PAK Language: Goals and Description", L.F. Melli, Proc
	IJCAI 1975].

	(1995-01-25)

32000

	{National Semiconductor 32000}

3270

	{IBM 3270}

32-bit application

	<architecture, operating system> {IBM PC} software that runs
	in a 32-bit {flat address space}.

	The term {32-bit application} came about because {MS-DOS} and
	{Microsoft Windows} were originally written for the {Intel
	8088} and {80286} {microprocessors}.  These are {16 bit}
	microprocessors with a {segmented address space}.  Programs
	with more than 64 kilobytes of code and/or data therefore had
	to switch between {segments} quite frequently.  As this
	operation is quite time consuming in comparison to other
	machine operations, the application's performance may suffer.
	Furthermore, programming with segments is more involved than
	programming in a flat address space, giving rise to some
	complications in programming languages like "{memory models}"
	in {C} and {C++}.

	The shift from 16-bit software to 32-bit software on {IBM PC}
	{clones} became possible with the introduction of the {Intel
	80386} microprocessor.  This microprocessor and its successors
	support a segmented address space with 16-bit and 32 bit
	segments (more precisely: segments with 16- or 32-bit address
	offset) or a linear 32-bit address space.  For compatibility
	reasons, however, much of the software is nevertheless written
	in 16-bit models.

	{Operating systems} like {Microsoft Windows} or {OS/2} provide
	the possibility to run 16-bit (segmented) programs as well as
	32-bit programs.  The former possibility exists for {backward
	compatibility} and the latter is usually meant to be used for
	new software development.

	See also {Win32s}.

	(1995-12-11)

3780

	{Binary Synchronous Transmission}

386

	{Intel 80386}

386BSD

	<operating system> (Or "jolix /joh'liks/) A {free software}
	{port} originally derived from the generally available parts
	of the "{Berkeley Net Release/2}" to the {Intel} {i386}
	architecture by William Jolitz and friends.  The name Jolix is
	used to differentiate it from {BSDI}'s port based on the same
	source tape, which is called {BSD/386}.

	Many new and innovative features were added to 386BSD
	following its original release in June 1992.  An unofficial
	{patchkit}, available from many {anonymous FTP} archives,
	solves many of the problems associated with 386BSD Version
	0.1.  In addition, many common Unix packages have been ported.

	386BSD has been superseded by {FreeBSD}, {NetBSD} and {OpenBSD}.

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/386bsd-faq/part1/faq.html)}.

	[{Jargon File}]

	(2006-06-08)

386SPART.PAR

	<operating system> (Or "{WIN386.SWP}") 386SPART.PAR is a
	{hidden file} created by {Windows 3.1} for use as {virtual
	memory} {swap file}.  It is generally found in the {root
	directory}, however it may appear elsewhere (typically in the
	WINDOWS directory).  Its size depends on how much virtual
	memory you have set up under (Control Panel) Enhanced under
	Virtual Memory.  If you move or delete this file Windows will
	complain the next time you start it with a Swap File error.

	{Windows 95} uses a similar file, except it is named
	WIN386.SWP, and the controls for it are located under Control
	Panel - System - Performance tab - Virtual Memory.

	(1996-05-28)

386SX

	{Intel 80386SX}

3Com Corporation

	<company, networking> A manufacturer of {local area network}
	equipment.

	3Com was founded in 1979.  They acquired {BICC Data Networks}
	in 1992, {Star-Tek} in 1993, {Synernetics} in 1993, {Centrum}
	in 1994, {NiceCom} in 1994 {AccessWorks}, {Sonix
	Communications}, {Primary Access} and {Chipcom} in 1995 and
	{Axon} and {OnStream Networks} in 1996.  They merged with
	{U.S. Robotics} in 1997.

	{(http://3com.com/)}.

	(1998-04-03)

3DNow!

	<architecture> A {floating point} {SIMD} extention from {AMD}.

	[Extension of what?  To do what?]

	(2001-12-23)

3DNow! Professional

	<architecture> A {floating point} {SIMD} extention from {AMD},
	compatible with {Intel}'s {SSE}, introduced with the
	{Athlon}-4.

	[Relationship to {3DNow!}?]

	(2001-12-23)

3DO

	<company, games, standard> A set of specifications created and
	owned by the 3DO company, which is a partnership of seven
	different companies.  These specs are the blueprint for making
	a 3DO Interactive Multiplayer and are licensed to hardware and
	software producers.

	A 3DO system has an {ARM60} 32-bit {RISC} {CPU} and a graphics
	engine based around two custom designed graphics and animation
	processors.  It has 2 Megabytes of {DRAM}, 1 Megabyte of
	{VRAM}, and a double speed {CD-ROM} drive for main storage.

	The {Panasonic} 3DO system can run 3DO Interactive software,
	play audio CDs (including support for CD+G), view {Photo-CDs},
	and will eventually be able to play {Video CDs} with a special
	add-on {MPEG}1 {full-motion video} cartridge.  Up to 8
	{controllers} can be {daisy-chain}ed on the system at once.  A
	keyboard, mouse, light gun, and other peripherals may also
	some day be hooked into the system, although they are not
	currently available (December 1993).  The 3DO can display
	{full-motion video}, fully {texture map}ped 3d landscapes,
	all in 24-bit colour.  {Sanyo} and {AT&T} will also release
	3DO systems.  Sanyo's in mid 1994 and AT&T in late 1994.

	There will be a 3DO add-on cartridge based on the {PowerPC} to
	enable the 3DO to compete with {Sony}'s {Playstation} console
	and {Sega}'s {Saturn} console, both of which have a higher
	specification than the original 3DO.  The add-on is commonly
	known as the M2 or Bulldog.  It should hit the shops by
	Christmas 1995 and will (allegedly) do a million flat shaded
	polygons per second.

	{3DO Home (http://3do.com/)}.

	{Usenet} newsgroup: {news:rec.games.video.3do}.

	(1994-12-13)

3GL

	{third generation language}

3NF

	{database normalisation}

3Station

	<computer, networking> The archetypal {diskless workstation},
	developed by {Bob Metcalfe} at {3Com} and first available in
	1986/1987.

	The 3Station/2E had a 10 {MHz} {80286} {processor}, 1 {MB} of
	{RAM} (expandable to 5 MB), {VGA} compatible graphics with 256
	{KB} of {video RAM}, and integrated {AUI}/{BNC} network
	{transceivers} for {LAN} access.

	The product used a single {printed-circuit board} with four
	custom {ASICs}.  It had no {floppy disk drive} or {hard disk},
	it was booted from a {server} and stored all {end-user}
	{files} there.

	3Com advertised "significant cost savings" due to the
	3Station's ease of installation and low maintenance (this
	would now be referred to under the banner of "{TCO}").

	The 3Station cost somewhere between an {IBM PC} {clone} and an
	IBM PC of the day.  It was not commercially successful.

	(2000-07-05)

3-tier

	{three-tier}

404

	<abuse> Someone who's clueless.  From the {World-Wide Web}
	message "404, URL Not Found" meaning that the document you've
	tried to access can't be located.

	"Don't bother asking him...he's 404, man".

	404 is one of the standard response codes of the {telnet}
	{protocol} on which the web's {HTTP} is based.

	The first 4 indicates a client error such as a mistyped URL.
	The middle 0 refers to a general syntax error.  The last 4
	just indicates the specific error in the group of 40x, which
	also includes 400: Bad Request, 401: Unauthorized, etc.

	(2000-03-18)

4.2BSD

	{Berkeley Software Distribution}

431A

	<hardware> The type of plug which fits a standard "type 600"
	{British Telecom} telephone socket.

	(1995-01-25)

4.3BSD

	{Berkeley Software Distribution}

4510

	<processor> A {65CE02} with two {6526} IO controllers.

	Used in the {Commodore 65}.

	(1996-04-06)

473L Query

	<language> An English-like {query language} for the US Air
	Force {473L} system.

	[Sammet 1969, p. 665].

	["Headquarters USAF Command and Control System Query
	Language", Info Sys Sci, Proc 2nd Congress, Spartan Books
	1965, pp.57-76].

	(1994-10-31)

486

	{Intel 486}

486DX

	{Intel 486}

486SX

	{Intel 486SX}

4GL

	{fourth generation language}

4NF

	{database normalisation}

51forth

	<language> A subroutine-{threaded} {Forth} for the {8051} by
	Scott Gehmlich.  It comes with source and documentation.

	{(ftp://smis-novell-1.massey.ac.nz/giovanni/51forth.zip)}.

	(1993-04-03)

56 kbps

	<communications> (56 kilobits per second) The data capacity of
	a normal single channel digital telephone channel in North
	America.  The figure is derived from the {bandwidth} of 4 kHz
	allocated for such a channel and the 16-bit encoding (4000
	times 16 = 64000) used to change {analogue} signals to
	digital, minus the 8000 bit/s used for signalling and
	supervision.

	At the end of 1997 there were two rival {modem} designs
	capable of this rate: {k56flex} and {US Robotics}' {X2}.  In
	February 1998 the {ITU} proposed a 56kbps standard called
	{V.90}, which is expected to be formally approved during
	September 1998.

	(1998-09-15)

56k line

	<communications> A digital connection (possibly a {leased
	line}, possibly switched) capable of carrying {56 kbps}.

	Compare {DS0}.

	(2000-07-16)

586

	<processor> What {Intel}'s {Pentium} was not called.

5ESS

	{Number 5 Electronic Switching System}

5NF

	{database normalisation}

5th Glove

	<hardware, virtual reality> A {data glove} and flexor strip
	kit (5th Glove DFK) sold by {Fifth Dimension Technologies} for
	$495 ($345 for the left-handed version, $45 for each extra
	flexor strip).  The DFK provides a data glove, a flexon strip
	(with an elbow or knee-joint sensor), an interface card,
	cables, and KineMusica software.  The package uses flexible
	optical-bending sensing to track hand and arm movement.  The
	glove can be used with 5DT's ultrasonic tracking system, the
	5DT Head and Hand tracker ($245), which can track movement
	from up to two metres away from the unit's transmitter.

	(1998-02-06)

6.001

	<education> /siks dub*l oh wun/, /dub*l oh wun/ or rarely
	/siks dub*l oh fun/ {MIT}'s introductory computer class for
	majors, known for its intensity.  Developed by {Gerald
	Sussman} and {Hal Abelson}, the course is taught in {Scheme}
	and introduces {recursion}, {higher-order functions},
	{object-oriented programming} and much more.  Students who
	grasp the {meta}circular {interpreter} gain entry into the
	{Knights of the Lambda-Calculus}.  6.001 has been exported to
	several other colleges, sometimes successfully.  The textbook,
	"Structure and Interpretation of Computer Programs", written
	with Julie Sussman is a classic that can be found on the
	shelves of many computer scientists, whether they took the
	course or not.  Legendary characters from the class, problem
	sets, and book include the wise Alyssa P. Hacker, Ben
	Bitdiddle, Lem E. Tweakit and Eva Lu Ator, the careless Louis
	Reasoner and {Captain Abstraction}.

	(1994-11-22)

610

	<communications> The standard type of two-wire wall socket and
	plug used for telephones in Australia.

	[Other countries?  Full name?]

	(1997-06-26)

6309

	{Hitachi 6309}

64-bit

	<architecture> A term describing a computer architecture based
	around an {ALU}, {registers} and {data bus} which are 64
	{bit}s wide.

	64-bit processors were quite common in 1996, e.g. {Digital}
	{Alpha}, versions of {Sun} {SPARC}, {MIPS}, {IBM} {AS/4000}.
	the {PowerPC} and {Intel} were expected to move to 64 bits at
	their next generation - {PPC 620} and {Intel P7}.

	A 64-bit {address bus} allows the processor to address 18
	million {gigabytes} as opposed to the mere 4 gigabytes allowed
	with 32 bits.  There were in 1996 already {hard disks} which
	can hold over 4GB.  Floating point calculations can also be
	more accurate.

	A 64-bit {OS} is needed as well to take advantage of the CPU.
	In 1996 there were only a few 64-bit operating systems,
	including {OS/400}, {Digital} {Unix}, {Solaris} (partialy).  A
	32-bit OS can run on a 64-bit CPU.

	(2004-05-12)

6501

	<hardware> An eight-bit {microprocessor}, the first sold by
	{MOS Technology}.  The 6501 pin-compatible with the
	{Motorola 6800} and was the first member of the 650x series.
	It had an on-chip clock oscillator.

	See also {6502}.

	(2001-02-26)

6502

	<hardware> An eight-bit {microprocessor} designed by {MOS
	Technology} around 1975 and made by {Rockwell}.

	Unlike the {Intel 8080} and its kind, the 6502 had very few
	{registers}.  It was an 8-bit processor, with 16-bit {address
	bus}.  Inside was one 8-bit data register ({accumulator}), two
	8-bit {index registers} and an 8-bit {stack pointer} (stack
	was preset from address 256 to 511).  It used these index and
	stack registers effectively, with more {addressing modes},
	including a fast zero-page mode that accessed memory locations
	from address 0 to 255 with an 8-bit address (it didn't have to
	fetch a second byte for the address).

	Back when the 6502 was introduced, {RAM} was actually faster
	than {CPU}s, so it made sense to optimise for RAM access
	rather than increase the number of registers on a chip.

	The 6502 was used in the {BBC Microcomputer}, {Apple II},
	{Commodore}, {Apple Computer} and {Atari} {personal
	computers}.  {Steve Wozniak} described it as the first chip
	you could get for less than a hundred dollars (actually a
	quarter of the {6800} price).

	The 6502's {indirect jump} instruction, JMP (xxxx), was
	{broken}.  If the address was hexadecimal xxFF, the processor
	would not access the address stored in xxFF and xxFF + 1, but
	rather xxFF and xx00.  The {6510} did not fix this bug, nor
	was it fixed in any of the other {NMOS} versions of the 6502
	such as the {8502}.  Bill Mensch at {Western Design Center}
	was probably the first to fix it, in the {65C02}.

	The 6502 also had undocumented instructions.

	The {65816} is an expanded version of the 6502.

	There is a 6502 {assembler} by Doug Jones <jones@cs.uiowa.edu>
	which supports {macros} and conditional features and can be
	used for linkage editing of object files.  It requires
	{Pascal}.

	See also {cross-assembler}, {RTI}, {Small-C}.

	(2001-01-02)

650x

	<hardware> A family of {microprocessors} from {MOS
	Technologies}, based on the design of the {Motorola 6800}
	(introduced around 1975).  The family included the {6502} used
	in several early {personal computers}.

6510

	<processor> A successor to the {6502}.

	The 6510 was used in the Commodore 64C.  Successors included
	the {8502} used in the {Commodore 128} line.

	(2001-01-02)

6526

	{MOS Technology 6526}

65816

	<processor> An expanded version of the {6502}, with which it
	is compatible.  It has 16-bit {index registers} and {stack
	pointer}, a 16-bit direct page register and a 24-bit {address
	bus}.  Used in later models of the {Apple II}.

	(1994-10-31)

6800

	{Motorola 6800}

68000

	{Motorola 68000}

68020

	{Motorola 68020}

68030

	{Motorola 68030}

68040

	{Motorola 68040}

68050

	{Motorola 68050}

68060

	{Motorola 68060}

6809

	{Motorola 6809}

680x0

	{Motorola 680x0}

686

	<processor> {Pentium Pro} or possibly {Cyrix 6x86}.

	(1997-05-26)

68HC11

	{Motorola 68HC11}

68LC040

	{Motorola 68LC040}

6to4

	<networking> A {protocol} for transitioning from {IPv4} to
	{IPv6}.  Networks may use 6to4 (or other transitioning protocols)
	until they support native {dual-stack}.

	Because 6to4 is a form of {tunnelling}, it requires
	{encapsulation} by a {protocol converter}.  This can cause
	performance problems due to increased {latency} and decreased
	{MTU} sizes, as described in {RFC 6343
	(http://tools.ietf.org/html/rfc6343)}.

	{RFC 3056 (http://tools.ietf.org/html/rfc3056)}.

	(2012-12-24)

6x86

	{Cyrix 6x86}

754

	{IEEE Floating Point Standard}

80186

	{Intel 80186}

80188

	{Intel 80188}

80/20 rule

	{eighty-twenty rule}

802.1

	{IEEE 802.1}

802.11a

	<networking> A radio-based {LAN} {protocol} which speaks
	{OFDM} at 5GHz, one of the two {wi-fi} protocols.

	(2003-09-02)

802.11b

	<networking> An {IEEE} {wireless} {local area networks} (WLAN)
	{standard} {protocol} which speaks {DSSS} at 2.4GHz.  802.11b
	is one of the two {wi-fi} protocols.  It operates at 11
	megabits per second (Mbps) compared with {802.11g} which
	operates at 54 Mbps.

	(2004-01-11)

802.11g

	<networking, standard> An {IEEE} {wireless} {local area
	network} (WLAN) {standard} {protocol}, expected to be approved
	in June 2003.  802.11g offers wireless transmission over
	relatively short distances at up to 54 megabits per second
	(Mbps).

	802.11g operates in the 2.4 GHz range and is thus compatible
	with {802.11b} (11 Mbps Wi-Fi).

	(2004-01-11)

802.2

	{IEEE 802.2}

802.3

	{IEEE 802.3}

80286

	{Intel 80286}

8031

	{Intel 8051}

80386

	{Intel 80386}

8048

	{Intel 8048}

80486

	{Intel 486}

8051

	{Intel 8051}

8052

	{Intel 8051}

8080

	{Intel 8080}

8086

	{Intel 8086}

8088

	{Intel 8088}

80x86

	{Intel 80x86}

822

	{RFC 822}

82430FX

	{Triton I}

82430HX

	{Triton II}

82430MX

	{Mobile Triton}

82430VX

	{Triton VX}

8250

	<hardware> A {UART} that can operate at a maximum of 9600 {baud}.

	The 8250 is used in {IBM PC XT} computers.  It works in an
	{IBM PC AT} under {DOS} but generates unwanted {interrupts}
	when used at 9600 {baud}.  The {IBM PC} {BIOS} has a bug fix
	for this chip.

	(2004-03-21)

8.3

	<file system, filename extension> A common shorthand for the
	limits on filename length imposed by the {file system} used by
	{MS-DOS} and {Microsoft Windows} - at most eight characters,
	followed by a ".", followed by a {filename extension} of at
	most three characters.

	{Windows 95} supports long filenames by using multiple
	directory entries per file.  The extra entries are hidden.  It
	also automatically derives an 8.3 name for each file for
	{backward compatibility} so that older versions of DOS can
	still access the file.

	(1998-10-05)

8450

	<hardware> A {serial IO chip} with a one-{byte} {FIFO}.  The
	8450 was introduced with the {Intel 8080}.

	(2004-03-21)

8514

	<hardware> An {IBM} graphics {display standard} supporting a
	{resolution} of 1024 x 768 {pixels} with 256 colours at 43.5
	Hz ({interlaced}), or 640 x 480 at 60 Hz interlaced.

	8514 was introduced at the same time as {VGA} and was
	superseded by {XGA}.

	(1999-08-01)

8514-A

	{8514}

88000

	{Motorola 88000}

88open

	<body> A consortium with the aim of creating a multi-vendor
	open computing environment based on the {Motorola 88000}
	{RISC} processor family.

	(1995-01-26)

8-bit clean

	{eight-bit clean}

8N1

	<jargon> Common shorthand for "eight data bits, no {parity},
	one {stop bit}", the most common configuration for {serial
	lines}, e.g. {EIA-232}.

	(1995-01-31)

8 queens problem

	{eight queens puzzle}

8 queens puzzle

	{eight queens puzzle}

8x86

	{Intel 80x86}

90-90 Rule

	{Ninety-Ninety Rule}

9PAC

	<tool> 709 PACkage.

	A {report generator} for the {IBM 7090}, developed in 1959.

	[Sammet 1969, p.314. "IBM 7090 Prog Sys, SHARE 7090 9PAC Part
	I: Intro and Gen Princs", IBM J28-6166, White Plains, 1961].

	(1995-02-07)

:-)

	{emoticon}

;

	{semicolon}

<

	{less than}

=

	{equals}

>

	{greater than}

?

	{question mark}

??

	<programming> A {Perl} quote-like {operator} used to delimit a
	{regular expression} (RE) like "?FOO?" that matches FOO at
	most once.  The normal "/FOO/" form of regular expression will
	match FOO any number of times.  The "??" operator will match
	again after a call to the "reset" operator.

	The operator is usually referred to as "??" but, taken
	literally, an empty RE like this (or "//") actually means to
	re-use the last successfully matched regular expression or, if
	there was none, the empty pattern (which will always match).

	{Unix manual page}: perlop(1).

	(2009-05-28)

@

	{commercial at}

\

	{backslash}

\{@}

	<chat> A rare {emoticon} supposed to represent a rose.

	(2013-06-26)

A#

	<language> /A sharp/ A separable component of Version 2 of the
	{AXIOM*} computer algebra system.  It provides a programming
	language with an {optimising compiler}, an {intermediate code}
	{interpreter}, and a library of data structures and
	mathematical {abstractions}.  The compiler produces
	{stand-alone executable} programs, {object} libraries in
	{native} {operating system} formats, {portable} {bytecode}
	libraries, {C} and {Lisp} {source code}.

	The A# programming language has support for {object-oriented}
	and {functional programming} styles.  Both types and functions
	are {first class} values that can be manipulated with a range
	of flexible and composable {primitives} and user programs.
	The A# language design places particular emphasis on
	compilation for efficient {machine code} and portability.

	Ports have been made to various 16, 32, and 64 bit
	architectures: {RS/6000}, {SPARC}, {DEC Alpha}, {i386},
	{i286}, {Motorola 680x0}, {S 370}; several {operating
	systems}: {Linux}, {AIX}, {SunOS}, {HP/UX}, {Next}, {Mach} and
	other {Unix} systems, {OS/2}, {DOS}, {Microsoft Windows},
	{VMS} and {CMS}; {C} compilers: {Xlc}, {gcc}, {Sun},
	{Borland}, {Metaware} and {MIPS} C.

	(1995-02-07)

A-0

	<language> (Or A0) A language for the {UNIVAC I} or II, using
	{three-address code} instructions for solving mathematical
	problems.  A-0 was the first language for which a {compiler}
	was developed.  It was produced by {Grace Hopper}'s team at
	{Remington Rand} in 1952.  Later internal versions were A-1,
	A-2, A-3, AT-3.  AT-3 was released as {MATH-MATIC}.

	["The A-2 Compiler System", Rem Rand, 1955].

	[Sammet 1969, p. 12].

	(1995-12-03)

a1

	<language> Address 1 code.

	An a1 code {interpreter}, by Matthew Newhook
	<matthew@engr.mun.ca> was used to test compiler output.  It
	requires {gcc} 2.4.2 or higher and is portable to computers
	with {memory segment} protection.

	{(ftp://ftp.cs.mun.ca/pub/a1)}.

	(1994-07-19)

A1 security

	{Orange Book}

A20 handler

	<software, storage> {IBM PC} memory manager software providing
	{HMA}.  {XMM}s usually provide this functionality.  Named
	after the 21st address line (A20), controlling the access to
	HMA.

	(1996-01-10)

A-3

	{ARITH-MATIC}

A3D

	<hardware> (Aureal 3-Dimensional?) A technology developed by
	{Aureal} that delivers sound with a three-dimensional effect
	through two speakers.  Many modern {sound cards} and PC games
	now support this feature.

	A3D differs from the various forms of {surround sound} in that
	it only requires two speakers, while surround sound typically
	requires four or five.  It is sometimes less convincing than
	surround sound but is supposedly better in {interactive}
	environments.  For example, PC games in which sounds often
	move from one speaker to another favour A3D, while
	pre-recorded video favours surround sound.

	{(http://a3d.com/)}.

	(1999-01-26)

A4C

	Authentication, Authorization, Accounting, Auditing and Charging.

	(2007-06-01)

a56

	<language> An {assembler} for the {Motorola} {DSP56000} and
	{DSP56001} {digital signal processors} by Quinn Jensen
	<jensenq@qcj.icon.com>.  Version 1.1 is available from an
	{alt.sources} archive or {(ftp://wuarchive.wustl.edu/)}.

	(1992-08-10)

AAC

	{Advanced Audio Coding}

AADL

	{Axiomatic Architecture Description Language}

AAL

	{ATM Adaptation Layer}

AAP

	{Association of American Publishers}

AAP DTD

	<standard> A {DTD} for a standard {SGML} document type for
	scientific documents, defined by the {Association of American
	Publishers}.

	(1994-11-08)

aard

	<programming, tool> (Dutch for "earth") A tool to check memory
	use for {C++} programs, written by Steve Reiss
	<spr@cs.brown.edu> (who names his programs after living
	systems).

	Aard tracks the state of each byte of memory in the {heap} and
	the {stack}.  The state can be one of Undefined,
	Uninitialised, Free or Set.  The program can detect invalid
	transitions (i.e. attempting to set or use undefined or free
	storage or attempting to access uninitialised storage).

	In addition, the program keeps track of heap use through
	{malloc} and {free} and at the end of the run reports memory
	blocks that were not freed and that are not accessible
	(i.e. {memory leaks}).

	The tools works using a spliced-in {shared library} on
	{SPARCs} running {C++} 3.0.1 under {SunOS} 4.X.

	{(ftp://wilma.cs.brown.edu/pub/aard.tar.Z)}.

	(1998-03-03)

AARP

	{Apple Address Resolution Protocol}

AARP probe packets

	<networking> {AARP} {packets} sent out on a nonextended
	{AppleTalk} network to discover whether a randomly selected
	node ID is being used by any node.  If not, the sending node
	uses the node ID.  If so, it chooses a different ID and sends
	more AARP probe packets.

	(1997-05-03)

AAUI

	{Apple Attachment Unit Interface}

A&B

	<communications> A {bit signaling procedure} used in most {T1}
	transmission facilities where one bit from every sixth frame
	of each of 24 T1 {subchannels} is used for carrying
	{supervisory signaling}.

	[What does it stand for?  Is this the same as "{bit
	robbing}"?]

	(1997-05-05)

abbrev

	<jargon> /*-breev'/, /*-brev'/ Common abbreviation for
	"abbreviation".

	(1995-02-27)

Abbreviated Test Language for Avionics Systems

	<language> (ATLAS) A Mil-spec language for automatic testing
	of avionics equipment.  ATLAS replaced {Gaelic} and several
	other test languages.

	["IEEE Standard ATLAS Test Language", IEEE Std 416-1976].

	(2000-04-03)

ABC

	1. <computer> {Atanasoff-Berry Computer}.

	2. <language> An {imperative language} and programming
	environment from {CWI}, Netherlands.  It is interactive,
	structured, high-level, and easy to learn and use.  It is a
	general-purpose language which you might use instead of
	{BASIC}, {Pascal} or {AWK}.  It is not a systems-programming
	language but is good for teaching or prototyping.

	ABC has only five data types that can easily be combined;
	{strong typing}, yet without declarations; data limited only
	by memory; refinements to support top-down programming;
	nesting by indentation.  Programs are typically around a
	quarter the size of the equivalent {Pascal} or {C} program,
	and more readable.

	ABC includes a programming environment with {syntax-directed}
	editing, {suggestions}, {persistent variables} and multiple
	workspaces and {infinite precision} arithmetic.

	An example function words to collect the set of all words in a
	document:

	   HOW TO RETURN words document:
	      PUT {} IN collection
	      FOR line in document:
	         FOR word IN split line:
	            IF word not.in collection:
	               INSERT word IN collection
	      RETURN collection

	{Interpreter}/{compiler}, version 1.04.01, by Leo Geurts,
	Lambert Meertens, Steven Pemberton <Steven.Pemberton@cwi.nl>.
	ABC has been ported to {Unix}, {MS-DOS}, {Atari}, {Macintosh}.

	{(http://cwi.nl/cwi/projects/abc.html)}.

	{FTP eu.net (ftp://ftp.eu.net/programming/languages/abc)},
	{FTP nluug.nl (ftp://ftp.nluug.nl/programming/languages/abc)},
	{FTP uunet (ftp://ftp.uu.net/languages/abc)}.

	Mailing list: <abc-list-request@cwi.nl>.

	E-mail: <abc@cwi.nl>.

	["The ABC Programmer's Handbook" by Leo Geurts, Lambert
	Meertens and Steven Pemberton, published by Prentice-Hall
	(ISBN 0-13-000027-2)].

	["An Alternative Simple Language and Environment for PCs" by
	Steven Pemberton, IEEE Software, Vol. 4, No. 1, January 1987,
	pp. 56-64.]

	(1995-02-09)

	2. <language> Argument, Basic value, C?.

	An {abstract machine} for implementation of {functional
	languages} and its intermediate code.

	[P. Koopman, "Functional Programs as Executable
	Specifications", 1990].

	(1995-02-09)

ABC ALGOL

	<language> An extension of {ALGOL 60} with arbitrary data
	structures and user-defined operators, for {symbolic
	mathematics}.

	["ABC ALGOL, A Portable Language for Formula Manipulation
	Systems", R.P. van de Riet, Amsterdam Math Centrum 1973].

	(1994-10-28)

ABCL/1

	<language> An Object-Based Concurrent Language.

	The language for the {ABCL} {MIMD} system, written by Akinori
	Yonezawa <matsu@is.s.u-tokyo.ac.jp> of Department of
	Information Science, {Tokyo University} in 1986.  ABCL/1 uses
	{asynchronous} {message passing} to {objects}.  It requires
	{Common Lisp}.  Implementations in {KCL} and {Symbolics Lisp}
	are available from the author.

	{(ftp://camille.is.s.u-tokyo.ac.jp/)}.

	E-mail: <abcl@is.s.u-tokyo.ac.jp>.

	["ABCL: An Object-Oriented Concurrent System", A. Yonezawa ed,
	MIT Press 1990].  (1990-05-23).

	(1995-02-09)

ABCL/c+

	<language> A {concurrent} {object-oriented} language, an
	extension of {ABCL/1} based on {C}.

	["An Implementation of An Operating System Kernel using
	Concurrent Object Oriented Language ABCL/c+", N. Doi et al in
	ECOOP '88, S. Gjessing et al eds, LNCS 322, Springer 1988].

	(1994-11-08)

ABCL/R

	<language> A {reflective} subset of {ABCL/1}, written in
	ABCL/1 by Yonezawa of {Tokyo Institute of Technology} in 1988.

	{(ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr)}.

	["Reflection in an Object-Oriented Concurrent Language",
	T. Watanabe et al, SIGPLAN Notices 23(11):306-315 (Nov 1988)].

	(1994-11-08)

ABCL/R2

	<language> An {object-oriented}, {concurrent}, {reflective}
	language based on {Hybrid Group Architecture}. ABCL/R2 was
	produced by <masuhara@is.s.u-tokyo.ac.jp>,
	<matsu@is.s.u-tokyo.ac.jp>, <takuo@is.s.u-tokyo.ac.jp>,
	<yonezawa@is.s.u-tokyo.ac.jp>, at the {Tokyo Institute of
	Technology} in 1992.

	As a reflective language, an ABCL/R2 program can dynamically
	control its own behaviour, such as {scheduling} policy, from
	within a user-program.  This system has almost all functions
	of {ABCL/1} and is written in {Common Lisp}.

	{(ftp://camille.is.s.u-tokyo.ac.jp/pub/abclr2/)}.

	(1993-01-28)

abduction

	<logic> The process of {inference} to the best explanation.

	"Abduction" is sometimes used to mean just the generation of
	hypotheses to explain observations or conclusionsm, but the
	former definition is more common both in philosophy and
	computing.

	The {semantics} and the implementation of abduction cannot be
	reduced to those for {deduction}, as explanation cannot be
	reduced to implication.

	Applications include fault diagnosis, plan formation and
	{default reasoning}.

	{Negation as failure} in {logic programming} can both be given
	an abductive interpretation and also can be used to implement
	abduction.  The abductive semantics of negation as failure
	leads naturally to an {argumentation}-theoretic interpretation
	of default reasoning in general.

	[Better explanation?  Example?]

	["Abductive Inference", John R. Josephson
	<jj@cis.ohio-state.edu>].

	(2000-12-07)

ABEND

	<jargon> /o'bend/, /*-bend'/ ABnormal END.  Abnormal
	termination (of {software}); {crash}; {lossage}.  Derives from
	an error message on the {IBM 360}; used jokingly by hackers
	but seriously mainly by {code grinders}.  Usually capitalised,
	but may appear as "abend".  Hackers will try to persuade you
	that ABEND is called "abend" because it is what system
	operators do to the computer late on Friday when they want to
	call it a day, and hence is from the German "Abend" =
	"Evening".

	[{Jargon File}]

	(1994-11-08)

AberMUD

	<games> The first popular {open source} {MUD}.  The first
	version of AberMUD, named after Aberystwyth, UK, was written
	in {B} by Alan Cox, Richard Acott, Jim Finnis, and Leon
	Thrane, at University of Wales, Aberystwyth for an old
	{Honeywell} {mainframe} and opened in 1987.  The gameplay was
	heavily influenced by {MUD1}, written by Roy Trubshaw and
	Richard Bartle, which Alan Cox had played at the University of
	Essex.  In late 1988, Alan Cox ported AberMUD to {C} so it
	could run under {UNIX} on Southampton University's Maths
	machines.  This version was named AberMUD2.  Various other
	versions followed.

	(2008-11-24)

ABI

	{Application Binary Interface}

ABLE

	<language> A simple language for accountants.

	["ABLE, The Accounting Language, Programming and Reference
	Manual," Evansville Data Proc Center, Evansville, IN, Mar
	1975].

	[Listed in SIGPLAN Notices 13(11):56 (Nov 1978)].

	(1994-11-08)

ABM

	{Asynchronous Balanced Mode}

ABNF

	{Augmented Backus-Naur Form}

abort

	<programming> To terminate a program or {process} abnormally
	and usually suddenly, with or without {diagnostic}
	information.  "My program aborted", "I aborted the
	transmission".  The noun form in computing is "abort", not
	"abortion", e.g. "We've had three aborts over the last two
	days".

	If a {Unix} {kernel} aborts it is known as a {panic}.

	(1997-01-07)

ABP

	1. <networking> {Alternating bit protocol}.

	2. {Microsoft} {Address Book Provider}.

ABR

	{automatic baud rate detection}

abscissa

	<mathematics> The horizontal or x coordinate on an (x, y)
	graph; the input of a function against which the output is
	plotted.

	The vertical or y coordinate is the "{ordinate}".

	See {Cartesian coordinates}.

	(1997-07-08)

ABSET

	<language> An early {declarative language} from the
	{University of Aberdeen}.

	["ABSET: A Programming Language Based on Sets", E.W. Elcock et
	al, Mach Intell 4, Edinburgh U Press, 1969, pp.467-492].

	(1994-11-08)

absolute path

	<file system> A {path} relative to the {root directory}.  Its
	first character must be the {pathname separator}.

	(1996-11-21)

absolute pathname

	<file system> A {pathname} relative to the {root directory}.

	(1996-11-21)

abstract

	<philosophy> A description of a concept that leaves out some
	information or details in order to simplify it in some useful
	way.

	Abstraction is a powerful technique that is applied in many
	areas of computing and elsewhere.  For example: {abstract
	class}, {data abstraction}, {abstract interpretation},
	{abstract syntax}, {Hardware Abstraction Layer}.

	(2009-12-09)

abstract class

	<programming> In {object-oriented programming}, a {class}
	designed only as a parent from which sub-classes may be
	derived, but which is not itself suitable for instantiation.
	Often used to "abstract out" incomplete sets of features which
	may then be shared by a group of sibling sub-classes which add
	different variations of the missing pieces.

	(1994-11-08)

abstract data type

	<programming> (ADT) A kind of {data abstraction} where a
	type's internal form is hidden behind a set of {access
	functions}.  Values of the type are created and inspected only
	by calls to the access functions.  This allows the
	implementation of the type to be changed without requiring any
	changes outside the {module} in which it is defined.

	{Objects} and ADTs are both forms of data abstraction, but
	objects are not ADTs.  Objects use procedural abstraction
	(methods), not type abstraction.

	A classic example of an ADT is a {stack} data type for which
	functions might be provided to create an empty stack, to
	{push} values onto a stack and to {pop} values from a stack.

	{Reynolds paper
	(http://cis.upenn.edu/~gunter/publications/documents/taoop94.html)}.

	{Cook paper "OOP vs ADTs"
	(http://wcook.org/papers/OOPvsADT/CookOOPvsADT90.pdf)}.

	(2003-07-03)

abstract interpretation

	<theory> A partial execution of a program which gains
	information about its {semantics} (e.g. control structure,
	flow of information) without performing all the calculations.
	Abstract interpretation is typically used by compilers to
	analyse programs in order to decide whether certain
	optimisations or transformations are applicable.

	The objects manipulated by the program (typically values and
	functions) are represented by points in some {domain}.  Each
	abstract domain point represents some set of real
	("{concrete}") values.

	For example, we may take the abstract points "+", "0" and "-"
	to represent positive, zero and negative numbers and then
	define an abstract version of the multiplication operator, *#,
	which operates on abstract values:

		*# | + 0 -
		---|------
		+  | + 0 -
		0  | 0 0 0
		-  | - 0 +

	An interpretation is "safe" if the result of the abstract
	operation is a safe approximation to the abstraction of the
	concrete result.  The meaning of "a safe approximation"
	depends on how we are using the results of the analysis.

	If, in our example, we assume that smaller values are safer
	then the "safety condition" for our interpretation (#) is

		a# *# b# <= (a * b)#

	where a# is the abstract version of a etc.

	In general an interpretation is characterised by the {domains}
	used to represent the basic types and the abstract values it
	assigns to constants (where the constants of a language
	include primitive functions such as *).  The interpretation of
	constructed types (such as user defined functions, {sum types}
	and {product types}) and expressions can be derived
	systematically from these basic domains and values.

	A common use of {abstract interpretation} is {strictness
	analysis}.

	See also {standard interpretation}.

	(1994-11-08)

abstraction

	1. Generalisation; ignoring or hiding details to capture some
	kind of commonality between different instances.  Examples are
	{abstract data types} (the representation details are hidden),
	{abstract syntax} (the details of the {concrete syntax} are
	ignored), {abstract interpretation} (details are ignored to
	analyse specific properties).

	2. <programming> Parameterisation, making something a function
	of something else.  Examples are {lambda abstractions} (making
	a term into a function of some variable), {higher-order
	functions} (parameters are functions), {bracket abstraction}
	(making a term into a function of a variable).

	Opposite of {concretisation}.

	(1998-06-04)

abstract machine

	1. <language> A processor design which is not intended to be
	implemented as {hardware}, but which is the notional executor
	of a particular {intermediate language} (abstract machine
	language) used in a {compiler} or {interpreter}.  An abstract
	machine has an {instruction set}, a {register set} and a model
	of memory.  It may provide instructions which are closer to
	the language being compiled than any physical computer or it
	may be used to make the language implementation easier to
	{port} to other {platforms}.

	A {virtual machine} is an abstract machine for which an
	{interpreter} exists.

	Examples: {ABC}, {Abstract Machine Notation}, {ALF}, {CAML},
	{F-code}, {FP/M}, {Hermes}, {LOWL},
	{Christmas}, {SDL}, {S-K reduction machine}, {SECD}, {Tbl},
	{Tcode}, {TL0}, {WAM}.

	2. <theory> A procedure for executing a set of instructions in
	some formal language, possibly also taking in input data and
	producing output.  Such abstract machines are not intended to
	be constructed as {hardware} but are used in thought
	experiments about {computability}.

	Examples: {Finite State Machine}, {Turing Machine}.

	(1995-03-13)

Abstract Machine Notation

	<language> (AMN) A language for specifying {abstract machines}
	in the {B-Method}, based on the mathematical theory of
	{Generalised Substitutions}.

	(1995-03-13)

abstract syntax

	<language, data> A form of representation of data that is
	independent of machine-oriented structures and encodings and
	also of the physical representation of the data.  Abstract
	syntax is used to give a high-level description of programs
	being compiled or messages passing over a communications link.

	A {compiler}'s internal representation of a program will
	typically be an {abstract syntax tree}.  The abstract syntax
	specifies the tree's structure is specified in terms of
	categories such as "statement", "expression" and
	"{identifier}".  This is independent of the source syntax
	({concrete syntax}) of the language being compiled (though it
	will often be very similar).

	A {parse tree} is similar to an abstract syntax tree but it
	will typically also contain features such as parentheses which
	are syntactically significant but which are implicit in the
	structure of the {abstract syntax tree}.

	(1998-05-26)

Abstract Syntax Notation 1

	<language, standard, protocol> (ASN.1, X.208, X.680) An
	{ISO}/{ITU-T} {standard} for transmitting structured {data} on
	{networks}, originally defined in 1984 as part of {CCITT
	X.409} '84.  ASN.1 moved to its own standard, X.208, in 1988
	due to wide applicability.  The substantially revised 1995
	version is covered by the X.680 series.

	ASN.1 defines the {abstract syntax} of {information} but does
	not restrict the way the information is encoded.  Various
	ASN.1 encoding rules provide the {transfer syntax} (a
	{concrete} representation) of the data values whose {abstract
	syntax} is described in ASN.1.  The standard ASN.1 encoding
	rules include {BER} (Basic Encoding Rules - X.209), {CER}
	(Canonical Encoding Rules), {DER} (Distinguished Encoding
	Rules) and {PER} (Packed Encoding Rules).

	ASN.1 together with specific ASN.1 encoding rules facilitates
	the exchange of structured data especially between
	{application programs} over networks by describing data
	structures in a way that is independent of machine
	architecture and implementation language.

	{OSI} {Application layer} {protocols} such as {X.400} {MHS}
	{electronic mail}, {X.500} directory services and {SNMP} use
	ASN.1 to describe the {PDU}s they exchange.

	Documents describing the ASN.1 notations: {ITU-T} Rec. X.680,
	{ISO} 8824-1; {ITU-T} Rec. X.681, {ISO} 8824-2; {ITU-T}
	Rec. X.682, {ISO} 8824-3; {ITU-T} Rec. X.683, {ISO} 8824-4

	Documents describing the ASN.1 encoding rules: {ITU-T}
	Rec. X.690, {ISO} 8825-1; {ITU-T} Rec. X.691, {ISO} 8825-2.

	[M. Sample et al, "Implementing Efficient Encoders and
	Decoders for Network Data Representations", IEEE Infocom 93
	Proc, v.3, pp. 1143-1153, Mar 1993.  Available from Logica,
	UK].

	See also {snacc}.

	(2005-07-03)

abstract syntax tree

	<compiler> (AST) A data structure representing something which
	has been parsed, often used as a {compiler} or {interpreter}'s
	internal representation of a program while it is being
	optimised and from which {code generation} is performed.  The
	range of all possible such structures is described by the
	{abstract syntax}.

	(1994-11-08)

Abstract-Type and Scheme-Definition Language

	<language> (ASDL) A language developed as part of {Esprit}
	project {GRASPIN}, as a basis for generating {language-based
	editors} and environments.  It combines an {object-oriented}
	type system, syntax-directed translation schemes and a
	target-language interface.

	["ASDL - An Object-Oriented Specification Language for
	Syntax-Directed Environments", M.L. Christ-Neumann et al,
	European Software Eng Conf, Strasbourg, Sept 1987, pp.77-85].

	(1996-02-19)

Abstract Windowing Toolkit

	{Abstract Window Toolkit}

Abstract Window Toolkit

	<graphics> (AWT) {Java}'s {platform}-independent {windowing},
	graphics, and user-interface {toolkit}.  The AWT is part of
	the {Java Foundation Classes} (JFC) - the standard {API} for
	providing a {graphical user interface} (GUI) for a Java
	program.

	Compare: {SWING}.

	["Java in a Nutshell", O'Reilly].

	{(http://java.sun.com/products/jdk/awt/)}.

	(2000-07-26)

ABSYS

	<language> An early {declarative language} from the
	{University of Aberdeen} which anticipated a number of
	features of Prolog.

	["ABSYS: An Incremental Compiler for Assertions", J.M. Foster
	et al, Mach Intell 4, Edinburgh U Press, 1969, pp. 423-429].

	(1994-11-08)

AC2

	<audio> An {audio} format, succeded by {AC3}.

	(2001-12-18)

AC3

	<audio> An {audio} format by Sony[?], the successor of {AC2}.
	AC3 is used for multi-channel {audio} for {digital video}.

	(2001-12-18)

ACA

	{Application Control Architecture}

ACAP

	{Application Configuration Access Protocol}

Accelerated Graphics Port

	<hardware, graphics> (AGP) A {bus} specification by {Intel}
	which gives low-cost 3D {graphics cards} faster access to
	{main memory} on {personal computers} than the usual {PCI}
	bus.

	AGP dynamically allocates the PC's normal {RAM} to store the
	screen image and to support {texture mapping}, {z-buffering}
	and {alpha blending}.

	Intel has built AGP into a {chipset} for its {Pentium II}
	microprocessor.  AGP cards are slightly longer than a PCI
	card.

	AGP operates at 66 {MHz}, doubled to 133 MHz, compared with
	PCI's 33 Mhz.  AGP allows for efficient use of {frame buffer}
	memory, thereby helping 2D graphics performance as well.

	AGP provides a coherent memory management design which allows
	scattered data in system memory to be read in rapid bursts.
	AGP reduces the overall cost of creating high-end graphics
	subsystems by using existing system memory.

	{Specification
	(http://developer.intel.com/technology/agp/downloads/agp20.htm)}.

	(2004-07-19)

accelerator

	<hardware> Additional hardware to perform some function faster
	than is possible in software running on the normal {CPU}.
	Examples include {graphics accelerators} and {floating-point
	accelerators}.

	(1994-11-08)

Accent

	<language> A very high level interpreted language from
	{CaseWare, Inc.} with strings and tables.  It is {strongly
	typed} and has remote function calls.

	(1994-11-08)

accept

	<library, networking> {Berkeley} {Unix} networking {socket}
	library routine to satisfy a connection request from a remote
	{host}.  A specified socket on the local host (which must be
	capable of accepting the connection) is connected to the
	requesting socket on the remote host.  The remote socket's
	socket address is returned.

	{Unix manual pages}: accept(2), connect(2).

	(1994-11-08)

Acceptable Use Policy

	<networking> (AUP) Rules applied by many {transit networks}
	which restrict the use to which the network may be put.  A
	well known example is {NSFNet} which does not allow commercial
	use.  Enforcement of AUPs varies with the network.

	(1994-11-08)

acceptance testing

	<programming> Formal testing conducted to determine whether a
	system satisfies its acceptance criteria and thus whether the
	customer should accept the system.

	(1996-05-10)

Acceptance, Test Or Launch Language

	<language> (ATOLL) The language used for automating the
	checking and launch of Saturn rockets.

	["SLCC ATOLL User's Manual", IBM 70-F11-0001, Huntsville AL
	Dec 1970].

	(2000-04-03)

acceptor

	{Finite State Machine}

Access

	1. <language> An English-like query language used in the
	{Pick} {operating system}.

	2. <database, product> {Microsoft Access}.

	(1994-11-08)

Access Control List

	<networking> (ACL) A list of the services available on a
	{server}, each with a list of the {hosts} permitted to use the
	service.

	(1994-11-08)

access method

	<networking> 1. The way that network devices access the
	network medium.

	2. Software in an {SNA} processor that controls the flow of
	data through a {network}.

	[{physical layer}?]

	(1998-03-02)

access permission

	{permission}

access point

	<networking> (AP) Any device that acts as a communication hub
	to allow users of a {wireless network} to connect to a {wired
	LAN}.  APs are important for providing heightened wireless
	{security} and for extending the physical range of service a
	wireless user has access to.

	(2010-03-21)

access time

	<hardware, storage> The average time interval between a
	storage peripheral (usually a {disk drive} or {semiconductor}
	memory) receiving a request to read or write a certain
	location and returning the value read or completing the write.

	(1997-06-14)

ACCLAIM

	<project> A European Union {ESPRIT} {Basic Research Action}.

	[What's it about?]

	(1994-11-08)

Accounting File

	<operating system> A file which holds records of the resources
	used by individual jobs.  These records are used to regulate,
	and calculate charges for, resources.  An entry is opened in
	the accounting file as each job begins.

	(1996-12-08)

accounting management

	<networking> The process of identifying individual and group
	access to various network resources to ensure proper access
	capabilities ({bandwidth} and security) or to properly charge
	the various individuals and departments.  Accounting
	management is one of five categories of {network management}
	defined by {ISO} for management of {OSI} {networks}.

	(1997-05-05)

Account Representative

	<job> A person in a company who identifies new accounts,
	analyses customer needs, proposes business solutions,
	negotiates and oversees the implementation of new projects.

	(2004-03-08)

ACCU

	{Association of C and C++ Users}

accumulator

	<processor> In a {central processing unit}, a {register} in
	which intermediate results are stored.  Without an
	accumulator, it would be necessary to write the result of each
	calculation (addition, multiplication, {shift}, etc.) to {main
	memory} and read them back.  Access to main memory is slower
	than access to the accumulator which usually has direct paths
	to and from the {arithmetic and logic unit} (ALU).

	The {canonical} example is summing a list of numbers.  The
	accumulator is set to zero initially, each number in turn is
	added to the value in the accumulator and only when all
	numbers have been added is the result written to main memory.

	Modern CPUs usually have many registers, all or many of which
	can be used as accumulators.  For this reason, the term
	"accumulator" is somewhat archaic.  Use of it as a synonym for
	"register" is a fairly reliable indication that the user has
	been around for quite a while and/or that the architecture
	under discussion is quite old.  The term in full is almost
	never used of microprocessor registers, for example, though
	symbolic names for arithmetic registers beginning in "A"
	derive from historical use of the term "accumulator" (and not,
	actually, from "arithmetic").  Confusingly, though, an "A"
	register name prefix may also stand for "address", as for
	example on the {Motorola} {680x0} family.

	2. <programming> A register, memory location or variable being
	used for arithmetic or logic (as opposed to addressing or a
	loop index), especially one being used to accumulate a sum or
	count of many items.  This use is in context of a particular
	routine or stretch of code.  "The FOOBAZ routine uses A3 as an
	accumulator."

	[{Jargon File}]

	(1999-04-20)

accuracy

	<mathematics> How close to the real value a measurement is.

	Compare {precision}.

	(1998-04-19)

ACE

	1. {Advanced Computing Environment}.

	2. {Adaptive Communication Environment}.

ACF

	{Advanced Communications Function}

ACF/NCP

	{Advanced Communication Function/Network Control Program}

ACIA

	{Asynchronous Communications Interface Adapter}

ACID

	<programming> A {mnemonic} for the properties a transaction
	should have to satisfy the {Object Management Group}
	{Transaction Service} specifications.  A transaction should be
	{Atomic}, its result should be Consistent, Isolated
	(independent of other transactions) and Durable (its effect
	should be permanent).

	The {Transaction Service} specifications which part of the
	{Object Services}, an adjunct to the {CORBA} specifications.

	(1997-05-15)

ACIS

	<graphics> Andy, Charles, Ian's System.

	A {geometric engine} that most {CAD} packages now use.  ACIS
	uses a sophisticated {object-oriented} approach for modelling,
	the data is stored in {boundary representation}.  Acis is
	owned by {Spatial Technologies}.

	[How does this differ from "solid modelling"?].

	(1996-03-21)

ACK

	1. <character> /ak/ The {mnemonic} for the ACKnowledge
	character, {ASCII} code 6.

	2. <communications> A message transmitted to indicate that
	some data has been received correctly.  Typically, if the
	sender does not receive the ACK message after some
	predetermined time, or receives a {NAK}, the original data
	will be sent again.

	[{Jargon File}]

	(1997-01-07)

ACL

	1. {Access Control List}.

	2. {Association for Computational Linguistics}.

	3. A Coroutine Language.

	A {Pascal}-based implementation of {coroutines}.

	["Coroutines", C.D. Marlin, LNCS 95, Springer 1980].

	(1994-11-08)

ACM

	1. <body> The {Association for Computing}.

	2. <communications> {addressed call mode}.

ACME

	<company, jargon> /ak'mee/ 1. A Company that Makes Everything.
	The {canonical} imaginary business.  Possibly also derived
	from the word "acme" meaning "highest point".

	2. A program for {MS-DOS}.

	[What does it do?]

	(1994-11-08)

ACOM

	<language> An early system on the {IBM 705}.

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

	(1994-11-08)

acorn

	{Acorn Computers Ltd.}

Acorn Archimedes

	{Archimedes}

Acorn Computer Group

	<company> A holding company for {Acorn Computers} Limited,
	Acorn Australia, Acorn New Zealand, Acorn GmbH and {Online
	Media}.  Acorn Computer Group owns 43% of {Advanced RISC
	Machines} Ltd.

	(1994-11-08)

Acorn Computers Ltd.

	<company> A UK computer manufacturer, part of the {Acorn
	Computer Group} plc.  Acorn was founded on 1978-12-05, on a
	kitchen table in a back room.  Their first creation was an
	electronic slot machine.  After the {Acorn System 1}, 2 and 3,
	Acorn launched the first commercial {microcomputer} - the
	{ATOM} in March 1980.  In April 1981, Acorn won a contract
	from the {BBC} to provide the {PROTON}.  In January 1982 Acorn
	launched the {BBC Microcomputer} System.  At one time, 70% of
	microcomputers bought for UK schools were BBC Micros.

	The Acorn Computer Group went public on the Unlisted
	Securities Market in September 1983.  In April 1984 Acorn won
	the Queen's Award for Technology for the BBC Micro and in
	September 1985 {Olivetti} took a controlling interest in
	Acorn.  The {Master} 128 Series computers were launched in
	January 1986 and the BBC {Domesday} System in November 1986.

	In 1983 Acorn began to design the Acorn RISC Machine (ARM),
	the first low-cost, high volume {RISC} processor chip (later
	renamed the {Advanced RISC Machine}).  In June 1987 they
	launched the {Archimedes} range - the first 32-bit {RISC}
	based {microcomputers} - which sold for under UKP 1000.  In
	February 1989 the R140 was launched.  This was the first
	{Unix} {workstation} under UKP 4000.  In May 1989 the A3000
	(the new {BBC Microcomputer}) was launched.

	In 1990 Acorn formed {Advanced RISC Machines} Ltd. (ARM) in
	partnership with {Apple Computer, Inc.} and {VLSI} to develop
	the ARM processor.  Acorn has continued to develop {RISC}
	based products.

	With 1992 revenues of 48.2 million pounds, Acorn Computers was
	the premier supplier of {Information Technology} products to
	UK education and had been the leading provider of 32-bit RISC
	based {personal computers} since 1987.

	Acorn finally folded in the late 1990s.  Their operating
	system, {RISC OS} was further developed by a consortium of
	suppliers.

	{Usenet} newsgroups: {news:comp.sys.acorn},
	{news:comp.sys.acorn.announce}, {news:comp.sys.acorn.tech},
	{news:comp.binaries.acorn}, {news:comp.sources.acorn},
	{news:comp.sys.acorn.advocacy}, {news:comp.sys.acorn.games}.

	{Acorn's FTP server (ftp://ftp.acorn.co.uk/)}.

	{HENSA software archive
	(http://micros.hensa.ac.uk/micros/arch.html)}.  {Richard
	Birkby's Acorn page (http://csv.warwick.ac.uk/~phudv/)}.
	{RiscMan's Acorn page (http://geko.com.au/riscman/)}.
	{Acorn On The Net (http://stir.ac.uk/~rhh01/Main.html)}.
	{"The Jungle" by Simon Truss
	(http://csc.liv.ac.uk/users/u1smt/u1smt.html)}.

	[Recent history?]

	(2000-09-26)

Acorn Online Media

	<company> A company formed in August 1994 by {Acorn Computer
	Group} plc to exploit the {ARM} RISC in television {set-top
	box} decoders.  They planned to woo {British
	Telecommunications} plc to use the box in some of its {video
	on demand} trials.

	The "STB1" box was based on an {ARM8} core with additional
	circuits to enable {MPEG} to be decoded in software - possibly
	dedicated instructions for interpolation, inverse {DCT} or
	{Huffman} table extraction.  A prototype featured audio {MPEG}
	chips, Acorn's {RISC OS} {operating system} and supported
	{Oracle Media Objects} and {Microword}.  Online planned to
	reduce component count by transferring functions from boards
	into the single RISC chip.

	The company was origianlly wholly owned by Acorn but was
	expected to bring in external investment.

	[Article by nobody@tandem.com cross-posted from
	tandem.news.computergram, 1994-07-07].

	In 1996 they releasd the imaginatively titled "Set Top Box 2"
	(STB20M) with a 32 MHz {ARM 7500} and 2 to 32 MB {RAM}.  There
	was also a "Set Top Box 22".

	{(http://www.khantazi.org/Archives/MachineLst.html#STB1)}.
	{(http://www.mcmordie.co.uk/acornhistory/riscpc700.shtml)}.
	{(http://acorn.chriswhy.co.uk/NC.html)}.

	(2007-11-12)

Acorn RISC Machine

	<processor> The original name of the {Advanced RISC Machine}.

	(1995-03-07)

ACOS

	<language> A {BBS} language for {PRODOS 8} on {Apple II}.
	{Macos} is a hacked version of ACOS.

	(1994-11-08)

acoustic coupler

	<hardware, communications> A device used to connect a {modem}
	to a telephone line via an ordinary handset.  The acoustic
	coupler converts electrical signals from the {modem} to sound
	via a loudspeaker, against which the mouthpiece of a telephone
	handset is placed.  The earpiece is placed against a
	{microphone} which converts sound to electrical signals which
	return to the modem.  The handset is inserted into a
	sound-proof box containing the louspeaker and microphone to
	avoid interference from ambient noise.

	Acousitic couplers are now rarely used since most modems have
	a direct electrical connection to the telephone line.  This
	avoids the signal degradation caused by conversion to and from
	audio.  Direct connection is not always possible, and was
	actually illegal in the United Kingdom before {British
	Telecom} was privatised.  BT's predecessor, the General Post
	Office, did not allow subscribers to connect their own
	equipment to the telephone line.

	(1994-11-08)

ACP

	{Algebra of Communicating Processes}

ACPI

	{Advanced Configuration and Power Interface}

Acrobat

	<text, product> A product from {Adobe Systems, Inc.}, for
	manipulating documents stored in {Portable Document Format}.
	Acrobat provides a {platform}-independent means of creating,
	viewing, and printing documents.

	{Acropolis: the magazine of Acrobat publishing
	(http://acropolis.com/acropolis)}.

	(1995-04-21)

acronym

	<jargon> An identifier formed from some of the letters (often
	the initials) of a phrase and used as an abbreviation.  {This
	dictionary} contains a great many acronyms; see the contents
	page for a list.

	See also {TLA}.

	(1995-03-15)

ACSE

	{Association Control Service Element}

ACT

	1. <software> {Annual Change Traffic}.

	2. <company> {Ada Core Technologies}.

ACT++

	<language> A {concurrent} extension of {C++} based on
	{actors}.

	["ACT++: Building a Concurrent C++ With Actors", D.G. Kafura
	TR89-18, VPI, 1989].

	(1994-11-08)

Act1

	<language> An {actor} language descended from {Plasma}.

	["Concurrent Object Oriented Programming in Act1",
	H. Lieberman in Object Oriented Concurrent Programming,
	A. Yonezawa et al eds, MIT Press 1987].

	(1994-11-08)

ACT 1

	{Algebraic Compiler and Translator}

Act2

	<language> An {actor} language.

	["Issues in the Design of Act2", D. Theriault, TR728, MIT AI
	Lab, June 1983].

	(1994-11-08)

Act3

	<language> A high-level {actor} language by {Carl Hewitt}.  A
	descendant of {Act2} which provides support for automatic
	generation of {customers} and for {delegation} and
	{inheritance}.

	["Linguistic Support of Receptionists for Shared Resources",
	C. Hewitt et al in Seminar on Concurrency, S.D. Brookes et al
	eds, LNCS 197, Springer 1985, pp. 330-359].

	(1994-11-08)

Actalk

	<language> A {Smalltalk}-based {actor} language developed by
	J-P Briot in 1989.

	["Actalk: A Testbed for Classifying and Designing Actor
	Languages in the Smalltalk-80 Environment", J-P. Briot, Proc
	ECOOP '89, pp. 109-129].

	(1994-11-08)

Actis

	<programming> An approach to integrated {CASE} by {Apollo}.

	(1994-11-08)

activation record

	<compiler> (Or "data frame", "stack frame") A data structure
	containing the variables belonging to one particular {scope}
	(e.g. a procedure body), as well as links to other activation
	records.

	Activation records are usually created (on the {stack}) on
	entry to a block and destroyed on exit.  If a procedure or
	function may be returned as a result, stored in a variable and
	used in an outer scope then its activation record must be
	stored in a {heap} so that its variables still exist when it
	is used.  Variables in the current {scope} are accessed via
	the {frame pointer} which points to the current activation
	record.  Variables in an outer scope are accessed by following
	chains of links between activation records.  There are two
	kinds of link - the {static link} and the {dynamic link}.

	(1995-03-07)

active DBMS

	<database> A conventional or passive {DBMS} combined with a
	means of event detection and condition monitoring.  Event
	handling is often rule-based, as with an {expert system}.

	(1994-11-08)

Active Directory

	<operating system> A {directory service} from {Microsoft
	Corporation}, similar in concept to {Novell} {Netware
	Directory Services (NDS)}, that also integrates with the user
	organisation's {DNS} structure and is interoperable with
	{LDAP}.  Active Directory is included in {Windows 2000}.

	(2000-03-28)

Active Language I

	<tool, mathematics> An early interactive mathematics system
	for the {XDS 930} at the {University of California at
	Berkeley}.

	["Active Language I", R. de Vogelaere in Interactive Systems
	for Experimental Applied Mathematics, A-P 1968].

	(1994-11-08)

active matrix display

	<hardware> A type of {liquid crystal display} where each
	display element (each {pixel}) includes an active component
	such as a {transistor} to maintain its state between scans.

	Contrast {passive matrix display}.

	(1995-12-09)

Active Measurement Project

	<networking, tool, project> (AMP) An {NLANR} project
	undertaking site-to-site measurement across the {HPC}
	networks.  This work is intended to compliment the
	measurements taken by {MCI} and {Abilene} within the networks'
	infrastructure.  Currently {round trip times}, {topology}, and
	{packet loss} are being measured.

	(2004-01-18)

Active Monitor

	<networking> A process in an {IBM} {token ring} network which
	ensures a token is present on the ring, removes circulating
	frames with unknown or invalid destinations, and performs
	introductions between machines on the ring.

	(1996-06-18)

active object

	<programming> An {object} each {instance} of which has its own
	{thread} running as well as its own copies of the object's
	{instance variables}.

	(1998-03-08)

Active Reconfiguring Message

	<hardware> (ARM) An efficient mechanism which allows
	reconfiguration of the hardware logic of a system according to
	the particular data received or transmitted.

	In ARM each message contains extra information in a
	Reconfiguring {Header} in addition to the data to be
	transferred.  Upon arrival of the message the Reconfiguring
	Header is extracted, decoded and used to perform on-the-fly
	hardware reconfiguration.  As soon as the hardware has been
	reconfigured the data information of the message can be
	processed.

	[In what contect is this term used?]

	(1997-06-06)

Active Server Pages

	<World-Wide Web, programming> (ASP) A {scripting} environment
	for {Microsoft Internet Information Server} in which you can
	combine {HTML}, scripts and reusable {ActiveX} {server}
	components to create dynamic {web pages}.

	IIS 4.0 includes scripting engines for {Microsoft Visual
	Basic} Scripting Edition ({VBScript}) and {Microsoft JScript}.
	{ActiveX} scripting engines for {Perl} and {REXX} are
	available through third-party developers.

	[URL?]

	(1999-12-02)

ActiveX

	<programming> A type of {COM} component that can
	self-register, also known as an "ActiveX control".  All COM
	objects implement the "IUnknown" interface but an ActiveX
	control usually also implements some of the standard
	interfaces for embedding, user interface, methods, properties,
	events, and persistence.

	ActiveX controls were originally called "{OLE} Controls", and
	were required to provide all of these interfaces but that
	requirement was dropped, and the name changed, to make ActiveX
	controls lean enough to be downloaded as part of a web page.

	Because ActiveX components can support the OLE embedding
	interfaces, they can be included in web pages.  Because they
	are COM objects, they can be used from languages such as
	{Visual Basic}, {Visual C++}, {Java}, {VBScript}.

	["Understanding ActiveX and OLE", David Chappell, MS Press,
	1996].

	{(http://microsoft.com/com/tech/activex.asp)}.

	(2002-04-19)

ActiveX Data Objects

	<database, Microsoft, programming> (ADO) {Microsoft}'s
	{library} for accessing data sources through {OLE DB}.
	Typically it is used to query or modify data stored in a
	relational database.

	{Home
	(http://msdn.microsoft.com/library/en-us/ado270/htm/adostartpage1.asp)}.

	(2003-07-08)

ACT ONE

	<language, specification> A specification language.

	["An Algebraic Specification Language with Two Levels of
	Semantics", H. Ehrig et al, Tech U Berlin 83-1983-02-03].

	(1994-11-08)

Actor

	<language> An {object-oriented} language for {Microsoft
	Windows} written by Charles Duff of the {Whitewater Group} ca.
	1986.  It has {Pascal}/{C}-like {syntax}.  Uses a
	{token-threaded} {interpreter}.  {Early binding} is an option.

	["Actor Does More than Windows", E.R. Tello, Dr Dobb's J
	13(1):114-125 (Jan 1988)].

	(1994-11-08)

actor

	1. <programming> In {object-oriented} programming, an {object}
	which exists as a {concurrent} process.

	2. <operating system> In {Chorus}, the unit of resource
	allocation.

	(1994-11-08)

Actors

	<theory> A model for {concurrency} by {Carl Hewitt}.  Actors
	are autonomous and concurrent {objects} which execute
	{asynchronously}.  The Actor model provides flexible
	mechanisms for building parallel and {distributed} software
	systems.

	{(http://osl.cs.uiuc.edu/)}.

	["Laws for Communicating Parallel Processes", C. Hewitt et al,
	IFIP 77, pp. 987-992, N-H 1977].

	["ACTORS: A Model of Concurrent Computation in Distributed
	Systems", Gul A. Agha <agha@cs.uiuc.edu>, Cambridge Press, MA,
	1986].

	(1999-11-23)

actor/singer/waiter/webmaster

	<World-Wide Web> An elaboration of the ages-old concept of the
	actor/singer/waiter, someone who waits tables __for now__, but
	who has aspirations of breaking into the glamorous worlds of
	acting or New Media or both!

	He keeps going to auditions and sending a resumes to {C|Net
	(http://cnet.com/)} because you have to pay your dues.

	His credits include being on "Friends" (as an extra), in "ER"
	(actually, in an ER - he twisted his ankle once; but he counts
	the x-rays as screen credits), and having been the webmaster
	of an extensive multimedia interactive website (his hotlist of
	"Simpsons" links).

	(1998-04-04)

Actra

	<language> A {multi-processor} {exemplar}-based {Smalltalk}.

	[LaLonde et al, OOPSLA '86].

	(1994-11-08)

actual argument

	<programming> A value, expression, or reference passed to a
	{function} or {subroutine} when it is called and which
	replaces or is bound to the corresponding {formal argument}.

	See: {argument}.

	(2002-07-02)

Actus

	<language> {Pascal} with parallel extensions, similar to the
	earlier {Glypnir}.  It has parallel constants and {index
	sets}.  Descendants include {Parallel Pascal}, {Vector C} and
	{CMU}'s language {PIE}.

	["A Language for Array and Vector Processors," R.H. Perrott,
	ACM TOPLAS 1(2):177-195 (Oct 1979)].

	(1994-11-08)

AD

	{Administrative Domain}

ad

	<networking> The {country code} for Andorra.

	(1999-01-26)

Ada

	<language> (After {Ada Lovelace}) A {Pascal}-descended
	language, designed by Jean Ichbiah's team at {CII Honeywell}
	in 1979, made mandatory for Department of Defense software
	projects by the Pentagon.  The original language was
	standardised as "Ada 83", the latest is "{Ada 95}".

	Ada is a large, complex, {block-structured} language aimed
	primarily at {embedded} applications.  It has facilities for
	{real-time} response, {concurrency}, hardware access and
	reliable run-time error handling.  In support of large-scale
	{software engineering}, it emphasises {strong typing}, {data
	abstraction} and {encapsulation}.  The type system uses {name
	equivalence} and includes both {subtypes} and {derived types}.
	Both fixed and {floating-point} numerical types are supported.

	{Control flow} is fully bracketed: if-then-elsif-end if,
	case-is-when-end case, loop-exit-end loop, goto.  Subprogram
	parameters are in, out, or inout.  Variables imported from
	other packages may be hidden or directly visible.  Operators
	may be {overloaded} and so may {enumeration} literals.  There
	are user-defined {exceptions} and {exception handlers}.

	An Ada program consists of a set of packages encapsulating
	data objects and their related operations.  A package has a
	separately compilable body and interface.  Ada permits
	{generic packages} and subroutines, possibly parametrised.

	Ada support {single inheritance}, using "tagged types" which
	are types that can be extended via {inheritance}.

	Ada programming places a heavy emphasis on {multitasking}.
	Tasks are synchronised by the {rendezvous}, in which a task
	waits for one of its subroutines to be executed by another.
	The conditional entry makes it possible for a task to test
	whether an entry is ready.  The selective wait waits for
	either of two entries or waits for a limited time.

	Ada is often criticised, especially for its size and
	complexity, and this is attributed to its having been designed
	by committee.  In fact, both Ada 83 and Ada 95 were designed
	by small design teams to be internally consistent and tightly
	integrated.  By contrast, two possible competitors, {Fortran
	90} and {C++} have both become products designed by large and
	disparate volunteer committees.

	See also {Ada/Ed}, {Toy/Ada}.

	{Home of the Brave Ada Programmers
	(http://lglwww.epfl.ch/Ada/)}.  {Ada FAQs
	(http://lglwww.epfl.ch/Ada/FAQ/)} (hypertext), {text only
	(ftp://lglftp.epfl.ch/pub/Ada/FAQ)}.

	{(http://wuarchive.wustl.edu/languages/ada/)},
	{(ftp://ajpo.sei.cmu.edu/)},
	{(ftp://stars.rosslyn.unisys.com/pub/ACE_8.0)}.

	E-mail: <adainfo@ajpo.sei.cmu.edu>.

	{Usenet} newsgroup: {news:comp.lang.ada}.

	{An Ada grammar (ftp://primost.cs.wisc.edu/)} including a lex
	scanner and yacc parser is available.  E-mail:
	<masticol@dumas.rutgers.edu>.

	{Another yacc grammar and parser for Ada by Herman Fischer
	(ftp://wsmr-simtel20.army.mil/PD2:<ADA.EXTERNAL-TOOLS>GRAM2.SRC)}.

	An {LR parser} and {pretty-printer} for {Ada} from NASA is
	available from the {Ada Software Repository}.

	{Adamakegen} generates {makefiles} for {Ada} programs.

	["Reference Manual for the Ada Programming Language", ANSI/MIL
	STD 1815A, US DoD (Jan 1983)].  Earlier draft versions
	appeared in July 1980 and July 1982.  ISO 1987.

	[{Jargon File}]

	(2000-08-12)

Ada++

	<language> An {object-oriented} extension to {Ada},
	implemented as an Ada {preprocessor}.  Obsoleted by {Ada 95}
	which includes object-oriented features.

	[{Jargon File}]

	(1995-09-19)

Ada 83

	<language> The original {Ada}, as opposed to {Ada 95}.

	(1995-03-13)

Ada 95

	<language> A revision and extension of {Ada} (Ada 83) begun in
	1988 and completed on 1994-12-01 by a team lead by Tucker Taft
	of {Intermetrics}.  Chris Anderson was the Project Manager.
	The printed standard was expected to be available around
	1995-02-15.

	Additions include {object-orientation} ({tagged types},
	{abstract types} and {class-wide types}), hierarchical
	libraries and synchronisation with shared data (protected
	types) similar to {Orca}.  It lacks {multiple inheritance} but
	supports the construction of multiple inheritance type
	hierarchies through the use of {generics} and {type
	composition}.

	{GNAT} aims to be a free implementation of Ada 95.

	You can get the standard from the {Ada Joint Program Office
	(http://wuarchive.wustl.edu/languages/ada/ajpo/index.shtml)}.

	["Introducing Ada 9X", J.G.P. Barnes, Feb 1993].

	(1999-12-02)

Ada 9X

	<language> The working title for {Ada 95} before its adoption
	as an {ISO} {standard}.

	(1995-01-19)

ADABAS

	<database> A {relational database} system by {Software AG}.
	While it was initially designed for large {IBM} {mainframe}
	systems (e.g. {S/370} in the late 1970s), it has been ported
	to numerous other {platforms} over the last few years such as
	several flavors of {Unix} including {AIX}.

	ADABAS stores its data in tables (and is thus "relational")
	but also uses some non-relational techniques, such as
	{multiple values} and {periodic groups}.

	(1995-10-30)

Ada Core Technologies

	<company> (ACT) The company that maintains {GNAT}.

	Ada Core Technologies was founded in 1994 by the original
	authors of the GNAT compiler.  ACT provides software for {Ada
	95} development.

	{(http://gnat.com/)}.

	(2000-10-28)

Ada/Ed

	<language, education> An {interpreter}, editor, and {run-time
	environment} for {Ada}, intended as a teaching tool.  Ada/Ed
	does not have the capacity, performance, or robustness of
	commercial Ada compilers.  Ada/Ed was developed at {New York
	University} as part of a project in language definition and
	software prototyping.

	AdaEd runs on {Unix}, {MS-DOS}, {Atari ST}, and {Amiga}.

	It handles nearly all of {Ada 83} and was last validated with
	version 1.7 of the {ACVC} tests.  Being an interpreter, it
	does not implement most {representation clauses} and thus does
	not support systems programming close to the machine level.

	Latest version: 1.11.0a+, as of 1994-08-18.  A later version
	is known as {GW-Ada}.

	E-mail: Michael Feldman <mfeldman@seas.gwu.edu>.

	{(ftp://ftp.wustl.edu/amiga/languages/ada)},
	{(ftp://cnam.cnam.fr/pub/Ada/Ada-Ed)}.  {For Amiga
	(ftp://cs.nyu.edu/pub/adaed)}.

	{RISC OS port
	(ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052)}.

	(1999-11-04)

Adaline

	<architecture> Name given by Widrow to {adaptive linear
	neurons}, that is {neurons} (see {McCulloch-Pitts}) which
	learn using the {Widrow-Huff Delta Rule}.  See also
	{Madaline}.

	(1995-03-14)

Ada Lovelace

	<person> (1811-1852) The daughter of Lord Byron, who became
	the world's first programmer while cooperating with {Charles
	Babbage} on the design of his mechanical computing engines in
	the mid-1800s.

	The language {Ada} was named after her.

	[{"Ada, Enchantress of Numbers Prophit of the Computer Age",
	Betty Alexandra Toole (http://well.com/user/adatoole)}].

	[More details?]

	(1999-07-17)

ADAM

	{A Data Management system}

Adam7

	<graphics, algorithm> One of the {progressive coding} methods
	used in {PNG} {images}.  Adam7, named after its author, Adam
	M. Costello, consists of seven distinct passes over the image.
	Each pass transmits a subset of the {pixels} in the image.
	The pass in which each pixel is transmitted is defined by
	replicating the following 8-by-8 pattern over the entire
	image, starting at the top left:

	 1 6 4 6 2 6 4 6
	 7 7 7 7 7 7 7 7
	 5 6 5 6 5 6 5 6
	 7 7 7 7 7 7 7 7
	 3 6 4 6 3 6 4 6
	 7 7 7 7 7 7 7 7
	 5 6 5 6 5 6 5 6
	 7 7 7 7 7 7 7 7

	(2000-09-12)

Adamakegen

	<tool> A program that generates {makefiles} for {Ada}
	programs.  Adamakegen was written by Owen O'Malley
	<owen@schwartz-omalley.com>.  It requires {Icon} and runs
	under {Verdix} and {SunAda}.

	Latest version: 2.6.3, as of 1993-03-02.

	{Adamakegen Home
	(http://schwartz-omalley.com/people/owen/tools/adamakegen.html)}.

	(2004-08-21)

ADAMO

	<database> A data management system written at {CERN}, based
	on the {Entity-Relationship model}.

	(1995-03-14)

Adam Osborne

	<person> The ex-book publisher who founded {Osborne Computer
	Corporation}.

	(2007-05-21)

Ada-O

	<language> An {Ada} subset developed at the {University of
	Karlsruhe} in 1979, used for {compiler} {bootstrapping}.  It
	lacks {overloading}, {derived types}, {real numbers}, tasks
	and {generics}.

	["Revised Ada-O Reference Manual", G. Persch et al, U
	Karlsruhe, Inst fur Infor II, Bericht Nr 9/81].

	(1995-02-14)

Adaplan

	<language> A {functional database} language based upon
	{Backus}' {FP} language.

	[Erwig&Lipeck, Proc. DBPL-3, 1991].

	(1995-05-07)

Adaplex

	<language, database> An extension of {Ada} for {functional
	databases}.

	["Adaplex: Rationale and Reference Manual 2nd ed", J.M. Smith
	et al, Computer Corp America, Cambridge MA, 1983].

	(1995-02-14)

Ada Programming Support Environment

	<tool, project> (APSE) A program or set of programs to support
	software development in the Ada language.

	[Examples?]

	(1997-06-30)

ADAPT

	<language> A subset of {APT}.

	[Sammet 1969, p. 606].

	(1995-02-14)

Adaptable User Interface

	<tool, product> (AUI, Oracle Toolkit) A toolkit from {Oracle}
	allowing applications to be written which will be portable
	between different {windowing systems}.  AUI provides one {call
	level interface} along with a resource manager and editor
	across a range of "standard" {GUIs}, including {Macintosh},
	{Microsoft Windows} and the {X Window System}.

	(1995-03-16)

Adaptec

	<company> A company specialising in the aera of movement of
	data between computers.  Adaptec designs hardware and software
	products to transfer data from a computer to a {peripheral}
	device or {network}.

	Founded in 1981, the company achieved profitability in 1984,
	went public in 1986, and to date has achieved 54 consecutive
	profitable quarters.

	Revenues for fiscal 1997 were $934 million, a 42% increase
	over the prior year.  Net income, excluding acquisition
	charges, for fiscal year 1997 was $198 million or $1.72 per
	share.

	{(http://adaptec.com)}.

	(1999-08-25)

adaptive answering

	<communications> A feature which allows a {faxmodem} to answer
	the telephone and decide whether the incoming call is a fax or
	data call.  Most {Class 1} faxmodems do this.  The
	{U.S. Robotics} Class 1 implementation however seems not to do
	it, it must be set to answer as either one or the other.

	(1995-03-16)

Adaptive Communication Environment

	<communications, tool> A {C++} wrapper library for
	communications from the {University of California at Irvine}.

	(1995-03-16)

Adaptive Digital Pulse Code Modulation

	<communications> (ADPCM) A {compression} technique which
	records only the difference between samples and adjusts the
	coding scale dynamically to accomodate large and small
	differences.  ADPCM is simple to implement, but introduces
	much {noise}.

	[Used where?  Does the {Sony} minidisk use ADPCM or {ATRAC}?]

	(1998-12-10)

adaptive learning

	<algorithm> (Or "{Hebbian} learning") Learning where a system
	programs itself by adjusting weights or strengths until it
	produces the desired output.

	(1995-03-16)

adaptive routing

	{dynamic routing}

Adaptive Server Enterprise

	<database (ASE) The {relational database management system}
	that started life in the mid-eighties [first release?] as
	"Sybase SQL Server".  For a number of years {Microsoft} was a
	Sybase distributor, reselling the Sybase product for {OS/2}
	and (later) {Windows NT} under the name "Microsoft SQL
	Server".

	Around 1994, Microsoft basically bought a copy of the {source
	code} of Sybase SQL Server and then went its own way.  As
	competitors, Sybase and Microsoft have been developing their
	products independently ever since.  Microsoft has mostly
	emphasised ease-of-use and "Window-ising" the product, while
	Sybase has focused on maximising performance and reliability,
	and running on high-end hardware.

	When releasing version 11.5 in 1997, Sybase renamed its
	product to "ASE" to better distinguish its database from
	Microsoft's.  Both ASE and MS SQL Server call their query
	language "Transact-SQL" and they are very similar.

	Sybase SQL Server was the first true {client-server} RDBMS
	which was also capable of handling real-world workloads.  In
	contrast, other DBMSs have long been monolithic programs; for
	example, {Oracle} only "bolted on" client-server functionality
	in the mid-nineties.  Also, Sybase SQL Server was the first
	commercially successful RDBMS supporting {stored procedures}
	and {triggers}, and a cost-based {query optimizer}.

	As with many other technology-driven competitors of Microsoft,
	Sybase has lost market share to MS's superior marketing,
	though many consider it has the superior system.

	{(http://sypron.nl/whatis_ase.html)}.

	(2003-07-02)

Adaptive Simulated Annealing

	<language> (ASA) An {algorithm} for global optimisation of
	generic {functions} by Lester Ingber
	<ingber@alumni.caltech.edu> <ingber@ingber.com>.

	Latest version: 20.5, as of 2000-02-29.

	{(http://alumni.caltech.edu/~ingber/)}.

	{(http://ingber.com/)}.

	Mailing list: <asa-request@alumni.caltech.edu>.

	(2000-02-29)

Adaptive TRansform Acoustic Coding

	<algorithm> (ATRAC) An audio compression {algorithm},
	introduced by {Sony} for its {Mini Disk}, which relies on the
	masking of low-amplitude frequency components by temporaly
	adjacent high-amplitude components.  ATRAC consists of a
	three-band {subband encoder} (0...5.5, 5.5...11, 11...22 kHz)
	and a {MDCT} based transformation encoder.

	[Does Sony Minidisk use {ADPCM}?]

	(2001-12-13)

Adaptor

	<tool> (Automatic DAta Parallelism TranslatOR) A source to
	source transformation tool that transforms {data parallel}
	programs written in {Fortran 77} with {array} extensions,
	parallel loops, and layout directives to parallel programs
	with explicit {message passing}.  ADAPTOR generates {Fortran
	77} host and node programs with message passing.  The new
	generated source codes have to be compiled by the compiler of
	the parallel computer.

	Version 1.0 runs on {CM-5}, {iPCS/860}, {Meiko CS1}/CS2, {KSR
	1}, {SGI}, {Alliant} or a network of {Suns} or {RS/6000s}.

	{(ftp://ftp.gmd.de/gmd/adaptor/adp_1.0.tar.Z)}.

	[Connection with Thomas Brandes and GMD?]

	(1993-06-01)

Ada Semantic Interface Specification

	<language> (ASIS) An intermediate representation for {Ada}.

	E-mail: <sblake@thomsoft.com>.

	See also {Diana}.

	(1995-02-15)

Ada Software Repository

	<language> A collection of {Ada} programs?

	{(http://wuarchive.wustl.edu/languages/ada/asr/)}.

	(1995-01-06)

ADC

	{Analog to Digital Converter}

ADCCP

	{Advanced Data Communications Control Protocol}

A/D converter

	{Analog to Digital Converter}

ADCU

	{application developer customer unit}

AD/Cycle

	<tool, product> Application Development cycle.

	A set of {SAA}-compatible {IBM}-sponsored products for program
	development, running on workstations accessing a central
	repository on a {mainframe}.  The stages cover requirements,
	analysis and design, production of the application, building
	and testing and maintenance.  Technologies used include code
	generators and {knowledge based systems} as well as languages
	and debuggers.

	(1994-10-24)

ADD 1 TO COBOL GIVING COBOL

	<humour, language> (From COBOL's equivalent syntax to C's C++)
	A tongue-in-cheek suggestion by Bruce Clement for an
	{object-oriented} {COBOL}.

	[SIGPLAN Notices 27(4):90-91 (Apr 1992)].

	(1995-03-17)

ADDD

	<tool> A Depository of Development Documents.

	A {public domain} Software Engineering Environment from {GMD}
	developed as part of the {STONE} project.

	(1995-02-03)

additive

	<mathematics> A function f : X -> Y is additive if

	 for all Z <= X
	 f (lub Z)  =  lub { f z : z in Z }

	(f "preserves {lubs}").  All additive functions defined over
	{cpos} are {continuous}.

	("<=" is written in {LaTeX} as {\subseteq}, "lub" as \sqcup ).

	(1995-02-03)

address

	1. <networking> {e-mail address}.

	2. <networking> {IP address}.

	3. <networking> {MAC address}.

	4. <storage, programming> An unsigned integer used to select
	one fundamental element of storage, usually known as a {word}
	from a computer's {main memory} or other storage device.  The
	{CPU} outputs addresses on its {address bus} which may be
	connected to an {address decoder}, {cache controller}, {memory
	management unit}, and other devices.

	While from a hardware point of view an address is indeed an
	integer most {strongly typed} programming languages disallow
	mixing integers and addresses, and indeed addresses of
	different data types.  This is a fine example for {syntactic
	salt}: the compiler could work without it but makes writing
	bad programs more difficult.

	(1997-07-01)

address book

	<messaging> A collection of electronic {contacts} for use in an
	{electronic mail} system, {mobile phone} or any other system for
	exchanging messages with other people or organisations.

	(2014-06-20)

address bus

	<processor> The connections between the {CPU} and memory which
	carry the {address} from/to which the CPU wishes to read or
	write.  The number of bits of address bus determines the
	maximum size of memory which the processor can access.

	See also {data bus}.

	(1995-03-22)

addressed call mode

	<communications> (ACM) A mode that permits control signals and
	commands to establish and terminate calls in {V.25bis}.

	(1997-05-07)

addressee

	<communications> One to whom something is addressed.
	E.g. "The To, CC, and {BCC} {headers} list the addressees of
	the e-mail message".  Normally an addressee will eventually be
	a {recipient}, unless there is a failure at some point (an
	e-mail "{bounces}") or the message is redirected to a
	different addressee.

	(2000-03-22)

addressing mode

	1. <processor, programming> One of a set of methods for
	specifying the {operand}(s) for a {machine code} instruction.
	Different processors vary greatly in the number of addressing
	modes they provide.  The more complex modes described below
	can usually be replaced with a short sequence of instructions
	using only simpler modes.

	The most common modes are "register" - the operand is stored
	in a specified {register}; "absolute" - the operand is stored
	at a specified memory address; and "{immediate}" - the operand
	is contained within the instruction.

	Most processors also have {indirect addressing} modes, e.g.
	"register indirect", "memory indirect" where the specified
	register or memory location does not contain the operand but
	contains its address, known as the "{effective address}".  For
	an absolute addressing mode, the effective address is
	contained within the instruction.

	Indirect addressing modes often have options for pre- or post-
	increment or decrement, meaning that the register or memory
	location containing the {effective address} is incremented or
	decremented by some amount (either fixed or also specified in
	the instruction), either before or after the instruction is
	executed.  These are very useful for {stacks} and for
	accessing blocks of data.  Other variations form the effective
	address by adding together one or more registers and one or
	more constants which may themselves be direct or indirect.
	Such complex addressing modes are designed to support access
	to multidimensional arrays and arrays of data structures.

	The addressing mode may be "implicit" - the location of the
	operand is obvious from the particular instruction.  This
	would be the case for an instruction that modified a
	particular control register in the CPU or, in a {stack} based
	processor where operands are always on the top of the stack.

	2. In {IBM} {System 370}/{XA} the addressing mode bit controls
	the size of the {effective address} generated.  When this bit
	is zero, the CPU is in the 24-bit addressing mode, and 24 bit
	instruction and operand effective addresses are generated.
	When this bit is one, the CPU is in the 31-bit addressing
	mode, and 31-bit instruction and operand effective addresses
	are generated.

	["IBM System/370 Extended Architecture Principles of
	Operation", Chapter 5., 'Address Generation', BiModal
	Addressing].

	(1995-03-30)

address mask

	<networking> (Or "subnet mask") A {bit mask} used to identify
	which bits in an {IP address} correspond to the {network
	address} and {subnet} portions of the address.  This mask is
	often referred to as the subnet mask because the network
	portion of the address can be determined by the {class}
	inherent in an IP address.  The address mask has ones in
	positions corresponding to the network and subnet numbers and
	zeros in the host number positions.

	(1996-03-21)

address resolution

	<networking> Conversion of an {Internet address} into the
	corresponding physical address ({Ethernet address}).  This is
	usually done using {Address Resolution Protocol}.

	The {resolver} is a library routine and a set of processes
	which converts {hostnames} into {Internet addresses}, though
	this process in not usually referred to as {resolution}.  See
	{DNS}.

	(1996-04-09)

Address Resolution Protocol

	<networking, protocol> (ARP) A method for finding a {host}'s
	{Ethernet address} from its {Internet address}.  The sender
	broadcasts an ARP {packet} containing the {Internet address}
	of another host and waits for it (or some other host) to send
	back its Ethernet address.  Each host maintains a {cache} of
	address translations to reduce delay and loading.  ARP allows
	the Internet address to be independent of the Ethernet address
	but it only works if all hosts support it.

	ARP is defined in {RFC 826}.

	The alternative for hosts that do not do ARP is {constant
	mapping}.

	See also {proxy ARP}, {reverse ARP}.

	(1995-03-20)

address space

	<operating system, architecture> The range of addresses which
	a processor or process can access, or at which a {device} can
	be accessed.  The term may refer to either {physical address}
	or {virtual address}.

	The size of a processor's address space depends on the width
	of the processor's {address bus} and address {registers}.

	Each device, such as a memory {integrated circuit}, will have
	its own local address space which starts at zero.  This will
	be mapped to a range of addresses which starts at some base
	address in the processor's address space.

	Similarly, each {process} will have its own address space,
	which may be all or a part of the processor's address space.
	In a {multitasking} system this may depend on where in memory
	the process happens to have been loaded.  For a process to be
	able to run at any address it must consist of
	{position-independent code}.  Alternatively, each process may
	see the same local address space, with the {memory management
	unit} mapping this to the process's own part of the
	processor's address space.

	(1999-11-01)

Address Strobe

	<storage> (AS) One of the input signals of a memory device,
	especially {semiconductor} memory, which is asserted to tell
	the memory device that the {address} inputs are valid.  Upon
	receiving this signal the selected memory device starts the
	memory access (read/write) indicated by its other inputs.

	It may be driven directly by the {processor} or by a {memory
	controller}.

	(1996-10-02)

ADELE

	<language> A language for specification of {attribute
	grammars}, used by the {MUG2} {compiler compiler}.

	["An Overview of the Attribute Definition Language ADELE",
	H. Ganziger in GI3, Fachesprach "Compiler-Compiler",
	W. Henhapl ed, Munchen Mar 1982, pp.22-53].

	(1995-01-23)

ADES

	<language> An early system on the {IBM 704}.

	Version: ADES II.

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

	(1995-03-20)

ad hoc

	Contrived purely for the purpose in hand rather than planned
	carefully in advance.  E.g. "We didn't know what to do about
	the sausage rolls, so we set up an ad-hoc committee".

	(1995-03-25)

ad-hockery

	<jargon> /ad-hok'*r-ee/ (Purdue) 1. Gratuitous assumptions
	made inside certain programs, especially {expert systems},
	which lead to the appearance of semi-intelligent behaviour but
	are in fact entirely arbitrary.  For example, {fuzzy-matching}
	of input tokens that might be typing errors against a symbol
	table can make it look as though a program knows how to spell.

	2. Special-case code to cope with some awkward input that
	would otherwise cause a program to fail, presuming normal
	inputs are dealt with in some cleaner and more regular way.
	Also called "ad-hackery", "ad-hocity" (/ad-hos'*-tee/),
	"ad-crockery".

	See also {ELIZA effect}.

	[{Jargon File}]

	(1995-01-05)

ad-hoc polymorphism

	{overloading}

Aditi

	<database, project> The Aditi Deductive Database System.  A
	multi-user {deductive database} system from the Machine
	Intelligence Project at the {University of Melbourne}.  It
	supports base {relations} defined by {facts} (relations in the
	sense of {relational databases}) and {derived relations}
	defined by {rules} that specify how to compute new information
	from old information.

	Both base relations and the rules defining derived relations
	are stored on disk and are accessed as required during query
	evaluation.  The rules defining derived relations are
	expressed in a {Prolog}-like language, which is also used for
	expressing queries.

	Aditi supports the full structured data capability of Prolog.
	Base relations can store arbitrarily nested terms, for example
	arbitrary length lists, and rules can directly manipulate such
	terms.  Base relations can be indexed with {B-trees} or
	multi-level signature files.

	Users can access the system through a {Motif}-based query and
	database administration tool, or through a command line
	interface.  There is also in interface that allows {NU-Prolog}
	programs to access Aditi in a transparent manner.  Proper
	{transaction processing} is not supported in this release.

	The beta release runs on {SPARC}/{SunOS4}.1.2 and
	{MIPS}/{Irix}4.0.

	E-mail: <aditi@cs.mu.oz.au>.

	(1992-12-17)

adjacency

	<networking> A relationship between two {network} devices,
	e.g. {routers}, which are connected by one media segment so
	that a packet sent by one can reach the other without going
	through another network device.  The concept of adjacency is
	important in the exchange of routing information.

	Adjacent {SNA} {nodes} are nodes connected to a given node
	with no intervening nodes.  In {DECnet} and {OSI}, adjacent
	nodes share a common segment ({Ethernet}, {FDDI}, {Token
	Ring}).

	(1998-03-10)

adjacent

	{adjacency}

ADL

	1. <games> {Adventure Definition Language}.

	2. <language> {Ada} Development Language.

	R.A. Lees, 1989.

	3. <programming> {API} Definition Language.

	A project for Automatic Interface Test Generation.

	(1995-11-17)

AdLog

	<language> A language which adds a {Prolog} layer to {Ada}.

	["AdLog, An Ada Components Set to Add Logic to Ada",
	G. Pitette, Proc Ada-Europe Intl Conf Munich, June 1988].

	(1995-03-21)

ADM

	<language> A picture {query language}, extension of {Sequel2}.

	["An Image-Oriented Database System", Y. Takao et al, in
	Database Techniques for Pictorial Applications, A. Blaser ed,
	pp. 527-538].

	(1995-03-21)

ADMD

	{Administration Management Domain}

admin

	{system administrator}

Administration Management Domain

	<networking> (ADMD) An {X.400} {Message Handling System}
	{public service carrier}.  The ADMDs in all countries
	worldwide together provide the X.400 {backbone}.  Examples:
	{MCImail} and {ATTmail} in the U.S., {British Telecom}
	{Gold400mail} in the U.K.

	See also {PRMD}.

	[RFC 1208].

	(1997-05-07)

administrative distance

	<networking> A rating of the trustworthiness of a {routing}
	information source set by the router administrator.  In
	{Cisco} {routers}, administrative distance is a number between
	0 and 255 (the higher the value, the less trustworthy the
	source).

	(1998-03-10)

Administrative Domain

	<networking> (AD) A collection of {hosts} and {routers}, and
	the interconnecting network(s), managed by a single
	{administrative authority}.

	(1994-11-24)

admissible

	<algorithm> A description of a {search algorithm} that is
	guaranteed to find a minimal solution path before any other
	solution paths, if a solution exists.  An example of an
	admissible search algorithm is {A* search}.

	(1999-07-19)

ADO

	{ActiveX Data Objects}

Adobe Systems, Inc.

	<company> A California {font} foundry and {software} house.
	Adobe created the {PostScript} {page description language} and
	wrote the {Blue Book}, {Green Book}, {Red Book} and {White
	Book} on it.  They also developed {PDF}.  Adobe took over
	{Frame Technology Corporation} in late 1995/early 1996.

	{(http://adobe.com/)}.

	E-mail: <postmaster@adobe.com>.

	Address: Silicon Valley, California, USA.

	(1996-12-13)

Adobe Type Manager

	<text, tool, product> (ATM) Software that produces
	{PostScript} {outline fonts} on screen and paper.  There are
	versions that run under {Microsoft Windows} and on the
	{Macintosh}.  ATM can do {hinting}, {multiple master} and
	{anti-aliasing}.

	(1998-03-10)

ADPCM

	{Adaptive Digital Pulse Code Modulation}

ADR

	{Astra Digital Radio}

ADS

	An {expert system}.

ADSL

	{Asymmetric Digital Subscriber Line}

ADSP

	{AppleTalk Data Stream Protocol}

ADSU

	{ATM Data Service Unit}

ADT

	{abstract data type}

Advanced Audio Coding

	<audio> (AAC) A successor to {MP3}, allowing lower {bit rates}
	and more stable quality.

	See {MPEG-2 AAC Low Profile} and {MPEG-4 AAC Main Profile}.

	(2001-12-02)

Advanced Communication Function/Network Control Program

	<networking> (ACF/NCP, usually called just "NCP") The primary
	{SNA} {network control program}, one of the {ACF} products.
	ACF/NCP resides in the {communications controller} and
	interfaces with {ACF/VTAM} in the {host processor} to control
	network communications.

	NCP can also communicate with multiple {hosts} using {local
	channel} or remote links ({PU} type 5 or PU type 4) thus
	enabling cross {domain} application communication.  In a
	multiple {mainframe} SNA environment, any terminal or
	application can access any other application on any host using
	cross domain logon.

	See also {Emulator program}.

	[Communication or Communications?]

	(1999-01-29)

Advanced Communications Function

	<networking> (ACF) A group of {IBM} {SNA} products that
	provide {distributed processing} and resource sharing such as
	{VTAM} and {NCP}.

	[Communication or Communications?]

	(1997-05-07)

Advanced Computing Environment

	<body> (ACE) A consortium to agree on an {open} architecture
	based on the {MIPS R4000} chip.  A computer architecture ARCS
	will be defined, on which either {OS/2} or {Open Desktop} can
	be run.

	(1995-02-03)

Advanced Configuration and Power Interface

	<hardware, standard> (ACPI) An open industry standard
	developed by {Intel}, {Microsoft}, and {Toshiba} for
	configuration and {power management}.

	The key element of the standard is power management with two
	important improvements.  First, it puts the {OS} in control of
	power management.  In the currently existing {APM} model most
	of the power management tasks are run by the {BIOS}, with
	limited intervention from the OS.  In ACPI, the BIOS is
	responsible for the dirty details of communicating with
	hardware equipment but the control is in the OS.

	The other important feature is bringing power management
	features now available only in {portable computers} to
	{desktop computers} and {servers}.  Extremely low consumption
	states, i.e., in which only memory, or not even memory is
	powered, but from which ordinary interrupts (real time clock,
	keyboard, modem, etc.) can quickly wake the system, are today
	available in portables only.  The standard should make these
	available for a wider range of systems.

	For ACPI to work the operating system, the {motherboard}
	chipset, and for some functions even the {CPU} has to be
	designed for it.  Microsoft is heavily driving a move toward
	ACPI, both {Windows NT 5.0} and {Windows 98} will support it.
	It remains to be seen how much hardware manufacturers will
	embrace the technology and whether other operating system
	vendors will support it.

	{ACPI Information Page (http://teleport.com/~acpi/)}.

	(1998-03-27)

Advanced Data Communications Control Protocol

	<protocol> An {ANSI} {standard} {bit-oriented} {data link}
	control {protocol}.

	(1997-05-07)

Advanced Encryption Standard

	<cryptography, algorithm> (AES) The {NIST}'s replacement for
	the {Data Encryption Standard} (DES).  The Rijndael
	/rayn-dahl/ {symmetric block cipher}, designed by Joan Daemen
	and Vincent Rijmen, was chosen by a NIST contest to be AES.

	AES is Federal Information Processing Standard FIPS-197.

	AES currently supports 128, 192 and 256-bit keys and
	encryption blocks, but may be extended in multiples of 32
	bits.

	{(http://csrc.nist.gov/CryptoToolkit/aes/)}.

	{Rijndael home page
	(http://esat.kuleuven.ac.be/~rijmen/rijndael/)}.

	(2003-07-04)

Advanced Function Presentation

	<printer, language> (AFP) A {page description language} from
	{IBM} introduced in 1984 initially as Advanced Function
	Printing.  AFP was first developed for {mainframes} and then
	brought to {minicomputers} and {workstations}.  It is
	implemented on the various {platforms} by {Print Services
	Facility} (PSF) software, which generates the {native} IBM
	printer language, {IPDS} and, depending on the version,
	{PostScript} and LaserJet {PCL} as well.  IBM calls AFP a
	"printer architecture" rather than a page description
	language.

Advanced Function Printing

	{Advanced Function Presentation}

Advanced Intelligent Tape

	<storage> (AIT) A form of {magnetic tape} and drive using
	{AME} developed by {Sony} for storing large amounts of data.
	An AIT can store over 50 {gigabytes} and transfer data at six
	megabytes/second (in February 1999).  AIT features high speed
	file access, long head and media life, the {ALDC compression}
	{algorithm}, and a {MIC} chip.

	{(http://aittape.com/)}.

	{Seagate
	(http://seagate.com/support/tape/scsiide/sidewinder/ait_main_page.shtml)}.

	(1999-04-16)

Advanced Interactive eXecutive

	<operating system> (AIX) {IBM}'s version of {Unix}, taken as
	the basis for the {OSF} {standard}.

	{Usenet} newsgroup: {news:comp.sys.unix.aix}.

	(1994-11-24)

Advanced Micro Devices, Inc.

	<company> (AMD) A US manufacturer of {integrated circuits},
	founded in 1969.  AMD was the fifth-largest IC manufacturer in
	1995.  AMD focuses on the personal and networked computation
	and communications market.  They produce {microprocessors},
	{embedded processors} and related peripherals, memories,
	{programmable logic devices}, circuits for telecommunications
	and networking applications.

	In 1995, AMD had 12000 employees in the USA and elsewhere and
	manufacturing facilities in Austin, Texas; Aizu-Wakamatsu,
	Japan; Bangkok, Thailand; Penang, Malaysia; and Singapore.

	AMD made the {AMD 2900} series of {bit-slice} {TTL} components
	and clones of the {Intel 80386} and {Intel 486}
	{microprocessors}.

	{AMD Home (http://amd.com/)}.

	Address: Sunnyvale, CA, USA.

	(1995-02-27)

Advanced Network Systems Architecture

	<networking> (ANSA) A "{software bus}" based on a model for
	distributed systems developed as an {ESPRIT} project.

	{(http://ansa.co.uk/)}.

	(1996-04-01)

Advanced Peer-to-Peer Networking

	<networking, product> (APPN) IBM data communications support
	that routes data in a network between two or more {APPC}
	systems that need not be adjacent.

	(1995-02-03)

Advanced Power Management

	<hardware> (APM) A feature of some displays, usually but not
	always, on {laptop computers}, which turns off power to the
	display after a preset period of inactivity to conserve
	electrical power.  Monitors with this capability are usually
	refered to as "green monitors", meaning environmentally
	friendly.

	Not to be confused with a {screen blanker} which is {software}
	that causes the display to go black (by setting every {pixel}
	to black) to prevent {burn-in}.

	(1997-08-25)

Advanced Programmable Interrupt Controller

	<integrated circuit> (APIC) A {Programmable Interrupt
	Controller} (PIC) that can handle {interrupts} from and for
	multiple {CPUs}, and, usually, has more available interrupt
	lines that a typical PIC.

	(2003-03-18)

Advanced Program-to-Program Communications

	<networking, product> (APPC) An implementation of the {IBM}
	{SNA}/{SDLC} {LU6.2} {protocol} that allows interconnected
	systems to communicate and share the processing of programs.

	(1995-02-03)

Advanced Research Projects Agency

	{Defense Advanced Research Projects Agency}

Advanced Research Projects Agency Network

	<networking> (ARPANET) A pioneering longhaul {wide area
	network} funded by {DARPA} (when it was still called "ARPA"?).
	It became operational in 1968 and served as the basis for
	early networking research, as well as a central {backbone}
	during the development of the {Internet}.  The ARPANET
	consisted of individual {packet switching} computers
	interconnected by {leased lines}.  {Protocols} used include
	{FTP} and {telnet}.  It has now been replaced by {NSFnet}.

	[1968 or 1969?]

	(1994-11-17)

Advanced Revelation

	<database> (AREV) A {database development environment} for
	{personal computers} available from {Revelation Software}
	since 1982.  Originally based on the {PICK} {operating
	system}, there are over one million users worldwide in 1996.

	(1996-12-12)

Advanced RISC Computing Specification

	<standard, hardware> (ARC, previously ARCS) The baseline
	hardware requirements for an {ACE}-compatible system.

	(1995-01-16)

Advanced RISC Machine

	<processor> (ARM, Originally {Acorn} RISC Machine).  A series
	of low-cost, power-efficient 32-bit {RISC} {microprocessors}
	for embedded control, computing, {digital signal processing},
	{games}, consumer {multimedia} and portable applications.  It
	was the first commercial RISC microprocessor (or was the {MIPS
	R2000}?) and was licensed for production by {Asahi Kasei
	Microsystems}, {Cirrus Logic}, {GEC Plessey Semiconductors},
	{Samsung}, {Sharp}, {Texas Instruments} and {VLSI Technology}.

	The ARM has a small and highly {orthogonal instruction set},
	as do most RISC processors.  Every instruction includes a
	four-bit code which specifies a condition (of the {processor
	status register}) which must be satisfied for the instruction
	to be executed.  Unconditional execution is specified with a
	condition "true".

	Instructions are split into load and store which access memory
	and arithmetic and logic instructions which work on
	{registers} (two source and one destination).

	The ARM has 27 registers of which 16 are accessible in any
	particular processor mode.  R15 combines the {program counter}
	and processor status byte, the other registers are general
	purpose except that R14 holds the {return address} after a
	{subroutine} call and R13 is conventionally used as a {stack
	pointer}.  There are four processor modes: user, {interrupt}
	(with a private copy of R13 and R14), fast interrupt (private
	copies of R8 to R14) and {supervisor} (private copies of R13
	and R14).  The {ALU} includes a 32-bit {barrel-shifter}
	allowing, e.g., a single-{cycle} shift and add.

	The first ARM processor, the ARM1 was a prototype which was
	never released.  The ARM2 was originally called the Acorn RISC
	Machine.  It was designed by {Acorn Computers Ltd.} and used
	in the original {Archimedes}, their successor to the {BBC
	Micro} and {BBC Master} series which were based on the
	eight-bit {6502} {microprocessor}.  It was clocked at 8 MHz
	giving an average performance of 4 - 4.7 {MIPS}.  Development
	of the ARM family was then continued by a new company,
	{Advanced RISC Machines Ltd.}

	The {ARM3} added a {fully-associative} on-chip {cache} and
	some support for {multiprocessing}.  This was followed by the
	{ARM600} chip which was an {ARM6} processor {core} with a
	4-kilobyte 64-way {set-associative} {cache}, an {MMU} based on
	the MEMC2 chip, a {write buffer} (8 words?) and a
	{coprocessor} interface.

	The {ARM7} processor core uses half the power of the {ARM6}
	and takes around half the {die} size.  In a full processor
	design ({ARM700} chip) it should provide 50% to 100% more
	performance.

	In July 1994 {VLSI Technology, Inc.} released the {ARM710}
	processor chip.

	{Thumb} is an implementation with reduced code size
	requirements, intended for {embedded} applications.

	An {ARM800} chip is also planned.

	{AT&T}, {IBM}, {Panasonic}, {Apple Coputer}, {Matsushita} and
	{Sanyo} either rely on, or manufacture, ARM 32-bit processor
	chips.

	{Usenet} newsgroup: {news:comp.sys.arm}.

	(1997-08-05)

Advanced RISC Machines Ltd.

	<company> (ARM) A company formed in 1990 by {Acorn Computers}
	Ltd., {Apple Computer, Inc.} and {VLSI Technology} to market
	and develop the {Advanced RISC Machine} {microprocessor}
	family, originally designed by Acorn.

	ARM Ltd. also designs and licenses peripheral chips and
	supplies supporting software and hardware tools.  In April
	1993, Nippon Investment and Finance, a Daiwa Securities
	company, became ARM's fourth investor.  In May 1994 Samsung
	became the sixth large company to have a licence to use the
	ARM processor core.

	The success of ARM Ltd. and the strategy to widen the
	availability of RISC technology has resulted in its chips now
	being used in a range of products including the {Apple
	Newton}.  As measured by an independent authority, more ARM
	processors were shipped than {SPARC} chips in 1993.  ARM has
	also sold three times more chips than the {PowerPC}
	consortium.

	{(http://systemv.com/armltd/index.html)}.

	E-mail: armltd.co.uk.

	Address: Advanced RISC Machines Ltd.  Fulbourn Road, Cherry
	Hinton, Cambridge CB1 4JN, UK.

	Telephone: +44 (1223) 400 400.  Fax: +44 (1223) 400 410.

	(1994-11-03)

Advanced SCSI Peripheral Interface

	<storage, programming> (ASPI) A set of libraries designed to
	provide programs running under {Microsoft Windows} with a
	consistent interface for accessing {SCSI} devices.  ASPI has
	become a {de facto standard}.

	The ASPI layer is a collection of programs ({DLLs}) that
	together implement the ASPI interface.  Many problems are
	caused by device manufacturers packaging incomplete sets of
	these DLLs with their hardware, often with incorrect date
	stamps, causing newer versions to get replaced with old.
	ASPICHK from Adaptec will check the ASPI components installed
	on a computer.

	The latest ASPI layer as of March 1999 is 1014.

	The {ATAPI} standard for {IDE} devices makes them look to the
	system like SCSI devices and allows them to work through ASPI.

	{(http://resource.simplenet.com/primer/aspi.htm)}.

	(1999-03-30)

Advanced Software Environment

	<programming> (ASE) An {object-oriented} {application support
	system} from {Nixdorf}.

	(1995-09-12)

Advanced STatistical Analysis Program

	<tool, electronics> (ASTAP) A program for analysing electronic
	circuits and other networks.

	["Advanced Statistical Analysis Program (ASTAP) Program
	Reference Manual", SH-20-1118, IBM, 1973].

	(2000-01-27)

Advanced Technology Attachment

	<storage, hardware, standard> (ATA, AT Attachment or
	"Integrated Drive Electronics", IDE) A {disk drive} interface
	{standard} based on the {IBM PC} {ISA} 16-bit {bus} but also
	used on other {personal computers}.  ATA specifies the power
	and data signal interfaces between the {motherboard} and the
	integrated {disk controller} and drive.  The ATA "bus" only
	supports two devices - master and slave.

	ATA drives may in fact use any physical interface the
	manufacturer desires, so long as an embedded translator is
	included with the proper ATA interface.  ATA "controllers" are
	actually direct connections to the ISA bus.

	Originally called IDE, the ATA interface was invented by
	{Compaq} around 1986, and was developed with the help of
	{Western Digital}, {Imprimis}, and then-upstart {Conner
	Peripherals}.  Efforts to standardise the interface started in
	1988; the first draft appeared in March 1989, and a finished
	version was sent to {ANSI} group X3T10 (who named it "Advanced
	Technology Attachment" (ATA)) for ratification in November
	1990.

	X3T10 later extended ATA to {Advanced Technology Attachment
	Interface with Extensions} (ATA-2), followed by {ATA-3} and
	{ATA-4}.

	{X3T10 (http://symbios.com/x3t10/)}.

	(1998-10-08)

Advanced Technology Attachment Interface with Extensions

	<storage, standard> (ATA-2, Enhanced Integrated Drive
	Electronics, EIDE) A proposed (May 1996 or earlier?)
	{standard} from {X3T10} (document 948D rev 3) which extends
	the {Advanced Technology Attachment} interface while
	maintaining compatibility with current {IBM PC} {BIOS}
	designs.

	ATA-2 provides for faster data rates, 32-bit transactions and
	(in some drives) {DMA}.  Optional support for power saving
	modes and removable devices is also in the standard.

	ATA-2 was developed by {Western Digital} as "Enhanced
	Integrated Drive Electronics" (EIDE) around 1994.
	{Marketroids} call it "Fast ATA" or "Fast ATA-2".

	ATA-2 was followed by {ATA-3} and {ATA-4} ("Ultra DMA").

	(2000-10-07)

Advanced Video Coding

	{H.264}

Advanced WavEffect

	<multimedia, music, hardware> (AWE) The kind of synthesis used
	by the {EMU 8000} music synthesizer {integrated circuit} found
	on the {SB AWE32} card.

	(1996-12-15)

Advantage Gen

	<language, software> A {CASE} tool for {rapid application
	development} which generates code from graphical {business
	process models}.  Formerly called Information Engineering
	Facility (IEF) and produced by {Texas Instruments}, it was
	then bought by {Sterling Software, Inc.} who renamed it to
	COOL:Gen to fit into their COOL line of products.  {Computer
	Associates International, Inc.} then acquired {Sterling
	Software, Inc.}, and renamed the tool "Advantage Gen".

	In 2003, CA are supporting Advantage Gen and adding support
	for {J2EE}/{EJB}, enhanced web enablement, {Web services}, and
	{.Net}.

	Latest version: 6.5, as of 2003-04-14.

	{(http://www3.ca.com/Solutions/Product.asp?ID=256)}.

	(2003-06-23)

ADVENT

	<games> /ad'vent/ The prototypical computer {adventure} game,
	first implemented by Will Crowther for a {CDC} computer
	(probably the {CDC 6600}?) as an attempt at computer-refereed
	fantasy gaming.

	ADVENT was ported to the {PDP-10}, and expanded to the
	350-point {Classic} puzzle-oriented version, by Don Woods of
	the {Stanford Artificial Intelligence Laboratory} (SAIL).  The
	game is now better known as Adventure, but the {TOPS-10}
	{operating system} permitted only six-letter filenames.  All
	the versions since are based on the SAIL port.

	David Long of the {University of Chicago} Graduate School of
	Business Computing Facility (which had two of the four
	{DEC20s} on campus in the late 1970s and early 1980s) was
	responsible for expanding the cave in a number of ways, and
	pushing the point count up to 500, then 501 points.  Most of
	his work was in the data files, but he made some changes to
	the {parser} as well.

	This game defined the terse, dryly humorous style now expected
	in text adventure games, and popularised several tag lines
	that have become fixtures of hacker-speak: "A huge green
	fierce snake bars the way!"  "I see no X here" (for some noun
	X).  "You are in a maze of twisty little passages, all alike."
	"You are in a little maze of twisty passages, all different."
	The "magic words" {xyzzy} and {plugh} also derive from this
	game.

	Crowther, by the way, participated in the exploration of the
	Mammoth & Flint Ridge cave system; it actually *has* a
	"Colossal Cave" and a "Bedquilt" as in the game, and the "Y2"
	that also turns up is cavers' jargon for a map reference to a
	secondary entrance.

	See also {vadding}.

	[Was the original written in Fortran?]

	[{Jargon File}]

	(1996-04-01)

Adventure Definition Language

	<language, games> (ADL) An {adventure} game language
	{interpreter} designed by Ross Cunniff <cunniff@fc.hp.com> and
	Tim Brengle in 1987.  ADL is semi-{object-oriented} with
	{Lisp}-like {syntax} and is a superset of {DDL}.  It is
	available for {Unix}, {MS-DOS}, {Amiga} and {Acorn}
	{Archimedes}.

	{(ftp://ftp.uu.net/usenet/comp.sources.games/volume2)},
	{(ftp://ftp.wustl.edu/systems/amiga/fish/fish/f0/ff091)}.

	(1995-03-20)

ADVSYS

	<language, games> An {adventure} game language designed by
	David Betz in 1986.  ADVSYS is {object-oriented} and
	{Lisp}-like.

	{(ftp://ftp.uu.net/usenet/comp.sources.games/volume2)}.

	(1995-03-20)

adware

	<software> Any kind of {software} which is distributed free of
	charge along with advertisements that are either placed on the
	{web site} from which the software is distributed or displayed
	by the program while it is running.

	{Nagware} might be considered a special case of adware where
	the program tries to persuade the user to buy a license for
	the program itself.

	(2007-11-20)

AE

	{Application Executive}

ae

	<networking> The {country code} for the United Arab Emirates.

	(1999-01-27)

AED

	{Automated Engineering Design}

AEGIS

	<operating system> A {Unix} variant that was used on {Apollo}
	{workstations} before Apollo was bought by {Hewlett Packard}.
	AEGIS has some advantages over standard {BSD} or {System V}
	Unix.  It includes faster file access and a richer command
	set; there are commands to find out which {process} is running
	on a particular node, which process is locking a particular
	file, etc.

	(1997-02-25)

Aegis

	<programming, tool> A {CASE} tool for project {change
	management} written by Peter Miller, with minor contributions
	by a few others.  Aegis is licensed using the {GNU GPL} but is
	not a GNU project.

	{Aegis Home (http://aegis.sourceforge.net/)}.

	(2005-03-24)

Aeolus

	<language> A {concurrent} language with {atomic transactions}.

	["Rationale for the Design of Aeolus", C. Wilkes et al, Proc
	IEEE 1986 Intl Conf Comp Lang, IEEE 1986, pp.107-122].

	(1995-03-27)

AEP

	{Application Environment Profile}

aeroplane rule

	<convention> "Complexity increases the possibility of failure;
	a twin-engine aeroplane has twice as many engine problems as a
	single-engine aeroplane."

	By analogy, in both software and electronics, the implication
	is that simplicity increases robustness and that the right way
	to build reliable systems is to put all your eggs in one
	basket, after making sure that you've built a really *good*
	basket.

	While simplicity is a useful design goal, and twin-engine
	aeroplanes do have twice as many engine problems, the analogy
	is almost entirely bogus.  Commercial passenger aircraft are
	required to have at least two engines (on different wings or
	nacelles) so that the aeroplane can land safely if one engine
	fails.  As Albert Einstein said, "Everything should be made as
	simple as possible, but not simpler".

	See also {KISS Principle}.

	(1999-03-22)

AES

	1. <programming> {Application environment specification}.

	2. <security> {Advanced Encryption Standard}.

AESOP

	{An Evolutionary System for On-line Programming}

af

	<networking> The {country code} for Afghanistan.

	(1999-01-27)

AFAC

	<language> An early system on the {IBM 704}.

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

	(1995-04-04)

AFAIK

	<chat> as far as I know.

affine transformation

	<mathematics> A {linear transformation} followed by a
	{translation}.  Given a {matrix} M and a {vector} v,

	  A(x) = Mx + v

	is a typical affine transformation.

	(1995-04-10)

affordance

	<graphics> A visual clue to the function of an object.

	(1998-10-15)

AFIPS

	{American Federation of Information Processing Societies}

AFJ

	{April Fool's Joke}

AFK

	<chat> away from keyboard.

aflex

	<tool> A {Lex}-like {scanner generator} that produce {Ada}
	output from IRUS (Irvine Research Unit in Software).  aflex
	comes with {ayacc}.

	Version 1.2a.

	Mailing list: <irus-software-request@ics.uci.edu>.

	{(ftp://liege.ics.uci.edu/pub/irus/aflex-ayacc_1.2a.tar.Z)}.

	(1993-01-06)

AFNOR

	<body, standard> Association Francaise pour la Normalisation.

	The French national {standards} institute, a member of {ISO}.

	(1994-12-14)

AFP

	1. <protocol> {Appletalk Filing Protocol}.

	2. <printer, language> {Advanced Function Presentation}.

AFS

	{Andrew File System}

AFUU

	{Association Française des Utilisateurs d'Unix}

ag

	<networking> The {country code} for Antigua and Barbuda.

	(1999-01-27)

agent

	<networking> In the {client-server} model, the part of the
	system that performs information preparation and exchange on
	behalf of a {client} or {server}.  Especially in the phrase
	"intelligent agent" it implies some kind of automatic process
	which can communicate with other agents to perform some
	collective task on behalf of one or more humans.

	(1995-04-09)

aggregate type

	<programming> A data {type} composed of multiple elements.  An
	aggregate can be homogeneous (all elements have the same type)
	e.g. an {array}, a list in a {functional language}, a string
	of characters, a file; or it can be heterogeneous (elements
	can have different types) e.g. a {structure}.  In most
	languages aggregates can contain elements which are themselves
	aggregates. e.g. a list of lists.

	See also {union}.

	(1996-03-23)

aggregation

	<programming> A composition technique for building a new
	{object} from one or more existing objects that support some
	or all of the new object's required interfaces.

	(1996-01-07)

aggregator

	<networking> A program for watching for new content at
	user-specified {RSS} feeds.

	An example is {BottomFeeder}.

	{(http://directory.google.com/Top/Reference/Libraries/Library_and_Information_Science/Technical_Services/Cataloguing/Metadata/RDF/Applications/RSS/News_Readers/)}.

	(2003-09-29)

AGL

	<programming> (Atelier de Genie Logiciel) French for {IPSE}.

	(1997-01-07)

AGM Theory for Belief Revision

	<artificial intelligence> (After the initials of the authors
	who established the field - Alchourron, Makinson and
	Gardenfors).  A method of {belief revision} giving minimal
	properties a revision process should have.

	[Reference?]

	(1995-03-20)

Agner Krarup Erlang

	<person> (1878-1929) A Danish mathematician.  {Erlang} the
	language and unit were named after him.

	Interested in the theory of {probability}, in 1908 Erlang
	joined the Copenhagen Telephone Company where he studied the
	problem of waiting times for telephone calls.

	He worked out how to calculate the fraction of callers
	who must wait due to all the lines of an exchange being in
	use.  His formula for loss and waiting time was published in
	1917.  It is now known as the "Erlang formula" and is still
	in use today.

	{Biography
	(http://www-history.mcs.st-andrews.ac.uk/~history/Mathematicians/Erlang.html)},
	{Biography
	(http://pass.maths.org.uk/issue2/erlang/index.html)}.

	(2005-02-26)

AGORA

	<language> A distributed {object-oriented language}.

AGP

	{Accelerated Graphics Port}

AGP graphics

	{Accelerated Graphics Port}

A Hardware Programming Language

	<language> (AHPL) A {register}-level language by Hill and
	Peterson, some of whose operators resemble {APL}.

	HPSIM2 is a function-level simulator, available from Engrg
	Expt Sta, {University of Arizona}.

	["Digital Systems: Hardware Organization and Design", F. Hill
	et al, Wiley 1987].

	(1995-01-26)

AHDL

	{Analog Hardware Design Language}

AHPL

	{A Hardware Programming Language}

AI

	{artificial intelligence}

ai

	<networking> The {country code} for Anguilla.

	(1999-01-27)

AIA

	{Application Integration Architecture}

AI-complete

	<artificial intelligence, jargon> /A-I k*m-pleet'/ (MIT,
	Stanford: by analogy with "{NP-complete}") A term used to
	describe problems or subproblems in {artificial intelligence},
	to indicate that the solution presupposes a solution to the
	"strong AI problem" (that is, the synthesis of a human-level
	intelligence).  A problem that is AI-complete is, in other
	words, just too hard.

	See also {gedanken}.

	[{Jargon File}]

	(1995-04-12)

AID

	{Algebraic Interpretive Dialogue}

AIDA

	<language> 1. A {functional} dialect of {Dictionary APL} by
	M. Gfeller.

	["APL Arrays and Their Editor", M. Gfeller, SIGPLAN Notices
	21(6):18-27 (June 1986) and SIGAPL Conf Proc].

	2. An intermediate representation language for {Ada} developed
	at the {University of Karlsruhe} in 1980.  AIDA was merged
	with {TCOL.Ada} to form {Diana}.

	["AIDA Introduction and User Manual", M. Dausmann et al, U
	Karlsruhe, Inst fur Inform II, TR Nr 38/80].

	["AIDA Reference Manual", ibid, TR Nr 39/80, Nov 1980].

	(1995-04-12)

AIDS

	<jargon> /aydz/ A* Infected Disk Syndrome ("A*" is a
	{glob} pattern that matches, but is not limited to, {Apple
	Computer}), this condition is quite often the result of
	practicing unsafe {SEX}.

	See {virus}, {worm}, {Trojan horse}, {virgin}.

	[{Jargon File}]

	(1995-04-13)

AIDX

	<abuse, operating system> /aydkz/ A derogatory term for
	{IBM}'s perverted version of {Unix}, {AIX}, especially for the
	AIX 3.? used in the {IBM RS/6000} series (some hackers think
	it is funnier just to pronounce "AIX" as "aches").  A victim
	of the dreaded "hybridism" disease, this attempt to combine
	the two main currents of the Unix stream ({BSD} and {USG
	Unix}) became a monstrosity to haunt system administrators'
	dreams.  For example, if new accounts are created while many
	users are logged on, the load average jumps quickly over 20
	due to silly implementation of the user databases.

	For a quite similar disease, compare {HP-SUX}.  Also, compare
	{Macintrash} {Nominal Semidestructor}, {Open DeathTrap},
	{ScumOS}, {sun-stools}.

	[{Jargon File}]

	(1995-04-13)

AIFF

	{Audio IFF}

AI International

	<company> One of distributors of {Prolog++}, subsumed by
	{Customer Engagement Company} before December 1998.

	(1998-12-13)

Aiken code

	<data> An alternative form of the {Binary Coded Decimal} (BCD)
	system for encoding numbers.  Where BCD encodes each decimal
	digit in normal binary, Aiken code uses the encoding shown
	below.  This is supposed to be less prone to corruption.

	The following table shows the encoding of each decimal digit,
	D, in BCD and Aiken code:

	 D  BCD  Aiken
	 0  0000  0000
	 1  0001  0001
	 2  0010  0010
	 3  0011  0011
	 4  0100  0100
	 5  0101  1011 (inverted 4)
	 6  0110  1100 (inverted 3)
	 7  0111  1101 (inverted 2)
	 8  1000  1110 (inverted 1)
	 9  1001  1111 (inverted 0)

	The Aiken code was probably designed by {Howard Aiken} in the
	1940s or 1950s for use in data transmission.

	Compare: {Gray code}.

	[What is it good for and why?]

	(2007-07-16)

AI koan

	<humour> /A-I koh'an/ One of a series of pastiches of Zen
	teaching riddles created by {Danny Hillis} at the {MIT AI Lab}
	around various major figures of the Lab's culture.

	See also {ha ha only serious}, {mu}.

	In reading these, it is at least useful to know that {Marvin
	Minsky}, {Gerald Sussman}, and Drescher are {AI} researchers
	of note, that {Tom Knight} was one of the {Lisp machine}'s
	principal designers, and that {David Moon} wrote much of Lisp
	Machine Lisp.

					 * * *

	A novice was trying to fix a broken Lisp machine by turning
	the power off and on.

	Knight, seeing what the student was doing, spoke sternly: "You
	cannot fix a machine by just power-cycling it with no
	understanding of what is going wrong."

	Knight turned the machine off and on.

	The machine worked.

					 * * *

	One day a student came to Moon and said: "I understand how to
	make a better garbage collector.  We must keep a reference
	count of the pointers to each cons."

	Moon patiently told the student the following story:

	     "One day a student came to Moon and said: `I understand
	     how to make a better garbage collector...

	[Pure reference-count garbage collectors have problems with
	circular structures that point to themselves.]

					 * * *

	In the days when Sussman was a novice, Minsky once came to him
	as he sat hacking at the PDP-6.

	"What are you doing?", asked Minsky.

	"I am training a randomly wired neural net to play
	Tic-Tac-Toe", Sussman replied.

	"Why is the net wired randomly?", asked Minsky.

	"I do not want it to have any preconceptions of how to play",
	Sussman said.

	Minsky then shut his eyes.

	"Why do you close your eyes?", Sussman asked his teacher.

	"So that the room will be empty."

	At that moment, Sussman was enlightened.

					 * * *

	A disciple of another sect once came to Drescher as he was
	eating his morning meal.

	"I would like to give you this personality test", said the
	outsider, "because I want you to be happy."

	Drescher took the paper that was offered him and put it into
	the toaster, saying: "I wish the toaster to be happy, too."

	(1995-02-08)

AIMACO

	{AIr MAterial COmmand compiler}

Aimnet

	<networking, company> An {Internet} {access provider} for
	individuals and corporations.  They provide {dial-up}, {SLIP},
	{PPP} and {shell accounts} as well as {ISDN}.

	{(http://aimnet.com/)}.

	Address: Cupertino, CA 95014, USA.

	Telephone: +1 (408) 253 0900

	(1995-02-08)

AIR

	<standard> A future {infrared} standard from {IrDA}.  AIR will
	provide in-room multipoint to multipoint connectivity.  AIR
	supports a data rate of 4 Mbps at a distance of 4 metres, and
	250 Kbps at up to 8 metres.  It is designed for cordless
	connections to multiple peripherals and meeting room
	collaboration applications.

	See also {IrDA Data} and {IrDA Control}

	(1999-10-14)

AIr MAterial COmmand compiler

	<language> (AIMACO) A modification of {FLOW-MATIC}.  AIMACO
	was supplanted by {COBOL}.

	[Sammet 1969, p. 378].

	(1995-02-20)

airplane rule

	{aeroplane rule}

AIT

	{Advanced Intelligent Tape}

AIX

	{Advanced Interactive eXecutive}

Ajax

	<programming> (Asynchronous JavaScript And XML) A collection
	of techniques for creating interactive {web applications}
	without having to reload the complete {web page} in response
	to each user input, thus making the interaction faster.  AJAX
	typically uses the {XMLHttpRequest} browser object to exchange
	data asynchronously with the {web server}.  Alternatively, an
	{IFrame} object or dynamically added <script> tags may be used
	instead of XMLHttpRequest.

	Despite the name, Ajax can combine any browser scripting
	language (not just {JavaScript}) and any data representation
	(not just XML).  Alternative data formats include {HTML},
	plain text or {JSON}.

	Several Ajax {frameworks} are now available to simplify Ajax
	development.

	(2007-10-04)

AKC

	{Ascending Kleene Chain}

AKCL

	{Austin Kyoto Common Lisp}

A. K. Erlang

	{Agner Krarup Erlang}

AKL

	{Andorra Kernel Language}

AL

	1. {Assembly Language}.

	2. {artificial life}.

al

	<networking> The {country code} for Albania.

	(1999-01-27)

Aladdin Enterprises

	<company> A small, privately owned, US software consulting and
	development company, founded in 1986, best known as the
	original developer of {Ghostscript}.

	Address: San Francisco Peninsula, California, USA.

	Not to be confused with {Aladdin Systems, Inc.}.

	{Aladdin Enterprises Home (http://aladdin.com/)}.

	(2003-09-24)

Aladdin Systems, Inc.

	<company> The company that developed and distributes {Stuffit}
	and other {utility software} for the {Macintosh}, {Microsoft
	Windows}, and {Palm} {handheld computers}.

	Not to be confused with {Aladdin Enterprises}.

	{Aladdin Systems Home (http://aladdinsys.com/)}.

	(2003-09-20)

ALADIN

	1. <language> {A Language for Attributed Definitions}.

	2. <tool> An interactive mathematics system for the {IBM 360}.

	["A Conversational System for Engineering Assistance: ALADIN",
	Y. Siret, Proc Second Symp Symb Algebraic Math, ACM Mar 1971].

	(1995-04-13)

ALAM

	<language> A language for {symbolic mathematics}, especially
	General Relativity.

	See also {CLAM}.

	["ALAM Programmer's Manual", Ray D'Inverno, 1970].

	(1994-10-28)

Alan F. Shugart

	<person> The man who founded {Shugart Associates} and later
	co-founded {Seagate Technology}.  Alan Shugart left Shugart
	Associates in 1974 [did he quit or was he fired?] and took a
	break from the disk-drive business.  In 1979, he and {Finis
	Conner} founded a new company that at first was called Shugart
	Technology and later {Seagate Technology}.

	(2000-02-09)

A-language

	<language> An early {ALGOL}-like {surface syntax} for {Lisp}.

	["An Auxiliary Language for More Natural Expression--The
	A-language", W. Henneman in The Programming Language LISP,
	E.C. Berkeley et al eds, MIT Press 1964, pp.239- 248].

	(1994-10-28)

A Language Encouraging Program Hierarchy

	<language> (ALEPH) A language developed in about 1975.

	["On the Design of ALEPH", D. Grune, CWI, Netherlands 1986].

	(1997-02-27)

A Language for Attributed Definitions

	<language> (ALADIN) A language for formal specification of
	{attributed grammars}.  ALADIN is the input language for the
	{GAG} compiler generator.  It is {applicative} and {strongly
	typed}.

	["GAG: A Practical Compiler Generator", Uwe Kastens
	<uwe@uni-paderborn.de> et al, LNCS 141, Springer 1982].

	(1995-04-14)

A Language with an Extensible Compiler

	<language> (ALEC) A language Implemented using {RCC} on an
	{ICL 1906A}.

	["ALEC - A User Extensible Scientific Programming Language",
	R.B.E. Napper et al, Computer J 19(1):25-31].

	(1995-04-19)

Alan Kay

	<person> The leader of the Software Concepts Group at {Xerox}
	{Palo Alto Research Centre} which developed {Smalltalk}, the
	pioneering {object-oriented programming} system, in 1972.

	(1994-11-24)

Alan M. Turing

	{Alan Turing}

Alan Shugart

	{Alan F. Shugart}

Alan Turing

	<person> Alan M. Turing, 1912-06-22/3? - 1954-06-07.  A
	British mathematician, inventor of the {Turing Machine}.
	Turing also proposed the {Turing test}.  Turing's work was
	fundamental in the theoretical foundations of computer
	science.

	Turing was a student and fellow of {King's College Cambridge}
	and was a graduate student at {Princeton University} from 1936
	to 1938.  While at Princeton Turing published "On Computable
	Numbers", a paper in which he conceived an {abstract machine},
	now called a {Turing Machine}.

	Turing returned to England in 1938 and during World War II, he
	worked in the British Foreign Office.  He masterminded
	operations at {Bletchley Park}, UK which were highly
	successful in cracking the Nazis "Enigma" codes during World
	War II.  Some of his early advances in computer design were
	inspired by the need to perform many repetitive symbolic
	manipulations quickly.  Before the building of the {Colossus}
	computer this work was done by a roomful of women.

	In 1945 he joined the {National Physical Laboratory} in London
	and worked on the design and construction of a large computer,
	named {Automatic Computing Engine} (ACE).  In 1949 Turing
	became deputy director of the Computing Laboratory at
	Manchester where the {Manchester Automatic Digital Machine},
	the worlds largest memory computer, was being built.

	He also worked on theories of {artificial intelligence}, and
	on the application of mathematical theory to biological forms.
	In 1952 he published the first part of his theoretical study
	of morphogenesis, the development of pattern and form in
	living organisms.

	Turing was gay, and died rather young under mysterious
	circumstances.  He was arrested for violation of British
	homosexuality statutes in 1952.  He died of potassium cyanide
	poisoning while conducting electrolysis experiments.  An
	inquest concluded that it was self-administered but it is now
	thought by some to have been an accident.

	There is an excellent biography of Turing by Andrew Hodges,
	subtitled "The Enigma of Intelligence" and a play based on it
	called "Breaking the Code".  There was also a popular summary
	of his work in Douglas Hofstadter's book "Gödel, Escher,
	Bach".

	{(http://AlanTuring.net/)}.

	(2001-10-09)

ALARP

	{As Low As Reasonably Practicable}

A-law

	<standard> The {ITU-T} {standard} for {nonuniform quantising
	logarithmic compression}.

	The equation for A-law is

	      |    A
	      | ------- (m/mp)                   |m/mp| =< 1/A
	      | 1+ln A
	  y = |
	      | sgn(m)
	      | ------ (1 + ln A|m/mp|)   1/A =< |m/mp| =< 1
	      | 1+ln A

	Values of u=100 and 255, A=87.6, mp is the Peak message value,
	m is the current quantised message value.  (The formulae get
	simpler if you substitute x for m/mp and sgn(x) for sgn(m);
	then -1 <= x <= 1.)

	Converting from {u-LAW} to A-LAW introduces {quantising
	errors}.  u-law is used in North America and Japan, and A-law
	is used in Europe and the rest of the world and international
	routes.

	[The Audio File Formats FAQ]

	(1995-02-21)

ALC

	1. {Assembly Language Compiler}.

	2. {Airline Line Control}.

Alcool-90

	<language> An {object-oriented} extension of {ML} with
	run-time {overloading} and a type-based notion of {modules},
	{functors} and {inheritance}.  It is built on {CAML Light}.

	{(ftp://ftp.inria.fr/lang/alcool)}.

	E-mail: <Francois.Rouaix@inria.fr>.

	(1995-04-18)

ALCOR

	<language> A subset of {ALGOL}.

	[Sammet 1969, p. 180].

	(1995-04-18)

Aldat

	<language> A {database} language, based on {extended algebra}.

	[Listed by M.P. Atkinson & J.W. Schmidt in a tutorial in
	Zurich, 1989].

	(1995-04-19)

ALDES

	{ALgorithm DEScription}

ALDiSP

	{Applicative Language for Digital Signal Processing}

ALEC

	{A Language with an Extensible Compiler}

ALEF

	<language> A programming language from {Bell Labs}.  ALEF
	boasts few new ideas but is instead a careful synthesis of
	ideas from other languages.  The result is a practical general
	purpose programming language which was once displacing {C} as
	their main implementation language.  Both {shared variables}
	and {message passing} are supported through language
	constructs.

	A {window system}, {user interface}, {operating system}
	network code, {news reader}, {mailer} and variety of other
	tools in {Plan 9} are now implemented using ALEF.

	(1997-02-13)

ALEPH

	1. <language> {A Language Encouraging Program Hierarchy}.

	2. <tool> A system for formal {semantics} written by Peter
	Henderson ca. 1970.

	[CACM 15(11):967-973 (Nov 1972)].

	(1994-12-15)

Aleph

	<text, language> ["Aleph: A language for typesetting", Luigi
	Semenzato <luigi@cs.berkeley.edu> and Edward Wang
	<edward@cs.berkeley.edu> in Proceedings of Electronic
	Publishing, 1992 Ed. Vanoirbeek & Coray Cambridge University
	Press 1992].

	(1994-12-15)

aleph 0

	<mathematics> The {cardinality} of the first {infinite}
	{ordinal}, {omega} (the number of {natural numbers}).

	Aleph 1 is the cardinality of the smallest {ordinal} whose
	cardinality is greater than aleph 0, and so on up to aleph
	omega and beyond.  These are all kinds of {infinity}.

	The {Axiom of Choice} (AC) implies that every set can be
	{well-ordered}, so every {infinite} {cardinality} is an aleph;
	but in the absence of AC there may be sets that can't be
	well-ordered (don't posses a {bijection} with any {ordinal})
	and therefore have cardinality which is not an aleph.

	These sets don't in some way sit between two alephs; they just
	float around in an annoying way, and can't be compared to the
	alephs at all.  No {ordinal} possesses a {surjection} onto
	such a set, but it doesn't surject onto any sufficiently large
	ordinal either.

	(1995-03-29)

alert

	<operating system> /*'l*rt/ An audible and/or visual message
	intended to inform a system's users or administrators about a
	change in the operating conditions of that system or about
	some kind of error condition.  In a {graphical user
	interface}, an alert would typically be displayed as a small
	window containing the message and a button to click to dismiss
	the window.

	(1999-03-29)

Alex

	<language> 1. A {polymorphic} language being developed by
	Stephen Crawley <sxc@itd.dtso.oz.au> of Defence Science & Tech
	Org, Australia.  Alex has {abstract data types}, {type
	inference} and {inheritance}.

	2. <language> An {ISWIM}-like language with {exception
	handling}.

	["An Exception Handling Construct for Functional Languages",
	M. Brez et al, in Proc ESOP88, LNCS 300, Springer 1988].

	3. <tool> A {scanner generator}.  {Alexis} is its input
	language.

	["Alex: A Simple and Efficient Scanner Generator", H.
	Mossenbock, SIGPLAN Notices 21(5), May 1986].

	(1994-12-15)

Alexis

	<language> Alex Input Specification.

	The input language for the {scanner generator} {Alex}.

	(1995-04-23)

ALF

	{Algebraic Logic Functional language}

Alfl

	<language> A lazy function language.  A {weakly typed}, {lazy}
	{functional language} developed by Paul Hudak
	<hudak-paul@cs.yale.edu> of Yale in 1983.  Alfl is implemented
	as a {Scheme} {preprocessor} for the {Orbit} compiler, by
	transforming laziness into {force}-and-{delay}.

	["Alfl Reference Manual and Programmer's Guide", P. Hudak,
	YALEU/DCS/RR322, Yale U, Oct 1984].

	See also {ParAlfl}.

	(1995-04-24)

algebra

	<mathematics, logic> 1. A loose term for an {algebraic
	structure}.

	2. A {vector space} that is also a {ring}, where the vector
	space and the ring share the same addition operation and are
	related in certain other ways.

	An example algebra is the set of 2x2 {matrices} with {real
	numbers} as entries, with the usual operations of addition and
	matrix multiplication, and the usual {scalar} multiplication.
	Another example is the set of all {polynomials} with real
	coefficients, with the usual operations.

	In more detail, we have:

	(1) an underlying {set},

	(2) a {field} of {scalars},

	(3) an operation of scalar multiplication, whose input is a
	scalar and a member of the underlying set and whose output is
	a member of the underlying set, just as in a {vector space},

	(4) an operation of addition of members of the underlying set,
	whose input is an {ordered pair} of such members and whose
	output is one such member, just as in a vector space or a
	ring,

	(5) an operation of multiplication of members of the
	underlying set, whose input is an ordered pair of such members
	and whose output is one such member, just as in a ring.

	This whole thing constitutes an `algebra' iff:

	(1) it is a vector space if you discard item (5) and

	(2) it is a ring if you discard (2) and (3) and

	(3) for any scalar r and any two members A, B of the
	underlying set we have r(AB) = (rA)B = A(rB).  In other words
	it doesn't matter whether you multiply members of the algebra
	first and then multiply by the scalar, or multiply one of them
	by the scalar first and then multiply the two members of the
	algebra.  Note that the A comes before the B because the
	multiplication is in some cases not commutative, e.g. the
	matrix example.

	Another example (an example of a {Banach algebra}) is the set
	of all {bounded} {linear operators} on a {Hilbert space}, with
	the usual {norm}.  The multiplication is the operation of
	{composition} of operators, and the addition and scalar
	multiplication are just what you would expect.

	Two other examples are {tensor algebras} and {Clifford
	algebras}.

	[I. N. Herstein, "Topics in Algebra"].

	(1999-07-14)

ALGEBRAIC

	<language> An early system on {MIT}'s {Whirlwind}.

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

	(1995-01-24)

algebraic

	<theory> In {domain theory}, a {complete partial order} is
	algebraic if every element is the {least upper bound} of some
	{chain} of {compact} elements.  If the set of compact elements
	is {countable} it is called {omega-algebraic}.

	[Significance?]

	(1995-04-25)

Algebraic Compiler and Translator

	<language> (ACT 1) A language and {compiler} for the {Royal
	McBee} {LGP-30}, designed around 1959, apparently by Clay
	S. Boswell, Jr, and programmed by {Mel Kaye}.

	{(http://ed-thelen.org/comp-hist/lgp-30-man.html)}

	(2008-08-04)

algebraic data type

	<programming> (Or "sum of products type") In {functional
	programming}, new types can be defined, each of which has one
	or more {constructors}.  Such a type is known as an algebraic
	data type.  E.g. in {Haskell} we can define a new type,
	"Tree":

		data Tree = Empty | Leaf Int | Node Tree Tree

	with constructors "Empty", "Leaf" and "Node".  The
	constructors can be used much like functions in that they can
	be (partially) applied to arguments of the appropriate type.
	For example, the Leaf constructor has the functional type Int
	-> Tree.

	A constructor application cannot be reduced (evaluated) like a
	function application though since it is already in {normal
	form}.  Functions which operate on algebraic data types can be
	defined using {pattern matching}:

		depth :: Tree -> Int
		depth Empty	 = 0
		depth (Leaf n)	 = 1
		depth (Node l r) = 1 + max (depth l) (depth r)

	The most common algebraic data type is the list which has
	constructors Nil and Cons, written in Haskell using the
	special syntax "[]" for Nil and infix ":" for Cons.

	Special cases of algebraic types are {product types} (only one
	constructor) and {enumeration types} (many constructors with
	no arguments).  Algebraic types are one kind of {constructed
	type} (i.e. a type formed by combining other types).

	An algebraic data type may also be an {abstract data type}
	(ADT) if it is exported from a {module} without its
	constructors.  Objects of such a type can only be manipulated
	using functions defined in the same {module} as the type
	itself.

	In {set theory} the equivalent of an algebraic data type is a
	{discriminated union} - a set whose elements consist of a tag
	(equivalent to a constructor) and an object of a type
	corresponding to the tag (equivalent to the constructor
	arguments).

	(1994-11-23)

Algebraic Interpretive Dialogue

	<language> (AID) A version of {Joss} II for the {PDP-10}.

	["AID (Algebraic Interpretive Dialogue)", DEC manual, 1968].

	(1995-04-12)

Algebraic Logic Functional language

	<language> (ALF) A language by Rudolf Opalla
	<opalla@julien.informatik.uni-dortmund.de> which combines
	{functional programming} and {logic programming} techniques.

	ALF is based on {Horn clause} logic with equality which
	consists of {predicates} and Horn clauses for {logic
	programming}, and functions and equations for {functional
	programming}.  Any functional expression can be used in a
	{goal} literal and arbitrary predicates can occur in
	conditions of equations.  ALF uses {narrowing} and
	{rewriting}.

	ALF includes a compiler to {Warren Abstract Machine} code and
	{run-time support}.

	{(ftp://ftp.germany.eu.net/pub/programming/languages/LogicFunctional)}.

	["The Implementation of the Functional-Logic Language ALF",
	M. Hanus and A. Schwab].

	(1992-10-08)

Algebraic Manipulation Package

	<mathematics, tool> (AMP) A {symbolic mathematics} program
	written in {Modula-2}, seen on {CompuServe}.

	(1994-10-19)

Algebraic Specification Language

	1. <language> (ASL)

	["Structured Algebraic Specifications: A Kernel Language",
	M. Wirsing, Theor Comput Sci 42, pp.123-249, Elsevier 1986].

	2. <language> (ASF) A language for equational specification of
	{abstract data types}.

	["Algebraic Specification", J.A. Bergstra et al, A-W 1989].

	(1995-12-13)

algebraic structure

	<mathematics> Any formal mathematical system consisting of a
	set of objects and operations on those objects.  Examples are
	{Boolean algebra}, numerical algebra, set algebra and matrix
	algebra.

	[Is this the most common name for this concept?]

	(1997-02-25)

Algebra of Communicating Processes

	<theory> (ACP)

	Compare {CCS}.

	["Algebra of Communicating Processes with Abstraction",
	J.A. Bergstra & J.W. Klop, Theor Comp Sci 37(1):77-121 1985].

	[Summary?]

	(1994-11-08)

ALGOL

	{ALGOL 60}

ALGOL 58

	<language> An early version of {ALGOL 60}, originally known as
	"IAL".

	{Michigan Algorithm Decoder} (MAD), developed in 1959, was
	based on IAL.

	["Preliminary report - International Algebraic Language", CACM
	1(12):8, 1958].

	[Details?  Relationship to ALGOL 60?]

	(1999-12-10)

ALGOL 60

	<language> ALGOrithmic Language 1960.

	A portable language for scientific computations.  ALGOL 60 was
	small and elegant.  It was {block-structured}, nested,
	{recursive} and {free form}.  It was also the first language
	to be described in {BNF}.

	There were three {lexical} representations: hardware,
	reference, and publication.  The only structured data types
	were {arrays}, but they were permitted to have lower bounds
	and could be dynamic.  It also had {conditional expressions};
	it introduced :=; if-then-else; very general "for" loops;
	switch declaration (an array of statement {labels}
	generalising {Fortran}'s {computed goto}).  Parameters were
	{call-by-name} and {call-by-value}.  It had {static} local
	"own" variables.  It lacked user-defined types, character
	manipulation and {standard I/O}.

	See also {EULER}, {ALGOL 58}, {ALGOL 68}, {Foogol}.

	["Report on the Algorithmic Language ALGOL 60", Peter Naur
	ed., CACM 3(5):299-314, May 1960].

	(1995-01-25)

ALGOL 60 Modified

	<language>

	["A Supplement to the ALGOL 60 Revised Report", R.M. DeMorgan
	et al, Computer J 19(4):364].

	[SIGPLAN Notices 12(1) 1977].

	An erratum in [Computer J 21(3):282 (Aug 1978)] applies to
	both.

	(1995-01-25)

ALGOL 60 Revised

	<language> (Or "Revised ALGOL 60") A revision of {Algol 60}
	which still lacked {standard I/O}.

	["Revised Report on the Algorithmic Language ALGOL 60", Peter
	Naur ed, CACM 6(1):1-17 (Jan 1963)].

	[Sammet 1969, p.773].

	(1995-01-25)

ALGOL 68

	<language> An extensive revision of {ALGOL 60} by Adriaan van
	Wijngaarden et al.  ALGOL 68 was discussed from 1963 by
	Working Group 2.1 of {IFIP}.  Its definition was accepted in
	December 1968.

	ALGOL 68 was the first, and still one of very few, programming
	languages for which a complete formal specification was
	created before its implementation.  However, this
	specification was hard to understand due to its formality, the
	fact that it used an unfamiliar {metasyntax} notation (not
	{BNF}) and its unconventional terminology.

	One of the singular features of ALGOL 68 was its {orthogonal}
	design, making for freedom from arbitrary rules (such as
	restrictions in other languages that arrays could only be used
	as parameters but not as results).  It also allowed {user
	defined data types}, then an unheard-of feature.

	It featured {structural equivalence}; automatic type
	conversion ("{coercion}") including {dereferencing}; {flexible
	arrays}; generalised loops (for-from-by-to-while-do-od),
	if-then-else-elif-fi, an integer case statement with an 'out'
	clause (case-in-out-esac); {skip} and {goto} statements;
	{blocks}; {procedures}; user-defined {operators}; {procedure
	parameters}; {concurrent} execution (par-begin-end);
	{semaphores}; generators "heap" and "loc" for {dynamic
	allocation}.  It had no {abstract data types} or {separate
	compilation}.

	{(http://www.bookrags.com/research/algol-68-wcs/)}.

	(2007-04-24)

ALGOL 68C

	<language> A variant of {ALGOL 68} developed by S. Bourne and
	Mike Guy of {Cambridge University} in 1975 and used as the
	implementation language for the {CHAOS} OS for the {CAP}
	{capability} computer.  ALGOL 68C was ported to the {IBM 360},
	{VAX}/{VMS} and several other {platforms}.

	(1995-05-02)

ALGOL 68-R

	<language> A restriction of {ALGOL 68} permitting {one-pass
	compilation}, developed at the Royal Signals Radar
	Establishment, Malvern, Worcester, UK in April 1970.

	{Identifiers}, modes and operators must be declared before
	use.  There is no {automatic proceduring} and no
	{concurrency}.  It was implemented in {ALGOL 60} under {GEORGE
	3} on an {ICL 1907F}.

	["ALGOL 68-R, Its Implementation and Use", I.F. Currie et al,
	Proc IFIP Congress 1971, N-H 1971, pp. 360-363].

	(1995-05-03)

ALGOL 68 Revised

	<language> A significant simplification of {ALGOL 68}.

	["Revised Report on the Algorithmic Language ALGOL 68," A. Van
	Wijngaarden et al, Acta Informatica 5:1-236, 1975, also
	Springer 1976, and SIGPLAN Notices 12(5):1-70, May 1977].

	(1995-05-03)

ALGOL 68RS

	<language> An extension of {ALGOL 68} supporting {function
	closures} by the Royal Signals Radar Establishment, Malvern
	UK.  It has been ported to {Multics} and {VAX}/{VMS}.

	(1995-05-04)

ALGOL 68S

	<language> A subset of {ALGOL 68} allowing simpler
	compilation, intended mainly for numerical computation.  It
	was rewritten in {BLISS} for the {PDP-11}, and later in
	{Pascal}.  It is available as {shareware} from Charles Lindsey
	<chl@cs.man.ac.uk>.

	Version 2.3 runs on {Sun-3} under {SunOS} 4.x and {Atari}
	under {GEMDOS} (or potentially other computers supported by
	the {Amsterdam Compiler Kit}).

	["A Sublanguage of ALGOL 68", P.G. Hibbard, SIGPLAN Notices
	12(5), May 1977].

	(1995-05-04)

ALGOL C

	<language> A variant of {ALGOL 60} developed by Clive Feather
	of {Cambridge University} ca. 1981.  ALGOL C added
	{structures} and {exception} handling.  It was designed for
	beginners and students.

	(1994-11-24)

ALGOL D

	<language>

	["A Proposal for Definitions in ALGOL", B.A. Galler et al,
	CACM 10:204-219, 1967].

ALGOL N

	<language> A successor to {ALGOL 60} proposed by Yoneda.

	(1994-11-24)

ALGOL W

	<language> A derivative of {ALGOL 60}.  It introduced {double
	precision}, {complex numbers}, bit strings and dynamic data
	structures.  It is parsed entirely by {operator precedence}
	and used the {call-by-value-result} calling convention.

	["A Contribution to the Development of Algol", N. Wirth, CACM
	9(6):413-431, June 1966].

	["ALGOL W Implementation", H. Bauer et al, TR CS98, Stanford
	U, 1968].

	(1994-11-24)

ALGOL X

	<language> A proposed successor to {ALGOL 60}, a "short-term
	solution to existing difficulties".  Three designs were
	proposed, by {Wirth}, Seegmuller and van Wijngaarden.

	[Sammet 1969, p. 194].

	(1995-05-07)

ALGOL Y

	<language> A proposed successor to {ALGOL 60}, a "radical
	reconstruction".  Originally a language that could manipulate
	its own programs at {run time}, it became a collection of
	features that were not accepted for {ALGOL X}.

	(1995-05-09)

algorithim

	<spelling> It's spelled "{algorithm}".

	(1997-02-25)

algorithm

	<algorithm, programming> A detailed sequence of actions to
	perform to accomplish some task.  Named after the Iranian,
	Islamic mathematician, astronomer, astrologer and geographer,
	{Muhammad ibn Musa al-Khwarizmi}.

	Technically, an algorithm must reach a result after a {finite}
	number of steps, thus ruling out {brute force} search methods
	for certain problems, though some might claim that brute force
	search was also a valid (generic) algorithm.  The term is also
	used loosely for any sequence of actions (which may or may not
	terminate).

	{Paul E. Black's Dictionary of Algorithms, Data Structures,
	and Problems (http://nist.gov/dads/)}.

	(2002-02-05)

ALgorithm DEScription

	<language> (ALDES) ["The Algorithm Description Language
	ALDES", R.G.K. Loos, SIGSAM Bull 14(1):15-39 (Jan 1976)].

	(1995-04-19)

ALgorIthmic ASsembly language

	<language> (ALIAS) A machine oriented variant of {BLISS}.
	ALIAS was implemented in {BCPL} for the {PDP-9}.

	["ALIAS", H.E. Barreveld, Int Rep, Math Dept, Delft U Tech,
	Netherlands, 1973].

	(1997-03-13)

Algorithmic Language

	{Algol 60}

Algorithmic Model

	<programming> A method of estimating software cost using
	mathematical {algorithms} based on the parameters which are
	considered to be the major cost drivers.  These estimate of
	effort or cost are based primarily on the size of the software
	or {Delivered Source Instructions} (DSI)s, and other
	productivity factors known as {Cost Driver Attributes}.

	See also {Parametric Model}.

	(1996-05-28)

Algorithmic Processor Description Language

	<language> (APDL) An {ALGOL 60}-like language for describing
	computer design, for the {CDC G-21}.

	["The Description, Simulation, and Automatic Implementation of
	Digital Computer Processors", J.A. Darringer, Ph.D Thesis EE
	Dept, CMU May 1969].

	(1995-11-26)

Algorithmic Test Case Generation

	<programming> A computational method for identifying test
	cases from data, logical relationships or other software
	{requirements} information.

	(1996-05-10)

ALGY

	<language> An early language for {symbolic mathematics}.

	[Sammet 1969, p. 520].

	(1995-04-12)

ALIAS

	{ALgorIthmic ASsembly language}

alias

	1. <operating system> A name, usually short and easy to
	remember and type, that is translated into another name or
	string, usually long and difficult to remember or type.  Most
	{command interpreters} (e.g. {Unix}'s {csh}) allow the user to
	define aliases for commands, e.g. "alias l ls -al".  These are
	loaded into memory when the interpreter starts and are
	expanded without needing to refer to any file.

	2. <networking> One of several alternative {hostnames} with
	the same {Internet address}.  E.g. in the {Unix} {hosts}
	database (/etc/hosts or {NIS} map) the first field on a line
	is the {Internet address}, the next is the official hostname
	(the "{canonical} name" or "{CNAME}"), and any others are
	aliases.

	Hostname aliases often indicate that the host with that alias
	provides a particular network service such as {archie},
	{finger}, {FTP}, or {World-Wide Web}.  The assignment of
	services to computers can then be changed simply by moving an
	alias (e.g. www.doc.ic.ac.uk) from one {Internet address} to
	another, without the clients needing to be aware of the
	change.

	3. <file system> The name used by {Apple computer, Inc.} for
	{symbolic links} when they added them to the {System 7}
	{operating system} in 1991.

	(1997-10-22)

	4. <programming> Two names ({identifiers}), usually of local
	or global {variables}, that refer to the same resource
	({memory} location) are said to be aliased.  Although names
	introduced in {programming languages} are typically mapped to
	different {memory} locations, aliasing can be introduced by
	the use of {address} arithmetic and {pointers} or
	language-specific features, like {C++} {references}.

	Statically deciding (e.g. via a {program analysis} executed by a
	sophisticated {compiler}) which locations of a {program} will be
	aliased at run time is an {undecidable} problem.

	[G. Ramalingam: "The Undecidability of Aliasing", ACM
	Transactions on Programming Languages and Systems (TOPLAS),
	Volume 16, Issue 5, September 1994, Pages: 1467 - 1471,
	ISSN:0164-0925.]

	(2004-09-12)

aliasing

	1. <jargon> When several different identifiers refer to the
	same object.  The term is very general and is used in many
	contexts.

	See {alias}, {aliasing bug}, {anti-aliasing}.

	2. <hardware> (Or "shadowing") Where a hardware device
	responds at multiple addresses because it only decodes a
	subset of the {address lines}, so different values on the
	other lines are ignored.

	(1998-03-13)

aliasing bug

	{stale pointer bug}

Alice

	<computer, parallel> A parallel {graph rewriting} computer
	developed by {Imperial College}, {University of Edinburgh} and
	{ICL}.

	(1995-01-19)

alife

	{artificial life}

A-Life

	{artificial life}

ALJABR

	<tool> An implementation of {MACSYMA} for the {Macintosh} by
	{Fort Pond Research}.

	(1995-02-21)

al-Khwarizmi

	{Muhammad ibn Musa al-Khwarizmi}

Allegro

	<operating system> The code name for the major {Mac OS}
	release due in mid-1998.

	{(http://devworld.apple.com/mkt/informed/appledirections/mar97/roadmap.html)}.

	(1997-10-15)

all-elbows

	<jargon> Said of a {TSR} (terminate-and-stay-resident)
	{mess-dos} program, such as the N pop-up calendar and
	calculator utilities that circulate on {BBS} systems:
	unsociable.  Used to describe a program that {rude}ly steals
	the resources that it needs without considering that other
	TSRs may also be resident.  One particularly common form of
	rudeness is lock-up due to programs fighting over the keyboard
	interrupt.

	[{Jargon File}]

	(1995-02-21)

ALLIANCE

	<tool> A complete set of {CAD} tools for teaching Digital
	{CMOS} {VLSI} Design in Universities.  It includes a {VHDL}
	compiler and simulator, {logic synthesis} tools, and automatic
	place and route tools.  ALLIANCE is the result of a ten years
	effort at University Pierre et Marie Curie (PARIS VI, France).

	It runs on {Sun-4}, not well supported: {MIPS}/{Ultrix},
	{386}/{SystemV}.

	Latest version: 1.1, as of 1993-02-16.

	(1993-02-16)

allow-none

	<programming> An annotation in {GTk} documentation indicating
	that the annotated entity may be null.

	{(http://live.gnome.org/GObjectIntrospection/Annotations)}.

	(2009-09-29)

ALLOY

	<language> A language by Thanasis Mitsolides
	<mitsolid@cs.nyu.edu> which combines {functional programming},
	{object-oriented programming} and {logic programming} ideas,
	and is suitable for {massively parallel} systems.

	Evaluating modes support serial or parallel execution, {eager
	evaluation} or {lazy evaluation}, {nondeterminism} or multiple
	solutions etc.  ALLOY is simple as it only requires 29
	primitives in all (half of which are for {object oriented
	programming} support).

	It runs on {SPARC}.

	{(ftp://cs.nyu.edu/pub/local/alloy/)}.

	["The Design and Implementation of ALLOY, a Parallel Higher
	Level Programming Language", Thanasis Mitsolides
	<mitsolid@cs2.nyu.edu>, PhD Thesis NYU 1990].

	(1991-06-11)

ALM

	1. <programming> {application lifecycle management}.

	2. <language> {Assembly Language for Multics}.

Aloha

	<networking> (From the Hawaiian greeting) A system of
	{contention resolution} devised at The {University of Hawaii}.
	{Packets} are {broadcast} when ready, the sender listens to
	see if they collide and if so re-transmits after a random
	time.  {Slotted Aloha} constrains packets to start at the
	beginning of a time slot.  Basic Aloha is appropriate to long
	propagation time nets (e.g. satellite).  For shorter
	propagation times, {carrier sense} {protocols} are possible.

	(1995-12-10)

Aloha Net

	<networking> (From the Hawaiian greeting) One of the first
	functioning {networks} in the USA, conceived and implimented
	at the {University of Hawaii} campus at Manoa.  Its purpose
	was to link the University {mainframe} computer to client
	computers located on outer islands at University campuses.
	Put in place in the early 1970s, it was dubed the Aloha Net.
	{Key punch} cards were fed through a reader, and sent over the
	commercial phone lines.

	(1995-12-10)

Alonzo Church

	<person> A twentieth century mathematician and logician, and
	one of the founders of computer science.  Church invented the
	{lambda-calculus} and posited a version of the {Church-Turing
	thesis}.

	(1995-03-25)

ALP

	<language> A {list processing} extension of {Mercury
	Autocode}.

	["ALP, An Autocode List-Processing Language", D.C. Cooper et
	al, Computer J 5:28-31, 1962].

	(1995-01-24)

ALPAK

	<library> A subroutine package used by {ALTRAN}.

	["The ALPAK System for Nonnumerical Algebra on a Digital
	Computer", W.S. Brown, Bell Sys Tech J 42:2081, 1963].

	[Sammet 1969, p. 502].

	(1995-05-10)

ALPHA

	<language> (Or "Input") An extension of {ALGOL 60} for the
	{M-20} computer developed by A.P. Ershov at Novosibirsk in
	1961.  ALPHA includes {matrix} operations, {slices}, and
	complex arithmetic.

	["The Alpha Automatic Programming System", A.P. Ershov ed.,
	A-P 1971].

	(1995-05-10)

Alpha

	1. <tool> A {compiler generator} written by Andreas Koschinsky
	<koschins@cs.tu-berlin.de> and described in his thesis at the
	{Technische Universitaet Berlin}.  Alpha takes an {attribute
	grammar} and uses {Bison} and {Flex} to generate a {parser}, a
	{scanner} and an {ASE evaluator} (Jazayeri and Walter).

	The documentation is in german.

	(1993-02-16)

	2. <processor> {DEC Alpha}.

	(1995-05-10)

Alpha AXP 21164

	<processor> A 1 {GIPS} version of the {DEC Alpha} processor.
	The first commercially available sequential 1 GIPS processor.
	Announced 1994-09-7.

	{(http://digital.com/info/semiconductor/dsc-21164.html)}.

	(1995-05-10)

alpha/beta pruning

	<games, algorithm> An optimisation of the {minimax}
	{algorithm} for choosing the next move in a two-player game.
	The position after each move is assigned a value.  The larger
	this value, the better the position is for me.  Thus, I will
	choose moves with maximum value and you will choose moves with
	minimum value (for me).

	If it is my move and I have already found one move M with
	value alpha then I am only interested in other moves with
	value greater than alpha.  I now consider another of my
	possible moves, M', to which you could reply with a move with
	value beta.  I know that you would only make a different reply
	if it had a value less than beta.  If beta is already less
	than alpha then M' is definitely worth less than M so I can
	reject it without considering any other replies you might
	make.

	The same reasoning applies when considering my replies to your
	reply.  An alpha cutoff is when your reply gives a lower value
	than the current maximum (alpha) and a beta cutoff is when my
	reply to your reply gives a higher value than the current
	minimum value of your reply (beta).

	In short, if you've found one possible move, you need not
	consider another move which your opponent can force to be
	worse than the first one.

	(1997-05-05)

alphabetic language

	<human language> A written human language in which symbols
	reflect the pronunciation of the words.  Examples are English,
	Greek, Russian, Thai, Arabic and Hebrew.  Alphabetic languages
	contrast with {ideographic languages}.

	{I18N Encyclopedia
	(http://i18ngurus.com/encyclopedia/alphabetic_language.html)}.

	(2004-08-29)

alpha conversion

	<theory> In {lambda-calculus} and {reduction}, the renaming of
	a {formal parameter} in a {lambda abstraction}.  This does not
	change the meaning of the abstraction.  For example:

		\ x . x+1  <-->  \ y . y+1

	If the {actual argument} to a lambda abstraction contains
	instances of the abstraction's formal parameter then it is
	necessary to rename the parameter before applying the
	abstraction to avoid {name capture}.

	(1995-05-10)

Alpha EV6

	{EV6}

Alpha Geek

	<job> The head {geek} or geek's geek.  When no one else knows
	the answer, or several techno-types give conflicting advise,
	or the error message says "consult your administrator" and you
	*are* the administrator, you ask the Alpha Geek.

	(1997-06-25)

alphanumeric

	<character> A decimal digit or a letter (upper or lower case).
	Typically, "letters" means only English letters ({ASCII} A-Z
	plus a-z) but it may also include non-English letters in the
	Roman alphabet, e.g., e-{acute}, c-{cedilla}, the {thorn
	letter}, and so on.  Perversely, it may also include the
	{underscore} character in some contexts.

	(1997-09-11)

alpha particle

	{bit rot}

Alphard

	<language> (Named after the brightest star in Hydra) A
	{Pascal}-like language developed by Wulf, Shaw and London of
	{CMU} in 1974.  Alphard supports {data abstraction} using the
	'form', which combines a specification and an implementation.

	["Abstraction and Verification in Alphard: Defining and
	Specifying Iteration and Generators", Mary Shaw, CACM
	20(8):553-563, Aug 1977].

	(1995-05-10)

alpha testing

	<programming> Testing of software at the developer's site by
	the customer.  The stage before {beta testing}.

	(1996-05-10)

ALPS

	<language> 1. An interpreted {algebraic language} for the
	{Bendix G15} developed by Dr. Richard V. Andree (? - 1987),
	Joel C. Ewing and others of the {University of Oklahoma} from
	Spring 1966 (possibly 1965).

	Dale Peters <dpeters@theshop.net> reports that in the summer
	of 1966 he attended the second year of an {NSF}-sponsored
	summer institute in mathematics and computing at the
	University of Oklahoma.  Dr. Andree's computing class mostly
	used the language GO-GO, later renamed ALPS.  The language
	changed frequently during the class, which was occasionally
	disorienting.  Dale believes it was also used in Summer 1965
	and that it was about this time that {John G. Kemeny} (one of
	the designers of {Dartmouth BASIC}, 1963) saw it during a
	visit.

	Dr. Andree's January 1967 class mimeo notes on ALPS begin:
	"ALPS is a new programming language designed and perfected by
	Mr. Harold Bradbury, Mr. Joel Ewing and Mr. Harold Wiebe,
	members of the O.U. Mathematics Computer Consultants Group
	under the direction of Dr. Richard V. Andree.  ALPS is
	designed to be used with a minimum of training to solve
	numerical problems on a computer with typewriter stations and
	using man-computer cooperation by persons who have little
	familiarity with advanced mathematics."

	The initial version of what evolved into ALPS was designed and
	implemented by Joel Ewing (a pre-senior undergrad) in G15
	{machine language} out of frustration with the lack of
	applications to use the G15's dual-case alphanumeric I/O
	capabilities.  Harold Wiebe also worked on the code.  Others,
	including Ralph Howenstine, a member of the O.U. Math Computer
	Consultants Group, contributed to the design of extensions and
	Dr. Andree authored all the instructional materials, made the
	outside world aware of the language and encouraged work on the
	language.

	(2006-10-10)

	2. A parallel {logic language}.

	["Synchronization and Scheduling in ALPS Objects",
	P. Vishnubhotia, Proc 8th Intl Conf Distrib Com Sys, IEEE
	1988, pp. 256-264].

	(1994-11-24)

alt

	<character> /awlt/ 1. The alt {modifier key} on many
	{keyboards}, including the {IBM PC}.  On some keyboards and
	{operating systems}, (but not the IBM PC) the alt key sets bit
	7 of the character generated.

	See {bucky bits}.

	2. The "{clover}" or "Command" key on a {Macintosh}; use of
	this term usually reveals that the speaker hacked PCs before
	coming to the Mac (see also {feature key}).  Some Mac hackers,
	confusingly, reserve "alt" for the Option key (and it is so
	labelled on some Mac II keyboards).

	3. (Obsolete {PDP-10}; often "ALT") An alternate name for the
	{ASCII} ESC character (Escape, ASCII 27), after the keycap
	labelling on some older {terminals}; also "altmode"
	(/awlt'mohd/).  This character was almost never pronounced
	"escape" on an {ITS} system, in {TECO} or under {TOPS-10},
	always alt, as in "Type alt alt to end a TECO command" or
	"alt-U onto the system" (for "log onto the [ITS] system").
	This usage probably arose because alt is easier to say.

	4. <messaging> One of the {Usenet} {newsgroup} {hierarchies}.
	It was founded by {John Gilmore} and {Brian Reid}.  The alt
	hierarchy is special in that anyone can create new groups here
	without going though the normal voting proceduers, hence the
	regular appearence of new groups with names such as
	"alt.swedish.chef.bork.bork.bork".

	[{Jargon File}]

	(1997-04-12)

ALTAC

	<language> An extended {Fortran II} for the {Philco 2000},
	built on {TAC}.

	[Sammet 1969, p.146].

	(1995-03-16)

Altair 8800

	<computer> An {Intel 8080}-based machine made by {MITS}.  The
	Altair was the first popular {microcomputer} kit.

	It appeared on the cover of the January 1975 "Popular
	Electronics" magazine with an article (probably) by Leslie
	Solomon.  Leslie Solomon was an editor at Popular Electronics
	who had a knack for spotting kits that would interest people
	and make them buy the magazine.  The Altair 8800 was one such.
	The MITS guys took the prototype Altair to New York to show
	Solomon, but couldn't get it to work after the flight.
	Nonetheless, he liked it, and it appeared on the cover as "The
	first minicomputer in a kit."

	Solomon's blessing was important enough that some MITS
	competitors named their product the "SOL" to gain his favour.
	Some wags suggested {SOL} was actually an abbreviation for the
	condition in which kit purchasers would find themselves.

	{Bill Gates} and Paul Allen saw the article on the Altair 8800
	in Popular Electronics.  They realised that the Altair, which
	was programmed via its binary front panel needed a {high level
	language}.  Legend has it that they called MITS with the claim
	that they had a {BASIC} {interpreter} for the Altair.  When
	MITS asked them to demo it in Albuquerque, they wrote one on
	the plane.  On arrival, they entered the machine code via the
	front panel and demonstrated and sold their "product."  Thus
	was born "Altair BASIC."

	The original Altair BASIC ran in less than 4K of RAM because a
	"loaded" Altair had 4K memory.  Since there was no {operating
	system} on the Altair, Altair BASIC included what we now think
	of as {BIOS}.  It was distributed on {paper tape} that could
	be read on a {Teletype}.  Later versions supported the 8K
	Altair and the 16K {diskette}-based Altair (demonstrating
	that, even in the 1970s, {Microsoft} was committed to
	{software bloat}).  Altair BASIC was ported to the {Motorola
	6800} for the Altair 680 machine, and to other 8080-based
	microcomputers produced by MITS' competitors.

	{PC-History.org Altair 8800 page
	(http://pc-history.org/altair_8800.htm)}.

	[Forrest M. Mimms, article in "Computers and Electronics",
	(formerly "Popular Electronics"), Jan 1985(?)].

	[Was there ever an "Altair 9000" microcomputer?]

	(2002-06-17)

Alta Vista

	<World-Wide Web> A {World-Wide Web} site provided by {Digital}
	which features a very fast Web and {Usenet} {search engine}.

	As of April 1996 its word index is 33GB in size.  AltaVista is
	currently (June 1996) the largest Web index, with 30 million
	pages from 225,000 servers, and three million articles from
	14,000 {Usenet} news groups.  It is accessed over 12 million
	times per weekday.

	{(http://altavista.digital.com/)}.

	(1996-06-10)

alt bit

	/awlt bit/ alternate bit.  See {meta bit}.

	[{Jargon File}]

ALTER

	<database> An {SQL} {Data Definition Language} command that
	adds or removes {columns} or {indexes} to/from a {table} or
	modifies the table definition in some other way.  This differs
	from the INSERT, UPDATE and DELETE ({Data Modification
	Language}) commands in that those change the data stored in
	the table but not its definition.

	{MySQL ALTER TABLE command
	(http://dev.mysql.com/doc/refman/5.1/en/alter-table.html)}.

	(2009-11-10)

Alternating bit protocol

	<networking> (ABP) A simple {data link layer} {protocol} that
	retransmits lost or corrupted messages.

	Messages are sent from transmitter A to receiver B.  Assume
	that the channel from A to B is initialised and that there are
	no messages in transit.  Each message contains a data part, a
	{checksum}, and a one-bit {sequence number}, i.e. a value that
	is 0 or 1.

	When A sends a message, it sends it continuously, with the
	same sequence number, until it receives an acknowledgment
	({ACK}) from B that contains the same sequence number.  When
	that happens, A complements (flips) the sequence number and
	starts transmitting the next message.

	When B receives a message from A, it checks the checksum.  If
	the message is not corrupted B sends back an ACK with the same
	sequence number.  If it is the first message with that
	sequence number then it is sent for processing.  Subsequent
	messages with the same sequence bit are simply acknowledged.
	If the message is corrupted B sends back an negative/error
	acknowledgment ({NAK}).  This is optional, as A will continue
	transmitting until it receives the correct ACK.

	A treats corrupted ACK messages, and NAK messages in the same
	way.  The simplest behaviour is to ignore them all and
	continue transmitting.

	(2000-10-28)

altmode

	{alt}

ALTRAN

	<language> A {Fortran} extension for {rational algebra}
	developed by W.S. Brown of {Bell Labs} ca. 1968.

	["The ALTRAN System for Rational Function Manipulation - A
	Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971)].

	(1995-06-01)

alt.sources

	<messaging, programming> A {Usenet} {newsgroup} for posting
	program {source code}.

	{Archive (ftp://wuarchive.wustl.edu/usenet/alt.sources/)}.

	(1995-10-18)

ALU

	1. <processor> {Arithmetic and Logic Unit}.

	2. <body> {Association of Lisp Users}.

Aluminum Book

	<publication>

	["Common LISP: The Language, 2nd Edition", {Guy L. Steele
	Jr.}, Digital Press 1990, ISBN 1-55558-041-6].

	Due to a technical screwup some printings of the second
	edition are actually what the author calls "yucky green".

	{On-line version
	(http://cs.cmu.edu/Groups/AI/html/cltl/cltl2.html)}.

	See also {book titles}.

	[{Jargon File}]

	(1997-06-25)

Alvey

	<project, body> A funding programme for collaborative research
	in the UK.

	(1995-06-01)

AM

	1. <communications> {Amplitude Modulation}.

	2. <artificial intelligence> A program by {Doug Lenat} to
	discover concepts in elementary mathematics.  AM was written
	in 1976 in {Interlisp}.  From 100 fundamental concepts and
	about 250 {heuristics} it discovered several important
	mathematical concepts including subsets, disjoint sets, sets
	with the same number of elements, and numbers.  It worked by
	filling slots in {frames} maintaining an agenda of
	resource-limited prioritised tasks.

	AM's successor was {Eurisko}.

	{(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}.

	(1999-04-19)

am

	<networking> The {country code} for Armenia.

	Used for the {vanity domain} "i.am".

	(1999-01-27)

Amanda

	<language> A {functional programming language} derived mostly
	from {Miranda} with some small changes.  Amanda was written by
	Dick Bruin and implemented on {MS-DOS} and {NeXT}.  It is
	available as an {interperator} only.

	(1998-04-27)

A Manufacturing Language

	<language, robotics> (AML) A {high-level language} developed
	by {IBM} in the 1980s for industrial {robots}.

	["AML: A Manufacturing Language", R.H. Taylor et al, Inst J
	Robot Res 1(3):19-43].

	(1995-09-25)

amateur packet radio

	<communications> (PR) The use of {packet radio} by amateurs to
	communicate between computers.  PR is a complete amateur radio
	computer network with "digipeaters" (relays), mailboxes (BBS)
	and other special nodes.

	In Germany, it is on HF, say, 2m (300 and 1200 BPS), 70cm
	(1200 to 9600 BPS), 23cm (normally 9600 BPS and up, currently
	most links between digipeaters) and higher frequencies.  There
	is a KW (short wave) Packet Radio at 300 BPS, too.

	Satellites with OSCAR (Orbiting Sattelite Carring Amateur
	Radio) transponders (mostly attached to commercial satellites
	by the AMateur SATellite (AMSAT) group) carry Packet Radio
	mailboxes or {digipeaters}.

	There are both on-line and off-line services on the packet
	radio network: You can send {electronic mail}, read bulletins,
	chat, transfer files, connect to on-line DX-Clusters (DX=far
	distance) to catch notes typed in by other HAMs about the
	hottest international KW connections currently coming up (so
	you can pile up).

	PR uses {AX.25} (an {X.25} derivative) as its {transport
	layer} and sometimes even {TCP/IP} is transmitted over AX.25.
	AX.25 is like X.25 but the adressing uses HAM "calls" like
	"DG8MGV".

	There are special "wormholes" all over the world which
	"tunnel" amateur radio traffic through the {Internet} to
	forward mail.  Sometimes mails travels over satelites.
	Normally amateur satellites have strange orbits, however the
	mail forwarding or mailbox satellites have very predictable
	orbits.  Some wormholes allow HAMs to bridge from Internet to
	{AMPR-NET}, e.g. db0fho.ampr.org or
	db0fho.et-inf.fho-emden.de, but only if you are registered
	HAM.

	Because amateur radio is not for profit, it must not be
	interconnected to the {Internet} but it may be connected
	through the Internet.  All people on the (completely free)
	amateur radio net must be licensed radio amateurs and must
	have a "call" which is unique all over the world.

	There is a special {domain} AMPR.ORG (44.*.*.*) for amateur
	radio reserved in the IP space.  This domain is split between
	countries, which can further subdivide it.  For example
	44.130.*.* is Germany, 44.130.58.* is Augsburg (in Bavaria),
	and 44.130.58.20 is dg8mgv.ampr.org (you may verify this with
	{nslookup}).

	Mail transport is only one aspect of packet radio.  You can
	talk interactively (as in {chat}), read files, or play silly
	games built in the Packet Radio software.  Usually you can use
	the autorouter to let the digipeater network find a path to
	the station you want.  However there are many (sometimes
	software incompatible) digipeaters out there, which the router
	cannot use.  Paths over 1000 km are unlikely to be useable for
	{real-time} communication and long paths can introduce
	significant delay times (answer latency).

	Other uses of amateur radio for computer communication include
	{RTTY} ({baudot}), {AMTOR}, {PACTOR}, and {CLOVER}.

	{A huge hamradio archive (ftp://ftp.ucsd.edu/hamradio/)}.

	{Usenet} newsgroup: {news:rec.radio.amateur.packet}.

	(2001-05-12)

Amber

	<language> 1. A {functional programming} language which adds
	{CSP}-like {concurrency}, {multiple inheritance} and
	{persistence} to {ML} and generalises its type system.  It is
	similar to {Galileo}.  Programs must be written in two type
	faces, roman and italics!  It has both {static types} and
	{dynamic types}.

	There is an implementation for {Macintosh}.

	["Amber", L. Cardelli, TR Bell Labs, 1984].

	2.  An {object-oriented} distributed language based on a
	subset of {C++}, developed at {Washington University} in the
	late 1980s.

	(1994-12-08)

AMBIT

	<language> Algebraic Manipulation by Identity Translation
	(also claimed: "Acronym May Be Ignored Totally").

	An early {pattern-matching} language, developed by
	C. Christensen of Massachusetts Computer Assocs in 1964, aimed
	at algebraic manipulation.

	[Sammet 1969, pp. 454-457].

	(1994-12-08)

AMBIT/G

	<language> {AMBIT} for graphs.

	["An Example of the Manipulation of Directed Graphs in the
	AMBIT/G Programming Language", C. Christensen, in Interactive
	Systems for Experimental Applied Mathematics, M. Klerer et al,
	eds, Academic Press 1968, pp. 423-435].

	(1994-12-08)

AMBIT/L

	<language> {AMBIT} for lists.

	A variant of AMBIT supporting list handling and {pattern
	matching} rules based on two-dimensional diagrams.

	["An Introduction to AMBIT/L, A Diagrammatic Language for List
	Processing", Carlos Christensen, Proc 2nd ACM Symp Symb and
	Alg Manip (Mar 1971)].

	(1994-12-08)

AMBIT/S

	<language> {AMBIT} for strings.

AMBUSH

	<language> A language for {linear programming} problems in a
	materials processing and transportation network.

	["AMBUSH - An Advanced Model Builder for Linear Programming",
	T.R. White et al, National Petroleum Refiners Assoc Comp Conf
	(Nov 1971)].

	(1995-06-19)

AMD

	1. <company> {Advanced Micro Devices}.

	2. <jargon> According to Don Olivier <don@hsph.harvard.edu>,
	his system manager came in to work one morning to find his IBM
	system down with a message on the console that said "AMD
	failure".  After he and the service rep had puzzled over
	documentation for an hour or so they called headquarters and
	eventually learned that it the failure was in the cooling
	system: an AMD is an "air movement device", IBM for "fan".

	(1995-01-16)

AMD 29000

	<processor> A {RISC} {microprocessor} descended from the
	{Berkley RISC} design.  Like the {SPARC} design that was
	introduced shortly afterward, the 29000 has a large {register
	set} split into local and global sets.  But though it was
	introduced before the SPARC, it has a more elegant method of
	register management.

	The 29000 has 64 global registers, in comparison to the
	SPARC's eight.  In addition, the 29000 allows variable sized
	windows allocated from the 128 register stack {cache}.  The
	current window or stack frame is indicated by a stack pointer,
	a pointer to the caller's frame is stored in the current
	frame, like in an ordinary stack (directly supporting stack
	languages like {C}, a {CISC}-like philosophy).  Spills and
	fills occur only at the ends of the cache, and registers are
	saved/loaded from the memory stack.  This allows variable
	window sizes, from 1 to 128 registers.  This flexibility, plus
	the large set of global registers, makes {register allocation}
	easier than in SPARC.

	There is no special {condition code register} - any general
	register is used instead, allowing several condition codes to
	be retained, though this sometimes makes code more complex.
	An {instruction prefetch} buffer (using {burst mode}) ensures
	a steady instruction stream.  To reduce delays caused by a
	branch to another stream, the first four new instructions are
	cached and next time a cached branch (up to sixteen) is taken,
	the cache supplies instructions during the initial memory
	access delay.

	Registers aren't saved during interrupts, allowing the
	interrupt routine to determine whether the overhead is
	worthwhile.  In addition, a form of register access control is
	provided.  All registers can be protected, in blocks of 4,
	from access.  These features make the 29000 useful for
	embedded applications, which is where most of these processors
	are used, allowing it the claim to be "the most popular RISC
	processor".  The 29000 also includes an {MMU} and support for
	the {AMD 29027} {FPU}.

	(1995-06-19)

AMD 29027

	<processor> The {FPU} for the {AMD 29000}.

	(1995-01-16)

Amdahl

	1. <company> {Amdahl Corporation}.

	2. <person> {Gene Amdahl}.

Amdahl Corporation

	<company> A US computer manufacturer.  Amdahl is a major
	supplier of large {mainframes}, {UNIX} and {Open Systems}
	software and servers, data storage subsystems, data
	communications products, applications development software,
	and a variety of educational and consulting services.

	Amdahl products are sold in more than 30 countries for use in
	both open systems and {IBM} plug-compatible mainframe
	computing environments.

	Quarterly sales $397M, profits $13M (Aug 1994).

	In 1997 Amdahl became a division of {Fujitsu}.

	{(http://amdahl.com/)}.

	(1995-05-23)

Amdahl's Law

	<parallel> (Named after {Gene Amdahl}) If F is the fraction of
	a calculation that is sequential, and (1-F) is the fraction
	that can be parallelised, then the maximum {speedup} that can
	be achieved by using P processors is 1/(F+(1-F)/P).

	[Gene Amdahl, "Validity of the Single Processor Approach to
	Achieving Large-Scale Computing Capabilities", AFIPS
	Conference Proceedings, (30), pp. 483-485, 1967].

	(2002-10-16)

AMD Am2901

	<processor> A 4-bit {bit-slice} processor from {Advanced Micro
	Devices}.  It featured sixteen 4-bit {registers} and a 4-bit
	{ALU} and operation signals to allow carry/borrow or shift
	operations and such to operate across any number of other
	2901s.  An {address sequencer} (such as the {2910}) could
	provide control signals with the use of custom {microcode} in
	{ROM}.

	(1994-11-16)

AMD Am2903

	<processor> A {bit-slice} prcessor from {Advanced Micro
	Devices} which featured hardware multiply.

	(1994-11-16)

AMD Am2910

	<processor> An {address sequencer} from {Advanced Micro
	Devices}.

	(1994-11-16)

AMD K7

	{Athlon}

American National Standard

	<standard> (ANS) A common prefix for {ANSI} documents or
	standards, e.g.: "ANS {Forth}", or "American National Standard
	X3.215-1994".

	(1998-07-01)

American National Standards Institute

	<body, standard> (ANSI) The private, non-profit organisation
	(501(c)3) responsible for approving US {standards} in many
	areas, including computers and communications.  ANSI is a
	member of {ISO}.  ANSI sells ANSI and ISO (international)
	standards.

	{ANSI Home (http://ansi.org/)}.

	Address: New York, NY 10036, USA.  Sales: 1430 Broadway, NY NY
	10018.  Telephone: +1 (212) 642 4900.

	(2004-01-14)

American Society of Mechanical Engineers

	<body> (ASME) A group involved in {CAD} standardisation.

	(1995-04-21)

American Standard Code for Information Interchange

	The basis of character sets used in almost all present-day
	computers.  {US-ASCII} uses only the lower seven {bits}
	({character points} 0 to 127) to convey some {control codes},
	space, numbers, most basic punctuation, and unaccented letters
	a-z and A-Z.  More modern coded character sets (e.g.,
	{Latin-1}, {Unicode}) define extensions to ASCII for values
	above 127 for conveying special Latin characters (like
	accented characters, or German ess-tsett), characters from
	non-Latin writing systems (e.g., Cyrillic, or {Han
	characters}), and such desirable {glyphs} as distinct open-
	and close-quotation marks.  ASCII replaced earlier systems
	such as {EBCDIC} and {Baudot}, which used fewer bytes, but
	were each {broken} in their own way.

	Computers are much pickier about spelling than humans; thus,
	hackers need to be very precise when talking about characters,
	and have developed a considerable amount of verbal shorthand
	for them.  Every character has one or more names - some
	formal, some concise, some silly.

	Individual characters are listed in this dictionary with
	alternative names from revision 2.3 of the {Usenet} ASCII
	pronunciation guide in rough order of popularity, including
	their official {ITU-T} names and the particularly silly names
	introduced by {INTERCAL}.

	See {V} {ampersand}, {asterisk}, {back quote}, {backslash},
	{caret}, {colon}, {comma}, {commercial at}, {control-C},
	{dollar}, {dot}, {double quote}, {equals}, {exclamation mark},
	{greater than}, {hash}, {left bracket}, {left parenthesis},
	{less than}, {minus}, {parentheses}, {oblique stroke},
	{percent}, {plus}, {question mark}, {right brace}, {right
	brace}, {right bracket}, {right parenthesis}, {semicolon},
	{single quote}, {space}, {tilde}, {underscore}, {vertical
	bar}, {zero}.

	Some other common usages cause odd overlaps.  The "#", "$",
	">", and "&" characters, for example, are all pronounced "hex"
	in different communities because various assemblers use them
	as a prefix tag for {hexadecimal} constants (in particular,
	"#" in many assembler-programming cultures, "$" in the {6502}
	world, ">" at {Texas Instruments}, and "&" on the {BBC Micro},
	{Acorn Archimedes}, {Sinclair}, and some {Zilog Z80}
	machines).  See also {splat}.

	The inability of {US-ASCII} to correctly represent nearly any
	language other than English became an obvious and intolerable
	{misfeature} as computer use outside the US and UK became the
	rule rather than the exception (see {software rot}).  And so
	national extensions to US-ASCII were developed, such as
	Latin-1.

	Hardware and software from the US still tends to embody the
	assumption that US-ASCII is the universal character set and
	that words of text consist entirely of byte values 65-90 and
	97-122 (A-Z and a-z); this is a major irritant to people who
	want to use a character set suited to their own languages.
	Perversely, though, efforts to solve this problem by
	proliferating sets of national characters produced an
	evolutionary pressure (especially in protocol design, e.g.,
	the {URL} standard) to stick to {US-ASCII} as a subset common
	to all those in use, and therefore to stick to English as the
	language encodable with the common subset of all the ASCII
	dialects.  This basic problem with having a multiplicity of
	national character sets ended up being a prime justification
	for {Unicode}, which was designed, ostensibly, to be the *one*
	ASCII extension anyone will need.

	A system is described as "{eight-bit clean}" if it doesn't
	mangle text with byte values above 127, as some older systems
	did.

	See also {ASCII character table}, {Yu-Shiang Whole Fish}.

	(1995-03-06)

American Telephone and Telegraph, Inc.

	<company, telecommunications, Unix> (AT&T) One of the largest US
	telecommunications providers, also noted for being the birthplace
	of the {Unix} {operating system} and the {C} and {C++} programming
	languages.

	AT&T was incorporated in 1885, but traces its lineage to
	Alexander Graham Bell and his invention of the telephone in
	1876.  As parent company of the former {Bell System}, AT&T's
	primary mission was to provide telephone service to virtually
	everyone in the United States.  In its first 50 years, AT&T
	established subsidiaries and allied companies in more than a
	dozen other countries.  It sold these interests in 1925 and
	focused on achieving its mission in the United States.  It
	did, however, continue to provide international long distance
	service.

	The Bell System was dissolved at the end of 1983 with AT&T's
	divestiture of the Bell telephone companies.

	AT&T split into three parts in 1996, one of which is {Lucent
	Tecnologies}, the former systems and equipment portion of AT&T
	(including Bell Laboratories).

	See also {3DO}, {Advanced RISC Machine}, {Berkeley Software
	Distribution}, {Bell Laboratories}, {Concurrent C}, {Death
	Star}, {dinosaurs mating}, {InterNIC}, {System V}, {Nawk},
	{Open Look}, {rc}, {S}, {Standard ML of New Jersey}, {Unix
	International}, {Unix conspiracy}, {USG Unix}, {Unix System
	Laboratories}.

	{AT&T Home (http://att.com/)}.

	(2002-06-21)

American Wire Gauge

	<hardware, standard> (AWG, sometimes "Brown and Sharpe Wire
	Gauge") A U.S. {standard} set of non-ferrous wire conductor
	sizes.  Typical household wiring is AWG number 12 or 14.
	Telephone wire is usually 22, 24, or 26.  The higher the gauge
	number, the smaller the diameter and the thinner the wire.
	Thicker wire is better for long distances due to its lower
	resistance per unit length.

	(2001-03-26)

America On-Line, Inc.

	<company, communications> (AOL) A US on-line service provider
	based in Vienna, Virginia, USA.  AOL claims to be the largest
	and fastest growing provider of on-line services in the world,
	with the most active subscriber base.  AOL offers its three
	million subscribers {electronic mail}, interactive newspapers
	and magazines, conferencing, software libraries, computing
	support, and on-line classes.

	In October 1994 AOL made {Internet} {FTP} available to its
	members and in May 1995, full Internet access including
	{World-Wide Web}.

	AOL's main competitors are {Prodigy} and {Compuserve}.

	{(http://aol.com/)}.

	(1997-08-26)

America's Multimedia Online

	<company, World-Wide Web> (AMO) An {Internet} technologies
	company which invented {Never Offline} in 1995 and was
	officially started in 1996.

	{(http://amo.net/)}.

	E-mail: AMO <amo@amo.net>.

	Address: Albuquerque, NM, USA.

	(1999-11-03)

AMI

	{Alternate Mark Inversion}

Amiga

	<computer> A range of home computers first released by
	{Commodore Business Machines} in early 1985 (though they did
	not design the original - see below).  Amigas were popular for
	{games}, {video processing}, and {multimedia}.  One notable
	feature is a hardware {blitter} for speeding up graphics
	operations on whole areas of the screen.

	The Amiga was originally called the Lorraine, and was
	developed by a company named "Amiga" or "Amiga, Inc.", funded
	by some doctors to produce a killer game machine.  After the
	US game machine market collapsed, the Amiga company sold some
	{joysticks} but no Lorraines or any other computer.  They
	eventually floundered and looked for a buyer.

	Commodore at that time bought the (mostly complete) Amiga
	machine, infused some money, and pushed it through the final
	stages of development in a hurry.  Commodore released it
	sometime[?] in 1985.

	Most components within the machine were known by nicknames.
	The {coprocessor} commonly called the "Copper" is in fact the
	"{Video} Timing Coprocessor" and is split between two chips:
	the instruction fetch and execute units are in the "Agnus"
	chip, and the {pixel} timing circuits are in the "Denise" chip
	(A for address, D for data).

	"Agnus" and "Denise" were responsible for effects timed to the
	{real-time} position of the video scan, such as midscreen
	{palette} changes, {sprite multiplying}, and {resolution}
	changes.  Different versions (in order) were: "Agnus" (could
	only address 512K of {video RAM}), "Fat Agnus" (in a {PLCC}
	package, could access 1MB of video RAM), "Super Agnus"
	(slightly upgraded "Fat Agnus").  "Agnus" and "Fat Agnus" came
	in {PAL} and {NTSC} versions, "Super Agnus" came in one
	version, jumper selectable for PAL or NTSC.  "Agnus" was
	replaced by "Alice" in the A4000 and A1200, which allowed for
	more {DMA} channels and higher bus {bandwidth}.

	"Denise" outputs binary video data (3*4 bits) to the "Vidiot".
	The "Vidiot" is a hybrid that combines and amplifies the
	12-bit video data from "Denise" into {RGB} to the {monitor}.

	Other chips were "Amber" (a "flicker fixer", used in the A3000
	and Commodore display enhancer for the A2000), "Gary" ({I/O},
	addressing, G for {glue logic}), "Buster" (the {bus
	controller}, which replaced "Gary" in the A2000), "Buster II"
	(for handling the Zorro II/III cards in the A3000, which meant
	that "Gary" was back again), "Ramsey" (The {RAM} controller),
	"DMAC" (The DMA controller chip for the WD33C93 {SCSI adaptor}
	used in the A3000 and on the A2091/A2092 SCSI adaptor card for
	the A2000; and to control the {CD-ROM} in the {CDTV}), and
	"Paula" ({Peripheral}, Audio, {UART}, {interrupt} Lines, and
	{bus Arbiter}).

	There were several Amiga chipsets: the "Old Chipset" (OCS),
	the "Enhanced Chipset" (ECS), and {AGA}.  OCS included
	"Paula", "Gary", "Denise", and "Agnus".

	ECS had the same "Paula", "Gary", "Agnus" (could address 2MB
	of Chip RAM), "Super Denise" (upgraded to support "Agnus" so
	that a few new {screen modes} were available).  With the
	introduction of the {Amiga A600} "Gary" was replaced with
	"Gayle" (though the chipset was still called ECS).  "Gayle"
	provided a number of improvments but the main one was support
	for the A600's {PCMCIA} port.

	The AGA chipset had "Agnus" with twice the speed and a 24-bit
	palette, maximum displayable: 8 bits (256 colours), although
	the famous "{HAM}" (Hold And Modify) trick allows pictures of
	256,000 colours to be displayed.  AGA's "Paula" and "Gayle"
	were unchanged but AGA "Denise" supported AGA "Agnus"'s new
	screen modes.  Unfortunately, even AGA "Paula" did not support
	High Density {floppy disk drives}.  (The Amiga 4000, though,
	did support high density drives.)  In order to use a high
	density disk drive Amiga HD floppy drives spin at half the
	rotational speed thus halving the data rate to "Paula".

	Commodore Business Machines went bankrupt on 1994-04-29,
	the German company {Escom AG} bought the rights to the Amiga
	on 1995-04-21 and the Commodore Amiga became the Escom
	Amiga.  In April 1996 Escom were reported to be making the
	{Amiga} range again but they too fell on hard times and
	{Gateway 2000} (now called Gateway) bought the Amiga brand
	on 1997-05-15.

	Gateway licensed the Amiga operating system to a German
	hardware company called {Phase 5} on 1998-03-09.  The
	following day, Phase 5 announced the introduction of a
	four-processor {PowerPC} based Amiga {clone} called the
	"{pre\box}".  Since then, it has been announced that the
	new operating system will be a version of {QNX}.

	On 1998-06-25, a company called {Access Innovations Ltd}
	announced {plans (http://micktinker.co.uk/aaplus.html)} to
	build a new Amiga chip set, the {AA+}, based partly on the AGA
	chips but with new fully 32-bit functional core and 16-bit AGA
	{hardware register emulation} for {backward compatibility}.
	The new core promised improved memory access and video display
	DMA.

	By the end of 2000, Amiga development was under the control of
	a [new?] company called {Amiga, Inc.}.  As well as continuing
	development of AmigaOS (version 3.9 released in December
	2000), their "Digital Environment" is a {virtual machine} for
	multiple {platforms} conforming to the {ZICO} specification.
	As of 2000, it ran on {MIPS}, {ARM}, {PPC}, and {x86}
	processors.

	{(http://amiga.com/)}.

	{Amiga Web Directory (http://cucug.org/amiga.html)}.

	{amiCrawler (http://amicrawler.com/)}.

	Newsgroups: {news:comp.binaries.amiga},
	{news:comp.sources.amiga}, {news:comp.sys.amiga},
	{news:comp.sys.amiga.advocacy},
	{news:comp.sys.amiga.announce},
	{news:comp.sys.amiga.applications},
	{news:comp.sys.amiga.audio}, {news:comp.sys.amiga.datacomm},
	{news:comp.sys.amiga.emulations}, {news:comp.sys.amiga.games},
	{news:comp.sys.amiga.graphics},
	{news:comp.sys.amiga.hardware},
	{news:comp.sys.amiga.introduction},
	{news:comp.sys.amiga.marketplace}, {news:comp.sys.amiga.misc},
	{news:comp.sys.amiga.multimedia},
	{news:comp.sys.amiga.programmer},
	{news:comp.sys.amiga.reviews}, {news:comp.sys.amiga.tech},
	{news:comp.sys.amiga.telecomm}, {news:comp.Unix.amiga}.

	See {aminet}, {Amoeba}, {bomb}, {exec}, {gronk}, {guru
	meditation}, {Intuition}, {sidecar}, {slap on the side},
	{Vulcan nerve pinch}.

	(2003-07-05)

Amiga E

	<tool> An {Amiga} {E} {compiler} by Wouter van Oortmerssen.

	Amiga E compiles 20000 lines/minute on a 7 Mhz Amiga.  It
	allows {in-line} {assembly code} and has an integrated
	{linker}.  It has a large set of integrated functions and
	{modules}.  V2.04 includes as modules a flexible {type}
	system, quoted expressions, {immediate} and typed lists, low
	level {polymorphism} and {exception} handling.  It is written
	in {assembly language} and E.

	Version 2.1b

	{(ftp://ftp.wustl.edu/pub/aminet/dev/e/AmigaE21b.lha)}.
	{(ftp://amiga.physik.unizh.ch/amiga/dev/lang/AmigaE21b.lha)}.

	{Usenet} newsgroup: {news:comp.sys.amiga.programmer}.

	(1997-08-26)

Aminet

	<networking> (Amiga network) A collection of {FTP} {mirrors}
	that contain several {gigabytes} of {freely distributable
	software} for the {Amiga} range of computers.

	{Home, ftp.wustl.edu (ftp://ftp.wustl.edu)}.

	(1997-08-31)

AML

	{A Manufacturing Language}

AML/E

	<language, robotics> (AML Entry) A simple version of {AML},
	implemented on the {IBM PC}, with a graphic display of the
	robot position.

	(1995-10-03)

AMO

	{America's Multimedia Online}

Amoeba

	1. <operating system> A distributed {operating system}
	developed by {Andrew S. Tanenbaum} and others of {Vrije
	Universiteit, Amsterdam}.  Amoeba is only available under
	licence from the VUA, but is free of charge and includes all
	{source}, {binaries} and documentation.

	{(http://am.cs.vu.nl/)}.

	[Features?]

	2. <computer, abuse> A derogatory term for {Commodore}'s
	{Amiga} {personal computer}.

	[{Jargon File}]

	(1997-05-07)

AMP

	1. <mathematics, tool> {Algebraic Manipulation Package}.

	2. <networking, tool> {Active Measurement Project}.

amper

	{ampersand}

Ampere

	<unit, electronics> (Amp, A) The unit of electrical current
	flow.  One Amp is the current that will flow through a
	one-{ohm} resistance when one {Volt} {DC} is applied across
	it.

	(2004-01-18)

ampersand

	<character> "&" {ASCII} character 38.

	Common names: {ITU-T}, {INTERCAL}: ampersand; amper; and.
	Rare: address (from {C}); reference (from C++); bitand;
	background (from {sh}); pretzel; amp.

	A common symbol for "and", used as the "address of" operator
	in {C}, the "reference" operator in {C++} and a {bitwise and}
	or {logical and} operator in several programming languages.
	{Visual BASIC} uses it as the {string concatenation}
	{operator} and to prefix {octal} and {hexadecimal} numbers.

	{UNIX} {shells} use the character to indicate that a task
	should be run in the {background} (single "&" suffix) or
	(following C's {lazy and}), in a {compound command} of the
	form "a && b" to indicate that the command b should only be
	run if command a terminates successfully.

	The ampersand is a ligature (combination) of the cursive
	letters "e" and "t", invented in 63 BC by Marcus Tirus [Tiro?]
	as shorthand for the Latin word for "and", "et".

	The word ampersand is a conflation (combination) of "and, per
	se and".  Per se means "by itself", and so the phrase
	translates to "&, standing by itself, means 'and'".  This was
	at the end of the alphabet as it was recited by children in
	old English schools.  The words ran together and were
	associated with "&".  The "ampersand" spelling dates from
	1837.

	{Take our word for it
	(http://takeourword.com/Issue010.html)}.

	(2012-07-18)

AMPL

	<language> Along with {mpl}, the intrinsic parallel languages
	for {MasPar}'s computers.  AMPL and mpl are parallel variants
	of {C}.  Ampl is actually now a {gcc} port.

	["AMPL: Design, Implementation and Evaluation of a
	Multiprocessing Language", R. Dannenberg, CMU 1981].

	["Loglan Implementation of the AMPL Message Passing System",
	J. Milewski SIGPLAN Notices 19(9):21-29 (Sept 1984)].

	[Are these the same language?]

	(1995-11-01)

AMPLE

	<language, music> A {FORTH}-like language for programming the
	500/5000 series of add-on music synthesisers for the {BBC
	Microcomputer}.  AMPLE was produced by Hybrid Technologies,
	Cambridge, England in the mid 1980s.  Many AMPLE programs were
	published in Acorn User magazine.

	(1995-11-01)

Amplitude Modulation

	<communications> (AM) A method of encoding {data} by varying
	the {amplitude} of a constant {frequency} {carrier}.

	Contrast {Frequency Modulation}.

	(2001-04-30)

amp off

	<jargon> (Purdue) To run in {background}.  From the {Unix}
	{shell} "&" (ampersand) operator.

	[{Jargon File}]

	(1995-11-14)

AMPPL-II

	{Associative Memory Parallel Processing Language}

AMPS

	{Advanced Mobile Phone Service}

AMS

	{Andrew Message System}

AMTRAN

	{Automatic Mathematical TRANslation}

Amulet

	<processor> An implementation or the {Advanced RISC Machine}
	{microprocessor} architecture using the {micropipeline} design
	style.  In April 1994 the Amulet group in the Computer Science
	department of {Manchester University} took delivery of the
	AMULET1 {microprocessor}.  This was their first large scale
	asynchronous circuit and the world's first implementation of a
	commercial microprocessor architecture (ARM) in {asynchronous
	logic}.

	Work was begun at the end of 1990 and the design despatched
	for fabrication in February 1993.  The primary intent was to
	demonstrate that an asynchronous microprocessor can consume
	less power than a synchronous design.

	The design incorporates a number of concurrent units which
	cooperate to give instruction level compatibility with the
	existing synchronous part.  These include an Address unit,
	which autonomously generates instruction fetch requests and
	interleaves ({nondeterministic}ally) data requests from the
	Execution unit; a {Register} file which supplies operands,
	queues write destinations and handles data dependencies; an
	Execution unit which includes a multiplier, a shifter and an
	{ALU} with data-dependent delay; a Data interface which
	performs byte extraction and alignment and includes an
	{instruction prefetch} buffer, and a control path which
	performs {instruction decode}.  These units only synchronise
	to exchange data.

	The design demonstrates that all the usual problems of
	processor design can be solved in this asynchronous framework:
	backward {instruction set} compatibility, {interrupts} and
	exact {exceptions} for {memory faults} are all covered.  It
	also demonstrates some unusual behaviour, for instance
	{nondeterministic} prefetch depth beyond a branch instruction
	(though the instructions which actually get executed are, of
	course, deterministic).  There are some unusual problems for
	{compiler} {optimisation}, as the metric which must be used to
	compare alternative code sequences is continuous rather than
	discrete, and the {nondeterminism} in external behaviour must
	also be taken into account.

	The chip was designed using a mixture of custom {datapath} and
	compiled control logic elements, as was the synchronous ARM.
	The fabrication technology is the same as that used for one
	version of the synchronous part, reducing the number of
	variables when comparing the two parts.

	Two silicon implementations have been received and preliminary
	measurements have been taken from these.  The first is a 0.7um
	process and has achieved about 28 kDhrystones running the
	standard {benchmark} program.  The other is a 1 um
	implementation and achieves about 20 kDhrystones.  For the
	faster of the parts this is equivalent to a synchronous {ARM6}
	clocked at around 20MHz; in the case of AMULET1 it is likely
	that this speed is limited by the memory system cycle time
	(just over 50ns) rather than the processor chip itself.

	A fair comparison of devices at the same geometries gives the
	AMULET1 performance as about 70% of that of an {ARM6} running
	at 20MHz.  Its power consumption is very similar to that of
	the ARM6; the AMULET1 therefore delivers about 80 MIPS/W
	(compared with around 120 from a 20MHz ARM6).  Multiplication
	is several times faster on the AMULET1 owing to the inclusion
	of a specialised asynchronous multiplier.  This performance is
	reasonable considering that the AMULET1 is a first generation
	part, whereas the synchronous ARM has undergone several design
	iterations.  AMULET2 (currently under development) is expected
	to be three times faster than AMULET1 - 120 k{dhrystones} -
	and use less power.

	The {macrocell} size (without {pad ring}) is 5.5 mm by 4.5 mm
	on a 1 micron {CMOS} process, which is about twice the area of
	the synchronous part.  Some of the increase can be attributed
	to the more sophisticated organisation of the new part: it has
	a deeper {pipeline} than the clocked version and it supports
	multiple outstanding memory requests; there is also
	specialised circuitry to increase the multiplication speed.
	Although there is undoubtedly some overhead attributable to
	the asynchronous control logic, this is estimated to be closer
	to 20% than to the 100% suggested by the direct comparison.

	AMULET1 is code compatible with {ARM6} and is so is capable of
	running existing {binaries} without modification.  The
	implementation also includes features such as interrupts and
	memory aborts.

	The work was part of a broad {ESPRIT} funded investigation
	into low-power technologies within the European {Open
	Microprocessor systems Initiative} (OMI) programme, where
	there is interest in low-power techniques both for portable
	equipment and (in the longer term) to alleviate the problems
	of the increasingly high dissipation of high-performance
	chips.  This initial investigation into the role {asynchronous
	logic} might play has now demonstrated that asynchronous
	techniques can be applied to problems of the scale of a
	complete {microprocessor}.

	{(http://cs.man.ac.uk/amulet)}.

	(1994-12-08)

an

	<networking> The {country code} for the Netherlands Antilles
	(Dutch Antilles).

	(1999-01-27)

analog

	<spelling> American spelling of {analogue}.

	(1995-11-14)

analog computer

	{analogue computer}

Analog Hardware Design Language

	<language> (AHDL) A language under development by the US Air
	Force.

	(1995-04-09)

analogue

	<electronics> (US: "analog") A description of a continuously
	variable signal or a circuit or device designed to handle such
	signals.  The opposite is "discrete" or "{digital}".

	Analogue circuits are much harder to design and analyse than
	digital ones because the designer must take into account
	effects such as the gain, linearity and power handling of
	components, the resistance, capacitance and inductance of PCB
	tracks, wires and connectors, interference between signals,
	power supply stability and more.  A digital circuit design,
	especially for high switching speeds, must also take these
	factors into account if it is to work reliably, but they are
	usually less critical because most digital components will
	function correctly within a range of parameters whereas such
	variations will corrupt the outputs of an analogue circuit.

	See also {analogue computer}.

	(1995-11-14)

analogue computer

	<computer, hardware> A machine or electronic circuit designed
	to work on numerical data represented by some physical
	quantity (e.g. rotation or displacement) or electrical
	quantity (e.g. voltage or charge) which varies continuously,
	in contrast to {digital} signals which are either 0 or 1.

	For example, the turning of a wheel or changes in voltage can
	be used as input.  Analogue computers are said to operate in
	{real time} and are used for research in design where many
	different shapes and speeds can be tried out quickly.  A
	computer model of a car suspension allows the designer to see
	the effects of changing size, stiffness and damping.

	(1995-05-01)

Analogy Model

	<programming> A method of estimating the cost of a proposed
	software project by extrapolating from the costs and schedules
	of similar completed projects.

	(1996-05-28)

analytical CRM

	<business> Software which helps a business build customer
	relationships and analyse ways to improve them.

	[Typical functions?  Example?]

	(2007-06-11)

Analytical Engine

	<history> A design for a general-purpose digital computer
	proposed by {Charles Babbage} in 1837 as a successor to his
	earlier special-purpose {Difference Engine}.

	The Analytical Engine was to be built from brass gears powered
	by steam with input given on {punched cards}.  Babbage could
	never secure enough funding to build it, and so it was, and
	never has been, constructed.

	{(http://fourmilab.ch/babbage/)}.

	(1998-10-19)

Analytical Machine

	{Analytical Engine}

Analytical Solutions Forum

	<body, standard> (ASF) The {business intelligence} trade body
	that, in October 1999, replaced the ineffective {OLAP Council}
	intending to produce standards for {OLAP}.  The ASF managed
	the remarkably achievement of being even less effective and
	eventually disappeared, its only achievement having been the
	issuing of a press release announcing its formation.

	(2005-05-28)

anchor

	{hypertext link}

ANCP

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

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

	(1995-11-15)

AND

	<logic> (Or "conjunction") The {Boolean} function which is
	true only if all its arguments are true.  The {truth table}
	for the two argument AND function is:

	 A | B | A AND B
	 --+---+---------
	 F | F |    F
	 F | T |    F
	 T | F |    F
	 T | T |    T

	AND is often written as an inverted "V" in texts on logic.  In
	the {C} programming language it is represented by the &&
	(logical and) {operator}.

	(1997-11-15)

ANDF

	{Architecture Neutral Distribution Format}

Andorra-I

	<language> A {parallel} {logic programming} language with the
	{OR-parallelism} of {Aurora} and the {AND-parallelism} of
	{Parlog}.

	["Andorra-I: A Parallel Prolog System that Transparently
	Exploits both And- and Or-Parallelism", V.S Costa et al,
	SIGPLAN Notices 26(7):83-93 (July 1991)].

	[Imperial College?  Who?]

	(1995-11-24)

Andorra Kernel Language

	<language> (AKL) The successor to {KAP} by S. Janson
	<sverker@sics.se>.

	A prototype implementation is available from the author.

	["Programming Paradigms of the Andorra Kernel Language",
	S. Janson et al in Logic Programming: Proc 1991 Intl Symp, MIT
	Press 1991].

	(1994-11-24)

Andorra-Prolog

	<language>

	["Andorra-Prolog: An Integration of Prolog and Committed
	Choice Languages", S. Haridi et al, Intl Conf Fifth Gen Comp
	Sys 1988, ICOT 1988].

	(1995-11-24)

Andrei Markov

	<person> 1856-1922.  The Russian mathematician, after who
	{Markov chains} were named.

	{Biography
	(http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Markov.html)}.

	[Other contributions?]

	(1995-10-06)

Andrew File System

	<operating system, storage> (AFS) The distributed {file
	system} of the {Andrew Project}, adopted by the {OSF} as part
	of their {Distributed Computing Environment}.

	{Frequently Asked Questions
	(http://transarc.com/Product/AFS/FAQ/faq.html)}.

	(1994-11-24)

Andrew Fluegelman

	<person> A successful attorney, editor of {PC World Magazine},
	and author of the {MS-DOS} communications program {PC-TALK
	III}, written in 1982.  He once owned the trademark
	"{freeware}" but it wasn't enforced after his disappearance.

	In 1985, Fluegelman was diagnosed with cancer.  He was last
	seen a week later, on 1985-07-06, when he left his Marin
	County home to go to his office in Tiburon.  He called his
	wife later that day and has not been heard from since.  His
	car was found at Vista Point on the north end of the Golden
	Gate Bridge.

	[San Francisco Examiner Sunday Magazine, October 1985].

	{Shareware history (http://paulspicks.com/history.asp)}.

	{NEWSBYTES article
	(http://textfiles.fisher.hu/news/freeware.txt)}.

	{(http://doenetwork.bravepages.com/579dmca.html)}.

	(2003-07-25)

Andrew Message System

	<messaging> A {multimedia} interface to {electronic mail} and
	{bulletin boards}, developed as part of the {Andrew Project}.

	(1994-11-24)

Andrew Project

	<project> A distributed system project for support of
	educational and research computing at {Carnegie Mellon
	University}, named after Andrew Carnegie, an American
	philanthropist who provided money to establish CMU.

	See also {Andrew File System}, {Andrew Message System},
	{Andrew Toolkit}, {class}.

	{Home FTP (ftp://emsworth.andrew.cmu.edu)}.

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

	[More detail?]

	(1997-11-17)

Andrew S. Tanenbaum

	{Andrew Tanenbaum}

Andrew Tanenbaum

	<person> Professor Andrew S. Tanenbaum (1941-) of the {Vrije
	Universiteit, Amsterdam} in The Netherlands.  Tanenbaum is
	famous for his work and books on computer architecture,
	{operating systems} and {networks}.

	He wrote the textbook "Computer Networks", Second Edition,
	Prentice-Hall, 1981, which describes the {International
	Standards Organisation}, {Open Systems Interconnection}
	(ISO-OSI) network model.

	See {Amoeba}, {Mac-1}, {Mic-1}, {Mic-2}, {Micro Assembly
	Language}, {MINIX}, {MicroProgramming Language}, {standard}.

	[Home page?]

	(1996-04-23)

Andrew Toolkit

	<tool> (ATK) A {portable} {user interface} toolkit developed
	as part of the {Andrew project}, running on the {X Window
	System} and distributed with {X11R5}.

	(1995-11-24)

Andy Tanenbaum

	{Andrew Tanenbaum}

An Evolutionary System for On-line Programming

	<database> (AESOP) An early interactive {query system} on the
	{IBM 1800} using a {light pen}.

	["AESOP: A Final Report: A Prototype Interactive Information
	Control System", J.K. Summers et al, in Information System
	Science and Technology, D. Walker ed, 1967].

	[Sammet 1969, p. 703].

	(1995-04-04)

Angel

	<operating system> A single {address space}, {micro-kernel}
	{operating system} for {multiprocessor} computers, developed
	at {Imperial College} and {City University}, London, UK.

	[Ariel Burton]

	(1995-11-24)

angle bracket

	<character> Either of the characters "<" (less-than, {ASCII}
	60) and ">" (greater-than, ASCII 62).  Typographers in the
	{Real World} use angle brackets which are either taller and
	slimmer (the {ISO} "{Bra}" and "{Ket}" characters), or
	significantly smaller (single or double guillemets) than the
	less-than and greater-than signs.

	See {broket}.

	(1995-11-24)

Anglo-Saxon point

	{ATA point}

angry fruit salad

	<abuse> A bad visual-interface design that uses too many
	colours.  (This term derives, of course, from the bizarre
	day-glo colours found in canned fruit salad).  Too often one
	sees similar effects from interface designers using colour
	window systems such as {X}; there is a tendency to create
	displays that are flashy and attention-getting but
	uncomfortable for long-term use.

	[{Jargon File}]

	(1995-11-24)

ANI

	{Automatic Number Identification}

Animated GIF

	<graphics, file format> (GIF89a) A variant of the {GIF}
	{image} format, often used on {World-Wide Web} pages to
	provide moving {icons} and banners.

	The GIF89a format supports multiple "frames" that give the
	impression of motion when displayed in sequence, much like a
	flip book.  The animation may repeat continuously or play
	once.

	Animated GIFs aren't supported by earlier {web browsers},
	however the first frame of the image is still shown.

	There are many utilities to create animated GIFs from a
	sequence of individual GIF files.  There are also utilities
	that will produce animated GIFs automatically from a piece of
	text or a single image.

	One problem with this format is the size of the files
	produced, as they are by definition a sequence of individual
	images.  Apart from minimising the number of frames, the best
	way to decrease file size is to assist the {LZW} compression
	by using blocks of solid colour, avoid {dithering}, and use
	fewer colours.  If areas of an image don't change from one
	frame to another, they don't need to be redrawn so make the
	area a transparent block in the second frame.

	(1999-08-01)

animation

	<graphics> The creation of artificial moving images.

	{Usenet} newsgroup: {news:comp.graphics.animation}.  {FAQ
	(ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.animation)}.

	(1995-11-24)

Animus

	["Constraint-Based Animation: The Implementation of Temporal
	Constraints in the Animus System", R. Duisberg, PhD Thesis U
	Washington 1986].

	(1995-11-24)

ANL

	{Argonne National Laboratory}

Anna

	{ANNotated Ada}

annealing

	{simulated annealing}

annotate

	{annotation}

ANNotated Ada

	<language, specification> (Anna) A {specification} language
	developed at {Stanford University} ca. 1980 for formally
	specifying {Ada} programs.  It has a Specification Analyzer
	and a Consistency Checking System.  It adds semantic
	{assertions} in the form of Ada {comments}.

	{(ftp://anna.stanford.edu/pub/anna/)}.

	["ANNA - A Language for Annotating Ada Programs", David
	Luckham et al, Springer 1987].

	(1994-11-01)

annotation

	1. <programming, compiler> Extra information associated with a
	particular point in a document or program.  Annotations may be
	added either by a {compiler} or by the programmer.  They are
	not usually essential to the correct function of the program
	but give hints to improve performance.

	2. <hypertext> A new commentary {node} linked to an existing
	node.  If readers, as well as authors, can annotate nodes,
	then they can immediately provide feedback if the information
	is misleading, out of date or plain wrong.

	(1995-11-26)

annoybot

	<messaging> /*-noy-bot/ An irksome {IRC} {robot}.

	[{Jargon File}]

	(1997-12-23)

annoyware

	<software> {Shareware} that reminds you frequently that you
	are using an unregistered copy.

	(1998-04-29)

Annual Change Traffic

	<software> (ACT) The fraction of the software product's
	{source code} which changes during a year, either through
	addition or modification.  The ACT can be used to determine
	the product size in order to estimate software maintenance
	effort.

	(1996-05-29)

annulled branch

	{delayed control-transfer}

anonymous FTP

	<networking> An interactive service provided by many
	{Internet} {hosts} allowing any user to transfer documents,
	files, programs, and other archived data using {File Transfer
	Protocol}.  The user logs in using the special {user name}
	"ftp" or "anonymous" and his {e-mail address} as {password}.
	He then has access to a special directory hierarchy containing
	the publically accessible files, typically in a subdirectory
	called "pub".  This is usually a separate area from files used
	by local users.

	A reference like

		ftp: euagate.eua.ericsson.se /pub/eua/erlang/info

	means that files are available by anonymous FTP from the host
	called euagate.eua.ericsson.se in the directory (or file)
	/pub/eua/erlang/info.  Sometimes the {hostname} will be
	followed by an {Internet address} in parentheses.  The
	directory will usually be given as a path relative to the
	anonymous FTP login directory.  A reference to a file
	available by FTP may also be in the form of a {URL} starting
	"ftp:".

	See also {Archie}, {archive site}, {EFS}, {FTP by mail},
	{World-Wide Web}.

	(1995-11-26)

ANother Tool for Language Recognition

	<tool> (ANTLR) The {parser generator} in the {Purdue
	Compiler-Construction Tool Set}.

	(1995-10-26)

ANR

	{Automatic Network Routing}

ANS

	{American National Standard}

ANSA

	{Advanced Network Systems Architecture}

ANSI

	{American National Standards Institute}

ANSI C

	<language, standard> (American National Standards Institute C)
	A revision of {C}, adding {function prototypes}, {structure
	passing}, {structure assignment} and standardised library
	functions.  {ANSI} X3.159-1989.

	{cgram} is a {grammar} for ANSI C, written in {Scheme}.
	{unproto} is a program for removing function prototypes to
	translate ANSI C to standard C.  {lcc} is a {retargetable}
	{compiler} for ANSI C.

	(1995-11-26)

ANSI Minimal BASIC

	<language, standard> ANS X3.60-1978.

	[Details?]

	(1995-11-29)

ANSI/SPARC

	{ANSI Standards Planning And Requirments Committee}

ANSI/SPARC Architecture

	<architecture> (Or "ANSI/SPARC model") {ANSI/SPARC}'s layered
	model of {database} architecture comprising a {physical
	schema}, a {conceptual schema} and user {views}.

	[Reference?]

	(1998-12-17)

ANSI/SPARC model

	{ANSI/SPARC Architecture}

ANSI X12

	<standard> Standards defining the structure, format, and
	content of business transactions conducted through {Electronic
	Data Interchange} (EDI).  ANSI X12 is produced by the
	committee ASC X12, supported by the {Data Interchange
	Standards Association, Inc.} (DISA).

	[{(http://onlinewbc.org/Docs/procure/standard.html)}].

	(1999-09-18)

ANSI Z39.50

	<networking, standard> Information Retrieval Service
	Definition and Protocol Specification for Library
	Applications, officially known as ANSI/NISO Z39.50-1992, and
	ANSI/NISO Z39.50-1995.  This {standard}, used by {WAIS},
	specifies an {OSI} {application layer} service to allow an
	application on one computer to query a {database} on another.

	Z39.50 is used in libraries and for searching some databases
	on the {Internet}.  The US {Library of Congress
	(http://lcweb.loc.gov/z3950/agency/)} is the official
	maintanence agency for Z39.50.

	{Index Data}, a Danish company, have released a lot of Z39.50
	code.  Their {website} explains the relevant {ISO} {standards}
	and how they are amicably converging in Z39.50 version 4.0.

	{Overview (http://nlc-bnc.ca/ifla/VI/5/op/udtop3.htm)}.

	{Z39.50 resources
	(http://lamp.cs.utas.edu.au/net.html#Z3950)}.

	(1996-07-22)

antenna gain

	<radio> The factor by which a {radio antenna} of a given shape
	focusses the emitted power into a smaller beamwidth compared
	with an omnidirectional antenna.

	(2008-02-26)

Anthony Hoare

	<person> (C. Anthony R. Hoare, Tony) A computer scientist
	working on programming languages, especially {parallel} ones.
	Hoare was responsible for {Communicating Sequential Processes}
	(CSP).

	See also: {pointer}, {Simone}.

	[Did he invent the Hoare {powerdomain}?  Other details?]

	(1999-07-22)

anti-aliasing

	<graphics> A technique used on a {grey-scale} or colour
	{bitmap display} to make diagonal edges appear smoother by
	setting {pixels} near the edge to intermediate colours
	according to where the edge crosses them.

	The most common example is black characters on a white
	background.  Without anti-aliasing, diagonal edges appear
	jagged, like staircases, which may be noticeable on a low
	{resolution} display.  If the display can show intermediate
	greys then anti-aliasing can be applied.  A pixel will be
	black if it is completely within the black area, or white if
	it is completely outside the black area, or an intermediate
	shade of grey according to the proportions of it which overlap
	the black and white areas.  The technique works similarly with
	other foreground and background colours.

	"Aliasing" refers to the fact that many points (which would
	differ in the real image) are mapped or "aliased" to the same
	pixel (with a single value) in the digital representation.

	(1998-03-13)

antichain

	<mathematics> A subset S of a {partially ordered set} P is an
	antichain if,

	 for all x, y in S,  x <= y  =>  x = y

	I.e. no two different elements are related.

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

	(1995-02-03)

antisymmetric

	<mathematics> A {relation} R is antisymmetric if,

	 for all x and y,  x R y and y R x  =>  x == y.

	I.e. no two different elements are mutually related.

	{Partial orders} and {total orders} are antisymmetric.  If R
	is also {symmetric}, i.e.

	 x R y  =>  y R x

	then

	 x R y  =>  x == y

	I.e. different elements are not related.

	(1995-04-18)

antivirus

	{antivirus software}

antivirus program

	{antivirus software}

antivirus software

	<tool> Programs to detect and remove computer {viruses}.  The
	simplest kind scans executable files and {boot blocks} for a
	list of known viruses.  Others are constantly active,
	attempting to detect the actions of general classes of
	viruses.  antivirus software should always include a regular
	update service allowing it to keep up with the latest viruses
	as they are released.

	(1998-02-25)

ANTLR

	{ANother Tool for Language Recognition}

ANU

	{Australian National University}

ANU ML

	<language> An implementation of {SML} by the {Australian
	National University} for {Motorola 68020}, {Vax} and
	{Pyramid}.

	(1995-11-26)

any key

	<humour, hardware> The key that particularly confused {users}
	look for on their computer keyboards when instructed to "Press
	any key to continue".  "But my keyboard doesn't have a key
	labelled 'any'!".

	{Compaq FAQ
	(http://web14.compaq.com/falco/detail.asp?FAQnum=FAQ2859)}.

	(2003-09-30)

anytime algorithm

	<algorithm> An {algorithm} that returns a sequence of
	approximations to the correct answer such that each
	approximation is no worse than the previous one, i.e. the
	algorithm can be stopped at _any time_.

	{Newton-Raphson iteration} applied to finding the {square
	root} of a number b is another example:

		x = (x + b / x) / 2

	Each new x is closer to the square root than the previous one.

	Applications might include a {real-time} control system or a
	chess program that is allowed a fixed thinking time.

	(2007-06-19)

ao

	<networking> The {country code} for Angola.

	(1999-01-27)

AOCE

	{Apple Open Collaboration Environment}

AOL

	{America On-Line}

AOP

	{aspect-oriented programming}

AOS

	1. /aws/ (East Coast), /ay-os/ (West Coast) A
	{PDP-10} instruction that took any memory location and added 1
	to it.  AOS meant "Add One and do not Skip".  Why, you may
	ask, does the "S" stand for "do not Skip" rather than for
	"Skip"?  Ah, here was a beloved piece of PDP-10 folklore.
	There were eight such instructions: AOSE added 1 and then
	skipped the next instruction if the result was Equal to zero;
	AOSG added 1 and then skipped if the result was Greater than
	0; AOSN added 1 and then skipped if the result was Not 0; AOSA
	added 1 and then skipped Always; and so on.  Just plain AOS
	didn't say when to skip, so it never skipped.

	For similar reasons, AOJ meant "Add One and do not Jump".
	Even more bizarre, SKIP meant "do not SKIP"!  If you wanted to
	skip the next instruction, you had to say "SKIPA".  Likewise,
	JUMP meant "do not JUMP"; the unconditional form was JUMPA.
	However, hackers never did this.  By some quirk of the 10's
	design, the {JRST} (Jump and ReSTore flag with no flag
	specified) was actually faster and so was invariably used.
	Such were the perverse mysteries of assembler programming.

	2. /A-O-S/ or /A-os/ A {Multics}-derived {operating system}
	supported at one time by {Data General}.

	A spoof of the standard AOS system administrator's manual
	("How to Load and Generate your AOS System") was created,
	issued a part number, and circulated as photocopy folklore; it
	was called "How to Goad and Levitate your CHAOS System".

	3. Algebraic Operating System, in reference to those
	calculators which use {infix} {operators} instead of {postfix
	notation}.

	[{Jargon File}]

	(1995-11-26)

APA

	{Application Portability Architecture}

Apache

	<World-Wide Web, project> A {open source} {HTTP} server for
	{Unix}, {Windows NT}, and other {platforms}.  Apache was
	developed in early 1995, based on code and ideas found in the
	most popular HTTP server of the time, {NCSA httpd} 1.3.  It
	has since evolved to rival (and probably surpass) almost any
	other {Unix} based HTTP server in terms of functionality, and
	speed.  Since April 1996 Apache has been the most popular HTTP
	server on the {Internet}, in May 1999 it was running on 57% of
	all web servers.

	It features highly configurable error messages, {DBM}-based
	{authentication} {databases}, and {content negotiation}.

	Latest version: 1.3.9, as of 1999-10-27.

	{(http://apache.org/httpd.html)}.

	{FAQ (http://apache.org/docs/misc/FAQ.html)}.

	(1999-10-27)

Apache Software Foundation

	<open source, body> (ASF) A consortium that manages the
	development of the {Apache} {web server}, dozens of {XML}- and
	{Java}-based projects (under the name {Jakarta}), the {Ant}
	build tool, the {Geronimo} {J2EE} server, the {SpamAssassin}
	anti-{SPAM} tool, and much more.

	{Apache Home (http://apache.org/)}.

	(2005-01-26)

APAL

	{Array Processor Assembly Language}

APAREL

	{A PArse REquest Language}

A PArse REquest Language

	<language> (APAREL) A {PL/I} extension to provide {BNF}
	{parsing} routines, for {IBM 360}.

	["APAREL: A Parse Request Language", R.W. Balzer et al, CACM
	12(11) (Nov 1969)].

	(1995-11-26)

APC

	{Association for Progressive Communications}

APDL

	{Algorithmic Processor Description Language}

APE

	<audio, compression> A {lossless} {audio} {compression}
	{algorithm} from {MonkeysAudio}.

	(2001-12-20)

apE

	<graphics> A graphics package from the Ohio Supercomputer
	Centre.

	(1995-11-29)

API

	{Application Program Interface}

APIC

	{Advanced Programmable Interrupt Controller}

APL

	{A Programming Language}

APL2

	<language> An {APL} extension from {IBM} with nested {arrays}.

	["APL2 Programming: Language Reference", IBM, Aug 1984.  Order
	No. SH20-9227-0].

	(1995-11-29)

APLGOL

	<language> An {APL} variant with {ALGOL}-like control
	structure, from {Hewlett-Packard}(?).

	(1995-11-29)

APLWEB

	<text, tool> A {Web} to {APL} and {Web} to {TeX} translator by
	Dr. Christoph von Basum of The University of Bielefeld,
	Germany.

	{(ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/)}.

	(1992-12-27)

APM

	{Advanced Power Management}

Apollo Computer

	<company> A company making {workstations} often used for
	{CAD}.

	From 1980 to 1987, Apollo were the largest manufacturer of
	network {workstations}.  Apollo workstations ran {Aegis}, a
	proprietary {operating system} with a {Posix}-compliant {Unix}
	alternative frontend.  Apollo's networking was particularly
	elegant, among the first to allow {demand paging} over the
	network, and allowing a degree of {network transparency} and
	low {sysadmin}-to-machine ratio that is still unmatched.

	Apollo's largest customers were Mentor Graphics (electronic
	design), GM, Ford, Chrysler, and Boeing (mechanical design).
	Apollo was acquired by {Hewlett-Packard} in 1989, and
	gradually closed down over the period 1990-1997.

	(2003-07-18)

apostrophe

	{single quote}

app

	{application program}

APPC

	{Advanced Program-to-Program Communications}

AppKit

	<tool> A set of objects used by the {application builder} for
	the {NEXTSTEP} environment.

	(1995-03-13)

APPLE

	<language> A revision of {APL} for the {Illiac IV}.

	(1995-04-28)

Apple

	{Apple Computer, Inc.}

Apple Address Resolution Protocol

	<networking> (AARP) {Apple}'s system to allow {AppleTalk}
	{protocol} to work over networks other than {LocalTalk}, such
	as {Ethernet} or {Token Ring}.  {AppleTalk} {nodes} announce
	their presence to the network so that other nodes can address
	messages to them.  AARP maps between AppleTalk addresses and
	other schemes.  It is actually a general address mapping
	protocol that can be used to map between addresses at any
	protocol level.

	[G. Sidhu, R. Andrews, and A. Oppenheimer, "Inside AppleTalk",
	Addison Wesley, 1990].

	(2006-04-18)

Apple Attachment Unit Interface

	<hardware, networking> (AAUI) A 14-position, 0.050-inch-spaced
	ribbon contact connector.  Early {Power Macs} and Quadras had
	an AAUI (Apple Attachment Unit Interface) {port} (rectangular
	shaped) for {Ethernet}, which requires a {transceiver}.  To
	use {twisted pair} cabling, you would need to get a {twisted
	pair} transceiver for the computer with an AAUI port.  Some
	{Power Mac} computers had both an AAUI and {RJ-45} port; you
	can use one or the other, but not both.

	The pin-out is:

	  Pin   Signal Name     Signal Description
	  ----  --------------  ---------------------------------
	  1     FN Pwr          Power (+12V @ 2.1W or +5V @ 1.9W)
	  2     DI-A            Data In circuit A
	  3     DI-B            Data In circuit B
	  4     VCC             Voltage Common
	  5     CI-A            Control In circuit A
	  6     CI-B            Control In circuit B
	  7     +5V             +5 volts (from host)
	  8     +5V             Secondary +5 volts (from host)
	  9     DO-A            Data Out circuit A
	  10    DO-B            Data Out circuit B
	  11    VCC             Secondary Voltage Common
	  12    NC              Reserved
	  13    NC              Reserved
	  14    FN Pwr          Secondary +12V @ 2.1W or +5V @ 1.9W
	  Shell Protective Gnd  Protective Ground

	AAUI signals have the same description, function, and
	electrical requirements as the {AUI} signals of the same name,
	as detailed in {IEEE 802.3}-1990 CSMA/CD Standard, section 7.

	(2000-02-10)

Apple Computer, Inc.

	<company> Manufacturers of the {Macintosh} range of {personal
	computers} as well as the earlier {Apple I}, {Apple II} and
	{Lisa}.  Founded on 1 April 1976 by {Steve Jobs} and {Steve
	Wozniak}.

	Apples were among the first {microcomputers}.  They originally
	used the {6502} processor and are still being made (August
	1994), now using the {65816}.  The {Apple II} line, which
	includes the {Apple I}, is the longest existing line of
	microcomputers.

	Steve Jobs left Apple (involuntarily) and started {NeXT} and
	later returned when Apple bought NeXT in late 1997(?).

	Quarterly sales $2150M, profits $138M (Aug 1994).
	{(http://apple.com/)}.

	[Dates?  More?]

	(1998-03-13)

Apple II

	<computer> An 8-bit {personal computer} with a {6502}
	processor, from {Apple Computer}.  It was invented by {Steve
	Wozniak} and was very popular from about 1980 until the first
	several years of {MS-DOS} {IBM PCs}.

	(1995-01-12)

Apple Macintosh

	{Macintosh}

Apple Newton

	<computer> A {Personal Digital Assistant} produced by {Apple
	Computer}.  The Newton provides a clever, {user-friendly}
	interface and relies solely on pen-based input.  Eagerly
	anticipated, the Newton uses handwriting recognition software
	to "learn" the users handwriting and provide reliable
	{character recognition}.

	Various third-party software applications are available and
	add-on {peripherals} like wireless {modems} for {Internet}
	access are being sold by {Apple Computer, Inc.} and its
	licensees.

	{Newton Inc.}'s {NewtonOS} competes with {Microsoft
	Corporation}'s {Windows CE}, and was to be compatible with
	{DEC}'s {StrongARM} SA-1100, an embedded 200MHz
	{microprocessor}, which was due in 1998.

	{(http://newton.apple.com/)}.

	{Handwriting recognition example
	(http://www-personal.engin.umich.edu/~jxm/tablespoons.html)}.

	(1997-09-12)

Apple Open Collaboration Environment

	<tool> (AOCE) Software for {electronic mail} and directory
	services.

	(1995-03-08)

AppleScript

	<language> An {object-oriented} {shell} language for the
	{Macintosh}, approximately a superset of {HyperTalk}.

	(1995-12-10)

Applesoft BASIC

	<language> A version of {BASIC} for {Apple} computers.

	(1995-12-10)

applet

	<World-Wide Web> A {Java} program which can be distributed as
	an attachment in a {World-Wide Web} document and executed by a
	Java-enabled {web browser} such as Sun's {HotJava},
	{Netscape Navigator} version 2.0, or {Internet Explorer}.

	Navigator severely restricts the applet's file system and
	network access in order to prevent accidental or deliberate
	security violations.  Full Java applications, which run
	outside of the browser, do not have these restrictions.

	Web browsers can also be extended with {plug-ins} though these
	differ from applets in that they usually require manual
	installation and are {platform}-specific.  Various other
	languages can now be embedded within {HTML} documents, the
	most common being {JavaScript}.

	Despite Java's aim to be a "write once, run anywhere"
	language, the difficulty of accomodating the variety of
	browsers in use on the Internet has led many to abandon
	client-side processing in favour of {server}-side Java
	programs for which the term {servlet} was coined.

	Merriam Webster "Collegiate Edition" gives a 1990 definition:
	a short application program especially for performing a simple
	specific task.

	(2002-07-12)

Appletalk

	<networking, protocol> A proprietary {local area network}
	{protocol} developed by {Apple Computer, Inc.} for
	communication between Apple products (e.g. {Macintosh}) and
	other computers.  This protocol is independent of the {network
	layer} on which it runs.  Current implementations exist for
	{Localtalk}, a 235 kilobyte per second local area network and
	{Ethertalk}, a 10 megabyte per second local area network.

	(1995-03-08)

AppleTalk Data Stream Protocol

	<protocol> (ADSP) A {protocol} which provides a simple
	transport method for data accross a network.

	(1996-06-18)

AppleTalk Filing Protocol

	<networking> (AFP) A {client/server} {protocol} used in
	{AppleTalk} communications networks.  In order for non-{Apple}
	networks to access data in an {AppleShare} {server}, their
	protocols must translate into the AFP language.

	See also: {Columbia AppleTalk Package}.

	(1998-06-28)

appletviewer

	<World-Wide Web, testing> A simplified {web browser} used for
	testing {applets}.  You can't browse {HTML} with it but you
	can run applets to test them before embedding them in a {web
	page}.

	(2004-08-22)

application

	1. {application program}.

	2. {function application}.

Application Binary Interface

	<programming> (ABI) The interface by which an {application
	program} gains access to {operating system} and other
	services.  It should be possible to run the same compiled
	{binary} applications on any system with the right ABI.

	Examples are {88open}'s {Binary Compatibility Standard}, the
	{PowerOpen Environment} and {Windows sockets}.

	(1994-11-08)

Application Configuration Access Protocol

	<protocol> (ACAP) A {protocol} which enhances {IMAP} by
	allowing the user to set up {address books}, user options, and
	other data for universal access.  Currently (Feb 1997) no
	Internet proprietary products have implemented ACAP because
	the {Internet Engineering Task Force} has not yet approved the
	final specification.  This was expected early in 1997.

	["Your E-Mail Is Obsolete", Byte, Feb 1997].

	(1997-05-03)

Application Control Architecture

	<programming> (ACA) {DEC}'s implementation of {ORB}.

	(1994-11-08)

Application Developer

	<job> Someone who does {application development}.

	(2013-08-15)

application development

	<programming> Writing {computer programs} to meet specific
	{requirements}; the job of an Application Developer.  Application
	development often includes responsibility for {requirements
	capture} and/or {testing} as well as actual {programming} (the
	more limited activity implied by the term {programmer}).

	(2013-08-15)

application enablement services

	<programming> {IBM}-speak for {APIs} to services such as
	telecoms, database, etc. within and between address spaces.

	(1999-01-20)

Application environment specification

	<programming> (AES) A set of specifications from {OSF} for
	programming and {user interfaces}, aimed at providing a
	consistent application environment on different hardware.  It
	includes "O/S" for the {operating system} (user commands and
	program interfaces), "U/E" for the User Environment ({Motif}),
	and "N/S" for Network services.

	[Reference?]

	(1994-12-07)

Application Executive

	<language> (AE) An {embeddable language}, written as a {C}
	{interpreter} by Brian Bliss at UIUC.  AE is compiled with an
	{application} and thus exists in the same process and address
	space.  It includes a {dbx} {symbol table} scanner to access
	compiled variables and routines, or you can enter them
	manually by providing a type/name declaration and the address.
	When the {interpreter} is invoked, {source code} fragments are
	read from the input stream (or a string), parsed, and
	evaluated immediately.  The user can call compiled functions
	in addition to a few {built-in} intrinsics, declare new data
	types and data objects, etc.  Different input streams can be
	evaluated in parallel on {Alliant} computers.

	AE has been ported to {SunOS} (cc or {gcc}), {Alliant FX} and
	{Cray YMP} (soon).

	{(ftp://sp2.csrd.uiuc.edu/pub/at.tar.Z)}.
	{(ftp://sp2.csrd.uiuc.edu/pub/bliss/ae.tex.Z)}.

	(1992-04-21)

Application Integration Architecture

	<standard> (AIA) {DEC}'s "open standards" specifications.

application layer

	<networking> The top layer of the {OSI} seven layer model.
	This layer handles issues like {network transparency},
	resource allocation and problem partitioning.  The application
	layer is concerned with the user's view of the network
	(e.g. formatting {electronic mail} messages).  The
	{presentation layer} provides the application layer with a
	familiar local representation of data independent of the
	format used on the network.

	(1994-11-28)

application lifecycle management

	<programming> (ALM) A combination of {software engineering},
	{requirements management}, {architecture}, {coding},
	{testing}, {tracking} and {release management}.

	(2009-06-10)

Application Portability Architecture

	<programming> (APA) {DEC}'s plan for portable applications
	software.

	(1994-11-28)

application program

	<programming, operating system> (Or "application", "app") A
	complete, self-contained program that performs a specific
	function directly for the user.  This is in contrast to
	{system software} such as the {operating system} {kernel},
	{server} processes, {libraries} which exists to support
	application programs and {utility programs}.

	Editors for various kinds of documents, {spreadsheets}, and
	text formatters are common examples of applications.  Network
	applications include clients such as those for {FTP},
	{electronic mail}, {telnet} and {WWW}.

	The term is used fairly loosely, for instance, some might say
	that a client and server together form a distributed
	application, others might argue that editors and compilers
	were not applications but {utility programs} for building
	applications.

	One distinction between an application program and the
	operating system is that applications always run in {user
	mode} (or "non-privileged mode"), while operating systems and
	related utilities may run in {supervisor mode} (or "privileged
	mode").

	The term may also be used to distinguish programs which
	communicate via a {graphical user interface} from those which
	are executed from the {command line}.

	(2007-02-02)

Application Program Interface

	<programming> (API, or "application programming interface")
	The interface (calling conventions) by which an {application
	program} accesses {operating system} and other services.  An
	API is defined at {source code} level and provides a level of
	{abstraction} between the application and the {kernel} (or
	other privileged utilities) to ensure the {portability} of the
	code.

	An API can also provide an interface between a {high level
	language} and lower level utilities and services which were
	written without consideration for the {calling conventions}
	supported by compiled languages.  In this case, the API's main
	task may be the translation of parameter lists from one format
	to another and the interpretation of {call-by-value} and
	{call-by-reference} arguments in one or both directions.

	(1995-02-15)

Application Programming Interface

	{Application Program Interface}

Application Protocol Data Unit

	<networking> (APDU) A {packet} of data exchanged between two
	{application} programs across a {network}.  This is the
	highest level view of communication in the {OSI} {seven layer
	model} and a single packet exchanged at this level may
	actually be transmitted as several packets at a lower layer as
	well as having extra information (headers) added for {routing}
	etc.

	(1995-12-19)

Applications Development Manager

	<job> (Or "Director") The person in a company who plans and
	oversees multiple projects and {project managers}.  The
	Applications Development Managers works with the {CIO} and
	senior management to determine systems development strategy
	and standards.  He or she administers department budget and
	reviews project managers.

	(2004-03-06)

application server

	1.  <software> A {designer}'s or {developer}'s suite of
	{software} that helps {programmers} isolate the {business
	logic} in their {programs} from the {platform}-related code.
	{Application} {servers} can handle all of the {application}
	{logic} and {connectivity} found in {client-server}
	{applications}.  Many {application} {servers} also offer
	features such as {transaction management}, {clustering} and
	{failover}, and {load balancing}; nearly all offer {ODBC}
	support.

	{Application} {servers} range from small {footprint},
	web-based {processors} for intelligent appliances or remote
	{embedded} devices, to complete environments for assembling,
	deploying, and maintaining {scalable} {multi-tier}
	applications across an {enterprise}.

	2.  <software> Production {programs} run on a mid-sized
	computer that handle all {application} operations between
	{browser}-based computers and an organisation's back-end
	business {applications} or {databases}.  The {application}
	{server} works as a translator, allowing, for example, a
	customer with a {browser} to search an online retailer's
	{database} for pricing information.

	3.  <hardware> The device on which {application} {server}
	{software} runs.  {Application Service Providers} offer
	commercial access to such devices.

	{Citrix Application Serving White Paper
	(http://citrix.com/press/corpinfo/application_serving_wp_0700.pdf)}.

	{Application Server Sites, a list maintained by Vayda & Herzum
	(http://componentfactory.org/links/appl.htm)}.

	{The Application Server Zone at DevX,
	(http://appserver-zone.com/default.asp)}.

	{TechMetrix Research's Application Server Directory,
	(http://techmetrix.com/trendmarkers/techmetrixasd.php3)}.

	(2001-03-30)

Application Service Element

	<networking> (ASE) Software in the {presentation layer} of the
	{OSI} seven layer model which provides an abstracted interface
	layer to service {application protocol data units} (APDU).
	Because {applications} and {networks} vary, ASEs are split
	into common services and specific services.

	Examples of services provided by the {common application
	service element} (CASE) include remote operations (ROSE) and
	{database} {concurrency control and recovery} (CCR).

	The {specific application service element} (SASE) provides
	more specialised services such as file transfer, database
	access, and order entry.

	{Csico docs
	(http://cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/osi_prot.htm)}.

	(2003-09-27)

application service provider

	<business, networking> (ASP) A service (usually a business)
	that provides remote access to an {application program} across
	a {network} {protocol}, typically {HTTP}.  A common example is
	a {website} that other websites use for accepting payment by
	credit card as part of their {online ordering} systems.

	As this term is complex-sounding but vague, it is widely used
	by {marketroids} who want to avoid being specific and clear at
	all costs.

	(2001-03-26)

applications language

	{Ousterhout's dichotomy}

application software

	{application program}

Application Software Installation Server

	(ASIS) Something at {CERN}.

	[What?]

	(1999-10-21)

Application-Specific Integrated Circuit

	<hardware> (ASIC) An {integrated circuit} designed to perform
	a particular function by defining the interconnection of a set
	of basic circuit building blocks drawn from a library provided
	by the circuit manufacturer.

	(1995-02-15)

Applications Programming Interface

	{Application Programming Interface}

applications software

	{application program}

application testing

	{system testing}

Application Visualisation System

	<tool, graphics> (AVS) A portable, modular, {Unix}-based
	graphics package supported by a consortium of vendors
	including {Convex}, {DEC}, {IBM}, {HP}, {SET Technologies},
	{Stardent} and {WaveTracer}.

	(1994-11-28)

applicative language

	<language> A {functional language}.  Sometimes used loosely
	for any {declarative language} though {logic programming}
	languages are declarative but not applicative.

	(1995-12-24)

Applicative Language for Digital Signal Processing

	<language> (ALDiSP) A {functional language} with special
	features for {real-time} {I/O} and numerical processing,
	developed at the {Technical University of Berlin} in 1989.

	["An Applicative Real-Time Language for DSP - Programming
	Supporting Asynchronous Data-Flow Concepts", M. Freericks
	<mfx@cs.tu-berlin.de> in Microprocessing and Microprogramming
	32, N-H 1991].

	(1995-04-19)

applicative order reduction

	<programming> An {evaluation strategy} under which an
	expression is evaluated by repeatedly evaluating its leftmost
	innermost {redex}.  This means that a function's arguments are
	evaluated before the function is applied.  This method will
	not terminate if a function is given a non-terminating
	expression as an argument even if the function is not {strict}
	in that argument.  Also known as {call-by-value} since the
	values of arguments are passed rather than their names.  This
	is the evaluation strategy used by {ML}, {Scheme}, {Hope} and
	most {procedural languages} such as {C} and {Pascal}.

	See also {normal order reduction}, {parallel reduction}.

	(1995-01-25)

APPLOG

	<language> A language which unifies {logic programming} and
	{functional programming}.

	["The APPLOG Language", S. Cohen in Logic Programming, deGroot
	et al eds, P-H 1986, pp.39-276].

	(1995-01-25)

APPN

	{Advanced Peer-to-Peer Networking}

approximation algorithm

	<algorithm> An {algorithm} for an {optimisation} problem that
	generates {feasible} but not necessarily {optimal} solutions.

	Unlike "{heuristic}", the term "approximation algorithm" often
	implies some proven worst or average case bound on
	performance.  The terms are often used interchangeably
	however.

	(1997-10-28)

April Fool's Joke

	<humour, event> (AFJ) Elaborate April Fool's hoaxes are a
	long-established tradition on {Usenet} and {Internet}; see
	{kremvax} for an example.  In fact, April Fool's Day is the
	*only* seasonal holiday marked by customary observances on the
	hacker networks.

	(1995-01-25)

A Programming Language

	<language> (APL) A programming language designed originally by
	Ken Iverson at Harvard University in 1957-1960 as a notation
	for the concise expression of mathematical {algorithms}.  It
	went unnamed (or just called Iverson's Language) and
	unimplemented for many years.  Finally a subset, APL\360, was
	implemented in 1964.

	APL is an interactive array-oriented language and programming
	environment with many innovative features.  It was originally
	written using a non-standard {character set}.  It is
	{dynamically typed} with {dynamic scope}.  APL introduced
	several functional forms but is not {purely functional}.

	Dyalog APL/W and Visual APL are recognized .{NET} languages.

	Dyalog APL/W, APLX and APL2000 all offer {object-oriented}
	extensions to the language.

	ISO 8485 is the 1989 standard defining the language.

	Commercial versions: APL SV, VS APL, Sharp APL, Sharp APL/PC,
	APL*PLUS, APL*PLUS/PC, APL*PLUS/PC II, MCM APL, Honeyapple,
	DEC APL, {APL+Win, APL+Linux, APL+Unix and VisualAPL
	(http://www.apl2000.com/)}, {Dyalog APL
	(http://www.dyalog.com/)}, {IBM APL2
	(http://www-306.ibm.com/software/awdtools/apl/)}, {APLX
	(http://www.microapl.co.uk/apl/)}, {Sharp APL
	(http://www.soliton.com/services_sharp.html)}

	Open source version: {NARS2000 (http://www.nars2000.org/)}.

	{APL wiki (http://aplwiki.com/)}.

	See also {Kamin's interpreters}.

	{APLWEB (http://www.microapl.co.uk/apl/)} translates {WEB} to
	APL.

	["A Programming Language", Kenneth E. Iverson, Wiley, 1962].

	["APL: An Interactive Approach", 1976].

	(2009-08-11)

APSE

	{Ada Programming Support Environment}

APT

	1. <language> {Automatically Programmed Tools}.

	2. <company> {Audio Processing Technology}.

APX III

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

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

	(1995-05-04)

aq

	<networking> The {country code} for Antarctica.

	(1999-01-27)

AQL

	<language> A picture {query language}, extension of {APL}.

	["AQL: A Relational Database Management System and Its
	Geographical Applications", F. Antonacci et al, in Database
	Techniques for Pictorial Applications, A. Blaser ed,
	pp. 569-599].

	(1995-05-04)

ar

	<networking> The {country code} for Argentina.

	(1999-01-27)

arbitrary precision calculator

	<tool> An arbitrary precision {C}-like calculator.
	{Interpreter} version 1.26.4 by David I. Bell
	<dbell@canb.auug.org.au>.  Ported to {Linux}.

	{(ftp://ftp.uu.net/pub/calc)}.

	(1993-06-15)

ARC

	{Advanced RISC Computing Specification}

arc

	1. <file format, tool> An old {archive} format for {IBM PC}.
	The format is now so obscure that it is only likely to be
	supported by jack-of-all-trades decompression programs such as
	{WINZIP}.

	2. <mathematics, data> An {edge} in a {tree}.  "{branch}" is a
	generally more common synonym.

	(1998-12-29)

Arcade

	<networking> A UK {BBS} for the {Acorn} {Archimedes}.  Also
	has links with {Demon Internet}.

	Telephone: +44 (181) 654 2212 (24hrs, most speeds).

	(1994-11-08)

ArchBSD

	<operating system> 4.4 {BSD-Lite} for the {Acorn}
	{Archimedes}.

	(1994-11-08)

archie

	<tool, networking> A system to automatically gather, index and
	serve information on the {Internet}.  The initial
	implementation of archie by {McGill University} School of
	Computer Science provided an indexed directory of filenames
	from all {anonymous FTP} archives on the Internet.  Later
	versions provide other collections of information.

	See also {archive site}, {Gopher}, {Prospero}, {Wide Area
	Information Servers}.

	(1995-12-28)

Archimedes

	<computer> A family of {microcomputers} produced by {Acorn
	Computers}, Cambridge, UK.  The Archimedes, launched in June
	1987, was the first {RISC} based {personal computer}
	(predating {Apple Computer}'s {Power Mac} by some seven
	years).  It uses the {Advanced RISC Machine} (ARM) processor
	and includes Acorn's {multitasking} {operating system} and
	{graphical user interface}, {RISC OS} on {ROM}, along with an
	interpreter for Acorn's enhanced {BASIC}, {BASIC V}.

	The Archimedes was designed as the successor to Acorn's
	sucessful {BBC Microcomputer} series and includes some
	backward compatibility and a {6502} {emulator}.  Several
	utilities are included free on disk (later in ROM) such as a
	{text editor}, paint and draw programs.  Software emulators
	are also available for the {IBM PC} as well as add-on {Intel}
	processor cards.

	There have been several series of Archimedes: A300, A400,
	A3000, A5000, A4000 and {RISC PC}.

	{Usenet FAQ
	(ftp://rtfm.mit.edu/pub/usenet/news.answers/acorn/)}.
	{Archive site list
	(http://cs.vu.nl/~gerben/acorn/acorn-archives.txt)}.
	{HENSA archive (ftp://micros.hensa.ac.uk/)}.  {Stuttgart
	archive (ftp://ftp.uni-stuttgart.de/pub/systems/acorn)}.

	See also {Crisis Software}, {Warm Silence Software}.

	(1998-04-03)

architecture

	<architecture> Design, the way components fit together.  The
	term is used particularly of {processors}, both individual and
	in general.  "The {ARM} has a really clean architecture".  It
	may also be used of any complex system, e.g. "software
	architecture", "network architecture".

	(1995-05-02)

Architecture Neutral Distribution Format

	<programming, operating system> (ANDF) An emerging {OSF}
	{standard} for software distribution.  Programs are compiled
	into ANDF before distribution and {executables} are produced
	from it for the local target system.  This allows software to
	be developed and distributed in a single version then
	installed on a variety of hardware.

	See also {UNCOL}.

	["Architecture Neutral Distribution Format: A White Paper",
	Open Software Foundation, Nov 1990].

	(1995-10-20)

archive

	1. <file format> A single file containing one or (usually)
	more separate files plus information to allow them to be
	extracted (separated) by a suitable program.

	Archives are usually created for software distribution or
	{backup}.  {tar} is a common format for {Unix} archives, and
	{arc} or {PKZIP} for {MS-DOS} and {Microsoft Windows}.

	2. <operating system> To transfer files to slower, cheaper
	media (usually {magnetic tape}) to free the {hard disk} space
	they occupied.  This is now normally done for long-term
	storage but in the 1960s, when disk was much more expensive,
	files were often shuffled regularly between disk and tape.

	3. <networking> {archive site}.

	(1996-12-08)

archive site

	<networking> (Or "FTP site", "FTP archive") An {Internet} {host}
	where program source, documents, {e-mail} or {news} messages are
	stored for public access via {anonymous FTP}, {Gopher},
	{World-Wide Web} or other document distribution system.  There may
	be several archive sites ({mirrors}) for, e.g., a {Usenet}
	{newsgroup} though one may be recognised as the main one.

	FTP servers were common on the Internet for about ten years but
	have been largely replaced by {web servers} since the invention of
	the {World-Wide Web} and its {HTTP} protocol.

	Some well-known archive sites included {Imperial College, UK
	(ftp://src.doc.ic.ac.uk/)}, {UUNET, USA (ftp://ftp.uu.net/)}, {GNU
	archive site}.

	The {archie} service attempted to index the contents of FTP
	archives, foreshadowing the indexing of the web by {Google} and
	others.

	(2014-07-06)

ARCnet

	<networking> A {network} developed by {DataPoint}.  ARCnet was
	{proprietary} until the late 1980s and had about as large a
	marketshare as {Ethernet} among small businesses.  It was
	almost as fast and was considerably cheaper at the time.

	(1995-01-16)

ARCS

	{ARC}

Arctic

	<language, music> A {real-time} {functional language}, used
	for music synthesis.

	["Arctic: A Functional Language for Real-Time Control",
	R.B. Dannenberg, Conf Record 1984 ACM Symp on LISP and
	Functional Prog, ACM].

	(1995-01-16)

arena

	<programming> The area of memory attached to a {Unix} process
	by the {brk} and {sbrk} {system calls} and used by {malloc} as
	dynamic storage.  So named from a "malloc: corrupt arena"
	message emitted when some early versions detected an
	impossible value in the free block list.

	See {overrun screw}, {aliasing bug}, {memory leak}, {memory
	smash}, {smash the stack}.

	[{Jargon File}]

	(1995-12-28)

ARES

	<language> A pictorial {query language}.

	["A Query Manipulation System for Image Data Retrieval",
	T. Ichikawa et al, Proc IEEE Workshop Picture Data Description
	and Management, Aug 1980, pp. 61-67].

	(1995-10-10)

AREV

	{Advanced Revelation}

AREXX

	<language> {REXX} for the {Amiga}.

	{ARexxGuide
	(http://halcyon.com/robin/www/arexxguide/main.html)}.

	(1996-02-06)

arg

	{argument}

argument

	<programming> (Or "arg") A value or reference passed to a
	{function}, {procedure}, {subroutine}, command or program, by
	the caller.  For example, in the function definition

		square(x) = x * x

	x is the {formal argument} or "parameter", and in the call

		y = square(3+4)

	3+4 is the {actual argument}.  This will execute the function
	square with x having the value 7 and return the result 49.

	There are many different conventions for passing arguments to
	functions and procedures including {call-by-value},
	{call-by-name}, {call-by-reference}, {call-by-need}.  These
	affect whether the value of the argument is computed by the
	caller or the callee (the function) and whether the callee can
	modify the value of the argument as seen by the caller (if it
	is a variable).

	Arguments to functions are usually, following mathematical
	notation, written in parentheses after the function name,
	separated by commas (but see {curried function}).  Arguments
	to a program are usually given after the command name,
	separated by spaces, e.g.:

		cat myfile yourfile hisfile

	Here "cat" is the command and "myfile", "yourfile", and
	"hisfile" are the arguments.

	(2006-05-27)

Argus

	<language> A successor to {CLU}, from LCS at {MIT}.  Argus
	supports {distributed programming} through {guardians} (like
	{monitors}, but can be created dynamically) and {atomic
	actions} (indivisible activity).  It also has {cobegin} and
	coend.

	["Argus Reference Manual", B. Liskov et al., TR-400, MIT/LCS,
	1987].

	["Guardians and Actions: Linguistic Support for Robust,
	Distributed Programs", B. Liskov <liskov@lcs.mit.edu> et al,
	TOPLAS 5(3):381-404 (1983)].

	(1995-12-28)

Ariel

	<language> An {array}-oriented language for the {CDC 6400}.

	["Ariel Reference Manual", P. Devel, TR 22, CC UC Berkeley,
	Apr 1968].

	["A New Survey of the Ariel Programming Language", P. Deuel,
	TR 4, Ariel Consortium, UC Berkeley, June 1972].

	[Deuel or Devel?]

	(1995-12-29)

ARI Service

	<company> The trading name of the remnants of {AST Research,
	Inc.}.  ARI Services is a wholly owned subsidiary of {Samsung
	Electronics Co. Ltd.}, of Seoul, Korea.  They no longer
	manufacture or distribute computer hardware, but they continue
	to provide worldwide technical and service support to owners
	of systems that they manufactured.

	{AST Computers, LLC} is a separate company.

	Headquarters: 16225 Alton Parkway, POB 57005, Irvine,
	California 92619-7005, USA.

	{(http://ari-service.com/)}.

	(2000-03-28)

ARITH-MATIC

	<language> An extension of {Grace Hopper}'s {A-2} programming
	language, developed in about 1955.  ARITH-MATIC was originally
	known as A-3, but was renamed by the marketing department of
	{Remington Rand UNIVAC}.

	{(http://cispom.boisestate.edu/cis221emaxson/hophtm.htm)}.

	[How was A-2 extended?]

	(2001-01-27)

Arithmetic and Logic Unit

	<processor> (ALU or "mill") The part of the {central
	processing unit} which performs operations such as addition,
	subtraction and multiplication of integers and {bit-wise}
	{AND}, {OR}, {NOT}, {XOR} and other {Boolean} operations.  The
	CPU's instruction decode logic determines which particular
	operation the ALU should perform, the source of the {operands}
	and the destination of the result.

	The width in {bits} of the words which the ALU handles is
	usually the same as that quoted for the processor as a whole
	whereas its external busses may be narrower.  {Floating-point}
	operations are usually done by a separate "{floating-point
	unit}".  Some processors use the ALU for address calculations
	(e.g. incrementing the {program counter}), others have
	separate logic for this.

	(1995-03-24)

arithmetic mean

	<mathematics> The {mean} of a list of N numbers calculated by
	dividing their sum by N.  The arithmetic mean is appropriate
	for sets of numbers that are added together or that form an
	{arithmetic series}.  If all the numbers in the list were
	changed to their arithmetic mean then their total would stay
	the same.

	For sets of numbers that are multiplied together, the
	{geometric mean} is more appropriate.

	(2007-03-20)

arity

	<programming> The number of {arguments} a {function} or
	{operator} takes.  In some languages functions may have
	variable arity which sometimes means their last or only
	argument is actually a list of arguments.

	(1997-07-21)

arj

	<tool, file format> An archive format for the {IBM PC}.  ARJ
	files are handled by the ARJ program, created by the American
	programmer Robert Jung.

	[Available from?  Compare with PKZIP?]

	(1996-11-03)

Arjuna

	<language> An {object-oriented programming} system developed
	by a team led by Professor Santosh Shrivastava at the
	{University of Newcastle}, implemented entirely in {C++}.
	Arjuna provides a set of tools for the construction of
	{fault-tolerant} {distributed} applications.  It exploits
	features found in most object-oriented languages (such as
	{inheritance}) and only requires a limited set of system
	capabilities commonly found in conventional {operating
	systems}.  Arjuna provides the programmer with {classes} that
	implement {atomic transactions}, {object level recovery},
	{concurrency} control and {persistence}.  The system is
	{portable}, modular and flexible; the system software has been
	available via FTP since 1992.

	{(http://arjuna.ncl.ac.uk/)}.

	(1995-03-06)

ARL

	{ASSET Reuse Library}

ARM

	1. <processor> {Advanced RISC Machine}.

	Originally {Acorn} RISC Machine.

	2. <company> {Advanced RISC Machines} Ltd.

	3. <publication> ["The Annotated C++ Reference Manual",
	Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley,
	1990].

	4. <hardware> {Active Reconfiguring Message}.

	(1997-10-03)

ARM610

	<processor> A 32-bit {RISC} {microprocessor} based on the
	{ARM6} processor core designed by {Advanced RISC Machines}
	Ltd.

	The ARM610 is the successor to the {ARM3} processor and is
	produced by {VLSI Technology Inc}.  It consumes 500mW at 33MHz
	with a 5V supply.

	(1995-12-29)

ARM7

	<processor> A {RISC} {microprocessor} architecture from
	{Advanced RISC Machines} Ltd. (ARM).  Building upon the {ARM6}
	family, the goal of the ARM7 design was to offer higher levels
	of raw compute performance at even lower levels of power
	consumption.  The ARM7 architecture is now (Dec 1994) the most
	powerful low voltage {RISC} processor available on the market.

	The ARM7 offers several architectural extensions which address
	specific market needs, encompassing fast multiply and
	innovative embedded {ICE} support.  Software development tools
	are available.

	The ARM7 architecture is made up of a core CPU plus a range of
	system peripherals which can be added to a CPU core to give a
	complete system on a chip, e.g. 4K or 8K {cache}, {Memory
	Management Unit}, {Write Buffer}, {coprocessor} interface,
	{ICEbreaker} embedded {ICE} support and {JTAG} {boundary
	scan}.  The {ARM710} {microprocessor} is built around the ARM7
	core.

	{(http://systemv.com/armltd/arm7.html)}.

	(1995-01-05)

ARM710

	<processor> A 32-bit {RISC} {microprocessor} based on the
	{ARM7} processor core designed by {Advanced RISC Machines}
	Ltd.  The A710 is the successor to the {ARM610} processor.  It
	was released in July 1994 by {VLSI Technology Inc}.

	The ARM710 can run at 40MHz (fastest sample 55MHz) dissipating
	500mW with a 5V supply or 25MHz with 3.3V supply.  It has an 8
	kilobyte on-chip {cache}, {memory management unit} and {write
	buffer}.

	The ARM700 and ARM710 processors represent a significant
	improvement over the {ARM610} processors.  They have a higher
	maximum clock speed and a number of architectural improvements
	such as double the size of internal cache, this means that
	more of any process can be executed internally without
	accessing the (relatively) slow external memory.  Other
	improvements are an improved {write buffer} and an enlarged
	{Translation Lookaside Buffer} in the {MMU}.  All of these
	improvements increase the performance of the system and
	deliver more real performance than a simple comparison of
	clock speeds would indicate.

	The ARM710 has been optimised for integer performance.  The
	FPA11 {floating point} {coprocessor} has a peak throughput of
	up to 5 {MFLOPS} and achieves an average throughput in excess
	of 3 MFLOPS for a range of calculations.

	(1995-04-21)

ARM7500

	<processor> An {ARM7} core with I/O and {VIDC20} all on one
	{integrated circuit}.

	(1994-09-23)

ARM8

	<processor> A {RISC} {microprocessor} {core} designed by
	{Advanced RISC Machines} Ltd. with 50000 {transistors}.  The
	design of the ARM8 is not yet public but it is not
	{superscalar}.  The ARM8 will form the core of the {ARM800}
	{microprocessor} {integrated circuit}.

	(1995-03-03)

ARM800

	<processor> A {microprocessor} based on the {ARM8} processor
	core designed by {Advanced RISC Machines} Ltd.  Planned
	features include a 60-100Mhz {clock rate}; 0.35-0.4 micron
	silicon fabrication; an improvement on the {ARM7}'s 1.4
	cycle/instruction; a 16 Kbyte {cache}.

	Some estimates were 100 MIPS and 120 Kdhrystones at 70Mhz
	(twice the {ARM700}).  Samples of the ARM800 are expected to
	be available in late 1995.

	It may run on a voltage below 3.3V.

	{Digital Semiconductor}'s Hudson fab is 0.35 micron and they
	have announced a licensing deal for the ARM architecture (see
	{StrongARM}).

	(1995-02-07)

ARM Ltd

	{Advanced RISC Machines Ltd.}

ARMM

	{Automated Retroactive Minimal Moderation}

armour-plated

	{bulletproof}

ARP

	{Address Resolution Protocol}

ARPA

	{Defense Advanced Research Projects Agency}

ARPANET

	{Advanced Research Projects Agency Network}

ARQ

	{Automatic Repeat Request}

array

	1. <programming> A collection of identically typed data items
	distinguished by their indices (or "subscripts").  The number
	of dimensions an array can have depends on the language but is
	usually unlimited.

	An array is a kind of {aggregate} data type.  A single
	ordinary variable (a "{scalar}") could be considered as a
	zero-dimensional array.  A one-dimensional array is also known
	as a "{vector}".

	A reference to an array element is written something like
	A[i,j,k] where A is the array name and i, j and k are the
	indices.  The {C} language is peculiar in that each index is
	written in separate brackets, e.g. A[i][j][k].  This expresses
	the fact that, in C, an N-dimensional array is actually a
	vector, each of whose elements is an N-1 dimensional array.

	Elements of an array are usually stored contiguously.
	Languages differ as to whether the leftmost or rightmost index
	varies most rapidly, i.e. whether each row is stored
	contiguously or each column (for a 2D array).

	Arrays are appropriate for storing data which must be accessed
	in an unpredictable order, in contrast to {lists} which are
	best when accessed sequentially.  Array indices are
	{integers}, usually {natural numbers}, whereas the elements of
	an {associative array} are identified by strings.

	2. <architecture> A {processor array}, not to be confused with
	an {array processor}.

	(2007-10-12)

array processor

	<processor> (Or "vector processor") A {computer}, or extension
	to its {arithmetic unit}, that is capable of performing
	simultaneous computations on elements of an {array} or table
	of data in some number of dimensions.

	The {IBM AltiVec} (the "Velocity Engine" used in the {Apple
	G4} computers) is a vector processor.

	Common uses for array processors include analysis of fluid
	dynamics and rotation of {3d} objects, as well as data
	retrieval, in which elements of a {database} are scanned
	simultaneously.  Array processors are very rare now (1998).

	{Array presentation
	(http://cs.njit.edu/leon/105/c5/index.htm)}.

	(2003-09-11)

Array Processor Assembly Language

	<language> (APAL) The {assembly language} for the {DAP}
	parallel computer.

	(1994-11-28)

Array Theory

	<theory> A theory developed by Trenchard More Jr. and used as
	the basis for the {NIAL} language.

	Papers are available from the IBM Cambridge Scientific Center,
	Cambridge MA.

	(1995-01-25)

arrow key

	<hardware> One of four keys on a {keyboard} marked with arrows
	pointing up, down, left and right.  The arrow keys are used
	for such things as moving the {cursor} in a text document, for
	moving the {input focus} between the fields of a form or
	sometimes for scrolling a picture.

	(1998-06-26)

ART

	<language> A {real-time} {functional language}.  It timestamps
	each data value when it was created.

	["Applicative Real-Time Programming", M. Broy, PROC IFIP 1983,
	N-H].

	(1996-01-15)

Artemis microkernel

	<operating system> A {microkernel} currently under development
	by Dave Hudson <dave@humbug.demon.co.uk>, scheduled for
	release under {GPL} in May 1995.  It is targeted at
	{embedded} applications on {Intel 80386}, {Intel 486} and
	{Pentium} based systems.

	(1995-03-29)

Artifex

	<programming, tool> A {CASE} environment from {ARTIS} of Turin
	for the development of large {event-driven} distributed
	systems.  It has code-generation and rapid prototyping
	features.

	(1996-01-24)

artificial intelligence

	<artificial intelligence> (AI) The subfield of computer
	science concerned with the concepts and methods of {symbolic
	inference} by computer and symbolic {knowledge representation}
	for use in making inferences.  AI can be seen as an attempt to
	model aspects of human thought on computers.  It is also
	sometimes defined as trying to solve by computer any problem
	that a human can solve faster.  The term was coined by
	Stanford Professor {John McCarthy}, a leading AI researcher.

	Examples of AI problems are {computer vision} (building a
	system that can understand images as well as a human) and
	{natural language processing} (building a system that can
	understand and speak a human language as well as a human).
	These may appear to be modular, but all attempts so far (1993)
	to solve them have foundered on the amount of context
	information and "intelligence" they seem to require.

	The term is often used as a selling point, e.g. to describe
	programming that drives the behaviour of computer characters
	in a game.  This is often no more intelligent than "Kill any
	humans you see; keep walking; avoid solid objects; duck if a
	human with a gun can see you".

	See also {AI-complete}, {neats vs. scruffies}, {neural
	network}, {genetic programming}, {fuzzy computing},
	{artificial life}.

	{ACM SIGART (http://sigart.acm.org/)}.  {U Cal Davis
	(http://phobos.cs.ucdavis.edu:8001)}.  {CMU Artificial
	Intelligence Repository
	(http://cs.cmu.edu/Web/Groups/AI/html/repository.html)}.

	(2002-01-19)

Artificial Intelligence Lab

	{MIT AI Lab}

Artificial Life

	<algorithm, application> (a-life) The study of synthetic
	systems which behave like natural living systems in some way.
	Artificial Life complements the traditional biological
	sciences concerned with the analysis of living organisms by
	attempting to create lifelike behaviours within computers and
	other artificial media.  Artificial Life can contribute to
	theoretical biology by modelling forms of life other than
	those which exist in nature.  It has applications in
	environmental and financial modelling and network
	communications.

	There are some interesting implementations of artificial life
	using strangely shaped blocks.  A video, probably by the
	company Artificial Creatures who build insect-like robots in
	Cambridge, MA (USA), has several mechanical implementations of
	artificial life forms.

	See also {evolutionary computing}, {Life}.

	[Christopher G. Langton (Ed.), "Artificial Life", Proceedings
	Volume VI, Santa Fe Institute Studies in the Sciences of
	Complexity.  Addison-Wesley, 1989].

	{Yahoo! (http://yahoo.com/Science/Artificial_Life/)}.

	{Santa Fe Institute (http://alife.santafe.edu/)}.

	{The Avida Group
	(http://krl.caltech.edu/avida/Avida.html)}.

	(1995-02-21)

artificial neural network

	<artificial intelligence> (ANN, commonly just "neural network"
	or "neural net") A network of many very simple processors
	("units" or "neurons"), each possibly having a (small amount
	of) local memory.  The units are connected by unidirectional
	communication channels ("connections"), which carry numeric
	(as opposed to symbolic) data.  The units operate only on
	their local data and on the inputs they receive via the
	connections.

	A neural network is a processing device, either an
	{algorithm}, or actual hardware, whose design was inspired by
	the design and functioning of animal brains and components
	thereof.

	Most neural networks have some sort of "training" rule whereby
	the weights of connections are adjusted on the basis of
	presented patterns.  In other words, neural networks "learn"
	from examples, just like children learn to recognise dogs from
	examples of dogs, and exhibit some structural capability for
	generalisation.

	Neurons are often elementary non-linear signal processors (in
	the limit they are simple threshold discriminators).  Another
	feature of NNs which distinguishes them from other computing
	devices is a high degree of interconnection which allows a
	high degree of parallelism.  Further, there is no idle memory
	containing data and programs, but rather each neuron is
	pre-programmed and continuously active.

	The term "neural net" should logically, but in common usage
	never does, also include biological neural networks, whose
	elementary structures are far more complicated than the
	mathematical models used for ANNs.

	See {Aspirin}, {Hopfield network}, {McCulloch-Pitts neuron}.

	{Usenet} newsgroup: {news:comp.ai.neural-nets}.

	(1997-10-13)

Artisoft, Inc.

	<company, networking> A company, known for the {LANtastic}
	range of networking products.  Originally providers of
	proprietary, {peer-to-peer} network hardware and software for
	small installations, Artisoft now also sells {Ethernet} and
	{Novell}-compatible hardware and software.

	{(http://artisoft.com/)}.

	Telephone: +1 (800) 809 1257.

	Address: Tucson, Arizona, USA; Phoenix, Arizona, USA.

	(1995-04-24)

Artistic license

	<legal> The {open source license} applicable to {Perl}.

	(1999-12-29)

ARTSPEAK

	<language> An early simple language for {plotter} graphics.

	["The Art of Programming, ARTSPEAK", Henry Mullish, Courant
	Inst (Nov 1974)].

	(1995-02-21)

AS

	1. <networking> {Autonomous System}.

	2. <storage> {Address Strobe}.

as

	<networking> The {country code} for American Samoa.

	(1999-01-27)

as31

	<tool, programming> An {8031}/{8051} {assembler} by Ken
	Stauffer <stauffer@cpsc.ucalgary.ca> and Theo Deraadt which
	produces a variety of {object code} output formats.  The
	distribution includes an {assembler}, {yacc} {parser}, and
	documentation.  as31 runs on {Sun-3}, {Sun-4}, {SunOS 4.0},
	{Tandy 6000}, and {Xenix}.

	Latest version: 1, as of 1990-01-26.

	{as31 Home (http://pjrc.com/tech/8051/#as31_assembler)}.

	(2002-05-07)

AS400

	{AS/400}

AS/400

	<computer> An {IBM} {minicomputer} for small business and
	departmental users, released in 1988 and still in production
	in October 1998.

	Features include a menu-driven interface, {multi-user}
	support, terminals that are (in the grand {IBM} tradition)
	incompatible with anything else including the {IBM 3270}
	series, and an extensive library-based {operating system}.

	The machine survives because its {API} layer allows the
	{operating system} and {application programs} to take
	advantage of advances in hardware without recompilation and
	which means that a complete system that costs $9000 runs the
	exact same operating system and software as a $2 million
	system.  There is a 64-bit {RISC} processor operating system
	implementation.

	Programming languages include {RPG}, {assembly language}, {C},
	{COBOL}, {SQL}, {BASIC}, and {REXX}.  Several {CASE} tools are
	available: {Synon}, {AS/SET}, {Lansa}.

	{(http://as400.ibm.com/)}.

	(1999-07-26)

ASA

	{Adaptive Simulated Annealing}

asap

	<chat> As soon as possible.

	(1999-10-13)

asbestos

	<jargon> Used as a modifier to anything intended to protect
	one from {flames}; also in other highly {flame}-suggestive
	usages.  E.g., {asbestos longjohns}, {asbestos cork award}.

	[{Jargon File}]

	(1996-02-06)

asbestos cork award

	<humour> Once, long ago at {MIT}, there was a {flamer} so
	consistently obnoxious that another hacker designed, had made,
	and distributed posters announcing that said flamer had been
	nominated for the "asbestos cork award".  (Any reader in doubt
	as to the intended application of the cork should consult the
	etymology under {flame}.)  Since then, it is agreed that only
	a select few have risen to the heights of bombast required to
	earn this dubious dignity - but there is no agreement on
	*which* few.

	[{Jargon File}]

	(1996-02-06)

asbestos longjohns

	<humour> Notional garments donned by {Usenet} posters just
	before emitting a remark they expect will elicit {flamage}.
	This is the most common of the {asbestos} coinages.  Also
	"asbestos underwear", "asbestos overcoat", etc.

	[{Jargon File}]

	(1997-07-04)

ascender

	<text> A lowercase letter that extends above the "x-height"
	(the height of the letter "x"), such as "d", "t", or "h".
	Also used to denote the part of the letter extending above the
	x-height.

	Compare {descender}.

	(1998-03-27)

ASCI

	<spelling> Did you mean {ASCII}?

ASCII

	{American Standard Code for Information Interchange}

ASCII art

	<graphics> (Or "character graphics", "ASCII graphics") The
	fine art of drawing diagrams using the {ASCII} character set
	(mainly "|-/\+").

	See also {boxology}.  Here is a serious example:

	   o----)||(--+--|<----+   +---------o + D O
	     L  )||(  |        |   |             C U
	   A I  )||(  +-->|-+  |   +-\/\/-+--o -   T
	   C N  )||(        |  |   |      |        P
	     E  )||(  +-->|-+--)---+--)|--+-o      U
	        )||(  |        |          | GND    T
	   o----)||(--+--|<----+----------+

	   A power supply consisting of a full wave rectifier
	   circuit feeding a capacitor input filter circuit

	                         Figure 1.

	And here are some very silly examples:

	   |\/\/\/|     ____/|              ___    |\_/|    ___
	   |      |     \ o.O|   ACK!      /   \_  |` '|  _/   \
	   |      |      =(_)=  THPHTH!   /      \/     \/      \
	   | (o)(o)        U             /                       \
	   C      _)  (__)                \/\/\/\  _____  /\/\/\/
	   | ,___|    (oo)                       \/     \/
	   |   /       \/-------\         U                  (__)
	  /____\        ||     | \    /---V  `v'-            oo )
	 /      \       ||---W||  *  * |--|   || |`.         |_/\

			//-o-\\
		 ____---=======---____
	     ====___\   /.. ..\   /___====      Klingons rule OK!
	   //        ---\__O__/---        \\
	   \_\                           /_/

					    _____
				    __...---'-----`---...__
			       _===============================
	  ,----------------._/'      `---..._______...---'
	  (_______________||_) . .  ,--'
	      /    /.---'         `/
	     '--------_- - - - - _/
		       `--------'

				   Figure 2.

	There is an important subgenre of ASCII art that puns on the
	standard character names in the fashion of a rebus.

	 +--------------------------------------------------------+
	 |      ^^^^^^^^^^^^                                      |
	 | ^^^^^^^^^^^            ^^^^^^^^^                       |
	 |                 ^^^^^^^^^^^^^            ^^^^^^^^^^^^^ |
	 |        ^^^^^^^         B       ^^^^^^^^^               |
	 |  ^^^^^^^^^          ^^^            ^^^^^^^^^^^^^^      |
	 +--------------------------------------------------------+
		     "A Bee in the Carrot Patch"

	                       Figure 3.

	Within humorous ASCII art, there is, for some reason, an
	entire flourishing subgenre of pictures of silly cows.  One is
	shown in Figure 2; here are three more:

		  (__)              (__)              (__)
		  (\/)              ($$)              (**)
	   /-------\/        /-------\/        /-------\/
	  / | 666 ||        / |=====||        / |     ||
	 *  ||----||       *  ||----||       *  ||----||
	    ~~    ~~          ~~    ~~          ~~    ~~
	  Satanic cow    This cow is a Yuppie   Cow in love

				  Figure 4.

	{(http://gagme.wwa.com/~boba/scarecrow.html)}.

	(1996-02-06)

ASCIIbetical order

	<jargon, programming> /as'kee-be'-t*-kl or'dr/ Used to
	indicate that data is sorted in {ASCII} collated order rather
	than alphabetical order.  The main difference is that, in
	ASCII, all the upper case letters come before any of the lower
	case letters so, e.g., "Z" comes before "a".

	[{Jargon File}]

	(1999-04-08)

ASCIIbonics

	<chat> (From {ASCII} and Ebonics) A style of text
	communication in English which is most common on {talk}
	systems such as {irc}.  Its notable characteristics are:

	Typing all in lowercase (and occasionally all in uppercase).

	Copious use of abbreviations of the sort "u" for "you" "1" for
	"one" (and therefore "some1" for "someone", "ne1" for
	"anyone"), "2" for "to", "r" for "are", etc.

	A general lack of punctuation, except for strings of question
	marks and exclamation marks.

	Common use of the idiom "m or f?", meant to elicit a statement
	of the listener's gender.

	Typical extended discourse in ASCIIbonics: "hey wasup ne1 want
	2 {cyber}?"  "m or f?"

	ASCIIbonics is similar to the way {B1FF} talked, although B1FF
	used more punctuation (lots more), and used all uppercase,
	rather than all lowercase.  What's more, B1FF was only
	interested in {warez}, and so never asked "m or f?".

	It has been widely observed that some of the purest examples
	of ASCIIbonics come from non-native speakers of English.

	The phenomenon of ASCIIbonics predates by several years the
	use of the word "ASCIIbonics", as the word could only have
	been coined in or after late 1996, when "Ebonics" was first
	used in the US media to denote the US English dialects known
	in the linguistic literature as "Black Vernacular English".

	(1997-06-21)

ASCII character table

	<character> The following list gives the {octal}, decimal and
	{hexadecimal} {ASCII} codes for each character along with its
	printed representation and common name(s).

	  Oct Dec Hex  Name
	  000   0 0x00 NUL
	  001   1 0x01 SOH, Control-A
	  002   2 0x02 STX, Control-B
	  003   3 0x03 ETX, Control-C
	  004   4 0x04 EOT, Control-D
	  005   5 0x05 ENQ, Control-E
	  006   6 0x06 ACK, Control-F
	  007   7 0x07 BEL, Control-G
	  010   8 0x08 BS, backspace, Control-H
	  011   9 0x09 HT, tab, Control-I
	  012  10 0x0a LF, line feed, newline, Control-J
	  013  11 0x0b VT, Control-K
	  014  12 0x0c FF, form feed, NP, Control-L
	  015  13 0x0d CR, carriage return, Control-M
	  016  14 0x0e SO, Control-N
	  017  15 0x0f SI, Control-O
	  020  16 0x10 DLE, Control-P
	  021  17 0x11 DC1, XON, Control-Q
	  022  18 0x12 DC2, Control-R
	  023  19 0x13 DC3, XOFF, Control-S
	  024  20 0x14 DC4, Control-T
	  025  21 0x15 NAK, Control-U
	  026  22 0x16 SYN, Control-V
	  027  23 0x17 ETB, Control-W
	  030  24 0x18 CAN, Control-X
	  031  25 0x19 EM, Control-Y
	  032  26 0x1a SUB, Control-Z
	  033  27 0x1b ESC, escape
	  034  28 0x1c FS
	  035  29 0x1d GS
	  036  30 0x1e RS
	  037  31 0x1f US
	  040  32 0x20 space
	  041  33 0x21 !, exclamation mark
	  042  34 0x22 ", double quote
	  043  35 0x23 #, hash
	  044  36 0x24 $, dollar
	  045  37 0x25 %, percent
	  046  38 0x26 &, ampersand
	  047  39 0x27 ', quote
	  050  40 0x28 (, open parenthesis
	  051  41 0x29 ), close parenthesis
	  052  42 0x2a *, asterisk
	  053  43 0x2b +, plus
	  054  44 0x2c ,, comma
	  055  45 0x2d -, minus
	  056  46 0x2e ., full stop
	  057  47 0x2f /, oblique stroke
	  060  48 0x30 0, zero
	  061  49 0x31 1
	  062  50 0x32 2
	  063  51 0x33 3
	  064  52 0x34 4
	  065  53 0x35 5
	  066  54 0x36 6
	  067  55 0x37 7
	  070  56 0x38 8
	  071  57 0x39 9
	  072  58 0x3a :, colon
	  073  59 0x3b ;, semicolon
	  074  60 0x3c <, less than
	  075  61 0x3d =, equals
	  076  62 0x3e >, greater than
	  077  63 0x3f ?, question mark
	 0100  64 0x40 @, commercial at
	 0101  65 0x41 A
	 0102  66 0x42 B
	 0103  67 0x43 C
	 0104  68 0x44 D
	 0105  69 0x45 E
	 0106  70 0x46 F
	 0107  71 0x47 G
	 0110  72 0x48 H
	 0111  73 0x49 I
	 0112  74 0x4a J
	 0113  75 0x4b K
	 0114  76 0x4c L
	 0115  77 0x4d M
	 0116  78 0x4e N
	 0117  79 0x4f O
	 0120  80 0x50 P
	 0121  81 0x51 Q
	 0122  82 0x52 R
	 0123  83 0x53 S
	 0124  84 0x54 T
	 0125  85 0x55 U
	 0126  86 0x56 V
	 0127  87 0x57 W
	 0130  88 0x58 X
	 0131  89 0x59 Y
	 0132  90 0x5a Z
	 0133  91 0x5b [, open square bracket
	 0134  92 0x5c \, backslash
	 0135  93 0x5d ], close square bracket
	 0136  94 0x5e ^, caret
	 0137  95 0x5f _, underscore
	 0140  96 0x60 `, back quote
	 0141  97 0x61 a
	 0142  98 0x62 b
	 0143  99 0x63 c
	 0144 100 0x64 d
	 0145 101 0x65 e
	 0146 102 0x66 f
	 0147 103 0x67 g
	 0150 104 0x68 h
	 0151 105 0x69 i
	 0152 106 0x6a j
	 0153 107 0x6b k
	 0154 108 0x6c l
	 0155 109 0x6d m
	 0156 110 0x6e n
	 0157 111 0x6f o
	 0160 112 0x70 p
	 0161 113 0x71 q
	 0162 114 0x72 r
	 0163 115 0x73 s
	 0164 116 0x74 t
	 0165 117 0x75 u
	 0166 118 0x76 v
	 0167 119 0x77 w
	 0170 120 0x78 x
	 0171 121 0x79 y
	 0172 122 0x7a z
	 0173 123 0x7b {, open curly bracket
	 0174 124 0x7c |, vertical bar
	 0175 125 0x7d }, close curly bracket
	 0176 126 0x7e ~, tilde
	 0177 127 0x7f delete

	See {NUL}, {SOH}, {STX}, {ETX}, {ETX}, {EOT}, {ENQ}, {ACK},
	{BEL}, {BS}, {HT}, {line feed}, {VT}, {FF}, {CR}, {SO}, {SI},
	{DLE}, {XON}, {DC1}, {DC2}, {DC3}, {DC4}, {NAK}, {SYN}, {ETB},
	{CAN}, {EM}, {SUB}, {ESC}, {FS}, {GS}, {RS}, {US}, {space},
	{exclamation mark}, {double quote}, {hash}, {dollar},
	{percent}, {ampersand}, {quote}, {open parenthesis}, {close
	parenthesis}, {asterisk}, {plus}, {comma}, {minus}, {full
	stop}, {oblique stroke}, {colon}, {semicolon}, {less than},
	{equals}, {greater than}, {question mark}, {commercial at},
	{open square bracket}, {backslash}, {close square bracket},
	{caret}, {underscore}, {back quote}, {open curly bracket},
	{vertical bar}, {close curly bracket}, {tilde}, {delete}.

	(1996-06-24)

ASCII graphics

	{ASCII art}

ASDIMPL

	{ASDO IMPlementation Language}

ASDL

	{Abstract-Type and Scheme-Definition Language}

ASDO IMPlementation Language

	<language> (ASDIMPL) A {C}-like language, run on {Burroughs}'
	{mainframes} in the early 1980s, and {cross-compile}d to
	{x86}-based {embedded processors}.

	(1996-02-06)

ASE

	1. <programming> {Advanced Software Environment}.

	2. <networking> {Application Service Element}.

	3. <database> {Adaptive Server Enterprise}.

A* search

	<algorithm> A {graph} search {algorithm}.  A* is guaranteed to
	find a minimal solution path before any other solution paths,
	if a solution exists, in other words, it is an "{admissible}"
	search algorithm.  Each path is assigned a value based on the
	cost of the path (e.g. its length) and an (under)estimate of
	the cost of completing the path, i.e. the cost of a path from
	the end of the current path to a solution.

	(1995-03-31)

ASF

	1. <language> {Algebraic Specification Language}.

	2. <body> {Analytical Solutions Forum}.

ash

	<tool> A {Bourne Shell} clone by Kenneth Almquist.  It works
	pretty well.  For running scripts, it is sometimes better and
	sometimes worse than {Bash}.

	Ash runs under {386BSD}, {NetBSD}, {FreeBSD}, and {Linux}.

	{FTP Linux version
	(ftp://ftp.win.tue.nl/pub/linux/ports/ash-linux-0.1.tar.gz)}.

	(1995-07-20)

Ashmedai

	<tool> A {symbolic mathematics} package by Michael Levine
	<levine@cpwsca.psc.edu> that influenced {SMP} and {FORM}.
	There are versions for the {Univac 1108} and {VAX}/{VMS}.

	(1995-03-21)

Ashton-Tate Corporation

	<company> The original vendor of {dBASE} and joint developers
	of {EEMS}.  Ashton-Tate was founded by Charles Tate and Ashton
	was his pet parrot's name.  The parrot lived in the lobby of
	the company's LA headquarters.

	In the early 1990s Ashton-Tate was taken over by Borland
	International, Inc., who later became {Borland Software
	Corporation}.

	[Dates?  Address?]

	(2004-12-05)

ASIC

	{Application-Specific Integrated Circuit}

Asiliant Technologies

	<company> A company founded by a group of former {Chips and
	Technologies} employees with experience with the CHIPS
	products, suppliers, distributors and customers.  Asiliant
	offer C&T's {industry standard} {Flat Panel} and {CRT
	controller} family.

	(2006-09-19)

A Simulation Process-Oriented Language

	<language, simulation> (ASPOL) An {ALGOL}-like language for
	computer {simulation}.

	["Process and Event Control in ASPOL", M.H. MacDougall, Proc
	Symp on Simulation of Computer Systems, NBS (Aug 1975)].

	(1996-03-25)

ASIS

	1. {Application Software Installation Server}.

	2. <language> {Ada Semantic Interface Specification}.

ASK

	{Amplitude Shift Keying}

ASL

	1. <language> {Algebraic Specification Language}.

	2. <chat> A rather gruff way of asking someone their age, sex,
	and location.

	(2008-01-21)

ASL+

	<language, specification> An {algebraic specification
	language} by David Aspinall of the {University of Edinburgh}.
	ASL+ has rules for proving the satisfaction of specifications.
	It can also be viewed as a {type theory} with {subtyping},
	featuring {contravariant refinement} for {Pi-abstracted}
	specifications and a notion of {stratified equality} for
	{higher-order objects}.

	(1994-09-14)

As Low As Reasonably Practicable

	<legal> (ALARP) A term from {UK health and safety
	(http://hse.gov.uk/risk/theory/alarpglance.htm)} law that
	mandates reducting the risk to workers to the point where the
	cost of further reduction is grossly disproportionate to the
	benefit.

	(2010-10-05)

ASM

	{assembly language}

ASME

	{American Society of Mechanical Engineers}

ASN

	{Autonomous System Number}

ASN.1

	{Abstract Syntax Notation 1}

ASP

	1. <World-Wide Web> {Active Server Pages}.

	2. <networking> {application service provider}.

	3. <language> A {query language}(?).

	[Sammet 1969, p.702].

	4. <processor> {Attached Support Processor}.

	(2000-07-08)

ASPECT

	<tool, programming> An {IPSE} developed by an {Alvey} project,
	using {Z} to specify the {object-management system} and tool
	interface.

	(1996-03-25)

ASpecT

	<language> Algebraic specification of {abstract data types}.
	A {strict} {functional language} that compiles to {C}.

	Versions of ASpecT are available for {Sun}, {Ultrix}, {NeXT},
	{Macintosh}, {OS/2} 2.0, {Linux}, {RS/6000}, {Atari}, {Amiga}.

	{(ftp://wowbagger.uni-bremen.de/pub/programming/languages)}.

	(1996-03-25)

aspect

	<programming> In {aspect-oriented programming}, a modular unit
	of control over {emergent entities}.

	(1999-08-31)

aspect-oriented programming

	<programming> (AOP) A style of programming that attempts to
	abstract out features common to many parts of the code beyond
	simple functional modules and thereby improve the {quality} of
	software.

	Mechanisms for defining and composing {abstractions} are
	essential elements of programming languages.  The design style
	supported by the abstraction mechanisms of most current
	languages is one of breaking a system down into parameterised
	components that can be called upon to perform a function.

	But many systems have properties that don't necessarily align
	with the system's functional components, such as failure
	handling, {persistence}, communication, replication,
	coordination, {memory management}, or {real-time} constraints,
	and tend to cut across groups of functional components.

	While they can be thought about and analysed relatively
	separately from the basic functionality, programming them
	using current {component-oriented languages} tends to result
	in these aspects being spread throughout the code.  The
	{source code} becomes a tangled mess of instructions for
	different purposes.

	This "tangling" phenomenon is at the heart of much needless
	complexity in existing software systems.  A number of
	researchers have begun working on approaches to this problem
	that allow programmers to express each of a system's aspects
	of concern in a separate and natural form, and then
	automatically combine those separate descriptions into a final
	executable form.  These approaches have been called
	aspect-oriented programming.

	{Xerox AOP homepage
	(http://parc.xerox.com/csl/projects/aop/)}.

	{AspectJ (http://AspectJ.org/)}.

	{ECOOPP'99 AOP workshop
	(http://wwwtrese.cs.utwente.nl/aop-ecoop99/)}.

	(1999-11-21)

aspect ratio

	<graphics> The ratio of width to height of a {pixel}, {image},
	or {display screen}.  Square pixels (1:1) are considered
	preferable but displays are usually about 5:4.

	(1994-11-30)

ASPEN

	<language> A {toy language} for teaching {compiler}
	construction.

	["ASPEN Language Specifications", T.R. Wilcox, SIGPLAN Notices
	12(11):70-87, Nov 1977].

	(1994-11-30)

ASPI

	{Advanced SCSI Peripheral Interface}

ASPIK

	<language, specification> A multiple-style specification
	language.

	["Algebraic Specifications in an Integrated Software
	Development and Verification System", A. Voss, Diss, U
	Kaiserslautern, 1985].

	(1994-11-30)

Aspirin

	<language, tool> A {freeware} language from {MITRE
	Corporation} for the description of {neural networks}.  A
	compiler, bpmake, is included.  Aspirin is designed for use
	with the {MIGRAINES} interface.

	Version: 6.0, as of 1995-03-08.

	{(ftp://ftp.cognet.ucla.edu/alexis/)}.

	(1995-03-08)

ASPLE

	<language> A {toy language}.

	["A Sampler of Formal Definitions", M. Marcotty et al,
	Computing Surveys 8(2):191-276 (Feb 1976)].

	(1995-02-08)

ASPOL

	{A Simulation Process-Oriented Language}

ASQC

	{American Society for Quality Control}

ASR

	{Automatic Send Receive}

assembler

	<programming> A program which converts {assembly language}
	into {machine code}.

	(1996-03-25)

ASSEMBLY

	<language> An early system on the {IBM 702}.

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

	(1996-06-27)

assembly code

	{assembly language}

Assembly Language

	<language, robotics> (AL) A language for industrial {robots}
	developed at {Stanford University} in the 1970s.

	["The AL Language for an Intelligent Robot", T. Binford in
	Langages et Methods de Programation des Robots Industriels,
	pp. 73-88, IRIA Press 1979].

	["AL User's Manual", M.S. Mujtaba et al, Stanford AI Lab, Memo
	AIM-323 (Jan 1979)].

	(1994-11-24)

assembly language

	<language> (Or "assembly code") A symbolic representation of
	the {machine language} of a specific {processor}.  Assembly
	language is converted to {machine code} by an {assembler}.
	Usually, each line of assembly code produces one machine
	instruction, though the use of {macros} is common.

	Programming in assembly language is slow and error-prone but
	is the only way to squeeze every last bit of performance out
	of the hardware.

	{Filename extension}: .s ({Unix}), .asm ({CP/M} and others).

	See also {second generation language}.

	(1996-09-17)

Assembly Language Compiler

	<language> (ALC) An alternative name for {IBM 360} {assembly
	language}.

	Compare {BAL}.

	(1995-01-04)

Assembly Language for Multics

	<language> (ALM) The {assembly language} of the {GE-645} in
	which critical portions of the {Multics} {kernel} were
	written.

	(1994-11-24)

as sensible as a dictionary

	<humour> In Lewis Carroll's {Through the Looking Glass and what
	Alice found there
	(http://www.Germany.EU.net/books/carroll/alice.html)}, in the
	chapter {The Garden of Live Flowers
	(http://www.Germany.EU.net/books/carroll/alice_21.html#SEC24)},
	the Red Queen is talking to Alice about what she's been up to:

	"I only wanted to see what the garden was like, your Majesty -"

	"That's right," said the Queen, patting her on the head, which Alice
	didn't like at all, "though, when you say "garden" - I've seen
	gardens, compared with which this would be a wilderness."

	Alice didn't dare argue the point, but went on: "- and I thought I'd
	try and find my way to the top of that hill -"

	"When you say "hill"", the Queen interrupted, "I could show you hills,
	in comparison with which you'd call that a valley."

	"No, I shouldn't," said Alice, surprised into contradicting her at
	last: "a hill can't be a valley, you know.  That would be nonsense -"

	The Red Queen shook her head.  "You may call it "nonsense" if you
	like," she said, "but I've heard nonsense, compared with which that
	would be as sensible as a dictionary!"

	Alice curtseyed again, as she was a little afraid from the Queen's
	tone that she was a little offended: and they walked on in silence
	till they got to the top of the little hill.

	Thanks to Simon James for the text and to Sean Gugler for the
	URLs.

	(2014-06-22)

assertion

	<programming> 1. An expression which, if false, indicates an
	{error}.  Assertions are used for {debugging} by catching
	{can't happen} errors.

	2. In {logic programming}, a new {fact} or {rule} added to the
	database by the program at {run time}.  This is an
	{extralogical} or impure feature of logic programming
	languages.

	(1997-06-30)

ASSET

	{Asset Source for Software Engineering Technology}

asset management

	<business> The process whereby a large organisation collects
	and maintains a comprehensive list of the items it owns such
	as hardware and software.  This data is used in connection
	with the financial aspects of ownership such as calculating
	the total cost of ownership, depreciation, licensing,
	maintenance, and insurance.

	(1997-03-30)

Asset Source for Software Engineering Technology

	<project> (ASSET) A programme to promote software {reuse} by
	the US {DoD}.

	See also {ASSET Reuse Library}.

	(1996-08-19)

assigned numbers

	<standard> The {RFC} {STD 2} documenting the currently
	assigned values from several series of numbers used in network
	{protocol} implementations.  This RFC is updated periodically
	and, in any case, current information can be obtained from the
	{Internet Assigned Numbers Authority} (IANA).  If you are
	developing a protocol or application that will require the use
	of a link, {socket}, {port}, protocol, etc., you should
	contact the IANA to receive a number assignment.

	(1996-08-19)

assignment

	<programming> Storing the value of an expression in a
	{variable}.  This is commonly written in the form "v = e".  In
	{Algol} the assignment operator was ":=" (pronounced
	"becomes") to avoid mathematicians qualms about writing
	statements like x = x+1.

	Assignment is not allowed in {functional languages}, where an
	{identifier} always has the same value.

	See also {referential transparency}, {single assignment},
	{zero assignment}.

	(1996-08-19)

assignment problem

	<mathematics, algorithm> (Or "linear assignment") Any problem
	involving minimising the sum of C(a, b) over a set P of pairs
	(a, b) where a is an element of some set A and b is an element
	of set B, and C is some function, under constraints such as
	"each element of A must appear exactly once in P" or similarly
	for B, or both.

	For example, the a's could be workers and the b's projects.

	The problem is "linear" because the "cost function" C()
	depends only on the particular pairing (a, b) and is
	independent of all other pairings.

	{(http://forum.swarthmore.edu/epigone/comp.soft-sys.matlab/bringhyclu)}.
	{(http://soci.swt.edu/capps/prob.htm)}.
	{(http://mat.gsia.cmu.edu/GROUP95/0577.html)}.
	{(http://informs.org/Conf/WA96/TALKS/SB24.3.html)}.

	[Algorithms?]

	(1999-07-12)

Association Control Service Element

	<networking> (ACSE) The {OSI} method for establishing a call
	between two {application programs}.  ACSE checks the
	identities and contexts of the application entities, and could
	apply an {authentication} security check.

	Documents: {ITU} Rec. X.227 ({ISO} 8650), X.217 (ISO 8649)

	(1997-12-07)

Association for Computational Linguistics

	<body> (ACL) The international scientific and professional
	society for people working on problems involving {natural
	language} and computation.  Membership includes the ACL
	quarterly journal, "Computational Linguistics", reduced
	registration at most ACL-sponsored conferences, discounts on
	ACL-sponsored publications, and participation in ACL Special
	Interest Groups.  The ACL started in 1968; there are more
	than 2000 members worldwide.

	E-mail: <acl@aclweb.org>.

	{(http://cs.columbia.edu/~acl/)}.

	(1999-08-31)

Association for Computing

	<body> (ACM, before 1997 - "Association for Computing
	Machinery") The largest and oldest international scientific
	and educational computer society in the industry.  Founded in
	1947, only a year after the unveiling of {ENIAC}, ACM was
	established by mathematicians and electrical engineers to
	advance the science and application of {Information
	Technology}.  {John Mauchly}, co-inventor of the ENIAC, was
	one of ACM's founders.

	Since its inception ACM has provided its members and the world
	of computer science a forum for the sharing of knowledge on
	developments and achievements necessary to the fruitful
	interchange of ideas.

	ACM has 90,000 members - educators, researchers,
	practitioners, managers, and engineers - who drive the
	Association's major programs and services - publications,
	special interest groups, chapters, conferences, awards, and
	special activities.

	The ACM Press publishes journals (notably {CACM}), book
	series, conference proceedings, {CD-ROM}, {hypertext},
	{video}, and specialized publications such as curricula
	recommendations and self-assessment procedures.

	{(http://info.acm.org/)}.

	(1998-02-24)

Association for Computing Machinery

	{Association for Computing}

Association for Progressive Communications

	<body, philosophy> (APC) A world-wide organisation of
	like-minded computer networks providing a global
	communications network dedicated to the free and balanced flow
	of information.

	The APC defends and promotes non-commercial, productive online
	space for NGOs (Non-Governmental Organisations) and
	collaborates with like-minded organisations to ensure that the
	information and communication needs of civil society are
	considered in telecommunications, donor and investment policy.

	A few of APC's partner organisations include The {Institute
	for Global Communications} (USA), GreenNet (UK), Nicarao
	(Nicaragua) Enda-Tiers Monde (Senegal) and GlasNet (Ukraine).

	These organisations serve people working toward goals that
	include the prevention of warfare, elimination of militarism
	and poverty, protection of the environment, human rights,
	social and economic justice, participatory democracy,
	non-violent conflict resolution, and the promotion of
	sustainable development.

	{(http://apc.org/english/)}.

	E-mail: <apcadmin@apc.org>.

	(2000-10-08)

Association for SIMULA Users

	<body> See {SIMULA}.

	Address: Royal Institute of Technology, S-100 44 Stockholm,
	Sweden.

	[Details?]

	(1995-03-29)

Association Française des Utilisateurs d'Unix

	<body> (et des systèmes ouverts, AFUU) French Association of
	{Unix} Users.

	{(http://afuu.fr/)}.

	(1996-06-07)

Association of American Publishers

	<body, publication> <body> (AAP) A group engaged in
	standardisation efforts in document preparation.

	(2000-01-27)

Association of C and C++ Users

	<body> (ACCU) A community of people with an interest in the
	{C} family of programming languages: {K&R C}, {ANSI C}, and
	{C++}.  The community includes professional programmers, the
	suppliers of {compilers}, and those who are just interested in
	the languages.  ACCU members are using C and C++ on a wide
	range of platforms - {Unix}, {MS-DOS}, {OS/2}, {CP/M} - home
	computers, {IBM PCs}, {workstations}, and {super-computers}.
	Although the organisation is based in the UK, the membership
	is worldwide.  There are members in the US, mainland Europe,
	Russia, the Middle East, and Australia.

	E-mail: <info@accu.org>, <membership@accu.org>,
	<academic@accu.org> (Academic Liaison Officer).

	Address: The Membership Secretary, 64 Southfield Road, Oxford
	OX4 1PA, United Kingdom.

	(1996-12-02)

Association of Lisp Users

	<body> (ALU) A user group which aims to promote {Lisp}, help
	inform and educate Lisp users in general, and help represent
	Lisp users as a group to the vendors.  The ALU holds an annual
	conference and supports the formation of inter-vendor
	standards.  ALU has international membership and is
	incorporated in the US.

	{(http://cs.rochester.edu/u/miller/ALU/home.html)}.

	{Usenet} {newsgroups}: {news:comp.org.lisp-users}
	{news:comp.std.lisp}.

	Mailing list: <alu@ai.sri.com>.

	(1996-12-07)

associative array

	<programming> (Or "hash", "map", "dictionary") An {array}
	where the {indices} are not just {integers} but may be
	arbitrary strings.

	{awk} and its descendants (e.g. {Perl}) have associative
	arrays which are implemented using {hash coding} for faster
	look-up.

	(2007-10-02)

associative memory

	{content addressable memory}

Associative Memory Parallel Processing Language

	<language> (AMPPL-II) A language from the early 1970s.

	(1995-11-14)

associativity

	<programming> The property of an {operator} that says whether
	a sequence of three or more expressions combined by the
	operator will be evaluated from left to right (left
	associative) or right to left (right associative).  For
	example, in {Perl}, the {lazy and} operator && is left
	associative so in the expression:

	  $i >= 0 && $x[$i] >= 0 && $y[$x[$i]] == 0

	the left-most && is evaluated first, whereas = is right
	associative, so in

	  $a = $b = 42

	the right-most assignment is performed first.

	(2007-06-16)

AST

	<company> 1. {ARI Service}.

	2. {AST Computers, LLC}.

	(2000-03-21)

ASTAP

	{Advanced STatistical Analysis Program}

AST Computers, LLC

	<company> The private company formed in January 1999 when
	Mr. Beny Alagem, the former chairman of {Packard Bell NEC,
	Inc.}, bought the name and intellectual property of {AST
	Research, Inc.}.  AST Computers, LLC provide {hardware,
	software}, and services for small US businesses.

	{Samsung Electronics Co. Ltd.}, of Seoul, Korea, owns a
	minority stake.

	{(http://ast.com/)}.

	Address: Los Angeles, CA, USA.

	(2000-03-28)

asterisk

	<character> "*" {ASCII} code 42.  Common names include: star;
	{INTERCAL}: {splat}; {ITU-T}: asterisk.  Rare: {wild card};
	gear; dingle; mult; spider; aster; times; twinkle; {glob};
	{Nathan Hale}.

	Commonly used as the multiplication operator and as the
	{Kleene star}.  Often doubled, as in "x**2", to mean "to the
	power".  In {C} and related languages, asterisk is used as the
	{dereference} operator, "*p" meaning "the thing pointed to by
	p".

	(2006-09-10)

asterix

	<spelling> Do you mean "{asterisk}" (the star-shaped
	character), or {Asterix the Gaul
	(http://webring.org/cgi-bin/webring?ring=asterixwebring&index)},
	the popular French cartoon by Goscinny and Uderzo?

	(2000-07-26)

Astra Digital Radio

	<audio> {Digital Radio} over satellite, compatible with analog
	television transmissions.  Alternatively the normal TV
	subcarriers can be modulated by a {MPEG-1 Layer-2} 48 kHz 192
	kbps signal.  Quality is better than analog carriers and only
	needs half the {bandwidth} (analog stereo = 2 carrier, digital
	stereo = 1 carrier).  Quality is limited and the data rate
	can't be increased.

	(2001-12-13)

Astral

	<language> A programming language based on {Pascal}, never
	implemented.

	["ASTRAL: A Structured and Unified Approach to Database Design
	and Manipulation", T. Amble et al, in Proc of the Database
	Architecture Conf, Venice, June 1979].

	(2000-01-27)

AST Research, Inc.

	<company> A company, formed some time before 1980, that was a
	leading {personal computer} manufacturer.  AST developed
	{desktop computers}, {mobile computers}, and {servers} that
	were sold in more than 100 countries worldwide.  In January
	1999 the name and intellectual property were acquired by a new
	company named {AST Computers, LLC}.  As of 2000-03-02 it was
	trading as {ARI Service}.

	(2000-03-21)

asymmetrical modulation

	<communications> A scheme to maximise use of a communications
	line by giving a larger share of the {bandwidth} to the
	{modem} at the end which is transmitting the most information.

	Only one end of the connection has full bandwidth, the other
	has only a fraction of the bandwidth.  Normally, which end
	gets the full bandwidth is chosen dynamically.

	Asymmetrical modulation was made famous by the {HST} mode of
	the early high-speed modems from {US Robotics}.

	(1998-03-13)

Asymmetric Digital Subscriber Line

	<communications, protocol> (ADSL, or Asymmetric Digital
	Subscriber Loop) A form of {Digital Subscriber Line} in which
	the bandwidth available for {downstream} connection is
	significantly larger then for {upstream}.  Although designed
	to minimise the effect of {crosstalk} between the upstream and
	downstream channels this setup is well suited for {web
	browsing} and {client}-{server} applications as well as for
	some emerging applications such as {video on demand}.

	The data-rate of ADSL strongly depends on the length and
	quality of the line connecting the end-user to the telephone
	company.  Typically the upstream data flow is between 16 and
	640 {kilobits} per second while the downstream data flow is
	between 1.5 and 9 {megabits} per second.  ADSL also provides a
	voice channel.

	ADSL can carry digital data, analog voice, and broadcast
	{MPEG2} video in a variety of implementations to meet customer
	needs.

	["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].

	See also {Carrierless Amplitude/Phase Modulation}, {Discrete
	MultiTone}.

	{ADSL Forum (http://adsl.com/)}.

	(1998-05-18)

Asymmetric Digital Subscriber Loop

	{Asymmetric Digital Subscriber Line}

asynchronous

	<architecture> Not synchronised by a shared signal such as
	{clock} or {semaphore}, proceeding independently.

	Opposite: {synchronous}.

	1. <operating system> A {process} in a {multitasking} system
	whose execution can proceed independently, "in the
	{background}".  Other processes may be started before the
	asynchronous process has finished.

	2. <communications> A communications system in which data
	transmission may start at any time and is indicated by a
	{start bit}, e.g. {EIA-232}.  A data {byte} (or other element
	defined by the {protocol}) ends with a {stop bit}.  A
	continuous marking condition (identical to stop bits but not
	quantized in time), is then maintained until data resumes.

	(1995-12-08)

Asynchronous Balanced Mode

	<protocol> A communication mode of {HDLC} and derivative
	{protocols}, supporting {peer-oriented} {point-to-point}
	communications between two {nodes}, where either node can
	initiate transmission.

	(1997-05-07)

Asynchronous Communications Interface Adapter

	<communications, hardware> (ACIA) A kind of {integrated
	circuit} that provides data formatting and control to {EIA-232}
	serial interfaces.

	[Is this the same as a {UART}?]

	(1997-05-07)

asynchronous logic

	<architecture> A {data-driven} circuit design technique where,
	instead of the components sharing a common {clock} and
	exchanging data on clock edges, data is passed on as soon as
	it is available.  This removes the need to distribute a common
	clock signal throughout the circuit with acceptable {clock
	skew}.  It also helps to reduce power dissipation in {CMOS}
	circuits because {gates} only switch when they are doing
	useful work rather than on every clock edge.

	There are many kinds of asynchronous logic.  Data signals may
	use either "dual rail encoding" or "data bundling".  Each dual
	rail encoded {Boolean} is implemented as two wires.  This
	allows the value and the timing information to be communicated
	for each data bit.  Bundled data has one wire for each data
	bit and another for timing.  Level sensitive circuits
	typically represent a logic one by a high voltage and a logic
	zero by a low voltage whereas transition signalling uses a
	change in the signal level to convey information.  A speed
	independent design is tolerant to variations in gate speeds
	but not to propagation delays in wires; a delay insensitive
	circuit is tolerant to variations in wire delays as well.

	The purest form of circuit is delay-insensitive and uses
	dual-rail encoding with transition signalling.  A transition
	on one wire indicates the arrival of a zero, a transition on
	the other the arrival of a one.  The levels on the wires are
	of no significance.  Such an approach enables the design of
	fully delay-insensitive circuits and automatic layout as the
	delays introduced by the layout compiler can't affect the
	functionality (only the performance).  Level sensitive designs
	can use simpler, stateless logic gates but require a "return
	to zero" phase in each transition.

	{(http://cs.man.ac.uk/amulet/async/)}.

	(1995-01-18)

Asynchronous Transfer Mode

	<communications> (ATM, or "fast packet") A method for the
	dynamic allocation of {bandwidth} using a fixed-size {packet}
	(called a cell).

	See also {ATM Forum}, {Wideband ATM}.

	{ATM acronyms
	(http://atmforum.com/atmforum/acronym_index.html)}.

	{Indiana acronyms
	(http://cell-relay.indiana.edu/cell-relay/FAQ/ATM-Acronyms.html)}.

	[More detail?  Data rate(s)?]

	(1996-04-01)

asyncronous

	<spelling> It's spelled "{asynchronous}".

	(1996-12-13)

AT

	{IBM PC AT}

at

	1. <character> {commercial at}.

	2. <networking> The {country code} for Austria.

AT-3

	<language> The original name of {MATH-MATIC}.

	[Sammet 1969, p. 135].

	(2000-02-24)

ATA

	{Advanced Technology Attachment}

ATA-2

	{Advanced Technology Attachment Interface with Extensions}

ATA-4

	<storage> /ul'tr* D M A/ (Or "Ultra DMA", "UDMA", "Ultra-ATA",
	"Ultra-DMA/33") A development of the {Advanced Technology
	Attachment} specifications which gives nearly twice the
	maximum transfer speed of the {ATA-3} standard ({PIO} Mode 4).

	ATA-4 Extensions Ultra DMA/33 Synchronous DMA Mode maximum
	burst transfer rates:

		Mode 	Cycle Time 	Transfer Rate
			ns		MB/s
		0 	235 		16
		1 	160 		24
		2 	120 		33

	This is achieved by improving timing windows in the {protocol}
	on the ATA interface; reducing propagation delays by
	{pipelining} data transfers and transferring data in
	{synchronous} (strobed) mode.

	Developed by {Quantum Corporation}, ATA-4 has been freely
	licensed to manufacturers and is supported by {Intel
	Corporation}.

	(1998-09-30)

Atanasoff-Berry Computer

	<computer> (ABC) An early design for a binary calculator, one
	of the predecessors of the {digital computer}.  The ABC was
	partially constructed between 1937 and 1942 by Dr. {John
	Vincent Atanasoff} and Clifford Berry at {Iowa State College}.
	As well as {binary} arithmetic, it incorporated {regenerative
	memory}, {parallel processing}, and separation of memory and
	computing functions.

	The electronic parts were mounted on a rotating drum, making
	it hybrid electronic/electromechanical.  It was designed to
	handle only a single type of mathematical problem and was not
	automated.  The results of a single calculation cycle had to
	be retrieved by a human operator, and fed back into the
	machine with all new instructions, to perform complex
	operations.  It lacked any serious form of logical control or
	{conditional} statements.

	Atanasoff's patent application was denied because he never
	have a completed, working product.  Ideas from the ABC were
	used in the design of {ENIAC} (1943-1946).

	{(http://cs.iastate.edu/jva/jva-archive.shtml)}.

	(2003-09-28)

Atanasoff, John Vincent

	{John Vincent Atanasoff}

ATAPI

	{AT Attachment Packet Interface}

ATA point

	<unit, text> (Or "Anglo-Saxon point") One of the two most
	common variants of the {point}, equal to 0.3514598 mm, or
	0.0138366 inch, or 1/72.272 inch.  The ATA point is used on
	the island of the United Kingdom and on the American
	continent.

	[What point do they use in Ireland?]

	(2002-03-11)

Atari

	<company, computer> A maker of arcade games, home video game
	systems, and home computers, especially during the 1970s and
	1980s.  Atari are best known for their range of 16- and 32-bit
	{microcomputers}, notable for having a built-in {MIDI}
	interface.  As of February 1994 the range included the Atari
	520ST, 1040ST, Mega ST, STe, STacy, Mega STe, TT, and Falcon.
	There are also emulators that run on the Apple {Macintosh} and
	{IBM PC}/XT/AT.

	Atari ceased to be a separate company in 1996 when merged with
	{JTS}.  In 1998, JTS sold the Atari assets to Hasbro.  In
	2001, {Infogrames} North America operations officially changed
	their name to Atari.

	{(http://atarigames.com/)}.

	{Usenet newsgroups}: {news:comp.binaries.atari.st},
	{news:comp.sys.atari.st.tech}, {news:comp.sources.atari.st},
	{news:comp.sys.atari.st}, {news:comp.sys.atari.advocacy},
	{news:comp.sys.atari.programmer}.

	{Michigan U (ftp://atari.archive.umich.edu)}, {UK
	(ftp://micros.hensa.ac.uk/)}, {Germany
	(ftp://ftp.Germany.EU.net)} [192.76.144.75], {Netherlands
	(ftp://ftp.cs.ruu.nl/)} [131.211.80.17], {UK
	(ftp://src.doc.ic.ac.uk/computing/systems/atari/umich)}.

	(2008-07-23)

Atari ST

	<computer> A {personal computer} released by {Atari} in 1985.
	The "ST" stands for "Sixteen/Thirty-two", from the {Motorola
	68000}'s 16-bit {external bus} and 32-bit processor.  The
	original 520ST model had an external {floppy drive} and power
	supply whereas the 1040ST had them built-in.  The 520 and
	later 520STFM came with 512 KB of {RAM}, the 1040 had 1 MB.
	Several upgraded models followed, up to the 1993 {Motorola
	68030} based {Falcon}.

	The ST was the first home computer with built-in {MIDI ports}
	and plenty of MIDI software.  A wide range of other software
	from office to games was also available.

	(2006-10-30)

AT Attachment

	{Advanced Technology Attachment}

AT Attachment Packet Interface

	<storage> (ATAPI) Part of the {EIDE} interface that provides
	additional commands to control a {CD-ROM} drive or {magnetic
	tape}.

	[Winn L. Rosch "The Winn L. Rosch Hardware Bible"
	(Third Edition), Sams Publishing, 1994].

	(1998-11-01)

AT bus architecture

	{Industry Standard Architecture}

AtFS

	{Attributed File System}

Athena

	{Project Athena}

Atherton Technology

	<company> The comapny that developed the {Software BackPlane}
	{CASE} framework.  Their {Atherton Tool Integration Services}
	were the basis for the ATIS standard.

	(2000-02-24)

Athlon

	<hardware> (K7) {AMD}'s 7th generation {x86} {processor},
	released in June 1999.

	Athlon uses a {Slot A} {motherboard} and is not compatible
	with {Slot 1} motherboards.

	[Details?  Reference?]

	(1999-08-05)

ATIS

	{A Tools Integration Standard}

ATK

	{Andrew Toolkit}

ATLAS

	{Abbreviated Test Language for Avionics Systems}

Atlas Autocode

	<language> The {Autocode} for the {Ferranti} {Atlas}, which
	may have been the first commercial computer with
	{hardware-paged} {virtual memory}.  Whereas other {autocodes}
	were basically {assembly languages}, Atlas Autocode was
	high-level and {block-structured}, resembling a cross between
	{Fortran} and {ALGOL 60}.  It had {call-by value}, {loops},
	{declarations}, {complex numbers}, {pointers}, {heap} and
	{stack} storage generators, {dynamic arrays}, and extensible
	{syntax}.

	(2000-04-03)

ATM

	1. <communications> {Asynchronous Transfer Mode}.

	2. Automatic Teller Machine - a cash dispenser.

	3. <chat> At the moment.

	4. <text> {Adobe Type Manager}.

ATM Forum

	<networking, body> An international non-profit arganisation
	aiming to encourage the user of {Asynchronous Transfer
	Mode} through {interoperability} specifications and to promote
	cooperation and awareness.

	The ATM Forum consists of a worldwide Technical Committee,
	three Marketing Committees for North America, Europe and
	Asia-Pacific as well as the User Committee, through which ATM
	end-users participate.

	Worldwide Headquarters: 2570 West El Camino Real, Suite 304
	Mountain View, CA 94040-1313 USA.

	Telephone: +1 (650) 949 6700.

	E-mail: ATM Forum <info@atmforum.com>.

	{(http://atmforum.com/)}.

	(1999-06-14)

ATMP

	{Asynchronous Transfer Mode Protocol}?

	(2001-03-03)

atob

	<tool> /A too B/ {Utility software} that converts {ASCII} to
	{binary}.  The reverse process is {btoa}.

	[Algorithm?]

	(1997-08-08)

ATOLL

	{Acceptance, Test Or Launch Language}

atomic

	<jargon> (From Greek "atomos", indivisible) Indivisible;
	cannot be split up.

	For example, an instruction may be said to do several things
	"atomically", i.e. all the things are done immediately, and
	there is no chance of the instruction being half-completed or
	of another being interspersed.  Used especially to convey that
	an operation cannot be interrupted.

	An atomic {data type} has no internal structure visible to the
	program.  It can be represented by a flat {domain} (all
	elements are equally defined).  Machine {integers} and
	{Booleans} are two examples.

	An atomic {database transaction} is one which is guaranteed to
	complete successfully or not at all.  If an error prevents a
	partially-performed transaction from proceeding to completion,
	it must be "backed out" to prevent the database being left in
	an inconsistent state.

	[{Jargon File}]

	(2000-04-03)

A Tools Integration Standard

	<software, library> (ATIS) An {object-oriented} interface to a
	set of services that allows the saving, accessing and managing
	of information in a common repository.  Developed by {Atherton
	Technology} and {DEC}, based on an extended version of the
	{Software BackPlane}, proposed as an industry standard.

	(1994-10-25)

ATRAC

	{Adaptive TRansform Acoustic Coding}

ATS

	{Attribute Translation System}

at sign

	{commercial at}

AT&T

	{American Telephone and Telegraph, Inc.}

Attachment Unit Interface

	<networking> (AUI) The part of the {IEEE} {Ethernet}
	{standard} located between the {MAC}, and the {MAU}.  The AUI
	is a {transceiver} cable that provides a path between a
	{node}'s Ethernet interface and the MAU.

	(1996-12-08)

AT&T Bell Labs

	{Bell Laboratories}

attenuation

	<communications> The progressive reduction in {amplitude} of a
	signal as it travels farther from the point of origin.

	For example, an electric signal's amplitude reduces with
	distance due to electrical {impedance}.  Attenuation is
	usually measured in {decibels} [per metre?].

	Attenuation does not imply appreciable modification of the
	shape of the waveform (distortion), though as the signal
	amplitude falls the {signal-to-noise ratio} will also fall
	unless the channel itself is noise free or the signal is
	amplified at some intermediate point(s) along the channel.

	["Networking Essentials, second edition",
	Microsoft Corporation, pub. Microsoft Press 1997].

	(2003-07-29)

atto-

	{prefix}

attoparsec

	<unit, humour> About 31 mm (one inch).  "atto-" is the
	standard {SI} {prefix} for multiplication by 10^-18.  A parsec
	(parallax-second) is 3.26 light-years; an attoparsec is thus
	3.26 * 10^-18 light years.  Thus, one attoparsec per
	{microfortnight} is about one inch per second.

	This unit is reported to be in use (though probably not very
	seriously) among hackers in the UK.

	[{Jargon File}]

	(1996-12-08)

attribute

	<data> A named value or relationship that exists for some or
	all {instances} of some {entity} and is directly associated
	with that instance.

	Examples include the {href} attribute of an {HTML} {anchor}
	element, the {columns} of a {database} {table} considered as
	attributes of each row, and the {members} ({properties} and
	{methods} of an {object} in {OOP}.  This contrasts with the
	contents of some kind of container (e.g. an array), which are
	typically not named.  The contents of an {associative array},
	though they might be considered to be named by their key
	values, are not normally thought of as attributes.

	(2001-02-04)

Attributed File System

	<storage> (AtFS) The basis of the {Shape_VC} toolkit.

	Cooperative work within projects is supported by a status
	model controlling visibility of version objects, locking, and
	"long transactions" for synchronising concurrent updates.  The
	concept of object attributes provides a basis for storing
	management information with versions and passing this
	information between individual tools.  This mechanism is
	useful for building integrated environments from a set of
	unrelated tools.

	(2000-02-24)

Attribute Translation System

	<grammar, tool> (ATS) A {BNF}-based {parser generator} from
	the {University of Saskatchewan}(?).  ATS generates
	table-driven {LL1} {parsers} with full {insert-only error
	recovery}.  It also has full left-attribute semantic handling,
	which is a dream compared to using {YACC}'s parser actions.

	(2000-04-08)

ATX

	<hardware, standard> An {open} {PC} {motherboard}
	specification by {Intel}.

	ATX is a development of the {Baby AT} specification with the
	motherboard rotated 90 degrees in the chassis.  The {CPU} and
	{SIMM} sockets have been relocated away from the {expansion
	card} slots meaning that all the slots support full-length
	cards.  More {I/O} functions are integrated on the
	motherboard.  As the longer edge of the board is now at the
	back of the chassis, there is more space for connectors; also,
	the I/O opening on the back panel of the chassis has been
	defined as double the previous height, allowing vendors to add
	extra on-board I/O functions over and above the standard.

	Most {Pentium Pro} boards use this {form factor}.

	As well as the motherboard size, layout, and placement, the
	ATX specification also includes requirements for power supply
	and fan specification and location.

	The full size ATX board measures 305mm wide by 244mm deep.
	There is also a Mini-ATX form factor, 284mm by 208mm.

	{Home
	(http://developer.intel.com/design/motherbd/atx.htm)}.

	(2001-07-16)

au

	1. <networking> The two character {country code} for Australia
	used in {Internet} {domain names}.

	2. <filename extension> {audio}.

	(1995-02-15)

aubergine

	<jargon> A secret term used to refer to computers in the
	presence of computerphobic third parties.

	(1995-01-24)

audio

	<file format> Sound, one component of {multimedia}.  Computers
	(and audio compact discs and digital audio tape) work with
	{digital audio}, in contrast to vinyl disks or analogue tape.

	(1999-07-30)

audiographics

	{Audiographic Teleconferencing}

audiographic teleconferencing

	<communications> (Or "electronic whiteboarding", "screen
	sharing") A form of {teleconferencing} in {real time} using
	both an {audio} and a data connection.  The computer screen is
	shared by more than one site, and used as an electronic
	blackboard, overhead projector or still video projector.  Some
	systems allow for sharing software also.

	(1995-10-06)

Audio IFF

	<file format, music> (AIFF) A format developed by {Apple
	Computer} Inc. for storing high-quality {digital audio} and
	musical instrument information.  It is also used by {SGI} and
	several professional audio packages.

	(1994-10-10)

AudioOne

	<tool, music> Digital recording and editing software developed
	by {BizTrack Software Development} for the dance, music, and
	audio industries.  AudioOne includes a waveform recorder that
	allows signal manipulation, editing, and recording.

	(1996-09-28)

Audio Processing Technology

	<company> (APT) A company that produces {codecs} based on
	{predictive analysis} rather than {frequency coding}.

	(1996-01-15)

Audio Video Interleave

	<multimedia> (AVI) An {audio}-{video} {standard} designed by
	{Microsoft}.  Apparently proprietary and {Microsoft
	Windows}-specific.

	{(http://www2.echo.lu/oii/en/video.html#AVI)}.

	[Details?]

	(1996-09-08)

Augmented Backus-Naur Form

	<language> An extension of {Backus-Naur Form} documented in
	{RFC 2234}.

	[Summary?]

	(1997-11-23)

AUI

	1. <tool, product> {Adaptable User Interface}.

	2. <networking> {Attachment Unit Interface}.

A'UM

	<language> A {stream}-based, {concurrent}, {logic},
	{object-oriented} language by K. Yoshida and Takashi Chikayama
	<chikayama@klic.org>, built on top of {KL1}.

	["A'UM - A Stream-based Concurrent Logic Object-Oriented
	Language", K. Yoshida et al, Proc 3rd Intl Conf Fifth Gen
	Comp Sys, Springer 1988, pp. 638-649].

	(2000-07-16)

AUP

	{acceptable use policy}

Aurora

	["The Aurora Or-Parallel Prolog System", E. Lusk et al, Proc
	3rd Intl Conf on Fifth Generation Comp Systems, pp. 819-830,
	ICOT, A-W 1988].

Austin Kyoto Common Lisp

	<language> (AKCL) A collection of ports, bug fixes, and
	performance improvements to {KCL} by William Schelter
	<wfs@cli.com>, <wfs@math.utexas.edu>, University of Texas.

	Version 1-615 includes ports to {Decstation} 3100,
	{HP9000}/300, {i386}/{Sys V}, {IBM-PS2}/{AIX}, {IBM-RT}/{AIX},
	{SGI}, {Sun-3}/{Sunos} 3 or 4, {Sun-4}, {Sequent Symmetry},
	{IBM370}/{AIX}, {VAX}/{BSD VAX}/{Ultrix}, {NeXT}.

	{(ftp://rascal.ics.utexas.edu/pub/akcl-1-609.tar.Z)}.

	(1992-04-29)

authentication

	<security> The verification of the identity of a person or
	process.  In a communication system, authentication verifies
	that messages really come from their stated source, like the
	signature on a (paper) letter.  The most common form of
	authentication is typing a user name (which may be widely
	known or easily guessable) and a corresponding {password} that
	is presumed to be known only to the individual being
	authenticated.  Another form of authentication is
	{biometrics}.

	(2007-02-22)

authoring

	<hypertext> Creating a {hypertext} or {hypermedia} document.

	(1994-11-07)

autobaud

	{automatic baud rate detection}

autobogotiphobia

	{bogotify}

AutoCAD

	<CAD, product> A {CAD} {software} package for mechanical
	engineering, marketed by {Autodesk, Inc.}

	(1994-11-09)

Autocode

	<language> 1. The {assembly language} accepted by {AUTOCODER}.

	2. A generic term for symbolic {assembly language}.  Versions
	of Autocode were developed for {Ferranti} {Atlas}, {Titan},
	{Mercury} and {Pegasus} and {IBM 702} and {IBM 705}.

	(2001-05-14)

AUTOCODER

	<language> Possibly the first primitive {compiler}.  AUTOCODER
	was written by Alick E. Glennie in 1952.  It translated
	symbolic statements into {machine language} for the
	{Manchester Mark I} computer.

	Autocoding later came to be a generic term for {assembly
	language} programming.

	(1994-11-07)

autoconf

	<software, tool> The {GNU project}'s tool that configures a
	source code distribution to compile and run on a different
	platform.

	Among {open source} {hackers}, a mere running {binary} of a
	program is not considered a full release; what's interesting
	is a source tree that can be built into binaries using
	standard tools.  Since the mid-1990s, autoconf, {automake},
	and {libtools} have been the standard way to make a
	distribution portable so that it can be built on multiple
	{operating systems} without change.

	(2002-09-20)

autoconfiscate

	<software, jargon> A term coined by Noah Friedman meaning to
	set up or modify a {source-code} distribution so that it
	configures and builds using the {GNU project}'s
	{autoconf}/automake/libtools suite.

	(2002-09-20)

Autodesk, Inc.

	<company> The distributors of the {AutoCAD} {CAD} package.

	Address: Sausalito, CA, USA.

	(1994-11-09)

AUTOEXEC.BAT

	<operating system> The {batch file} containing commands,
	loaded by {MS-DOS} after running {CONFIG.SYS}.  AUTOEXEC.BAT
	contains normal DOS commands and can be used for additional
	system configuration such as setting paths and variables,
	configuring network connections and running {application
	programs}.

	(1995-03-18)

AUTOGRAF

	<tool> A system for describing {bar charts}.

	["User's Manual for AUTOGRAF", Cambridge Computer Assoc, Dec
	1972].

	(2001-05-14)

AUTOGRP

	{AUTOmated GRouPing system}

Auto Idle

	A facility provided by some {Intel} {clock doubled}
	{microprocessors} where the internal clock can be slowed to
	the external {clock rate} while the processor is waiting for
	data from memory, returning to full speed as soon as the data
	arrives.

	See also {System Management Mode}.

	(1994-11-09)

Autolisp

	<language> A dialect of {Lisp} used by the {Autocad} {CAD}
	package from {Autodesk}.

	(1994-11-09)

autoloader

	{stack loader}

automagically

	<jargon> /aw-toh-maj'i-klee/ or /aw-toh-maj'i-k*l-ee/
	Automatically, but in a way that, for some reason (typically
	because it is too complicated, or too ugly, or perhaps even
	too trivial), the speaker doesn't feel like explaining to you.

	E.g. "The C-INTERCAL compiler generates C, then automagically
	invokes {cc} to produce an executable."

	See {magic}.

	[{Jargon File}]

	(2001-05-18)

automata

	{automaton}

automata theory

	{automaton}

Automated Engineering Design

	<language> (AED) (Or "ALGOL Extended for Design") A systems
	language for the {IBM 7090} and {IBM 360} developed at {MIT}
	System Laboratory ca. 1965 by a team led by Douglas T. Ross
	(now at {Softech}).  AED is an extension of {ALGOL 60} with
	{records} ("plexes"), pointers, and {dynamic allocation}.
	{DYNAMO II} was written in AED, as was the first {BCPL}
	{compiler}.

	Versions: AED-0, AED-1, AED-JR.

	["The Automated Engineering Design (AED) Approach to
	Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd
	Natl Conf, 1967].

	[Sammet 1969 and 1978].

	(1995-03-26)

AUTOmated GRouPing system

	<tool, mathematics> (AUTOGRP) An interactive statistical
	analysis system, an extension of {CML}.

	["AUTOGRP: An Interactive Computer System for the Analysis of
	Health Care Data", R.E. Mills et al, Medical Care 14(7), Jul
	1976].

	(1994-11-07)

Automated Retroactive Minimal Moderation

	<messaging> (ARMM) A {Usenet} robot created by Dick Depew of
	Munroe Falls, Ohio.  ARMM was intended to automatically cancel
	posts from anonymous-posting sites.  Unfortunately, the
	robot's recogniser for anonymous postings triggered on its own
	automatically-generated control messages!  Transformed by this
	stroke of programming ineptitude into a monster of
	Frankensteinian proportions, it broke loose on the night of
	1993-03-31 and proceeded to {spam} {news:news.admin.policy}
	with a recursive explosion of over 200 messages.

	Reactions varied from amusement to outrage.  The pathological
	messages crashed at least one mail system, and upset people
	paying line charges for their {Usenet} feeds.  One poster
	described the ARMM debacle as "instant {Usenet} history" (also
	establishing the term {despew}), and it has since been widely
	cited as a cautionary example of the havoc the combination of
	good intentions and incompetence can wreak on a network.

	Compare {Great Worm}; {sorcerer's apprentice mode}.  See also
	{software laser}, {network meltdown}.

	(1996-01-08)

automated testing

	<testing> Software testing assisted with software tools
	that require no operator input, analysis, or evaluation.

	(2001-05-20)

AUTOMATH

	<language, mathematics> A very high level language for writing
	proofs, from Eindhoven, Netherlands.

	["The Mathematical Language AUTOMATH, Its Usage and Some of
	its Extensions", N.G. deBruijn, in Symp on Automatic
	Demonstration, LNM 125, Springer 1970].

	(2001-07-09)

Automatically Programmed Tools

	<language> (APT) A language for numerically controlled machine
	tools.

	Versions: APT II (IBM 704, 1958), APT III (IBM 7090, 1961).

	["APT Part Programming", McGraw-Hill].

	[Sammet 1969, p. 605].

	(1995-05-04)

automatic baud rate detection

	<communications> (ABR, autobaud) A process by which a
	receiving device determines the speed, {code level}, and {stop
	bits} of incoming data by examining the first character,
	usually a preselected sign-on character.  ABR allows the
	receiving device to accept data from a variety of transmitting
	devices operating at different speeds without needing to
	establish data rates in advance.

	(1996-06-18)

automatic hyphenation

	<text> A feature of some {word processors} which can insert
	{hyphens} into words which would otherwise extend beyond the
	right hand margin of the page.

	More advanced word processors may have options to control the
	position of the hyphen, to restrict certain words from being
	hyphenated, and to allow custom dictionaries of hyphenation
	points to be built up.

	(1996-08-02)

Automatic Mathematical TRANslation

	<mathematics, tool> (AMTRAN) A system developed by NASA in
	Huntsville in 1966 for the {IBM 1620}, based on the
	{Culler-Fried} System.  It required a special terminal.

	["AMTRAN: An Interactive Computing System", J. Reinfelds, Proc
	FJCC 37:537- 542, AFIPS (Fall 1970)].

	(1995-11-14)

Automatic Network Routing

	<protocol> (ANR) A {source routing protocol} used to route
	{LU6.2} session and control traffic from {node} to node
	through a {High Performance Routing} network or {subnet}.  ANR
	operates at the lower end of the {SNA} {Path Control layer}.

	[Relationship to {OS/390}?]

	(1997-05-08)

Automatic Number Identification

	<communications> (ANI) A service that tells the recipient of a
	telephone call the telephone number of the person making the
	call.  This number can be passed to computer equipment to
	automatically retrieve associated information about the caller,
	i.e. account status, billing records, etc.

	See {CTI}.

	(1996-12-08)

Automatic Repeat Request

	<communications> (ARQ) A {modem} error control {protocol} in
	which the receiver asks the transmitter to resend corrupted
	data.

	(1995-11-14)

Automatic Send Receive

	<hardware> (ASR) Part of a designation for a hard-copy
	{terminal}, manufactured by {Teletype Corporation}, which
	could be commanded remotely to send the contents of its {paper
	tape} reader.  The ASR-33 was the most common {minicomputer}
	terminal in the early 1970s.

	(1995-11-23)

Automatic Sequence Controlled Calculator

	{Mark 1}

automation

	Automatic, as opposed to human, operation or control of a
	process, equipment or a system; or the techniques and
	equipment used to achieve this.  Most often applied to
	computer (or at least electronic) control of a manufacturing
	process.

	See also {design automation}, {office automation},
	{manularity}, {Manufacturing Automation Protocol}, {PEARL},
	{QBE}.

	(1994-10-21)

Automatische Rechenplanfertigung

	<language> A programming language published in 1952 by Heinz
	Rutishauser (1918-70).

	[Features?]

	(2001-07-09)

automaton

	<robotics, mathematics, algorithm> (Plural automata) A
	machine, {robot}, or {formal system} designed to follow a
	precise sequence of instructions.

	Automata theory, the invention and study of automata, includes
	the study of the capabilities and limitations of computing
	processes, the manner in which systems receive input, process
	it, and produce output, and the relationships between
	behavioural theories and the operation and use of automated
	devices.

	See also {cellular automaton}, {finite state machine}.

	(1996-04-23)

Automatrix, Inc.

	<company> The company which produced {CAM-PC}.

	Address: Ballston Spa, NY, USA.

	{(http://automatrix.com/)}.

	(1995-04-21)

Autonomous System

	<networking, routing> (AS) A collection of {routers} under a
	single administrative authority, using a common {Interior
	Gateway Protocol} for routing {packets}.

	(2001-09-16)

Autonomous System Number

	<networking, routing> (ASN) Used for {routing} on the
	{Internet}.

	[Does each ASN uniquely identify an {Autonomous System}?]

	(2001-09-16)

Autopass

	<programming>

	["Autopass: An Automatic Programming System for
	Computer-Controlled Mechanical Assembly", L.I. Lieberman et
	al, IBM J Res Dev 21(4):321-333, 1979].

	(2001-09-16)

autoprojector

	<theory> A self-applicable {partial evaluator}.

	(2001-09-16)

AUTO-PROMPT

	<language> A {numerical control} language from {IBM} for {3D}
	milling.

	[Sammet 1969, p.606].

	(2001-09-25)

Autostat

	<language> A language for statistical programming.

	["Autostat: A Language for Statistical Programming",
	A.S. Douglas et al, Computer J 3:61, 1960].

	(2001-09-25)

autostereogram

	{SIRDS}

A/UX

	<operating system> (Apple's UniX) {Apple}'s first version of
	{Unix} for {Macintosh} computers.  A/UX merges the {Macintosh
	Finder} ({GUI}) with a Unix core, offering functions from both
	systems.  It will run on some late-model {Motorola 68000}
	Macs, but not on the {Power Mac}.

	A/UX is based on {AT&T} Unix {System V}.2.2 with numerous
	extensions from V.3, V.4 and {BSD} 4.2/4.3.  It also provides
	full {POSIX} compliance.

	A/UX 3.x.x incorporates {System 7} for the Macintosh, thus
	supporting the vast majority of Macintosh {applications}.
	System 7 and Unix are fully integrated under A/UX 3.x.x with
	the Unix file system being seen as a disk drive by the Finder.

	{jagubox's A/UX Home Page
	(http://jagubox.gsfc.nasa.gov/aux/Info/FAQ.auxl)}.

	(1997-12-13)

auxiliary storage

	<storage> An obsolete term for a {hard disk} {drive}.

	(1997-04-14)

av

	{avatar}

availability

	<system> The degree to which a system suffers degradation or
	interruption in its service to the customer as a consequence
	of failures of one or more of its parts.

	One of the components of {RAS}.

	(2000-08-13)

Avalon/C++

	<language, parallel> A {concurrent} extension of {C++} with
	servers and transactions developed in 1986 for
	{fault-tolerant} {distributed} systems.  Avalon/C++ was
	influenced by {Argus}.

	["Camelot and Avalon: A Distributed Transaction Facility",
	J.L. Eppinger et al, Morgan Kaufmann 1990].

	(2002-01-13)

Avalon/Common LISP

	<language> A {LISP} dialect available as a prototype only.

	["Reliable Distributed Computing with Avalon/Common LISP",
	S.M. Clamen et al, CMU-CS-89-186 and Proc Intl Conf on
	Computer Languages, Mar 1990].

	(2002-02-03)

avatar

	1. <chat, virtual reality> An {image} representing a user in a
	multi-user {virtual reality} (or VR-like, in the case of
	{Palace}) space.

	2. (CMU, Tektronix) {root}, {superuser}.  There are quite a
	few {Unix} computers on which the name of the superuser
	account is "avatar" rather than "root".  This quirk was
	originated by a {CMU} hacker who disliked the term
	"superuser", and was propagated through an ex-CMU hacker at
	{Tektronix}.

	[{Jargon File}]

	(1997-09-14)

AVC

	{H.264}

average seek time

	<storage> The {mean} time it takes to move the {head} of a
	{disk drive} from one {track} to another, averaged over the
	source and destination cylinders.  Usually measured in
	{milliseconds} (ms).

	The average seek time gives a good measure of the speed of the
	drive in a multi-user environment where successive read/write
	request are largely uncorrelated.

	Ten ms is common for a {hard disk} and 200 ms for an
	eight-speed {CD-ROM}.

	(2007-03-16)

AverStar

	<company> The US software engineering company that developed
	{Hal}, under their former name, "Intermetrics".  Other
	products include {CS-4}, {Red}, {Mwave Developers Toolkit}
	({multimedia} for {IBM PC}), {cross-compilers} for {C} and
	{C++}; {Ada '83}, {Ada 95}, and {SAMeDL}.  AverStar also
	supply {client/server} systems; custom software applications
	and {turnkey} systems; independent verification and
	validation; {CAE} integration technology; languages and
	compilers: {Ada}, {C}, {C++}, {HDLs} ({MHDL}), {Modula},
	{SPL/1}.

	Address: Intermetrics, Inc., 733 Concord Avenue, Cambridge, MA
	02138, USA.  Telephone: +1 (617) 661 1840.  Fax: +1 (617) 868
	2843.

	Address: 7918 Jones Branch Drive, McLean, Va 22102, USA.
	Telephone: +1 (703) 827-2606.  Fax: +1 (703) 827-5560.

	Also Houston, TX, Huntington Beach, CA, Warminster, PA, and
	others.

	{AverStar Home (http://averstar.com/)}.

	(2003-02-17)

AVI

	{Audio Video Interleave}

Avon

	<language> A {dataflow} language.

	["AVON: A Dataflow Language", A. Deb, ICS 87, Second Intl Conf
	on Supercomputing, v.3, pp.9-19, ISI 1987].

	(1994-11-28)

AVS

	{Application Visualisation System}

aw

	<networking> The {country code} for Aruba.

	(1999-01-27)

AWE

	{Advanced WavEffect}

AWG

	{American Wire Gauge}

awk

	1. <tool, language> (Named from the authors' initials) An
	interpreted language included with many versions of {Unix} for
	massaging text data, developed by Alfred Aho, Peter Weinberger,
	and Brian Kernighan in 1978.  It is characterised by {C}-like
	syntax, declaration-free variables, {associative arrays}, and
	field-oriented text processing.

	There is a {GNU} version called {gawk} and other varients
	including {bawk}, {mawk}, {nawk}, {tawk}.  {Perl} was inspired
	in part by awk but is much more powerful.

	{Unix manual page}: awk(1).

	{netlib WWW
	(http://plan9.att.com/netlib/research/index.html)}.  {netlib
	FTP (ftp://netlib.att.com/netlib/research/)}.

	["The AWK Programming Language" A. Aho, B. Kernighan,
	P. Weinberger, A-W 1988].

	2. <jargon> An expression which is awkward to manipulate
	through normal {regexp} facilities, for example, one
	containing a {newline}.

	[{Jargon File}]

	(1995-10-06)

AWT

	{Abstract Window Toolkit}

aXe

	<tool> A {text editor} for the {X Window System}.  No longer
	maintained.

	(1998-03-13)

AXIOM

	<language> A commercially available subset of the
	{Scratchpad}, {symbolic mathematics} system from {IBM}.

	["Axiom - The Scientific Computing System", R. Jenks et al,
	Springer 1992].

	[Relationship with {AXIOM*}?]

	(1995-02-21)

axiom

	<logic> A {well-formed formula} which is taken to be true
	without proof in the construction of a {theory}.

	Compare: {lemma}.

	(1995-03-31)

AXIOM*

	<mathematics, tool> A {symbolic mathematics} system.

	{A#} is one component of AXIOM*.

	Version: 2.

	[Relationship with {AXIOM}?]

	(1995-02-21)

Axiomatic Architecture Description Language

	<language, architecture, parallel> (AADL) A language allowing
	concise modular specification of {multiprocessor}
	architectures from the compiler/operating-system interface
	level down to chip level.  AADL is rich enough to specify
	target architectures while providing a concise model for
	clocked {microarchitectures}.

	["AADL: A Net-Based Specification Method for Computer
	Architecture Design", W. Damm et al in Languages for Parallel
	Architectures, J.W. deBakker ed, Wiley, 1989].

	(2003-06-30)

axiomatic semantics

	<theory> A set of assertions about properties of a system and
	how they are effected by program execution.  The axiomatic
	semantics of a program could include pre- and post-conditions
	for operations.  In particular if you view the program as a
	state transformer (or collection of state transformers), the
	axiomatic semantics is a set of invariants on the state which
	the state transformer satisfies.

	E.g. for a function with the type:

		sort_list :: [T] -> [T]

	we might give the precondition that the argument of the
	function is a list, and a postcondition that the return value
	is a list that is sorted.

	One interesting use of axiomatic semantics is to have a
	language that has a {finitely computable} sublanguage that is
	used for specifying pre and post conditions, and then have the
	compiler prove that the program will satisfy those conditions.

	See also {operational semantics}, {denotational semantics}.

	(1995-11-09)

axiomatic set theory

	<theory> One of several approaches to {set theory}, consisting
	of a {formal language} for talking about sets and a collection
	of {axioms} describing how they behave.

	There are many different {axiomatisations} for set theory.
	Each takes a slightly different approach to the problem of
	finding a theory that captures as much as possible of the
	intuitive idea of what a set is, while avoiding the
	{paradoxes} that result from accepting all of it, the most
	famous being {Russell's paradox}.

	The main source of trouble in naive set theory is the idea
	that you can specify a set by saying whether each object in
	the universe is in the "set" or not.  Accordingly, the most
	important differences between different axiomatisations of set
	theory concern the restrictions they place on this idea (known
	as "comprehension").

	{Zermelo Fränkel set theory}, the most commonly used
	axiomatisation, gets round it by (in effect) saying that you can
	only use this principle to define subsets of existing sets.

	NBG (von Neumann-Bernays-Goedel) set theory sort of allows
	comprehension for all {formulae} without restriction, but
	distinguishes between two kinds of set, so that the sets
	produced by applying comprehension are only second-class sets.
	NBG is exactly as powerful as ZF, in the sense that any
	statement that can be formalised in both theories is a theorem
	of ZF if and only if it is a theorem of ZFC.

	MK (Morse-Kelley) set theory is a strengthened version of NBG,
	with a simpler axiom system.  It is strictly stronger than
	NBG, and it is possible that NBG might be consistent but MK
	inconsistent.

	{NF (http://math.boisestate.edu/~holmes/holmes/nf.html)} ("New
	Foundations"), a theory developed by Willard Van Orman Quine,
	places a very different restriction on comprehension: it only
	works when the formula describing the membership condition for
	your putative set is "stratified", which means that it could
	be made to make sense if you worked in a system where every
	set had a level attached to it, so that a level-n set could
	only be a member of sets of level n+1.  (This doesn't mean
	that there are actually levels attached to sets in NF).  NF is
	very different from ZF; for instance, in NF the universe is a
	set (which it isn't in ZF, because the whole point of ZF is
	that it forbids sets that are "too large"), and it can be
	proved that the {Axiom of Choice} is false in NF!

	ML ("Modern Logic") is to NF as NBG is to ZF.  (Its name
	derives from the title of the book in which Quine introduced
	an early, defective, form of it).  It is stronger than ZF (it
	can prove things that ZF can't), but if NF is consistent then
	ML is too.

	(2003-09-21)

Axiom of Choice

	<logic> (AC, or "Choice") An {axiom} of {set theory}:

	If X is a set of sets, and S is the union of all the elements
	of X, then there exists a function f:X -> S such that for all
	non-empty x in X, f(x) is an element of x.

	In other words, we can always choose an element from each set
	in a set of sets, simultaneously.

	Function f is a "choice function" for X - for each x in X, it
	chooses an element of x.

	Most people's reaction to AC is: "But of course that's true!
	From each set, just take the element that's biggest,
	stupidest, closest to the North Pole, or whatever".  Indeed,
	for any {finite} set of sets, we can simply consider each set
	in turn and pick an arbitrary element in some such way.  We
	can also construct a choice function for most simple {infinite
	sets} of sets if they are generated in some regular way.
	However, there are some infinite sets for which the
	construction or specification of such a choice function would
	never end because we would have to consider an infinite number
	of separate cases.

	For example, if we express the {real number} line R as the
	union of many "copies" of the {rational numbers}, Q, namely Q,
	Q+a, Q+b, and infinitely (in fact uncountably) many more,
	where a, b, etc. are {irrational numbers} no two of which
	differ by a rational, and

	  Q+a == {q+a : q in Q}

	we cannot pick an element of each of these "copies" without
	AC.

	An example of the use of AC is the theorem which states that
	the {countable} union of countable sets is countable.  I.e. if
	X is countable and every element of X is countable (including
	the possibility that they're finite), then the sumset of X is
	countable.  AC is required for this to be true in general.

	Even if one accepts the axiom, it doesn't tell you how to
	construct a choice function, only that one exists.  Most
	mathematicians are quite happy to use AC if they need it, but
	those who are careful will, at least, draw attention to the
	fact that they have used it.  There is something a little odd
	about Choice, and it has some alarming consequences, so
	results which actually "need" it are somehow a bit suspicious,
	e.g. the {Banach-Tarski paradox}.  On the other side, consider
	{Russell's Attic}.

	AC is not a {theorem} of {Zermelo Fränkel set theory} (ZF).
	Gödel and Paul Cohen proved that AC is independent of ZF,
	i.e. if ZF is consistent, then so are ZFC (ZF with AC) and
	ZF(~C) (ZF with the negation of AC).  This means that we
	cannot use ZF to prove or disprove AC.

	(2003-07-11)

Axiom of Comprehension

	<logic> An {axiom schema} of {set theory} which states:
	if P(x) is a {property} then

		{x : P}

	is a set.  I.e. all the things with some property form a set.

	Acceptance of this axiom leads to {Russell's Paradox} which is
	why {Zermelo set theory} replaces it with a restricted form.

	(1995-03-31)

axiom schema

	<logic> A {formula} in the language of an {axiomatic system},
	containing one or more.  These {metasyntactic variables} (or
	"{schematic variables}") that stand for terms or subformulae.
	An example is the {Axiom of Comprehension}.

	(2009-02-10)

AXLE

	<language> An early {string processing} language in which a
	program consists of an "assertion table" specifying patterns
	and an "imperative table" specifying replacements.

	["AXLE: An Axiomatic Language for String Transformations",
	K. Cohen et al, CACM 8(11):657-661, Nov 1965].

	(2009-02-10)

ayacc

	A {Yacc}-like {parser generator} from the {Irvine Research
	Unit in Software} written in {Ada} that produce {Ada} output.
	Comes with {aflex}.

	Version 1.2a.

	{(ftp://liege.ics.uci.edu/pub/irus/aflex-ayacc_1.2a.tar.Z)}.

	Mailing list: <irus-software-request@ics.uci.edu>.

	(1993-01-06)

AYT

	<chat> Are you there?

	(1996-03-09)

az

	<networking> The {country code} for Azerbaijan.

	(1999-01-27)

AZERTY

	{QWERTY}

B

	1. {byte}.

	2. <language> A systems language written by {Ken Thompson} in
	1970 mostly for his own use under {Unix} on the {PDP-11}.  B
	was later improved by Kerninghan(?) and Ritchie to produce
	{C}.  B was used as the systems language on {Honeywell}'s
	{GCOS-3}.

	B was, according to Ken, greatly influenced by {BCPL}, but the
	name B had nothing to do with BCPL.  B was in fact a revision
	of an earlier language, {bon}, named after Ken Thompson's
	wife, Bonnie.

	["The Programming Language B", S.C. Johnson & B.W. Kernighan,
	CS TR 8, Bell Labs (Jan 1973)].

	[Features?  Differences from C?]

	(1997-02-02)

	3. <language> A simple {interactive} {programming language}
	designed by {Lambert Meertens} and {Steven Pemberton}.  B was
	the predecessor of {ABC}.  B was the first published (and
	implemented) language to use indentation for block structure.

	{(ftp://ftp.uni-kl.de/pub/languages/B.tar.Z)}.

	["Draft Proposal for the B Language", Lambert Meertens, CWI,
	Amsterdam, 1981].

	[{(http://python-history.blogspot.com/2011/07/karin-dewar-indentation-and-colon.html)}].

	4. <language, specification> A specification language by
	Jean-Raymond Abrial of {B Core UK}, Magdalen Centre, Oxford
	Science Park, Oxford OX4 4GA.  B is related to {Z} and
	supports development of {C} code from specifications.  B has
	been used in major {safety-critical system} specifications in
	Europe, and is currently attracting increasing interest in
	industry.  It has robust, commercially available tool support
	for specification, design, proof and code generation.

	E-mail: <Ib.Sorensen@comlab.ox.ac.uk>.

	(1995-04-24)

b

	{bit} or maybe {byte} (B).

	(1996-11-03)

B-0

	<language> The original name of {FLOW-MATIC} from {Remington
	Rand}.  B-0 was used on the {UNIVAC} I or II about 1958.

	(1997-01-09)

B1FF

	{BIFF}

B1 security

	{Orange Book}

B2B

	{business to business}

B2 security

	{Orange Book}

B3 security

	{Orange Book}

b4

	<chat> before.

ba

	<networking> The {country code} for Bosnia and Herzegowina.

	(1999-01-27)

Baan

	<company> A provider of {enterprise resource planning} and
	{manufacturer resource planning} software.

	{(http://baan.com/)}.

	(1998-07-07)

Babbage

	<language> The structured {assembly language} for the {General
	Electric Company} 4xxx range of computers and their {OS4000}
	{operating system}.  It is strictly an assembler in that the
	generated code is relatively predictable but it can be written
	in a sufficiently structured manner, with indentation, control
	statements, function and procedure calls, to make the
	resultant source easy to read and manage.  Even with this
	visible structure however, it is important to remember that
	the assembly of the statement is done left to right.

	The British {videotext} system, {Prestel} is programmed in
	Babbage.

	[Datamation, 1980s].

	(2007-10-24)

Babbage, Charles

	{Charles Babbage}

babbling error

	<networking> An {Ethernet} node attempting to transmit more
	than 1518 data bytes - the largest allowed Ethernet {packet}.
	This is why the {Maximum Transmission Unit} for {IP} traffic
	on Ethernet is 1500.

	[Why 1518?]

	(1998-03-13)

BABEL

	1. A subset of {ALGOL 60}, with many {ALGOL W} extensions.

	["BABEL, A New Programming Language", R.S. Scowen, Natl Phys
	Lab UK, Report CCU7, 1969].

	2. Mentioned in The Psychology of Computer Programming,
	G.M. Weinberg, Van Nostrand 1971, p.241.

	3. A language based on {higher-order functions} and
	{first-order logic}.

	["Graph-Based Implementation of a Functional Logic Language",
	H. Kuchen et al, Proc ESOP 90, LNCS 432, Springer 1990,
	pp.271-290].

	["Logic Programming with Functions and Predicates: The
	Language BABEL", Moreno-Navarro et al, J Logic Prog 12(3) (Feb
	1992)].

	(1994-11-28)

BABT

	{British Approval Boards for Telecommunications}

Baby AT

	<hardware> The redesigned {AT} motherboard that had the same
	size as the {XT} motherboard had (8.5" x 11") and could thus
	fit into an XT case.  The original 12" x 13" AT motherboards
	are now largely forgotten.

	Compare {ATX}.

	(1997-02-20)

BABYLON

	A development environment for {expert systems}.  It includes
	{frames}, {constraints}, a {prolog}-like logic formalism, and
	a description language for diagnostic applications.  It
	requires {Common Lisp}.

	{(ftp://ftp.gmd.de/gmd/ai-research/Software/)}.

	(1995-02-08)

BACAIC

	Boeing Airplane Company Algebraic Interpreter Coding system.

	A pre-{Fortran} system on the {IBM 701} and {IBM 650}.

	(1995-02-08)

Bachman

	A proposed a style of {Entity-Relationship model} which
	differs from Chen's.

	(1995-02-08)

Bachman Information Systems

	<company> The company which merged with {CADRE} to form
	{Cayenne Software} in July 1996.

	(1998-02-06)

backbone

	<networking> The top level in a hierarchical {network}.  {Stub
	networks} and {transit networks} which connect to the same
	backbone are guaranteed to be interconnected.

	See also: {Internet backbone}.

	(1998-07-02)

backbone cabal

	<networking> A group of large-site administrators who pushed
	through the {Great Renaming} and reined in the chaos of
	{Usenet} during most of the 1980s.  The cabal {mailing list}
	disbanded in late 1988 after a bitter internal cat-fight.

	[{Jargon File}]

	(1994-11-28)

backbone site

	A key {Usenet}, {electronic mail} and/or {Internet} site; one
	that processes a large amount of third-party traffic,
	especially if it is the home site of any of the regional
	coordinators for the {Usenet} maps.  Notable backbone sites as
	of early 1993 include {uunet} and the mail machines at
	{Rutgers University}, UC Berkeley, {DEC}'s Western Research
	Laboratories, {Ohio State University} and the {University of
	Texas}.

	Compare {rib site}, {leaf site}.

	[{Jargon File}]

	(1994-11-28)

back door

	<security> (Or "{trap door}", "{wormhole}").  A hole in the
	security of a system deliberately left in place by designers
	or maintainers.  The motivation for such holes is not always
	sinister; some {operating systems}, for example, come out of
	the box with privileged accounts intended for use by field
	service technicians or the vendor's maintenance programmers.
	See also {iron box}, {cracker}, {worm}, {logic bomb}.

	Historically, back doors have often lurked in systems longer
	than anyone expected or planned, and a few have become widely
	known.  The infamous {RTM} worm of late 1988, for example,
	used a back door in the {BSD} Unix "sendmail(8)" {utility}.

	{Ken Thompson}'s 1983 Turing Award lecture to the {ACM}
	revealed the existence of a back door in early {Unix} versions
	that may have qualified as the most fiendishly clever security
	hack of all time.  The C compiler contained code that would
	recognise when the "login" command was being recompiled and
	insert some code recognizing a password chosen by Thompson,
	giving him entry to the system whether or not an account had
	been created for him.

	Normally such a back door could be removed by removing it from
	the source code for the compiler and recompiling the compiler.
	But to recompile the compiler, you have to *use* the compiler
	- so Thompson also arranged that the compiler would *recognise
	when it was compiling a version of itself*, and insert into
	the recompiled compiler the code to insert into the recompiled
	"login" the code to allow Thompson entry - and, of course, the
	code to recognise itself and do the whole thing again the next
	time around!  And having done this once, he was then able to
	recompile the compiler from the original sources; the hack
	perpetuated itself invisibly, leaving the back door in place
	and active but with no trace in the sources.

	The talk that revealed this truly moby hack was published as
	["Reflections on Trusting Trust", "Communications of the ACM
	27", 8 (August 1984), pp. 761--763].

	[{Jargon File}]

	(1995-04-25)

back-end

	<programming> Any software performing either the final stage
	in a process, or a task not apparent to the user.  A common
	usage is in a {compiler}.  A compiler's back-end generates
	{machine language} and performs optimisations specific to the
	machine's {architecture}.

	The term can also be used in the context of {network}
	applications.  E.g. "The back-end of the system handles
	{socket} protocols".

	Contrast {front end}.

	(1996-04-09)

Back End Generator

	<tool> (BEG) A {code generator} developed by H. Emmelmann et
	al at GMD, University Karlsruhe, Germany.  Its input language
	is Back End Generator Language (BEGL).

	{(ftp://gatekeeper.dec.com/pub/gmd/cocktail/beg)}.

	["BEG - A Generator for Efficient Back Ends", H. Emmelmann et
	al, SIGPLAN Notices 24(7):227-237 (Jul 1989)].

	["BEG - A Back End Generator - User Manual", H. Emmelmann,
	GMD, U Karlsruhe, 1990].

	[Summary?]

	(2000-12-16)

Back End Generator Language

	{Back End Generator}

backgammon

	See {bignum}, {moby}, {pseudoprime}.

	[{Jargon File}]

background

	1. <operating system> A task running in the background (a
	background task) is detached from the terminal where it was
	started (and often running at a lower priority); opposite of
	{foreground}.  This means that the task's input and output
	must be from/to files (or other processes).

	Nowadays this term is primarily associated with {Unix}, but it
	appears to have been first used in this sense on {OS/360}.

	Compare {amp off}, {batch}, {slopsucker}.

	2. <jargon> For a human to do a task "in the background" is to
	do it whenever {foreground} matters are not claiming your
	undivided attention, and "to background" something means to
	relegate it to a lower priority.  "For now, we'll just print a
	list of nodes and links; I'm working on the graph-printing
	problem in the background."  Note that this implies ongoing
	activity but at a reduced level or in spare time, in contrast
	to mainstream "back burner" (which connotes benign neglect
	until some future resumption of activity).  Some people prefer
	to use the term for processing that they have queued up for
	their unconscious minds (often a fruitful tack to take upon
	encountering an obstacle in creative work).

	(1996-05-28)

backing store

	1. <storage> Computer memory, usually {magnetic disks},
	storing data and programs.  Sections of this information can
	then be copied into the main memory ({RAM}) for processing.
	Backing store is cheaper but RAM is faster.  Such a hierarchy
	of memory devices allows a trade-off between performance and
	cost.

	2. <text> Character storage in memory or on disk, as opposed
	to displayed or printed characters.  This distinction is
	important where the visual ordering of characters differs from
	the order in which they are stored, e.g. bidirectional or
	non-spacing layout.

	In a {Unicode} encoding, text is stored in sequential order in
	the backing store.  Logical or backing store order corresponds
	to the order in which text is typed on the keyboard (after
	corrections such as insertions, deletions, and overtyping).  A
	text rendering process converts Unicode text in the backing
	store to readable text.

	["The Unicode Standard: Worldwide Character Encoding", Version
	1.0, Vol. 1. Addison-Wesley, 1991].

	(2001-02-25)

back link

	<hypertext> A {link} in one direction implied by the existence
	of an explicit link in the other direction.

	(1996-05-28)

backoff

	<networking> A {host} which has experienced a {collision} on a
	{network} waits for a amount of time before attempting to
	retransmit.  A random backoff minimises the probability that
	the same nodes will collide again, even if they are using the
	same backoff algorithm.  Increasing the backoff period after
	each collision also helps to prevent repeated collisions,
	especially when the network is heavily loaded.

	An example algorithm is {binary exponential backoff}.

	(1996-05-28)

BackOffice

	<software> A suite of network {server} software from
	{Microsoft} that includes {Windows NT} Server, BackOffice
	Server (for the integrated development, deployment, and
	management of BackOffice applications in departments, branch
	offices, and medium sized businesses); {Exchange Server};
	{Proxy Server}; {Site Server} for {intranet} publishing,
	management, and search; Site Server Commerce Edition For
	comprehensive {Internet commerce} transactions; {Small
	Business Server} for business operations, resource management,
	and customer relations; {SNA Server} for the integration of
	existing and new systems and data; {SQL Server} for scalable,
	reliable database and data-warehousing; {Systems Management
	Server} (SMS) for centralised change- and
	{configuration-management}.

	Latest version: 4.5, as of 2000-12-16.

	{(http://microsoft.com/backofficeserver/)}.

	(2000-12-16)

backplane

	<hardware, electronics> A {printed circuit board} with slots
	into which other cards are plugged.

	A backplane,is typically just a connector and does not usually
	have many active components on it.  This contrasts with a
	{motherboard}.

	{Designing a backplane
	(http://iec.org/online/tutorials/design_backplane/index.html)}.

	(2002-09-08)

backport

	<software> To make a feature from a later version of a piece
	of software available in an earlier version.  Backporting of
	features enables users of the older version to benefit from a
	feature without upgrading fully.

	(2003-12-18)

back-propagation

	(Or "backpropagation") A learning {algorithm} for modifying a
	{feed-forward} {neural network} which minimises a continuous
	"{error function}" or "{objective function}."
	Back-propagation is a "{gradient descent}" method of training
	in that it uses gradient information to modify the network
	weights to decrease the value of the error function on
	subsequent tests of the inputs.  Other gradient-based methods
	from {numerical analysis} can be used to train networks more
	efficiently.

	Back-propagation makes use of a mathematical trick when the
	network is simulated on a digital computer, yielding in just
	two traversals of the network (once forward, and once back)
	both the difference between the desired and actual output, and
	the derivatives of this difference with respect to the
	connection weights.

back quote

	<character> "`" {ASCII} code 96.  Common names: left quote;
	left single quote; open quote; {ITU-T}: grave accent; grave.
	Rare: backprime; {INTERCAL}: backspark; unapostrophe; birk;
	blugle; back tick; back glitch; push; {ITU-T}: opening single
	quotation mark; quasiquote.

	Back quote is used in {Unix} shells to invoke {command
	substitution}.

	(1996-11-26)

backronym

	<jargon> (Backward acronym) A word which has been turned into
	an acronym by inventing an expansion, rather than the other
	way around.  E.g. "{ping}".

	(2005-06-22)

backside cache

	<hardware, processor> An implementation of {secondary cache}
	memory that allows it to be directly accessed by the {CPU}.

	Backside cache is used by {Apple Computers, Inc.} in their
	{PowerPC G3} processor.  Previous PowerPC processors used the
	{system bus} to access both secondary cache and {main memory}.
	In the PowerPC G3 a dedicated bus handles only {CPU}/cache
	transactions.  This bus can operate faster than the system bus
	thus improving the overall performance of the processor.

	The term apparently derives from the relocation of the
	secondary cache from the {motherboard} to the processor card
	itself, i.e. on the backside of the processor card.

	(1998-09-10)

backslash

	<character> "\" {ASCII} code 92.  Common names: escape (from
	C/Unix); reverse slash; slosh; backslant; backwhack.  Rare:
	bash; {ITU-T}: reverse slant; reversed virgule; {INTERCAL}:
	backslat.

	Backslash is used to separate components in {MS-DOS}
	{pathnames}, and to introduce special character sequence in
	{C} and {Unix} strings, e.g. "\n" for newline.

	(2000-02-21)

backspace

	<character> (BS) {ASCII} code 8, Control-H.  The {control
	character} that should cause most output devices to move their
	current output position back to the previous character so that
	the next character output will replace (or overprint) it.
	Inputting a backspace (typically by pressing the backspace
	key) causes many systems to delete the character before the
	input cursor, though others use {delete} for this.

	See {twirling baton} for an imaginitive use of backspace.

	(2003-10-25)

backtick

	{back quote}

backtracking

	<algorithm> A scheme for solving a series of sub-problems each
	of which may have multiple possible solutions and where the
	solution chosen for one sub-problem may affect the possible
	solutions of later sub-problems.

	To solve the overall problem, we find a solution to the first
	sub-problem and then attempt to recursively solve the other
	sub-problems based on this first solution.  If we cannot, or
	we want all possible solutions, we backtrack and try the next
	possible solution to the first sub-problem and so on.
	Backtracking terminates when there are no more solutions to
	the first sub-problem.

	This is the algorithm used by {logic programming} languages
	such as {Prolog} to find all possible ways of proving a
	{goal}.  An optimisation known as "{intelligent backtracking}"
	keeps track of the dependencies between sub-problems and only
	re-solves those which depend on an earlier solution which has
	changed.

	Backtracking is one {algorithm} which can be used to implement
	{nondeterminism}.  It is effectively a {depth-first search} of
	a {problem space}.

	(1995-04-13)

backup

	<operating system> ("back up" when used as a verb) A spare
	copy of a file, file system, or other resource for use in the
	event of failure or loss of the original.

	The term commonly refers to a copy of the files on a
	computer's {disks}, made periodically and kept on {magnetic
	tape} or other removable medium (also called a "{dump}").

	This essential precaution is neglected by most new computer
	users until the first time they experience a {disk crash} or
	accidentally delete the only copy of the file they have been
	working on for the last six months.  Ideally the backup copies
	should be kept at a different site or in a fire safe since,
	though your hardware may be insured against fire, the data on
	it is almost certainly neither insured nor easily replaced.

	See also {backup software}, {differential backup},
	{incremental backup}, {full backup}.  Compare {archive},
	{source code management}.

	(2004-03-16)

Backup Domain Controller

	<networking> (BDC) A server in a {network} of {Microsoft
	Windows} computers that maintains a copy of the {SAM} database
	and handles access requests that the {Primary Domain
	Controller} (PDC) doesn't respond to.  There may be zero or
	more BDCs in a network.  They increase reliability and reduce
	load on the PDC.

	(2006-09-18)

backup pumpkin

	{pumpkin}

backup rotation

	<operating system> Any system for re-using {backup} media,
	e.g. {magnetic tape}.  One extreme would be to use the same
	media for every backup (e.g. copy disk A to disk B), the other
	extreme would be to use new media every time.  The trade-off
	is between the cost of buying and storing media and the
	ability to restore any version of any file.  One example is
	the {Grandfather, Father, Son} (GFS) scheme.

	(2004-10-08)

backup software

	<tool, software> {Software} for doing a {backup}, often
	included as part of the {operating system}.

	Backup software should provide ways to specify what files get
	backed up and to where.  It may include its own {scheduling}
	function to automate the procedure or, preferably, work with
	generic scheduling facilities.  It may include facilities for
	managing the backup media (e.g. maintaining an index of tapes)
	and for restoring files from backups.

	Examples are {Unix}'s {dump} command and {Windows}'s
	{ntbackup}.

	(2004-03-16)

Backus-Naur Form

	<language, grammar> (BNF, originally "Backus Normal Form") A
	formal {metasyntax} used to express {context-free grammars}.
	Backus Normal Form was renamed Backus-Naur Form at the
	suggestion of {Donald Knuth}.

	BNF is one of the most commonly used metasyntactic notations
	for specifying the {syntax} of programming languages, command
	sets, and the like.  It is widely used for language
	descriptions but seldom documented anywhere (how do you
	document a {metasyntax}?), so that it must usually be learned
	by osmosis (but see {RFC 2234}).

	Consider this BNF for a US postal address:

	 <postal-address> ::= <name-part> <street-address> <zip-part>

	 <personal-part> ::= <name> | <initial> "."

	 <name-part> ::= <personal-part> <last-name> [<jr-part>] <EOL>
		       | <personal-part> <name-part>

	 <street-address> ::= [<apt>] <house-num> <street-name> <EOL>

	 <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>

	This translates into English as: "A postal-address consists of
	a name-part, followed by a street-address part, followed by a
	zip-code part.  A personal-part consists of either a first
	name or an initial followed by a dot.  A name-part consists of
	either: a personal-part followed by a last name followed by an
	optional "jr-part" (Jr., Sr., or dynastic number) and
	end-of-line, or a personal part followed by a name part (this
	rule illustrates the use of recursion in BNFs, covering the
	case of people who use multiple first and middle names and/or
	initials).  A street address consists of an optional apartment
	specifier, followed by a street number, followed by a street
	name.  A zip-part consists of a town-name, followed by a
	comma, followed by a state code, followed by a ZIP-code
	followed by an end-of-line."

	Note that many things (such as the format of a personal-part,
	apartment specifier, or ZIP-code) are left unspecified.  These
	lexical details are presumed to be obvious from context or
	specified somewhere nearby.

	There are many variants and extensions of BNF, possibly
	containing some or all of the {regexp} {wild cards} such as
	"*" or "+".  {EBNF} is a common one.  In fact the example
	above isn't the pure form invented for the {ALGOL 60} report.
	"[]" was introduced a few years later in {IBM}'s {PL/I}
	definition but is now universally recognised.  {ABNF} is
	another extension.

	(1997-11-23)

Backus Normal Form

	{Backus-Naur Form}

backward analysis

	<theory> An analysis to determine properties of the inputs of
	a program from properties or context of the outputs.  E.g. if
	the output of this function is needed then this argument is
	needed.

	Compare {forward analysis}.

	(1997-11-23)

backward chaining

	<algorithm> An {algorithm} for proving a {goal} by recursively
	breaking it down into sub-goals and trying to prove these
	until {facts} are reached.  Facts are goals with no sub-goals
	which are therefore always true.  Backward training is the
	program execution mechanism used by most {logic programming}
	language like {Prolog}.

	Opposite: {forward chaining}.

	(2004-01-26)

backward combatability

	<humour> /bak'w*d k*m-bat'*-bil'*-tee/ (Play on "{backward
	compatibility}") A property of hardware or software revisions
	in which previous {protocols}, formats, layouts, etc. are
	irrevocably discarded in favour of "new and improved"
	protocols, formats and layouts, leaving the previous ones not
	merely deprecated but actively defeated.  (Too often, the old
	and new versions cannot definitively be distinguished, such
	that lingering instances of the previous ones yield crashes or
	other infelicitous effects, as opposed to a simple "version
	mismatch" message.)  A backward compatible change, on the
	other hand, allows old versions to coexist without crashes or
	error messages, but too many major changes incorporating
	elaborate backward compatibility processing can lead to
	extreme {software bloat}.

	See also {flag day}.

	[{Jargon File}]

	(2003-06-23)

backward compatibility

	<jargon> Able to share data or commands with older versions of
	itself, or sometimes other older systems, particularly systems
	it intends to supplant.  Sometimes backward compatibility is
	limited to being able to read old data but does not extend to
	being able to write data in a format that can be read by old
	versions.

	For example, {WordPerfect} 6.0 can read WordPerfect 5.1 files,
	so it is backward compatible.  It can be said that {Perl} is
	backward compatible with {awk}, because Perl was (among other
	things) intended to replace awk, and can, with a converter,
	run awk programs.

	See also: {backward combatability}.

	Compare: {forward compatible}.

	(2003-06-23)

backward compatible

	{backward compatibility}

backwards compatibility

	{backward compatibility}

backwards compatible

	{backward compatibility}

BAD

	/B-A-D/ Broken As Designed, a play on "{working as designed}",
	from {IBM}.  Failing because of bad design and misfeatures
	rather than because of bugs.

	[{Jargon File}]

	(2002-04-14)

Bad command or file name

	<operating system> The error message printed by {MS DOS} when
	it can't find a program or command to execute due to a typing
	error, incorrect PATH variable, or misplaced or missing
	executable.

	(1996-04-07)

Bad Thing

	<jargon> (From the 1930 Sellar & Yeatman parody "1066 And All
	That") Something that can't possibly result in improvement of
	the subject.  This term is always capitalised, as in
	"Replacing all of the 9600-baud modems with bicycle couriers
	would be a Bad Thing".

	Opposite: {Good Thing}.

	British correspondents confirm that {Bad Thing} and {Good
	Thing} (and probably therefore {Right Thing} and {Wrong
	Thing}) come from the book referenced in the etymology, which
	discusses rulers who were Good Kings but Bad Things.  This has
	apparently created a mainstream idiom on the British side of
	the pond.

	[{Jargon File}]

bag on the side

	An extension to an established hack that is supposed to add
	some functionality to the original.  Usually derogatory,
	implying that the original was being overextended and should
	have been thrown away, and the new product is ugly, inelegant,
	or bloated.  Also "to hang a bag on the side [of]".  "C++?
	That's just a bag on the side of C."  "They want me to hang a
	bag on the side of the accounting system."

baklava code

	<humour, programming> Code with too many layers.  Also known as
	Lasagne Code.

	[john-d-cook, {Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-09-14)

BAL

	{Basic Assembly Language}

balanced computing

	<jargon> Matching computer tools to job activities so that the
	computer system structure parallels the organisation structure
	and work functions.  Both {personal computers} and employees
	operate in a decentralised environment with monitoring of
	achievement of management objectives from centralised
	corporate systems.

	{(http://moultonco.com/balanced.htm)}.

	(1996-04-15)

balanced tree

	<algorithm> An optimisation of a {tree} which aims to keep
	equal numbers of items on each {subtree} of each node so as to
	minimise the maximum path from the root to any {leaf node}.
	As items are inserted and deleted, the tree is restructured to
	keep the nodes balanced and the search paths uniform.  Such an
	{algorithm} is appropriate where the overheads of the
	reorganisation on update are outweighed by the benefits of
	faster search.

	A {B-tree} is a kind of {balanced tree} that can have more
	than two subtrees at each node (i.e. one that is not
	restricted to being a {binary tree}).

	(2000-01-10)

BALGOL

	<language> {ALGOL} on {Burroughs 220}.

	[Sammet 1969, p. 174].

	(1996-04-15)

BALITAC

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

BALM

	<language> (Block And List Manipulation) An extensible
	language, developed by Malcolm Harrison in 1970, with
	{LISP}-like features and {ALGOL}-like {syntax}, for {CDC
	6600}.

	["The Balm Programming Language", Malcolm Harrison, Courant
	Inst, May 1973].

	(2007-03-01)

balun

	<electronics> A transformer connected between a balanced
	source or load and an unbalanced source or load.  A balanced
	line has two conductors, with equal currents in opposite
	directions.  The unbalanced line has just one conductor; the
	current in it returns via a common ground or earth path.

	(1996-10-17)

bamf

	/bamf/ 1. [Old X-Men comics] Notional sound made by a person
	or object teleporting in or out of the hearer's vicinity.
	Often used in {virtual reality} (especially {MUD}) electronic
	{fora} when a character wishes to make a dramatic entrance or
	exit.

	2. The sound of magical transformation, used in virtual
	reality {fora}.

	[{Jargon File}]

Banach algebra

	<mathematics> An {algebra} in which the {vector space} is a
	{Banach space}.

	(1997-02-25)

Banach inverse mapping theorem

	<mathematics> In a {Banach space} the inverse to a
	{continuous} {linear mapping} is continuous.

	(1998-06-25)

Banach space

	<mathematics> A {complete} {normed} {vector space}.  Metric is
	induced by the norm: d(x,y) = ||x-y||.  Completeness means
	that every {Cauchy sequence} converges to an element of the
	space.  All finite-dimensional {real} and {complex} normed
	vector spaces are complete and thus are Banach spaces.

	Using absolute value for the norm, the real numbers are a
	Banach space whereas the rationals are not.  This is because
	there are sequences of rationals that converges to
	irrationals.

	Several theorems hold only in Banach spaces, e.g. the {Banach
	inverse mapping theorem}.  All finite-dimensional real and
	complex vector spaces are Banach spaces.  {Hilbert spaces},
	spaces of {integrable functions}, and spaces of {absolutely
	convergent series} are examples of infinite-dimensional Banach
	spaces.  Applications include {wavelets}, {signal processing},
	and radar.

	[Robert E. Megginson, "An Introduction to Banach Space
	Theory", Graduate Texts in Mathematics, 183, Springer Verlag,
	September 1998].

	(2000-03-10)

Banach-Tarski paradox

	<mathematics> It is possible to cut a solid ball into finitely
	many pieces (actually about half a dozen), and then put the
	pieces together again to get two solid balls, each the same
	size as the original.

	This {paradox} is a consequence of the {Axiom of Choice}.

	(1995-03-29)

banana label

	<jargon> The labels used on the sides of {macrotape} reels, so
	called because they were shaped roughly like blunt-ended
	bananas.  This term, like macrotapes themselves, is obsolete.

	[{Jargon File}]

	(2007-10-17)

banana phenomenon

	{banana problem}

banana problem

	<programming, humour> From the story of the little girl who
	said "I know how to spell "banana", but I don't know when to
	stop".  Not knowing where or when to bring a production to a
	close (compare {fencepost error}).  One may say "there is a
	banana problem" of an {algorithm} with poorly defined or
	incorrect termination conditions, or in discussing the
	evolution of a design that may be succumbing to {featuritis}
	(see also {creeping elegance}, {creeping featuritis}).

	{HAKMEM} item 176 describes a banana problem in a {Dissociated
	Press} implementation.  Also, see {one-banana problem} for a
	superficially similar but unrelated usage.

	(2010-03-20)

bandwidth

	<communications> The difference between the highest and lowest
	frequencies of a transmission channel (the width of its
	allocated band of frequencies).

	The term is often used erroneously to mean {data rate} or
	capacity - the amount of {data} that is, or can be, sent
	through a given communications circuit per second.

	[How is data capacity related to bandwidth?]

	[{Jargon File}]

	(2001-04-24)

bang

	1. A common spoken name for "!" (ASCII 33), especially when
	used in pronouncing a {bang path} in spoken hackish.  In
	{elder days} this was considered a {CMU}ish usage, with {MIT}
	and {Stanford} hackers preferring {excl} or {shriek}; but the
	spread of {Unix} has carried "bang" with it (especially via
	the term {bang path}) and it is now certainly the most common
	spoken name for "!".  Note that it is used exclusively for
	non-emphatic written "!"; one would not say "Congratulations
	bang" (except possibly for humorous purposes), but if one
	wanted to specify the exact characters "foo!" one would speak
	"Eff oh oh bang".

	See {pling}, {shriek}, {ASCII}.

	2. An exclamation signifying roughly "I have achieved
	enlightenment!", or "The dynamite has cleared out my brain!"
	Often used to acknowledge that one has perpetrated a {thinko}
	immediately after one has been called on it.

	[{Jargon File}]

	(1995-01-31)

bang on

	(Or "pound on").  To stress-test a piece of hardware or
	software: "I banged on the new version of the simulator all
	day yesterday and it didn't crash once.  I guess it is ready
	for release."

	[{Jargon File}]

bang path

	1. <communications> An old-style {UUCP} {electronic-mail
	address} naming a sequence of hosts through which a message
	must pass to get from some assumed-reachable location to the
	addressee (a "{source route}").  So called because each {hop}
	is signified by a {bang} sign (exclamation mark).  Thus, for
	example, the path

		...!bigsite!foovax!barbox!me

	directs people to route their mail to computer bigsite
	(presumably a well-known location accessible to everybody) and
	from there through the computer foovax to the account of user
	me on barbox.

	Before {autorouting mailers} became commonplace, people often
	published compound bang addresses using the { } convention
	(see {glob}) to give paths from *several* big computers, in
	the hope that one's correspondent might be able to get mail to
	one of them reliably. e.g.

		...!{seismo, ut-sally, ihnp4}!rice!beta!gamma!me

	Bang paths of 8 to 10 hops were not uncommon in 1981.
	Late-night dial-up UUCP links would cause week-long
	transmission times.  Bang paths were often selected by both
	transmission time and reliability, as messages would often get
	lost.

	2. <operating system> A {shebang}.

	(1998-05-06)

banner

	1. The title page added to printouts by most {print spoolers}.
	Typically includes user or account ID information in very
	large character-graphics capitals.  Also called a "burst
	page", because it indicates where to burst (tear apart)
	fanfold paper to separate one user's printout from the next.

	2. A similar printout generated (typically on multiple pages
	of fan-fold paper) from user-specified text, e.g. by a program
	such as {Unix}'s "banner".

	3. {splash screen}.

	[{Jargon File}]

	(1994-11-28)

Banyan

	<company> A {personal computer} networking company, best known
	for its "{Vines}" products for {local area networks}.

	Address: Westborough MA, USA.

	[More info?]

	(1995-03-01)

BAP

	1. <language> An early system used on the {IBM 701}.

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

	(1994-11-28)

	2. <language> {Brain Aid Prolog}.

	(1995-03-07)

BAPI

	{Business Application Programming Interface}

bar

	1. <programming, convention> /bar/ The second {metasyntactic
	variable}, after {foo} and before {baz}.  E.g. "Suppose
	function FOO calls functions BAR..."

	2. Often appended to {foo} to produce {foobar}.

	[{Jargon File}]

	(1995-03-07)

Barbara Liskov

	<person> Professor Barbara Liskov was the first US woman to be
	awarded a PhD in computing, and her innovations can be found
	in every modern programming language.  She currently (2009)
	heads the Programming Methodology Group at the {Massachusetts
	Institute of Technology}.

	Professor Liskov's design innovations have, over the decades,
	made software more reliable and easier to maintain.  She has
	invented two computer progamming languages: {CLU}, an
	{object-orientated language}, and {Argus}, a {distributed
	programming language}.  Liskov's research forms the basis of
	modern programming languages such as {Java}, {C#} and {C++}.

	One of the biggest impacts of her work came from her
	contributions to the use of data abstraction, a method for
	organising complex programs.  See {Liskov substitution
	principle}.

	In June 2009 she will receive the {A. M. Turing Award}.

	{Barbara Liskov home (http://www.pmg.csail.mit.edu/~liskov/)}.

	(2009-03-11)

bar code

	<convention> A printed horizontal strip of vertical bars of
	varying widths, groups of which represent decimal digits and
	are used for identifying commercial products or parts.  Bar
	codes are read by a bar code reader and the code interpreted
	either through {software} or a {hardware} decoder.

	All products sold in open trade are numbered and bar-coded to
	a worldwide standard, which was introduced in the US in 1973
	and to the rest of the world in 1977.  The Uniform Code
	Council in the US, along with the international article
	numbering authority, EAN International, allocate blocks of
	unique 12 or 13-digit numbers to member companies through a
	national numbering authority.  In Britain this is the Article
	Number Association.  Most companies are allocated 100,000
	numbers that they can use to identify any of their products,
	services or locations.

	Each code typically contains a leading "quiet" zone, start
	character, data character, optional {check digit}, stop
	character and a trailing quiet zone.  The check digit is used
	to verify that the number has been scanned correctly.  The
	quiet zone could be white, red or yellow if viewed by a red
	scanner.  Bar code readers usually use visible red light with
	a wavelength between 632.8 and 680 nanometres.

	[Details of code?]

	(1997-07-18)

bare metal

	1. New computer hardware, unadorned with such snares and
	delusions as an {operating system}, an {HLL}, or even
	{assembler}.  Commonly used in the phrase "programming on the
	bare metal", which refers to the arduous work of {bit bashing}
	needed to create these basic tools for a new computer.  Real
	bare-metal programming involves things like building {boot
	PROMs} and {BIOS} chips, implementing basic {monitors} used to
	test {device drivers}, and writing the assemblers that will be
	used to write the compiler back ends that will give the new
	computer a real development environment.

	2. "Programming on the bare metal" is also used to describe a
	style of {hand-hacking} that relies on bit-level peculiarities
	of a particular hardware design, especially tricks for speed
	and space optimisation that rely on crocks such as overlapping
	instructions (or, as in the famous case described in {The
	Story of Mel}, interleaving of opcodes on a magnetic drum to
	minimise fetch delays due to the device's rotational latency).
	This sort of thing has become less common as the relative
	costs of programming time and computer resources have changed,
	but is still found in heavily constrained environments such as
	industrial embedded systems, and in the code of hackers who
	just can't let go of that low-level control.  See {Real
	Programmer}.

	In the world of personal computing, bare metal programming is
	often considered a {Good Thing}, or at least a necessary evil
	(because these computers have often been sufficiently slow and
	poorly designed to make it necessary; see {ill-behaved}).
	There, the term usually refers to bypassing the BIOS or OS
	interface and writing the application to directly access
	device registers and computer addresses.  "To get 19.2
	kilobaud on the serial port, you need to get down to the bare
	metal."  People who can do this sort of thing well are held in
	high regard.

	[{Jargon File}]

barf

	/barf/ [mainstream slang for "vomit"] 1.  Term of disgust.
	This is the closest hackish equivalent of the Val\-speak "gag
	me with a spoon". (Like, euwww!)  See {bletch}.

	2. To say "Barf!" or emit some similar expression of disgust.
	"I showed him my latest hack and he barfed" means only that he
	complained about it, not that he literally vomited.

	3. To fail to work because of unacceptable input, perhaps with
	a suitable error message, perhaps not.  Examples: "The
	division operation barfs if you try to divide by 0."  (That
	is, the division operation checks for an attempt to divide by
	zero, and if one is encountered it causes the operation to
	fail in some unspecified, but generally obvious, manner.) "The
	text editor barfs if you try to read in a new file before
	writing out the old one".

	See {choke}, {gag}.

	In Commonwealth Hackish, "barf" is generally replaced by
	"puke" or "vom".  {barf} is sometimes also used as a
	{metasyntactic variable}, like {foo} or {bar}.

	(1996-02-26)

barfmail

	<messaging> Multiple {bounce messages} accumulating to the
	level of serious annoyance, or worse.  The sort of thing that
	happens when an inter-network {mail gateway} goes down or
	misbehaves.

	[{Jargon File}]

	(1996-01-05)

barfulation

	/bar`fyoo-lay'sh*n/ Variation of {barf} used around the
	Stanford area.  An exclamation, expressing disgust.  On seeing
	some particularly bad code one might exclaim, "Barfulation!
	Who wrote this, Quux?"

	[{Jargon File}]

barfulous

	/bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of
	something that would make anyone barf, if only for aesthetic
	reasons.

	(1995-02-22)

barney

	In Commonwealth hackish, "barney" is to {fred} as {bar} is to
	{foo}.  That is, people who commonly use "fred" as their first
	{metasyntactic variable} will often use "barney" second.  The
	reference is, of course, to Fred Flintstone and Barney Rubble
	in the Flintstones cartoons.

	[{Jargon File}]

	(1994-11-28)

Baroque

	An early {logic programming} language written by Boyer and
	Moore in 1972.

	["Computational Logic: Structure Sharing and Proof of program
	Properties", J. Moore, DCL Memo 67, U Edinburgh 1974].

	[{Jargon File}]

	(1995-02-22)

baroque

	Feature-encrusted; complex; gaudy; verging on excessive.  Said
	of hardware or (especially) software designs, this has many of
	the connotations of {elephantine} or monstrosity but is less
	extreme and not pejorative in itself.  "{Metafont} even has
	features to introduce random variations to its letterform
	output.  Now *that* is baroque!"

	See also {rococo}.

	[{Jargon File}]

	(1995-02-22)

barrel shifter

	<hardware> A hardware device that can shift or rotate a data
	word by any number of bits in a single operation.  It is
	implemented like a {multiplexor}, each output can be connected
	to any input depending on the shift distance.

	(1995-03-28)

barycentric

	<mathematics> Centre of gravity, {mean}.

	(2007-07-10)

base

	<mathematics> {radix}.

base 64

	<file format, algorithm> A file format using 64 {ASCII}
	characters to encode the six bit {binary data} values 0-63.

	To convert data to base 64, the first byte is placed in the
	most significant eight bits of a 24-bit buffer, the next in
	the middle eight, and the third in the least significant eight
	bits.  If there a fewer than three bytes to encode, the
	corresponding buffer bits will be zero.  The buffer is then
	used, six bits at a time, most significant first, as indices
	into the string
	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
	and the indicated character output.  If there were only one or
	two input bytes, the output is padded with two or one "="
	characters respectively.  This prevents extra bits being added
	to the reconstructed data.  The process then repeats on the
	remaining input data.

	Base 64 is used when transmitting binary data through
	text-only media such as {electronic mail}, and has largely
	replaced the older {uuencode} encoding.

	(2004-07-17)

baseband

	A transmission medium through which digital signals are sent
	without frequency shifting.  In general, only one
	communication channel is available at any given time.

	{Ethernet} is an example of a baseband network.

	See also {broadband}.

	(1995-02-22)

base class

	<programming> (Or "superclass") The {class} from which another
	class (a "subclass") inherits, the class it is based on.

	"base class" is the term used in {C++}.  The objects of  the
	superclass are a superset of the objects of the subclass.

	See {inheritance}.

	(2004-01-31)

baseline

	{released version}

base memory

	<hardware, jargon> The lowest 640 {kilobytes} of memory in an
	{IBM PC}-compatible computer running {MS-DOS}.  Other PC
	{operating systems} can usually compensate and "ignore" the
	fact that there is a 640K limit to base memory.  This was put
	in place because the original {CPU} - the {Intel 8088} - could
	only access one {megabyte} of memory, and {IBM} wanted to
	reserve the upper 384KB for {device drivers}.  The {high
	memory area} (HMA) lies above 640KB and can be accessed on
	MS-DOS computers that have an {A20 handler}.

	(1997-05-30)

basename

	<file system> The name of a file which, in contrast to a
	{pathname}, does not mention any of the {directories}
	containing the file.  Examples:

		pathname	basename
		--------	--------
		/etc/hosts	hosts
		./alma		alma
		korte/a.a	a.a
		a.a		a.a

	See also {pathname}.

	(1996-11-23)

Base Technology

	<company> The company which developed and distributes {Liana}.

	{(http://BaseTechnology.com/)}.

	E-mail: Jack Krupansky <Jack@BaseTechnology.com> (owner).

	Address: Base Technology, Attn: Jack Krupansky, 1500 Mass. Ave. NW #114
	Washington, DC 2005, USA.
	800-786-9505

	Telephone: +1 800 876 9505.

	(1999-06-29)

bash

	Bourne Again SHell.  {GNU}'s {command interpreter} for {Unix}.
	Bash is a {Posix}-compatible {shell} with full {Bourne shell}
	syntax, and some {C shell} commands built in.  The Bourne
	Again Shell supports {Emacs}-style command-line editing, job
	control, functions, and on-line help.  Written by Brian Fox of
	{UCSB}.

	The latest version is 1.14.1.  It includes a {yacc} parser,
	the interpreter and documentation.

	{(ftp://ftp.gnu.org/bash-1.14.1.tar.gz)} or from a
	{GNU archive site}.  E-mail: <bug-bash@gnu.org>.
	{Usenet} newsgroup: {news:gnu.bash.bug}.

	(1994-07-15)

BASIC

	<language> Beginner's All-purpose Symbolic Instruction Code.
	A simple language originally designed for ease of programming
	by students and beginners.  Many dialects exist, and BASIC is
	popular on {microcomputers} with sound and graphics support.
	Most micro versions are {interactive} and {interpreted}.

	BASIC has become the leading cause of brain-damage in
	proto-hackers.  This is another case (like {Pascal}) of the
	cascading lossage that happens when a language deliberately
	designed as an educational toy gets taken too seriously.  A
	novice can write short BASIC programs (on the order of 10-20
	lines) very easily; writing anything longer is painful and
	encourages bad habits that will make it harder to use more
	powerful languages.  This wouldn't be so bad if historical
	accidents hadn't made BASIC so common on low-end micros.  As
	it is, it ruins thousands of potential wizards a year.

	Originally, all references to code, both {GOTO} and GOSUB
	(subroutine call) referred to the destination by its line
	number.  This allowed for very simple editing in the days
	before {text editors} were considered essential.  Just typing
	the line number deleted the line and to edit a line you just
	typed the new line with the same number.  Programs were
	typically numbered in steps of ten to allow for insertions.
	Later versions, such as {BASIC V}, allow {GOTO}-less
	{structured programming} with named {procedures} and
	{functions}, IF-THEN-ELSE-ENDIF constructs and {WHILE} loops
	etc.

	Early BASICs had no graphic operations except with graphic
	characters.  In the 1970s BASIC {interpreters} became standard
	features in {mainframes} and {minicomputers}.  Some versions
	included {matrix} operations as language {primitives}.

	A {public domain} {interpreter} for a mixture of {DEC}'s
	{MU-Basic} and {Microsoft Basic} is {here
	(ftp://oak.oakland.edu/pub/Unix-c/languages/basic/basic.tar-z)}.
	A {yacc} {parser} and {interpreter} were in the
	comp.sources.unix archives volume 2.

	See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC},
	{ubasic}, {Visual Basic}.

	[{Jargon File}]

	(1995-03-15)

Basic Assembly Language

	<language> (BAL) What most people called {IBM 360} {assembly
	language}.

	See {ALC}.

	(1995-04-13)

BASIC AUTOCODER

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

Basic COBOL

	<language> A subset of {COBOL} from {COBOL-60} standards.

	[Sammet 1969, p. 339].

	(1997-12-07)

Basic Encoding Rules

	<protocol, standard> (BER) {ASN.1} encoding rules for
	producing self-identifying and self-delimiting {transfer
	syntax} for data structures described in {ASN.1} notations.

	BER is an self-identifying and self-delimiting encoding
	scheme, which means that each data value can be identified,
	extracted and decoded individually.

	Huw Rogers once described BER as "a triumph of bloated theory
	over clean implementation".  He also criticises it as designed
	around bitstreams with arbitrary boundaries between data which
	can only be determined at a high level.

	Documents: {ITU-T} X.690, {ISO} 8825-1.

	See also {CER}, {DER}, {PER}.

	(1998-05-28)

Basic Fortran

	<language> A subset of {Fortran}.

	[Sammet 1969, p. 150].

	(1999-06-09)

Basic Input/Output System

	<operating system> (BIOS, ROM BIOS) The part of the {system
	software} of the {IBM PC} and compatibles that provides the
	lowest level interface to {peripheral} devices and controls
	the first stage of the {bootstrap} process, including
	installing the {operating system}.  The BIOS is stored in
	{ROM}, or equivalent, in every PC.  Its main task is to load
	and execute the operating system which is usually stored on
	the computer's {hard disk}, but may be loaded from {CD-ROM} or
	{floppy disk} at install time.

	In order to provide acceptable performance (e.g. for screen
	display), some software vendors access the routines in the
	BIOS directly, rather than using the higher level operating
	system calls.  Thus, the BIOS in the compatible computer must
	be 100% compatible with the IBM BIOS.

	As if that wasn't bad enough, many {application programs}
	bypass even the BIOS and address the screen hardware directly
	just as the BIOS does.  Consequently, {register} level
	compatibility is required in the compatible's display
	electronics, which means that it must provide the same storage
	locations and identification as the original IBM hardware.

	(1999-06-09)

Basic JOVIAL

	<language> A subset of {JOVIAL} written ca. 1965.

	[Sammet 1969, p.529].

	(1995-04-19)

Basic Language for Implementation of System Software

	<language> (BLISS, or allegedly, "System Software
	Implementation Language, Backwards") A language designed by
	W.A. Wulf at {CMU} around 1969.

	BLISS is an {expression language}.  It is {block-structured},
	and typeless, with {exception handling} facilities,
	{coroutines}, a {macro} system, and a highly {optimising
	compiler}.  It was one of the first non-{assembly languages}
	for {operating system} implementation.  It gained fame for its
	lack of a {goto} and also lacks implicit {dereferencing}: all
	symbols stand for addresses, not values.

	Another characteristic (and possible explanation for the
	backward acronym) was that BLISS fairly uniformly used
	backward {keywords} for closing blocks, a famous example being
	ELUDOM to close a MODULE.  An exception was BEGIN...END though
	you could use (...) instead.

	DEC introduced the NOVALUE keyword in their dialects to allow
	statements to not return a value.

	Versions: CMU {BLISS-10} for the PDP-10; CMU {BLISS-11},
	{BLISS-16}, DEC {BLISS-16C}, DEC {BLISS-32}, {BLISS-36} for
	{VAX}/{VMS}, {BLISS-36C}.

	["BLISS: A Language for Systems Programming", CACM
	14(12):780-790, Dec 1971].

	[Did the B stand for "Better"?]

	(1997-03-01)

Basic Multilingual Plane

	<text, standard> (BMP) The first plane defined in
	{Unicode}/{ISO 10646}, designed to include all {scripts} in
	active modern use.  The BMP currently includes the Latin,
	Greek, Cyrillic, Devangari, hiragana, katakana, and Cherokee
	scripts, among others, and a large body of mathematical,
	{APL}-related, and other miscellaneous {characters}.  Most of
	the {Han} {ideographs} in current use are present in the BMP,
	but due to the large number of ideographs, many were placed in
	the {Supplementary Ideographic Plane}.

	{Unicode home (http://unicode.org)}.

	(2002-03-19)

Basic Object Adapter

	<architecture> (BOA) Part of the {CORBA} architecture.

	[Details?]

	(2004-06-23)

Basic Object System

	<programming> (BOS) A {C}-callable library that implements the
	notion of {object} and which uses {Tcl} as its {interpreter}
	for interpreted {methods} (you can have "compiled" methods in
	C, and mix compiled and interpreted methods in the same
	object, plus lots more).  You can subclass and mix in existing
	objects using BOS to extend, among other things, the set of
	{tk} {widgets}.  BOS is a {class}-free object system, also
	called a prototype-based object system; it is modelled loosely
	on the {Self} system from {Stanford University}.

	Version 1.31 by Sean Levy <Sean.Levy@cs.cmu.edu>.

	{(ftp://barkley.berkeley.edu/tcl)}.

	(1992-08-21)

Basic Operating System

	<operating system> (BOS) An early [when?] {IBM} {operating
	system}.

	According to folklore, BOS was the predecessor to {TOS} on the
	{IBM 360} and it was {IPL}'d from a {card reader}.  It may
	have been intended for very small 360's with no disks and
	limited tape drives.

	BOS died out really early [when?] as disks such as the 2311
	and 2314 became common with the {IBM 360}, whereas disks had
	been a real luxury on the {IBM 7090}.

	(1999-01-29)

Basic Programming Support

	<operating system, tool> (BPS, colloquially: Barely
	Programming Support) A suite of utility routines from {IBM} to
	perform very simple procedures like formatting a disk or
	labelling a tape.  BPS was only available on {punched cards}.

	[Dates?]

	(1998-07-08)

Basic Rate Interface

	<communications> (BRI, 2B+D, 2B1D) An {Integrated Services
	Digital Network} channel consisting of two 64 {kbps} "bearer"
	(B) channels and one 16 kbps "delta" (D) channel, giving a
	total data rate of 144 kbps.  The B channels are used for
	voice or user data, and the D channel is used for control and
	signalling and/or {X.25} {packet} networking.  BRI is the kind
	of ISDN interface most likely to be found in residential
	service.

	(2002-01-13)

Basic Service Set

	<networking> (BSS) A {wireless local area network} and all the
	wireless devices (e.g. PCs and laptops) that are associated
	with it.  A BSS may or may not include an {access point} and
	is identified by a {BSSID}.

	(2009-05-12)

BASIC V

	The version of the {Basic} programming language which comes on
	{ROM} in {Acorn}'s {RISC} computers: the {Archimedes} range
	and the {RiscPC}.  It features REPEAT and WHILE loops,
	multi-line IF statements, procedures and functions, local
	variables, error handling, {system calls} and a built-in
	{assembler}.

	(1995-01-05)

Bastard Operator From Hell

	<humour> (BOFH) A rogue {network operator} character invented
	by Simon Travaglia <simontrav@hotmail.com>, regularly featured
	in "Computing" and "DATAMATION" magazine.

	See also: {Dilbert}.

	{(http://angelfire.com/bc/simont/index.html)}.

	(1999-09-17)

bastion host

	{proxy gateway}

batch

	{batch processing}

batch file

	<operating system> (Or script) A {text file} containing
	{operating system} commands which are executed automatically
	by the {command-line interpreter}.  In {Unix}, this is called
	a "{shell script}" since it is the Unix {shell} which includes
	the {command-line interpreter}.  Batch files can be used as a
	simple way to combine existing commands into new commands.

	In {Microsoft Windows}, batch files have {filename extension},
	".bat" or ".cmd".  A special example is {autoexec.bat} which
	{MS-DOS} runs when Windows starts.

	(2009-09-14)

batch processing

	<programming> A system that takes a sequence (a "batch") of
	commands or jobs, executes them and returns the results, all
	without human intervention.  This contrasts with an
	{interactive} system where the user's commands and the
	computer's responses are interleaved during a single run.

	A batch system typically takes its commands from a disk file
	(or a set of {punched cards} or {magnetic tape} in the
	{mainframe} days) and returns the results to a file (or prints
	them).  Often there is a queue of jobs which the system
	processes as resources become available.

	Since the advent of the {personal computer}, the term "batch"
	has come to mean automating frequently performed tasks that
	would otherwise be done interactively by storing those
	commands in a "{batch file}" or "{script}".  Usually this file
	is read by some kind of {command interpreter} but batch
	processing is sometimes used with GUI-based applications that
	define script equivalents for menu selections and other mouse
	actions.  Such a recorded sequence of GUI actions is sometimes
	called a "{macro}".  This may only exist in memory and may not
	be saved to disk whereas a batch normally implies something
	stored on disk.

	Unix {cron} jobs and Windows scheduled tasks are batch
	processing started at a predefined time by the system whereas
	mainframe batch jobs were typically initiated by an operator
	loading them into a queue.

	(2009-09-14)

bathtub curve

	Common term for the curve (resembling an end-to-end section of
	one of those claw-footed antique bathtubs) that describes the
	expected failure rate of electronics with time: initially
	high, dropping to near 0 for most of the system's lifetime,
	then rising again as it "tires out".  See also {burn-in
	period}, {infant mortality}.

	[{Jargon File}]

baud

	<communications, unit> /bawd/ (plural "baud") The unit in
	which the information carrying capacity or "{signalling rate}"
	of a communication channel is measured.  One baud is one
	symbol (state-transition or level-transition) per second.
	This coincides with bits per second only for two-level
	{modulation} with no {framing} or {stop bits}.

	A symbol is a unique state of the communication channel,
	distinguishable by the receiver from all other possible
	states.  For example, it may be one of two voltage levels on a
	wire for a direct digital connection or it might be the phase
	or frequency of a carrier.

	The term "baud" was originally a unit of telegraph signalling
	speed, set at one {Morse code} dot per second.  Or, more
	generally, the reciprocal of the duration of the shortest
	signalling element.  It was proposed at the International
	Telegraph Conference of 1927, and named after {J.M.E. Baudot}
	(1845-1903), the French engineer who constructed the first
	successful teleprinter.

	The UK {PSTN} will support a maximum rate of 600 baud but each
	baud may carry between 1 and 16 bits depending on the coding
	(e.g. {QAM}).

	Where data is transmitted as {packets}, e.g. characters, the
	actual "data rate" of a channel is

		R D / P

	where R is the "raw" rate in bits per second, D is the number
	of data bits in a packet and P is the total number of bits in
	a packet (including packet overhead).

	The term "baud" causes much confusion and is usually best
	avoided.  Use "bits per second" (bps), "bytes per second" or
	"characters per second" (cps) if that's what you mean.

	(1998-02-14)

baud barf

	<jargon> /bawd barf/ The garbage one gets on the {display
	screen} when using a {modem} connection with some {protocol}
	setting (especially line speed) incorrect, or when someone
	picks up a voice extension on the same line, or when really
	bad line noise disrupts the connection.  Baud barf is not
	completely {random}, by the way; hackers with a lot of
	serial-line experience can usually tell whether the device at
	the other end is expecting a higher or lower speed than the
	{terminal} is set to.  *Really* experienced ones can identify
	particular speeds.

	[{Jargon File}]

	(1996-02-22)

Baudot

	{Jean-Maurice-Émile Baudot}

Baudotbetical order

	<algorithm> /baw do bet' i k*l/ Sorted into an order where
	numerics and special characters are intermixed by sorting a 5-bit
	{Baudot code} file ignoring the numeric shift and unshift codes.

	(1997-02-11)

Baudot code

	<communications> (For etymology, see {baud}) A {character set}
	predating {EBCDIC} and used originally and primarily on {paper
	tape}.  Use of Baudot reportedly survives in {TDDs} and some
	HAM radio applications.

	In Baudot, characters are expressed using five {bits}.  Baudot
	uses two code sub-sets, the "letter set" (LTRS), and the
	"figure set" (FIGS).  The FIGS character (11011) signals that
	the following code is to be interpreted as being in the FIGS
	set, until this is reset by the LTRS (11111) character.

	 binary  hex    LTRS   FIGS
	 --------------------------
	  00011  03      A      -
	  11001  19      B      ?
	  01110  0E      C      :
	  01001  09      D      $
	  00001  01      E      3
	  01101  0D      F      !
	  11010  1A      G      &
	  10100  14      H      #
	  00110  06      I      8
	  01011  0B      J      BELL
	  01111  0F      K      (
	  10010  12      L      )
	  11100  1C      M      .
	  01100  0C      N      ,
	  11000  18      O      9
	  10110  16      P      0
	  10111  17      Q      1
	  01010  0A      R      4
	  00101  05      S      '
	  10000  10      T      5
	  00111  07      U      7
	  11110  1E      V      ;
	  10011  13      W      2
	  11101  1D      X      /
	  10101  15      Y      6
	  10001  11      Z      "
	  01000  08      CR     CR
	  00010  02      LF     LF
	  00100  04      SP     SP
	  11111  1F      LTRS   LTRS
	  11011  1B      FIGS   FIGS
	  00000  00      [..unused..]

	Where CR is {carriage return}, LF is {linefeed}, BELL is the
	{bell}, SP is space, and STOP is the stop character.

	Note: these bit values are often shown in inverse order,
	depending (presumably) which side of the {paper tape} you were
	looking at.

	Local implementations of Baudot may differ in the use of #,
	STOP, BELL, and '.

	(1997-01-30)

baud rate

	{baud}

bawk

	An {Awk}-like pattern-matching language by Bob Brodt,
	distributed with {MINIX}.

	(1994-11-28)

bay

	<hardware> (As in an aeroplane "cargo bay") A space in a
	cabinet into which a device of a certain size can be
	physically mounted and connected to power and data.

	Common examples are a "drive bay" into which a {disk drive}
	(usually either 3.5 inch or 5.25 inch) can be inserted or the
	space in a {docking station} where you insert a {notebook
	computer} or {laptop computer} to work as a {desktop computer}
	or to charge their batteries, print or connect to the office
	network, etc.

	(1999-01-11)

baz

	/baz/ The third {metasyntactic variable} "Suppose we have
	three functions: FOO, BAR, and BAZ.  FOO calls BAR, which
	calls BAZ..." (See also {fum}).  Occasionally appended to
	{foo} to produce "foobaz".

	Early versions of the Hacker Jargon dictionary derived "baz"
	as a Stanford corruption of {bar}.  However, Pete Samson
	(compiler of the {TMRC} lexicon) reports it was already
	current when he joined TMRC in 1958.  He says "It came from
	"Pogo".  Albert the Alligator, when vexed or outraged, would
	shout "Bazz Fazz!" or "Rowrbazzle!"  The club layout was said
	to model the (mythical) New England counties of Rowrfolk and
	Bassex (Rowrbazzle mingled with Norfolk/Suffolk/Middlesex/
	Essex)."

	[{Jargon File}]

	(2008-06-30)

bb

	<networking> The {country code} for Barbados.

	(1999-01-27)

BBC

	{British Broadcasting Corporation}

BBC Micro

	{BBC Microcomputer}

BBC Microcomputer

	A series of {6502}-based personal computers launched by {Acorn
	Computers} Ltd. in January 1982, for use in the British
	Broadcasting Corporation's educational programmes on
	computing.  The computers are noted for their reliability (many
	are still in active service in 1994) and both hardware and
	software were designed for easy expansion.  The 6502-based
	computers were succeeded in 1987 by the Acorn {Archimedes}
	family.

	{xbeeb} is a BBC Micro {emulator} for {Unix} and {X11}.

BBC Networking Club

	<body> A {bulletin board} run by the {British Broadcasting
	Corporation} Education department from April 1994 to 30 Nov
	1995.

	(1997-01-20)

BBL

	<chat> (I will) be back later.

BBN Butterfly

	<computer> A {supercomputer} developed at {BBN Technologies},
	named after the "butterfly" multi-stage switching network
	around which it was built.  It could have up to 512 {CPUs}
	connected to allow every CPU access to every other CPU's
	memory, albeit with about 15 times the latency than for its
	own.  The earlier GP-1000 models used up to 256 {Motorola
	68020s}.  The later TC-2000 models used up to 512 {Motorola
	88100s}.

	Language developed for, or ported to, the BBN Butterfly were
	{Butterfly Common LISP}, {Butterfly Scheme}, {Delirium}, and
	{MultiScheme}.

	{(http://paralogos.com/DeadSuper/Misc/BBN.html)}.

	(2003-11-10)

BBN Technologies

	<company> A company, originally known as Bolt, Beranek and
	Newman, Inc. (BBN), based in Cambridge, Massachusetts, USA.

	BBN were awarded the original contract to build the {ARPANET}
	and have been extensively involved in {Internet} development.
	They are responsible for managing {NNSC}, {CSNET}, and
	{NEARnet}.

	The language {LOGO} was developed at BBN, as was the {BBN
	Butterfly} supercomputer.

	{BBN Home (http://bbn.com/)}.

	(2003-11-10)

bboard

	{bulletin board system}

BBS

	{bulletin board system}

BC

	An {arbitrary precision} numeric processing language with
	{C}-like {syntax}.  Traditionally implemented as a front-end
	to {DC}.  There is a {GNU} version called {GNU BC}.

	{Unix manual page}: bc(1).

BCBF

	{Branch on Chip Box Full}

BCC

	1. {Blind Carbon Copy}.

	2. {Block Check Character}.

	3. {Blocked Call Cleared}.

BCD

	{binary coded decimal}

BCL

	The successor to {Atlas Commercial Language}.

	["The Provisional BCL Manual", D. Hendry, U London 1966].

BC NELIAC

	Version of NELIAC, post 1962.  Sammet 1969, p.197.

BCNU

	Be seein' you.

BCPL

	<language> (Basic CPL) A British systems language developed by
	Richards in 1969 and descended from {CPL} (Combined
	Programming Language).  BCPL is low-level, typeless and
	block-structured, and provides only one-dimensional {arrays}.
	Case is not significant, but conventionally reserved words
	begin with a capital.  Flow control constructs include:
	If-Then, Test-Then-Else, Unless-Do, While-Do, Until-Do,
	Repeat, Repeatwhile, Repeatuntil, For-to-By-Do, Loop, Break
	and Switchon-Into-Case-Default-Endcase.  BCPL has conditional
	expressions, pointers, and manifest constants.  It has both
	procedures: 'Let foo(bar) Be command' and functions: 'Let
	foo(bar) = expression'.  'Valof $(..Resultis..$)' causes a
	compound command to produce a value.  Parameters are
	{call-by-value}.

	Program segments communicate via the global vector where
	system and user variables are stored in fixed numerical
	locations in a single array.

	The first BCPL {compiler} was written in {AED}.  BCPL was used
	to implement the {TRIPOS} {operating system}, which was
	subsequently reincarnated as {AmigaDOS}.

	["BCPL - The Language and its Compiler", Martin Richards &
	Colin Whitby-Stevens, Cambridge U Press 1979].

	See {OCODE}, {INTCODE}.

	Oxford BCPL differed slightly: Test-Ifso-Ifnot, and section
	brackets in place of $( $).

	The original {INTCODE} {interpreter} for BCPL is available for
	{Amiga}, {Unix}, {MS-DOS}
	{(ftp://wuarchive.wustl.edu/systems/amiga/programming/languages/BCPL/)}.

	A BCPL compiler {bootstrap} kit with an {INTCODE}
	{interpreter} in {C} was written by Ken Yap
	<ken@syd.dit.csiro.au>.

	(1995-03-26)

BCS

	1. {British Computer Society}.

	2. {Binary Compatibility Standard}.

bd

	<networking> The {country code} for Bangladesh.

	(1999-01-27)

BDC

	{Backup Domain Controller}

BDL

	{Block Diagram Compiler}

BDPA

	{Black Data Processing Associates}

be

	<networking> The {country code} for Belgium.

	(1999-01-27)

BEA

	Basic programming Environment for interactive-graphical
	Applications, from Siemens-Nixdorf.

beam

	<jargon> (From Star Trek Classic's "Beam me up, Scotty!") To
	transfer {softcopy} of a file electronically; most often in
	combining forms such as "beam me a copy" or "beam that over to
	his site".  Compare {blast}, {snarf}, {BLT}.

	[{Jargon File}]

	(2009-06-09)

beamer

	<video, hardware, communications> A personal video station
	(PVS) that adds video to standard telephone lines at no
	additional cost.

	(1999-10-24)

beam search

	<algorithm> An optimisation of the {best first search} {graph
	search algorithm} where only a predetermined number of paths
	are kept as candidates.  The number of paths is the "width of
	the beam".  If more paths than this are generated, the worst
	paths are discarded.  This reduces the space requirements of
	best first search.

	(2007-11-03)

bean

	{JavaBeans}

beanie key

	{feature key}

bearer channel

	<communications> Originally, a channel suited for carrying one
	voice-grade connection.  Typically a {DS0} channel.

	Compare {data channel}.

	(1997-03-7)

bear paw

	<jargon> The {Vulcan nerve pinch} for {SGI} computers.  The
	five key keyboard combination <left Ctrl><left Alt><left
	Shift><{numeric keypad} /><F12> resets the graphics subsystem,
	including the {window manager}.

	(1996-10-28)

Beats the shit outa me

	<exclamation> (BSOM) "I don't understand it".  The last thing
	you say as you walk out on someone whose system you can't fix.

	(1998-06-15)

Bebo

	<World-Wide Web> A {social networking} web site based in
	California, USA.

	{Bebo Home (http://bebo.com/)}.

	(2006-11-20)

BeBOP

	<language> A language combining sequential and parallel {logic
	programming}, {object-oriented} and {meta-level programming}.
	Both {don't know nondeterminism} and {stream AND-parallelism}.
	{Prolog} {theories} are first order entities and may be
	updated or passed in messages.  BeBOP is implemented by
	translation to {NU-Prolog} and {PNU-Prolog}.

	{(ftp://munnari.oz.au/pub/bebop.tar.Z)}.

	E-mail: Andrew Davidson <ad@cs.mu.oz.au>.

	(1996-10-27)

BeBox

	<computer> A {microcomputer} produced by {Be Inc}, containing
	between two and eight {PowerPCs} (the initial model has two
	{PPC} 603s). The BeBox can take standard {IBM PC}
	{peripherals}, such as {ISA} and {PCI} cards, {IDE} and {SCSI}
	disks, and a standard {PS/2} keyboard.

	Newsgroup: {news:comp.sys.be}.

	{(http://be.com/)}.

	[Dates?]

	(1996-10-05)

BEDO

	{Burst Extended Data Out DRAM}

Bedrock

	A {C++} {class} library for {Macintosh} user interface
	portability.

beep

	{bell}

beeper

	{pager}

BEG

	{Back End Generator}

@Begin

	<text> The {Scribe} equivalent of {\begin}.

	[{Jargon File}]

\begin

	<text, chat> The {LaTeX} command used with \end to delimit an
	environment within which the text is formatted in a certain
	way.  E.g. \begin{table}...\end{table}.

	Used humorously in writing to indicate a context or to remark
	on the surrounded text.  For example:

	 \begin{flame}
	 Predicate logic is the only good programming
	 language.  Anyone who would use anything else
	 is an idiot.  Also, all computers should be
	 tredecimal instead of binary.
	 \end{flame}

	{Scribe} users at {CMU} and elsewhere used to use @Begin/@End
	in an identical way (LaTeX was built to resemble Scribe).  On
	{Usenet}, this construct would more frequently be rendered as
	"<FLAME ON>" and "<FLAME OFF>" (a la {HTML}), or "#ifdef
	FLAME" and "#endif FLAME" (a la {C preprocessor}).

	(1998-09-21)

BEGL

	{Back End Generator}

beige toaster

	{Macintosh}

Be Inc

	<company> The company that produced the {BeBox}, founded by
	Jean-Louis Gassee, former product chief at {Apple}.

	(1996-10-05)

BEL

	{bell}

belief revision

	<artificial intelligence> The area of {theory change} in which
	preservation of the information in the theory to be changed
	plays a key role.

	A fundamental issue in belief revision is how to decide what
	information to retract in order to maintain consistency, when
	the addition of a new belief to a theory would make it
	inconsistent.  Usually, an ordering on the sentences of the
	theory is used to determine priorities among sentences, so
	that those with lower priority can be retracted.  This
	ordering can be difficult to generate and maintain.

	The postulates of the {AGM Theory for Belief Revision}
	describe minimal properties a revision process should have.

	[Better definition?]

	(1995-03-20)

BELL

	An early system on the {IBM 650} and {Datatron 200} series.

	Versions: BELL L2, BELL L3.

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

	[Is Datatron version the same?]

	(1994-12-06)

Bell

	<company> {Bell Telephone} or {Bell Laboratories}.

	(1997-04-07)

bell

	<character> {ASCII} 7, ASCII {mnemonic} "BEL", the {character
	code} which prodces a standard audibile warning from the
	computer or {terminal}.  In the {teletype} days it really was a
	bell, since the advent of the {VDU} it is more likely to be a
	sound sample (e.g. the sound of a bell) played through a
	loudspeaker.

	Also called "G-bell", because it is typed as Control-G.

	The term "beep" is preferred among some {microcomputer}
	hobbyists.

	Compare {feep}, {visible bell}.

	(1997-04-08)

Bell 103

	<protocol> The original variant of {V.21} created by {AT&T}
	when they had a telephone system monopoly in the USA.

	(1995-02-02)

Bell Communications Research, Inc

	(Bellcore) The research laboratory for the seven regional
	{Bell Telephone} companies in the USA that were created by the
	divestiture of {AT&T} in 1984.

	It can be compared to {Bell Laboratories}, for which many
	Bellcore employees used to work.  Currently jointly owned by
	the seven baby bells (as they are called), there are rumours
	that it is to be sold by its current owners to become an
	independent research laboratory

	Its headquarters are in Livingstone, New Jersey.  It has
	offices in Morristown, Lincroft, and Piscataway, all in
	New Jersey, USA.

	Telephone: +1 (201) 74 3000, +1 (800) 521 CORE.

	(1994-12-06)

Bellcore

	{Bell Communications Research, Inc.}

bell curve

	{normal distribution}

Bell Laboratories

	One of {AT&T}'s research sites, in Murray Hill, New Jersey,
	USA.  It was the birthplace of the {transistor}, {Unix}, {C}
	and {C++} and the current home of research on {Plan 9} and
	{ODE}.

	{AT&T Research (http://research.att.com/)}.

	{(ftp://ftp.research.att.com/)}.

	{netlib} sources {(ftp://netlib.att.com)}.

	(1994-11-17)

Bell Labs

	{Bell Laboratories}

bells and whistles

	<jargon> (By analogy with the "toyboxes" on theatre organs).
	Features added to a program or system to make it more
	{flavourful} from a hacker's point of view, without
	necessarily adding to its utility for its primary function.
	Distinguished from {chrome}, which is intended to attract
	users.  "Now that we've got the basic program working, let's
	go back and add some bells and whistles."  No one seems to
	know what distinguishes a bell from a whistle.

	[{Jargon File}]

	(2007-04-03)

bells, whistles, and gongs

	A standard elaborated form of {bells and whistles}; typically
	said with a pronounced and ironic accent on the "gongs".

benchmark

	<benchmark> A standard program or set of programs which can be
	run on different computers to give an inaccurate measure of
	their performance.

	"In the computer industry, there are three kinds of lies:
	lies, damn lies, and benchmarks."

	A benchmark may attempt to indicate the overall power of a
	system by including a "typical" mixture of programs or it may
	attempt to measure more specific aspects of performance, like
	graphics, I/O or computation (integer or {floating-point}).
	Others measure specific tasks like {rendering} polygons,
	reading and writing files or performing operations on
	matrices.  The most useful kind of benchmark is one which is
	tailored to a user's own typical tasks.  While no one
	benchmark can fully characterise overall system performance,
	the results of a variety of realistic benchmarks can give
	valuable insight into expected real performance.

	Benchmarks should be carefully interpreted, you should know
	exactly which benchmark was run (name, version); exactly what
	configuration was it run on (CPU, memory, compiler options,
	single user/multi-user, peripherals, network); how does the
	benchmark relate to your workload?

	Well-known benchmarks include {Whetstone}, {Dhrystone},
	{Rhealstone} (see {h}), the {Gabriel benchmarks} for {Lisp},
	the {SPECmark} suite, and {LINPACK}.

	See also {machoflops}, {MIPS}, {smoke and mirrors}.

	{Usenet} newsgroup: {news:comp.benchmarks}.

	{Tennessee BenchWeb (http://netlib.org/benchweb/)}.

	[{Jargon File}]

	(2002-03-26)

Bend Over, Here It Comes Again

	<humour> (BOHICA) An utterance of frustration by computer
	support personnel who anticipate being told (usually via
	phone) to do something that can't be done, by a boss who
	doesn't know his ass from deep center field about what he's
	asking his minions to do.

	(1995-09-20)

Benoit B. Mandelbrot

	{Benoit Mandelbrot}

Benoit Mandelbrot

	<person> /ben'wa man'dl-bro/ Benoit B. Mandelbrot.  The {IBM}
	scientist who wrote several original books on {fractals} and
	gave his name to the set he was discovered, the {Mandelbrot
	set} and coined the term "fractal" in 1975 from the Latin
	fractus or "to break".

	(1997-07-02)

Bentley Systems, Inc.

	<company> The company that sells {MicroStation}.

	Address: Exton, PA, USA.

	{(http://bentley.com/)}.

	(2001-05-18)

BeOS

	<operating system> The {operating system} originally designed
	to run on the {BeBox} {microcomputer}.  BeOS is good at both
	{multitasking} and {real-time} operation.  It has a {bash}
	command shell, with ports of many {GNU} programs by Be, Inc.
	It has a {GUI} front end (not {X}).  A {C++} {compiler} is
	supplied with the machine, and there are rumours of other
	languages being ported in the future.

	BeOs eventually became used on the {x86} and
	standard {PPC}.

	Be, Inc. went bankrupt in 1999, after releasing the last
	upgrade of BeOS (R5.0.3), and was sold to {Palm}.

	Several groups are currently (2003) attempting to create an R6
	version of the OS.  The most likely to succeed are {Yellowtab}
	and {OpenBeOS}, which is likely to be renamed.

	(2003-05-30)

BER

	1. <protocol, standard> {Basic Encoding Rules}.

	2. <communications> {Bit Error Rate}.

Berkeley

	{University of California at Berkeley}

Berkeley 4.2

	{Berkeley Software Distribution}

Berkeley EDIF200

	translator-building toolkit

	Wendell C. Baker and Prof A. Richard Newton of the Electronics
	Research Laboratory, Department of Electrical Engineering and
	Computer Sciences at the {University of California, Berkeley}.

	Version 7.6.  Restriction: no-profit without permission.

	{(ftp://ic.berkeley.edu/pub/edif)}.

	(1990-07-01)

Berkeley FP

	<language> A version of {Backus}'s {FP} distributed with
	{4.2BSD} {Unix}.

	{(ftp://apple.com/ArchiveVol1/Unix_lang)}.

	(1997-12-15)

Berkeley Internet Name Domain

	<networking> (BIND) An implementation of a {DNS} {server}
	developed and distributed by the {University of California at
	Berkeley}.

	Many {Internet} {hosts} run BIND, and it is the ancestor of
	many commercial implementations.

	(1997-12-15)

Berkeley Logo

	<language> A {Logo} {interpreter} by Brian Harvey
	<bh@cs.berkeley.edu>.  Berkeley Logo programs will run on
	{Unix}, {IBM PC}, or {Macintosh}.  It doesn't do anything
	fancy about graphics and only allows one {turtle}.

	Version: 4.6, as of 2000-03-21.

	{MswLogo} is a {Microsoft Windows} {front end}.

	{(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}.

	(2000-03-28)

Berkeley Network

	(B-NET) Top level {Unix} {Ethernet} software developed at the
	{University of California at Berkeley}.  There are no formal
	specifications but UCB's {4.2BSD} {Unix} implementation on the
	{VAX} is the de facto standard.  Distributed by {Unisoft}.
	Includes net.o driver routines for specific hardware, {pseudo
	ttys}, {daemons}, hostname command to set/get name, /etc/hosts
	database of names and {Internet address}es of other hosts,
	/etc/hosts.equiv host-wide database to control remote access,
	.rhosts per user version of hosts.equiv.

	UCB's implementation of the {Internet Protocol} includes
	trailers to improve performance on paged memory management
	systems such as {VAXen}.  These trailers are an exception to
	the Internet Protocol specification.

Berkeley Quality Software

	<abuse> (Often abbreviated "BQS") Term used in a pejorative
	sense to refer to software that was apparently created by
	rather spaced-out hackers late at night to solve some unique
	problem.  It usually has nonexistent, incomplete, or incorrect
	documentation, has been tested on at least two examples, and
	core dumps when anyone else attempts to use it.  This term was
	frequently applied to early versions of the "dbx(1)" debugger.

	See also {Berzerkeley}.

	[{Jargon File}]

	(1996-01-15)

Berkeley Software Design, Inc

	<company> (BSDI) A company that sells {BSD/OS}, a commercial
	version of {Berkeley Standard Distribution} {Unix},
	networking, and Internet technologies originally developed by
	the {Computer Systems Research Group} (CSRG) at the
	{University of California at Berkeley}.

	Leading CSRG computer scientists founded BSDI in 1991.  BSDI's
	BSD/OS represents over 20 years of development by the
	worldwide BSD technical community.  BSD technology is known
	worldwide for its powerful, flexible and portable architecture
	and advanced development environments.

	BSDI designs, develops, markets, and supports the {BSD/OS}
	{operating system}, {Internet} server software for {IBM PCs},
	and other products.  BSDI planned to release an Internet
	gateway product for {Novell} {IPX} networks in 1995.

	{(http://bsdi.com/)}.

	E-mail: <bsdi-info@bsdi.com>.

	Address: 5575 Tech Center Drive, #110, Colorado Springs, CO
	80918, USA.  Telephone: +1 (719) 593 9445.  Fax: +1 (719) 598
	4238.

	(1996-01-13)

Berkeley Software Distribution

	<operating system> (BSD) A family of {Unix} versions developed
	by {Bill Joy} and others at the {University of California at
	Berkeley}, originally for the {DEC} {VAX} and {PDP-11}
	computers, and subsequently ported to almost all modern
	general-purpose computers.  BSD Unix incorporates {paged}
	{virtual memory}, {TCP/IP} networking enhancements and many
	other features.

	BSD UNIX 4.0 was released on 1980-10-19.  The BSD versions
	(4.1, 4.2, and 4.3) and the commercial versions derived from
	them ({SunOS}, {ULTRIX}, {Mt. Xinu}, {Dynix}) held the
	technical lead in the Unix world until {AT&T}'s successful
	standardisation efforts after about 1986, and are still widely
	popular.

	See also {Berzerkeley}, {USG Unix}.

	(2005-01-20)

Berkeley Softworks

	<company> The company that wrote {Graffiti} and a similar
	scheme for the {Commodore 64} (made it very {Macintosh}-like)
	and the {Commodore 128} (which could {multitask}).

	(1995-01-24)

Berkeley Unix

	{Berkeley Software Distribution}

Berkeley Yacc

	<tool> (byacc, previously Zeus, then Zoo) Probably the best
	variant of the {Yacc} {parser generator}.  Written by Robert
	Corbett <Robert.Corbett@eng.sun.com>.

	Latest version: 1.9, as of 2000-06-09.

	{(ftp://ftp.cs.berkeley.edu/pub/4bsd/byacc.1.9.tar.Z)}.

	(2000-07-16)

berklix

	/berk'liks/ (From {Berkeley Unix}) {Berkeley Software
	Distribution}.  Not used at {Berkeley} itself.  May be more
	common among {suits} attempting to sound like cognoscenti than
	among hackers, who usually just say "BSD".

	[{Jargon File}]

	(1995-02-23)

Berners-Lee, Tim

	{Tim Berners-Lee}

Bernoulli Box

	<storage> A high capacity storage device, {Iomega
	Corporation}'s first popular product, that spins a mylar disk
	over a read-write head using the {Bernoulli principle}.

	(1997-04-15)

Bernoulli principle

	(Or "air foil principle", after Swiss mathematician Daniel
	Bernoulli, 1700-1782) The law that pressure in a fluid
	decreases with the rate of flow.  It has been applied to a
	class of {hard disk} drives.

	See {Bernoulli Box}.

	(1997-04-15)

Bernstein condition

	<parallel> Processes cannot execute in parallel if one effects
	values used by the other.  Nor can they execute in parallel if
	any subsequent process uses data effected by both, i.e. whose
	value might depend on the order of execution.

	(1995-02-23)

BERR

	{bus error}

Bertrand

	(Named after the British mathematician Bertrand Russell
	(1872-1970)).  Wm. Leler.  Rule-based specification language
	based on augmented term rewriting.  Used to implement
	constraint languages.  The user must explicitly specify the
	tree-search and the constraint propagation.

	{(ftp://nexus.yorku.ca/pub/scheme/scm/bevan.shar)}.

	["Constraint Programming Languages - Their Specification and
	Generation", W. Leler, A-W 1988, ISBN 0-201-06243-7].

Bertrand Meyer

	The author of the {Eiffel} Language and many articles on
	{object-oriented} software techniques.

	(1995-03-01)

Bertrand Russell

	<person> (1872-1970) A British mathematician, the discoverer
	of {Russell's paradox}.

	(1995-03-27)

Berzerkeley

	<humour> /b*r-zer'klee/ (From "berserk", via the name of a
	now-deceased record label) A humorous distortion of "Berkeley"
	used especially to refer to the practices or products of the
	{BSD Unix} hackers.

	See {software bloat}, {Missed'em-five}, {Berkeley Quality
	Software}.

	Mainstream use of this term in reference to the cultural and
	political peculiarities of UC Berkeley as a whole has been
	reported from as far back as the 1960s.

	[{Jargon File}]

	(1996-06-01)

Berzerkley

	{Berzerkeley}

bespoke

	{custom}

best effort

	<networking> A classification of low priority network traffic,
	used especially the {Internet}.

	Different kinds of traffic have different priorities.
	{Videoconferencing} and other types of {real-time}
	communication, for example, require a certain minimum
	guaranteed {bandwidth} and {latency} and so must be given a
	high priority.  {Electronic mail}, on the other hand, can
	tolerate an arbitrarily long delay and is classified as a
	"best-effort" service.

	[Scientific American, Nov. 1994, pp. 83-84].

	(1995-04-04)

best first search

	<algorithm> A {graph} search {algorithm} which optimises
	{breadth first search} by ordering all current paths according
	to some {heuristic}.  The heuristic attempts to predict how
	close the end of a path is to a solution.  Paths which are
	judged to be closer to a solution are extended first.

	See also {beam search}, {hill climbing}.

	(1995-12-09)

Best Fit

	<algorithm> A {resource} allocation scheme (usually for
	{memory}).  Best Fit tries to determine the best place to put
	the new data.  The definition of 'best' may differ between
	implementations, but one example might be to try and minimise
	the wasted space at the end of the block being allocated -
	i.e. use the smallest space which is big enough.

	By minimising wasted space, more data can be allocated
	overall, at the expense of a more time-consuming allocation
	{routine}.

	Compare {First Fit}.

	(1997-06-02)

BETA

	Kristensen, Madsen <olmadsen@daimi.aau.dk>, Moller-Pedersen &
	Nygaard, 1983.  Object-oriented language with block structure,
	coroutines, concurrency, {strong typing}, part objects,
	separate objects and classless objects.  Central feature is a
	single abstraction mechanism called "patterns", a
	generalisation of classes, providing instantiation and
	hierarchical inheritance for all objects including procedures
	and processes.

	Mjolner Informatics ApS, Aarhus, implementations for Mac, Sun,
	HP, Apollo.

	E-mail: <info@mjolner.dk>.

	Mailing list: <usergroup@mjolner.dk>.

	["Object-Oriented Programming in the BETA Programming
	Language", Ole Lehrmann et al, A-W June 1993, ISBN
	0-201-62430-3].

	[{Jargon File}]

	(1995-10-31)

beta

	/bay't*/, /be't*/ or (Commonwealth) /bee't*/

	See {beta conversion}, {beta test}.

	[{Jargon File}]

beta abstraction

	[{lambda-calculus}] The conversion of an expression to an
	{application} of a {lambda abstraction} to an argument
	expression.  Some subterm of the original expression becomes
	the argument of the abstraction and the rest becomes its
	body. E.g.

		4+1 --> (\ x . x+1) 4

	The opposite of beta abstraction is {beta reduction}.  These
	are the two kinds of {beta conversion}.

beta conversion

	<theory> A term from {lambda-calculus} for {beta reduction} or
	{beta abstraction}.

	(1999-01-15)

Betamaxed

	<jargon> When a technology is overtaken in the market by
	inferior but better marketed competition.  E.g. "Microsoft
	betamaxed Apple right out of the market".  The Betamex
	videotape standard lost to VHS.

	(1999-01-15)

beta reduction

	[{lambda-calculus}] The {application} of a {lambda
	abstraction} to an argument expression.  A copy of the body of
	the lambda abstraction is made and occurrences of the {bound
	variable} being replaced by the argument.  E.g.

		(\ x . x+1) 4  -->  4+1

	Beta reduction is the only kind of {reduction} in the {pure
	lambda-calculus}.  The opposite of beta reduction is {beta
	abstraction}.  These are the two kinds of {beta conversion}.

	See also {name capture}.

beta test

	{beta testing}

beta testing

	<programming> Evaluation of a pre-release (potentially unreliable)
	version of a piece of {software} (or possibly {hardware}) by
	making it available to selected users ("beta testers") before it
	goes on general distribution.

	Beta testign aims to discover {bugs} that only occur in certain
	environments or under certain patterns of use, while reducing the
	volume of feedback to a manageable level.  The testers benefit by
	having earlier access to new products, features and fixes.

	Beta testing may be preceded by "alpha testing", performed
	in-house by a handful of users (e.g. other developers or friends),
	who can be expected to give rapid, high quality feedback on design
	and {usability}.  Once the product is considered to be usable for
	its intended purpose it then moves on to "beta testing" by a
	larger, but typically still limited, number of ordinary users, who
	may include external customers.

	Some companies such as {Google} or {Degree Jungle
	(http://www.degreejungle.com/rankings/best-online-colleges)}
	stretch the definition, claiming their products are "in beta" for
	many months by millions of users.

	The term derives from early 1960s terminology for {product cycle}
	checkpoints, first used at {IBM} but later standard throughout the
	industry.  "{Alpha test}" was the {unit test}, {module test} or
	{component test} phase; "Beta Test" was initial {system test}.
	These themselves came from earlier A- and B-tests for hardware.
	The A-test was a feasibility and manufacturability evaluation done
	before any commitment to design and development.  The B-test was a
	demonstration that the engineering model functioned as specified.
	The C-test (corresponding to today's beta) was the B-test
	performed on early samples of the production design.

	(2013-06-09)

beta version

	{beta testing}

Bezier

	<graphics> (After Frenchman Pierre Bézier from Regie Renault)
	A collection of formulae for describing curved lines ({Bezier
	curve}) and surfaces ({Bezier surface}), first used in 1972 to
	model automobile surfaces.

	Curves and surfaces are defined by a set of "control points"
	which can be moved interactively making Bezier curves and
	surfaces convenient for interactive graphic design.

	["Principles of interactive computer graphics", William
	M. Newman, Graw-Hill].

	(1995-04-04)

Bezier curve

	<graphics> A type of curve defined by mathematical formulae,
	used in {computer graphics}.  A curve with coordinates P(u),
	where u varies from 0 at one end of the curve to 1 at the
	other, is defined by a set of n+1 "control points" (X(i),
	Y(i), Z(i)) for i = 0 to n.

		P(u) = Sum i=0..n [(X(i), Y(i), Z(i)) * B(i, n, u)]

		B(i, n, u) = C(n, i) * u^i * (1-u)^(n-i)

		C(n, i) = n!/i!/(n-i)!

	A Bezier curve (or surface) is defined by its control points,
	which makes it invariant under any {affine mapping}
	(translation, rotation, parallel projection), and thus even
	under a change in the axis system.  You need only to transform
	the control points and then compute the new curve.  The
	control polygon defined by the points is itself affine
	invariant.

	Bezier curves also have the variation-diminishing property.
	This makes them easier to split compared to other types of
	curve such as {Hermite} or {B-spline}.

	Other important properties are multiple values, global and
	local control, versatility, and order of continuity.

	[What do these properties mean?]

	(1996-06-12)

Bezier surface

	<graphics> A surface defined by mathematical formulae, used in
	{computer graphics}.  A surface P(u, v), where u and v vary
	orthogonally from 0 to 1 from one edge of the surface to the
	other, is defined by a set of (n+1)*(m+1) "control points"
	(X(i, j), Y(i, j), Z(i, j)) for i = 0 to n, j = 0 to m.

		P(u, v) = Sum i=0..n {Sum j=0..m [
			(X(i, j), Y(i, j), Z(i, j))
			* B(i, n, u) * B(j, m, v)]}

		B(i, n, u) = C(n, i) * u^i * (1-u)^(n-i)

		C(n, i) = n!/i!/(n-i)!

	Bezier surfaces are an extension of the idea of {Bezier
	curves}, and share many of their properties.

	(1996-06-12)

bf

	<networking> The {country code} for Burkina Faso.

	(1999-01-27)

BFI

	{brute force and ignorance}

bg

	<networking> The {country code} for Bulgaria.

	(1999-01-27)

BGA

	{Ball Grid Array}

bgh

	<chat> Be Good Humans.

	(2001-03-28)

BGP

	{Border Gateway Protocol}

bh

	<networking> The {country code} for Bahrain.

	(1999-01-27)

BHC Code

	{Bose-Chaudhuri-Hocquenghem Code}

bi

	<networking> The {country code} for Burundi.

	(1999-01-27)

bib

	{BibTeX}

bible

	<publication> The most detailed and authoritative reference
	for a particular language, {operating system} or other complex
	software system.  It is also used to denote one of a small
	number of such books such as {Knuth} and {K&R}.

	[{Jargon File}]

	(1996-12-03)

BIBOP

	{Big bag of pages}

BibTeX

	<text, tool> A {Tex} extension package for bibliographic
	citations, distributed with {LaTeX}.  BibTeX uses a
	style-independent bibliography database (.bib file) to produce
	a list of sources, in a customisable style, from citations in
	a Latex document.  It also supports some other formats.

	BibTeX is a separate program from LaTeX.  LaTeX writes
	information about citations and which .bib files to use in a
	".aux" file.  BibTeX reads this file and outputs a ".bbl" file
	containing LaTeX commands to produce the source list.  You
	must then run LaTeX again to incorporate the source list in
	your document.  In typeset documents, "BibTeX" is written in
	upper case, with the "IB" slightly smaller and with the "E" as
	a subscript.  BibTeX is described in the {LaTeX} book by
	Lamport.

BiCapitalisation

	The act said to have been performed on trademarks (such as
	{PostScript}, {NeXT}, {NeWS}, {VisiCalc}, {FrameMaker},
	{TK!solver}, {EasyWriter}) that have been raised above the
	ruck of common coinage by nonstandard capitalisation.  Too
	many {marketroid} types think this sort of thing is really
	cute, even the 2,317th time they do it.

	Compare {studlycaps}.

	(1995-02-23)

BiCMOS

	<hardware> A manufacturing process for semiconductor devices
	that combines {bipolar} and {CMOS} to give the best balance
	between available output current and power consumption.

	(1995-03-28)

bidirectional printing

	<hardware> A feature of a printer whose printer head can print
	both when moving left to right and when moving right to left.

	Also known as "{boustrophedonic}".

	(1995-04-13)

Bidouilleurs Sans Argent

	<body> (BSA, French for "Moneyless Hackers") An association
	which aim is to help computer users who can't afford to buy
	commercial software.  The main purpose of the association is
	the promotion of {free software}, and distribution of
	ex-commercial software.  This is clearly an answer to the
	repressive attitude of the "other" {BSA}.

	Among BSA members are {Richard Stallman}, creator of the {GNU}
	project.

	{(http://bsa.lu/)}.

	(1998-10-27)

bi-endian

	Silicon schizophrenia.  Processors and other chips that have
	can be switched to work in {big-endian} or {little-endian}
	mode.

	The {PowerPC} chip has this ability, which allows it to run
	the little-endian {Windows NT}, or the big-endian {Mac OS/PPC}.

	(1995-02-23)

BIFF

	/bif/ (Or "B1FF", from {Usenet}) The most famous {pseudo}, and
	the prototypical {newbie}.  Articles from BIFF are
	characterised by all uppercase letters sprinkled liberally
	with bangs, typos, "cute" misspellings (EVRY BUDY LUVS GOOD
	OLD BIFF CUZ HE'S A K00L DOOD AN HE RITES REEL AWESUM THINGZ
	IN CAPITULL LETTRS LIKE THIS!!!), use (and often misuse) of
	fragments of {chat} abbreviations, a long {sig block}
	(sometimes even a {doubled sig}), and unbounded naivete.  BIFF
	posts articles using his elder brother's VIC-20.  BIFF's
	location is a mystery, as his articles appear to come from a
	variety of sites.  However, {BITNET} seems to be the most
	frequent origin.  The theory that BIFF is a denizen of BITNET
	is supported by BIFF's (unfortunately invalid) {electronic
	mail address}: <BIFF@BIT.NET>.

	[1993: Now It Can Be Told!  My spies inform me that BIFF was
	originally created by Joe Talmadge <jat@cup.hp.com>, also the
	author of the infamous and much-plagiarised "Flamer's Bible".
	The BIFF filter he wrote was later passed to Richard Sexton,
	who posted BIFFisms much more widely.  Versions have since
	been posted for the amusement of the net at large. - ESR]

	[{Jargon File}]

	(1997-09-22)

biff

	/bif/ To notify someone of incoming mail.  From the {BSD}
	utility "biff(1)", which was in turn named after a friendly
	golden Labrador who used to chase frisbees in the halls at UCB
	while {4.2BSD} was in development (it had a well-known habit
	of barking whenever the mailman came).  No relation to {BIFF}.

	[{Jargon File}]

\big

	<text> Prefix of several {LaTeX} commands implying a larger
	symbol.  See the command without "big".  Often used to convert
	a {dyadic} operator into a function which operates on a set.
	E.g. \sqcup, \bigsqcup.

	(1995-02-03)

Big bag of pages

	(BIBOP) Where data objects are tagged with some kind of
	descriptor (giving their size or type for example) memory can
	be saved by storing objects with the same descriptor in one
	"page" of memory.  The most significant bits of an object's
	address are used as the BIBOP page number.  This is looked up
	in a BIBOP table to find the descriptor for all objects in
	that page.

	This idea is similar to the "zones" used in some {Lisp}
	systems (e.g. {LeLisp}).

	[David R. Hanson.  "A portable storage management system for
	the Icon programming language".  Software - Practise and
	Experience, 10:489-500 1980].

	(1994-11-29)

big blue

	{International Business Machines}

big-endian

	1. <data, architecture> A computer {architecture} in which,
	within a given multi-{byte} numeric representation, the most
	significant byte has the lowest address (the word is stored
	"big-end-first").

	Most processors, including the {IBM 370} family, the {PDP-10},
	the {Motorola} {microprocessor} families, and most of the
	various {RISC} designs current in mid-1993, are big-endian.

	See {-endian}.

	2. <networking, standard> A backward {electronic mail
	address}.  The world now follows the {Internet} {hostname}
	{standard} (see {FQDN}) and writes e-mail addresses starting
	with the name of the computer and ending up with the {country
	code} (e.g. fred@doc.acme.ac.uk).  In the United Kingdom the
	{Joint Networking Team} decided to do it the other way round
	(e.g. me@uk.ac.wigan.cs) before the {Internet} {domain}
	standard was established.  Most {gateway sites} required
	{ad-hockery} in their {mailers} to handle this.

	By July 1994 this parochial idiosyncracy was on the way out
	and mailers started to reject big-endian addresses.  By about
	1996, people would look at you strangely if you suggested such
	a bizarre thing might ever have existed.

	[{Jargon File}]

	(1998-08-09)

Big Gray Wall

	<jargon> What faces a {VMS} user searching for documentation.
	A full VMS kit comes on a pallet, the documentation taking up
	around 15 feet of shelf space before the addition of layered
	products such as {compilers}, {databases}, multi-vendor
	networking, and programming tools.  Recent (since VMS version
	5) DEC documentation comes with grey binders; under VMS
	version 4 the binders were orange and under version 3 they
	were blue.  Often contracted to "Gray Wall".

	[{Jargon File}]

	(1995-03-07)

big iron

	<jargon> (Or "heavy metal [Cambridge]) Large, expensive,
	ultra-fast computers.  Used generally of {number crunching}
	{supercomputers} such as {Crays}, but can include more
	conventional big commercial {IBM}ish {mainframes}.  The term
	implies approval, in contrast to "{dinosaur}".

	[{Jargon File}]

	(2000-11-09)

BIG-LAN

	["BIG-LAN Frequently Asked Questions Memo", BIG-LAN DIGEST
	V4:I8, February 14, 1992.]

Bigloo

	<language> A {Scheme} {interpreter}, {compiler} and {run-time
	system} by Manuel Serrano <Manuel.Serrano@inria.fr> which aims
	to deliver small, fast stand-alone {applications}.  It
	supports {modules} and {optimisation}.  Bigloo's features
	enable Scheme programs to be used where {C} or {C++} might
	usually be required.

	The Bigloo compiler produces {ANSI C} which is compiled into
	{stand-alone executables}, {JVM} {bytecode}, or .{NET
	bytecode}.  Hence Bigloo enables Scheme programs to interwork
	with C, {Java} and {C#} programs.

	Bigloo conforms to the {IEEE Scheme} {standard} with some
	extensions for {regular expression} handling.  It runs on
	{Sun}, {Sony} {News}, {SGI}, {Linux}, {HP-UX} and is easy to
	port to any {Unix} system.

	Latest version: 2.6f, as of 2005-03-29.

	{Bigloo Home (http://www-sop.inria.fr/mimosa/fp/Bigloo/)}.

	(2005-04-05)

bignum

	<programming> /big'nuhm/ (Originally from {MIT} {MacLISP}) A
	{multiple-precision} computer representation for very large
	integers.

	Most computer languages provide a type of data called
	"integer", but such computer integers are usually limited in
	size; usually they must be smaller than 2^31 (2,147,483,648)
	or (on a {bitty box}) 2^15 (32,768).  If you want to work with
	numbers larger than that, you have to use {floating-point}
	numbers, which are usually accurate to only six or seven
	decimal places.  Computer languages that provide bignums can
	perform exact calculations on very large numbers, such as
	1000! (the factorial of 1000, which is 1000 times 999 times
	998 times ... times 2 times 1).  For example, this value for
	1000! was computed by the {MacLISP} system using bignums:

	40238726007709377354370243392300398571937486421071
	46325437999104299385123986290205920442084869694048
	00479988610197196058631666872994808558901323829669
	94459099742450408707375991882362772718873251977950
	59509952761208749754624970436014182780946464962910
	56393887437886487337119181045825783647849977012476
	63288983595573543251318532395846307555740911426241
	74743493475534286465766116677973966688202912073791
	43853719588249808126867838374559731746136085379534
	52422158659320192809087829730843139284440328123155
	86110369768013573042161687476096758713483120254785
	89320767169132448426236131412508780208000261683151
	02734182797770478463586817016436502415369139828126
	48102130927612448963599287051149649754199093422215
	66832572080821333186116811553615836546984046708975
	60290095053761647584772842188967964624494516076535
	34081989013854424879849599533191017233555566021394
	50399736280750137837615307127761926849034352625200
	01588853514733161170210396817592151090778801939317
	81141945452572238655414610628921879602238389714760
	88506276862967146674697562911234082439208160153780
	88989396451826324367161676217916890977991190375403
	12746222899880051954444142820121873617459926429565
	81746628302955570299024324153181617210465832036786
	90611726015878352075151628422554026517048330422614
	39742869330616908979684825901254583271682264580665
	26769958652682272807075781391858178889652208164348
	34482599326604336766017699961283186078838615027946
	59551311565520360939881806121385586003014356945272
	24206344631797460594682573103790084024432438465657
	24501440282188525247093519062092902313649327349756
	55139587205596542287497740114133469627154228458623
	77387538230483865688976461927383814900140767310446
	64025989949022222176590433990188601856652648506179
	97023561938970178600408118897299183110211712298459
	01641921068884387121855646124960798722908519296819
	37238864261483965738229112312502418664935314397013
	74285319266498753372189406942814341185201580141233
	44828015051399694290153483077644569099073152433278
	28826986460278986432113908350621709500259738986355
	42771967428222487575867657523442202075736305694988
	25087968928162753848863396909959826280956121450994
	87170124451646126037902930912088908694202851064018
	21543994571568059418727489980942547421735824010636
	77404595741785160829230135358081840096996372524230
	56085590370062427124341690900415369010593398383577
	79394109700277534720000000000000000000000000000000
	00000000000000000000000000000000000000000000000000
	00000000000000000000000000000000000000000000000000
	00000000000000000000000000000000000000000000000000
	00000000000000000000000000000000000000000000000000
	000000000000000000.

	[{Jargon File}]

	(1996-06-27)

bigot

	A person who is religiously attached to a particular computer,
	language, operating system, editor, or other tool (see
	{religious issues}).  Usually found with a specifier; thus,
	"Cray bigot", "ITS bigot", "APL bigot", "VMS bigot", "Berkeley
	bigot".  Real bigots can be distinguished from mere partisans
	or zealots by the fact that they refuse to learn alternatives
	even when the march of time and/or technology is threatening
	to obsolete the favoured tool.  It is truly said "You can tell
	a bigot, but you can't tell him much."  Compare {weenie}.

	[{Jargon File}]

Big Red Switch

	[IBM] The power switch on a computer, especially the
	"Emergency Pull" switch on an IBM {mainframe} or the power
	switch on an IBM PC where it really is large and red.  "This
	!@%$% {bitty box} is hung again; time to hit the Big Red
	Switch."  Sources at IBM report that, in tune with the
	company's passion for {TLAs}, this is often abbreviated as
	"BRS" (this has also become established on FidoNet and in the
	{IBM PC} world).  It is alleged that the emergency pull switch
	on an {IBM 360}/91 actually fired a non-conducting bolt into
	the main power feed; the BRSes on more recent mainframes
	physically drop a block into place so that they can't be
	pushed back in.  People get fired for pulling them, especially
	inappropriately (see also {molly-guard}).  Compare {power
	cycle}, {three-finger salute}, {120 reset}; see also {scram
	switch}.

Big Room

	<jargon, humour> The extremely large room with the blue
	ceiling and intensely bright light (during the day) or black
	ceiling with lots of tiny night-lights (during the night)
	found outside all computer installations.  "He can't come to
	the phone right now, he's somewhere out in the Big Room."

	(1996-03-04)

big win

	<jargon> An {MIT} term for a {Good Thing} or a lucky accident.

	[{Jargon File}]

	(1996-03-06)

bijection

	<mathematics> A {function} is bijective or a bijection or a
	one-to-one correspondence if it is both {injective} (no two
	values map to the same value) and {surjective} (for every
	element of the {codomain} there is some element of the
	{domain} which maps to it).  I.e. there is exactly one element
	of the domain which maps to each element of the codomain.

	For a general bijection f from the set A to the set B:

	f'(f(a)) = a where a is in A and f(f'(b)) = b where b is in B.

	A and B could be disjoint sets.

	See also {injection}, {surjection}, {isomorphism},
	{permutation}.

	(2001-05-10)

Bill Gates

	<person> William Henry Gates III, Chief Executive Officer of
	{Microsoft}, which he co-founded in 1975 with {Paul Allen}.
	In 1994 Gates is a billionaire, worth $9.35b and {Microsoft}
	is worth about $27b.  He was a {computer nerd} who dropped out
	of Harvard and one of the first programmers to oppose
	{software piracy} ("Open Letter to Hobbyists," Computer Notes,
	February 3, 1976).

	(1995-03-02)

Bill Joy

	{William Joy}

binaries

	{binary file}

binary

	1. <mathematics> {Base} two.  A number representation
	consisting of zeros and ones used by practically all computers
	because of its ease of implementation using digital
	electronics and {Boolean algebra}.

	2. <file format> {binary file}.

	3. <programming> A description of an {operator} which takes
	two {arguments}.  See also {unary}, {ternary}.

	(2005-02-21)

binary coded decimal

	<data> (BCD, packed decimal) A number representation where a
	number is expressed as a sequence of decimal digits and then
	each decimal digit is encoded as a four-bit binary number (a
	{nibble}).  E.g. decimal 92 would be encoded as the eight-bit
	sequence 1001 0010.

	In some cases, the right-most nibble contains the sign
	(positive or negative).

	It is easier to convert decimal numbers to and from BCD than
	binary and, though BCD is often converted to binary for
	arithmetic processing, it is possible to build {hardware} that
	operates directly on BCD.

	[Do calculators use BCD?]

	(2001-01-27)

Binary Compatibility Standard

	<programming, standard> (BCS) The {ABI} of {88open}.

	(1997-07-03)

binary counter

	<electronics, hardware> A digital circuit which has a clock
	input and a number of count outputs which give the number of
	clock cycles.  The output may change either on rising or
	falling clock edges.  The circuit may also have a reset input
	which sets all outputs to zero when asserted.  The counter may
	be either a {synchronous counter} or a {ripple counter}.

	(1997-07-03)

binary data

	{binary file}

binary exponential backoff

	An {algorithm} for dealing with contention in the use of a
	network.  To transmit a {packet} the {host} sets a local
	parameter, L to 1 and transmits in one of the next L {slots}.
	If a {collision} occurs, it doubles L and repeats.

binary file

	<file format> Any {file format} for {digital} {data} that does
	not consist of a sequence of printable {characters} ({text}).
	The term is often used for executable {machine code}.

	All digital data, including characters, is actually binary
	data (unless it uses some (rare) system with more than two
	discrete levels) but the distinction between binary and text
	is well established.  On modern {operating systems} a text
	file is simply a binary file that happens to contain only
	printable characters, but some older systems distinguish the
	two file types, requiring programs to handle them differently.

	A common class of binary files is programs in {machine
	language} ("{executable} files") ready to load into memory and
	execute.  Binary files may also be used to store data output
	by a program, and intended to be read by that or another
	program but not by humans.  Binary files are more efficient
	for this purpose because the data (e.g. numerical data) does
	not need to be converted between the binary form used by the
	{CPU} and a printable (ASCII) representation.  The
	disadvantage is that it is usually necessary to write special
	purpose programs to manipulate such files since most general
	purpose utilities operate on text files.  There is also a
	problem sharing binary numerical data between processors with
	different {endian}ness.

	Some communications {protocols} handle only text files,
	e.g. most {electronic mail} systems before {MIME} became
	widespread in about 1995.  The {FTP} utility must be put into
	"binary" mode in order to copy a binary file since in its
	default "ascii" mode translates between the different
	{newline} characters used on the sending and receiving
	computers.

	Confusingly, some {word processor} files, and {rich text}
	files, are actually binary files because they contain
	non-printable characters and require special programs to view,
	edit and print them.

	(2005-02-21)

binary large object

	<database> (BLOB) A large block of data stored in a
	{database}, such as an {image} or {sound} file.  A BLOB has no
	structure which can be interpreted by the {database management
	system} but is known only by its size and location.

	(1997-11-04)

binary package

	<software> An {archive} file that contains all files and
	directories that must be installed in order to make a working
	installation of the program(s) included in the package, and
	the {maintainer scripts} necessary for the installation.  A
	binary package is usually specific to a certain {platform}, in
	contrast to a {source package}.

	(2001-01-27)

binary prefix

	<unit> (Or "IEC prefix") A prefix used with a {unit} of {data} to
	mean multiplication by a power of 1024.  Binary prefixes are most
	often used with "{byte}" (e.g. "{kilobyte}") but also with {bit}
	(e.g. "{megabit}").

	For example, the term {kilobyte} has historically been used to
	mean 1024 {bytes}, and {megabyte} to mean 1,048,576 bytes.  The
	multipliers 1024 and 1,048,576 are powers of 1024, which is itself
	a power of two (1024 = 2^10).  It is this factor of two that gives
	the name "binary prefix".

	This is in contrast to a {decimal prefix} denoting a power of
	1000, which is itself a power of ten (1000 = 10^3).  Decimal
	prefixes are used in science and engineering and are specified in
	widely adopted {SI} standards.  Note that the actual prefix - kilo
	or mega - is the same, it is the interpretation that differs.

	The difference between the two interpretations increases with each
	multiplication, so while 1000 and 1024 differ by only 2.4%, 1000^6
	and 1024^6 differ by 15%.

	The 1024-based interpretation of prefixes is often still used
	informally and especially when discussing the storage capacity of
	{random-access memory}.  This has lead to storage device
	manufacturers being accused of false marketing for using the
	decimal interpretation where customers might assume the larger,
	historical, binary interpretation.

	In an attempt to clarify the distinction, in 1998 the {IEC}
	specified that kilobyte, megabyte, etc. should only be used for
	powers of 1000 (following SI).  They specified new prefixes for
	powers of 1024 containing "bi" for "binary": {kibibyte},
	{mebibyte}, etc.; an idea originally propsed by {IUPAC}.  IEC also
	specified new abbreviations Ki, Mi, etc. for the new prefixes.
	Many other standards bodies such as {NIST}, {IEEE} and {BIPM}
	support this proposal but as of 2013 its use is rare in
	non-technical circles.

	 Specific units of IEC 60027-2 A.2 and ISO/IEC 80000

	 IEC prefix	   Representations				Customary prefix
	 Name  Symbol  Base 2  Base		Base 10		Name	Symbol
						   1024		(approx)
	 kibi  Ki	   2^10	   1024^1	1.02x10^3	kilo	k, K
	 mebi  Mi	   2^20	   1024^2	1.05x10^6	mega	M
	 gibi  Gi	   2^30	   1024^3	1.07x10^9	giga	G
	 tebi  Ti	   2^40	   1024^4	1.10x10^12	tera	T
	 pebi  Pi	   2^50	   1024^5	1.13x10^15	peta	P
	 exbi  Ei	   2^60	   1024^6	1.15x10^18	exa     E
	 zebi  Zi	   2^70	   1024^7	1.18x10^21	zetta	Z
	 yobi  Yi	   2^80	   1024^8	1.21x10^24	yotta	Y

	(2013-11-04)

binary search

	<algorithm> A search {algorithm} which repeatedly divides an
	ordered {search space} in half according to how the required
	(key) value compares with the middle element.

	The following pseudo-{C} routine performs a binary search
	return the index of the element of vector "thing[first..last]"
	equal to "target":

	 if (target < thing[first] || target > thing[last])
	   return NOT_FOUND;
	 while (first < last)
	 {
	   mid = (first+last)/2;	/* truncate to integer */
	   if (target == thing[mid])
	     return mid;
	   if (target < thing[mid])
	     last = mid-1;
	   else
	     first = mid+1;
	 }
	 if (target == thing[last])
	   return last;
	 return NOT_FOUND;

	(2003-01-14)

Binary Synchronous Transmission

	<protocol> (Bisynch) An {IBM} link {protocol}, developed in
	the 1960 and popular in the 1970s and 1980s.

	Binary Synchronous Transmission has been largely replaced in
	IBM environments with {SDLC}.  Bisync was developed for
	{batch} communications between a {System 360} computer and the
	IBM 2780 and 3780 {Remote Job Entry} (RJE) {terminals}.  It
	supports RJE and on-line terminals in the {CICS}/{VSE}
	environment.  It operates with {EBCDIC} or {ASCII} {character
	sets}.  It requires that every message be acknowledged ({ACK})
	or negatively acknowledged ({NACK}) so it has high
	transmission overhead.  It is typically character oriented and
	{half-duplex}, although some of the bisync protocol flavours
	or dialects support binary transmission and {full-duplex}
	operation.

	(1997-01-07)

binary tree

	(btree) A {tree} in which each node has at most two successors
	or child nodes.  In {Haskell} this could be represented as

		data BTree a = NilTree
			     | Node a (BTree a) (BTree a)

	See also {balanced tree}.

	(1994-11-29)

BIND

	{Berkeley Internet Name Domain}

bindery

	<networking> A {Novell Netware} database that contains
	definitions for entities such as users, groups, and
	{workgroups}.  The bindery allows the network supervisor to
	design an organised and secure operating environment based on
	the individual requirements of each of these entities.

	The bindery has three components: objects, properties, and
	property data sets.  Objects represent any physical or logical
	entity, including users, user groups, file servers.
	Properties are characteristics of each object (e.g.
	passwords, account restrictions, {internetwork addresses}).
	Property data sets are the values assigned to an entity's
	bindery properties.

	[Netware Version 3.11 "Concepts" documentation (a glossary of
	Netware-related terms)].

	(1996-03-07)

binding handle

	<networking> An identifier representing the connection between
	a {client} and {server}.  An association between client/server
	end-points and {protocols}.

	(1997-03-18)

binding-time analysis

	<compiler> An analysis to identify sub-expressions which can
	be evaluated at {compile-time} or where versions of a function
	can be generated and called which are specialised to certain
	values of one or more arguments.

	See {partial evaluation}.

	(1995-03-28)

BinHex

	<file format> A {Macintosh} format for representing a {binary
	file} using only {printable characters}.  The file is
	converted to lines of letters, numbers and punctuation.
	Because BinHex files are simply text they can be sent through
	most {electronic mail} systems and stored on most computers.
	However the conversion to text makes the file larger, so it
	takes longer to transmit a file in BinHex format than if the
	file was represented some other way.

	{Filename extension}: .hqx.

	See also {BinHex 4.0}, {uuencode}.

	[Encoding algorithm?]

	(1994-11-30)

Binhex 4.0

	<file format> A seven bit wide representation of a {Macintosh}
	file with {CRC} error checking.  Binhex 4.0 files are designed
	for communication of Mac files over long distance, possibly
	noisy, seven bit wide paths.

	[Difference from other binhex formats?]

	(1996-09-17)

BinProlog

	<language> Probably the fastest freely available {C}-emulated
	{Prolog}.  BinProlog features:

	logical and permanent {global variables}; backtrackable
	{destructive assignment}; circular term {unification};
	extended {DCGs} (now built into the {engine} as "invisible
	grammars"); {intuitionistic} and {linear implication} based
	{hypothetical reasoning}; a {Tcl}/{Tk} interface.

	Version 3.30 runs on {SPARC}/{Solaris} 2.x, {SunOS} 4.x; {DEC
	Alpha} 64-bit version; {DEC} {MIPS}; {SGI} {MIPS}; {68k} -
	{NeXT}, {Sun-3}; {IBM RS6000}; {HP PA-RISC} (two variants);
	{Intel 80386}, {Intel 486}/{Linux}, {MS-DOS}, {Microsoft
	Windows 3.1} (with DOS-extender {go32} v1.10).

	{Multi-BinProlog} is a {multi-threaded} {Linda}-style parallel
	extension to BinProlog for {Solaris} 2.3.

	{(ftp://clement.info.umoncton.ca/BinProlog/)}.

	E-mail: Paul Tarau <tarau@info.umoncton.ca>.

	(1995-04-04)

bioinformatics

	<application> The field of science concerning the application
	of {computer science} and {information technology} to biology;
	using computers to handle biological information, especially
	{computational molecular biology}.

	(2005-01-07)

BioMeDical Package

	<language, library, statistics> (BMDP) A statistical language
	and library of over forty statistical routines developed in
	1961 at {UCLA}, Health Sciences Computing Facility under
	Dr. Wilford Dixon.  BMDP was first implemented in {Fortran}
	for the {IBM 7090}.  Tapes of the original source were
	distributed for free all over the world.

	BMDP is the second iteration of the original {BIMED} programs.
	It was developed at {UCLA} Health Sciences Computing facility,
	with NIH funding.  The "P" in BMDP originally stood for
	"parameter" but was later changed to "package".  BMDP used
	keyword parameters to defined what was to be done rather than
	the fixed card format used by original BIMED programs.

	BMDP supports many statistical funtions: simple data
	description, {survival analysis}, {ANOVA}, {multivariate
	analyses}, {regression analysis}, and {time series} analysis.

	BMDP Professional combines the full suite of BMDP Classic
	(Dynamic) release 7.0 with the BMDP New System 2.0 {Windows}
	front-end.

	{BMDP from Statistical Solutions
	(http://statsol.ie/bmdp/bmdp.htm)}.

	(2004-01-14)

biometric device

	{biometrics}

biometrics

	<security, hardware> The use of special input devices to
	analyse some physical parameter assumed to be unique to an
	individual, in order to confirm their identity as part of an
	{authentication} procedure.

	Examples include {fingerprint scanning}, {iris recognition},
	{facial recognition}, voice recognition ({speaker
	recognition}), {signature}, {vascular pattern recognition}.

	{(http://www.findbiometrics.com/Pages/guide2.html)}.

	(2007-02-22)

BIOR

	An early system on {UNIVAC} I or II.

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

	(1995-04-01)

BIOS

	{Basic Input/Output System}

BIP

	An incorrect singular of {BIPS}.  One billion instructions per
	second is 1 BIPS, not 1 BIP.

bipartite graph

	{complete graph}

BIPM

	{Bureau International des Poids et Mesures}

bipolar

	1. <electronics> See {bipolar transistor}.

	2. <communications> In digital transmission, an electrical
	line signalling method where the mark value alternates between
	positive and negative polarities.

	See also {AMI}.

	(1995-03-02)

bipolar transistor

	<electronics> A {transistor} made from a sandwich of n- and
	p-type {semiconductor} material: either npn or pnp.  The
	middle section is known as the "base" and the other two as the
	"collector" and "emitter".  When used as an amplifying
	element, the base to emitter junction is in a "forward-biased"
	(conducting) condition, and the base to collector junction is
	"reverse-biased" or non-conducting.  Small changes in the base
	to emitter current (the input signal) cause either {holes}
	(for pnp devices) or free {electrons} (for npn) to enter the
	base from the emitter.  The attracting voltage of the
	collector causes the majority of these charges to cross into
	and be collected by the collector, resulting in amplification.

	Contrast {field effect transistor}.

	(1995-10-04)

BIPS

	Billion (10^9) instructions per second.  Same as {GIPS}.

Bird-Meertens Formalism

	<theory, programming> (BMF) (Or "Squiggol") A calculus for
	derivation of {functional programs} from a specification.  It
	consists of a set of {higher-order functions} that operate on
	lists including {map}, {fold}, {scan}, {filter}, inits, tails,
	{cross product} and {function composition}.

	["A Calculus of Functions for Program Derivation", R.S. Bird,
	in Res Topics in Fnl Prog, D. Turner ed, A-W 1990].

	["The Squiggolist", ed Johan Jeuring, published irregularly by
	CWI Amsterdam].

	(1995-05-01)

Birds Of a Feather

	(BOF) (From the saying "Birds of a feather flock together") An
	informal discussion group, scheduled on a conference program
	or formed ad hoc, to consider a specific issue or subject.  It
	is not clear where or when this term originated, but it is now
	associated with the {USENIX} conferences for {Unix} techies
	and was already established there by 1984.  It was used
	earlier than that at {DECUS} conferences and is reported to
	have been common at {SHARE} meetings as far back as the early
	1960s.

	(1994-10-11)

BISDN

	Broadband {Integrated Services Digital Network}.

Bison

	<tool> {GNU}'s replacement for the {yacc} {parser generator}.
	Bison runs under {Unix} and on {Atari} computers.  It was
	written by Robert Corbett.

	Latest version: 1.28, as of 2000-05-22.

	As of version 1.24, Bison will no longer apply the {GNU}
	{General Public License} to your code.  You can use the output
	files without restriction.

	{FTP GNU.org (ftp://ftp.gnu.org/gnu/bison/)} or your nearest
	{GNU archive site}.

	E-mail: <bug-bison@gnu.org>.

	{Bison++} is a version which produces {C++} output.

	(2000-07-05)

Bison++

	GNU's Yacc parser generator retargeted to C++ by Alain
	Coetmeur <coetmeur@icdc.fr>.  Version 1.04.

	{(ftp://iecc.com/pub/file/bison++.tar.gz)}.
	{(ftp://iecc.com/pub/file/misc++.tar.gz)}.
	{(ftp://psuvax1.cs.psu.edu/pub/src/gnu/bison++-1.04.tar.Z)}.

	(1993-07-08)

BIST

	{Built-in Self Test}

bisync

	{Binary Synchronous Transmission}

bit

	<unit> (b) {binary} digit.

	The unit of information; the amount of information obtained by
	asking a yes-or-no question; a computational quantity that can
	take on one of two values, such as false and true or 0 and 1;
	the smallest unit of storage - sufficient to hold one bit.

	A bit is said to be "set" if its value is true or 1, and
	"reset" or "clear" if its value is false or 0.  One speaks of
	setting and clearing bits.  To {toggle} or "invert" a bit is
	to change it, either from 0 to 1 or from 1 to 0.

	The term "bit" first appeared in print in the computer-science
	sense in 1949, and seems to have been coined by the eminent
	statistician, {John Tukey}.  Tukey records that it evolved
	over a lunch table as a handier alternative to "bigit" or
	"binit".

	See also {flag}, {trit}, {mode bit}, {byte}, {word}.

	[{Jargon File}]

	(2002-01-22)

bit bang

	Transmission of data on a {serial line} accomplished by
	rapidly changing a single output bit, in software, at the
	appropriate times.  The technique is a simple loop with eight
	OUT and SHIFT instruction pairs for each byte.  Input is more
	interesting.  And {full-duplex} (doing input and output at the
	same time) is one way to separate the real hackers from the
	{wannabees}.

	Bit bang was used on certain early models of {Prime}
	computers, presumably when {UARTs} were too expensive, and on
	archaic {Zilog Z80} micros with a {Zilog} PIO but no SIO.  In
	an interesting instance of the {cycle of reincarnation}, this
	technique is now (1991) coming back into use on some {RISC}
	architectures because it consumes such an infinitesimal part
	of the processor that it actually makes sense not to have a
	{UART}.

	[{Jargon File}]

bit bashing

	(Also "bit diddling" or {bit twiddling}).  Any of several
	kinds of low-level programming characterised by manipulation
	of {bit}, {flag}, {nibble}, and other
	smaller-than-character-sized pieces of data.  These include
	low-level device control, encryption algorithms, checksum and
	error-correcting codes, hash functions, some flavours of
	graphics programming (see {bitblt}), and assembler/compiler
	code generation.  May connote either tedium or a real
	technical challenge (more usually the former).  "The command
	decoding for the new tape driver looks pretty solid but the
	bit-bashing for the control registers still has bugs."  See
	also {bit bang}, {mode bit}.

bitblt

	/bit'blit/ [{BLT}] 1. Any of a family of closely related
	algorithms for moving and copying rectangles of bits between
	main and display memory on a {bit-mapped} device, or between
	two areas of either main or display memory (the requirement to
	do the {Right Thing} in the case of overlapping source and
	destination rectangles is what makes BitBlt tricky).

	2. {blit}, {BLT}.

	[{Jargon File}]

bit bucket

	<jargon> 1. (Or "{write-only memory}", "WOM") The universal
	data sink (originally, the mythical receptacle used to catch
	bits when they fall off the end of a {register} during a
	{shift} instruction).  Discarded, lost, or destroyed data is
	said to have "gone to the bit bucket".  On {Unix}, often used
	for {/dev/null}.  Sometimes amplified as "the Great Bit Bucket
	in the Sky".

	2. The place where all lost mail and news messages eventually
	go.  The selection is performed according to {Finagle's Law};
	important mail is much more likely to end up in the bit bucket
	than junk mail, which has an almost 100% probability of
	getting delivered.  Routing to the bit bucket is automatically
	performed by mail-transfer agents, news systems, and the lower
	layers of the network.

	3. The ideal location for all unwanted mail responses: "Flames
	about this article to the bit bucket."  Such a request is
	guaranteed to overflow one's mailbox with flames.

	4. Excuse for all mail that has not been sent.  "I mailed you
	those figures last week; they must have landed in the bit
	bucket."  Compare {black hole}.

	This term is used purely in jest.  It is based on the fanciful
	notion that bits are objects that are not destroyed but only
	misplaced.  This appears to have been a mutation of an earlier
	term "bit box", about which the same legend was current;
	old-time hackers also report that trainees used to be told
	that when the CPU stored bits into memory it was actually
	pulling them "out of the bit box".

	Another variant of this legend has it that, as a consequence
	of the "parity preservation law", the number of 1 bits that go
	to the bit bucket must equal the number of 0 bits.  Any
	imbalance results in bits filling up the bit bucket.  A
	qualified computer technician can empty a full bit bucket as
	part of scheduled maintenance.

	In contrast, a "{chad box}" is a real container used to catch
	{chad}.  This may be related to the origin of the term "bit
	bucket" [Comments ?].

	(1996-11-20)

bit decay

	{bit rot}

bit diddling

	{bit bashing}

bite

	{byte}

Bit Error Rate

	<data, digital, communications> (BER) The fraction of a
	message or block of data that is wrong.

	(2003-03-25)

bit field

	<data> Part of an item of data, storage location or message,
	identified as a certain number of contiguous {bits} starting
	at a certain bit position within the data.  Bit position zero
	is usually the least significant bit.

	For example, in an {ARM} {machine code} instruction the
	four-bit field at bits 28 to 31 (the four most significant
	bits in the 32-bit word) is the "condition code".

	(2007-03-26)

bitmap

	<graphics, file format> A data file or structure which
	corresponds {bit} for bit with an {image} displayed on a
	screen, probably in the same format as it would be stored in
	the display's {video memory} or maybe as a {device independent
	bitmap}.  A bitmap is characterised by the width and height of
	the image in {pixels} and the number of bits per pixel which
	determines the number of shades of grey or colours it can
	represent.  A bitmap representing a coloured image (a
	"{pixmap}") will usually have pixels with between one and
	eight bits for each of the red, green, and blue components,
	though other colour encodings are also used.  The green
	component sometimes has more bits that the other two to cater
	for the human eye's greater discrimination in this component.

	See also {vector graphics}, {image formats}.

	(1996-09-21)

bitmap display

	<hardware> A computer output device where each {pixel}
	displayed on the {monitor} screen corresponds directly to one
	or more {bits} in the computer's {video memory}.  Such a
	display can be updated extremely rapidly since changing a
	pixel involves only a single processor write to memory
	compared with a {terminal} or {VDU} connected via a serial
	line where the speed of the serial line limits the speed at
	which the display can be changed.

	Most modern {personal computers} and {workstations} have
	bitmap displays, allowing the efficient use of {graphical user
	interfaces}, interactive graphics and a choice of on-screen
	{fonts}.  Some more expensive systems still delegate graphics
	operations to dedicated hardware such as {graphics
	accelerators}.

	The bitmap display might be traced back to the earliest days
	of computing when the Manchester University Mark I(?)
	computer, developed by F.C. Williams and T. Kilburn shortly
	after the Second World War.  This used a {storage tube} as its
	{working memory}.  Phosphor dots were used to store single
	bits of data which could be read by the user and interpreted
	as binary numbers.

	[Is this history correct?  Was it ever used to display
	"graphics"?  What was the resolution?]

	(2002-05-15)

bitmap font

	<text> A {font} where each character is stored as an {array}
	of {pixels} (a {bitmap}).  Such fonts are not easily scalable,
	in contrast to {vectored fonts} (like those used in
	{PostScript}).

	[Examples?]

	(1995-02-16)

bitmapped display

	{bitmap display}

bit mask

	<programming> A pattern of {binary} values which is combined
	with some value using {bitwise} AND with the result that bits
	in the value in positions where the mask is zero are also set
	to zero.  For example, if, in {C}, we want to test if bits 0
	or 2 of x are set, we can write

		int mask = 5;	/* binary 101 */

		if (x & mask) ...

	A bit mask might also be used to set certain bits using
	bitwise OR, or to invert them using bitwise {exclusive OR}.

	(1995-05-12)

BITNET

	<networking> /bit'net/ (Because It's Time NETwork) An academic
	and research computer network connecting approximately 2500
	computers.  BITNET provides interactive, {electronic mail} and
	file transfer services, using a {store and forward}
	{protocol}, based on {IBM} {Network Job Entry} protocols.

	Bitnet-II encapsulates the Bitnet protocol within {IP}
	{packets} and depends on the {Internet} to route them.  BITNET
	traffic and Internet traffic are exchanged via several
	{gateway} hosts.

	BITNET is now operated by {CREN}.

	BITNET is everybody's least favourite piece of the network.
	The BITNET hosts are a collection of {IBM} {dinosaurs},
	{VAXen} (with lobotomised communications hardware), and {Prime
	Computer} supermini computers.  They communicate using
	80-character {EBCDIC} card images (see {eighty-column mind});
	thus, they tend to mangle the {headers} and text of
	third-party traffic from the rest of the {ASCII}/{RFC 822}
	world with annoying regularity.  BITNET is also notorious as
	the apparent home of {BIFF}.

	[{Jargon File}]

	(2002-09-02)

bitonal image

	<graphics> An {image} consisting only of a foreground colour
	and a background colour.

	Compare {monochrome}.

	(1998-03-14)

bit-paired keyboard

	<hardware> (Obsolete, or "bit-shift keyboard") A non-standard
	keyboard layout that seems to have originated with the
	{Teletype} {ASR-33} and remained common for several years on
	early computer equipment.  The ASR-33 was a mechanical device
	(see {EOU}), so the only way to generate the character codes
	from keystrokes was by some physical linkage.  The design of
	the ASR-33 assigned each character key a basic pattern that
	could be modified by flipping bits if the SHIFT or the CTRL
	key was pressed.  In order to avoid making the thing more of a
	Rube Goldberg {kluge} than it already was, the design had to
	group characters that shared the same basic bit pattern on one
	key.

	Looking at the {ASCII} chart, we find:

	 high  low bits
	 bits  0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
	 010        !    "    #    $    %    &    '    (    )
	 011   0    1    2    3    4    5    6    7    8    9

	This is why the characters !"#$%&'() appear where they do on a
	Teletype (thankfully, they didn't use shift-0 for space).
	This was *not* the weirdest variant of the {QWERTY} layout
	widely seen, by the way; that prize should probably go to one
	of several (differing) arrangements on {IBM}'s even clunkier
	026 and 029 card punches.

	When electronic {terminals} became popular, in the early
	1970s, there was no agreement in the industry over how the
	keyboards should be laid out.  Some vendors opted to emulate
	the Teletype keyboard, while others used the flexibility of
	electronic circuitry to make their product look like an office
	typewriter.  These alternatives became known as "bit-paired"
	and "typewriter-paired" keyboards.  To a hacker, the
	bit-paired keyboard seemed far more logical - and because most
	hackers in those days had never learned to touch-type, there
	was little pressure from the pioneering users to adapt
	keyboards to the typewriter standard.

	The doom of the bit-paired keyboard was the large-scale
	introduction of the computer terminal into the normal office
	environment, where out-and-out technophobes were expected to
	use the equipment.  The "typewriter-paired" standard became
	universal, "bit-paired" hardware was quickly junked or
	relegated to dusty corners, and both terms passed into disuse.

	[{Jargon File}]

	(1995-02-20)

bit pattern

	<data> A sequence of {bits}, in a memory, a communications
	channel or some other device.  The term is used to contrast
	this with some higher level interpretation of the bits such as
	an integer or an {image}.  A {bit string} is similar but
	suggests an arbitrary, as opposed to predetermined, length.

	(1998-09-27)

bit plane

	<graphics> (Or "bitplane") The memory in a graphic display
	device which holds a complete one-bit-per-{pixel} image.
	Several bit planes may be used in conjunction to give more
	bits per pixel or to overlay several images or mask one with
	another.

	"Bit plane" may be used as a synonym for "{bitmap}", though
	the latter suggests the data itself rather than the memory and
	also suggests a graphics file format.

	(1997-03-16)

bit rate

	<communications, digital signal processing> (Or "bitrate") A
	{data rate} expressed in bits per second.  This is a similar
	to {baud} but the latter is more applicable to channels with
	more than two states.

	The common units of bit rate are {kilobits per second} (Kbps)
	and {megabits per second} (Mbps).  In data rates, the
	multipliers "k", "M", etc. stand for powers of 1000 not powers
	of 1024.

	The term is also commonly used when discussing digital
	{sampling} and {sample rates}.  For example, the {MP3} audio
	{compaction} algorithm is often set to ouput files with a
	bitrate of 120 kbps.  This means that the file contains an
	average of 120 kilobits for each second of audio (900 KB per
	minute).  This compares with {CD audio} which is encoded at
	44100 16-bit stereo samples per second or 1408 kbps.

	(2003-05-19)

bit-robbing

	{in-band signalling}

bit rot

	<jargon> A hypothetical disease the existence of which has
	been deduced from the observation that unused programs or
	features will often stop working after sufficient time has
	passed, even if "nothing has changed".  The theory explains
	that bits decay as if they were radioactive.  As time passes,
	the contents of a file or the code in a program will become
	increasingly garbled.

	People with a physics background tend to prefer the variant
	"bit decay" for the analogy with particle decay.

	There actually are physical processes that produce such
	effects (alpha particles generated by trace radionuclides in
	ceramic chip packages, for example, can change the contents of
	a computer memory unpredictably, and various kinds of subtle
	media failures can corrupt files in mass storage), but they
	are quite rare (and computers are built with {error detection}
	circuitry to compensate for them).  The notion long favoured
	among hackers that {cosmic rays} are among the causes of such
	events turns out to be a myth.

	Bit rot is the notional cause of {software rot}.

	See also {computron}, {quantum bogodynamics}.

	[{Jargon File}]

	(1998-03-15)

bit slice

	<architecture> A technique for constructing a {processor} from
	modules, each of which processes one {bit-field} or "slice" of
	an {operand}.  Bit slice processors usually consist of an
	{ALU} of 1, 2, 4 or 8 bits and control lines (including
	{carry} or {overflow} signals usually internal to the {CPU}).
	For example, two 4-bit ALUs could be arranged side by side,
	with control lines between them, to form an 8-bit ALU.  A
	{sequencer} executes a program to provide data and control
	signals.

	The {AMD Am2901} is an example.

	(1994-11-15)

bits per inch

	<unit> (BPI) A measure of the recording density of a {magnetic
	tape} or {disk}.

	(1995-04-13)

bits per pixel

	<hardware, graphics> (bpp) The number of {bits} of information
	stored per {pixel} of an {image} or displayed by a {graphics
	adapter}.  The more bits there are, the more colours can be
	represented, but the more memory is required to store or
	display the image.

	A colour can be described by the intensities of red, green and
	blue ({RGB}) components.  Allowing 8 {bits} (1 {byte}) per
	component (24 bits per pixel) gives 256 levels for each
	component and over 16 million different colours - more than
	the human eye can distinguish.  {Microsoft Windows} [and
	others?] calls this {truecolour}.  An image of 1024x768 with
	24 bpp requires over 2 MB of memory.

	"High colour" uses 16 bpp (or 15 bpp), 5 bits for blue, 5 bits
	for red and 6 bits for green.  This reduced colour precision
	gives a slight loss of image quality at a 1/3 saving on
	memory.

	Standard {VGA} uses a {palette} of 16 colours (4 bpp), each
	colour in the palette is 24 bit.  Standard {SVGA} uses a
	{palette} of 256 colours (8 bpp).

	Some graphics hardware and software support 32-bit colour
	depths, including an 8-bit "{alpha channel}" for transparency
	effects.

	(1999-08-01)

bits per second

	<communications, unit> (bps, b/s) The unit in which {data
	rate} is measured.

	For example, a {modem}'s data rate is usually measured in
	{kilobits} per second.  In 1996, the maximum modem speed for
	use on the {PSTN} was 33.6 kbps, rising to 56 kbps in 1997.

	Note that kilo- (k), mega- (M), etc. in data rates denote
	powers of 1000, not 1024.

	(2002-03-23)

bit string

	<programming, data> An ordered sequence of {bits}.  This is
	very similar to a {bit pattern} except that the term "string"
	suggests an arbitrary length sequence as opposed to a
	pre-determined length "pattern".

bit stuffing

	<protocol> A {protocol} which guarantees the receiver of
	{synchronous} data can recover the sender's clock.  When the
	data stream sent contains a large number of adjacent bits
	which cause no transition of the signal, the receiver cannot
	adjust its clock to maintain proper synchronised reception.
	To eliminate the possibility of such a pathological case, when
	a preset number of transitionless bits have been transmitted,
	a bit which does cause a transition is "stuffed" (transmitted)
	by the sender.  The receiver follows the same protocol and
	removes the stuffed bit after the specified number of
	transitionless bits, but can use the stuffed bit to recover
	the sender's clock.

	The advantage of bit stuffing is that only a bit (not a
	{byte}) is inserted in the data stream, and that only when the
	content of the data stream fails to provide a timing signal to
	the receiver.  Thus very nearly 100% of the bits transported
	are useful data.  In contrast, {asynchronous} transmission of
	data "throws away" a start bit and one or more stop bits for
	each data byte sent.

	(1996-04-23)

BitTorrent

	<networking> A popular, distributed form of {peer-to-peer}
	{file sharing} that enables a {client} program to fetch
	different parts of a file (a "torrent") from different sources
	in parallel.  The system is designed to encourage users to
	make downloaded data available for others to upload.  This is
	aided by a scheme for exchanging unique identifiers, commonly
	stored in ".torrent" files.  A downloader who does not serve
	data to others is called a "leech".  A "seed" is a computer
	that has a complete copy of a file, possibly the original.

	The bittorrent.com site claims there are over 100 million
	users as of 2007-03-24.

	Most of the data is copyright material like films or
	commercial software.

	{(http://www.bittorrent.com/what-is-bittorrent)}.

	(2007-03-27)

bit twiddling

	1. (pejorative) An exercise in tuning (see {tune}) in which
	incredible amounts of time and effort go to produce little
	noticeable improvement, often with the result that the code
	becomes incomprehensible.

	2. Aimless small modification to a program, especially for
	some pointless goal.

	3. {bit bashing}, especially used for the act of frobbing the
	device control register of a peripheral in an attempt to get
	it back to a known state.

	[{Jargon File}]

bitty box

	<abuse> (Or "calculator") /bit'ee boks/ A computer
	sufficiently small, primitive, or incapable as to cause a
	hacker acute claustrophobia at the thought of developing
	software on or for it.  The term is especially used of small,
	obsolescent, {single-tasking}-only {personal computers} such
	as the {Atari 800}, {Osborne}, {Sinclair}, {VIC-20}, {TRS-80}
	or {IBM PC}, but the term is a general pejorative opposite of
	"real computer" (see {Get a real computer!}).

	See also {mess-dos}, {toaster}, {toy}.

	(1994-11-29)

bitwise

	<programming> A bitwise operator treats its operands as a
	{vector} of {bits} rather than a single number.  {Boolean}
	bitwise operators combine bit N of each operand using a
	{Boolean} function ({NOT}, {AND}, {OR}, {XOR}) to produce bit
	N of the result.

	For example, a bitwise AND operator ("&" in {C}) would
	evaluate 13 & 9 as (binary) 1101 & 1001 = 1001 = 9, whereas,
	the logical AND, ({C} "&&") would evaluate 13 && 9 as TRUE &&
	TRUE = TRUE = 1.

	In some languages, e.g. {Acorn}'s {BASIC V}, the same operators
	are used for both bitwise and logical operations.  This
	usually works except when applying NOT to a value x which is
	neither 0 (false) nor -1 (true), in which case both x and (NOT
	x) will be non-zero and thus treated as TRUE.

	Other operations at the bit level, which are not normally
	described as "bitwise" include shift and rotate.

	(1995-05-12)

bitwise complement

	The bitwise complement of a {bit field} is a bit field of the
	same length but with each zero changed to a one and vice
	versa.  This is the same as the {ones complement} of a binary
	integer.

	(1994-11-14)

bixie

	/bik'see/ Variant {emoticons} used on {Byte Information
	eXchange}.  The {smiley} bixie is <@_@>, apparently intending
	to represent two cartoon eyes and a mouth.  A few others have
	been reported.

	[{Jargon File}]

	(1994-11-29)

biz-core stability

	<security> {Internet} security products which secure the
	{business core}.

	[Examples?]

	(2003-03-09)

bj

	<networking> The {country code} for Benin.

	(1999-01-27)

Bjarne Stroustrup

	<person> The father of {C++} and author of the C++ {bible}.

	["The C++ Programming Language", Bjarne Stroustrup,
	Addison-Wesley, 1986].

	[Details?]

	(2000-05-12)

BJC4000

	A colour {bubble jet} printer from {Canon}.  Released in
	September 1994.  It features 720 x 360 dots per inch in black
	and white mode and 360 x 360 in colour.  It has two
	cartridges: one for black and one for the three primary
	colours so it prints true black when printing in colour.

	(1994-11-29)

black art

	A collection of arcane, unpublished, and (by implication)
	mostly ad-hoc techniques developed for a particular
	application or systems area (compare {black magic}).  VLSI
	design and compiler code optimisation were (in their
	beginnings) considered classic examples of black art; as
	theory developed they became {deep magic}, and once standard
	textbooks had been written, became merely {heavy wizardry}.
	The huge proliferation of formal and informal channels for
	spreading around new computer-related technologies during the
	last twenty years has made both the term "black art" and what
	it describes less common than formerly.  See also {voodoo
	programming}.

	[{Jargon File}]

black box

	<jargon> An {abstraction} of a device or system in which only
	its externally visible behaviour is considered and not its
	implementation or "inner workings".

	See also {functional testing}.

	(1997-07-03)

black-box testing

	{functional testing}

Black Data Processing Associates

	<body> (BDPA) A non-profit professional association, founded
	in 1975 to promote positive influence in the {information
	technology} (IT) industry and how it affects African
	Americans.  The BDPA facilitates African American professional
	participation in local and national activities keeping up with
	developing IT trends.

	BDPA offers a forum for exchanging information and ideas about
	the computer industry.  It provides numerous networking
	opportunities through monthly program meetings, seminars, and
	workshops and the annual national conference.  Membership is
	open to anyone interested in IT.

	The Foundation provides scholarships to students who compete
	in an annual {Visual Basic} competition.

	{(http://bdpa.org/conf96)}.

	E-mail: <nbdpa@ix.netcom.com>.

	Telephone: Ms. Pat Drumming, +1 (800) 727-BDPA.

	(1996-04-07)

black hole

	1. An expression which depends on its own value or a technique
	to detect such expressions.  In graph reduction, when the
	reduction of an expression is begun, the root of the
	expression can be overwritten with a black hole.  If the
	expression depends on its own value, e.g.

		x = x + 1

	then it will try to evaluate the black hole which will usually
	print an error message and abort the program.  A secondary
	effect is that, once the root of the expression has been
	black-holed, parts of the expression which are no longer
	required may be freed for garbage collection.

	Without black holes the usual result of attempting to evaluate
	an expression which depends on itself would be a stack
	overflow.  If the expression is evaluated successfully then
	the black hole will be updated with the value.

	Expressions such as

		ones = 1 : ones

	are not black holes because the list constructor, : is lazy so
	the reference to ones is not evaluated when evaluating ones to
	WHNF.

	2. Where an {electronic mail} message or {news} aritcle has
	gone if it disappears mysteriously between its origin and
	destination sites without returning a {bounce message}.
	Compare {bit bucket}.

	[{Jargon File}]

BlackIce

	<software, security> A commercial {firewall} and {intrusion
	detection} system.

	{BlackIce Home (http://blackice.iss.net/)}.

	(2003-09-13)

black magic

	<jargon> (Or "{FM}") A technique that works, though nobody
	really understands why.  More obscure than {voodoo
	programming}, which may be done by {cookbook}.

	Compare {black art}, {deep magic}, and {magic number}.

	(2001-04-30)

blargh

	/blarg/ [MIT] The opposite of {ping}.  An exclamation
	indicating that one has absorbed or is emitting a quantum of
	unhappiness.  Less common than {ping}.

	[{Jargon File}]

blast

	1. {BLT}, used especially for large data sends over a network
	or comm line.  Opposite of {snarf}.  Usage: uncommon.  The
	variant "blat" has been reported.

	2. [HP/Apollo] Synonymous with {nuke}.  Sometimes the message
	"Unable to kill all processes.  Blast them (y/n)?"  would
	appear in the command window upon logout.

blat

	1. {blast}.

	2. See {thud}.

	[{Jargon File}]

BLAZE

	A {single assignment} language for {parallel processing}.

	["The BLAZE Language: A Parallel Language for Scientific
	Programming", P. Mehrotra <mehrotra@csrd.uiuc.edu> et al, J
	Parallel Comp 5(3):339-361 (Nov 1987)].

BLAZE 2

	An {object-oriented} successor to {BLAZE}.

	["Concurrent Object Access in BLAZE 2", P. Mehrotra et al,
	SIGPLAN Notices 24(4):40-42 (Apr 1989)].

bleam

	<jargon> To transmit or send data.

	"Bleam that binary to me in an e-mail".

	[Origin?  Used where?]

	(1997-05-14)

bleeper

	{pager}

bletcherous

	/blech'*-r*s/ Disgusting in design or function; aesthetically
	unappealing.  This word is seldom used of people.  "This
	keyboard is bletcherous!" (Perhaps the keys don't work very
	well, or are misplaced.)  The term {bletcherous} applies to
	the esthetics of the thing so described; similarly for
	cretinous.  By contrast, something that is "losing" or
	"bagbiting" may be failing to meet objective criteria.

	[{Jargon File}]

Bletchley Park

	<body, history> A country house and grounds some 50 miles
	North of London, England, where highly secret work deciphering
	intercepted German military radio messages was carried out
	during World War Two.  Thousands of people were working there
	at the end of the war, including a number of early computer
	pioneers such as {Alan Turing}.

	The nature and scale of the work has only emerged recently,
	with total secrecy having been observed by all the people
	involved.  Throughout the war, Bletchley Park produced highly
	important strategic and tactical intelligence used by the
	Allies, (Churchill's "golden eggs"), and it has been claimed
	that the war in Europe was probably shortened by two years as
	a result.

	An exhibition of wartime code-breaking memorabilia, including
	an entire working {Colossus}, restored by Tony Sale, can be
	seen at Bletchley Park on alternate weekends.

	The {Computer Conservation Society} (CCS), a specialist group
	of the {British Computer Society} runs a museum on the site
	that includes a working {Elliot} {mainframe} computer and many
	early {minicomputers} and {microcomputers}.  The CCS hope to
	have substantial facilities for storage and restoration of old
	artifacts, as well as archive, library and research
	facilities.

	Telephone: Bletchley Park Trust office +44 (908) 640 404
	(office hours and open weekends).

	(1998-12-18)

Blind Carbon Copy

	<messaging> (BCC) An {electronic mail} {header} which lists
	addresses to which a message should be sent, but which will
	not be seen by the recipients.

	Bcc is defined in {RFC 822} and supported by most e-mail
	systems.  A normal, non-blind "CC" header would be visible to
	all recipients, thus allowing them to reply to each other as
	well as to the sender.  According to RFC 822, the addresses
	listed in a BCC header are not included in the copies of the
	message sent to the recipients.  RFC 822 says BCC addresses
	may appear in the copy sent to "BCC" recipients themselves
	(though this would be unusual).

	(1998-03-14)

B-LINE

	An early {CAD} language.

	["B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall
	JCC 33 1968].

	(1994-11-17)

blinkenlights

	/blink'*n-li:tz/ Front-panel diagnostic lights on a computer,
	especially a {dinosaur}.  Derives from the last word of the
	famous blackletter-Gothic sign in mangled pseudo-German that
	once graced about half the computer rooms in the
	English-speaking world.  One version ran in its entirety as
	follows:

			ACHTUNG!  ALLES LOOKENSPEEPERS!

	  Das computermachine ist nicht fuer gefingerpoken und
	  mittengrabben.  Ist easy schnappen der springenwerk,
	  blowenfusen und poppencorken mit spitzensparken.  Ist nicht
	  fuer gewerken bei das dumpkopfen.  Das rubbernecken
	  sichtseeren keepen das cotten-pickenen hans in das pockets
	  muss; relaxen und watchen das blinkenlichten.

	This silliness dates back at least as far as 1959 at Stanford
	University and had already gone international by the early
	1960s, when it was reported at London University's ATLAS
	computing site.  There are several variants of it in
	circulation, some of which actually do end with the word
	"blinkenlights".

	In an amusing example of turnabout-is-fair-play, German
	hackers have developed their own versions of the blinkenlights
	poster in fractured English, one of which is reproduced here:

	                         ATTENTION

	  This room is fullfilled mit special electronische
	  equippment.  Fingergrabbing and pressing the cnoeppkes from
	  the computers is allowed for die experts only!  So all the
	  "lefthanders" stay away and do not disturben the
	  brainstorming von here working intelligencies.  Otherwise
	  you will be out thrown and kicked anderswhere!  Also: please
	  keep still and only watchen astaunished the blinkenlights.

	See also {geef}.

	[{Jargon File}]

BLISS

	{Basic Language for Implementation of System Software}

BLISS-10

	<language> A version of {BLISS} from {CMU} for the {PDP-10}.

	(2002-02-01)

BLISS-11

	<language> A {cross-compiler} for the {PDP-11} running on a
	{PDP-10}.  Written at {CMU} to support the {C.mmp}/{Hydra}
	project.

	(2002-02-01)

BLISS-16C

	<language> {DEC}'s {cross-compiler} equivalent of {BLISS-11}.

	(2002-02-01)

BLISS-32

	<language> A version of {BLISS} from DEC for {VAX}/{VMS}.

	(2002-02-01)

BLISS-36

	<language> {DEC}'s equivalent of {BLISS-10}.

	(2002-02-01)

blit

	/blit/ 1. To copy a large array of bits from one part of a
	computer's memory to another part, particularly when the
	memory is being used to determine what is shown on a display
	screen.  "The storage allocator picks through the table and
	copies the good parts up into high memory, and then blits it
	all back down again."  See {bitblt}, {BLT}, {dd}, {cat},
	{blast}, {snarf}.  More generally, to perform some operation
	(such as toggling) on a large array of bits while moving them.

	2. Sometimes all-capitalised as "BLIT": an early experimental
	{bit-mapped} {terminal} designed by Rob Pike at {Bell Labs},
	later commercialised as the {AT&T 5620}.  (The folk etymology
	from "Bell Labs Intelligent Terminal" is incorrect.  Its
	creators liked to claim that "Blit" stood for the Bacon,
	Lettuce, and Interactive Tomato).

	[{Jargon File}]

	(1994-11-16)

blitter

	<hardware, graphics> /blit'r/ (Or "{raster blaster}").  A
	special-purpose {integrated circuit} or hardware system built
	to perform {blit} (or "{bit bang}") operations, especially
	used for fast implementation of {bit-mapped} graphics.

	The {Commodore} {Amiga} and a few other {microcomputers} have
	these, but in 1991 the trend is away from them (however, see
	{cycle of reincarnation}).

	[{Jargon File}]

	(1996-04-30)

blivet

	/bliv'*t/ [allegedly from a World War II military term meaning
	"ten pounds of manure in a five-pound bag"] 1. An intractable
	problem.

	2. A crucial piece of hardware that can't be fixed or replaced
	if it breaks.

	3. A tool that has been hacked over by so many incompetent
	programmers that it has become an unmaintainable tissue of
	hacks.

	4. An out-of-control but unkillable development effort.

	5. An embarrassing bug that pops up during a customer demo.

	6. In the subjargon of computer security specialists, a
	denial-of-service attack performed by hogging limited
	resources that have no access controls (for example, shared
	spool space on a multi-user system).

	This term has other meanings in other technical cultures;
	among experimental physicists and hardware engineers of
	various kinds it seems to mean any random object of unknown
	purpose (similar to hackish use of {frob}).  It has also been
	used to describe an amusing trick-the-eye drawing resembling a
	three-pronged fork that appears to depict a three-dimensional
	object until one realises that the parts fit together in an
	impossible way.

	[{Jargon File}]

bloat

	{software bloat}

bloatware

	<jargon, abuse> {Software} suffering from {software bloat}.

	(1995-10-14)

BLOB

	1. {binary large object}.

	2. <architecture> {blitter object}.

	[{Jargon File}]

block

	1. <unit> A unit of data or memory, often, but not
	exclusively, on a {magnetic disk} or {magnetic tape}.

	Compare {record}, {sector}.

	(2000-07-17)

	2. <operating system> To delay or sit idle while waiting for
	something.

	Compare {busy-wait}.

	(2000-07-17)

	3. <programming> A delimited section of {source code} in a
	{block-structured} language.

	(2004-09-29)

Block And List Manipulation

	{BALM}

Block Diagram Compiler

	<simulation, language> (BDL) A {block diagram} simulation tool,
	with associated language.

	["A Software Environment for Digital Signal-Processing
	Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems
	and Signal Processing 6(1):31-43, 1987].

	(2000-07-17)

blocked records

	<storage> Several {records} written as a contiguous block on
	{magnetic tape} so that they may be accessed in a single I/O
	operation.  Blocking increases the amount of data that may be
	stored on a tape because there are fewer {inter-block gaps}.
	It requires that the tape drive or processor have a
	sufficiently large buffer to store the whole block.

	(1995-04-13)

Block Redundancy Check

	{Longitudinal Redundancy Check}

Block Started by Symbol

	<memory> (BSS) The uninitialised data segment produced by
	{Unix} {linkers}.  Objects in the bss segment have only a name
	and a size but no value.

	Executable code is located in the {code segment} and
	initialised data in the {data segment}.

	(2004-02-24)

block-structured

	<language> Any programming language in which sections of
	{source code} contained within pairs of matching {delimiters}
	such as "{" and "}" (e.g. in {C}) or "begin" and "end"
	(e.g. {Algol}) are executed as a single unit.  A block of code
	may be the body of a {subroutine} or {function}, or it may be
	controlled by conditional execution ({if statement}) or
	repeated execution ({while statement}, {for statement}, etc.).

	In all but the most primitive block structured languages a
	{variable}'s {scope} can be limited to the block in which it
	is declared.

	Block-structured languages support {structured programming}
	where each block can be written without detailed knowledge of
	the inner workings of other blocks, thus allowing a {top-down
	design} approach.

	See also {abstract data type}, {module}.

	(2004-09-29)

block transfer computations

	<algorithm, humour> (From the UK television series "Dr. Who")
	Computations so fiendishly subtle and complex that they could
	not be performed by machines.  Used to refer to any task that
	should be expressible as an {algorithm} in theory, but isn't.

	[{Jargon File}]

	(2004-09-28)

blog

	<World-Wide Web> (From "web log") Any kind of diary published on
	the {World-Wide Web}, usually written by an individual (a
	"blogger") but also by corporate bodies.

	Blogging is regarded by some as an important social phenomenon as
	it contributes to the easy exchange of ideas among a large and
	growing international community ("the blogosphere").

	A blog is just a special kind of {web site}.  The {home page}
	usually shows the most recent article and links to earlier
	articles, the owner's profile and web logs written by the owner's
	friends.  There is usually a facility for readers to add comments
	to the bottom of articles.  Blogs usually provide an {RSS feed} of
	current articles, allowing readers to subscribe by adding the feed
	to their favourite RSS reader.

	Many sites, e.g. {(http://blogger.com/)}, let you create a blog
	for free.  Many blogs consist almost entirely of links to other
	web logs, some publish original content, a few are worth reading.

	(2013-08-15)

blog-driven development

	{cut-and-waste code}

Bloggs Family, the

	An imaginary family consisting of Fred and Mary Bloggs and
	their children.  Used as a standard example in knowledge
	representation to show the difference between extensional and
	intensional objects.  For example, every occurrence of "Fred
	Bloggs" is the same unique person, whereas occurrences of
	"person" may refer to different people.  Members of the Bloggs
	family have been known to pop up in bizarre places such as the
	DEC Telephone Directory.  Compare {Mbogo, Dr. Fred}.

Bloombug

	<humour> A {bug} that accidentally generates money.

	[After "Bloomberg"?]

	(2012-11-10)

Blosim

	Block-Diagram Simulator.  A block-diagram simulator. "A Tool
	for Structured Functional Simulation", D.G. Messerschmitt,
	IEEE J on Selected Areas in Comm, SAC-2(1):137-147, 1984.

blow an EPROM

	/bloh *n ee'prom/ (Or "blast", "burn") To program a {read-only
	memory}, e.g. for use with an {embedded system}.  This term
	arose because the programming process for the {Programmable
	Read-Only Memory} (PROM) that preceded present-day {Erasable
	Programmable Read-Only Memory} (EPROM) involved intentionally
	blowing tiny electrical fuses on the chip.  The usage lives on
	(it's too vivid and expressive to discard) even though the
	write process on EPROMs is nondestructive.

	[{Jargon File}]

	(1994-11-29)

blow away

	<operating system, jargon> To remove (files and directories)
	from permanent storage, generally by accident.  "He
	reformatted the wrong partition and blew away last night's
	netnews".

	Compare: {nuke}.

	[{Jargon File}]

	(1996-01-05)

blowing your buffer

	<jargon> Losing your train of thought.  A reference to {buffer
	overflow}.

	(1999-01-15)

blow out

	<jargon> (Probably from mining and tunnelling jargon) Of
	{software}, to fail spectacularly; almost as serious as {crash
	and burn}.

	See {blow past}, {blow up}, {die horribly}.

	[{Jargon File}]

	(1994-11-29)

blow past

	To {blow out} despite a safeguard.  "The server blew past the
	5K reserve buffer."

	[{Jargon File}]

	(1994-11-29)

blow up

	1. Of a scientific computation: to become unstable.  It
	suggests that the computation is diverging so rapidly that it
	will soon overflow or at least go {nonlinear}.

	2. {blow out}.

	[{Jargon File}]

BLOX

	A {visual language}.

BLT

	1. /B-L-T/, /bl*t/ or (rarely) /belt/ Synonym for {blit}.
	This is the original form of {blit} and the ancestor of
	{bitblt}.  It refers to any large bit-field copy or move
	operation (one resource-intensive memory-shuffling operation
	done on pre-paged versions of {ITS}, {WAITS} and {TOPS-10} was
	sardonically referred to as "The Big BLT").  The jargon usage
	has outlasted the {PDP-10} BLock Transfer instruction from
	which {BLT} derives; nowadays, the {assembly language}
	{mnemonic} {BLT} almost always means "Branch if Less Than
	zero".

	2. bacon, lettuce and tomato (sandwich).

	[{Jargon File}]

Blue

	A language proposed by Softech to meet the {DoD} {Ironman}
	requirements which led to {Ada}.  ["On the BLUE Language
	Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices
	13(10):10-15 (Oct 1978)].

Blue Book

	1. <publication> Informal name for one of the four standard
	references on the page-layout and graphics-control language
	{PostScript}.  The other three official guides are known as
	the {Green Book}, the {Red Book}, and the {White Book}.

	["PostScript Language Tutorial and Cookbook", Adobe Systems,
	Addison-Wesley 1985, (ISBN 0-201-10179-3)].

	2. <publication> Informal name for one of the three standard
	references on Smalltalk.  This book also has green and red
	siblings.

	["Smalltalk-80: The Language and its Implementation", David
	Robson, Addison-Wesley 1983, (ISBN 0-201-11371-63)].

	3. <publication> Any of the 1988 standards issued by the
	{ITU-T}'s ninth plenary assembly.  These include, among other
	things, the {X.400} {electronic mail} specification and the
	Group 1 through 4 fax standards.

	See also {book titles}.

	[{Jargon File}]

	(1995-10-12)

Blue Box

	<operating system> The complete implementation of the {Mac OS}
	run-time environment on the more modern {Rhapsody} operating
	system.  {Blue Box} is not an {emulation} layer; at any given
	time it will be based on the same source code and ROM image as
	the current version of Mac OS and will thus incorporate future
	Mac OS improvements.

	(1997-10-15)

blue dot syndrome

	<graphics, jargon> The inability to display an {image} {file}
	or {text} embedded in an image file on your monitor.

	[Why?]

	(2002-05-28)

Blue Glue

	{Systems Network Architecture}

Blue Screen of Death

	<humour> (BSOD) The infamous white-on-blue text screen which
	appears when {Microsoft Windows} crashes.  BSOD is mostly seen
	on the 16-bit systems such as {Windows 3.1}, but also on
	{Windows 95} and apparently even under {Windows NT 4}.  It is
	most likely to be caused by a {GPF}, although Windows 95 can
	do it if you've removed a required {CD-ROM} from the drive.
	It is often impossible to recover cleanly from a BSOD.

	The acronym BSOD is sometimes used as a verb, e.g. "{Windoze}
	just keeps BSODing on me today".

	(1998-09-08)

Blue Screen of Life

	<operating system> (BSOL, by analogy with "{Blue Screen of
	Death}") The opening screen of {Microsoft} {Windows NT}.

	This screen shows the {file system} loading, and any problems
	such as conversions from {FAT} to {NTFS} or a scan of a {hard
	drive}.

	The Blue Screen of Life occurs in one way, as opposed to the
	{Blue Screen of Death}, which can occur in many different ways
	and times.

	[Is this term ever used in connection with {Windows 3.x} or
	{Windows 9x}?]

	(1999-04-18)

Blue Sky Software

	{eHelp Corporation}

Bluetooth

	<protocol, standard> A specification for short-range radio
	links between mobile computers, mobile phones, digital
	cameras, and other portable devices.

	{(http://bluetooth.com)}.

	(2001-03-16)

blue wire

	(IBM) Patch wires added to circuit boards at the factory to
	correct design or fabrication problems.  These may be
	necessary if there hasn't been time to design and qualify
	another board version.

	Compare {purple wire}, {red wire}, {yellow wire}.

	[{Jargon File}]

	(1994-11-29)

blurgle

	/bler'gl/ [Great Britain] Spoken {metasyntactic variable}, to
	indicate some text that is obvious from context, or which is
	already known.  If several words are to be replaced, blurgle
	may well be doubled or trebled.  "To look for something in
	several files use "{grep} string blurgle blurgle"."  In each
	case, "blurgle blurgle" would be understood to be replaced by
	the file you wished to search.  Compare {mumble}.

	[{Jargon File}]

bm

	<networking> The {country code} for Bermuda.

	(1999-01-27)

BMAN

	{Broadband Metropolitan Area Network}

BMASF

	Basic Module Algebra Specification Language?  "Design of a
	Specification Language by Abstract Syntax Engineering",
	J.C.M. Baeten et al, in LNCS 490, pp.363-394.

BMDP

	{BioMeDical Package}

B-Method

	<programming, tool> A system for rigorous or formal
	development of software using the notion of {Abstract
	Machines} to specify and design software systems.  The
	B-Method is supported by the {B-Toolkit}.

	Abstract Machines are specified using the Abstract Machine
	Notation (AMN) which is in turn based on the mathematical
	theory of {Generalised Substitutions}.

	(1995-03-13)

BMF

	{Bird-Meertens Formalism}

BMP

	{Basic Multilingual Plane}

bmp

	<file format, graphics> {Microsoft Windows} {bitmap} format.
	Bmp files may use {run-length encoding}.

	This is the only graphics format where {compression} actually
	enlarges the file.  The format is widely used nonetheless.

	[Format?]

	(1998-03-14)

BMWF

	<body> The Austrian, German and Swiss(?) Ministries of
	Science.

	[Expansion?]

	(1998-12-09)

bn

	<networking> The {country code} for Brunei Darussalam.

	(1999-01-27)

BNC

	<hardware> A connector for {coaxial cable} such as that used
	for some video connections and {RG58} "{cheapernet}"
	connections.  A BNC connector has a bayonet-type shell with
	two small knobs on the female connector which lock into spiral
	slots in the male connector when it is twisted on.

	Different sources expand BNC as Bayonet Navy Connector,
	British Naval Connector, Bayonet Neill Concelman, or Bayonet
	Nut Connection.

	(1995-09-18)

BNF

	{Backus-Naur Form}.  Originally Backus Normal Form.

	[{Jargon File}]

BNR Pascal

	["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp
	17(10):741-755 (Oct 1987)].

	(1994-12-21)

BNR Prolog

	A {constraint logic} language.

	[Details?]

	(1994-12-21)

bo

	<networking> The {country code} for Bolivia.

	(1999-01-27)

BOA

	{Basic Object Adapter}

boa

	[IBM] Any one of the fat cables that lurk under the floor in a
	{dinosaur pen}.  Possibly so called because they display a
	ferocious life of their own when you try to lay them straight
	and flat after they have been coiled for some time.  It is
	rumored within IBM that channel cables for the 370 are limited
	to 200 feet because beyond that length the boas get dangerous
	--- and it is worth noting that one of the major cable makers
	uses the trademark "Anaconda".

	[{Jargon File}]

board

	1. In-context synonym for {bboard}; sometimes used even for
	{Usenet} newsgroups.

	2. An electronic circuit board.

boat anchor

	1. Like {doorstop} but more severe; implies that the offending
	hardware is irreversibly dead or useless.  "That was a working
	motherboard once.  One lightning strike later, instant boat
	anchor!"

	2. A person who just takes up space.

	3. Obsolete but still working hardware, especially when used
	of an old S100-bus hobbyist system; originally a term of
	annoyance, but became more and more affectionate as the
	hardware became more and more obsolete.

	[{Jargon File}]

Bob

	David Betz.  A tiny object-oriented language.

	{(ftp://ftp.mv.com/pub/ddj/packages/bob15.arc)}.

	[Dr Dobbs J, Sep 1991, p.26].

Bobo the Webmonkey

	<World-Wide Web> What {B1FF} was to {BITNET} users, Bobo the
	Webmonkey is to {webmonkeys} - the mythical prototype of
	incompetent web designers everywhere.  In fact, Bobo may be
	what B1FF became when he grew up.

	Bobo knows about {HTML} only what he has learned from viewing
	the source of other people's Web pages.

	Bobo doesn't know what a {MIME type} is, even though someone
	gave him a hardcopy of the {FOLDOC} entry for it.

	Bobo may have used an HTML code validator
	{(http://validator.w3.org/)} before, but isn't sure.

	Bobo doesn't know what the difference between {GIF} and {JPEG}
	is.  He thinks {PNG} is a foreign country.

	All the pages Bobo has designed say "Welcome to [organisation]
	online!" at the top, and say "click here!" at least three
	times per page.

	Bobo has used {Photoshop} before; he doesn't understand why
	people keep asking if he's ever been tested for
	color-blindness.

	Bobo never got that "its" / "it's" distinction real clear, as
	you can tell from his pages.

	Bobo likes <BLINK>.

	(1998-04-04)

BOCS

	Berard Object and Class Specifier, an Object-oriented CASE
	tool from Berard Software Engineering.

Boehm B.

	Proposed the COCOMO technique for evaluating the cost of a
	software project.

BOEING

	<language> An early system on the {IBM 1130}.

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

	(2004-09-14)

BOF

	/B-O-F/ or /bof/ 1. {Birds Of a Feather}.

	2. Boring Old Fart.

	[{Jargon File}]

BOFH

	{Bastard Operator From Hell}

bogometer

	<humour> /boh-gom'-*t-er/ A notional instrument for measuring
	{bogosity}.

	Compare the "wankometer" described in the {wank} entry.

	[{Jargon File}]

	(1999-06-10)

BogoMips

	<unit> (From "bogus", "{MIPS}") The timing unit of the {Linux}
	{kernel}.

	A BogoMips is an unscientific measurement of {processor} speed
	made by the {Linux} {kernel} when it {boots}, to calibrate an
	internal {busy-loop}.

	{BogoMips MiniHowto
	(http://metalab.unc.edu/LDP/HOWTO/mini/BogoMips.html)}.

	(1999-05-06)

bogon

	/boh'gon/ (By analogy with proton/electron/neutron, but
	doubtless reinforced after 1980 by the similarity to Douglas
	Adams's "Vogons")

	1. The elementary particle of bogosity (see {quantum
	bogodynamics}).  For instance, "the Ethernet is emitting
	bogons again" means that it is broken or acting in an erratic
	or bogus fashion.

	2. A query {packet} sent from a {TCP/IP} {domain resolver} to
	a root server, having the reply bit set instead of the query
	bit.

	3. Any bogus or incorrectly formed packet sent on a network.

	4. A person who is bogus or who says bogus things.  This was
	historically the original usage, but has been overtaken by its
	derivative senses.  See also {bogosity}; compare {psyton},
	{fat electrons}, {magic smoke}.

	The bogon has become the type case for a whole bestiary of
	nonce particle names, including the "clutron" or "cluon"
	(indivisible particle of cluefulness, obviously the
	antiparticle of the bogon) and the futon (elementary particle
	of {randomness}, or sometimes of lameness).  These are not so
	much live usages in themselves as examples of a live
	meta-usage: that is, it has become a standard joke or
	linguistic maneuver to "explain" otherwise mysterious
	circumstances by inventing nonce particle names.  And these
	imply nonce particle theories, with all their dignity or lack
	thereof (we might note parenthetically that this is a
	generalisation from "(bogus particle) theories" to "bogus
	(particle theories)"!).  Perhaps such particles are the
	modern-day equivalents of trolls and wood-nymphs as standard
	starting-points around which to construct explanatory myths.
	Of course, playing on an existing word (as in the "futon")
	yields additional flavour.

	[{Jargon File}]

bogon filter

	/boh'gon fil'tr/ Any device, software or hardware, that limits
	or suppresses the flow and/or emission of bogons.
	"Engineering hacked a bogon filter between the {Cray} and the
	{VAXen}, and now we're getting fewer dropped packets."  See
	also {bogosity}.

bogon flux

	/boh'gon fluhks/ A measure of a supposed field of {bogosity}
	emitted by a speaker, measured by a {bogometer}; as a speaker
	starts to wander into increasing bogosity a listener might say
	"Warning, warning, bogon flux is rising".  See {quantum
	bogodynamics}.

	[{Jargon File}]

bogosity

	/boh-go's*-tee/ The degree to which something is "bogus" in
	the hackish sense of "bad".  At CMU, bogosity is measured with
	a {bogometer}; in a seminar, when a speaker says something
	bogus, a listener might raise his hand and say "My bogometer
	just triggered".  More extremely, "You just pinned my
	bogometer" means you just said or did something so
	outrageously bogus that it is off the scale, pinning the
	bogometer needle at the highest possible reading (one might
	also say "You just redlined my bogometer").  The agreed-upon
	unit of bogosity is the {microLenat}.

	Also, the potential field generated by a {bogon flux}; see
	{quantum bogodynamics}.  See also {bogon flux}, {bogon
	filter}.

	(2002-04-14)

bogo-sort

	<algorithm, humour> /boh"goh-sort"/ (Or "stupid-sort") The
	archetypical perversely awful {algorithm} (as opposed to
	{bubble sort}, which is merely the generic *bad* algorithm).
	Bogo-sort is equivalent to repeatedly throwing a deck of cards
	in the air, picking them up at random, and then testing
	whether they are in order.  It serves as a sort of canonical
	example of awfulness.  Looking at a program and seeing a dumb
	algorithm, one might say "Oh, I see, this program uses
	bogo-sort."

	Also known as "monkey sort" after the {Infinite Monkey
	Theorem}.

	Compare {brute force}, {Lasherism}.

	{An implementation (http://stdout.org/~adam/psort)}.

	[{Jargon File}]

	(2002-04-07)

bogotify

	<jargon> /boh-go't*-fi:/ To make or become bad.  A program
	that has been changed so many times as to become completely
	disorganised has become bogotified.  If you tighten a nut too
	hard and strip the threads on the bolt, the bolt has become
	bogotified.

	See also {bogosity}.

	(2003-01-25)

bogue out

	/bohg owt/ To become bogus, suddenly and unexpectedly.  "His
	talk was relatively sane until somebody asked him a trick
	question; then he bogued out and did nothing but {flame}
	afterward."  See also {bogosity}.

	[{Jargon File}]

BOHICA

	<humour> /bo-hee-ka/ {Bend Over, Here It Comes
	Again}.

Bohr bug

	<jargon, programming> /bohr buhg/ (From Quantum physics) A
	repeatable {bug}; one that manifests reliably under a possibly
	unknown but well-defined set of conditions.

	Compare {heisenbug}.  See also {mandelbug}, {schroedinbug}.

	[{Jargon File}]

	(1995-02-28)

boink

	/boynk/ [{Usenet}: variously ascribed to the TV series
	"Cheers" "Moonlighting", and "Soap"] 1. To have sex with;
	compare {bounce}. (This is mainstream slang.) In Commonwealth
	hackish the variant "bonk" is more common.

	2. After the original Peter Korn "Boinkon" {Usenet} parties,
	used for almost any net social gathering, e.g. Miniboink, a
	small boink held by Nancy Gillett in 1988; Minniboink, a
	Boinkcon in Minnesota in 1989; Humpdayboinks, Wednesday
	get-togethers held in the San Francisco Bay Area.

	Compare {@-party}.

	3. Variant of "bonk"; see {bonk/oif}.

	[{Jargon File}]

BOLERO

	<programming> {Software AG}'s {object-oriented} development
	environment and {application server} for Electronic Business
	applications.

	(1999-03-06)

Bolt, Beranek and Newman, Inc.

	{BBN Technologies}

bomb

	1. <software> General synonym for {crash} except that it is
	not used as a noun.  Especially used of software or {OS}
	failures.  "Don't run Empire with less than 32K stack, it'll
	bomb".

	2. <operating system> {Atari ST} and {Macintosh} equivalents
	of a {Unix} "{panic}" or {Amiga} {guru}, in which {icons} of
	little black-powder bombs or mushroom clouds are displayed,
	indicating that the system has died.  On the {Macintosh}, this
	may be accompanied by a decimal (or occasionally
	{hexadecimal}) number indicating what went wrong, similar to
	the {Amiga} {guru meditation} number.  {MS-DOS} computers tend
	to {lock up} in this situation.

	3. <software> A piece of code embedded in a program that
	remains dormant until it is triggered.  Logic bombs are
	triggered by an event whereas time bombs are triggered either
	after a set amount of time has elapsed, or when a specific
	date is reached.

	[{Jargon File}]

	(1996-12-08)

bon

	<language> (From "Bonnie", {Ken Thompson}'s wife) A language
	designed by {Ken Thompson} and later revised by him to produce
	{B}.

	[When?  Features?]

	(1997-02-04)

bondage-and-discipline language

	A language (such as {Pascal}, {Ada}, APL, or Prolog) that,
	though ostensibly general-purpose, is designed so as to
	enforce an author's theory of "right programming" even though
	said theory is demonstrably inadequate for systems hacking or
	even vanilla general-purpose programming.  Often abbreviated
	"B&D"; thus, one may speak of things "having the B&D nature".

	See {Pascal}.  Compare {languages of choice}.

	[{Jargon File}]

	(1996-01-05)

bonk/oif

	/bonk/, /oyf/ In the {MUD} community, it has become
	traditional to express pique or censure by "bonking" the
	offending person.  Convention holds that one should
	acknowledge a bonk by saying "oif!" and there is a myth to the
	effect that failing to do so upsets the cosmic bonk/oif
	balance, causing much trouble in the universe.  Some MUDs have
	implemented special commands for bonking and oifing.

	[{Jargon File}]

	(1998-01-18)

Booch method

	<programming> A widely used {object-oriented analysis} and
	{object-oriented design} method.

	{(http://hsr.ch/div/Booch/BoochReference/)}.

	[Grady Booch, "Object-oriented Analysis and Design with
	Applications", 2nd edition. Benjamin Cummings, Redwood City,
	ISBN 0-8053-5340-2, 1993]

	(2000-05-23)

book

	1. <text> {e-book}.

	2. {book titles}.

	3. <computer> {MacBook}.

	4. {O'Reilly and Associates}.

bookmark

	<World-Wide Web> A user's reference to a document on the
	{World-Wide Web} or other hypermedia system, usually in the
	form of a {URL} and a title or comment string.

	Most World-Wide Web and {Gopher} {browsers} can save and load
	a file of bookmarks to allow you to quickly locate documents
	to which you want to refer again.

	(1997-06-09)

Bookreader

	{DEC}'s {CD-ROM}-based on-line documentation browser.

book titles

	<publication> There is a tradition in hackerdom of informally
	tagging important textbooks and standards documents with the
	dominant colour of their covers or with some other conspicuous
	feature of the cover.  Many of these are described in {this
	dictionary} under their own entries.  See {Aluminum Book},
	{Blue Book}, {Cinderella Book}, {Devil Book}, {Dragon Book},
	{Green Book}, {Orange Book}, {Pink-Shirt Book}, {Purple Book},
	{Red Book}, {Silver Book}, {White Book}, {Wizard Book},
	{Yellow Book}, {bible}, {rainbow series}.

	[{Jargon File}]

	(1996-12-03)

Bookviewer

	A hypertext documentation system from Oracle based on Oracle
	Toolkit.  It allows the user to create private links and
	bookmarks, and to make multimedia annotations.

bool

	{Boolean}

Boolean

	<logic> 1. {Boolean algebra}.

	<programming> 2. (bool) The type of an expression with two
	possible values, "true" and "false".  Also, a variable of
	Boolean type or a function with Boolean arguments or result.
	The most common Boolean functions are {AND}, {OR} and {NOT}.

	(1997-12-01)

Boolean algebra

	<logic> (After the logician {George Boole})

	1. Commonly, and especially in computer science and digital
	electronics, this term is used to mean {two-valued logic}.

	2. This is in stark contrast with the definition used by pure
	mathematicians who in the 1960s introduced "Boolean-valued
	{models}" into logic precisely because a "Boolean-valued
	model" is an interpretation of a {theory} that allows more
	than two possible truth values!

	Strangely, a Boolean algebra (in the mathematical sense) is
	not strictly an {algebra}, but is in fact a {lattice}.  A
	Boolean algebra is sometimes defined as a "complemented
	{distributive lattice}".

	Boole's work which inspired the mathematical definition
	concerned {algebras} of {sets}, involving the operations of
	intersection, union and complement on sets.  Such algebras
	obey the following identities where the operators ^, V, - and
	constants 1 and 0 can be thought of either as set
	intersection, union, complement, universal, empty; or as
	two-valued logic AND, OR, NOT, TRUE, FALSE; or any other
	conforming system.

	 a ^ b = b ^ a    a V b  =  b V a     (commutative laws)
	 (a ^ b) ^ c  =  a ^ (b ^ c)
	 (a V b) V c  =  a V (b V c)          (associative laws)
	 a ^ (b V c)  =  (a ^ b) V (a ^ c)
	 a V (b ^ c)  =  (a V b) ^ (a V c)    (distributive laws)
	 a ^ a  =  a    a V a  =  a           (idempotence laws)
	 --a  =  a
	 -(a ^ b)  =  (-a) V (-b)
	 -(a V b)  =  (-a) ^ (-b)             (de Morgan's laws)
	 a ^ -a  =  0    a V -a  =  1
	 a ^ 1  =  a    a V 0  =  a
	 a ^ 0  =  0    a V 1  =  1
	 -1  =  0    -0  =  1

	There are several common alternative notations for the "-" or
	{logical complement} operator.

	If a and b are elements of a Boolean algebra, we define a <= b
	to mean that a ^ b = a, or equivalently a V b = b.  Thus, for
	example, if ^, V and - denote set intersection, union and
	complement then <= is the inclusive subset relation.  The
	relation <= is a {partial ordering}, though it is not
	necessarily a {linear ordering} since some Boolean algebras
	contain incomparable values.

	Note that these laws only refer explicitly to the two
	distinguished constants 1 and 0 (sometimes written as {LaTeX}
	\top and \bot), and in {two-valued logic} there are no others,
	but according to the more general mathematical definition, in
	some systems variables a, b and c may take on other values as
	well.

	(1997-02-27)

Boolean logic

	<logic> A {logic} based on {Boolean algebra}.

	(1995-03-25)

Boolean search

	<information science> (Or "Boolean query") A query using the
	{Boolean} operators, {AND}, {OR}, and {NOT}, and parentheses
	to construct a complex condition from simpler criteria.  A
	typical example is searching for combinatons of keywords on a
	{World-Wide Web} {search engine}.

	Examples:

		car or automobile

		"New York" and not "New York state"

	The term is sometimes stretched to include searches using
	other operators, e.g. "near".

	Not to be confused with {binary search}.

	See also: {weighted search}.

	(1999-10-23)

Boole, George

	{George Boole}

Booster

	A {data-parallel} language.

	"The Booster Language", E. Paalvast, TR PL 89-ITI-B-18, Inst
	voor Toegepaste Informatica TNO, Delft, 1989.

boot

	{bootstrap}

boot block

	<operating system> A program on a {hard disk}, {floppy disk}
	or other media, which is loaded when the computer is turned on
	or rebooted and which controls the next phase of loading the
	actual {operating system}.  The loading and execution of the
	boot block is usually controlled by {firmware} in {ROM} or
	{PROM}.  It may be at some fixed location possibly or may be
	pointed to by the {master boot record}.

	(2009-05-19)

boot disk

	<operating system> The {magnetic disk} (usually a {hard disk})
	from which an {operating system} {kernel} is loaded (or
	"bootstrapped").  This second phase in system start-up is
	performed by a simple bootstrap loader program held in {ROM},
	possibly configured by data stored in some form of writable
	{non-volatile storage}.

	{MS-DOS} and {Microsoft Windows} can be configured (in the
	{BIOS}) to try to boot off either {floppy disk} or {hard
	disk}, in either order.  By default they first check for the
	presence of a {floppy disk} in the drive at start-up and try
	to use that as a boot disk if present.  If no disk is in the
	drive they then try to boot off the hard disk.

	Some {operating systems}, notably {SunOS} and {Solaris}, can
	be configured to boot from a network rather than from disk.
	Such a system can thus run as a {diskless workstation}.

	(1997-06-09)

booting

	{bootstrap}

BOOTP

	The Bootstrap Protocol.

	A {protocol} described in {RFCs} 951 and 1084 and used for
	booting {diskless workstations}.

	See also {Reverse Address Resolution Protocol}.

	(1995-02-16)

bootstrap

	<operating system, compiler> To load and initialise the
	{operating system} on a computer.  Normally abbreviated to
	"{boot}".  From the curious expression "to pull oneself up by
	one's bootstraps", one of the legendary feats of Baron von
	Munchhausen.  The {bootstrap loader} is the program that runs
	on the computer before any (normal) program can run.  Derived
	terms include {reboot}, {cold boot}, {warm boot}, {soft boot}
	and {hard boot}.

	The term also applies to the use of a {compiler} to compile
	itself.  The usual process is to write an {interpreter} for a
	language, L, in some other existing language.  The compiler is
	then written in L and the interpreter is used to run it.  This
	produces an {executable} for compiling programs in L from the
	source of the compiler in L.  This technique is often used to
	verify the correctness of a compiler.  It was first used in
	the {LISP} community.

	See also {My Favourite Toy Language}.

	[{Jargon File}]

	(2005-04-12)

bootstrap loader

	<operating system> A short {program} loaded from {non-volatile
	storage} and used to {bootstrap} a computer.

	On early computers great efforts were expended on making the
	bootstrap loader short, in order to make it easy to {toggle}
	in via the {front panel} switches.  It was just clever enough
	to read in a slightly more complex {program} (usually from
	{punched cards} or {paper tape}), to which it handed control.
	This {program} in turn read the {application} or {operating
	system} from a {magnetic tape} drive or {disk drive}.  Thus,
	in successive steps, the {computer} "pulled itself up by its
	bootstraps" to a useful operating state.

	Nowadays the bootstrap loader is usually found in {ROM} or
	{EPROM}, and reads the first stage in from a fixed location on
	the {disk}, called the "{boot block}".  When this {program}
	gains control, it is powerful enough to load the actual {OS}
	and hand control over to it.  A {diskless workstation} can use
	{bootp} to load its OS from the network.

	(2005-04-12)

boot virus

	An {MS-DOS} {virus} that infects the {boot record} program on
	{hard disks} and {floppy disks} or the {master boot record} on
	hard disks.  The virus gets loaded into memory before {MS-DOS}
	and takes control of the computer, infecting any floppy disks
	subsequently accessed.  An infected {boot disk} may stop the
	computer starting up at all.

	(1995-02-16)

Border Gateway Protocol

	(BGP) An {Exterior Gateway Protocol} defined in {RFC 1267} and
	{RFC 1268}.  Its design is based on experience gained with
	{Exterior Gateway Protocol} (EGP), as defined in {STD} 18,
	{RFC 904} and EGP usage in the {NSFNet} {backbone}, as
	described in RFCs 1092 and 1093.

	(1994-11-29)

borf

	<jargon> To uncerimoniously disconnect someone from a system
	without prior warning.  {BBS} {Sysops} routinely "borf" pest
	users by turning off the modem or by hitting the "auto-borf"
	key sequence.

	You can also be "borfed" by software dropping {carrier} due to
	a {bug}.

	The origin of the term is unknown but it has been in use since
	at least 1982.

	(1997-03-21)

Borland International, Inc.

	{Borland Software Corporation}

Borland Software Corporation

	<company> A company that sells a variety of {PC} software
	development and {database} systems.  Borland was founded in
	1983 and initially became famous for their low-cost software,
	particularly {Turbo Pascal}, {Turbo C}, and {Turbo Prolog}.

	Current and past products include the {Borland C++} C++ and C
	developement environment, the {Paradox} and {dBASE}
	{databases}, {Delphi}, {JBuilder}, and {InterBase}.

	Borland has approximately 1000 employees worldwide and has
	operations in Australia, Canada, France, Germany, Japan,
	Netherlands, and the United Kingdom.

	Borland sold {Quattro} Pro to {Novell} in 1994 for $100M.
	Novell later sold the product to {Corel Corporation}, who also
	bought {Paradox}.  dBASE was sold in March(?) 1999 to {dBase
	Inc.}

	In Febuary 1998 Borland bought {Visigenic Software, Inc.}.

	The company changed its name to Inprise Corporation on
	1998-04-29 and then on 2000-11-14 they announced they were
	changing it back to Borland from the first quarter of 2001.

	Quarterly sales $69M, profits $61M (Aug 1994).
	$56M, $6.4M (July 2001)

	{(http://borland.com/)}.

	Headquarters: 100 Borland Way, Scotts Valley, CA, 95066, USA.
	Telephone: +1 (408) 431 1000.

	(2002-03-16)

BOS

	1. <operating system> {Basic Operating System}.

	2. <tool> A data management system written at {DESY} and used
	in some high energy physics programs.

	3. <programming> The {Basic Object System}.

	(1999-01-20)

Bose-Chaudhuri-Hocquenghem Code

	<data, communications> (BHC Code) An {error detection and
	correction} technique based on {Cyclic Redundancy Code}, used
	in telecommunications applications.

	(1995-01-16)

BOSS

	Bridgport Operating System Software.  A derivative of the {ISO
	1054} numerical machine control language for milling, etc.

bot

	<networking, chat, World-Wide Web> (From "{robot}") Any type
	of autonomous {software} that operates as an {agent} for a
	user or a {program} or simulates a human activity.  On the
	{Internet}, the most popular bots are programs (called
	{spiders} or crawlers) used for searching.  They access {web
	sites}, retrieve documents and follow all the {hypertext
	links} in them; then they generate catalogs that are accessed
	by {search engines}.

	A {chatbot} converses with humans (or other bots).  A
	{shopbot} searches the Web to find the best price for a
	product.  Other bots (such as {OpenSesame}) observe a user's
	patterns in navigating a website and customises the site for
	that user.

	{Knowbots} collect specific information from {websites}.

	(1999-05-20)

botmaster

	<chat> The owner of a {bot}.

	(1997-04-07)

bottom

	<theory> The least defined element in a given {domain}.

	Often used to represent a non-terminating computation.

	(In {LaTeX}, bottom is written as {\perp}, sometimes with the
	domain as a subscript).

	(1997-01-07)

BottomFeeder

	<networking> An {RSS} {aggregator}.

	{BottomFeeder Home
	(http://cincomsmalltalk.com/BottomFeeder)}.

	(2003-09-29)

bottom feeder

	{slopsucker}

bottom-unique

	In {domain theory}, a function f is bottom-unique if

		f x = bottom  <=>  x = bottom

	A bottom-unique function is also {strict}.

bottom-up implementation

	<programming> The opposite of {top-down design}.  It is now
	received wisdom in most programming cultures that it is best
	to design from higher levels of abstraction down to lower,
	specifying sequences of action in increasing detail until you
	get to actual code.  Hackers often find (especially in
	exploratory designs that cannot be closely specified in
	advance) that it works best to *build* things in the opposite
	order, by writing and testing a clean set of primitive
	operations and then knitting them together.

	[{Jargon File}]

	(1996-05-10)

bottom-up model

	<programming> A method for estimating the cost of a complete
	software project by combining estimates for each component.

	(1996-05-28)

bottom-up testing

	<programming> An integration testing technique that tests the
	low-level components first using test drivers for those
	components that have not yet been developed to call the
	low-level components for test.

	Compare {bottom-up implementation}.

	(1996-05-10)

botwar

	<chat> The epic struggle of {bots} vying for dominance.

	Botwars are generally (and quite inappropriately) carried out
	on {talk} systems, typically {IRC}, where botwar crossfire
	(such as {pingflood}ing) absorbs scarce server resources and
	obstructs human conversation.

	The wisdom of experience indicates that {Core Wars}, not
	{talk} systems, are the appropriate venue for aggressive bots
	and their {botmasters}.

	Compare {penis war}.

	(1997-04-08)

bounce

	1. (Perhaps by analogy to a bouncing check) An {electronic
	mail} message that is undeliverable and returns an error
	notification (a "{bounce message}") to the sender is said to
	"bounce".

	2. To play volleyball.  The now-demolished {D. C. Power Lab}
	building used by the {Stanford AI Lab} in the 1970s had a
	volleyball court on the front lawn.  From 5 PM to 7 PM was the
	scheduled maintenance time for the computer, so every
	afternoon at 5 would come over the intercom the cry: "Now hear
	this: bounce, bounce!", followed by Brian McCune loudly
	bouncing a volleyball on the floor outside the offices of
	known volleyballers.

	3. To engage in sexual intercourse; probably from the
	expression "bouncing the mattress", but influenced by Roo's
	psychosexually loaded "Try bouncing me, Tigger!" from the
	"Winnie-the-Pooh" books.

	Compare {boink}.

	4. To casually reboot a system in order to clear up a
	transient problem.  Reported primarily among {VMS} users.

	5. (VM/CMS programmers) Automatic warm-start of a computer
	after an error.  "I logged on this morning and found it had
	bounced 7 times during the night"

	6. (IBM) To {power cycle} a peripheral in order to reset it.

	[{Jargon File}]

	(1994-11-29)

bounce message

	A notification message returned to the sender by a site unable
	to relay {e-mail} to the intended recipient or the next link
	in a {bang path}.  Reasons might include a nonexistent or
	misspelled user name or a {down} relay site.  Bounce messages
	can themselves fail, with occasionally ugly results; see
	{sorcerer's apprentice mode} and {software laser}.  The terms
	"bounce mail" and "barfmail" are also common.

	[{Jargon File}]

	(1994-11-29)

boundary scan

	The use of {scan registers} to capture state from device input
	and output pins.  {IEEE} Standard 1149.1-1990 describes the
	international standard implementation (sometimes called JTAG
	after the Joint Test Action Group which began the
	standardisation work).

	(1995-02-14)

boundary value

	{boundary value analysis}

boundary value analysis

	<programming> A test data selection technique in which values
	are chosen to lie along data extremes.  Boundary values
	include maximum, minimum, just inside/outside boundaries,
	typical values, and error values.  The hope is that, if a
	systems works correctly for these special values then it will
	work correctly for all values in between.

	(1996-05-10)

bounded

	<theory> In {domain theory}, a subset S of a {cpo} X is
	bounded if there exists x in X such that for all s in S, s <=
	x.  In other words, there is some element above all of S.  If
	every bounded subset of X has a least upper bound then X is
	boundedly {complete}.

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

	(1995-02-03)

boundedly complete

	<theory> (Or "consistently complete") In {domain theory}, a
	{complete partial order} is boundedly complete if every {bounded}
	{subset} has a {least upper bound}.

	(2014-07-01)

bound variable

	1. A bound variable or {formal argument} in a function
	definition is replaced by the {actual argument} when the
	function is applied.  In the {lambda abstraction}

		\ x . M

	x is the bound variable.  However, x is a {free variable} of
	the term M when M is considered on its own.  M is the {scope}
	of the binding of x.

	2. In logic a bound variable is a quantified variable.  See
	{quantifier}.

bournebasic

	A {BASIC} {interpreter}.

	comp.sources.misc archives volume 1.

Bourne shell

	(sh, Shellish).  The original {command-line interpreter}
	{shell} and script language for {Unix} written by S.R. Bourne
	of {Bell Laboratories} in 1978.  sh has been superseded for
	interactive use by the {Berkeley} {C shell}, {csh} but still
	widely used for writing {shell scripts}.

	There were even earlier shells, see {glob}.  [Details?]

	{ash} is a Bourne Shell clone.

	["Unix {Time-Sharing} System: The Unix Shell", S.R. Bourne,
	Bell Sys Tech J 57(6):1971-1990 (Jul 1978)].

boustrophedonic

	<hardware> (From the Greek "boustrophe-don": turning like oxen
	in plowing; from "bous": ox, cow; "strephein": to turn) An
	ancient method of writing using alternate left-to-right and
	right-to-left lines.  It used for an optimisation performed by
	some computer typesetting software and moving-head printers to
	reduce physical movement of the print head.  The adverbial
	form "boustrophedonically" is also found.

	(1994-11-29)

box

	<computer> 1. A computer; especially in the construction "foo
	box" where foo is some functional qualifier, like "graphics",
	or the name of an {operating system} (thus, "{Unix} box",
	"{MS-DOS} box", etc.)  "We preprocess the data on Unix boxes
	before handing it up to the {mainframe}."  The plural
	"{boxen}" is sometimes seen.

	2. Without qualification in an {IBM} {SNA} site, "box" refers
	specifically to an {IBM} {front-end processor}.

	[{Jargon File}]

	(1994-11-29)

boxed comments

	<programming> {Comments} that occupy several lines by
	themselves; so called because in {assembler} and {C} code they
	are often surrounded by a box in a style similar to this:

	 /*************************************************
	 *
	 * This is a boxed comment in C style
	 *
	 *************************************************/

	Common variants of this style omit the asterisks in column 2
	or add a matching row of asterisks closing the right side of
	the box.  The sparest variant omits all but the comment
	{delimiters} themselves; the "box" is implied.

	Opposite of {winged comments}.

	[{Jargon File}]

	(1997-07-21)

boxen

	/bok'sn/ (By analogy with {VAXen}) A fanciful plural of {box}
	often encountered in the phrase "Unix boxen", used to describe
	commodity {Unix} hardware.  The connotation is that any two
	Unix boxen are interchangeable.

	[{Jargon File}]

	(1994-11-29)

Boxer

	1. <language> A {visual language} by Hal Abelson and Andy
	diSessa of Berkeley which claims to be the successor to
	{Logo}.  Boxes are used to represent {scope}.

	2. <tool> A {text editor} for {MS-DOS} and {Microsoft
	Windows}.

	{(http://boxersoftware.com/users/dhamel)}.

	(2001-04-30)

boxology

	<graphics> /bok-sol'*-jee/ {ASCII art}.

	This term implies a more restricted domain, that of
	box-and-arrow drawings.  "His report has a lot of boxology in
	it."

	Compare {macrology}.

	[{Jargon File}]

	(1994-12-02)

Boycott Apple

	Some time before 1989, {Apple Computer, Inc.} started a
	lawsuit against {Hewlett-Packard} and {Microsoft}, claiming
	they had breeched Apple's {copyright} on the {look and feel}
	of the {Macintosh user interface}.  In December 1989, {Xerox}
	failed to sue {Apple Computer}, claiming that the software for
	Apple's {Lisa} computer and {Macintosh} {Finder}, both
	copyrighted in 1987, were derived from two {Xerox} programs:
	{Smalltalk}, developed in the mid-1970s and {Star},
	copyrighted in 1981.

	Apple wanted to stop people from writing any program that
	worked even vaguely like a {Macintosh}.  If such {look and
	feel} lawsuits succeed they could put an end to {free
	software} that could substitute for commercial software.

	In the weeks after the suit was filed, {Usenet} reverberated
	with condemnation for Apple.  {GNU} supporters {Richard
	Stallman}, {John Gilmore}, and Paul Rubin decided to take
	action against Apple.  Apple's reputation as a force for
	progress came from having made better computers; but The
	{League for Programming Freedom} believed that Apple wanted to
	make all non-Apple computers worse.  They therefore campaigned
	to discourage people from using Apple products or working for
	Apple or any other company threatening similar obstructionist
	tactics (e.g. {Lotus} and {Xerox}).

	Because of this boycott the {Free Software Foundation} for a
	long time didn't support {Macintosh} {Unix} in their software.
	In 1995, the LPF and the FSF decided to end the boycott.

	[Dates?  Other events?  Why did Xerox's case against Apple
	fail?]

	(1995-04-18)

bozotic

	<abuse> (From Bozo the Clown, a famous circus personality, via
	"bozo" - a clod, idiot or generally silly person) any form of
	clown-like or ludicrous behaviour.  The word also has echoes
	of "robotic", so bozotic behaviour is mindless, automaton-like
	stupidity.

	[{Jargon File}]

	(1996-01-05)

BPEL

	{Web Services Business Process Execution Language}

BPI

	{bits per inch}

bpmake

	{Aspirin}

bpp

	{bits per pixel}

BPR

	{Business Process Re-engineering}

BPS

	{Basic Programming Support}

bps

	{bits per second}

BQS

	{Berkeley Quality Software}

br

	<networking> The {country code} for Brazil.

	(1999-01-27)

brace

	<character> {left brace} or {right brace}.

bracket

	<character> (Or square bracket) A {left bracket} or {right
	bracket}.

	Often used loosely for {parentheses}, {square brackets},
	{braces}, {angle brackets}, or any other kind of unequal
	paired {delimiters}.

	(1996-09-08)

bracket abstraction

	<compiler> An {algorithm} which turns a term into a function
	of some variable.  The result of using bracket abstraction on
	T with respect to variable v, written as [v]T, is a term
	containing no occurrences of v and denoting a function f such
	that f v = T.  This defines the function f = (\ v . T).  Using
	bracket abstraction and {currying} we can define a language
	without {bound variables} in which the only operation is
	{monadic} function application.

	See {combinator}.

	(1995-03-07)

braille

	<human language> /breyl/ (Often capitalised) A class of
	{writing systems}, intended for use by blind and low-vision
	users, which express {glyphs} as raised dots.  Currently
	employed braille standards use eight dots per cell, where a
	cell is a glyph-space two dots across by four dots high; most
	glyphs use only the top six dots.

	Braille was developed by Louis Braille (pronounced /looy
	bray/) in France in the 1820s.  Braille systems for most
	languages can be fairly trivially converted to and from the
	usual script.

	Braille has several totally coincidental parallels with
	digital computing: it is {binary}, it is based on groups of
	eight bits/dots and its development began in the 1820s, at the
	same time {Charles Babbage} proposed the {Difference Engine}.

	Computers output Braille on {braille displays} and {braille
	printers} for hard copy.

	{British Royal National Institute for the Blind
	(http://rnib.org.uk/wesupply/fctsheet/braille.htm)}.

	(1998-10-19)

braille display

	<hardware> (Or "refreshable braille display", "refreshable
	display") An electromechanical device that renders {braille}
	with tiny, independently controlled pins used to represent the
	state of dots in braille cells.  Each pin, in its "on" state,
	raises above the top of its hole in the screen; in its "off"
	state, it drops below the top of its hole.  Older systems used
	tiny solenoids to control the state of the pins; modern
	systems are {piezoelectric}.

	Typical dimensions of a braille display are 1 line of 40
	cells, each cell of two-by-eight dots.

	(1998-10-19)

Braille embosser

	{Braille printer}

Braille printer

	<printer> (Or "(Braille) embosser") A {printer}, necessarily
	an {impact printer}, that renders text as {Braille}.  Blind
	users call other printers {ink printers}.

	(1999-02-26)

Brain Aid Prolog

	<language> (BAP) A parallel {Prolog} environment for
	{transputer} systems by Frank Bergmann <fraber@fraber.de>,
	Martin Ostermann <ost@xan.dfv.rwth-aachen.de>, and Guido von
	Walter <guido@parsytec.de> of {Brain Aid Systems} GbR.  BAP is
	based on a model of communicating sequential Prolog processes.
	The {run-time system} consists of a multi-process {operating
	system} with support for several applications running
	concurrently.

	{(http://fraber.de/bap/)}.

	(2002-11-12)

brain-damaged

	1. [generalisation of "Honeywell Brain Damage" (HBD), a
	theoretical disease invented to explain certain utter
	cretinisms in Honeywell {Multics}] Obviously wrong; cretinous;
	{demented}.

	There is an implication that the person responsible must have
	suffered brain damage, because he should have known better.
	Calling something brain-damaged is really bad; it also implies
	it is unusable, and that its failure to work is due to poor
	design rather than some accident.  "Only six monocase
	characters per file name?  Now *that's* brain-damaged!"

	2. [especially in the Mac world] May refer to free
	demonstration software that has been deliberately crippled in
	some way so as not to compete with the commercial product it
	is intended to sell.  Synonym {crippleware}.

	[{Jargon File}]

	(2011-01-04)

brain-dead

	Brain-damaged in the extreme.  It tends to imply terminal
	design failure rather than malfunction or simple stupidity.

brain dump

	(The act of telling someone) everything one knows about a
	particular topic.  Typically used when someone is going to let
	a new party maintain a piece of code.  Conceptually analogous
	to an operating system {core dump} in that it saves a lot of
	useful {state} before an exit.  "You'll have to give me a
	brain dump on FOOBAR before you start your new job at
	HackerCorp."  At Sun, this is also known as "TOI" (transfer of
	information).

	[{Jargon File}]

brain fart

	<jargon, humour> 1. The actual result of a {braino}, as
	opposed to the mental {glitch} that is the braino itself.
	E.g. typing "dir" on a {Unix box} after a session with
	{MS-DOS}.

	2. A biproduct of a bloated mind producing information
	effortlessly.  A burst of useful information. "I know you're
	busy on the Microsoft story, but can you give us a brain fart
	on the Mitnik bust?"

	(1997-04-29)

Brainfuck

	<language> An eight-instruction programming language created
	by Urban Müller.  His goal was apparently to create a
	{Turing-complete} language with the smallest {compiler} ever,
	for the {Amiga OS} 2.0.  He eventually reduced his compiler to
	under 200 bytes.

	A Brainfuck program has a pointer that moves within an array
	of 30000 bytes, initially all set to zero.  The pointer
	initially points to the beginning of this array.  The language
	has eight commands, each of which is represented as a single
	character, and which can be expressed in terms of {C} as
	follows:

	 >   ==>    ++p;
	 <   ==>    --p;
	 +   ==>    ++*p;
	 -   ==>    --*p;
	 .   ==>    putchar(*p);
	 ,   ==>    *p = getchar();
	 [   ==>    while (*p) {
	 ]   ==>    }

	{Brian Raiter's Brainfuck page
	(http://muppetlabs.com/~breadbox/bf/)}.

	(2003-11-18)

braino

	{thinko}

branch

	1. <mathematics> An {edge} in a {tree}.

	2. <programming> A {jump}.

Branch and Hang

	<humour> (BRH) Originally a mythical instruction for the {IBM
	1130} at {Indiana University}.

	Later some real examples were discovered.  The {Texas
	Instruments} {TI-980} allowed all {addressing modes} with all
	instructions, including Store Immediate Extended (stores the
	value into the extension word of the instruction) and Branch
	and Link Immediate (makes a subroutine call to the same
	instruction -- Branch and Hang).

	Compare {HCF}.

	(1997-02-12)

branch coverage testing

	<programming> A test method which aims to ensure that each
	possible branch from each decision point (e.g. "if" statement)
	is executed at least once, thus ensuring that all reachable
	code is executed.

	(1996-05-10)

branch delay slot

	{delayed control-transfer}

Branch on Chip Box Full

	<humour> (BCBF) A mythical {IBM 1130} instruction whose action
	depended on the contents of the {chip box}.  This was one of a
	long list of fake {assembly language} instructions that went
	around {Indiana University} in the 1970s.

	(1997-02-12)

branch prediction

	<processor, algorithm> A technique used in some processors
	with {instruction prefetch} to guess whether a {conditional
	branch} will be taken or not and prefetch code from the
	appropriate location.

	When a branch instruction is executed, its address and that of
	the next instruction executed (the chosen destination of the
	branch) are stored in the {Branch Target Buffer}.  This
	information is used to predict which way the instruction will
	branch the next time it is executed so that instruction
	prefetch can continue.  When the prediction is correct (and it
	is over 90% of the time), executing a branch does not cause a
	{pipeline break}.

	Some later {CPUs} simply prefetch both paths instead of trying
	to predict which way the branch will go.

	An extension of the idea of branch prediction is {speculative
	execution}.

	(1998-03-14)

Branch Target Buffer

	<processor> (BTB) A {register} used to store the predicted
	destination of a branch in a processor using {branch
	prediction}?

	[Is this correct?  Examples?]

	(1995-05-05)

branch to Fishkill

	(IBM: from the location of one of the corporation's
	facilities) Any unexpected jump in a program that produces
	catastrophic or just plain weird results.

	See {jump off into never-never land}, {hyperspace}.

	[{Jargon File}]

Brazil

	An {operating system} from {Acorn Computers} used on an {ARM}
	card which could be fitted to an {IBM PC}.  There was also an
	{ARM} second processor for the {BBC Microcomputer} which used
	Brazil.  Never used on the {Archimedes}(?).

	(1994-12-05)

BRB

	<chat> (I will) be right back.

	(1998-01-18)

breadcrumbs

	(After the story "Hansel and Gretel" by the Brothers Grimm).

	1. <World-Wide Web> {Links} displayed across the top of a {web
	page} listing the most recently visited pages so the reader
	can quickly jump back to one.  Since this function is provided
	by the {web browser}, breadcrumbs are a waste of space.

	A better use of the space is to display links to the page's
	logical parent pages in the information hierarchy.

	2. <programming> Information output by statements inserted
	into a program for {debugging by printf}.

	[{Jargon File}]

	(2007-03-07)

breadth-first search

	<algorithm> A {graph search algorithm} which tries all
	one-step extensions of current paths before trying larger
	extensions.  This requires all current paths to be kept in
	memory simultaneously, or at least their end points.

	Opposite of {depth-first search}.  See also {best first
	search}.

	(1996-01-05)

break

	1. To cause to be {broken}.  "Your latest patch
	to the editor broke the paragraph commands."

	2. (Of a program) To stop temporarily, so that it may
	debugged.  The place where it stops is a "{breakpoint}".

	3. To send an {EIA-232} break (two character widths of line
	high) over a {serial line}.

	4. [Unix] To strike whatever key currently causes the tty
	driver to send SIGINT to the current process.  Normally,
	break, delete or {control-C} does this.

	5. "break break" may be said to interrupt a conversation (this
	is an example of verb doubling).  This usage comes from radio
	communications, which in turn probably came from landline
	telegraph/teleprinter usage, as badly abused in the Citizen's
	Band craze.

	6. {pipeline break}.

	7. {break statement}.

	[{Jargon File}]

	(2004-03-24)

break-even point

	In the process of implementing a new computer language, the
	point at which the language is sufficiently effective that one
	can implement the language in itself.  That is, for a new
	language called, hypothetically, FOOGOL, one has reached
	break-even when one can write a demonstration compiler for
	FOOGOL in FOOGOL, discard the original implementation
	language, and thereafter use working versions of FOOGOL to
	develop newer ones.  This is an important milestone.  See {My
	Favourite Toy Language}.

	[There actually is a language called {Foogol}].

breakpoint

	<programming> A point in a {program} that, when reached,
	triggers some special behavior useful to the process of
	{debugging}; generally, breakpoints are used to either pause
	program {execution}, and/or {dump} the values of some or all
	of the program {variables}.  Breakpoints may be part of the
	program itself; or they may be set by the programmer as part
	of an {interactive} session with a debugging tool for
	scrutinizing the program's execution.

	(1999-06-07)

break statement

	<programming> A {statement} in the {C} programming language
	that transfers control out of the innermost enclosing
	{switch}, {while}, {do}, or {for} statement.  The statement
	also exists in languages derived from C, such as {C++} and
	{Java}.

	(2004-03-24)

breath-of-life packet

	({XEROX PARC}) An {Ethernet} {packet} that contains
	{bootstrap} code, periodically sent out from a working
	computer to infuse the "breath of life" into any computer on
	the network that has crashed.  Computers depending on such
	packets have sufficient hardware or firmware code to wait for
	(or request) such a packet during the reboot process.

	See also {dickless workstation}.

	The notional "kiss-of-death packet", with a function
	complementary to that of a breath-of-life packet, is
	recommended for dealing with hosts that consume too many
	network resources.  Though "kiss-of-death packet" is usually
	used in jest, there is at least one documented instance of an
	{Internet} subnet with limited address-table slots in a
	gateway computer in which such packets were routinely used to
	compete for slots, rather like Christmas shoppers competing
	for scarce parking spaces.

	[{Jargon File}]

	(1995-01-26)

breedle

	{feep}

BRH

	{Branch and Hang}

BRI

	{Basic Rate Interface}

Brian Reid

	<person> The person who cofounded {Usenet}'s anarchic alt.*
	{newsgroup} {hierarchy} with {John Gilmore}.

	(1997-04-12)

BRIDGE

	A component of {ICES} for civil engineers.

	[Sammet 1969, p. 616].

bridge

	<networking, hardware> A device which forwards traffic between
	{network segments} based on {data link layer} information.
	These segments would have a common {network layer} address.

	Every network should only have one {root bridge}.

	See also {gateway}, {router}.

	(2001-03-04)

Bridgetalk

	<language> A {visual language}.

	(2001-03-04)

briefcase

	<tool> A {Win95}/{WinNT} utility for keeping files on two
	computers without permanent connection in sync.

	The scenario briefcase was designed for is the combination of
	an office computer and a {portable} one.  You connect the two
	before leaving your office, create a briefcase on the portable
	(if you don't already have one on it), then copy the files you
	want to work on while away into the briefcase.  You can at
	this point disconnect the two computers, take the portable
	with you and work on the files in the briefcase at home or on
	the road.  When you get back to your office the briefcase
	utility can automatically update the files you changed on the
	office computer.

	(1998-05-18)

brightness

	<graphics> (Or "tone", "luminance", "value", "luminosity",
	"lightness") The coordinate in the {HSB} {colour model} that
	determines the total amount of light in the colour.  Zero
	brightness is black and 100% is white, intermediate values are
	"light" or "dark" colours.

	The other coordinates are {hue} and {saturation}.

	(1999-07-05)

Brilliant

	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)].

	See also {Diamond}, {Nonpareil}, {Pearl}, {Ruby}.

bring X to its knees

	To present a computer, operating system, piece of software, or
	algorithm with a load so extreme or {pathological} that it
	grinds to a halt.  "To bring a MicroVAX to its knees, try
	twenty users running {vi} - or four running {Emacs}."
	Compare {hog}.

	[{Jargon File}]

British Broadcasting Corporation

	<company> (BBC) The non-commercial UK organisation that
	commissions, produces and broadcasts television and radio
	programmes.

	The BBC commissioned the "{BBC Micro}" from {Acorn Computers}
	for use in a television series about using computers.  They
	also have one of the world's most respected news websites (on
	which I work!).

	{BBC Home (http://bbc.co.uk/)}.

	{BBC News (http://news.bbc.co.uk/)}.

	(2003-07-02)

British Library Method

	<algorithm> {Brute force} searching.

	According to legends circulating in the 1970s, in the British
	Library books are searched for by examining each book
	sequentially in the first shelf, then the next shelf,
	continuing until the book is found or the entire library has
	been searched.

	The term was referred to in a Dutch coursebook, "Inleiding In
	De Informatica" (Introduction to Informatics) from a course
	given by C.H.A. Koster and Th.A. Zoethout.  This was based on
	a course given at the TU Berlin.

	[Reference?]

	(1999-04-14)

British Standards Institute

	<body, standard> (BSI) The British member of {ISO}.

	(1996-06-12)

British Telecom

	<company> (BT) The largest telecommunications provider in the
	UK.

	Due to regulatory issues, BT had to sell off its interest in
	McCaw Cellular.  BT sold it to {AT&T} for something like 4B$.
	BT then invested that in {MCI}.  As a part of the deal, MCI
	was given BT North America, which was the old {Tymnet}.  MCI
	laid off about 40% of the Tymnet staff.

	{(http://intervid.co.uk/)}.

	(1995-05-09)

British Telecom Research Laboratories

	<company> (BTRL) The laboratories where {British Telecom}
	develops many of its new Network services.

	{(http://labs.bt.com/)}.

	Address: Martlesham Heath, near Ipswich, Suffolk, UK.

	(1995-04-25)

brittle

	<jargon> Said of {software} that is functional but easily
	broken by changes in operating environment or configuration,
	or by any minor tweak to the software itself.  Also, any
	system that responds inappropriately and disastrously to
	abnormal but expected external stimuli; e.g. a {file system}
	that is usually totally scrambled by a power failure is said
	to be brittle.  This term is often used to describe the
	results of a research effort that were never intended to be
	robust, but it can be applied to commercially developed
	software, which displays the quality far more often than it
	ought to.

	Opposite of {robust}.

	[{Jargon File}]

	(1995-05-09)

broadband

	<communications> A class of communication channel capable of
	supporting a wide range of frequencies, typically from audio
	up to video frequencies.  A broadband channel can carry
	multiple signals by dividing the total capacity into multiple,
	independent bandwidth channels, where each channel operates
	only on a specific range of frequencies.

	The term has come to be used for any kind of {Internet}
	connection with a {download} speed of more than 56 {kbps},
	usually some kind of {Digital Subscriber Line}, e.g. {ADSL}.
	A broadband connection is typically always connected, in
	contrast to a {dial-up} connection, and a fixed monthly rate
	is charged, often with a cap on the total amount of data that
	can be transferred.  Domestic broadband connections typically
	share a telephone line with normal voice calls and the two
	uses can occur simultaneously without interference.

	See also {baseband}, {narrowband}.

	(2006-03-30)

broadcast

	A transmission to multiple, unspecified recipients.  On
	Ethernet, a broadcast packet is a special type of multicast
	packet which all nodes on the network are always willing to
	receive.

broadcast quality video

	<communications, multimedia> Roughly, {video} with more than
	30 frames per second at a {resolution} of 800 x 640 {pixels}.

	The quality of moving pictures and sound is determined by the
	complete chain from camera to receiver.  Relevant factors are
	the colour temperature of the lighting, the balance of the
	red, green and blue vision pick-up tubes to produce the
	correct display colour temperature (which will be different)
	and the {gamma} pre-correction to cancel the non-linear
	characteristic of {cathode-ray tubes} in television receivers.
	The {resolution} of the camera tube and video coding system
	will determine the maximum number of {pixels} in the picture.

	Different colour coding systems have different defects.  The
	NTSC system (National Television Systems Committee) can
	produce {hue} errors.  The PAL system (Phase Alternation by
	Line) can produce {saturation} errors.

	Television modulation systems are specified by ITU CCIR Report
	624.  Low-resolution systems have {bandwidths} of 4.2 MHz with
	525 to 625 lines per frame as used in the Americas and Japan.
	Medium resolution of 5 to 6.5 MHz with 625 lines is used in
	Europe, Asia, Africa and Australasia.  {High-Definition
	Television} (HDTV) will require 8 MHz or more of bandwidth.

	A medium resolution (5.5 MHz in UK) picture can be represented
	by 572 lines of 402 pixels.  Note the ratio of pixels to lines
	is not the same as the {aspect ratio}.  A {VGA} display (480n
	lines of 640 pixels) could thus display 84% of the height of
	one picture frame.

	Most compression techniques reduce quality as they assume a
	restricted range of detail and motion and discard details to
	which the human eye is not sensitive.

	Broadcast quality implies something better than amateur or
	domestic video and therefore can't be retained on a domestic
	video recorder.  Broadcasts use quadriplex or U-matic
	recorders.

	The lowest frame rate used for commercial entertainment is the
	24Hz of the 35mm cinema camera.  When broadcast on a 50Hz
	television system, the pictures are screened at 25Hz reducing
	the running times by 4%.  On a 60Hz system every five movie
	frames are screened as six TV frames, still at the 4%
	increased rate.  The six frames are made by mixing adjacent
	frames, with some degradation of the picture.

	A computer system to meet international standard reproduction
	would at least VGA resolution, an interlaced frame rate of
	24Hz and 8 bits to represent the luminance (Y) component.  For
	a component display system using red, green and blue (RGB)
	electron guns and phosphor dots each will require 7 bits.
	Transmission and recording is different as various coding
	schemes need less bits if other representations are used
	instead of RGB.  Broadcasts use YUV and compression can reduce
	this to about 3.5 bits per pixel without perceptible
	degradation.  High-quality video and sound can be carried on a
	34 Mbaud channel after being compressed with {ADPCM} and
	{variable length coding}, potentially in real time.

	(1997-07-04)

broadcast storm

	<networking> A {broadcast} on a {network} that causes multiple
	{hosts} to respond by broadcasting themselves, causing the
	storm to grow exponentially in severity.

	See {network meltdown}.

	[{Jargon File}]

	(1995-02-07)

Broadway

	<standard, operating system> A standard which the {X
	Consortium} is currently (January 1997) developing and plans
	to release soon as an {open standard}.  A prime goal is to be
	more {bandwidth}-efficient and easier to develop for (and to
	{port}) than the {X Window System}, which has been widely
	described as over-sized, over-featured, over-engineered and
	incredibly over-complicated.

	{(http://x.org/consortium/broadway.html)}.

	(1997-05-15)

brochureware

	<marketing, jargon> Planned but non-existent product like
	{vaporware}, but with the added implication that marketing is
	actively selling and promoting it (they've printed brochures).
	Brochureware is often deployed to con customers into not
	committing to an existing product of the competition's.

	The term is now especially applicable to new {websites}, web
	site revisions, and ancillary services such as customer
	support and product return.

	Owing to the explosion of {database}-driven, {cookie}-using
	{dot-coms} (of the sort that can now deduce that you are, in
	fact, a dog), the term is now also used to describe sites made
	up of {static HTML} pages that contain not much more than
	contact info and mission statements.  The term suggests that
	the company is small, irrelevant to the web, local in scope,
	clueless, broke, just starting out, or some combination
	thereof.

	Many new companies without product, funding, or even staff,
	post brochureware with investor info and press releases to
	help publicise their ventures.  As of December 1999, examples
	include pop.com and cdradio.com.

	Small-timers that really have no business on the web such as
	lawncare companies and divorce laywers inexplicably have
	brochureware made that stays unchanged for years.

	[{Jargon File}]

	(2001-05-10)

broken

	Not working properly (of programs).

broken arrow

	<communications> The error code displayed on line 25 of a {IBM
	3270} {terminal} (or a {terminal emulator} emulating a 3270)
	for various kinds of {protocol} violations and "unexpected"
	error conditions (including connection to a {down} computer).
	On a PC, simulated with "->/_", with the two centre characters
	overstruck.

	"Broken arrow" is also military jargon for an accident
	involving nuclear weapons.

	[{Jargon File}]

	(1995-02-07)

broker

	{object request broker}

broket

	<character> /broh'k*t/ or /broh'ket/ (From broken bracket)
	Either of the characters "<" or ">" when used as paired
	enclosing {delimiters} ({angle brackets}).

	[{Jargon File}]

	(1997-07-21)

brontobyte

	<unit, data> A proposed unit of {data} equal to 10^27 {bytes}.  A
	brontobyte is 1000^9 bytes or 1000 {yottabytes}.

	"Bronto-" is not an official prefix and the term brontobyte is
	generally attributed to the IBM Dictionary of Computing.

	One brontobyte would be enough data to store a three-dimensional
	map of the Earth with one byte for each {voxel} of a
	one-centimetre grid.

	See {prefix}.

	[Where did IBM get it from?]

	(2013-11-04)

Brooks's Law

	<programming> "Adding manpower to a late software project
	makes it later" - a result of the fact that the expected
	advantage from splitting work among N programmers is O(N)
	(that is, proportional to N), but the complexity and
	communications cost associated with coordinating and then
	merging their work is O(N^2) (that is, proportional to the
	square of N).

	The quote is from Fred Brooks, a manager of {IBM}'s {OS/360}
	project and author of "{The Mythical Man-Month}".

	The myth in question has been most tersely expressed as
	"Programmer time is fungible" and Brooks established
	conclusively that it is not.  Hackers have never forgotten his
	advice; too often, {management} still does.

	See also {creationism}, {second-system effect}, {optimism}.

	[{Jargon File}]

	(1996-09-17)

brouter

	A device which bridges some {packets} (i.e. forwards based on
	{data link layer} information) and routes other packets (i.e.
	forwards based on {network layer} information).  The
	{bridge}/{route} decision is based on configuration
	information.

Brouwer Fixed-Point Theorem

	<topology> A well-known result in {topology} stating that any
	{continuous transformation} of an n-dimensional disk must have
	at least one {fixed point}.

	[Is this correct?]

	(2001-03-29)

Brown and Sharpe Wire Gauge

	{American Wire Gauge}

brown paper bag bug

	<programming> A programming {bug} that is so stupid that it
	makes the programmer want to put a brown paper bag over his
	head.

	(2001-01-16)

browser

	<hypertext> A program which allows a person to read
	{hypertext}.  The browser gives some means of viewing the
	contents of {nodes} (or "pages") and of {navigating} from one
	node to another.

	{Netscape Navigator}, {NCSA} {Mosaic}, {Lynx}, and {W3} are
	examples for browsers for the {World-Wide Web}.  They act as
	{clients} to remote {web servers}.

	(1996-05-31)

BRS

	{Big Red Switch}.  This abbreviation is fairly common on-line.

	[{Jargon File}]

BRUIN

	Brown University Interactive Language.

	A simple interactive language with {PL/I}-like {syntax}, for
	{IBM 360}.

	["Meeting the Computational Requirements of the University,
	Brown University Interactive Language", R.G. Munck, Proc 24th
	ACM Conf, 1969].

	(1995-02-14)

brute force

	<programming> A primitive programming style in which the
	programmer relies on the computer's processing power instead
	of using his own intelligence to simplify the problem, often
	ignoring problems of scale and applying naive methods suited
	to small problems directly to large ones.  The term can also
	be used in reference to programming style: brute-force
	programs are written in a heavy-handed, tedious way, full of
	repetition and devoid of any elegance or useful abstraction
	(see also {brute force and ignorance}).

	The {canonical} example of a brute-force algorithm is
	associated with the "{travelling salesman problem}" (TSP), a
	classical {NP-hard} problem:

	Suppose a person is in, say, Boston, and wishes to drive to N
	other cities.  In what order should the cities be visited in
	order to minimise the distance travelled?

	The brute-force method is to simply generate all possible
	routes and compare the distances; while guaranteed to work and
	simple to implement, this algorithm is clearly very stupid in
	that it considers even obviously absurd routes (like going
	from Boston to Houston via San Francisco and New York, in that
	order).  For very small N it works well, but it rapidly
	becomes absurdly inefficient when N increases (for N = 15,
	there are already 1,307,674,368,000 possible routes to
	consider, and for N = 1000 - well, see {bignum}).  Sometimes,
	unfortunately, there is no better general solution than brute
	force.  See also {NP-complete}.

	A more simple-minded example of brute-force programming is
	finding the smallest number in a large list by first using an
	existing program to sort the list in ascending order, and then
	picking the first number off the front.

	Whether brute-force programming should actually be considered
	stupid or not depends on the context; if the problem is not
	terribly big, the extra CPU time spent on a brute-force
	solution may cost less than the programmer time it would take
	to develop a more "intelligent" algorithm.  Additionally, a
	more intelligent algorithm may imply more long-term complexity
	cost and bug-chasing than are justified by the speed
	improvement.

	When applied to {cryptography}, it is usually known as {brute
	force attack}.

	{Ken Thompson}, co-inventor of {Unix}, is reported to have
	uttered the epigram "When in doubt, use brute force".  He
	probably intended this as a {ha ha only serious}, but the
	original {Unix} {kernel}'s preference for simple, robust and
	portable {algorithms} over {brittle} "smart" ones does seem to
	have been a significant factor in the success of that
	{operating system}.  Like so many other tradeoffs in software
	design, the choice between brute force and complex,
	finely-tuned cleverness is often a difficult one that requires
	both engineering savvy and delicate aesthetic judgment.

	[{Jargon File}]

	(1995-02-14)

brute force and ignorance

	<jargon> (BFI) A popular design technique at many software
	houses - {brute force} coding unrelieved by any knowledge of
	how problems have been previously solved in elegant ways.
	Dogmatic adherence to design methods tends to encourage this
	sort of thing.  Characteristic of early {larval stage}
	programming; unfortunately, many never outgrow it.

	Also encountered in the variants BFMI - brute force and
	massive ignorance, and BFBI - brute force and bloody
	ignorance.

	"Gak, they used a {bubble sort}!  That's strictly BFI."

	Compare {bogosity}.

	[{Jargon File}]

	(1996-06-12)

brute force attack

	<cryptography> A method of breaking a cipher (that is, to
	decrypt a specific encrypted text) by trying every possible
	{key}.  The quicker the brute force attack, the weaker the
	cipher.  Feasibility of brute force attack depends on the key
	length of the cipher, and on the amount of computational power
	available to the attacker.  Brute force attack is impossible
	against the ciphers with variable-size key, such as a
	{one-time pad} cipher.

	{Breaking ciphers with many workstations
	(http://distributed.net/projects.html.en)}.

	(2000-01-16)

BS

	{backspace}

bs

	<networking> The {country code} for the Bahamas.

	(1999-01-27)

BS2000

	<operating system> An {operating system} from {SNI} for
	{mainframes}.

	{(http://mch.sni.de.public/bs2000/server.htm)}.

	(1997-06-13)

BSA

	1. {Business Software Alliance}.

	2. {Bidouilleurs Sans Argent}.

BSD

	{Berkeley Software Distribution}

BSD386

	{386BSD}

BSDI

	{Berkeley Software Design, Inc.}

BSD/OS

	<operating system> {BSDI}'s commercial version of {Berkeley
	Standard Distribution} {Unix}.  BSD/OS is a
	{POSIX}-compatible, {Unix}-like system for the {80386}, {486},
	and {Pentium}.  It is based on the {BSD} software from {UCB},
	a number of other sources, and components engineered by BSDI.
	The initial production release of BSD/OS shipped in March,
	1993.

	(1996-01-13)

BSD Unix

	{Berkeley Software Distribution}

BSI

	{British Standards Institute}

BSL

	<language> A variant of {IBM}'s {PL/S} systems language.
	Versions: BSL1, BSL2.

	(1998-06-15)

BSOD

	{Blue Screen of Death}

BSOL

	{Blue Screen of Life}

BSOM

	{Beats the shit outa me}

BSP method

	<programming> A {CASE} method from {IBM}.

	(1998-02-24)

BSRAM

	{Burst Static Random Access Memory}

BSS

	1. <programming> {Block Started by Symbol}.

	2. <networking> {Basic Service Set}

BSS segment

	{Block Started by Symbol}

BST

	<convention> British Summer Time.  The name for
	daylight-saving time in the UK {GMT} time zone.

	(2000-03-28)

bt

	<networking> The {country code} for Bhutan.

	(1999-01-27)

BTB

	{Branch Target Buffer}

btoa

	<tool, messaging, algorithm, file format> /B too A/ A {binary}
	to {ASCII} conversion utility.

	btoa is a {uuencode} or {base 64} equivalent which addresses
	some of the problems with the uuencode standard but not as
	many as the base 64 standard.  It avoids problems that some
	{hosts} have with spaces (e.g. conversion of groups of spaces
	to tabs) by not including them in its character set, but may
	still have problems on non-ASCII systems (e.g. {EBCDIC}).

	btoa is primarily used to transfer {binary files} between
	systems across connections which are not {eight-bit clean},
	e.g. {electronic mail}.

	btoa takes adjacent sets of four binary {octets} and encodes
	them as five ASCII {octets} using ASCII characters '!' through
	to 'u'.  Special characters are also used: 'x' marks the
	beginning or end of the archive; 'z' marks four consecutive
	zeros and 'y' (version 5.2) four consecutive spaces.

	Each group of four octets is processed as a 32-bit integer.
	Call this 'I'.  Let 'D' = 85^4.  Divide I by D.  Call this
	result 'R'.  Make I = I - (R * D) to avoid {overflow} on the
	next step.  Repeat, for values of D = 85^3, 85^2, 85 and 1.
	At each step, to convert R to the output character add decimal
	33 (output octet = R + ASCII value for '!').  Five output
	octets are produced.

	btoa provides some {integrity checking} in the form of a line
	{checksum}, and facilities for patching corrupted downloads.

	The {algorithm} used by btoa is more efficient than uuencode
	or base 64.  ASCII files are encoded to about 120% the size of
	their binary sources.  This compares with 135% for uuencode or
	base 64.

	{C source (ftp://hpux.csc.liv.ac.uk/hpux/Misc/btoa-5.2/)}.
	(version 5.2 - ~1994).

	Pre-compiled {MS-DOS} versions are also available.

	(1997-08-08)

B-Toolkit

	<tool, programming, product> A set of software tools designed
	to support a rigorous or formal development of software
	systems using the {B-Method}.

	The Toolkit also provides a development environment automating
	the management of all associated files, ensuring that the
	entire development, including code and documentation, is
	always in a consistent state.

	The Toolkit includes: a specification, design and code
	configuration management system, including integrity and
	dependency management and source file editing facilities; a
	set of software specification and design analysis tools, which
	includes {syntax} checkers, type checkers and a specification
	animator; a set of verification tools, which includes a
	proof-obligation generator and automatic and interactive
	provers; a set of coding tools, which includes a translator,
	linker, rapid prototyping facilities and a reusable
	specification/code module library; a documentation tool for
	automatically producing fully cross-referenced and indexed
	type-set documents from source files; a re-making tool for
	automatically re-checking and re-generating specifications,
	designs, code and documentation after modifications to source
	files.

	A normal licence costs 25,000 pounds, academic 6,250 pounds.

	(1995-03-13)

BTOS

	{Convergent Technologies Operating System}

B-tree

	<algorithm> A multi-way {balanced tree}.

	The "B" in B-tree has never been officially defined.  It could
	stand for "balanced" or "Bayer", after one of the original
	designers of the algorithms and structure.  A B-tree is _not_
	(necessarily?) a "{binary tree}".

	A B+-tree (as used by {IBM}'s {VSAM}) is a B-tree where the
	leaves are also linked sequentially, thus allowing both fast
	{random access} and sequential access to data.

	[Knuth's Art of Computer Programming].

	[Example algorithm?]

	(2000-01-10)

BTRIEVE

	1. <company> {BTRIEVE Technologies, Inc.}.

	2. <tool> A trademark of {BTRIEVE Technologies, Inc.} for
	their {ISAM} {index file} manager for {IBM PCs}.

	(1995-03-28)

BTRIEVE Technologies, Inc.

	<company, database> /bee-treev/ (BTI) A provider of
	{client-server} {database engines}.  BTI was founded by former
	{Novell, Inc.} employees, including the original developers of
	the Btrieve database engine.  BTI acquired the database
	product line from Novell in April, 1994.

	{(http://btrieve.com/)}.

	Address: Austin, Texas, USA.

	(1995-12-14)

BTRL

	<company> {British Telecom Research Laboratories}.

BTS

	{Bug Tracking System}

BTW

	<chat> By the way.

	(2002-06-12)

BUAF

	[alt.fan.warlord] Big Ugly ASCII Font.  A special form of
	{ASCII art}.  Various programs exist for rendering text
	strings into block, {bloob}, and pseudo-script fonts in cells
	between four and six character cells on a side; this is
	smaller than the letters generated by older {banner} programs.
	These are sometimes used to render one's name in a {sig
	block}, and are critically referred to as "BUAF"s.  See
	{warlording}.

	[{Jargon File}]

BUAG

	[alt.fan.warlord] Big Ugly ASCII Graphic.  Pejorative term for
	ugly {ASCII ART}, especially as found in {sig blocks}.  For
	some reason, mutations of the head of Bart Simpson are
	particularly common in the least imaginative {sig blocks}.

	See {warlording}.

bubble memory

	A storage device built using materials such as gadolinium
	gallium garnet which are can be magnetised easily in only one
	direction.  A film of these materials can be created so that
	it is magnetisable in an up-down direction.  The magnetic
	fields tend to join together, some with the north pole facing
	up, some with the south.

	When a veritcal magnetic field is imposed on this, the areas
	in opposite alignment to the field shrink to circles, or
	'bubbles'.  A bubble can be formed by reversing the field in a
	small spot, and can be destroyed by increasing the field.

	Bubble memory is a kind of {non-volatile storage} but
	{EEPROM}, {Flash Erasable Programmable Read-Only Memory} and
	ferroelectric technologies, which are also non-volatile, are
	faster.

	["Great Microprocessors of the Past and Present", V 4.0.0,
	John Bayko <bayko@hercules.cs.uregina.ca>, Appendix C]

	(1995-02-03)

bubble sort

	A sorting technique in which pairs of adjacent values in the
	list to be sorted are compared and interchanged if they are
	out of order; thus, list entries "bubble upward" in the list
	until they bump into one with a lower sort value.  Because it
	is not very good relative to other methods and is the one
	typically stumbled on by {naive} and untutored programmers,
	hackers consider it the {canonical} example of a naive
	algorithm.  The canonical example of a really *bad* algorithm
	is {bogo-sort}.  A bubble sort might be used out of ignorance,
	but any use of bogo-sort could issue only from brain damage or
	willful perversity.

	[{Jargon File}]

bucky bits

	/buh'kee bits/ 1. Obsolete.  The bits produced by the CONTROL
	and META shift keys on a SAIL keyboard ({octal} 200 and 400
	respectively), resulting in a 9-bit keyboard character set.
	The MIT AI TV (Knight) keyboards extended this with TOP and
	separate left and right CONTROL and META keys, resulting in a
	12-bit character set; later, LISP Machines added such keys as
	SUPER, HYPER, and GREEK (see {space-cadet keyboard}).

	2. By extension, bits associated with "extra" shift keys on
	any keyboard, e.g.  the ALT on an IBM PC or command and option
	keys on a Macintosh.

	It has long been rumored that "bucky bits" were named after
	Buckminster Fuller during a period when he was consulting at
	Stanford.  Actually, bucky bits were invented by Niklaus Wirth
	when *he* was at Stanford in 1964--65; he first suggested the
	idea of an EDIT key to set the 8th bit of an otherwise 7 bit
	ASCII character.  It seems that, unknown to Wirth, certain
	Stanford hackers had privately nicknamed him "Bucky" after a
	prominent portion of his dental anatomy, and this nickname
	transferred to the bit.  Bucky-bit commands were used in a
	number of editors written at Stanford, including most notably
	TV-EDIT and NLS.

	The term spread to MIT and CMU early and is now in general
	use.  Ironically, Wirth himself remained unaware of its
	derivation for nearly 30 years, until {GLS} dug up this
	history in early 1993!  See {double bucky}, {quadruple bucky}.

	(2001-06-22)

buffer

	1. An area of memory used for storing messages.  Typically, a
	buffer will have other attributes such as an input pointer
	(where new data will be written into the buffer), and output
	pointer (where the next item will be read from) and/or a count
	of the space used or free.  Buffers are used to decouple
	processes so that the reader and writer may operate at
	different speeds or on different sized blocks of data.

	There are many different algorithms for using buffers, e.g.
	first-in first-out (FIFO or shelf), last-in first-out (LIFO or
	stack), double buffering (allowing one buffer to be read while
	the other is being written), cyclic buffer (reading or writing
	past the end wraps around to the beginning).

	2. An electronic device to provide compatibility between two
	signals, e.g. changing voltage levels or current capability.

buffered write-through

	<memory management> A variation of {write-through} where the
	{cache} uses a "write buffer" to hold data being written back
	to {main memory}.  This frees the cache to service read
	requests while the write is taking place.  There is usually
	only one stage of buffering so subsequent writes must wait
	until the first is complete.  Most accesses are reads so
	buffered write-through is only useful for very slow main
	memory.

	(1998-04-24)

buffer overflow

	<programming> What happens when you try to store more data in
	a {buffer} than it can handle.  This may be due to a mismatch
	in the processing rates of the producing and consuming
	processes (see {overrun} and {firehose syndrome}), or because
	the buffer is simply too small to hold all the data that must
	accumulate before a piece of it can be processed.  For
	example, in a text-processing tool that {crunch}es a line at a
	time, a short line buffer can result in {lossage} as input
	from a long line overflows the buffer and overwrites data
	beyond it.  Good defensive programming would check for
	overflow on each character and stop accepting data when the
	buffer is full.

	See also {spam}, {overrun screw}.

	[{Jargon File}]

	(1996-05-13)

buffer overrun

	{buffer overflow}

bug

	<programming> An unwanted and unintended property of a
	{program} or piece of {hardware}, especially one that causes
	it to malfunction.  Antonym of {feature}.  E.g. "There's a bug
	in the editor: it writes things out backward."  The
	identification and removal of bugs in a program is called
	"{debugging}".

	Admiral {Grace Hopper} (an early computing pioneer better
	known for inventing {COBOL}) liked to tell a story in which a
	technician solved a {glitch} in the {Harvard Mark II machine}
	by pulling an actual insect out from between the contacts of
	one of its relays, and she subsequently promulgated {bug} in
	its hackish sense as a joke about the incident (though, as she
	was careful to admit, she was not there when it happened).
	For many years the logbook associated with the incident and
	the actual bug in question (a moth) sat in a display case at
	the Naval Surface Warfare Center (NSWC).  The entire story,
	with a picture of the logbook and the moth taped into it, is
	recorded in the "Annals of the History of Computing", Vol. 3,
	No. 3 (July 1981), pp. 285--286.

	The text of the log entry (from September 9, 1947), reads
	"1545 Relay #70 Panel F (moth) in relay.  First actual case of
	bug being found".  This wording establishes that the term was
	already in use at the time in its current specific sense - and
	Hopper herself reports that the term "bug" was regularly
	applied to problems in radar electronics during WWII.

	Indeed, the use of "bug" to mean an industrial defect was
	already established in Thomas Edison's time, and a more
	specific and rather modern use can be found in an electrical
	handbook from 1896 ("Hawkin's New Catechism of Electricity",
	Theo. Audel & Co.)  which says: "The term "bug" is used to a
	limited extent to designate any fault or trouble in the
	connections or working of electric apparatus."  It further
	notes that the term is "said to have originated in
	{quadruplex} telegraphy and have been transferred to all
	electric apparatus."

	The latter observation may explain a common folk etymology of
	the term; that it came from telephone company usage, in which
	"bugs in a telephone cable" were blamed for noisy lines.
	Though this derivation seems to be mistaken, it may well be a
	distorted memory of a joke first current among *telegraph*
	operators more than a century ago!

	Actually, use of "bug" in the general sense of a disruptive
	event goes back to Shakespeare!  In the first edition of
	Samuel Johnson's dictionary one meaning of "bug" is "A
	frightful object; a walking spectre"; this is traced to
	"bugbear", a Welsh term for a variety of mythological monster
	which (to complete the circle) has recently been reintroduced
	into the popular lexicon through fantasy {role-playing games}.

	In any case, in jargon the word almost never refers to
	insects.  Here is a plausible conversation that never actually
	happened:

	"There is a bug in this ant farm!"

	"What do you mean?  I don't see any ants in it."

	"That's the bug."

	[There has been a widespread myth that the original bug was
	moved to the Smithsonian, and an earlier version of this entry
	so asserted.  A correspondent who thought to check discovered
	that the bug was not there.  While investigating this in late
	1990, your editor discovered that the NSWC still had the bug,
	but had unsuccessfully tried to get the Smithsonian to accept
	it - and that the present curator of their History of
	American Technology Museum didn't know this and agreed that it
	would make a worthwhile exhibit.  It was moved to the
	Smithsonian in mid-1991, but due to space and money
	constraints has not yet been exhibited.  Thus, the process of
	investigating the original-computer-bug bug fixed it in an
	entirely unexpected way, by making the myth true!  - ESR]

	[{Jargon File}]

	(1999-06-29)

bug-compatible

	Said of a design or revision that has been badly compromised
	by a requirement to be compatible with {fossils} or
	{misfeatures} in other programs or (especially) previous
	releases of itself. "{MS-DOS} 2.0 used \ as a path separator
	to be bug-compatible with some cretin's choice of / as an
	option character in 1.0."

	[{Jargon File}]

bug fix

	<programming> A change to a program or system intended to
	permanently cure a {bug}.  Often a fix for one bug
	inadvertantly introduces new bugs, hence the need for careful
	forethought and testing.

	Compare: {workaround}.

	(1998-06-25)

bug fix release

	<programming> A {release} which introduces no new {features},
	but which merely aims to fix bugs in previous releases.  All
	too commonly new bugs are introduced at the same time.

	(1996-08-04)

Bugfoot

	{Loch Ness Monster Bug}

bug-for-bug compatible

	Same as {bug-compatible}, with the additional implication that
	much tedious effort went into ensuring that each (known) bug
	was replicated.

	[{Jargon File}]

buglix

	/buhg'liks/ Pejorative term referring to {DEC}'s {ULTRIX}
	{operating system} in its earlier *severely* buggy versions.
	Still used to describe ULTRIX, but without nearly so much
	venom.  Compare {AIDX}, {HP-SUX}, {Nominal Semidestructor},
	{Telerat}, {sun-stools}.

bugs

	{bug}

BUGSYS

	<programming> A programming system for {pattern recognition}
	and preparing animated films, for {IBM 7094} and {IBM 360}.

	["BUGSYS: A Programming System for Picture Processing - Not
	for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966)].

	(1995-02-14)

bug tracking system

	<programming> (BTS) A system for receiving and filing {bugs}
	reported against a {software} project, and tracking those bugs
	until they are fixed.  Most major software projects have their
	own BTS, the {source code} of which is often available for use
	by other projects.

	Well known BTSs include {GNATS}, {Bugzilla}, and {Debbugs}.

	(2002-06-12)

Bugzilla

	<programming> The web-based {bug tracking system} used by the
	{Mozilla} project.

	{Bugzilla home (http://bugzilla.mozilla.org/)}.

	(2002-06-12)

build

	<programming, systems> To process all of a project's {source
	code} and other digital assets or resources in order to
	produce a deployable product.  In the simplest case this might
	mean compiling one file of {C} source to produce an
	{executable} file.  More complex builds would typically
	involve compiling multiple source files, building library
	modules, packaging intermediate build products (e.g. {Java}
	{class files} in a {jar file}), adding or updating version
	information and other data about the product (e.g. intended
	deployment {platform}), running tests and interacting with a
	{source code control} system.

	The build process is normally automated using tools such as
	{Unix} {make}, {Apache} {ant} or as part of an {integrated
	development environment}.  This is taken one step further by
	{continuous integration} set-ups which periodically build the
	system while you are working on it.

	(2011-12-16)

built-in

	(Or "primitive") A built-in function or operator is one
	provided by the lowest level of a language implementation.
	This usually means it is not possible (or efficient) to
	express it in the language itself.  Typical examples are the
	basic arithmetic and {Boolean} operators (in {C} syntax: +, -,
	*, /, %, !, &&, ||), bit manipulation operators (~, &, |, ^)
	and I/O primitives.  Other common functions may be provided in
	libraries but are not built-in if they are written in the
	language being implemented.

	(1995-02-14)

Built-in Self Test

	(BIST) The technique of designing circuits with additional
	logic which can be used to test proper operation of the
	primary (functional) logic.

	(1995-02-14)

Bull

	{Bull Information Systems}

bulletin board

	{bulletin board system}

bulletin board system

	<communications, application> (BBS, bboard /bee'bord/, message
	board, forum; plural: BBSes) A computer and associated
	software which typically provides an electronic message
	database where people can log in and leave messages.  Messages
	are typically split into {topic groups} similar to the
	{newsgroups} on {Usenet} (which is like a distributed BBS).
	Any user may submit or read any message in these public areas.

	The term comes from physical pieces of board on which people
	can pin messages written on paper for general consumption - a
	"physical bulletin board".  {Ward Christensen}, the programmer
	and operator of the first BBS (on-line 1978-02-16) called it a
	CBBS for "computer bulletin board system".  Since the rise of
	the {World-Wide Web}, the term has become antiquated, though
	the concept is more popular than ever, with many {web sites}
	featuring discussion areas where users can post messages for
	public consumption.

	Apart from public message areas, some BBSes provided archives
	of files, personal {electronic mail} and other services of
	interest to the system operator ({sysop}).

	Thousands of BBSes around the world were run from amateurs'
	homes on {MS-DOS} boxes with a single {modem} line each.
	Although BBSes were traditionally the domain of hobbyists,
	many connected directly to the {Internet} (accessed via
	{telnet}), others were operated by government, educational,
	and research institutions.

	Fans of {Usenet} or the big commercial {time-sharing} bboards
	such as {CompuServe}, {CIX} and {GEnie} tended to consider
	local BBSes the low-rent district of the hacker culture, but
	they helped connect hackers and users in the personal-{micro}
	and let them exchange code.

	Use of this term for a {Usenet} newsgroup generally marks one
	either as a {newbie} fresh in from the BBS world or as a real
	old-timer predating {Usenet}.

	(2005-09-20)

bulletproof

	Used of an algorithm or implementation considered extremely
	{robust}; lossage-resistant; capable of correctly recovering
	from any imaginable exception condition - a rare and valued
	quality.  Synonym {armor-plated}.

	[{Jargon File}]

Bull Information Systems

	<company> A multinational I.T. group based in Europe with
	21,000 people and operations in more than 85 countries.  In
	1997, Bull earned revenues of over $4 billion, including over
	65% outside of France, its country of origin.  The company is
	ranked as the third largest {systems integrator} in Europe.

	{(http://bull.com/)}.

	(1998-07-02)

bum

	1. To make highly efficient, either in time or space, often at
	the expense of clarity.  "I managed to bum three more
	instructions out of that code."  "I spent half the night
	bumming the interrupt code."  In {elder days}, {John McCarthy}
	(inventor of {Lisp}) used to compare some efficiency-obsessed
	hackers among his students to "ski bums"; thus, optimisation
	became "program bumming", and eventually just "bumming".

	2. To squeeze out excess; to remove something in order to
	improve whatever it was removed from (without changing
	function; this distinguishes the process from a
	{featurectomy}).

	3.  A small change to an algorithm, program, or hardware
	device to make it more efficient.  "This hardware bum makes
	the jump instruction faster."

	Usage: now uncommon, largely superseded by v. {tune} (and
	{tweak}, {hack}), though none of these exactly capture sense
	2.  All these uses are rare in Commonwealth hackish, because
	in the parent dialects of English "bum" is a rude synonym for
	"buttocks".

	[{Jargon File}]

bump

	Increment.  E.g. {C}'s {++} operator.  It is used especially of
	counter variables, pointers and index dummies in "for",
	"while", and "do-while" loops.

	(1994-11-29)

burble

	[Lewis Carroll's "Jabberwocky"] Like {flame}, but connotes
	that the source is truly clueless and ineffectual (mere
	flamers can be competent).  A term of deep contempt.  "There's
	some guy on the phone burbling about how he got a DISK FULL
	error and it's all our comm software's fault."  This is
	mainstream slang in some parts of England.

	[{Jargon File}]

Bureau International des Poids et Mesures

	<body, standard> (BIPM) The standards body that ensures
	world-wide uniformity of measurements and their traceability
	to the {International System of Units} (SI).  The BIPM is
	based in France and operates with the authority of the
	Convention of the Metre, a diplomatic treaty between fifty-one
	nations.  It operates through a series of committees, whose
	members are the national metrology laboratories of the member
	states of the convention, and through its own laboratory work.

	The BIPM carries out measurement-related research.  It takes
	part in, and organises, international comparisons of national
	measurement standards, and it carries out calibrations for
	member states.

	{BIPM Home (http://www.bipm.org/)}.

	(2014-07-08)

Burge's Language

	Unnamed functional language based on lambda-calculus.
	Recursive Programming techniques", W.H. Burge, A-W 1975.

buried treasure

	A surprising piece of code found in some program.  While
	usually not wrong, it tends to vary from {crufty} to
	bletcherous, and has lain undiscovered only because it was
	functionally correct, however horrible it is.  Used
	sarcastically, because what is found is anything *but*
	treasure.  Buried treasure almost always needs to be dug up
	and removed.  "I just found that the scheduler sorts its queue
	using {bubble sort}!  Buried treasure!"

	[{Jargon File}]

burn-in

	1. <hardware> {screen saver}.

	2. <hardware, testing> {burn-in period}.

burn-in period

	1. <testing> A factory {soak test} intended to increase the
	chance that components that fail early due to {infant
	mortality} will fail before the system leaves the factory.

	2. <jargon> When one is so intensely involved in a new project
	that one forgets basic needs such as food, drink and sleep.
	Excessive burn-in can lead to burn-out.  See {hack mode},
	{larval stage}.

	[{Jargon File}]

	(2007-01-17)

Burroughs Corporation

	<company> A company which merged with {Sperry Univac} to form
	{Unisys Corporation}.  They produced the {Datatron 200 series}
	among other computers.

	(2007-01-16)

Burst EDO

	{Burst Extended Data Out DRAM}

Burst Extended Data Out DRAM

	<storage> (Burst EDO, BEDO) A variant on {EDO DRAM} in which
	read or write cycles are batched in bursts of four.  The
	bursts wrap around on a four byte boundary which means that
	only the two least significant bits of the {CAS} address are
	modified internally to produce each address of the burst
	sequence.  Consequently, burst EDO bus speeds will range from
	40MHz to 66MHz, well above the 33MHz bus speeds that can be
	accomplished using {Fast Page Mode} or EDO DRAM.

	Burst EDO was introduced sometime before May 1995.

	(1996-06-25)

burst page

	{banner}

Burst Static Random Access Memory

	<storage> (BSRAM) A kind of {SRAM} used primarily for external
	{Level 2 cache} memory.

	[How does it work?]

	(1998-02-24)

bus

	<architecture, networking> A set of electrical conductors
	(wires, PCB tracks or connections in an {integrated circuit})
	connecting various "stations", which can be {functional units}
	in a computer or {nodes} in a {network}.  A bus is a
	{broadcast} channel, meaning that each station receives every
	other station's transmissions and all stations have equal
	access to the bus.

	Various schemes have been invented to solve the problem of
	collisions: multiple stations trying to transmit
	at once, e.g. {CSMA/CD}, {bus master}.

	The term is almost certainly derived from the electrical
	engineering term "bus bar" - a substantial, rigid power supply
	conductor to which several connections are made.  This was
	once written "'bus bar" as it was a contraction of "omnibus
	bar" - a connection bar "for all", by analogy with the
	passenger omnibus - a conveyance "for all".

	{More on derivation (http://foldoc.org/pub/misc/omnibus.html)}.

	There are busses both within the {CPU} and connecting it to
	external {memory} and {peripheral} devices.  The data bus,
	address bus and control signals, despite their names, really
	constitute a single bus since each is useless without the
	others.

	The width of the data bus is usually specified in {bits} and
	is the number of parallel connectors.  This and the {clock
	rate} determine the bus's data rate (the number of {bytes} per
	second which it can carry).  This is one of the factors
	limiting a computer's performance.  Most current
	{microprocessors} have 32-bit busses both internally and
	externally.  100 or 133 {megahertz} bus clock rates are
	common.  The bus clock is typically slower than the processor
	clock.

	Some processors have internal busses which are wider than
	their external busses (usually twice the width) since the
	width of the internal bus affects the speed of all operations
	and has less effect on the overall system cost than the width
	of the external bus.

	Various bus designs have been used in the {PC}, including
	{ISA}, {EISA}, {Micro Channel}, {VL-bus} and {PCI}.  Other
	peripheral busses are NuBus, TURBOchannel, VMEbus, MULTIBUS and
	STD bus.

	See also {bus network}.

	{Ukranian (http://open-taxi.com/mynews/~adrian/10)}.

	(2010-07-10)

bus error

	<processor> A fatal failure in the execution of a {machine
	language} instruction resulting from the {processor} detecting
	an anomalous condition on its {bus}.  Such conditions include
	invalid address alignment (accessing a multi-byte number at an
	odd address), accessing a {physical address} that does not
	correspond to any device, or some other device-specific
	hardware error.  A bus error triggers a processor-level
	{exception} which {Unix} translates into a "SIGBUS" {signal}
	which, if not caught, will terminate the current process.

	(2000-04-04)

Bush, Vannevar

	{Vannevar Bush}

Business Analyst

	<job> A person who analyses the operations of a department or
	functional unit to develop a general systems solution to the
	problem.  The solution will typically involve a combination of
	manual and automated processes.  The business analyst can
	provide insights into an operation for an {information systems
	analyst}.

	(2004-03-09)

Business Application Programming Interface

	<business, application, programming> (BAPI) /bap'ee/ A set of
	{methods} provided by an {SAP} business {object}.

	Release 4.0 of {SAP AG}'s {R/3} system supports
	{object-oriented programming} via an interface defined in
	terms of {objects} and {methods} called BAPIs.  For example if
	a material object provides a function to check availability,
	the corresponding SAP business object type "Material" might
	provide a BAPI called "Material.CheckAvailability".

	The definitions of SAP business objects and their BAPIs are
	kept in an SAP business object repository.  SAP provide
	{classes} and {libraries} to enable a programming team to
	build SAP applications that use business objects and BAPIs.
	Supported environments include {COM} and {Java}.

	The {Open BAPI Network
	(http://sap.com/solutions/technology/bapis/index.htm)}.
	gives background information and lists objects and BAPIs.

	(2002-08-30)

Business Process Re-engineering

	<business> (BPR) Any radical change in the way in which an
	organisation performs its business activities.  BPR involves a
	fundamental re-think of the business processes followed by a
	redesign of business activities to enhance all or most of its
	critical measures - costs, quality of service, staff dynamics,
	etc.

	(1999-09-27)

Business Software Alliance

	<company> The BSA was created by {Microsoft} in 1988 in an
	attempt to combat {software theft}.  The alliance includes the
	majority of leading software publishers including {Novell},
	{Symantec}, and {Autodesk} and is actively campaigning in over
	65 countries.

	The BSA operates a three-pronged approach: 1. Lobbying to
	strengthen copyright laws and co-operation with law
	enforcement agencies.  2. Educating the public through
	marketing, roadshows, etc.  3. Bringing legal actions against
	counterfeiters.  BSA's aims are the same as the {Federation
	Against Software Theft} but it is not limited to the UK.

	In December 1990 the BSA obtained the first legal order in the
	UK which allowed a surprise search on a company's offices for
	suspected copyright infringement.

	{(http://bsa.org/bsa)}.

	UK Office: Business Software Alliance, 1st Floor, Leaconfield
	House, Curzon Street, London W1Y 8AS, United Kingdom.

	See also {software audit}.

	(1996-05-19)

Business Systems Analyst

	<job> A person who works directly with management and users to
	analyse, specify, and design {business applications}.  The
	Business Systems Analyst develops detailed functional, system,
	and program specifications using {structured design
	methodologies} and {CASE} tools.  He must have strong business
	sense and communications skills.  He works with both the
	{information systems} team and the strategic planning business
	group.

	(2004-03-09)

business to business

	<business> (B2B) {Electronic commerce} between businesses, as
	opposed to between a consumer and a business (B2C).

	While derived from "business to business", "B2B" is narrower
	in meaning.

	(2001-03-26)

bus master

	<architecture> The device in a computer which is driving the
	{address bus} and bus control signals at some point in time.
	In a simple architecture only the (single) {CPU} can be bus
	master but this means that all communications between
	("slave") I/O devices must involve the CPU.  More
	sophisticated architectures allow other capable devices (or
	multiple CPUs) to take turns at controling the bus.  This
	allows, for example, a {network controller} card to access a
	{disk controller} directly while the CPU performs other tasks
	which do not require the bus, e.g. fetching code from its
	{cache}.

	Note that any device can drive data onto the {data bus} when
	the CPU reads from that device, but only the bus master drives
	the {address bus} and control signals.

	{Direct Memory Access} is a simple form of bus mastering where
	the I/O device is set up by the CPU to read from or write to
	one or more contiguous blocks of memory and then signal to the
	CPU when it has done so.  Full bus mastering (or "First Party
	DMA", "bus mastering DMA") implies that the I/O device is
	capable of performing more complex sequences of operations
	without CPU intervention (e.g. servicing a complete {NFS}
	request).  This will normally mean that the I/O device
	contains its own processor or {microcontroller}.

	See also {distributed kernel}.

	(1996-08-26)

bus mastering

	{bus master}

bus network

	<networking> A {network topology} in which all {nodes} are
	connected to a single wire or set of wires (the bus).  Bus
	networks typically use {CSMA/CD} techniques to determine which
	node should transmit data at any given time.

	Some {networks} are implemented as a {bus}, e.g. {Ethernet} -
	a one-bit bus operating at 10, 100, 1000 or 10,000 {megabits
	per second}.  Originally Ethernet was a {physical layer} bus
	consisting of a wire (with {terminators} at each end) to which
	each node was attached.  {Switched Ethernet}, while no longer
	physically a bus still acts as one at the logical layers.

bus topology

	{bus}

Busy Beaver

	<theory> (BB) One of a series of sets of {Turing Machine}
	programs.  The BBs in the Nth set are programs of N states
	that produce a larger finite number of ones on an initially
	blank tape than any other program of N states.  There is no
	program that, given input N, can deduce the productivity
	(number of ones output) of the BB of size N.

	The productivity of the BB of size 1 is 1.  Some work has been
	done to figure out productivities of bigger Busy Beavers - the
	7th is in the thousands.

	(1994-10-24)

busy-loop

	{tight loop}

busy-wait

	<programming> To wait for an {event} by {spinning} through a
	{tight loop} or timed-delay loop that {polls} for the event on
	each pass, as opposed to setting up an {interrupt handler} and
	continuing execution on another part of the task.  This is a
	wasteful technique, best avoided on {time-sharing} systems
	where a busy-waiting program may {hog} the processor.

	[{Jargon File}]

	(1999-06-10)

Butterfly Common LISP

	A parallel version of {Common LISP} for the {BBN Butterfly}
	computer.

Butterfly Scheme

	A parallel version of {Scheme} for the {BBN Butterfly}
	computer.

button

	1. <electronics> {push-button}.

	2. <operating system> A graphical representation of an
	electrical {push-button} appearing as part of a {graphical
	user interface}.  Moving the {mouse pointer} over the
	graphical button and pressing one of the physical mouse
	buttons starts some software action such as closing a window
	or deleting a file.

	See also {radio button}.

	(1997-07-07)

buzz

	1. Of a program, to run with no indication of progress and
	perhaps without guarantee of ever finishing; especially said
	of programs thought to be executing a {tight loop} of code.  A
	program that is buzzing appears to be {catatonic}, but never
	gets out of catatonia, while a buzzing loop may eventually end
	of its own accord.  "The program buzzes for about 10 seconds
	trying to sort all the names into order."  See {spin}; see
	also {grovel}.

	2. [ETA Systems] To test a wire or printed circuit trace for
	continuity by applying an AC rather than DC signal.  Some wire
	faults will pass DC tests but fail a buzz test.

	3. To process an {array} or list in sequence, doing the same
	thing to each element.  "This loop buzzes through the tz array
	looking for a terminator type."

	[{Jargon File}]

bv

	<networking> The {country code} for Bouvet Island.

	(1999-01-27)

bw

	<networking> The {country code} for Botswana.

	(1999-01-27)

bwBASIC

	Bywater BASIC interpreter.

	A {BASIC} {interpreter} by Ted A. Campbell <tcamp@delphi.com>
	which implements a large superset of the {ANSI Standard for
	Minimal BASIC} (X3.60-1978) in {ANSI C}, and offers a simple
	interactive environment including some {shell} program
	facilities as an extension of BASIC.  The interpreter source
	has been compiled successfully on a range of {ANSI C}
	{compilers} on varying {platforms} including {MS-DOS}, {Unix},
	and {Acorn} {RISC OS}.

	Version 2.10 was posted to {news:comp.sources.misc}, volume
	40.

	(1993-10-29)

BWQ

	[IBM] Buzz Word Quotient.  The percentage of buzzwords in a
	speech or documents.  Usually roughly proportional to
	{bogosity}.  See {TLA}.

	[{Jargon File}]

by

	<networking> The {country code} for Belarus.

	(1999-01-27)

byacc

	{Berkeley Yacc}

by hand

	1. Said of an operation (especially a repetitive, trivial,
	and/or tedious one) that ought to be performed automatically
	by the computer, but which a hacker instead has to step
	tediously through.  "My mailer doesn't have a command to
	include the text of the message I'm replying to, so I have to
	do it by hand."  This does not necessarily mean the speaker
	has to retype a copy of the message; it might refer to, say,
	dropping into a subshell from the mailer, making a copy of
	one's mailbox file, reading that into an editor, locating the
	top and bottom of the message in question, deleting the rest
	of the file, inserting ">" characters on each line, writing
	the file, leaving the editor, returning to the mailer, reading
	the file in, and later remembering to delete the file.
	Compare {eyeball search}.

	2. By extension, writing code which does something in an
	explicit or low-level way for which a presupplied library
	routine ought to have been available.  "This cretinous
	{B-tree} library doesn't supply a decent iterator, so I'm
	having to walk the trees by hand."

	[{Jargon File}]

Byte

	<publication> A popular computing magazine.

	{(http://byte.com)}.

	(1997-03-27)

byte

	<unit> /bi:t/ (B) A component in the machine {data hierarchy}
	larger than a {bit} and usually smaller than a {word}; now
	nearly always eight bits and the smallest addressable unit of
	storage.  A byte typically holds one {character}.

	A byte may be 9 bits on 36-bit computers.  Some older
	architectures used "byte" for quantities of 6 or 7 bits, and
	the PDP-10 and IBM 7030 supported "bytes" that were actually
	{bit-fields} of 1 to 36 (or 64) bits!  These usages are now
	obsolete, and even 9-bit bytes have become rare in the general
	trend toward power-of-2 word sizes.

	The term was coined by Werner Buchholz in 1956 during the
	early design phase for the {IBM} {Stretch} computer.  It was a
	mutation of the word "bite" intended to avoid confusion with
	"bit".  In 1962 he described it as "a group of bits used to
	encode a character, or the number of bits transmitted in
	parallel to and from input-output units".  The move to an
	8-bit byte happened in late 1956, and this size was later
	adopted and promulgated as a standard by the {System/360}
	{operating system} (announced April 1964).

	James S. Jones <jsjones@graceland.edu> adds:

	I am sure I read in a mid-1970's brochure by IBM that outlined
	the history of computers that BYTE was an acronym that stood
	for "Bit asYnchronous Transmission E..?" which related to
	width of the bus between the Stretch CPU and its CRT-memory
	(prior to Core).

	Terry Carr <bear@mich.com> says:

	In the early days IBM taught that a series of bits transferred
	together (like so many yoked oxen) formed a Binary Yoked
	Transfer Element (BYTE).

	[True origin?  First 8-bit byte architecture?]

	See also {nibble}, {octet}.

	[{Jargon File}]

	(2003-09-21)

byte-code

	<file format, software> A {binary} file containing an
	{executable} program, consisting of a sequence of ({op code},
	data) pairs.

	Byte-code op codes are most often fixed size binary patterns,
	but can be variable size.  The data portion consists of zero
	or more {bits} whose format typically depends on the op code.

	A byte-code program is interpreted by a {byte-code
	interpreter}.  The advantage of this technique compared with
	outputing {machine code} for some particular processor is that
	the same byte-code can be executed on any processor on which
	the byte-code interpreter runs.  The byte-code may be compiled
	to machine code ("native code") for speed of execution but
	this usually requires significantly greater effort for each
	new taraget architecture than simply porting the interpreter.

	For example, {Java} is compiled to byte-code which runs on the
	{Java Virtual Machine}.

	(2006-05-29)

byte-code compiler

	<programming, tool> A {compiler} which outputs a program in
	some kind of {byte-code}.

	Compare: {byte-code interpreter}.

	(1995-11-04)

byte-code interpreter

	<software> A program that {executes} a {byte code} program.

	An example is the {Java Virtual Machine}.

	(1999-11-28)

byte compiler

	{byte-code compiler}

bytesexual

	<jargon> /bi:t" sek"shu-*l/ An adjective used to describe
	hardware, denotes willingness to compute or pass data in
	either {big-endian} or {little-endian} format (depending,
	presumably, on a {mode bit} somewhere).  See also {NUXI
	problem}.

	[{Jargon File}]

	(2009-05-28)

Byzantine

	<jargon, architecture> A term describing any system that has
	so many labyrinthine internal interconnections that it would
	be impossible to simplify by separation into loosely coupled
	or linked components.

	The city of Byzantium, later renamed Constantinople and then
	Istanbul, and the Byzantine Empire were vitiated by a
	bureaucratic overelaboration bordering on lunacy: quadruple
	banked agencies, dozens or even scores of superfluous levels
	and officials with high flown titles unrelated to their actual
	function, if any.

	Access to the Emperor and his council was controlled by
	powerful and inscrutable eunuchs and by rival sports factions.

	[Edward Gibbon, "Decline and Fall of the Roman Empire"].

	(1999-01-15)

bz

	<networking> The {country code} for Belize.

	(1999-01-27)

bzzzt, wrong

	<jargon> /bzt rong/ ({Usenet}, {Internet}) From the flim "Dead
	Poets Society", spoofing quiz shows such as "Truth or
	Consequences" where an incorrect answer earns a blast from the
	buzzer.

	An expression of mock-rude disagreement, often following a
	quote from another poster in a {forum}.  The less abbreviated
	"*Bzzzzt*, wrong, but thank you for playing" is also common.

	[{Jargon File}]

	(2009-10-28)

C

	<language> A programming language designed by {Dennis Ritchie}
	at {AT&T} {Bell Labs} ca. 1972 for systems programming on the
	{PDP-11} and immediately used to reimplement {Unix}.

	It was called "C" because many features derived from an
	earlier compiler named "{B}".  In fact, C was briefly named
	"NB".  B was itself strongly influenced by {BCPL}.  Before
	{Bjarne Stroustrup} settled the question by designing {C++},
	there was a humorous debate over whether C's successor should
	be named "D" or "P" (following B and C in "BCPL").

	C is terse, low-level and permissive.  It has a {macro
	preprocessor}, {cpp}.

	Partly due to its distribution with {Unix}, C became immensely
	popular outside {Bell Labs} after about 1980 and is now the
	dominant language in systems and {microcomputer} applications
	programming.  It has grown popular due to its simplicity,
	efficiency, and flexibility.  C programs are often easily
	adapted to new environments.

	C is often described, with a mixture of fondness and disdain,
	as "a language that combines all the elegance and power of
	{assembly language} with all the readability and
	maintainability of assembly language".

	Ritchie's original C, known as {K&R C} after Kernighan and
	Ritchie's book, has been {standard}ised (and simultaneously
	modified) as {ANSI C}.

	See also {ACCU}, {ae}, {c68}, {c386}, {C-Interp}, {cxref},
	{dbx}, {dsp56k-gcc}, {dsp56165-gcc}, {gc}, {GCT}, {GNU C},
	{GNU superoptimiser}, {Harvest C}, {malloc}, {mpl},
	{Pthreads}, {ups}.

	[{Jargon File}]

	(1996-06-01)

C#

	<language> /see sharp/ An {object-oriented} language devised
	and promoted by {Microsoft}, intended to replace {Java}, which
	it strongly resembles.

	{(http://csharpindex.com/)}.

	(2001-10-04)

(c)

	<character, legal> An {ASCII} rendition of the encircled "c"
	{copyright} symbol.  Unfortunately, this rendition is not
	legally valid: the circle must be complete.  The word
	"copyright" in full is perfectly adequate though.

	(In {LaTeX} the copyright symbol is written as \copyright).

	[{Jargon File}]

	(2004-08-20)

C*

	<language, parallel> An {object-oriented}, {data-parallel}
	superset of {ANSI C} with synchronous {semantics}, for the
	{Connection Machine}, designed by {Thinking Machines}, 1987.
	C* adds a "domain" data type and a selection statement for
	parallel execution in domains.

	An unimplemented language called "{Parallel C}" [which one?]
	influenced the design of {C*}.  {Dataparallel-C} was based on
	{C*}.

	Latest version: 6.x, as of 1993-07-27.

	["C*: An Extended C Language for Data Parallel Programming",
	J.R. Rose et al, Proc Second Intl Conf on Supercomputing,
	L.P. Kartashev et al eds, May 1987, pp 2-16].

	["C* Programming Manual", Thinking Machines Corp, 1986].

	[{Jargon File}]

	(2000-11-14)

C++

	<language> One of the most used {object-oriented} languages, a
	superset of {C} developed primarily by {Bjarne Stroustrup}
	<bs@alice.att.com> at {AT&T} {Bell Laboratories} in 1986.

	In C++ a {class} is a user-defined {type}, syntactically a
	{struct} with {member functions}.  {Constructors} and
	{destructors} are member functions called to create or destroy
	{instances}.  A {friend} is a nonmember function that is
	allowed to access the private portion of a class.  C++ allows
	{implicit type conversion}, {function inlining}, {overloading}
	of operators and function names, and {default function
	arguments}.  It has {streams} for I/O and {references}.

	C++ 2.0 (May 1989) introduced {multiple inheritance},
	{type-safe linkage}, pointers to members, and {abstract
	classes}.

	C++ 2.1 was introduced in ["Annotated C++ Reference Manual",
	B. Stroustrup et al, A-W 1990].

	{MS-DOS
	(ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip)},
	{Unix ANSI C++
	(ftp://gnu.org/pub/gnu/g++-1.39.0.tar.Z)} - X3J16
	committee. (They're workin' on it).

	See also {cfront}, {LEDA}, {uC++}.

	{Usenet} newsgroup: {news:comp.lang.c++}.

	["The C++ Programming Language", Bjarne Stroustrup, A-W,
	1986].

	(1996-06-06)

C+-

	<language> (C More or Less) A subject-oriented language (SOL).
	Each C+- {class} instance, known as a subject, holds hidden
	{members}, known as prejudices, agendas or undeclared
	preferences, which are impervious to outside messages; as well
	as public members, known as boasts or claims.

	The following {C} {operators} are overridden as shown:

	 >    better than
	 <    worse than
	 >>   way better than
	 <<   forget it
	 !    not on your life
	 ==   comparable, other things being equal
	 !==  get a life, guy!

	C+- is {strongly typed}, based on stereotyping and
	self-righteous logic.  The {Boolean} {variables} TRUE and
	FALSE (known as constants in other, less realistic languages)
	are supplemented with CREDIBLE and DUBIOUS, which are fuzzier
	than Zadeh's traditional fuzzy categories.  All Booleans can
	be declared with the modifiers strong and weak.  Weak
	implication is said to "preserve deniability" and was added at
	the request of the DoD to ensure compatibility with future
	versions of {Ada}.  Well-formed falsehoods (WFFs) are
	{assignment}-compatible with all Booleans.  What-if and
	why-not interactions are aided by the special conditional
	EVENIFNOT X THEN Y.

	C+- supports {information hiding} and, among {friend classes}
	only, rumor sharing.  Borrowing from the {Eiffel} lexicon,
	non-friend classes can be killed by arranging contracts.  Note
	that friendships are {intransitive}, {volatile} and
	non-{Abelian}.

	{Operator precedence} rules can be suspended with the
	directive #pragma dwim, known as the "{Do what I mean}"
	{pragma}.

	{ANSIfication} will be firmly resisted. C+-'s slogan is "Be
	Your Own Standard."

	[{Jargon File}]

	(1999-06-15)

C+@

	<language> (Formerly "Calico").  An {object-oriented language}
	from {Bell Laboratories} which uniformly represents all data
	as pointers to self-described objects.  C+@ provides {multiple
	inheritance} with {delegation} and with control over which
	{methods} come from which delegated object; and {default
	methodologies}.  It has a simple {syntax} with emphasis on
	graphics.  It was originally used for prototyping of
	telecommunication services.

	The language is patented by AT&T and {Unir Tech} has the
	exclusive license from Bell Labs to distribute C+@.
	Unfortunately Unir is owned and operated by well-known
	anti-{IETF} ranter, Jim Fleming, which may have had something
	to do with the language's rapid disappearence from the radar
	screen.

	It runs under {SunOS} and compiles to {Vcode}.

	E-mail: Jim Vandendorpe <jimvan@iexist.att.com>.

	["A Dynamic C-Based Object-Oriented System for Unix", S.
	Engelstad et al, IEEE Software 8(3):73-85 (May 1991)].

	["The C+@ Programming Language", J. Fleming, Dr Dobbs J, Oct
	1993, pp.24-32].

	[{Jargon File}]

	(2005-01-05)

C-10

	<language> An improved version of {COLINGO}.

	[Sammet 1969, p.702].

	(1994-10-28)

C1 security

	{Orange Book}

c2man

	<tool> An automatic {documentation} extraction tool by Graham
	Stoney.  c2man extracts comments from {C} source code to
	generate functional interface documentation in the same format
	as sections 2 and 3 of the {Unix} Programmer's Manual.  It
	looks for comments near the objects they document, rather than
	imposing a rigid {syntax} or requiring the programmer to use a
	typesetting language.  Acceptable documentation can often be
	generated from existing code with no modifications.

	c2man supports both {K&R} and {ISO}/{ANSI C} coding styles.
	Output can be in {nroff} -man, {Texinfo} or {LaTeX} format.
	It {automagically} documents {enum} parameter and return
	values, it handles both {C} (/* */) and {C++} (//) style
	comments, but not C++ grammar (yet).  It requires {yacc},
	{byacc} or {bison} for syntax analysis; {lex} or {flex} for
	{lexical analysis} and {nroff}, {groff}, {texinfo} or {LaTeX}
	to format the output.  It runs under {Unix}, {OS/2} and
	{MS-DOS}.

	Version 2.0 patchlevel 25 (1995-10-25).

	{Washington FTP
	(ftp://ftp.wustl.edu/usenet/comp.sources.reviewed/volume03/)}.
	{Stuttgart FTP
	(ftp://ftp.informatik.uni-stuttgart.de/pub/archive/comp.sources/reviewed/)}.
	{Patches
	(ftp://lth.se/pub/netnews/sources.bugs/volume93/sep/)}.

	Patches posted to {Usenet} newsgroups {news:comp.sources.bugs}
	and {news:comp.sources.reviewed}.

	(2003-05-02)

C2 security

	{Orange Book}

c386

	<tool> A {compiler} for {K&R C} plus {prototypes} and other
	{ANSI C} features by Matthew Brandt, Christoph van Wuellen,
	Keith and Dave Walker.  c386 is targetted to several {68000}
	and {Intel 80386} {assemblers}, including {gas}.
	{floating-point} support is by {inline code} or {emulation}.
	It can produce lots of warnings and generates better code than
	{ACK}.

	{Version 4.2a
	(ftp://bugs.nosc.mil/pub/Minix/common-pkgs/c386-4.2.tar.Z)}.

	(2009-11-11)

C5

	<language> An {OPS5} implementation in {C}.

	(2009-11-13)

C64

	{Commodore 64}

c68

	{c386}

CA

	1. <theory, architecture> {cellular automaton}.

	2. <company> {Computer Associates}.

	3. <cryptography> {Certificate Authority}.

ca

	<networking> The {country code} for Canada.

	(1995-04-19)

cable modem

	<communications, hardware> A type of {modem} that allows
	people to access the {Internet} via their cable television
	service.

	A cable modem can transfer data at 500 {kbps} or higher,
	compared with 28.8 kbps for common telephone line modems, but
	the actual transfer rates may be lower depending on the number
	of other simultaneous users on the same cable.

	Industry pundits often point out that the cable system still
	does not have the {bandwidth} or service level in many areas
	to make this feasible.  For example, it has to be capable of
	two-way communication.

	See also: {DOCSIS}.

	(2000-12-19)

cache

	<memory management> /kash/ A small fast memory holding
	recently accessed data, designed to speed up subsequent access
	to the same data.  Most often applied to processor-memory
	access but also used for a local copy of data accessible over
	a network etc.

	When data is read from, or written to, {main memory} a copy is
	also saved in the cache, along with the associated main memory
	address.  The cache monitors addresses of subsequent reads to
	see if the required data is already in the cache.  If it is (a
	{cache hit}) then it is returned immediately and the main
	memory read is aborted (or not started).  If the data is not
	cached (a {cache miss}) then it is fetched from main memory
	and also saved in the cache.

	The cache is built from faster memory chips than main memory
	so a cache hit takes much less time to complete than a normal
	memory access.  The cache may be located on the same
	{integrated circuit} as the {CPU}, in order to further reduce
	the access time.  In this case it is often known as {primary
	cache} since there may be a larger, slower {secondary cache}
	outside the CPU chip.

	The most important characteristic of a cache is its {hit rate}
	- the fraction of all memory accesses which are satisfied from
	the cache.  This in turn depends on the cache design but
	mostly on its size relative to the main memory.  The size is
	limited by the cost of fast memory chips.

	The hit rate also depends on the access pattern of the
	particular program being run (the sequence of addresses being
	read and written).  Caches rely on two properties of the
	access patterns of most programs: temporal locality - if
	something is accessed once, it is likely to be accessed again
	soon, and spatial locality - if one memory location is
	accessed then nearby memory locations are also likely to be
	accessed.  In order to exploit spatial locality, caches often
	operate on several words at a time, a "{cache line}" or "cache
	block".  Main memory reads and writes are whole {cache lines}.

	When the processor wants to write to main memory, the data is
	first written to the cache on the assumption that the
	processor will probably read it again soon.  Various different
	policies are used.  In a {write-through} cache, data is
	written to main memory at the same time as it is cached.  In a
	{write-back} cache it is only written to main memory when it
	is forced out of the cache.

	If all accesses were writes then, with a write-through policy,
	every write to the cache would necessitate a main memory
	write, thus slowing the system down to main memory speed.
	However, statistically, most accesses are reads and most of
	these will be satisfied from the cache.  Write-through is
	simpler than write-back because an entry that is to be
	replaced can just be overwritten in the cache as it will
	already have been copied to main memory whereas write-back
	requires the cache to initiate a main memory write of the
	flushed entry followed (for a processor read) by a main memory
	read.  However, write-back is more efficient because an entry
	may be written many times in the cache without a main memory
	access.

	When the cache is full and it is desired to cache another line
	of data then a cache entry is selected to be written back to
	main memory or "flushed".  The new line is then put in its
	place.  Which entry is chosen to be flushed is determined by a
	"{replacement algorithm}".

	Some processors have separate instruction and data caches.
	Both can be active at the same time, allowing an instruction
	fetch to overlap with a data read or write.  This separation
	also avoids the possibility of bad {cache conflict} between
	say the instructions in a loop and some data in an array which
	is accessed by that loop.

	See also {direct mapped cache}, {fully associative cache},
	{sector mapping}, {set associative cache}.

	(1997-06-25)

cache block

	{cache line}

cache coherency

	<storage> (Or "cache consistency") /kash koh-heer'n-see/ The
	synchronisation of data in multiple {caches} such that reading
	a memory location via any cache will return the most recent
	data written to that location via any (other) cache.

	Some {parallel processors} do not cache accesses to {shared
	memory} to avoid the issue of cache coherency.  If caches are
	used with shared memory then some system is required to detect
	when data in one processor's cache should be discarded or
	replaced because another processor has updated that memory
	location.  Several such schemes have been devised.

	(1998-11-10)

cache conflict

	<storage> A sequence of accesses to memory repeatedly
	overwriting the same {cache} entry.  This can happen if two
	blocks of data, which are mapped to the same set of cache
	locations, are needed simultaneously.

	For example, in the case of a {direct mapped cache}, if
	{arrays} A, B, and C map to the same range of cache locations,
	thrashing will occur when the following loop is executed:

		for (i=1; i<n; i++)
			C[i] = A[i] + B[i];

	Cache conflict can also occur between a program loop and the
	data it is accessing.

	See also {ping-pong}.

	(1997-01-21)

cache consistency

	{cache coherency}

cache hit

	<storage> A request to read from memory which can satisfied
	from the {cache} without using the {main memory}.

	Opposite: {cache miss}.

	(1997-01-21)

cache line

	<storage> (Or cache block) The smallest unit of memory than
	can be transferred between the {main memory} and the {cache}.

	Rather than reading a single word or byte from main memory at
	a time, each cache entry is usually holds a certain number of
	words, known as a "cache line" or "cache block" and a whole
	line is read and cached at once.  This takes advantage of the
	principle of locality of reference: if one location is read
	then nearby locations (particularly following locations) are
	likely to be read soon afterward.  It can also take advantage
	of {page-mode} {DRAM} which allows faster access to
	consecutive locations.

	(1997-01-21)

cache memory

	{cache}

cache miss

	<storage> A request to read from memory which cannot be
	satisfied from the {cache}, for which the {main memory} has to
	be consulted.

	Opposite: {cache hit}.

	(1997-01-21)

Cache On A STick

	<architecture> (COAST) {Intel Corporation} attempt to's
	standardise the modular {L2 cache} subsystem in
	{Pentium}-based computers.

	A COAST module should be about 4.35" wide by 1.14" high.
	According to earlier specifications from {Motorola}, a module
	between 4.33" and 4.36" wide, and between 1.12" and 1.16" high
	is within the COAST standard.  Some module vendors, including
	some major motherboard suppliers, greatly violate the height
	specification.

	Another COAST specification violated by many suppliers
	concerns clock distribution in synchronous modules.  The
	specification requires that the clock tree to each synchronous
	chip be balanced, i.e. equal length from edge of the connector
	to individual chips.  An unbalanced clock tree increases
	reflections and noise.

	For a 256 {kilobyte} cache module the standard requires the
	same clock be used for both chips but some vendors use
	separate clocks to reduce loading on the clock driver and
	hence increase the clock speed.  However, this creates
	unbalanced loading in other motherboard configurations, such
	as motherboards with soldered caches in the system.

	(1996-06-10)

caching

	{cache}

CACI

	<company> A company developing and marketing {SIMSCRIPT},
	{MODSIM} and other {simulation} software products.

	Telephone: +1 (619) 457-9681.

	(1994-09-22)

CACM

	{Communications of the ACM}

CAD

	{Computer Aided Design}

CAD/CAM

	{Computer Aided Design}/Computer Aided Manufacturing.

CADD

	{Computer Aided Detector Design}

Cadence Design Systems

	<company> A company that sells {electronic design automation}
	software and services.

	{(http://cadence.com/)}.

	See also {Verilog}.

	(1999-04-16)

CADET

	Computer Aided Design Experimental Translator.

	[Sammet 1969, p. 683].

	(1994-11-29)

CADRE

	<company> The US {software engineering} vendor which merged
	with {Bachman Information Systems} to form {Cayenne Software}
	in July 1996.

	(1998-02-08)

CAE

	1. <operating system> {Common Applications Environment}.

	2. <application> {Computer Aided Engineering}.

CAF

	{constant applicative form}

CAFE

	["Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc
	BCS Symp on Job Control Languages--Past Present and Future,
	NCC, Manchester, England 1974].

	(1994-10-28)

CAGE

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

CAI

	{Computer-Aided Instruction}

Cairo

	{Windows NT 4}

CAIS

	{Common APSE Interface Specification}

CAIS-A

	Common APSE Interface Set A

	DoD-STD-1838A.

CAiSE

	Conference on Advanced Information Systems Engineering.

CAJOLE

	<language> (Chris And John's Own LanguagE) A {dataflow}
	language developed by Chris Hankin <clh@doc.ic.ac.uk> and John
	Sharp at {Westfield College}.

	["The Data Flow Programming Language CAJOLE: An Informal
	Introduction", C.L. Hankin et al, SIGPLAN Notices 16(7):35-44
	(Jul 1981)].

	(1994-11-08)

CAL

	1. {Computer Assisted Learning}.

	2. {Course Author Language}.

Calc

	<tool, mathematics> An extensible, advanced desk calculator
	and mathematical tool written in {Emacs Lisp} by Dave
	Gillespie <daveg@synaptics.com>.  Calc runs as part of {GNU
	Emacs}.  You can use Calc as only a simple four-function
	calculator, but it also provides additional features including
	choice of algebraic or {RPN} ({stack}-based) entry,
	logarithms, trigonometric and financial functions, {arbitrary
	precision}, complex numbers, vectors, matrices, dates, times,
	infinities, sets, algebraic simplification, differentiation,
	and integration.

	Latest version: 2.02, as of 1994-11-08.

	FTP calc-2.02.tar.z from your nearest {GNU archive site}.

	(2000-10-20)

calculator

	{bitty box}

Calculus of Communicating Systems

	(CCS) A mathematical model (a formal language) for describing
	processes, mostly used in the study of {parallelism}.  A CCS
	program, written in {behaviour expressions syntax} denotes a
	process behaviour.  Programs can be compared using the notion
	of {observational equivalence}.

	["A Calculus of Communicating Systems", LNCS 92, Springer
	1980].

	["Communication and Concurrency", R. Milner, P-H 1989].

	(1994-11-29)

Calendar API

	{Calendar Application Programming Interface}

Calendar Application Programming Interface

	(CAPI, Calendar API) An {API} for calendar {software}.

	{Microsoft} has defined a CAPI for their {Schedule+}
	application.

	(1995-01-11)

Caliban

	A {declarative} annotation language for controlling the
	partitioning and placement of the evaluation of expressions in
	a distributed {functional language}.  Designed by Paul Kelly
	<phjk@doc.ic.ac.uk>, {Imperial College}.

	["Functional Programming for Loosely-coupled Multiprocessors",
	P. Kelly, Pitman/MIT Press, 1989].

	(1995-01-11)

Calico

	{C+@}

California State University San Marcos

	(CSUSM)

	{(http://coyote.csusm.edu/)}.

	(1994-12-21)

callback

	1. <programming> A scheme used in {event-driven} programs
	where the program registers a {subroutine} (a "callback
	handler") to handle a certain {event}.  The program does not
	call the handler directly but when the event occurs, the
	{run-time system} calls the handler, usually passing it
	arguments to describe the event.

	2. <communications, security> A {user authentication} scheme
	used by some computers running {dial-up} services.  The user
	dials in to the computer and gives his {user name} and
	{password}.  The computer then hangs up the connection and
	uses an {auto-dial} {modem} to call back to the user's
	registered telephone number.  Thus, if an unauthorised person
	discovers a user's password, the callback will go, not to him,
	but to the owner of that login who will then know that his
	account is under attack.

	However, some {PABXs} can be fooled into thinking that the
	caller has hung up by sending them a dial tone.  When the
	computer tries to call out on the same line it is not actually
	dialing through to the authorised user but is still connected
	to the original caller.

	3. <communications> {cost control callback}.

	(2003-07-13)

call-by-name

	<reduction> (CBN) (Normal order reduction, leftmost, outermost
	reduction).  An {argument} passing convention (first provided
	by {ALGOL 60}?)  where argument expressions are passed
	unevaluated.  This is usually implemented by passing a pointer
	to a {thunk} - some code which will return the value of the
	argument and an environment giving the values of its {free
	variables}.

	This {evaluation strategy} is guaranteed to reach a {normal
	form} if one exists.

	When used to implement {functional programming} languages,
	call-by-name is usually combined with {graph reduction} to
	avoid repeated evaluation of the same expression.  This is
	then known as {call-by-need}.

	The opposite of call-by-name is {call-by-value} where
	arguments are evaluated before they are passed to a function.
	This is more efficient but is less likely to terminate in the
	presence of infinite data structures and {recursive}
	functions.

	Arguments to {macros} are usually passed using call-by-name.

	(2006-05-27)

call-by-need

	<reduction> A {reduction strategy} which delays evaluation of
	{function} {arguments} until their values are needed.  A value
	is needed if it is an argument to a {primitive} function or it
	is the condition in a {conditional}.  Call-by-need is one
	aspect of {lazy evaluation}.

	The term first appears in Chris Wadsworth's thesis "Semantics
	and Pragmatics of the Lambda calculus" (Oxford, 1971, p. 183).
	It was used later, by J. Vuillemin in his thesis (Stanford,
	1973).

	(1995-05-27)

call-by-reference

	<programming> An {argument} passing convention where the
	address of an argument {variable} is passed to a {function} or
	{procedure}, as opposed to passing the value of the argument
	expression.  Execution of the function or procedure may have
	{side-effects} on the actual argument as seen by the caller.
	The {C} language's "&" (address of) and "*" (dereference)
	operators allow the programmer to code explicit
	call-by-reference.  Other languages provide special syntax to
	declare reference arguments (e.g. {ALGOL 60}).

	See also {call-by-name}, {call-by-value},
	{call-by-value-result}.

	(2006-05-27)

call-by-value

	(CBV) An {evaluation strategy} where arguments are evaluated
	before the function or procedure is entered.  Only the values
	of the arguments are passed and changes to the arguments
	within the called procedure have no effect on the actual
	arguments as seen by the caller.  See {applicative order
	reduction}, {call-by-value-result}, {strict evaluation},
	{call-by-name}, {lazy evaluation}.

call-by-value-result

	An argument passing convention where the {actual argument} is
	a variable V whose value is copied to a local variable L
	inside the called function or procedure.  If the procedure
	modifies L, these changes will not affect V, which may also be
	in scope inside the procedure, until the procedure returns
	when the final value of L is copied to V.  Under
	{call-by-reference} changes to L would affect V immediately.
	Used, for example, by {BBC BASIC V} on the {Acorn}
	{Archimedes}.

call/cc

	{call-with-current-continuation}

Call Data Record

	<telecommunications> (CDR) A data record that contains
	information related to a telephone call, including the
	origination and destination addresses of the call, the time
	the call started and ended, the duration of the call, the time
	of day the call was made, toll charges that were added through
	the network, or charges for operator services.

	[Context?]

	(2010-03-21)

callee

	<programming> The {function} or {subroutine} being called by
	the {caller}.

	(2001-05-09)

Caller ID

	<communications> (CID) A short piece of text transmitted by
	some telephone systems describing the origin of a call,
	e.g. the name of the caller.  Some telephone handsets can
	display this.  A {computer telephony integration} system might
	use it to trigger actions on the callee's computer such as
	looking up the caller in a database and displaying their
	details on screen.

	There may also be a separate "caller id number" giving the
	telephone number of the originator of the call.

	(2008-04-30)

calling convention

	<programming> The arrangement of {arguments} for a procedure
	or function call.  Different programming languages may require
	arguments to be pushed onto a {stack} or entered in
	{registers} in left-to-right or right-to left order, and
	either the caller or the callee can be responsible for
	removing the arguments.  The calling convention also
	determines if a variable number of arguments is allowed.

	(1995-11-11)

Call-Level Interface

	<database, standard> (SQL/CLI) A programming interface
	designed to support {SQL} access to {databases} from
	shrink-wrapped {application programs}.

	CLI was originally created by a subcommittee of the {SQL
	Access Group} (SAG).  The SAG/CLI specification was published
	as the {Microsoft} {Open DataBase Connectivity} (ODBC)
	specification in 1992.  In 1993, SAG submitted the CLI to the
	{ANSI} and {ISO} SQL committees.

	SQL/CLI provides an international standard
	implementation-independent CLI to access SQL databases.
	{Client-server} tools can easily access databases through
	{dynamic link libraries}.  It supports and encourages a rich
	set of client-server tools.

	SQL/CLI is an addendum to 1992 SQL standard (SQL-92).  It was
	completed as ISO standard ISO/IEC 9075-3:1995 Information
	technology -- Database languages -- SQL -- Part 3: Call-Level
	Interface (SQL/CLI).  The current SQL/CLI effort is adding
	support for {SQL3}.

	{(http://jcc.com/sql_cli.html)}.

	(1996-10-27)

Call Unix

	<communications, tool> (cu) The original {Unix} {virtual
	terminal} utility.  cu allows a user on one computer to log in
	to another connected via {Ethernet}, direct {serial line} or
	{modem}.  It shares some configuration files with {UUCP} in
	order to be able to use the same connections without conflict.

	{Unix manual page}: cu(1).

	(1997-12-01)

Callware

	<company> The developers of {Phonetastic}.

	(1996-12-08)

call-with-current-continuation

	<Lisp, programming> (call/cc) A {Lisp} control function that
	takes a function f as its argument and calls f, passing it the
	current {continuation}, which is itself a function, k.  k,
	which represents the context of the call to call/cc, takes the
	result of call/cc (which is the result of f) and returns the
	final result of the whole program.  Thus if, for example, the
	final result is to print the value returned by call/cc then
	anything passed to k will also be printed.

	E.g, in {Scheme}:

	 (define (f k)
		 (k 1)
		 (k 2)
		 3)

	 (display (call-with-current-continuation f))

	Will display 1.

	(2001-04-27)

CALS

	Computer-Aided Acquisition and Logistics Support: a DoD
	standard for electronic exchange of data with commercial
	suppliers.

Caltech Intermediate Form

	<language> (CIF) A geometry language for {VLSI} design, in
	which the primitives are coloured rectangles.

	["Introduction to VLSI Systems", Mead & Conway, A-W 1980,
	Section 4.5].

	(1995-01-25)

CAM

	1. <storage, architecture> {content addressable memory}.

	2. <application> {computer aided manufacturing}.

CAM-6

	Software for running {cellular automata}.  CAM-6 has been
	implemented in hardware as {CAM-PC}.

	(1995-04-21)

CAMAL

	<tool> CAMbridge ALgebra system.

	A {symbolic mathematics} system used in Celestial Mechanics
	and General Relativity.  CAMAL was implemented in {BCPL} on
	{Titan}.

	["CAMAL User's Manual", John P. Fitch, Cambridge U, England
	(1975)].

	["The Design of the Cambridge Algebra System", S.R. Bourne et
	al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971].

	(1995-02-16)

Cambridge Lisp

	A flavour of Lisp using BCPL.  Sources owned by Fitznorman
	partners.

Camelot Library

	<library>

	["The Camelot Library", J. Bloch, in "Guide to the Camelot
	Distributed Transaction Facility: Release I", A.Z. Spector et
	al eds, CMU 1988, pp. 29-62].

	[What is it?]

	(1995-04-19)

camera ready

	<publication> A final edition of a document or graphic (e.g. a
	newspaper advertisement or a technical paper for a journal)
	that is of suitable quality for mass reproduction by making
	printing plates from the negatives by photoengraving.

	(1996-11-15)

CAMIL

	Computer Assisted/Managed Instructional Language.

	A language used for {CAI} at Lowry AFB, CO.

	["The CAMIL Programming Language", David Pflasterer, SIGPLAN
	Notices 13(11):43 (Nov 1978)].

	(1994-11-09)

CAML

	<language>

	1. A language for preparation of animated movies.  1976.

	(1994-11-09)

	2. {Categorical Abstract Machine Language}.

	(2000-07-06)

Caml Light

	A small portable implementation of a version of {CAML} by
	Xavier Leroy <Xavier.Leroy@inria.fr> and Damien Doligez of
	{INRIA}.  Caml Light uses a {bytecode interpreter} written in
	{C}.  It adds a {Modula-2}-like {module} system, {separate
	compilation}, {lazy streams} for parsing and printing,
	graphics primitives and an interface with {C}.

	Version 0.6 runs on {Unix}, {MS-DOS}, {Macintosh}, {Atari ST}
	and {Amiga}.  It includes an {interpreter}, {compiler},
	{Emacs} mode, libraries, {scanner generator}, {parser
	generator}, {run-time support} and an interactive development
	environment.

	The latest version, as of April 2003, is 0.75 and runs on
	{Unix}, {Macintosh} and {Windows}.

	The development of Caml Light has been stopped; current
	development is on {Objective Caml}.

	{(http://caml.inria.fr/distrib-caml-light-eng.html)}.
	{(ftp://ftp.inria.fr/lang/caml-light/)}.

	E-mail: <caml@inria.fr>.

	Mailing list: <caml-list@inria.fr>.

	{Usenet} newsgroup: {news:comp.lang.ml}.

	(2003-04-12)

CAM-PC

	<hardware> A {cellular automata} circuit board which is a
	hardware implementation from {Automatrix} of the {MIT} {CAM-6}
	machine.  It comes with dozens of experiments and
	applications.

	{(http://automatrix.com/campc/index.html)}.

	(1995-04-21)

Campus Wide Information System

	(CWIS) Information and services made publicly available at
	university sites via {kiosks} running interactive computing
	systems, possibly via campus networks.  Services routinely
	include directory information, calendars, {bulletin boards}
	and {databases}.

	(1994-11-09)

CAN

	{Cancel}

Canada

	Country with {domain} "ca".

	(1995-04-06)

Cancel

	<character> (CAN, Control-X) {ASCII} character 24.

	(1996-06-28)

Cancelbunny

	{Cancelpoodle}

Cancelm00se

	{Cancelmoose}

Cancelmoose

	<messaging> A semi-mythical being that cancels {Usenet}
	{articles} posted by others.  (In general, an article can only
	be cancelled by its original author.)

	The Cancelmoose's usual target is {spam} or extremely
	excessive {cross-post}ing.

	Some believe that the Cancelmoose exists only in the same
	mythic sense that {B1FF}, the {NSA line eater} and {Shub
	Internet} exist; others consider Cancelmoose's historicity to
	be closer to that of {Kibo}.  The latter group assume that the
	real Cancelmoose is not one person (or moose), but instead is
	a cabal of {NNTP} wonks.  However, the Cancelmoose is probably
	real, seeing as how it has its own {website}.

	{(http://nocem.org/)}.

	(1999-01-14)

Cancelpoodle

	<messaging> (Or Cancelbunny) A manifestation of the
	{Cancelmoose} in the form of a more selective (and probably
	not automated) way to cancel {Usenet} articles.

	The term became common during the alt.religion.scientology
	wars of the mid-90s, during which Cancelpoodles were used.
	The "poodle" part is an allusion to one of the parties
	obliquely involved in the fray, who an earlier well-known
	witticism had compared to "a psychotic poodle".

	(1999-01-14)

candidate key

	<database> One of several possible attributes or combinations
	of attributes which can be used to uniquely identify a body of
	information (a "{record}").  The chosen candidate key is
	called the {primary key}.

	(2006-05-29)

Candle

	Part of the {Scorpion} environment development system.

	(1994-11-09)

candygrammar

	<language> A programming-language grammar that is mostly
	{syntactic sugar}; a play on "candygram".  {COBOL}, {Apple
	Computer}'s {Hypertalk} language, and many {4GLs} share this
	property.  The intent is to be as English-like as possible and
	thus easier for unskilled people to program.  However,
	{syntax} isn't what makes programming hard; it's the mental
	effort and organisation required to specify an {algorithm}
	precisely.  Thus "candygrammar" languages are just as
	difficult to program in, and far more painful for the
	experienced hacker.

	{GLS} notes: The overtones from the 1977 Chevy Chase "Jaws"
	parody on Saturday Night Live should not be overlooked.
	Someone lurking outside an apartment door tries to get the
	occupant to open up, while ominous music plays in the
	background.  The last attempt is a half-hearted "Candygram!"
	When the door is opened, a shark bursts in and chomps the poor
	occupant.  There is a moral here for those attracted to
	candygrammars.

	[{Jargon File}]

	(2004-09-23)

canonical

	(Historically, "according to religious law")

	1. <mathematics> A standard way of writing a formula.  Two
	formulas such as 9 + x and x + 9 are said to be equivalent
	because they mean the same thing, but the second one is in
	"canonical form" because it is written in the usual way, with
	the highest power of x first.  Usually there are fixed rules
	you can use to decide whether something is in canonical form.
	Things in canonical form are easier to compare.

	2. <jargon> The usual or standard state or manner of
	something.  The term acquired this meaning in computer-science
	culture largely through its prominence in {Alonzo Church}'s
	work in computation theory and {mathematical logic} (see
	{Knights of the Lambda-Calculus}).

	Compare {vanilla}.

	This word has an interesting history.  Non-technical academics
	do not use the adjective "canonical" in any of the senses
	defined above with any regularity; they do however use the
	nouns "canon" and "canonicity" (not "canonicalness"* or
	"canonicality"*). The "canon" of a given author is the
	complete body of authentic works by that author (this usage is
	familiar to Sherlock Holmes fans as well as to literary
	scholars).  "The canon" is the body of works in a given field
	(e.g. works of literature, or of art, or of music) deemed
	worthwhile for students to study and for scholars to
	investigate.

	The word "canon" derives ultimately from the Greek "kanon"
	(akin to the English "cane") referring to a reed.  Reeds were
	used for measurement, and in Latin and later Greek the word
	"canon" meant a rule or a standard.  The establishment of a
	canon of scriptures within Christianity was meant to define a
	standard or a rule for the religion.  The above non-technical
	academic usages stem from this instance of a defined and
	accepted body of work.  Alongside this usage was the
	promulgation of "canons" ("rules") for the government of the
	Catholic Church.  The usages relating to religious law derive
	from this use of the Latin "canon".  It may also be related to
	arabic "qanun" (law).

	Hackers invest this term with a playfulness that makes an
	ironic contrast with its historical meaning.  A true story:
	One Bob Sjoberg, new at the {MIT AI Lab}, expressed some
	annoyance at the incessant use of jargon.  Over his loud
	objections, {GLS} and {RMS} made a point of using as much of
	it as possible in his presence, and eventually it began to
	sink in.  Finally, in one conversation, he used the word
	"canonical" in jargon-like fashion without thinking.  Steele:
	"Aha!  We've finally got you talking jargon too!"  Stallman:
	"What did he say?"  Steele: "Bob just used "canonical" in the
	canonical way."

	Of course, canonicality depends on context, but it is
	implicitly defined as the way *hackers* normally expect things
	to be.  Thus, a hacker may claim with a straight face that
	"according to religious law" is *not* the canonical meaning of
	"canonical".

	(2002-02-06)

Canonical Encoding Rules

	<protocol, standard> (CER) A restricted variant of {BER} for
	producing unequivocal {transfer syntax} for data structures
	described by {ASN.1}.

	Whereas {BER} gives choices as to how data values may be
	encoded, CER and {DER} select just one encoding from those
	allowed by the basic encoding rules, eliminating all of the
	options.  They are useful when the encodings must be
	preserved, e.g. in security exchanges.

	CER and {DER} differ in the set of restrictions that they
	place on the encoder.  The basic difference between CER and
	{DER} is that {DER} uses definitive length form and CER uses
	indefinite length form.

	Documents: {ITU-T} X.690, {ISO} 8825-1.

	See also {PER}.

	(1998-05-19)

canonical name

	(CNAME) A host's official name as opposed to an alias.  The
	official name is the first hostname listed for its {Internet
	address} in the hostname database, {/etc/hosts} or the
	{Network Information Service} (NIS) map hosts.byaddr ("hosts"
	for short).  A host with multiple network interfaces may have
	more than one Internet address, each with its own canonical
	name (and zero or more aliases).

	You can find a host's canonical name using {nslookup} if you
	say

		set querytype=CNAME

	and then type a hostname.

	(1994-11-29)

canonicity

	<theory, jargon> The extent to which something is {canonical}.

	(1995-03-03)

C (ANSI)

	{ANSI C}

can't happen

	<programming> The traditional program comment for code
	executed under a condition that should never be true, for
	example a file size computed as negative.  Often, such a
	condition being true indicates data corruption or a faulty
	{algorithm}; it is almost always handled by emitting a fatal
	error message and terminating or crashing, since there is
	little else that can be done.

	Some case variant of "can't happen" is also often the text
	emitted if the "impossible" error actually happens.  Although
	"can't happen" events are genuinely infrequent in production
	code, programmers wise enough to check for them habitually are
	often surprised at how frequently they are triggered during
	development and how many headaches checking for them turns out
	to head off.

	See also {firewall code}, {professional programming}.

	[{Jargon File}]

	(1996-05-10)

Cantor

	1. <person, mathematics> A mathematician.

	Cantor devised the diagonal proof of the uncountability of the
	{real numbers}:

	Given a function, f, from the {natural numbers} to the {real
	numbers}, consider the real number r whose binary expansion is
	given as follows: for each natural number i, r's i-th digit is
	the complement of the i-th digit of f(i).

	Thus, since r and f(i) differ in their i-th digits, r differs
	from any value taken by f.  Therefore, f is not {surjective}
	(there are values of its result type which it cannot return).

	Consequently, no function from the natural numbers to the
	reals is surjective.  A further theorem dependent on the
	{axiom of choice} turns this result into the statement that
	the reals are uncountable.

	This is just a special case of a diagonal proof that a
	function from a set to its {power set} cannot be surjective:

	Let f be a function from a set S to its power set, P(S) and
	let U = { x in S: x not in f(x) }.  Now, observe that any x in
	U is not in f(x), so U != f(x); and any x not in U is in f(x),
	so U != f(x): whence U is not in { f(x) : x in S }.  But U is
	in P(S).  Therefore, no function from a set to its power-set
	can be surjective.

	2. <language> An {object-oriented language} with {fine-grained
	concurrency}.

	[Athas, Caltech 1987.  "Multicomputers: Message Passing
	Concurrent Computers", W. Athas et al, Computer 21(8):9-24
	(Aug 1988)].

	(1997-03-14)

CAP

	1. <networking> {Columbia AppleTalk Package}.

	2. <communications> {Carrierless Amplitude/Phase Modulation}.

	3. <networking> {Competitive Access Provider}

Capabilities Maturity Model

	{Capability Maturity Model}

capability

	<operating system, security> An {operating system} security or
	access control model where specific types of access to a
	specific object are granted by giving a process this data
	structure or {token}.

	The token may be unforgeable (typically by using {encryption}
	or hardware "tagged" memory).  Capabilities are used in OSes
	such as {Hydra}, {KeyKOS}, {EROS}, {Chorus}/{Mix}, and the
	{Stanford V system}.  Similar to {Kerberos}, but in an OS
	context.

	Compare {access control list}.

	(1998-03-08)

Capability Maturity Model

	<software> (CMM) The {Software Engineering Institute}'s model
	of {software engineering} that specifies five levels of
	maturity of the processes of a software organisation.  CMM
	offers a framework for evolutionary process improvement.
	Originally applied to software development (SE-CMM), it has
	been expanded to cover other areas including Human Resources
	and Software Acquitition.

	The levels - focii - and key process areas are:

	Level 1 Initial - Heroes - None.

	Level 2 Repeatable - Project Management - Software Project
	Planning, Software Project Tracking and Oversight, Software
	Subcontract Management, Software Quality Assurance, Software
	Configuration Management, Requirements Management.

	Level 3 Defined - Engineering Process - Organisation Process
	Focus, Organisation Process Definition, Peer Reviews, Training
	Program, Inter-group Coordination, Software Product
	Engineering, Integrated Software Management.

	Level 4 Managed - Product and Process Quality - Software
	Quality Management, Quantitative Process Management.

	Level 5 Optimising - Continuous Improvement - Process Change
	Management, Technology Change Management, Defect Prevention.

	{(http://www.sei.cmu.edu/cmm/cmm.html)}.

	(2001-04-28)

capacitor

	<electronics> An electronic device that can store electrical
	charge.  The charge stored Q in Coulombs is related to the
	capacitance C in Farads and the voltage V across the capacitor
	in Volts by Q = CV.

	The basis of a {dynamic RAM} cell is a capacitor.  They are
	also used for power-supply smoothing (or "decoupling").  This
	is especially important in digital circuits where a digital
	device switching between states causes a sudden demand for
	current.  Without sufficient local power supply decoupling,
	this current "spike" cannot be supplied directly from the
	power supply due to the inductance of the connectors and so
	will cause a sharp drop in the power supply voltage near the
	switching device.  This can cause other devices to malfunction
	resulting in hard to trace {glitch}es.

	(1995-04-12)

capacity

	<communications> The maximum possible {data transfer rate} of
	a communications channel under ideal conditions.  The total
	capacity of a channel may be shared between several
	independent data streams using some kind of {multiplexing}, in
	which case, each stream's data rate may be limited to a fixed
	fraction of the total capacity.

	(2001-05-22)

CAPI

	1. {Calendar Application Programming Interface}.

	2. <cryptography> {Cryptographic Application Programming
	Interface}.

	3. <networking> {Common ISDN Application Programming
	Interface}.

Cap'n Crunch

	{Captain Crunch}

Captain Abstraction

	The champion of the principles of {abstraction} and
	modularity, who protects unwary students on {MIT}'s course
	{6.001} from the nefarious designs of Sergeant Spaghetticode
	and his vile {concrete} programming practices.

	See also {spaghetti code}.

	(1994-11-22)

Captain Crunch

	1. <person> ("Cap'n Crunch") An early 1970s
	{hacker}/{phreaker}/{phacker} who used a free whistle included
	with "Cap'n Crunch" breakfast cereal to fake pay phone system
	tones and make large quantities of free phone calls.  Also
	alludes to "{crunch}".

	{(http://well.com/user/crunch/)}.

	2. (After the above) {wardialer}.

	3. Reportedly, a program which {crash}es a computer by
	overloading the {interrupt} {stack}.

	(1998-08-25)

CAPTCHA

	<security> A type of test used to determine whether a request
	to a {web site} comes from a human or a computer program,
	typically by asking the user to perform some kind of {image
	recognition} task such as reading distorted text.  The term
	was coined in 2000 by Luis von Ahn, Manuel Blum, Nicholas
	J. Hopper (all of {Carnegie Mellon University}) and John
	Langford (of {IBM}) as a contrived acronym for "Completely
	Automated Public Turing test to tell Computers and Humans
	Apart".  CAPTCHA aims to prevent software tools from
	performing actions which might degrade the service, such as
	registering user accounts or automating the playing of a game.

	(2009-01-02)

CAR

	{Contents of Address Part of Register}

card

	1. <hardware> A circuit board.

	2. <storage> {SD card}.

	3. <history> A {punched card}.

	4. <hypertext> An alternative term for a {node} in a system
	(e.g. {HyperCard}, {Notecards}) in which the node size is
	limited.

Cardbox for Windows

	<database> A database handling program, especially useful for
	scholars and librarians.

	[Details?  Features?  Developer?  URL?]

	(1997-05-14)

Cardbus

	<hardware> The 32-bit version of the {PCMCIA} (PC Card) {bus}.

	[Spec?]

	(1996-08-20)

card creep

	{chip creep}

cardinality

	<mathematics> The number of elements in a set.  If two sets
	have the same number of elements (i.e. there is a {bijection}
	between them) then they have the same cardinality.  A
	cardinality is thus an {isomorphism class} in the {category}
	of sets.

	{aleph 0} is defined as the cardinality of the first
	{infinite} {ordinal}, {omega} (the number of {natural
	numbers}).

	(1995-03-29)

cardinal number

	The {cardinality} of some set.

CARDS

	Central Archive for Reusable Defense Software of the DoD.

card walloper

	<jargon> An {EDP} programmer who grinds out {batch programs}
	that do things like print people's paychecks.  Compare {code
	grinder}.

	See also {punched card}, {eighty-column mind}.

	[{Jargon File}]

	(2003-09-20)

Career Limiting Move

	<jargon> (CLM, Sun) Any action endangering one's future
	prospects of getting plum projects and raises, and possibly
	one's job.  E.g. "His Halloween costume was a parody of his
	manager.  He won the prize for "best CLM"."  A severe bug
	discovered by a customer might be a "CLM bug".

	(2000-08-09)

caret

	^

	Common: hat; control; uparrow; caret; {ITU-T}: circumflex.
	Rare: chevron; {INTERCAL}: shark (or shark-fin); to the ("to
	the power of"); fang; pointer (in Pascal).

careware

	/keir'weir/ (Or "{charityware}") {Shareware} for which either
	the author suggests that some payment be made to a nominated
	charity or a levy directed to charity is included on top of
	the distribution charge.

	Compare {crippleware}.

	[{Jargon File}]

	(1994-12-16)

cargo cult programming

	<programming, humour> A style of (incompetent) programming
	dominated by ritual inclusion of code or program structures
	that serve no real purpose.  A cargo cult programmer will
	usually explain the extra code as a way of working around some
	bug encountered in the past, but usually neither the bug nor
	the reason the code apparently avoided the bug was ever fully
	understood (compare {shotgun debugging}, {voodoo
	programming}).

	The term "cargo cult" is a reference to aboriginal religions
	that grew up in the South Pacific after World War II.  The
	practices of these cults centre on building elaborate mockups
	of aeroplanes and military style landing strips in the hope of
	bringing the return of the god-like aeroplanes that brought
	such marvelous cargo during the war.  Hackish usage probably
	derives from Richard Feynman's characterisation of certain
	practices as "cargo cult science" in his book "Surely You're
	Joking, Mr. Feynman" (W. W. Norton & Co, New York 1985, ISBN
	0-393-01921-7).

	[{Jargon File}]

	(2002-05-28)

Caribou CodeWorks

	<company> The company which sells {QTRADER}.

	Director of Marketing: Norm Larsen <wwcoinc@winternet.com>.

	(1995-11-05)

Carl Friedrich Gauss

	<person> A German mathematician (1777 - 1855), one of all time
	greatest.  Gauss discovered the {method of least squares} and
	{Gaussian elimination}.

	Gauss was something of a child prodigy; the most commonly told
	story relates that when he was 10 his teacher, wanting a rest,
	told his class to add up all the numbers from 1 to 100.  Gauss
	did it in seconds, having noticed that 1+...+100 = 100+...+1 =
	(101+...+101)/2.

	He did important work in almost every area of mathematics.
	Such eclecticism is probably impossible today, since further
	progress in most areas of mathematics requires much hard
	background study.

	Some idea of the range of his work can be obtained by noting
	the many mathematical terms with "Gauss" in their names.  E.g.
	{Gaussian elimination} ({linear algebra}); {Gaussian primes}
	(number theory); {Gaussian distribution} (statistics); {Gauss}
	[unit] (electromagnetism); {Gaussian curvature} (differential
	geometry); {Gaussian quadrature} (numerical analysis);
	{Gauss-Bonnet formula} (differential geometry); {Gauss's
	identity} ({hypergeometric functions}); {Gauss sums} ({number
	theory}).

	His favourite area of mathematics was {number theory}.  He
	conjectured the {Prime Number Theorem}, pioneered the {theory
	of quadratic forms}, proved the {quadratic reciprocity
	theorem}, and much more.

	He was "the first mathematician to use {complex numbers} in a
	really confident and scientific way" (Hardy & Wright, chapter
	12).

	He nearly went into architecture rather than mathematics; what
	decided him on mathematics was his proof, at age 18, of the
	startling theorem that a regular N-sided polygon can be
	constructed with ruler and compasses if and only if N is a
	power of 2 times a product of distinct {Fermat primes}.

	(1995-04-10)

Carnegie Mellon University

	<body, education> (CMU) A university in Pittsburgh,
	Pennsylvania.  {School of Computer Science
	(http://cs.cmu.edu/Web/FrontDoor.html)}.

	(1997-06-23)

carpal tunnel syndrome

	{overuse strain injury}

Carriage Return

	<character> (CR, Control-M, {ASCII} 13) The character which
	causes the {cursor} to move to the left margin, often used
	with {line feed} to start a new line of output.

	Encoded in {C} and {Unix} as "\r".

	(1996-06-24)

Carrierless Amplitude/Phase Modulation

	<communications> (CAP) A design of {Asymmetric Digital
	Subscriber Line} {transceiver} developed by {Bell Labs}.  CAP
	was the first ADSL design to be commercially deployed and, as
	of August 1996, was installed on more lines than any other.

	CAP is a variation of {Quadrature Amplitude Modulation}, the
	modulation used by most existing {modems} in 1997.  With CAP,
	the three channels ({POTS}, downstream data and upstream data)
	are supported by splitting the frequency spectrum.  Voice
	occupies the standard 0-4 Khz frequency band, followed by the
	upstream channel and the high-speed downstream channel.

	(1997-10-08)

carrier scanner

	<security> (Or "wardialer") A program which uses a {modem} to
	dial a series of phone numbers (say, from 770-0000 to
	770-9999), and keeps a log of what phone numbers answer with a
	modem {carrier}.  The results of such a search were generally
	used by people looking to engage in {random} mischief in
	{random} machines.

	Since the 1980s, wardialers have generally fallen into disuse,
	partly because of easily available "{caller ID}" technology,
	partly because fax machines are now in wide use and would
	often be logged as a {carrier} by a wardialer, and partly
	because there are so many new and more interesting venues for
	computerised mischief these days.

	(1997-03-16)

carrier signal

	<communications> A continuous signal of a single frequency
	capable of being modulated by a second, data-carrying signal.
	In radio communication, the two common kinds of modulation are
	{amplitude modulation} and {frequency modulation}.

	(1995-03-01)

Cartesian coordinates

	<mathematics, graphics> (After Renee Descartes, French
	philosopher and mathematician) A pair of numbers, (x, y),
	defining the position of a point in a two-dimensional space by
	its perpendicular projection onto two axes which are at right
	angles to each other.  x and y are also known as the
	{abscissa} and {ordinate}.

	The idea can be generalised to any number of independent axes.

	Compare {polar coordinates}.

	(1997-07-08)

Cartesian product

	<mathematics> (After Renee Descartes, French philosper and
	mathematician) The Cartesian product of two sets A and B is
	the set

		A x B = {(a, b) | a in A, b in B}.

	I.e. the product set contains all possible combinations of one
	element from each set.  The idea can be extended to products
	of any number of sets.

	If we consider the elements in sets A and B as points along
	perpendicular axes in a two-dimensional space then the
	elements of the product are the "{Cartesian coordinates}" of
	points in that space.

	See also {tuple}.

	(1995-03-01)

CAS

	1. <hardware> {Column Address Strobe}.

	2. <communications> (channel associated signaling) {in-band
	signalling}.

CAS 8051 Assembler

	An experimental one-pass {assembler} for the 8051 with
	{C}-like syntax by Mark Hopkins.  Most features of a modern
	assembler included except {macros} (soon to be added).
	Requires an {ANSI-C} compiler.  Ported to {MS-DOS}, {Ultrix},
	{Sun-4}.  (July 1993).

	Version 1.2.  Assembler/linker, disassembler, documentation,
	examples.

	{(ftp://lyman.pppl.gov/pub/8051/assem)},
	{(ftp://nic.funet.fi/pub/microprocs/MCS-51/csd4-archive/assem)}.
	{Other software tools and applications
	(ftp://nic.funet.fi/pub/compilers/8051/)}.

	(1995-01-26)

cascade

	1. <compiler> A huge volume of spurious error-messages output
	by a {compiler} with poor {error recovery}.  Too frequently,
	one trivial {syntax} error (such as a missing ")" or "}")
	throws the {parser} out of synch so that much of the remaining
	program text, whether correct or not, is interpreted as
	garbaged or ill-formed.

	2. <messaging> A chain of {Usenet} followups, each adding some
	trivial variation or riposte to the text of the previous one,
	all of which is reproduced in the new message; an {include
	war} in which the object is to create a sort of communal
	graffito.

	3. <networking> A collection of interconneced networking
	devices, typically {hubs}, that allows those devices to act
	together as a {logical} {repeater}.

	[{Jargon File}]

	(1997-07-17)

Cascading Style Sheets

	<World-Wide Web> (CSS) An extension to {HTML} to allow styles,
	e.g. colour, {font}, size to be specified for certain elements
	of a {hypertext} document.  Style information can be included
	in-line in the HTML file or in a separate CSS file (which can
	then be easily shared by multiple HTML files).  Multiple
	levels of CSS can be used to allow selective overriding of
	styles.

	{(http://w3.org/Style/CSS/)}.

	(2000-07-26)

CASE

	1. {Computer Aided Software Engineering}.

	2. {Common Application Service Element}.

case

	1. <programming> {switch statement}.

	2. <character> Whether a character is a capital letter ("upper
	case" - ABC..Z) or a small letter ("lower case" - abc..z).

	The term case comes from the printing trade when the use of
	moving type was invented in the early Middle Ages (Caxton or
	Gutenberg?) and the letters for each {font} were stored in a
	box with two sections (or "cases"), the upper case was for the
	capital letters and the lower case was for the small letters.
	The Oxford Universal Dictionary of Historical Principles (Feb
	1993, reprinted 1952) indicates that this usage of "case" (as
	the box or frame used by a compositor in the printing trade)
	was first used in 1588.

	(1996-03-01)

case and paste

	<programming> (From "{cut and paste}") The addition of a new
	{feature} to an existing system by selecting the code from an
	existing feature and pasting it in with minor changes.  This
	usually results in gross violation of the fundamental
	programming tenet, {Don't Repeat Yourself}.

	Common in telephony circles because most operations in a
	telephone switch are selected using "case" statements.  Leads
	to {software bloat}.

	In some circles of {Emacs} users this is called "programming
	by Meta-W", because Meta-W is the Emacs command for copying a
	block of text to a {kill buffer} in preparation to pasting it
	in elsewhere.  The term is condescending, implying that the
	programmer is acting mindlessly rather than thinking carefully
	about what is required to integrate the code for two similar
	cases.

	At {DEC}, this is sometimes called "clone-and-hack" coding.

	[{Jargon File}]

	(1996-03-01)

case based reasoning

	<artificial intelligence> (CBR) A technique for problem
	solving which looks for previous examples which are similar to
	the current problem.  This is useful where {heuristic}
	{knowledge} is not available.

	There are many situations where experts are not happy to be
	questioned about their knowledge by people who want to write
	the knowledge in rules, for use in {expert systems}.  In most
	of these situations, the natural way for an expert to describe
	his or her knowledge is through examples, stories or cases
	(which are all basically the same thing).  Such an expert will
	teach trainees about the expertise by apprenticeship, i.e. by
	giving examples and by asking the trainees to remember them,
	copy them and adapt them in solving new problems if they
	describe situations that are similar to the new problems.  CBR
	aims to exploit such knowledge.

	Some key research areas are efficient indexing, how to define
	"similarity" between cases and how to use temporal
	information.

	(1996-05-28)

CASE Data Interchange Format

	(CDIF) An emerging standard for interchange of data between
	{CASE} tools.

	(1994-11-03)

CASE framework

	A set of products and conventions that allow CASE tools to be
	integrated into a coherent environment.

case insensitive

	{case sensitivity}

Case Integration Services

	<standard, programming> (CIS) A committee formed to discuss
	{CASE} tool integration standards related to {ATIS}.

	(1994-10-25)

CASE*Method

	An analysis and design method from {Oracle} targeted at
	information management applications.

	(1994-10-28)

case sensitive

	{case sensitivity}

case sensitivity

	<text> Whether a text matching operation distinguishes
	upper-{case} (capital) letters from lower case (is "case
	sensitive") or not ("case insensitive").

	Case in file names should be preserved (for readability) but
	ignored when matching (so the user doesn't have to get it
	right).  {MS-DOS} does not preserve case in file names, {Unix}
	preserves case and matches are case sensitive.

	Any decent {text editor} will allow the user to specify
	whether or not text searches should be {case sensitive}.

	Case sensitivity is also relevant in programming (most
	programming languages distiguish between case in the names of
	{identifiers}), and addressing ({Internet} {domain names} are
	case insensitive but {RFC 822} local {mailbox} names are case
	sensitive).

	Case insensitive operations are sometimes said to "fold case",
	from the idea of folding the character code table so that
	upper and lower case letters coincide.  The alternative "smash
	case" is more likely to be used by someone who considers this
	behaviour a {misfeature} or in cases where one case is
	actually permanently converted to the other.

	"{MS-DOS} will automatically smash case in the names of all
	the files you create".

	(1997-07-09)

CASE SOAP III

	Version of SOAP assembly language for IBM 650.  Listed in
	CACM 2(5):16 (May 1959).

case statement

	{switch statement}

CASE tools

	Software tools to help in the application of CASE methods to a
	software project.

cashe

	<spelling> It's spelled "{cache}".

	(1996-12-13)

CAST

	{Computer Aided Software Testing}

cast

	{explicit type conversion}

casters-up mode

	[IBM, probably from slang belly up] Yet another synonym for
	"broken" or "down".  Usually connotes a major failure.  A
	system (hardware or software) which is "down" may be already
	being restarted before the failure is noticed, whereas one
	which is "casters up" is usually a good excuse to take the
	rest of the day off (as long as you're not responsible for
	fixing it).

	[{Jargon File}]

casting the runes

	<jargon> What a {guru} does when you ask him or her to run a
	particular program because it never works for anyone else;
	especially used when nobody can ever see what the guru is
	doing different from what J. Random Luser does.

	Compare {incantation}, {runes}, {examining the entrails}; also
	see the {AI koan} about Tom Knight.

	(1997-12-26)

CAT

	Common Abstract Tree Language.  R. Voeller & Uwe Schmidt, U
	Kiel, Germany 1983.  Universal intermediate language, used by
	Norsk Data in their family of compilers.  "A Multi-Language
	Compiler System with Automatically Generated Codegenerators,
	U. Schmidt et al, SIGPLAN Notices 19(6):202-2121 (June 1984).

	[{Jargon File}]

cat

	<tool> (From "catenate") {Unix}'s command which copies one or
	more entire files to the screen or some other output sink
	without pause.

	See also {dd}, {BLT}.

	Among {Unix} fans, cat is considered an excellent example of
	user-interface design, because it delivers the file contents
	without such verbosity as spacing or headers between the files
	(the {pr} command can be used to do this), and because it does
	not require the files to consist of lines of text, but works
	with any sort of data.

	Among Unix haters, cat is considered the {canonical} example
	of *bad* user-interface design, because of its woefully
	unobvious name.  It is far more often used to {blast} a file
	to standard output than to concatenate files.  The name "cat"
	for the former operation is just as unintuitive as, say,
	LISP's {cdr}.

	Of such oppositions are {holy wars} made.

	(1994-11-29)

Cat 3

	{Category 3}

Cat 5

	{Category 5}

catatonic

	<jargon> A description of a system that gives no indication
	that it is still working.  This might be because it has
	crashed without being able to give any error message or
	because it is busy but not designed to give any feedback.

	Compare {buzz}.

	[{Jargon File}]

	(2004-08-19)

CATE

	{Computer Aided Test Engineering}.

Categorical Abstract Machine Language

	<language> (Originally "CAML" - Categorical Abstract Machine
	Language) A version of {ML} by G. Huet, G. Cousineau, Ascander
	Suarez, Pierre Weis, Michel Mauny and others of {INRIA} and
	{ENS}.  CAML is intermediate between {LCF ML} and {SML} [in
	what sense?].  It has {first-class} functions, {static type
	inference} with {polymorphic} types, user-defined {variant
	types} and {product types}, and {pattern matching}.  It is
	built on a proprietary run-time system.

	The CAML V3.1 implementation added {lazy} and {mutable} data
	structures, a "{grammar}" mechanism for interfacing with the
	{Yacc} {parser generator}, {pretty-printing} tools,
	high-performance {arbitrary-precision} arithmetic, and a
	complete library. CAML V3 is often nicknamed "heavy CAML",
	because of its heavy memory and CPU requirements compared to
	{Caml Light}.

	in 1990 Xavier Leroy and Damien Doligez designed a new
	implementation called {Caml Light}, freeing the previous
	implementation from too many experimental high-level features,
	and more importantly, from the old Le_Lisp back-end.

	Following the addition of a {native-code} compiler and a
	powerful {module} system in 1995 and of the {object} and
	{class} layer in 1996, the project's name was changed to
	{Objective Caml}.

	["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,
	1989].

	(2003-04-12)

category

	<theory> A category K is a collection of objects, obj(K), and
	a collection of {morphisms} (or "{arrows}"), mor(K) such that

	1. Each morphism f has a "typing" on a pair of objects A, B
	written f:A->B.  This is read 'f is a morphism from A to B'.
	A is the "source" or "{domain}" of f and B is its "target" or
	"{co-domain}".

	2. There is a {partial function} on morphisms called
	{composition} and denoted by an {infix} ring symbol, o.  We
	may form the "composite" g o f : A -> C if we have g:B->C and
	f:A->B.

	3. This composition is associative: h o (g o f) = (h o g) o f.

	4. Each object A has an identity morphism id_A:A->A associated
	with it.  This is the identity under composition, shown by the
	equations

	 id__B o f = f = f o id__A.

	In general, the morphisms between two objects need not form a
	{set} (to avoid problems with {Russell's paradox}).  An
	example of a category is the collection of sets where the
	objects are sets and the morphisms are functions.

	Sometimes the composition ring is omitted.  The use of
	capitals for objects and lower case letters for morphisms is
	widespread but not universal.  Variables which refer to
	categories themselves are usually written in a script font.

	(1997-10-06)

Category 3

	<hardware> (Cat 3, or "voice grade") An American Standards
	Institute standard for {UTP} cables.  Used, e.g., for
	{100BaseVG} network cabling.

	(1998-06-30)

Category 5

	<hardware> (Cat 5) An American Standards Institute standard
	for {UTP} cables.  Used, e.g., for {100BaseTX} cabling.

	(1998-06-30)

CA-Telon

	<application> A {Computer Aided Software Engineering} (CASE)
	tool for designing, generating and maintaining {COBOL} and
	{PL/I} {application programs}.  Telon was developed by
	{Pansophic} Systems who were bought by {Computer Associates}
	in 1991, whereupon it was renamed CA-Telon.

	It supports high-level, non-{prodedural} design and
	prototyping, combined with automatic {code generation}.  There
	are {mainframe} and {PC} versions.  The generated COBOL
	applications can execute in {AIX}, {HP-UX}, {VSE}, {OS/400}
	for the {AS/400}, {PC-DOS}, or {OS/2}.

	(2000-01-19)

cathode ray tube

	<hardware> (CRT) An electrical device for displaying images by
	exciting phosphor dots with a scanned electron beam.  CRTs are
	found in computer {VDUs} and {monitors}, televisions and
	oscilloscopes.  The first commercially practical CRT was
	perfected on 29 January 1901 by Allen B DuMont.

	A large glass envelope containing a negative electrode (the
	cathode) emits electrons (formerly called "cathode rays") when
	heated, as in a {vacuum tube}.  The electrons are accelerated
	across a large voltage gradient toward the flat surface of
	the tube (the screen) which is covered with phosphor.  When an
	electron strikes the phosphor, light is emitted.  The electron
	beam is deflected by electromagnetic coils around the outside
	of the tube so that it scans across the screen, usually in
	horizontal stripes.  This scan pattern is known as a {raster}.
	By controlling the current in the beam, the brightness at any
	particular point (roughly a "{pixel}") can be varied.

	Different phosphors have different "{persistence}" - the
	length of time for which they glow after being struck by
	electrons.  If the scanning is done fast enough, the eye sees
	a steady image, due to both the persistence of the phospor and
	of the eye itself.  CRTs also differ in their {dot pitch},
	which determines their spatial {resolution}, and in whether
	they use {interlace} or not.

	(1994-11-17)

CATIA

	<tool, CAD, product> A {CAD}/CAM system produced by Dassault
	Systemes and sold by {IBM}.  CATIA is used heavily in the car
	and aerospace industries.  It runs on various {Unix} platforms
	and {Windows NT}.

	{(http://catia.ibm.com/catmain.html)}.

	(2002-06-12)

cationic cocktail

	<hardware> (Or "Downy cocktail") Diluted fabric softener
	sprayed on computer room carpets to prevent static electricity
	from being built up by feet shuffling on carpet.

	The {canonical} cationic cocktail is one part unscented liquid
	fabric softener (in the US, usually "Downy" brand) to five
	parts water.

	"Cationic" is the chemical term for the most common active
	ingredient in fabric softeners.  The use of the term
	"cocktail" may be influenced by its use in other jargons,
	especially pharmacological and chemical, to denote a mixture
	which, like cationic cocktail, typically contains no alcohol
	and would be unwise to drink.

	(1998-04-04)

C/ATLAS

	<language> A DoD test language.  It is a variant of {ATLAS}.

	(1995-05-01)

CATNIP

	{Common Architecture for Next Generation Internet Protocol}

CATO

	Fortran-like CAI language for PLATO system on CDC 1604.  "CSL
	PLATO System Manual", L.A. Fillman, U Illinois, June 1966.

Cauchy sequence

	<mathematics> A sequence of elements from some {vector space}
	that converge and stay arbitrarily close to each other (using
	the {norm} definied for the space).

	(2000-03-10)

cause-effect graphing

	<programming> A testing technique that aids in selecting, in a
	systematic way, a high-yield set of test cases that logically
	relates causes to effects to produce test cases.  It has a
	beneficial side effect in pointing out incompleteness and
	ambiguities in specifications.

	(1996-05-10)

CAV

	{Constant Angular Velocity}

Cayenne Software

	<company> The company formed when {CADRE} merged with {Bachman
	Information Systems} in July 1996.

	{(http://cayennesoft.com/)}.

	[Details?]

	(2001-04-30)

CAYLEY

	<symbolic mathematics, tool> A {symbolic mathematics} system
	for {group theory} written by John Cannon of the {University
	of Sydney}, Australia in 1976.

	Cayley was used at about 100 sites but has been superseded by
	a much more general system, {Magma}.

	["An Introduction to the Group Theory Language CAYLEY", J.
	Cannon, Computational Group Theory, M.D. Atkinson ed, Academic
	Press 1984, pp. 148-183].

	Latest version: V3.7, for {Sun}, {Apollo}, {VAX}/{VMS}.

	(2000-09-03)

cb

	{C Beautifier}

CBASIC

	A {BASIC} compiler by Gordon Eubanks, now at {Symantec}.  It
	evolved from/into {EBASIC}.

	(1994-11-29)

CBBS

	{bulletin board system}

C-BC

	<language> A {strongly typed} version of {BC} by Mark Hopkins,
	with expanded {C}-like {syntax}, more base types and the
	ability to form {array} and {pointer} types of any dimension
	and to allocate/free arrays at {run time}.

	Most {POSIX-BC} features are supported, except that
	{functions} must be declared consistently and declared before
	first use.  {String} handling is slightly different.  It
	requires an {ANSI-C} compiler and runs under {MS-DOS} or
	{Unix}.

	Version: 1.1.

	Posted to {alt.sources} 1993-04-10.

	(1993-08-23)

CBD

	{component based development}

C Beautifier

	(cb) A {Unix} tool for reformatting {C} {source} code.

	{Unix manual page}: cb(1).

CBIR

	<image> {content-based information retrieval}.

	(1995-11-23)

CBN

	{call-by-name}

CBR

	{case based reasoning}

CBT

	{Computer-Based Training}

CBV

	{call-by-value}

cbw

	{Crypt Breakers Workbench}

cc

	<networking> The {country code} for the Cocos (Keeling)
	Islands.

	(1999-01-27)

CC++

	{Compositional C++}

C/C++

	1. {Borland C/C++}.

	2. {Watcom C/C++}.

	3. Either {C} or {C++}.

CCalc

	A {symbolic mathematics} system for {MS-DOS}, available from
	{Simtel}.

	(1995-04-12)

CCD

	{Charge-Coupled Device}

CCIRN

	Coordinating Committee for Intercontinental Research Networks.

CCITT

	Commite' Consultatif International de Telegraphique et
	Telephonique.  (International consultative committee on
	telecommunications and Telegraphy).

	CCITT changed its name to {ITU-T} on 1 March 1993.

	(1994-11-03)

CCITT HIgh-Level Language

	<language> (CHILL) A {real-time} language widely used in
	telecommunications.  CHILL was developed in the 1970s and
	improved in 1984, 1988, 1992, and 1996.  It is used in several
	countries including Germany, Norway, Brasil, and South Korea.

	{Cygnus} are developing a compiler based on {gcc}.

	{(http://www1.informatik.uni-jena.de/languages/chill/chill.htm)}.

	["An Analytical Description of CHILL, the CCITT High Level
	Language", P. Branquart, LNCS 128, Springer 1982].

	["CHILL User's Manual", ITU, 1986, ISBN 92-61-02601-X.
	ISO-9496 (1988?)].

	(1997-01-20)

CCL

	1. Coral Common LISP.

	2. Computer Control Language.  English-like query language
	based on COLINGO, for IBM 1401 and IBM 1410.

CCLU

	Cambridge CLU.  {CLU} extended to support {concurrency},
	distributed programming and {remote procedure call}, by
	G. Hamilton et al at {CUCL}.

	E-mail: Jean Bacon <jmb@cl.cam.ac.uk>.

	(1994-10-13)

ccmail

	It's written {cc:mail}.

cc:mail

	<tool, product> Commercial {electronic mail} software by
	{Lotus Corporation} for {Microsoft Windows}.

	(1995-03-14)

CCP

	1. <language> {Concurrent Constraint Programming}.

	2. {Command Control Processor}.

CCR

	1. {condition code register}.

	2. (Database) {concurrency control and recovery}.

CCS

	1. <networking> {Common Communication Services}.

	2. <language, parallel> {Calculus of Communicating Systems}.

	3. <history> {Computer Conservation Society}.

	4. <storage, standard> {Common Command Set}.

	5. <communications> {centum call second}.

CCSP

	{Contextually Communicating Sequential Processes}

CCTA

	The Government Centre for Information Systems.

	(Originally "Central Computer and Telecommunications Agency").

	CCTA is part of the Office of Public Service and Science,
	which works to improve government's services to the public.
	They are responsible for stimulating and promoting the
	effective use of Information Systems in support of the
	efficient delivery of business objectives and improved quality
	of services by the public sector.

	CCTA had to change its name as it was not an agency in the
	"Next Steps" sense.  The letters were retained as customers
	were familiar with them.

	{(http://open.gov.uk/)}.

	E-mail: <info@open.gov.uk>.

	Address: Norwich, UK.

	(1995-01-18)

CD

	{Compact Disc}

cd

	1. <operating system> {change directory}.

	2. <networking> The {country code} for the Democratic Republic
	of the Congo (formerly Zaire, {zr}).

	(1999-01-27)

CDA

	1. <file format> {Compound Document Architecture}.

	2. <legal> {Communications Decency Act}.

CD burner

	{Compact Disc writer}

CDC

	{Control Data Corporation}

CDC 6600

	<computer> A {mainframe} computer from {Control Data
	Corporation}, first delivered in 1964.  It is generally
	considered to be the first successful {supercomputer}, about
	three times faster than {STRETCH}.  Its successor was the {CDC
	7600}.

	(2007-03-01)

CDDI

	{Copper Distributed Data Interface}

CDD/Plus

	{DEC}'s {CASE} {repository}.

CDE

	1. C Development environment from {IDE}.

	2. {Common Desktop Environment}.

	3. {Co-operative Development Environment}.

	(1996-07-11)

CDF

	Common Data Format.  A library and toolkit for
	multi-dimensional data sets.

CD-i

	{Compact Disc interactive}

CDIF

	{CASE Data Interchange Format}

CDL

	1. Computer Definition [Design?] Language.  A hardware
	description language.  "Computer Organisation and
	Microprogramming", Yaohan Chu, P-H 1970.

	2. Command Definition Language.  Portion of ICES used to
	implement commands.  Sammet 1969, p.618-620.

	3. Compiler Description Language.  C.H.A. Koster, 1969.
	Intended for implementation of the rules of an affix grammar
	by recursive procedures.  A procedure may be a set of
	tree-structured alternatives, each alternative is executed
	until one successfully exits.  Used in a portable COBOL-74
	compiler from MPB, mprolog system from SzKI, and the Mephisto
	chess computer.  "CDL: A Compiler Implementation Language", in
	Methods of Algorithmic Language Implementation, C.H.A. Koster,
	LNCS 47, Springer 1977, pp.341-351.  "Using the CDL Compiler
	Compiler", C.H.A. Koster, 1974.  Versions: CDL2, CDLM used at
	Manchester.

	4. Common Design Language.  "Common Design Language", IBM,
	Software Engineering Inst, Sept 1983.

	5. Control Definition Language.  Ideas which contributed to
	Smalltalk.

	["Control Structures for Programming Languges", David
	A. Fisher, PhD Thesis, CMU 1970].

CDM

	1. {Content Data Model}

	2. {Code Division Multiplexing}

CDMA

	{Code Division Multiple Access}

CDP1802

	{RCA 1802}

CDPD

	{Cellular Digital Packet Data}

CDR

	1. <networking> {Committed Data Rate}.

	2. <programming> {Contents of Decrement part of Register}.

	3. <storage> {Compact Disc Recordable} (CD-R).

	4. <telecommunications> {Call Data Record}.

CD-Read-Write

	{Compact Disc Rewritable}

CD-Rewritable

	{Compact Disc Rewritable}

CD-ROM

	{Compact Disc Read-Only Memory}

CD-ROM drive

	{Compact Disc Read-Only Memory}

CD-RW

	{Compact Disc Rewritable}

CDS

	{Concrete Data Structure}

cd tilde

	/C-D til-d*/ To go home.  From the {Unix} {C shell} and
	Korn-shell command "cd ~", which takes one to one's "$HOME"
	directory.  "cd" with no arguments does the same thing.

	[{Jargon File}]

	(1994-10-28)

CDW

	{data warehouse}

CE

	{IBM Customer Engineer}

Cecil

	AN {object-oriented} language combining {multi-methods} with a
	classless object model, object-based {encapsulation} and
	optional {static type checking}.  It distinguishes between
	{subtyping} and {code inheritance}.  Includes both explicit
	and implicit parameterisation of objects, types, and methods.

	{(ftp://cs.washington.edu/pub/chambers/cecil-spec.ps.Z)}.

	["The Cecil Language: Specification and Rationale",
	C. Chambers, TR 93-03-05, U Wash (Mar 1993)].

	(1994-10-28)

Cedar

	A superset of {Mesa}, from {Xerox PARC}, adding {garbage
	collection}, {dynamic types} and a universal pointer type (REF
	ANY).  Cedar is a large complex language designed for custom
	Xerox hardware and the Cedar {operating system}/environment.
	Data types are {atoms}, lists, ropes ("industrial strength"
	strings), conditions.  Multi-processing features include
	{threads}, {monitors}, {signals} and catch phrases.  It was
	used to develop the Cedar integrated programming environment.

	["A Description of the Cedar Language", Butler Lampson, Xerox
	PARC, CSL-83-15 (Dec 1983)].

	["The Structure of Cedar", D. Swinehart et al, SIGPLAN Notices
	20(7):230-244 (July 1985)].

	(1995-01-26)

CEEMAC+

	Graphics language for DOS 3.3 on {Apple II}.

CEI-PACT

	Central European Initiative on Parallel Computation.

Celeron

	<processor> {Intel Corporation}'s trade name for its family of
	{Pentium II} {microprocessors} meant for use in low-end
	computers.

	The Celeron is constructed on the 0.25 micron Deschutes base.
	{Clock rates} of 266, 300 and 333 {MHz} are supported.  It is
	built on the same {daughterboard} as the Pentium II without
	the black plastic case and {heat sink}.  Four Celeron models
	are in production as of October 1998.  The 266 and 300 MHz
	models are essentially Pentium II {CPUs} without the Level 2
	{cache} {RAM}.  The 300A and 333 MHz Celerons include 128k of
	Level 2 cache.

	A special mounting bracket on the motherboard is used to
	secure the Celeron in place in its standard 242-pin Slot 1
	socket.  Intel calls the caseless design SEPP (Single Edge
	Processor Package) to differentiate it from the Pentium II SEC
	(Single Edge Cartridge).  Some believe that the real purpose
	for the different mounting configurations is to prevent users
	from placing lower cost processors onto Pentium II
	motherboards.

	A Celeron is about one third the cost of a similar speed
	Pentium II.  Hardware {hackers} claim that the Celeron 300
	without Level 2 cache could be {overclocked} to perform as
	well as a Pentium II at a fraction of the price.

	{(http://intel.com/Celeron/)}.

	{Tom's Hardware (http://www2.tomshardware.com/cpuslot1.html)}.

	(1998-10-06)

CELIP

	A cellular language for {image processing}.

	["CELIP: A cellular Language for Image Processing",
	W. Hasselbring <willi@informatik.uni-essen.de>, Parallel
	Computing 14:99-109 (1990)].

	(1994-12-05)

cell

	1. <spreadsheet> In a {spreadsheet}, the intersection of a row
	a column and a sheet, the smallest addressable unit of data.
	A cell contains either a constant value or a {formula} that is
	used to calculate a value.  The cell has a {format} that
	determines how to display the value.  A cell can be part of a
	{range}.  A cell is usually referred to by its column
	(labelled by one or more letters from the sequence A, B, ...,
	Z, AA, AB, ..., AZ, BA, BB, ..., BZ, ... ) and its row number
	counting up from one, e.g. cell B3 is in the second column
	across and the third row down.  A cell also belongs to a
	particular sheet, e.g. "Sheet 1".

	2. <networking> {ATM}'s term for a {packet}.

	(2007-10-22)

Cellang

	See {Cellular}.

CELLAS

	CELLular ASsemblies.

	A {concurrent} {block-structured} language.

	[Mentioned in "Attribute Grammars", LNCS 323, p.97].

	(1994-12-05)

Cello

	{World-Wide Web} {browser} {client} for {IBM PCs}.  Runs under
	{Microsoft Windows}.

cell reference

	<spreadsheet> A string identifying a particular {cell} in a
	{spreadsheet}, possibly relative to the cell containing the
	reference.  A cell reference may be absolute (denoted by a "$"
	prefix in {Excel}) or relative (no prefix) in each dimension,
	thus, e.g. B$6 refers to the second cell across in the sixth
	row.  The distinction between absolute and relative is only
	significant when the referring cell is copied, e.g. if cell
	A1, which refers to B$6, is copied to cell B1, then B1 will
	refer to C6.

	If the reference is to a cell in a different sheet then it is
	prefixed with the target sheet's name and an exclamation
	mark.  E.g. "Sheet 1!B3".

	(2007-10-22)

CELLSIM

	<application> A program for modelling populations of
	biological cells.

	["CELLSIM II User's Manual", C.E. Donaghey, U Houston. Sep
	1975].

	(1994-12-05)

CEll Space Simulation Language

	<language> (CESSL) A language for simulating {cellular space
	models}.

	["The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS
	Dept, U Michigan, Sept 1971].

	(1994-12-14)

Cellular

	<language, cellular automaton> A system for {cellular
	automaton} programming by J Dana Eckart
	<dana@faculty.cs.runet.edu>.  Cellular includes a {byte-code
	compiler}, {run-time system}, and a viewer.

	Latest version: 2.0, as of 1993-04-03.

	Posted to comp.sources.unix, volume 26.

	See also {Cellang}.

	(2000-10-07)

cellular automata

	{cellular automaton}

cellular automaton

	<algorithm, parallel> (CA, plural "- automata") A regular
	spatial lattice of "cells", each of which can have any one of
	a finite number of states.  The state of all cells in the
	lattice are updated simultaneously and the state of the entire
	lattice advances in discrete time steps.  The state of each
	cell in the lattice is updated according to a local rule which
	may depend on the state of the cell and its neighbors at the
	previous time step.

	Each cell in a cellular automaton could be considered to be a
	{finite state machine} which takes its neighbours' states as
	input and outputs its own state.

	The best known example is J.H. Conway's game of {Life}.

	{FAQ
	(http://alife.santafe.edu/alife/topics/cas/ca-faq/ca-faq.html)}.

	{Usenet} newsgroups: {news:comp.theory.cell-automata},
	{news:comp.theory.self-org-sys}.

	(1995-03-03)

Cellular Digital Packet Data

	<communications, protocol> (CDPD) A wireless standard
	providing two-way, 19.2 kbps {packet} data transmission over
	exisiting {cellular telephone} channels.

	[Reference?]

	(1994-12-05)

cellular multiprocessing

	<architecture, parallel> (CMP) The partitioning of
	{processors} into separate computing environments running
	different {operating systems}.

	The term cellular multiprocessing appears to have been coined
	by {Unisys}, who are developing a system where computers
	communicate as clustered machines through a high speed {bus},
	rather than through communication {protocols} such as
	{TCP/IP}.

	The Unisys system is based on {Intel} processors, initially
	the {Pentium II Xeon} and moving on to the 64-bit {Merced}
	processors later in 1999.  It will be scalable from four up to
	32 processors, which can be clustered or partitioned in
	various ways.  For example a sixteen processor system could be
	configured as four {Windows NT} systems (each functioning as a
	four-processor {symmetric multiprocessing} system), or an
	8-way NT and 8-way {Unix} system.

	Supported operating systems will be {Windows NT}, {SCO}'s
	{Unixware} 7.0, Unisys' {SVR4} {Unix} and possibly the OS2200
	and MCP-AS {mainframe} operating systems (with the assistance
	of Unisys' own dedicated {chipset}).

	{(http://marketplace.unisys.com/ent/cmp.html)}.

	(1998-09-09)

Cellular Neural Network

	<architecture> (CNN) The CNN Universal Machine is a low cost,
	low power, extremely high speed {supercomputer} on a chip.  It
	is at least 1000 times faster than equivalent {DSP} solutions
	of many complex {image processing} tasks.  It is a stored
	program supercomputer where a complex sequence of image
	processing {algorithms} is programmed and downloaded into the
	chip, just like any digital computer.  Because the entire
	computer is integrated into a chip, no signal leaves the chip
	until the image processing task is completed.

	Although the CNN universal chip is based on analogue and logic
	operating principles, it has an on-chip analog-to-digital
	input-output interface so that at the system design and
	application perspective, it can be used as a digital
	component, just like a DSP.  In particular, a development
	system is available for rapid design and prototyping.
	Moreover, a {compiler}, an {operating system}, and a
	{user-friendly} CNN {high-level language}, like the {C}
	language, have been developed which makes it easy to implement
	any image processing algorithm.

	[Professor Leon Chua, University of California at Berkeley].

	(1995-04-27)

CELP

	<language> Computationally Extended Logic
	Programming.

	["Computationally Extended Logic Programming", M.C. Rubenstein
	et al, Comp Langs 12(1):1-7 (1987)].

	(1995-04-27)

CEN

	Conseil Européen pour la Normalisation.

	A body coordinating {standard}isation activities in the EEC
	and EFTA countries.

	(1994-12-14)

CENELEC

	<body, standard> The European Committee for Electrotechnical
	Standardization.  A body developing electrotechnical standards for
	the Single European Market / European Economic Area in order to
	reduce internal frontiers and trade barriers for electrotechnical
	products, systems and services.  CENELEC's 19 member countries and
	11 affiliate countries aim to adopt and implement the required
	standards, which are mostly identical to the {International
	Electrotechnical Commission} (IEC) standards.  CENELEC works in
	co-operation with {Comité Européen de Normalisation} (CEN) and
	{European Telecommunications Standards Institute} (ETSI).

	(1999-09-28)

centi-call second

	<spelling> No, it's {centum call second}.

	(2002-03-25)

central office

	<communications> The place where telephone companies terminate
	customer lines and locate switching equipment to interconnect
	those lines with other networks.

	(1995-03-20)

Central office exchange service

	<communications> (Centrex) A {PBX} service providing
	{switching} at the {central office} instead of at the company
	premises.  Typically, the telephone company owns and manages
	all the communications equipment necessary to implement the
	PBX and then sells various services to the company.

	(1999-10-27)

central processing unit

	<architecture, processor> (CPU, processor) The part of a
	computer which controls all the other parts.  Designs vary
	widely but the CPU generally consists of the {control unit},
	the {arithmetic and logic unit} (ALU), {registers}, temporary
	{buffers} and various other logic.

	The control unit fetches {instructions} from memory and
	decodes them to produce signals which control the other parts
	of the computer.  These signals cause it to transfer data
	between memory and ALU or to activate {peripherals} to perform
	input or output.

	Various types of memory, including {cache}, {RAM} and {ROM},
	are often considered to be part of the CPU, particularly in
	modern {microprocessors} where a single {integrated circuit}
	may contain one or more processors as well as any or all of
	the above types of memory.  The CPU, and any of these
	components that are in separate chips, are usually all located
	on the same {printed circuit board}, known as the
	{motherboard}.  This in turn is located in the {system unit}
	(sometimes incorrectly referred to as the "CPU").

	A {parallel computer} has several CPUs which may share other
	resources such as memory and peripherals.

	The term "processor" has to some extent replaced "CPU", though
	RAM and ROM are not logically part of the processor.

	{List of processors
	(http://lldn.timesys.com/complete_list_of_processors)}.

	(2007-04-02)

Centrex

	{Central office exchange service}

Centronics

	<company, hardware, printer> A company in Hudson N.H., USA,
	best known for designing the {parallel interface} for printers
	with the same name, found on many {microcomputers}.

	[Pin-out?]

	(1998-03-15)

Centrum voor Wiskunde en Informatica

	(CWI, Centre for Mathematics and Computer Science) An
	independent research institute active in the fields of
	mathematics and computer science.  CWI also aims to transfer
	new knowledge in these fields to society, trade and industry

	CWI is funded for 70 percent by NWO, the National Organisation
	for Scientific Research.  The remaining 30 percent is obtained
	through national and international programmes and contract
	research commissioned by industry.

	Address: Kruislaan 413, 1098 SJ Amsterdam, The Netherlands;
	P.O.Box 94079, 1090 GB Amsterdam, The Netherlands.

	Telephone: +31 (20) 5929 333.

	{(http://cwi.nl/)}.

	{(ftp://ftp.cwi.nl/pub/)}.

centum call second

	<unit> (CCS) A unit used (in North America) to quantify the
	total traffic running in a network.  1 CCS is 100
	call-seconds.  That means 1 CCS could be 2 calls of 50 seconds
	duration or 20 calls of 5 seconds duration.

	(2002-03-25)

century meltdown

	{Year 2000}

CEN/XFS

	{Extensions for Financial Services}

cepstra

	{cepstrum}

cepstrum

	<mathematics> (Coined in a 1963 paper by Bogert, Healey, and
	Tukey) The {Fourier transform} of the log-magnitude spectrum:

		fFt(ln( | fFt(window . signal) | ))

	This function is used in {speech recognition} and possibly
	elsewhere.  Note that the outer transform is NOT an inverse
	Fourier transform (as reported in many respectable DSP texts).

	[What's it for?]

	(1997-01-07)

CEPT

	{Comite Europeen des Postes et Telecommunications}

CER

	{Canonical Encoding Rules}

Ceramic Pin Grid Array

	<hardware, processor> (CPGA) A form of {Pin Grid Array}
	package used by {Cyrix III} {processors}.

	Compare {PPGA} and {FC-PGA}.

	[Other uses?]

	(2000-08-26)

Ceres workstation Oberon System

	<language, tool> A complete {Oberon} {compiler} written in
	{Oberon}.  Source to most of the complete Ceres workstation
	Oberon System, including the {National Semiconductor 32032}
	{code generator} is available.  Less of the low level system
	specific code is available.

	{(ftp://neptune.ethz.ch/Oberon/)}.

	(1994-12-14)

Cerf, Vint

	{Vint Cerf}

CERN

	<body> The European Laboratory for Particle Physics in
	Swizerland.

	{Tim Berners-Lee} invented the {World-Wide Web} while working
	at CERN.

	Other notable computing developments at CERN include {ADAMO},
	{Application Software Installation Server}, {CERNLIB},
	{cfortran.h}, {CHEOPS}, {CICERO}, {Cortex}, {EMDIR}, {HBOOK},
	{LIGHT}, {NFT}, {PATCHY}, {PL-11}, {Schoonschip}, {SHIFT},
	and {ZEBRA}.

	{CERN Home (http://cern.ch/)}.

	(2004-10-24)

CERNLIB

	<library> The {CERN} Program Library.

	(2004-09-01)

CERT

	{Computer Emergency Response Team}

Certificate Authority

	<cryptography, body> (CA or "Trusted Third Party") An entity
	(typically a company) that issues {digital certificates} to
	other entities (organisations or individuals) to allow them to
	prove their identity to others.  A Certificate Authority might
	be an external company such as {VeriSign} that offers digital
	certificate services or they might be an internal organisation
	such as a corporate {MIS} department.  The Certificate
	Authority's chief function is to verify the identity of
	entities and issue digital certificates attesting to that
	identity.

	The process uses {public key cryptography} to create a
	"network of trust".  If I want to prove my identity to you, I
	ask a CA (who you trust to have verified my identity) to
	encrypt a {hash} of my signed key with their {private key}.
	Then you can use the CA's {public key} to decrypt the hash and
	compare it with a hash you calculate yourself.  Hashes are
	used to decrease the amount of data that needs to be
	transmitted.  The hash function must be {cryptographically
	strong}, e.g. {MD5}.

	{(http://home.netscape.com/comprod/server_central/support/faq/certificate_faq.html#11)}.

	(1998-03-30)

CESP

	{Common ESP}

CESSL

	{CEll Space Simulation Language}

cextract

	<programming, tool> A {C} {prototype} extractor by Adam Bryant
	<adb@cs.bu.edu>.  cextract can generate {header files} for
	large multi-file C programs, and will automatically generate
	prototypes for all of the functions in such a program.  It can
	also generate a sorted list of all functions and their
	locations.  cextract version 1.7 works with both {ANSI C} and
	{K&R C} and runs under {Unix} and {VMS}.

	Posted to comp.sources.reviewed.

	(1992-11-03)

cf

	<networking> The {country code} for the Central African
	Republic.

	(1999-01-27)

CFD

	{Computational Fluid Dynamics}

CFML

	{ColdFusion Markup Language}

cforth

	A {Forth} {interpreter}.

	Posted to comp.sources.unix volume 1.

	(1994-11-29)

cfortran.h

	<library> A {transparent}, machine independent interface
	between {C} and {Fortran} routines and {global data},
	developed by Burkhard Burow at CERN.  It provides {macros}
	which allow the {C} {preprocessor} to translate a simple
	description of a C (Fortran) routine or global data into a
	Fortran (C) interface.

	Version 2.6 runs on {VAX}/{VMS}/{Ultrix}, {DECstation},
	{Silicon Graphics}, {IBM} {RS/6000}, {Sun}, {Cray}, {Apollo},
	{HP9000}, {LynxOS}, {f2c}, {NAG f90}.

	{(ftp://zebra.desy.de/cfortran/)}.

	cfortran.h was reviewed in RS/Magazine November 1992 and a
	user's experiences with cfortran.h are described in the Jan 93
	issue of Computers in Physics.

	(1992-04-12)

CFP

	1. {Constraint Functional Programming}.

	2. {Communicating Functional Processes}.

	3. Call For Papers (for a conference).

CFP92

	{SPEC CFP92}

cg

	<networking> The {country code} for Congo.

	(1999-01-27)

CGA

	{Color Graphics Adapter}

CGGL

	{Code-Generator Generator Language}

CGI

	1. <World-Wide Web> {Common Gateway Interface}.

	2. <graphics> {computer-generated imagery}.

	3. <company> A French {software engineering} vendor in the US.

	4. <company> {Computer Generation Incorporated}.

cgi-bin

	{Common Gateway Interface}

CGI Joe

	<job, abuse> (From "GI Joe") A hard-core {CGI} script
	programmer with all the social skills and charisma of a
	plastic action figure.

	(1997-03-30)

CGI program

	{Common Gateway Interface}

CGI script

	{Common Gateway Interface}

CGM

	{Computer Graphics Metafile}

CGOL

	<language> A package providing {ALGOL}-like {surface syntax}
	for {MACLISP}, written by V.R. Pratt in 1977.

	{(ftp://mc.lcs.mit.edu/its/ai/lisp/cgol.fasl)}.

	["CGOL - An Alternative Exetrnal Representation for LISP
	Users", V.  Pratt, MIT AI Lab, Working Paper 89, 1976].

	(2005-01-07)

cgram

	<language> An {ANSI C} {LL1} or {LL2} {grammar} written in
	{Scheme} by Mohd Hanafiah Abdullah <napi@cs.indiana.edu>.  A
	program (f-f-d.s) extracts the FIRST/FOLLOW/DIRECTOR sets.

	{(ftp://primost.cs.wisc.edu/pub/comp.compilers/cgram-ll1.Z)}.

	(2005-01-07)

Ch

	<language> An {interpreted} programming language sold by {Soft
	Integration} and marketed for {scripting}, {shell programming}
	and graph plotting, it is a superset of {C++}.  Ch is also the
	name of Soft Integration's {interpreter} for the language.
	Currently the Ch interpreter is available for {Windows},
	{Solaris}, {HP-UX}, {Linux} and {Mac} platforms.

	{Soft Integration (http://softintegration.com/)}.

	(2003-08-15)

ch

	<networking> The {country code} for Switzerland.

	(1999-01-27)

chad

	<jargon, printer> /chad/ (Or "selvage" /sel'v*j/ (sewing and
	weaving), "{perf}", "perfory", "snaf").  1. The perforated
	edge strips on paper for {sprocket feed} printers, after they
	have been separated from the printed portion.

	The term {perf} may also refer to the perforations themselves,
	rather than the chad they produce when torn.

	[Why "snaf"?]

	2. (Or "chaff", "computer confetti", "keypunch droppings") The
	confetti-like bits punched out of {punched cards} or {paper
	tape} which collected in the {chad box}.

	One of the {Jargon File}'s correspondents believed that "chad"
	derived from the {chadless keypunch}.

	[{Jargon File}]

	(1997-07-18)

chad box

	<hardware> ({IBM} called this a "chip box") A metal box about
	the size of a lunchbox (or in some models a large
	wastebasket), for collecting the {chad} that accumulated in
	{Iron Age} {card punches}.  You had to open the covers of the
	card punch periodically and empty the chad box.

	The {bit bucket} was notionally the equivalent device in the
	{CPU} enclosure, which was typically across the room in
	another great grey-and-blue box.

	[{Jargon File}]

	(1996-11-20)

Chadless keypunch

	<hardware> A {card punch} which cut little U-shapes in
	{punched cards}, rather than punching out a circle or
	rectangle.  The U's made a hole when folded back.

	One of the {Jargon File}'s correspondents believed that the
	term "chad" derived from the {Chadless keypunch}.  Obviously,
	if the Chadless keypunch didn't make them, then the stuff that
	other keypunches made had to be "{chad}".  The assertion that
	the keypunch was named after its inventor is not supported by
	any record in US or UK patents or surname references.

	(2000-11-22)

chain

	1. <operating system> (From {BASIC}'s "CHAIN" statement) To
	pass control to a child or successor without going through the
	{operating system} {command interpreter} that invoked you.
	The state of the parent program is lost and there is no
	returning to it.  Though this facility used to be common on
	memory-limited {microcomputers} and is still widely supported
	for {backward compatibility}, the jargon usage is
	semi-obsolescent; in particular, {Unix} calls this {exec}.

	Compare with the more modern "{subshell}".

	2. <programming> A series of linked data areas within an
	{operating system} or {application program}.  "Chain rattling"
	is the process of repeatedly running through the linked data
	areas searching for one which is of interest.  The implication
	is that there are many links in the chain.

	3. <theory> A possibly infinite, non-decreasing sequence of
	elements of some {total ordering}, S

		x0 <= x1 <= x2 ...

	A chain satisfies:

		for all x,y in S, x <= y \/ y <= x.

	I.e. any two elements of a chain are related.

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

	[{Jargon File}]

	(1995-02-03)

Challenge-Handshake Authentication Protocol

	<networking, security, standard, protocol> (CHAP) An
	{authentication} scheme used by {PPP} servers to validate the
	identity of the originator of the connection upon connection
	or any time later.

	CHAP applies a three-way {handshaking} procedure.  After the
	link is established, the server sends a "challenge" message to
	the originator.  The originator responds with a value
	calculated using a {one-way hash function}.  The server checks
	the response against its own calculation of the expected hash
	value.  If the values match, the authentication is
	acknowledged; otherwise the connection is usually terminated.

	CHAP provides protection against {playback} attack through the
	use of an incrementally changing identifier and a variable
	challenge value.  The authentication can be repeated any time
	while the connection is open limiting the time of exposure to
	any single attack, and the server is in control of the
	frequency and timing of the challenges.  As a result, CHAP
	provides greater security then {PAP}.

	CHAP is defined in {RFC} 1334.

	(1996-03-05)

Chalmers University of Technology

	<body, education> A Swedish university founded in 1829
	offering master of science and doctoral degrees.  Research is
	carried out in the main engineering sciences as well as in
	technology related mathematical and natural sciences.  Five
	hundred faculty members work in more than 100 departments
	organised in nine schools.  Chalmers collaborates with the
	University of Göteborg.

	Around 8500 people work and study on the Chalmers campus,
	including around 500 faculty members and some 600 teachers and
	doctoral students.  About 4800 students follow the master
	degree programs.  Every year 700 Masters of Science in
	Engineering and in Architecture graduate from Chalmers, and
	about 190 PhDs and licentiates are awarded.  Some 40% of
	Sweden's engineers and architects are Chalmers graduates.

	About a thousand research projects are in progress and more
	than 1500 scientific articles and research reports are
	published every year.  Chalmers is a partner in 80 EC research
	projects.

	{(http://chalmers.se/Home-E.html)}.

	Address: S-412 96 Göteborg, Sweden.

	(1995-02-16)

change management

	<system management> Techniques that aid in evolution,
	composition and policy management of the design and
	implementation of an object or system.

	(1995-02-16)

changeover

	<programming> The time when a new system has been tested
	successfully and replaces the old system.

	(2003-11-12)

channel

	<chat> (Or "chat room", "room", depending on the system in
	question) The basic unit of group discussion in {chat} systems
	like {IRC}.  Once one joins a channel, everything one types is
	read by others on that channel.  Channels can either be named
	with numbers or with strings that begin with a "#" sign and
	can have topic descriptions (which are generally irrelevant to
	the actual subject of discussion).

	Some notable channels are "#initgame", "#hottub" and
	"#report".  At times of international crisis, "#report" has
	hundreds of members, some of whom take turns listening to
	various news services and typing in summaries of the news, or
	in some cases, giving first-hand accounts of the action
	(e.g. Scud missile attacks in Tel Aviv during the Gulf War in
	1991).

	[{Jargon File}]

	(1998-01-25)

channel associated signaling

	{in-band signalling}

channel hopping

	<chat> To rapidly switch channels on {IRC}, or a {GEnie} chat
	board.  This term may derive from the TV idiom, "channel
	surfing".

	[{Jargon File}]

	(1994-11-29)

channel op

	<messaging> /chan'l op/ (Or "{op}", "chan op", "chop") Someone
	who is endowed with privileges on a particular {IRC}
	{channel}.  These privileges include the right to {kick}
	users, to change various status bits and to make others into
	CHOPs.

	The full form, "channel operator", is almost never used.

	[{Jargon File}]

	(1998-01-08)

channel service unit

	<communications> (CSU) A type of {interface} used to connect a
	{terminal} or computer to a digital medium in the same way
	that a {modem} is used for connection to an analogue medium.

	A CSU is provided by the {communication carrier} to customers
	who wish to use their own equipment to retime and regenerate
	the incoming signals.  The customer must supply all of the
	transmit logic, receive logic and timing recovery in order to
	use the CSU, whereas a {digital service unit} DSU performs
	these functions.

	(1995-01-30)

channel service unit/data service unit

	<communications, hardware> (CSU/DSU, or "..digital..") A
	device that performs both the {channel service unit} (CSU) and
	{data service unit} (DSU) functions.  The Channel Service Unit
	(CSU) is used to terminate a {DS1} or {DS0} (56/64 kb/s)
	digital circuit.  It peforms {line conditioning}, protection,
	{loop-back} and timing functions.  The Data Service Unit (DSU)
	terminates the data circuit to the {Data Terminal Equipment}
	(DTE) and converts the customer's data stream into a bi-polar
	format for transmission.

	(2001-10-19)

chan op

	{channel op}

chaos

	<mathematics> A property of some {non-linear dynamic systems}
	which exhibit sensitive dependence on initial conditions.
	This means that there are initial states which evolve within
	some finite time to states whose separation in one or more
	dimensions of {state space} depends, in an average sense,
	exponentially on their initial separation.

	Such systems may still be completely {deterministic} in that
	any future state of the system depends only on the initial
	conditions and the equations describing the change of the
	system with time.  It may, however, require arbitrarily high
	precision to actually calculate a future state to within some
	finite precision.

	["On defining chaos", R. Glynn Holt
	<rgholt@voyager.jpl.nasa.gov> and D. Lynn Holt
	<lholt@seraph1.sewanee.edu>.
	{(ftp://mrcnext.cso.uiuc.edu/pub/etext/ippe/preprints/Phil_of_Science/Holt_and_Holt.On_Defining_Chaos)}]

	Fixed precision {floating-point} arithmetic, as used by most
	computers, may actually introduce chaotic dependence on
	initial conditions due to the accumulation of rounding errors
	(which constitutes a non-linear system).

	(1995-02-07)

CHAP

	{Challenge-Handshake Authentication Protocol}

char

	<programming> /keir/ or /char/; rarely, /kar/ character.
	Especially used by {C} programmers, as "char" is {C}'s
	typename for character data.

	[{Jargon File}]

	(1994-11-29)

character

	<character> An {atom} in a {character repertoire}.

	Compare with {glyph}.

	(1998-10-18)

character encoding

	<character> (Or "character encoding scheme") A mapping of
	{binary} values to {code positions} and back; generally a 1:1
	({bijective}) mapping.

	In the case of {ASCII}, this is generally a f(x)=x mapping:
	code point 65 maps to the byte value 65, and vice versa.  This
	is possible because ASCII uses only code positions
	representable as single bytes, i.e., values between 0 and 255,
	at most.  ({US-ASCII} only uses values 0 to 127, in fact.)

	{Unicode} and many {CJK} {coded character sets} use many more
	than 255 positions, requiring more complex mappings: sometimes
	the characters are mapped onto pairs of bytes (see {DBCS}).
	In many cases, this breaks programs that assume a one-to-one
	mapping of bytes to characters, and so, for example, treat any
	occurrance of the byte value 13 as a {carriage return}.  To
	avoid this problem, character encodings such as {UTF-8} were
	devised.

	(1998-10-18)

character encoding scheme

	{character encoding}

character graphics

	{ASCII art}

characteristic function

	<mathematics> The characteristic function of set returns True
	if its argument is an element of the set and False otherwise.

	(1995-04-13)

character key

	{key}

character repertoire

	<character> The set of all {characters} onto which a {coded
	character set} maps {integers} ({code positions}).

	For example, consider these two simple coded character sets:

	 Coded Character Set One:
	  integer 0  ->  the character "A"
	  integer 1  ->  the character "B"

	 Coded Character Set Two:
	  integer 0  ->  the character "B"
	  integer 1  ->  the character "A"

	Both of these coded character sets map to the characters "A"
	and "B", so they have the same character repertoire.  But
	since the mapping is different (and obviously incompatible),
	these are different coded character sets.

	(1998-12-17)

character set

	<character> 1. A particular mapping between {characters} and
	{byte strings}, i.e. the combination of a particular
	{character encoding} (which maps between byte strings and
	{integers}) and a particular {coded character set} (which maps
	between integers and characters).

	For example: {ASCII} (the ASCII coded character set, encoded
	directly as single-byte values), or {UTF-8} (the Unicode coded
	character set, encoded with an 8-bit transformation method).

	2. Occasionally: a {character repertoire}; or a {coded
	character set}.

	(1998-12-17)

character set identifier

	<character> (CSID) (IBM) A number that identifies a {character
	set}.

	(1995-03-21)

charge-coupled device

	<electronics> (CCD) A semiconductor technology used to build
	light-sensitive electronic devices such as cameras and image
	scanners.  CCDs can be made to detect either colour or
	black-and-white.  Each CCD chip consists of an array of
	light-sensitive photocells.  The photocell is sensitised by
	giving it an electrical charge prior to exposure.

	(2006-04-29)

CHARITY

	<language> A {functional language} based purely on {category
	theory} by Cockett, Spencer, and Fukushima, 1990-1991.

	A version for {Sun-4} is available from Tom Fukushima
	<fukushim@ucalgary.ca>.

	["About Charity", J.R.B. Cockett, U. Calgary, Canada, et al].

	(2000-10-30)

charityware

	{careware}

Charles Babbage

	<person> The british inventor known to some as the "Father of
	Computing" for his contributions to the basic design of the
	computer through his {Analytical Engine}.  His previous
	{Difference Engine} was a special purpose device intended for
	the production of mathematical tables.

	Babbage was born on December 26, 1791 in Teignmouth,
	Devonshire UK.  He entered Trinity College, Cambridge in 1814
	and graduated from Peterhouse.  In 1817 he received an MA from
	Cambridge and in 1823 started work on the Difference Engine
	through funding from the British Government.  In 1827 he
	published a table of {logarithms} from 1 to 108000.  In 1828
	he was appointed to the Lucasian Chair of Mathematics at
	Cambridge (though he never presented a lecture).  In 1831 he
	founded the British Association for the Advancement of Science
	and in 1832 he published "Economy of Manufactures and
	Machinery".  In 1833 he began work on the Analytical
	Engine. In 1834 he founded the Statistical Society of London.
	He died in 1871 in London.

	Babbage also invented the cowcatcher, the dynamometer,
	standard railroad gauge, uniform postal rates, occulting
	lights for lighthouses, Greenwich time signals, and the
	heliograph opthalmoscope.  He also had an interest in cyphers
	and lock-picking.

	[Adapted from the text by J. A. N. Lee, Copyright September
	1994].

	Babbage, as (necessarily) the first person to work with
	machines that can attack problems at arbitrary levels of
	{abstraction}, fell into a trap familiar to {toolsmiths}
	since, as described here by the English ethicist, Lord
	Moulton:

	"One of the sad memories of my life is a visit to the
	celebrated mathematician and inventor, Mr Babbage.  He was far
	advanced in age, but his mind was still as vigorous as ever.
	He took me through his work-rooms.  In the first room I saw
	parts of the original Calculating Machine, which had been
	shown in an incomplete state many years before and had even
	been put to some use.  I asked him about its present form.  'I
	have not finished it because in working at it I came on the
	idea of my {Analytical Machine}, which would do all that it
	was capable of doing and much more.  Indeed, the idea was so
	much simpler that it would have taken more work to complete
	the Calculating Machine than to design and construct the other
	in its entirety, so I turned my attention to the Analytical
	Machine.'"

	"After a few minutes' talk, we went into the next work-room,
	where he showed and explained to me the working of the
	elements of the Analytical Machine.  I asked if I could see
	it.  'I have never completed it,' he said, 'because I hit upon
	an idea of doing the same thing by a different and far more
	effective method, and this rendered it useless to proceed on
	the old lines.'  Then we went into the third room.  There lay
	scattered bits of mechanism, but I saw no trace of any working
	machine.  Very cautiously I approached the subject, and
	received the dreaded answer, 'It is not constructed yet, but I
	am working on it, and it will take less time to construct it
	altogether than it would have token to complete the Analytical
	Machine from the stage in which I left it.'  I took leave of
	the old man with a heavy heart."

	"When he died a few years later, not only had he constructed
	no machine, but the verdict of a jury of kind and sympathetic
	scientific men who were deputed to pronounce upon what he had
	left behind him, either in papers or in mechanism, was that
	everything was too incomplete of be capable of being put to
	any useful purpose."

	[Lord Moulton, "The invention of algorithms, its genesis, and
	growth", in G. C. Knott, ed., "Napier tercentenary memorial
	volume" (London, 1915), p.  1-24; quoted in Charles Babbage
	"Passage from the Life of a Philosopher", Martin
	Campbell-Kelly, ed. (Rutgers U. Press and IEEE Press, 1994),
	p. 34].

	Compare: {uninteresting}, {Ninety-Ninety Rule}.

	(1996-02-22)

Charles Simonyi

	<person> {Microsoft} {programmer}, most famously responsible
	for {Hungarian Notation}.

	Simonyi was born in Budapest in 1948, and for more than a
	decade was senior {programmer} at {Microsoft} in Redmond.

	(1999-05-25)

CHARM

	<language> An explicitly {parallel programming language} based
	on {C}, for both shared and nonshared {MIMD} computers.

	{(ftp://a.cs.uiuc.edu/pub/CHARM)}.

	Mailing list: <charm@cs.uiuc.edu>.

	["The CHARM(3.2) Programming Language Manual", UIUC, Dec
	1992].

	(2006-04-29)

CHARM++

	<language> An {object-oriented} {parallel programming} system,
	similar to {CHARM} but based on {C++}.

	{(ftp://a.cs.uiuc.edu/pub/CHARM/Charm++)}.

	E-mail: Sanjeev Krishnan <sanjeev@cs.uiuc.edu>.

	[TR 1796, UIUC].

	(1994-11-29)

Charme

	<language, logic, Bull, nondeterminism> A language with
	{discrete combinatorial constraint logic} aimed at industrial
	problems such as planning and {scheduling}.  Implemented in
	{C} at {Bull} in 1989.

	Charme is an outgrowth of ideas from {CHIP}.  It is
	semantically {nondeterministic}, with choice and
	{backtracking}, similar to {Prolog}.

	["Charme Reference Manual", AI Development Centre, Bull,
	France 1990].

	(1994-11-15)

CHARYBDIS

	<mathematics, tool> A {Lisp} program to display
	mathematical expressions.  It is related to {MATHLAB}.

	[Sammet 1969, p. 522].

	(1994-11-15)

chase pointers

	<programming> To determine a chain of memory locations where
	each location holds a pointer to the next, starting from some
	initial pointer, e.g.  traversing a {linked list} or other
	{graph} structure.  This may be performed by a computer
	executing a program or by a programmer going through a {core
	dump} or using a debugger.

	[{Jargon File}]

	(2006-05-06)

CHASM

	{CHeap ASseMbler}

chat

	<chat, messaging> Any system that allows any number of
	logged-in users to have a typed, real-time, on-line
	conversation via a {network}.

	The medium of {chat} is descended from {talk}, but the terms
	(and the media) have been distinct since at least the early
	1990s.  {talk} is prototypically for a small number of people,
	generally with no provision for {channels}.  In {chat}
	systems, however, there are many {channels} in which any
	number of people can talk; and users may send private
	(one-to-one) messages.

	Some early chat systems (in use 1998) include {IRC}, {ICQ} and
	{Palace}.  More recent alternatives include {MSN Messenger}
	and {Google Talk}.

	Chat systems have given rise to a distinctive style combining
	the immediacy of talking with all the precision (and
	verbosity) that written language entails.  It is difficult to
	communicate inflection, though conventions have arisen to help
	with this.

	The conventions of chat systems include special items of
	jargon, generally abbreviations meant to save typing, which
	are not used orally.  E.g. {BCNU}, {BBL}, {BTW}, {CUL},
	{FWIW}, {FYA}, {FYI}, {IMHO}, {OT}, {OTT}, {TNX}, {WRT},
	{WTF}, {WTH}, {<g>}, {<gr&d>}, {BBL}, {HHOK}, {NHOH}, {ROTFL},
	{AFK}, {b4}, {TTFN}, {TTYL}, {OIC}, {re}.

	Much of the chat style is identical to (and probably derived
	from) {Morse code} jargon used by ham-radio amateurs since the
	1920s, and there is, not surprisingly, some overlap with {TDD}
	jargon.  Most of the jargon was in use in {talk} systems.
	Many of these expressions are also common in {Usenet} {news}
	and {electronic mail} and some have seeped into popular
	culture, as with {emoticons}.

	The {MUD} community uses a mixture of {emoticons}, a few of
	the more natural of the old-style {talk mode} abbreviations,
	and some of the "social" list above.  In general, though,
	MUDders express a preference for typing things out in full
	rather than using abbreviations; this may be due to the
	relative youth of the MUD cultures, which tend to include many
	touch typists.  Abbreviations specific to MUDs include:
	{FOAD}, ppl (people), THX (thanks), UOK? (are you OK?).

	Some {BIFF}isms (notably the variant spelling "d00d") and
	aspects of {ASCIIbonics} appear to be passing into wider use
	among some subgroups of MUDders and are already pandemic on
	{chat} systems in general.

	See also {hakspek}.

	{Suck article "Screaming in a Vacuum"
	(http://suck.com/daily/96/10/23/)}.

	(2006-05-31)

chatbot

	<chat> (Or "chatterbot") A {bot} meant to be able to interact
	conversationally with humans.  A chatbot is either an exercise
	in {AI} or merely an interface as in an {infobot}.

	One of the first and most famous chatterbots (prior to the
	Web) was {Eliza}.

	(1999-06-19)

chat room

	{channel}

chatterbot

	{chatbot}

CHeap ASseMbler

	<tool> (CHASM) A {shareware} {assembler} for {MS-DOS}.

	(1994-11-15)

cheapernet

	<networking> (Or "thinnet") A colloquial term for thin-wire
	{Ethernet} ({10base2}) that uses {RG58} {coaxial cable}
	instead of the full-spec "Yellow Cable".

	(1995-03-28)

checkdigit

	<data> A one-digit {checksum}.

Checkout Test language

	<language> (CTL)

	["Checkout Test Language: An Interpretive Language Designed
	for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC 33(2)
	1968].

	(1994-11-14)

checkpoint

	<programming> Saving the current state of a program and its
	data, including intermediate results, to disk or other
	{non-volatile storage}, so that if interrupted the program
	could be restarted at the point at which the last checkpoint
	occurred.

	This facility came into popular use in {mainframe} {operating
	systemss} such as {OS/360} in which programs frequently ran
	for longer than the mean time between system failures.  If a
	program run fails because of some event beyond the program's
	control (e.g. hardware or {operating system} failure) then the
	processor time invested before the checkpoint will not have
	been wasted.

	(1995-02-07)

checksum

	<storage, communications> A computed value which depends on
	the contents of a block of data and which is transmitted or
	stored along with the data in order to detect corruption of
	the data.  The receiving system recomputes the checksum based
	upon the received data and compares this value with the one
	sent with the data.  If the two values are the same, the
	receiver has some confidence that the data was received
	correctly.

	The checksum may be 8 bits (modulo 256 sum), 16, 32, or some
	other size.  It is computed by summing the bytes or words of
	the data block ignoring {overflow}.  The checksum may be
	negated so that the total of the data words plus the checksum
	is zero.

	{Internet} {packets} use a 32-bit checksum.

	See also {digital signature}, {cyclic redundancy check}.

	(1996-03-01)

chemist

	<jargon> (Cambridge) Someone who wastes computer time on
	{number crunching} when you'd far rather the computer were
	working out anagrams of your name or printing Snoopy calendars
	or running {life} patterns.  May or may not refer to someone
	who actually studies chemistry.

	[{Jargon File}]

	(1995-02-07)

Chen

	{Peter Chen}

CHEOPS

	<communications> A satellite-based batch data dissemination
	project between {CERN} and member state institutes.

	(2006-06-21)

Chernobyl packet

	<networking> /cher-noh'b*l pak'*t/ A {network} {packet} that
	induces a {broadcast storm} and/or {network meltdown}, named
	in memory of the April 1986 nuclear accident at Chernobyl in
	Ukraine.

	The typical scenario involves an {IP} {Ethernet} {datagram}
	that passes through a {gateway} with both source and
	destination {Ethernet address} and {IP address} set as the
	respective broadcast addresses for the subnetworks being gated
	between.

	Compare {Christmas tree packet}.

	[{Jargon File}]

	(2004-02-17)

chess

	<games> A two-player {game} with {perfect information}.

	{Usenet} newsgroup: {news:rec.games.chess}.

	See also {Internet Chess Server}.

	(1995-03-25)

CHI

	<language> A {wide spectrum language}, the forerunner of
	{Refine}.

	["Research on Knowledge-Based Software Environments at Kestrel
	Institute", D.R. Smith et al, IEEE Trans Soft Eng, SE-11(11)
	1985]

	(2006-07-11)

Chicago

	{Windows 95}

chicken head

	<graphics, abuse> The {Commodore} Business Machines logo,
	which strongly resembles a poultry part.  Rendered in {ASCII}
	as "C=".

	With the arguable exception of the {Amiga}, Commodore's
	computers are notoriously crocky little {bitty box}es (see
	also {PETSCII}).  Thus, this usage may owe something to Philip
	K. Dick's novel "Do Androids Dream of Electric Sheep?"  (the
	basis for the movie "Blade Runner"; the novel is now sold
	under that title), in which a "chickenhead" is a mutant with
	below-average intelligence.

	[{Jargon File}]

	(2006-07-12)

chicklet keyboard

	<spelling> It's spelled "{chiclet keyboard}".

	(1997-05-16)

chiclet keyboard

	<hardware, abuse> A {keyboard} with a small, flat rectangular
	or lozenge-shaped rubber or plastic keys that look like pieces
	of Chiclets chewing gum.  Used especially to describe the
	original {IBM PCjr} keyboard.  Vendors unanimously liked these
	because they were cheap, and a lot of early {portable} and
	{laptop computers} were launched with them.  Customers
	rejected the idea with almost equal unanimity, and chiclets
	are not often seen on anything larger than a digital watch any
	more.

	[{Jargon File}]

	(1997-05-16)

Chief Information Officer

	<job> (CIO) The person who determines the overall strategic
	direction and business contribution of the {information
	systems} function in a business.

	(2004-03-18)

child

	{daughter}

child process

	<operating system> A {process} created by another process (the
	{parent process}).  Each process may create many child
	processes but will have only one parent process, except for
	the very first process which has no parent.  The first
	process, called {init} in {Unix}, is started by the {kernel}
	at {boot time} and never terminates.  A child process inherits
	most of its attributes, such as open files, from its parent.
	In fact in Unix, a child process is created (using {fork}) as
	a copy of the parent.  The chid process can then overlay
	itself with a different program (using {exec}) as required.

	(1997-11-22)

child record

	<database> A {record} lower in the hierarchical tree than a
	parent record; it is also directly liked to the parent and
	hierarchical {databases}.

	(1995-04-13)

child version

	<change> A version of a version.  See {change management}.

	(2006-07-12)

CHILI

	<language> D.L. Abt. A language for {systems programming},
	based on {ALGOL 60} with extensions for {structures} and {type
	declarations}.

	["CHILI, An Algorithmic Language for Systems Programming",
	CHI-1014, Chi Corp, Sep 1975]

	(2006-07-12)

CHILL

	{CCITT HIgh-Level Language}

Chimera

	<World-Wide Web> A modular, {X Window System}-based
	{World-Wide Web} {browser} for {Unix}.  Chimera uses the
	{Athena} {widget} set so {Motif} is not needed.  It supports
	forms, inline images, {TERM}, {SOCKS}, {proxy servers},
	{Gopher}, {FTP}, {HTTP} and local file accesses.  Chimera can
	be extended using external programs.  New {protocols} can
	easily be added and alternate image formats can be used for
	inline images (e.g. {PostScript}).

	Version 1.60 is available for
	{(ftp://ftp.cs.unlv.edu/pub/chimera)}.

	{(http://unlv.edu/chimera/)}.

	Chimera runs on {Sun} {SPARC} {SunOS} 4.1.x, {IBM} {RS/6000}
	{AIX} 3.2.5, {Linux} 1.1.x.  It should run on anything with
	{X11}R[3-6], {imake} and a {C} compiler.

	(1994-11-08)

chine nual

	<documentation> /sheen'yu-*l/ (MIT) The {LISP Machine} Manual,
	so called because the title was wrapped around the cover so
	only those letters showed on the front.

	[{Jargon File}]

	(1994-12-02)

Chinese Army technique

	{Mongolian Hordes technique}

CHIP

	<language>

	1. An early system on the {IBM 1130}.

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

	(2004-09-14)

	2. {Constraint Handling In Prolog}.

chip

	{integrated circuit}

CHIP-48

	A reimplementation of {CHIP-8} for the {HP-48} calculator by
	Andreas Gustafson <gson@niksula.hut.fi>.

	Posted to {news:comp.sys.handhelds} in Sep 1990.

	{(ftp://vega.hut.fi/pub/misc/hp48sx/asap)}.

	(1994-12-02)

CHIP-8

	<language, games> A low-level {interpretive language} (really
	a high-level {machine code}) developed at {RCA} in the late
	1970s for {video games} on computers using {RCA}'s {CDP1802}
	processor.  It could also be used on the {DREAM 6800}.

	{Amiga interpreter
	(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh)}.

	(2002-04-09)

chip art

	{microchip art}

chip box

	{chad box}

chip creep

	<hardware> Gradual loosening of an {integrated circuit}
	("chip") in its {socket} as a result of expansion and
	contraction during the normal heating and cooling cycles of an
	electronic system, combined with vibration, e.g. due to
	cooling fans.  The chip can loosen to the point that poor
	electrical contact between chip and socket reduces the signal
	quality, causing failure.  Pushing chips back into their
	sockets can cure such symptoms temporarily.  Permanent
	solutions include soldering chips directly to the {PCB} and
	clipping the component into the socket (as on some {in-line
	memory modules}).

	The same phenomenon can affect anything plugged into a socket
	but not held securely in place, e.g. a {circuit board} plugged
	into an {edge connector} on a {motherboard} or {backplane} can
	suffer "card creep".

	(2007-06-19)

chip graffiti

	{microchip art}

Chip Jewelry

	<jargon> A euphamism for old computers destined to be scrapped
	or turned into decorative ornaments.  "I paid three grand for
	that {Mac SE}, and now it's nothing but chip jewelry."

	(1997-03-30)

Chip Scale Packaging

	<hardware> (CSP) A type of {surface mount} {integrated
	circuit} packaging that provides pre-speed-sorted, pre-tested
	and pre-packaged {die} without requiring special testing.  An
	example is {Motorola}'s {Micro SMT} packaging.

	See also: {chip-on-board}, {flip chip}, {multichip module},
	{known good die}, {ball grid array}.

	["Chip scale packaging gains at SMI. (Surface Mount
	International)", Bernard Levine, Electronic News (1991), Sept
	4, 1995 v41 n2081 p1(2)].

	(2006-08-14)

chip set

	<hardware> A collection of {integrated circuits} that are
	designed to be used together for some specific purpose.
	E.g. control circuitry in an {IBM PC}.

	(1995-03-27)

Chips & Technologies

	<company> A former leading distributor and supplier of
	{integrated circuits} and {software} to {personal computer}
	manufacturers.  As well as semiconductors they also made {flat
	panel displays}, {video controllers} and other computer
	related products.

	In 1998, {Intel Corporation} bought Chips and Technologies for
	their flat panel controllers.  In January 2000, {Asiliant
	Technologies} licensed the rights from Intel to continue to
	manufacturer and sell Chips and Technologies components.

	Address: 2950 Zanker Road, San Jose, California 95134, USA.

	(2006-09-19)

CHISEL

	<language> An extension of {C} for {VLSI} design, implemented
	as a C {preprocessor}.  It produces {CIF} as output.

	["CHISEL - An Extension to the Programming language C for VLSI
	Layout", K. Karplus, PHD Thesis, Stanford U, 1982].

	(2006-09-19)

chm

	{Compiled HTML}

chmod

	<file system> ("Change mode") The {Unix} command and {system
	call} to change the access {permissions} of a named file.
	Each file (directory, device, etc.) has nine kinds of access
	which can be allowed or denied.  Different permissions apply
	to the owner of the file, the members of the group the file
	belongs to, and all users.  Each of these classes of user
	(owner, group and other) can have permission to read, write or
	execute the file.  Chmod can also set various other mode bits
	for a file or directory such as the {sticky bit} and the {set
	user id} bit.

	Unix {man} page: chmod

	(1995-01-31)

CHOCS

	<language> A generalisation of {CCS}.

	["A Calculus of Higher-Order Communicating Systems",
	B. Thomsen, 16th POPL pp. 143-154, 1989].

	(2006-09-20)

choke

	<jargon> To fail to process input or, more generally, to fail
	at any endeavor.

	E.g. "NULs make System V's "lpr(1)" choke."  See {barf},
	{gag}.

	[{Jargon File}]

	(2006-09-20)

chomp

	<jargon> To fail.

	(1996-06-01)

CHOP

	{channel op}

Chop

	<language, tool> A {code generator} by Alan L. Wendt
	<wendt@CS.ColoState.EDU> for the {lcc} {C} compiler {front
	end}.  Version 0.6 is interfaced with Fraser and Hanson's
	{lcc} {front end}.  The result is a {C} compiler with good
	code selection but no {global optimisation}.  In 1993, Chop
	could compile and run small test programs on the {VAX}.  The
	{National Semiconductor 32000} and {Motorola 68000} code
	generators are being upgraded for {lcc} compatibility.

	{(ftp://beethoven.cs.colostate.edu/pub/chop/0.6.tar.Z)}.

	["Fast Code Generation Using Automatically-Generated Decision
	Trees", ACM SIGPLAN '90 PLDI].

	(1993-04-28)

Chorus

	<operating system> A distributed {operating system} developed
	at {INRIA}.

	(2006-09-20)

Christmas tree

	<hardware, jargon> A kind of {EIA-232} {line tester} or
	{breakout box} featuring rows of blinking red and green {LEDs}
	suggestive of Christmas lights.

	[{Jargon File}]

	(2006-09-20)

Christmas tree packet

	<networking> (Or kamikaze packet) A {packet} with every single
	option set for whatever {protocol} is in use.  The term
	doubtless derives from a fanciful image of each little option
	bit being represented by a different-coloured light bulb, all
	turned on.

	{RFC 1025}, "TCP and IP Bake Off" says:

	10 points for correctly being able to process a "Kamikaze"
	packet (AKA {nastygram}, Christmas tree packet, lamp test
	segment, et al.).  That is, correctly handle a segment with
	the maximum combination of features at once (e.g. a SYN URG
	PUSH FIN segment with options and data).

	Compare: {Chernobyl packet}.

	[{Jargon File}]

	(1994-11-09)

Christopher Strachey

	<person> Professor of Computation at Oxford, England, born
	1916, died May 1975.  He invented the term "{currying}".

	See also: {General Purpose Macro-generator}.

	(1998-06-29)

chromatic number

	<mathematics> The smallest number of colours necessary to
	colour the nodes of a {graph} so that no two adjacent nodes
	have the same colour.

	See also: {four colour map theorem}.

	{Graph Theory Lessons
	(http://utc.edu/~cpmawata/petersen/lesson8.htm)}.

	{Eric Weisstein's World Of Mathematics
	(http://mathworld.wolfram.com/ChromaticNumber.html)}.

	{The Geometry Center
	(http://geom.umn.edu/~zarembe/grapht1.html)}.

	(2000-03-18)

chrome

	<jargon> (From automotive slang via wargaming) Showy
	{features} added to attract users but contributing little or
	nothing to the power of a system.

	"The 3D icons in {Motif} are just chrome, but they certainly
	are *pretty* chrome!"

	Chrome is distinguished from {bells and whistles} by the fact
	that the latter are usually added to gratify developers' own
	desires for featurefulness.  Often used as a term of contempt
	and sometimes used in conjunction with 'fluff', "all the fluff
	and chrome that comes with Motif".

	[{Jargon File}]

	(1997-09-19)

chroot

	<operating system> The {UNIX} command to make the {root
	directory} (/) become something other than its default for the
	lifetime of the current process.  It can only be run by
	privileged users and is used to give a process (commonly a
	network server such as {FTP} or {HTTP}) access to a restricted
	portion of the {file system}.

	The new root contains copies of all the essential files and
	directories, e.g. /lib, /dev/tty, /tmp.

	(1996-12-08)

CHRP

	{PowerPC Platform}

chug

	<jargon> To run slowly; to {grind} or {grovel}.  "The disk is
	chugging like crazy."

	[{Jargon File}]

	(1995-03-25)

chug report

	<humour> From "chug" - to drink heavily.  A {bug report} whose
	the submitter is thought to have had one too many.  Not as bad
	as a {drug report}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2011-12-03)

chunker

	<programming> A program like {Unix}'s "split" which breaks an
	input file into parts, usually of a pre-set size, e.g. the
	maximum size that can fit on a {floppy}.  The parts can then
	be assembled with a {dechunker}, which is usually just the
	chunker in a different mode.

	(1998-12-15)

Church, Alonzo

	{Alonzo Church}

Church integer

	<theory> A representation of integers as functions invented by
	{Alonzo Church}, inventor of {lambda-calculus}.  The integer N
	is represented as a {higher-order function} which applies a
	given function N times to a given expression.  In the {pure
	lambda-calculus} there are no constants but numbers can be
	represented by Church integers.

	A {Haskell} function to return a given Church integer could be
	written:

		church n = c
			   where
			   c f x = if n == 0 then x else c' f (f x)
				   where
				   c' = church (n-1)

	A function to turn a Church integer into an ordinary integer:

		unchurch c = c (+1) 0

	See also {von Neumann integer}.

	(1994-11-29)

Church of the SubGenius

	<body, humour> A mutant offshoot of {Discordianism} launched
	in 1981 as a spoof of fundamentalist Christianity by the
	"Reverend" Ivan Stang, a brilliant satirist with a gift for
	promotion.  Popular among hackers as a rich source of bizarre
	imagery and references such as "Bob" the divine
	drilling-equipment salesman, the Benevolent Space Xists, and
	the Stark Fist of Removal.  Much SubGenius theory is concerned
	with the acquisition of the mystical substance or quality of
	{slack}.

	{(http://sunsite.unc.edu/subgenius/slack.html)}.

	(1996-01-02)

Church-Rosser Theorem

	<theory> A property of a {reduction} system that states that
	if an expression can be reduced by zero or more reduction
	steps to either expression M or expression N then there exists
	some other expression to which both M and N can be reduced.
	This implies that there is a unique {normal form} for any
	expression since M and N cannot be different normal forms
	because the theorem says they can be reduced to some other
	expression and normal forms are irreducible by definition.  It
	does not imply that a normal form is reachable, only that if
	reduction terminates it will reach a unique normal form.

	(1995-01-25)

ci

	<networking> The {country code} for Cote d'Ivoire (the Ivory
	Coast).

	[{Jargon File}]

	(1999-01-27)

CI$

	{CompuServe Information Service}

CICERO

	<project> Control Information system Concepts based on
	Encapsulated Real-time Objects.

	A {CERN} {DRDC} proposal.

	(1995-01-25)

Cichlid

	<graphics, tool> A tool for rapidly visualising arbitrary data
	in high-quality 3D, while allowing the viewer to explore and
	interact with the data in {real time}.  Cichlid was designed
	with remote data generation and machine independence in mind;
	data is transmitted via {TCP} from any number of sources (data
	servers) to the visualisation code (the client), which
	displays them concurrently.

	[Who?  URL?]

	(2004-01-22)

CICS

	{Customer Information Control System}

CID

	{Caller ID}

CIDR

	{Classless Inter-Domain Routing}

CIEL

	<language> An {object-oriented} {Prolog}-like language.

	["CIEL: Classes et Instances En Logique", M. Gandriau, Thesis
	ENSEEIHT, 1988].

	(1995-01-25)

CIF

	{Caltech Intermediate Form}

CIFS

	{Common Internet File System}

Cigale

	<language, tool> A {parser generator} language with extensible
	{syntax}.

	["CIGALE: A Tool for Interactive Grammar Construction and
	Expression Parsing", F. Voisin, Sci Comp Prog 7:61-86, 1986].

	(1999-01-14)

CIL

	1. <project> {Component Integration Laboratories}.

	2. <language> {Common Intermediate Language}.

CIM

	1. <application> {Computer Integrated Manufacturing}.

	2. <standard> {Common Information Model}.

CIMS PL/I

	<language> A {PL/I} subset from the Courant Institute of
	Mathematical Sciences.

	["CIMS PL/I", P.W. Abrahams, Courant Inst].

	(1997-12-15)

Cinderella Book

	<publication> "Introduction to Automata Theory, Languages, and
	Computation", by John Hopcroft and Jeffrey Ullman,
	(Addison-Wesley, 1979).  So called because the cover depicts a
	girl (putatively Cinderella) sitting in front of a Rube
	Goldberg device and holding a rope coming out of it.  On the
	back cover, the device is in shambles after she has
	(inevitably) pulled on the rope.

	See also {book titles}.

	[{Jargon File}]

	(1996-12-03)

CINT92

	{SPEC CINT92}

C-Interp

	An {interpreter} for a small subset of {C}, originally part of
	a communications package.

	{(ftp://oac2.hsc.uth.tmc.edu/Mac/Misc/C_Interp.sit)}.  E-mail:
	Chuck Shotton <cshotton@oac.hsc.uth.tmc.edu>.

	(1993-05-14)

CIO

	{Chief Information Officer}

ciphertext

	<cryptography> Text which has been encrypted by some
	{encryption} system.

	Opposite: {plaintext}.

	(1994-10-27)

CIP-L

	{CIP Language}

CIP Language

	language> (CIP-L, Computer-aided Intuition-guided Programming
	Language) A {wide-spectrum language} for incremental {program
	transformation}.  There are {ALGOL}- and {Pascal}-like
	variants.

	["The Munich Project CIP, v.I: The Wide Spectrum Language
	CIP-L", LNCS 183, Springer 1984.  Version: CIP85].

	(2006-09-20)

CIR

	{Committed Information Rate}

CIRCAL

	{CIRcuit CALculus}

circuit

	1. <communications> A communications path in a {circuit
	switching} network.

	2. <electronics> A complete path through which an electric
	current can flow.

	The term is used loosely for any device or subsystem using
	electrical or electronic components.  E.g. "That lightning
	bolt fried the circuits in my GPS receiver".  An {integrated
	circuit} (IC) contains components built on a Silicon {die}.

	(2002-07-15)

CIRcuit CALculus

	(CIRCAL) A {process algebra} used to model and verify the
	design correctness of {concurrent} systems such as {digital
	logic}.

	["CIRCAL and the Representation of Communication, Concurrency
	and Time", G.J. Milne <milne@cis.unisa.edu.au>, ACM TOPLAS
	7(2):270-298, 1985].

	(2001-03-25)

circuit switch

	{circuit switching}

circuit switched

	{circuit switching}

circuit switching

	<communications> Communication via a single dedicated path
	between the sender and receiver.  The telephone system is an
	example of a circuit switched network.

	The term {connection-oriented} is used in {packet}-based
	networks in contrast to {connectionless} communication or
	{packet switching}.

	(2006-09-20)

circular buffer

	<programming> An area of {memory} used to store a continuous
	stream of data by starting again at the beginning of the
	buffer after reaching the end.  A circular buffer is usually
	written by one process and read by another.  Separate read and
	write {pointers} are maintained.  These are not allowed to
	pass each other otherwise either unread data would be
	overwritten or invalid data would be read.

	A circuit may implement a {hardware circular buffer}.

	(2000-06-17)

Cirrus Logic

	<company> A manufacturer of {integrated circuits} including
	the {Advanced RISC Machine} and display interface processors
	and cards for use as {Windows accelerators} (requiring
	dedicated driver software).

	{(http://cirrus.com/)}.

	[Other products?]

	(1996-10-13)

CIS

	1. <standard, programming> {Case Integration Services}.

	2. <networking> {Cooperative Information System}.

	3. <business> {Customer Interaction Software},
	{Customer Information Systems}.

CISC

	{Complex Instruction Set Computer}

Cisco Systems, Inc.

	<company> {Ethernet} hardware manufacturers.

	{(http://cisco.com/)}.

	Address: 170 West Tasman Drive, San Jose, CA 95134-1706, USA.
	Telephone: +1 408 526 4000, +1 800 553 6387.  Fax: +1 408 526
	4100.

	(1995-04-19)

CISI

	<company> A French software producer.

	(2006-09-20)

CITRAN

	<language> {Caltech}'s answer to {MIT}'s {JOSS}.

	[Sammet 1969, p. 217].

	(2006-09-20)

CityScape

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

	E-Mail: <sales@cityscape.co.uk>.

	Address: CityScape Internet Services, 59 Wycliffe Rd.,
	Cambridge, CB1 3JE, England.  Telephone: +44 (1223) 566 950.

	(1994-11-08)

CIX

	1. <networking> {Commercial Internet Exchange}.

	2. <messaging> {Compulink Information eXchange}.

CJK

	<character> In {internationalisation}, a collective term for
	Chinese, Japanese, and Korean.

	The characters of these languages are all partly based on {Han
	characters} (i.e., "hanzi" or "{kanji}"), which require 16-bit
	{character encodings}.  CJK character encodings should consist
	minimally of {Han characters} plus language-specific phonetic
	scripts such as pinyin, bopomofo, hiragana, hangul, etc.

	{CJKV} is CJK plus {Vietnamese}.

	{(ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf)}.

	(2001-01-01)

CJKV

	<character> {CJK} plus {Vietnamese}.  Vietnamese, like the
	other three CJK languages, requires 16-bit {character
	encodings} but it does not use {Han characters}.

	["CJKV Information Processing: Chinese, Japanese, Korean &
	Vietnamese Computing", Ken Lunde, pub. O'Reilly 1998,
	{(http://oreilly.com/catalog/cjkvinfo/)}].

	(2001-03-18)

ck

	<networking> The {country code} for the Cook Islands.

	(1999-01-27)

CL

	<language>

	1. {Control Language}.

	2. {Clausal Language}.

cl

	<networking> The {country code} for Chile.

	(1999-01-27)

CLAM

	<mathematics, tool> A system for {symbolic mathematics},
	especially General Relativity.  It was first implemented in
	{ATLAS} {assembly language} and later {Lisp}.

	See also {ALAM}.

	["CLAM Programmer's Manual", Ray d'Inverno & Russell-Clark,
	King's College London, 1971].

	(1994-11-08)

C Language Integrated Production System

	<language> (CLIPS) A language produced by Gary Riley of NASA
	{JSC} in Houston, Texas, for developing {expert systems}, with
	the inferencing and representation capabilities of {OPS5} and
	support for {forward chaining} rule-based, {object-oriented}
	and {procedural} programming.  CLIPS has a {Lisp}-like
	{syntax}.  It is available for {MS-DOS} and comes with source
	code in {C}.

	COSMIC, U Georgia, (404) 542-3265.  Austin Code Works
	<info@acw.com> (512) 258-0785.

	Versions include CLIPS 5.1, CLIPS/Ada 4.3 and CLIPS6.0 (see
	{PCLIPS}).

	{(http://jsc.nasa.gov/~clips/CLIPS.html)}.

	E-mail: <service@cossack.cosmic.uga.edu>.

	Telnet: cosmic.uga.edu, user: cosline.

	{U. Michigan
	(ftp://earth.rs.itd.umich.edu/mac.bin/etc/compsci/Clips/)},
	{ENSMP, France (ftp://ftp.ensmp.fr/pub/clips/)}.

	["Expert Systems: Principles and Programming", Joseph
	Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6].

	(1994-12-16)

Clarify

	<company> A software vendor, specialising in {Customer
	Relationship Management} software.  {Nortel Networks} sold
	Clarify to {Amdocs} in 2002.

	{(http://amdocsclarify.com/)}.

	(2003-06-20)

Clarion

	<language> A family of systems from {SoftVelocity, Inc.} for
	building {database} applications on {Microsoft Windows}.
	Clarion products include Clarion 4GL language with a {C++} and
	{Modula-2} {compiler}.  Clarion products support fast,
	efficient database application development.  Clarion was
	originally developed by Clarion Software Corporation, later to
	become TopSpeed Corporation.  In 2000, the Clarion product
	line was acquired by SoftVelocity Inc.

	(2003-10-15)

Claris

	<company> A subsidiary company of {Apple Computer, Inc.}.  In
	January 1998, Apple restructured Claris to concentrate on
	their {FileMaker} line of {database} {software} and changed
	the company's name to {FileMaker, Inc.}.

	(1998-02-18)

CLASP

	{Computer Language for AeronauticS and Programming}

class

	1. <programming> The prototype for an {object} in an
	{object-oriented language}; analogous to a {derived type} in a
	{procedural language}.  A class may also be considered to be a
	set of objects which share a common structure and behaviour.
	The structure of a class is determined by the {class
	variables} which represent the {state} of an object of that
	class and the behaviour is given by a set of {methods}
	associated with the class.

	Classes are related in a {class hierarchy}.  One class may be
	a specialisation (a "{subclass}") of another (one of its
	"{superclasses}") or it may be composed of other classes or it
	may use other classes in a {client-server} relationship.  A
	class may be an {abstract class} or a {concrete class}.

	See also {signature}.

	2. <programming> See {type class}.

	3. <networking> One of three types of {Internet addresses}
	distinguished by their most significant bits.

	3. <language> A language developed by the {Andrew Project}.
	It was one of the first attempts to add {object-oriented}
	features to {C}.

	(1995-05-01)

Class 5 switch

	<communications> The lowest designation used in {AT&T}'s
	hierarchical {General Toll Switching Plan}, developed in 1929.

	(2013-09-14)

class hierarchy

	<programming> A set of {classes} and their interrelationships.

	One class may be a specialisation (a "{subclass}" or "{derived
	class}") of another which is one of its "{superclasses}" or
	"{base classes}".

	When a {method} is invoked on an {object} it is first looked
	for in the object's class, then the superclass of that class,
	and so on up the hierarchy until it is found.  Thus a class
	need only define those methods which are specific to it, and
	inherits methods from all its superclasses.

	See also: {multiple inheritance}.

	(1997-08-06)

classic

	<jargon> An adjective used before or after a noun to describe
	the original version of something, especially if the original
	is considered to be better.

	Examples include "Star Trek Classic" - the original TV series
	as opposed to the films, ST The Next Generation or any of the
	other spin-offs and follow-ups; or "PC Classic" - {IBM}'s
	{ISA}-bus computers as opposed to the {PS/2} series.

	(1996-10-27)

Classic-Ada

	<language> An {object-oriented} extension to {Ada}, said to be
	like {Smalltalk}.  It is implemented as an {Ada}
	{preprocessor}.

	(1994-12-05)

classical logic

	<logic> Non-{intuitionistic logic}.

	(1995-04-13)

Classic C

	{K&R C}

Classless Inter-Domain Routing

	<networking> (CIDR) /sid*r/ A technique that summarises a
	block of {Internet addresses} in a {routing table} as an
	address in {dotted decimal notation} followed by a {forward
	slash} and a two-digit decimal number giving the number of
	leading one bits in the subnet mask.  For example,
	123.123.123.0/24 specifies a subnet mask of
	11111111.11111111.11111111.00000000 (binary), implying the
	block of addresses 123.123.123.0 through 123.123.123.255.

	CIDR is "classless" because it is not limited to the subnet
	masks specified by {Internet address} classes A, B and C.

	According to {RFC 1519}, CIDR was implemented to distribute
	Internet address space more efficiently and to provide a
	mechanism for {IP route aggregation}.  This in turn reduces
	the number of entries in IP routing tables, enabling faster,
	more efficient routing, e.g. using {routing} {protocols} such
	as {OSPF}.  CIDR is supported by {BGP4}.

	See also {RFC 1467}, {RFC 1518}, {RFC 1520}.

	(2006-01-26)

class library

	<programming> A {library} of reusable {class}es for use with
	an {object-oriented programming} system.

	(1994-12-05)

class method

	<programming> A kind of {method}, available in some
	{object-oriented programming} languages, that operates on the
	class as a whole, as opposed to an {object method} that
	operates on an object that is an instance of the class.

	A typical example of a class method would be one that keeps a
	count of the number of objects of that class that have been
	created.

	(2000-03-22)

Class Oriented Ring Associated Language

	<language> (CORAL) A language developed by L.G. Roberts at
	{MIT} in 1964 for graphical display and systems programming on
	the {TX-2}.  It used "rings" (circular lists) from
	{Sketchpad}.

	["Graphical Communication and Control Languages",
	L.B. Roberts, Information System Sciences: Proc Second
	Congress, 1965].

	[Sammet 1969, p.462].

	(1994-11-30)

Class-Relation Method

	<programming> A design technique based on the concepts of
	{object-oriented programming} and the {Entity-Relationship
	model} from the French company {Softeam}.

	(1994-12-05)

Clausal Language

	<language> (CL) A programming language and {proof system}
	developed by Paul Voda and a colleague since 1997, written in
	{Trilogy} II.

	{Paul Voda Home (http://fmph.uniba.sk/~voda)}.

	(2002-05-28)

clause

	1. <logic> A {logical formula} in {conjunctive normal form},
	which has the {schema}

	 p1 ^ ...^ pm => q1 V ... V qn.

	or, equivalently,

	 ~p1 V ... V ~pn V q1 V ... V qn,

	where pi and qi are {atoms}.

	The operators ~, ^, V, => are {connectives}, where ~ stands
	for {negation}, ^ for {conjunction}, V for {disjunction} and
	=> for {implication}.

	2. <grammar> A part of a sentence (or programming language
	statement) that does not constitute a full sentence, e.g. an
	adjectival clause in human language or a WHERE clause in a
	{SQL} statement.

	(2004-05-28)

Clean

	<language> A {lazy} {higher-order} {purely functional
	language} from the {University of Nijmegen}.  Clean was
	originally a subset of {Lean}, designed to be an experimental
	{intermediate language} and used to study the {graph
	rewriting} model.  To help focus on the essential
	implementation issues it deliberately lacked all {syntactic
	sugar}, even {infix} expressions or {complex lists},

	As it was used more and more to construct all kinds of
	applications it was eventually turned into a general purpose
	functional programming language, first released in May 1995.
	The new language is {strongly typed} (Milner/Mycroft type
	system), provides {modules} and {functional I/O} (including a
	{WIMP} interface), and supports {parallel processing} and
	{distributed processing} on {loosely coupled} parallel
	architectures.  Parallel execution was originally based on the
	{PABC} {abstract machine}.

	It is one of the fastest implementations of functional
	languages available, partly aided by programmer {annotations}
	to influence evaluation order.

	Although the two variants of Clean are rather different, the
	name Clean can be used to denote either of them.  To
	distinguish, the old version can be referred to as Clean 0.8,
	and the new as Clean 1.0 or Concurrent Clean.

	The current release of Clean (1.0) includes a compiler,
	producing code for the {ABC} {abstract machine}, a {code
	generator}, compiling the ABC code into either {object-code}
	or {assembly language} (depending on the {platform}), I/O
	libraries, a {development environment} (not all platforms),
	and {documentation}.  It is supported (or will soon be
	supported) under {Mac OS}, {Linux}, {OS/2}, {Windows 95},
	{SunOS}, and {Solaris}.

	{(http://cs.kun.nl/~clean/)}.  E-mail:
	<clean@cs.kun.nl>.  Mailing list: <clean-request@cs.kun.nl>.

	["Clean - A Language for Functional Graph Rewriting", T. Brus
	et al, IR 95, U Nijmegen, Feb 1987].

	["Concurrent Clean", M.C. van Eekelen et al, TR 89-18, U
	Nijmegen, Netherlands, 1989].

	[{Jargon File}]

	(1995-11-08)

clean

	<jargon>

	1. Used of hardware or software designs, implies "elegance in
	the small", that is, a design or implementation that may not
	hold any surprises but does things in a way that is reasonably
	intuitive and relatively easy to comprehend from the outside.
	The antonym is "grungy" or {crufty}.

	2. To remove unneeded or undesired files in a effort to reduce
	clutter: "I'm cleaning up my account."  "I cleaned up the
	garbage and now have 100 Meg free on that partition."

	[{Jargon File}]

	(1994-12-12)

cleanroom

	<programming> A software development approach aimed at
	producing software with the minimum number of {errors}.

	(1994-12-12)

CLEAR

	<language> A {specification language} based on {initial
	algebras}.

	["An Informal Introduction to Specification Using CLEAR",
	R.M. Burstall in The Correctness Problem in Computer Science,
	R.S. Boyer et al eds, Academic Press 1981, pp. 185-213].

	(1994-11-03)

clear box testing

	{white box testing}

Clear Language for Expressing Orders

	<language> (CLEO) A language developed by {ICL} in the 1960s
	and used until early 1972 on {Leo} III {mainframes}.

	(1994-11-03)

CLEO

	{Clear Language for Expressing Orders}

CLHEP

	<library> A {C++} {class library} for high energy physics
	{applications}.

	(1994-12-12)

CLI

	1. <operating system> {Command Line Interface}.

	2. <database, standard> {Call-Level Interface}.

CLiCC

	<language> A {Common Lisp} to {C} compiler by Heinz Knutzen
	<hk@informatik.uni-kiel.de>, Ulrich Hoffman
	<uho@informatik.uni-kiel.de> and Wolfgang Goerigk
	<wg@informatik.uni-kiel.de>.  CLiCC is meant to be used as a
	supplement to existing {CLISP} systems for generating
	{portable} {applications}.  Target {C} code must be linked
	with the CLiCC {run-time library} to produce an {executable}.

	Version 0.6.2 conforms to a subset of {Common Lisp} and {CLOS}
	called {CL_0} or {CommonLisp_0} and based on {CLtL1}.  It runs
	with {Lucid Lisp}, {AKCL} or {CLISP}.  Work on {CLtL2} and
	{ANSI-CL} conformance is in progress.

	{(ftp://ftp.informatik.uni-kiel.de/pub/kiel/apply/)}.

	(1994-01-04)

click

	<hardware> To press and release a {button} on a {mouse} or
	other {pointing device}.  This generates an {event}, also
	specifying the screen position, which is processed by the
	{window manager} or {application program}.

	On a mouse with more than one button, the unqualified term
	usually implies pressing the left-most button (with the right
	index finger), other buttons would be qualified,
	e.g. "{right-click}".  Multiple clicks in quick succession,
	e.g. a double-click, often have a different meaning from slow
	single clicks.  {Keyboard} modifiers may also be used,
	e.g. "shift-click", meaning to hold down the shift key on the
	keyboard while clicking the mouse button.

	If the mouse moves while the button is pressed then this is a
	{drag}.

	(1995-03-14)

client

	<programming> A computer system or process that requests a
	service of another computer system or process (a "{server}")
	using some kind of {protocol} and accepts the server's
	responses.  A client is part of a {client-server} software
	architecture.

	For example, a {workstation} requesting the contents of a file
	from a {file server} is a client of the file server.

	(1997-10-27)

client-server

	<programming> A common form of {distributed system} in which
	software is split between {server} tasks and {client} tasks.
	A client sends requests to a server, according to some
	{protocol}, asking for information or action, and the server
	responds.

	This is analogous to a customer (client) who sends an order
	(request) on an order form to a supplier (server) who
	despatches the goods and an invoice (response).  The order
	form and invoice are part of the "protocol" used to
	communicate in this case.

	There may be either one centralised server or several
	distributed ones.  This model allows clients and servers to be
	placed independently on {nodes} in a {network}, possibly on
	different {hardware} and {operating systems} appropriate to
	their function, e.g. fast server/cheap client.

	Examples are the name-server/name-resolver relationship in
	{DNS}, the file-server/file-client relationship in {NFS} and
	the screen server/client application split in the {X Window
	System}.

	{Usenet} newsgroup: {news:comp.client-server}.

	["The Essential Client/Server Survival Guide", 2nd edition,
	1996].

	(1998-01-25)

client/server

	{client-server}

Client-Server Analyst Programmer

	<job> A person who analyses and designs {application programs}
	for a {client-server architecture}.  Typical skills include
	{ODBC}, {Windows 95}, {Windows NT}, {Macintosh}, {Novell},
	{OS/2}, {Unix}, and {RPC}.

	(2004-03-09)

client-server model

	{client-server}

Client To Client Protocol

	<networking> (CTCP) A type of {protocol} created to allow
	structured data such as {font} information to be exchanged
	between users on {IRC}.  It is also used to send a query to a
	user.  The available CTCP commands include VERSION, FINGER,
	DCC CHAT, DCC SEND, TIME, PING, ECHO, CLIENTINFO.  Some
	commands are not available on some IRC {client} software.

	(1995-04-12)

C++Linda

	<language>

	["The AUC C++Linda System", C. Callsen et al, U Aalborg, in
	Linda-Like Systems and Their Implementation, G. Wilson ed, U
	Edinburgh TR 91-13, 1991].

	(1994-12-12)

C-Linda

	<language> The most widely used variant of {Linda}, with {C}
	as the base language.  It is available from Sci Comp Assocs
	<linda@sca.com>.

	(1994-12-12)

CLIP

	1. {Compiler Language for Information Processing}.

	2. {Common LISP in Parallel}.

CLiP

	<programming, tool> A {documentation} extractor by Eric W. van
	Ammers that recognises a particular style of {comments}.  This
	style can be adjusted to suit virtually any programming
	language and target documentation language.  CLiP was designed
	to be compatible with {hypertext} systems.

	Version 2.1 runs on {MS-DOS}, {VAX}/{VMS} and {Unix}

	{(ftp://sun01.info.wau.nl/clip/)}.

	(1993-11-18)

clipboard

	<operating system> A temporary memory area, used to transfer
	information within a document being edited or between
	documents or between programs.  The fundamental operations are
	"cut" which moves data from a document to the clipboard,
	"copy" which copies it to the clipboard, and "paste" which
	inserts the clipboard contents into the current document in
	place of the current selection.

	Different {Graphical User Interfaces} vary in how they handle
	the different types of data which a user might want to
	transfer via the clipboard, some (e.g. the {X Window System})
	support only plain text, others (e.g. {NEXTSTEP}) support
	arbitrarily typed data such as images.

	(1996-08-23)

Clipper

	1. <hardware, cryptography> An {integrated circuit} which
	implements the {SkipJack} {algorithm}.  The Clipper is
	manufactured by the US government to encrypt telephone data.
	It has the added feature that it can be decrypted by the US
	government, which has tried to make the chip compulsory in the
	United States.  Phil Zimmerman (inventor of {PGP}) remarked,
	"This doesn't even pass the sniff test" (i.e. it stinks).

	{(http://wired.com/clipper/)}.

	{news:alt.privacy.clipper}

	2. A compiled {dBASE} dialect from Nantucket Corp, LA.
	Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5
	(Japanese Kanji), 5.0.  It uses the {Xbase} programming
	language.

	(2004-09-01)

CLIPS

	{C Language Integrated Production System}

clique

	<mathematics> A {maximal} {totally connected} {subgraph}.
	Given a {graph} with {nodes} N, a clique C is a {subset} of N
	where every node in C is directly connected to every other
	node in C (i.e. C is totally connected), and C contains all
	such nodes (C is maximal).  In other words, a clique contains
	all, and only, those nodes which are directly connected to all
	other nodes in the clique.

	[Is this correct?]

	(1996-09-22)

CLISP

	<language>

	1. {Conversational LISP}.

	2. A {Common Lisp} implementation by {Bruno Haible
	(http://haible.de/bruno/)} of {Karlsruhe University} and
	{Michael Stoll (http://math.uni-duesseldorf.de/~stoll/)}.
	of {Munich University}, both in Germany.  CLISP includes an
	{interpreter}, {bytecode compiler}, almost all of the {CLOS}
	{object system}, a {foreign language interface} and a {socket
	interface}.  An {X11} interface is available through {CLX} and
	{Garnet}.  Command line editing is provided by the {GNU}
	readline library.  CLISP requires only 2 MB of {RAM}.  The
	{user interface} comes in German, English, French, Spanish,
	Dutch, and Russian and can be changed at {run time}.

	CLISP is {Free Software} and distributed under the {GPL}.  It
	runs on {microcomputers} ({OS/2}, {Microsoft Windows},
	{Amiga}, {Acorn}) as well as on {Unix} workstations ({Linux},
	{BSD}, {SVR4}, {Sun4}, {Alpha}, {HP-UX}, {NeXTstep}, {SGI},
	{AIX}, {Sun3}, and others).

	{Official web page (http://clisp.cons.org)}.  {Mailing list
	(http://lists.sourceforge.net/lists/listinfo/clisp-list)}.

	(2003-08-04)

Clive Sinclair

	<person> Sir Clive Sinclair (1939- ) The British inventor who
	pioneered the home {microcomputer} market in the early 1980s,
	with the introduction of low-cost, easy to use, {8-bit}
	computers produced by his company, {Sinclair Research}.

	Sir Clive also invented and produced a variety of electronic
	devices from the 1960s to 1990s, including pocket calculators
	(he marketed the first pocket calculator in the world),
	radios and televisions.  Perhaps he is most famous (or some
	might say notorious) for his range electric vehicles,
	especially the Sinclair C5, introduced in 1985.  He has been a
	member of MENSA, the high IQ society, since 1962.

	{Planet Sinclair (http://nvg.ntnu.no/sinclair/)}.

	["The Sinclair Story", Rodney Dale, pub. Duckworth 1985]

	(1998-11-09)

CLIX

	<language> ["Overview of a Parallel Object-Oriented Language
	CLIX", J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987,
	pp. 265-273].

	(1994-12-16)

CLM

	{Career Limiting Move}

CLNP

	{ConnectionLess Network Protocol}

clobber

	<jargon> To overwrite, usually unintentionally: "I walked off
	the end of the array and clobbered the stack."

	Compare {mung}, {scribble}, {trash}, {smash the stack}.

	[{Jargon File}]

	(1994-12-16)

clock

	<processor> A circuit in a {processor} that generates a
	regular sequence of electronic pulses used to synchronise
	operations of the processor's components.  The time between
	pulses is the {cycle time} and the number of pulses per second
	is the {clock rate} (or frequency).

	The execution times of instructions on a computer are usually
	measured by a number of clock cycles rather than seconds.
	{Clock rates} for various models of the computer may increase
	as technology improves, and it is usually the relative times
	one is interested in when discussing the {instruction set}.

	(1994-12-16)

clock frequency

	{clock rate}

clock rate

	<processor, benchmark> The fundamental rate in {cycles} per
	second at which a computer performs its most basic operations
	such as adding two numbers or transfering a value from one
	{register} to another.

	The clock rate of a computer is normally determined by the
	frequency of a crystal.  The original {IBM PC}, circa 1981,
	had a clock rate of 4.77 MHz (almost five million
	cycles/second).  As of 1995, {Intel}'s Pentium chip runs at
	100 MHz (100 million cycles/second).  The clock rate of a
	computer is only useful for providing comparisons between
	computer chips in the same {processor family}.  An {IBM PC}
	with an {Intel 486} {CPU} running at 50 MHz will be about
	twice as fast as one with the same CPU, memory and display
	running at 25 MHz.  However, there are many other factors to
	consider when comparing different computers.  Clock rate
	should not be used when comparing different computers or
	different processor families.  Rather, some {benchmark} should
	be used.  Clock rate can be very misleading, since the amount
	of work different computer chips can do in one cycle varies.
	For example, {RISC} CPUs tend to have simpler instructions
	than {CISC} CPUs (but higher clock rates) and {pipelined}
	processors execute more than one instruction per cycle.

	(1995-01-12)

clock speed

	{clock rate}

clone

	<jargon> 1. An exact copy of a product, made legally or
	illegally, from {documentation} or by {reverse engineering},
	and usually cheaper.

	E.g. "PC clone": a PC-BUS/{ISA}, {EISA}, {VESA}, or {PCI}
	compatible {x86}-based {microcomputer} (this use is sometimes
	misspelled "klone" or "PClone").  These invariably have much more
	bang per buck than the {IB PCM} they resemble.

	E.g. "Unix clone": An {operating system} designed to deliver a
	{Unix}-like environment without Unix licence fees or with
	additional "mission-critical" features such as support for
	{real-time} programming.

	2. <chat> A {clonebot}.

	[{Jargon File}]

	(2000-06-15)

clone-and-hack coding

	{case and paste}

clonebot

	<chat> (Or "clone") A {bot} meant to replicate itself en masse
	on a {talk} network (generally {IRC}).  A bot appears on the
	network as several {agents}, and then carries out some task,
	typically that of {flood}ing another user.

	Compare {ghost}.

	(1997-04-07)

CLOS

	{Common LISP Object System}

closed-box testing

	{functional testing}

closed set

	<mathematics> A set S is closed under an operator * if x*y is
	in S for all x, y in S.

	(1994-12-16)

closed term

	<theory> A term with no {free variables}.

	(1994-12-16)

Clos network

	<networking> A type of {network} topology that can connect N
	inputs to N outputs with less that N^2 crosspoint switches.

	(2006-10-07)

closure

	1. <programming> In a {reduction system}, a closure is a data
	structure that holds an expression and an environment of
	variable bindings in which that expression is to be evaluated.
	The variables may be local or global.  Closures are used to
	represent unevaluated expressions when implementing
	{functional programming languages} with {lazy evaluation}.  In
	a real implementation, both expression and environment are
	represented by pointers.

	A {suspension} is a closure which includes a flag to say
	whether or not it has been evaluated.  The term "{thunk}" has
	come to be synonymous with "closure" but originated outside
	{functional programming}.

	2. <theory> In {domain theory}, given a {partially ordered
	set}, D and a subset, X of D, the upward closure of X in D is
	the union over all x in X of the sets of all d in D such that
	x <= d.  Thus the upward closure of X in D contains the
	elements of X and any greater element of D.  A set is "upward
	closed" if it is the same as its upward closure, i.e. any d
	greater than an element is also an element.  The downward
	closure (or "left closure") is similar but with d <= x.  A
	downward closed set is one for which any d less than an
	element is also an element.

	("<=" is written in {LaTeX} as {\subseteq} and the upward
	closure of X in D is written \uparrow_\{D} X).

	(1994-12-16)

closure conversion

	<theory> The transformation of {continuation passing style}
	code so that the only {free variables} of {functions} are
	names of other functions.

	See also {Lambda lifting}.

	(1994-12-16)

cloud

	{cloud computing}

cloud computing

	<architecture> A loosely defined term for any system providing
	access via the {Internet} to processing power, storage,
	software or other computing services, often via a {web
	browser}.  Typically these services will be rented from an
	external company that hosts and manages them.

	(2009-04-21)

Clover

	<communications, protocol> A {protocoll} similar to {packet
	radio} or {AMTOR}.

	(1995-03-03)

clover key

	{feature key}

CLP

	1. {Cornell List Processor}.

	2. {Constraint Logic Programming}.

CLP*

	<language, logic programming> A derivative of {Constraint
	Logic Programming} (CLP).

	["CLP* and Constraint Abstraction", T. Hickey, 16th POPL,
	pp. 125-133, 1989].

	[Difference?]

	(1994-11-01)

CLP(R)

	<language> Constraint Logic Programming (Real) A {constraint
	logic programming} language with {real} arithmetic
	{constraints} developed by Joxan Jaffar <joxan@watson.ibm.com>
	of {IBM} {TJWRC} and S. Michaylov of {Monash University} in
	1986.

	The implementation contains a {byte-code compiler} and a
	built-in {constraint} solver which deals with {linear
	arithmetic} and contains a mechanism for delaying {nonlinear}
	constraints until they become linear.  Since CLP(R) is a
	superset of {PROLOG}, the system is also usable as a
	general-purpose {logic programming} language.  There are also
	powerful facilities for {meta programming} with constraints.

	Significant CLP(R) applications have been published in diverse
	areas such as molecular biology, finance and physical
	modelling.

	Version 1.2 for {Unix}, {MS-DOS} and {OS/2} is available from
	the authors.  It is free for academic and research purposes.

	E-mail: Roland Yap <roland@bruce.cs.monash.edu.au>.

	["The CLP(R) Language and System", J. Jaffar et al, IBM RR
	RC16292 (#72336), Nov 1990].

	(1992-10-14)

CLP(sigma*)

	<language> A {constraint logic programming} language with
	{regular sets}.

	["CLP(sigma*): Constraint Logic Programming with Regular
	Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190].

	(1994-12-16)

CLR

	{Consortium for Lexical Research}

CLtL1

	<publication> A report on {Common LISP}:

	["Common LISP: The Language", Guy L. Steele, Digital Press
	1984, ISBN 0-932376-41-X].

	(1994-12-16)

CLtL2

	{Aluminum Book}

CLU

	<language> (CLUster) An {object-oriented} programming language
	developed at {MIT} by {Liskov} et al in 1974-1975.

	CLU is an {object-oriented} language of the {Pascal} family
	designed to support {data abstraction}, similar to {Alphard}.
	It introduced the {iterator}: a {coroutine} yielding the
	elements of a data object, to be used as the sequence of
	values in a {for loop}.

	A CLU program consists of separately compilable {procedures},
	{clusters} and iterators, no nesting.  A cluster is a module
	naming an {abstract type} and its operations, its internal
	representation and implementation.  Clusters and iterators may
	be generic.  Supplying actual constant values for the
	{parameters} instantiates the {module}.

	There are no {implicit type conversions}.  In a cluster, the
	explicit type conversions 'up' and 'down' change between the
	abstract type and the representation.  There is a universal
	type 'any', and a procedure force[] to check that an object is
	a certain type.  Objects may be mutable or {immutable}.

	{Exceptions} are raised using 'signal' and handled with
	'except'.  {Assignment} is by sharing, similar to the sharing
	of data objects in {Lisp}.  Arguments are passed by
	{call-by-sharing}, similar to {call-by-value}, except that the
	arguments are objects and can be changed only if they are
	mutable.  CLU has {own variables} and multiple assignment.

	CLU was one of {Kamin's interpreters}.  {clu2c} compiled CLU to
	{C}.  {Concurrent CLU} was an extension designed to support
	parallel proceses.

	["CLU Reference Manual", Barbara Liskov et al, LNCS 114,
	Springer 1981].

	E-mail: Paul R. Johnson <prj@pm-prj.lcs.mit.edu>.

	{Versions for Sun and VAX/VMS
	(ftp://pion.lcs.mit.edu/pub/clu/)}.  {Portable version
	(ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}.

	(1994-12-16)

clu2c

	<tool> A {CLU} to {C} {compiler}.

	{(ftp://ftp.is.titech.ac.jp/pub/clu2c/)}.

	(2000-08-06)

cluster

	1. <architecture> Multiple {servers} providing the same
	service.  The term may imply {resilience} to failure and/or
	some kind of {load balancing} between the servers.  Compare
	{RAIS}.

	2. <file system> An elementary unit of allocation of a {disk}
	made up of one or more physical {blocks}.

	A {file} is made up of a whole number of possibly
	non-contiguous clusters.  The cluster size is a tradeoff
	between space efficiency (the bigger is the cluster, the
	bigger is on the average the wasted space at the end of each
	file) and the length of the {FAT}.

	(1996-11-04)

Cluster 86

	<language> A {distributed} {object-oriented} language by
	L. Shang <lshang@inf.ethz.ch> of {Nanjing University},
	ca. 1986.  A cluster is a {metatype}.

	There are versions for {MS-DOS} and {Unix}.

	["Cluster: An Informal Report", L. Shang, SIGPLAN Notices
	26(1):57-76, Jan 1991].

	(1994-12-21)

clustergeeking

	<jargon> /kluh'st*r-gee"king/ ({CMU}) Spending more time at a
	computer cluster doing CS homework than most people spend
	breathing.

	[{Jargon File}]

	(1994-12-21)

clustering

	{cluster}

CLUT

	{colour palette}

CLV

	{Constant Linear Velocity}

CLX

	<library, graphics> The {Common Lisp} library providing a
	low-level interface to the {X Window System}, equivalent to
	{Xlib}.  {Graphics toolkits} can be built on top of CLX,
	e.g. {McCLIM}, {Garnet}, {CLUE} and {CLIO}.  Various LISP
	implementors have independently ported CLX to their own
	{platforms}, fixing {bugs} and, in some cases, adding features
	in the process.

	{CLX Wiki (http://cliki.net/CLX)}.

	(2004-08-27)

CM

	{Configuration Management}

cm

	<networking> The {country code} for Cameroon.

	(1999-01-27)

CMA

	{Concert Multithread Architecture} from {DEC}.

CMAY

	<operating system> A {microkernel}.

	["A Microkernel for Distributed Applications", R. Bagrodia et
	al, Proc 5th Intl Conf Distrib Comp Sys IEEE 1985,
	pp. 140-149].

	(1994-12-21)

CMC

	1. <messaging> {Computer Mediated Communication}.

	2. <hardware> {Common Mezzanine Card}.

cmd

	<operating system> The {command interpreter} of {Microsoft
	Disk Operating System}.  cmd.exe appears as the interactive
	"Command Prompt" window in later versions of {Microsoft
	Windows} and is also responsible for executing .bat {batch
	files}.

	(2009-11-30)

CMGA

	1. <body> {Computer Management Group of Australia}

	2. <body> {Community of Massive Gaming Agency}.

CMIP

	{Common Management Information Protocol}

CMIS

	{Common Management Information Services}

CML

	1. A {query language}.

	["Towards a Knowledge Description Language", A. Borgida et al,
	in On Knowledge Base Management Systems, J. Mylopoulos et al
	eds, Springer 1986].

	2. {Concurrent ML}.

	(1994-12-21)

CMM

	{Capability Maturity Model}

CMOS

	{Complementary Metal Oxide Semiconductor}

CMP

	1. {cellular multiprocessing}.

	2. {Container Managed Persistance}.

	3. {Configuration Management Plan}.

CMS

	<programming> A {code management} system from {DEC}.

	(1994-12-21)

CMS-2

	<language> A general purpose language used for command and
	control applications in the US Navy.  Variants: CMS-2M and
	CMS-2Y.

	["CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San
	Diego CA, Oct 1976].

	(1994-12-21)

CMU

	{Carnegie Mellon University}

CMU CL

	{CMU Common Lisp}

CMU Common Lisp

	<language> (CMU CL) A {public domain} "industrial strength"
	{Common Lisp} programming environment.  Many of the {X3J13}
	changes have been incorporated into CMU CL.  Wherever
	possible, this has been done so as to transparently allow use
	of either {CLtL1} or proposed {ANSI CL}.  Probably the new
	features most interesting to users are {SETF} functions,
	{LOOP} and the {WITH-COMPILATION-UNIT} {macro}.

	The new CMU CL compiler is called {Python}.

	Version 17c includes an {incremental compiler}, profiler,
	run-time support, documentation, an editor and a debugger.  It
	runs under {Mach} on {SPARC}, {MIPS} and {IBM PC RT} and under
	{SunOS} on {SPARC}.

	{(ftp://lisp-sun1.slisp.cs.cmu.edu/pub/)}.

	E-mail: <slisp@cs.cmu.edu>.

	(1993-11-18)

CMVC

	{Configuration Management Version Control} from {IBM}.

CMYK

	<graphics> cyan, magenta, yellow, key.

	A {colour model} that describes each {colour} in terms of the
	quantity of each secondary colour (cyan, magenta, yellow), and
	"key" (black) it contains.  The CMYK system is used for
	printing.  For mixing of pigments, it is better to use the
	secondary colours, since they mix subtractively instead of
	additively.  The secondary colours of light are cyan, magenta
	and yellow, which correspond to the primary colours of pigment
	(blue, red and yellow). In addition, although black could be
	obtained by mixing these three in equal proportions, in
	four-colour printing it always has its own ink.  This gives
	the CMYK model.  The K stands for "Key' or 'blacK,' so as not
	to cause confusion with the B in {RGB}.

	Alternative colour models are {RGB} and {HSB}.

	(1994-12-22)

CMZ

	<programming> A {portable} {interactive} {code management}
	system from {CodeME} S.A.R.L in use in the high-energy physics
	community.

	(1994-12-22)

cn

	<networking> The {country code} for China.

	(1999-01-27)

CNAME

	<networking> The {canonical name} query type for {Domain Name
	System}.  This query asks a DNS {server} for a {host}'s
	official {hostname}.

	(1994-12-22)

CNC

	{Collaborative Networked Communication}

CNET

	<body> Centre national d'Etudes des Telecommunications.  The
	French national telecommunications research centre at Lannion.

	(1994-12-22)

CNI

	{Coalition for Networked Information}

CNN

	<architecture> {Cellular Neural Network}.

CNR

	{Communication and Network Riser}

CNRI

	{Corporation for National Research Initiatives}

co

	<networking> The {country code} for Colombia.

	(1999-01-27)

CO2

	<language, database> An {object-oriented} {database} language
	combining {C} and {O2}, from GIP Altair, Versailles, France.

	[Francois Bancilon et al, in Advances in Object-Oriented
	Database Systems, K.R. Dittrich ed, LNCS 334, Springer 1988].

	(1994-12-22)

Coad/Yourdon

	<programming> An {object-oriented analysis} and design
	{methodology}, developed by {edward Yourdon} and Peter Coad.

	(1995-04-07)

COALA

	<language>

	["COALA: The Object Code of the Compiler Producing System", S.
	Kruszewski et al, MERA, Warsaw 1974].

	(1994-12-22)

coalesced sum

	<theory> (Or "smash sum") In {domain theory}, the coalesced
	sum of {domains} A and B, A (+) B, contains all the
	non-{bottom} elements of both domains, tagged to show which
	part of the sum they come from, and a new {bottom} element.

	 D (+) E = { bottom(D(+)E) }
		   U { (0,d) | d in D, d /= bottom(D) }
		   U { (1,e) | e in E, e /= bottom(E) }

	The bottoms of the constituent domains are coalesced into a
	single bottom in the sum.  This may be generalised to any
	number of domains.

	The ordering is

		bottom(D(+)E) <= v  For all v in D(+)E

		(i,v1) <= (j,v2)    iff i = j & v1 <= v2

	"<=" is usually written as {LaTeX} \sqsubseteq and "(+)" as
	{LaTeX} \oplus - a "+" in a circle.

	(1994-12-22)

Coalition for Networked Information

	<body> (CNI) A consortium formed by American Research
	Libraries, {CAUSE} and {EDUCOM} to promote the creation of,
	and access to, information resources in networked environments
	in order to enrich scholarship and enhance intellectual
	productivity.

	(1994-12-22)

coarse grain

	{granularity}

COAST

	{Cache On A STick}

coax

	{coaxial cable}

coaxial cable

	<hardware> A kind of cable with a solid central conductor
	surrounded by insulator, in turn surrounded by a cylindrical
	shield woven from fine wires.  It is used to carry high
	frequency signals such as {video} or {radio}.  The shield is
	usually connected to electrical ground to reduce electrical
	interference.

	(1995-03-28)

COBOL

	{COmmon Business Oriented Language}

COBOL-1961 Extended

	<language> A short-lived separation of {COBOL} specifications.

	[Sammet 1969, p. 339].

	(1994-10-28)

COBOL fingers

	<jargon> /koh'bol fing'grz/ Reported from Sweden, a
	hypothetical disease one might get from coding in {COBOL}.
	The language requires code verbose beyond all reason (see
	{candygrammar}); thus it is alleged that programming too much
	in COBOL causes one's fingers to wear down to stubs by the
	endless typing.

	[{Jargon File}]

	(1994-12-22)

COBRA

	<spelling> Do you mean {CORBA}?  Or is there a COBRA?

	(1996-05-10)

cobwebsite

	<jargon, World-Wide Web> A {World-Wide Web} site that hasn't
	been updated for a long time.  A dead {web page}.

	(1997-04-29)

Cocktail

	{GMD Toolbox for Compiler Construction}

cocktail shaker sort

	<algorithm> A bi-directional {bubble sort}.  Passes alternate
	between ascending through array indexes, pushing the largest
	item to the bottom; and descending through array indexes,
	pushing the smallest item to the top.

	[Performace vs plain bubble?]

	(2001-03-26)

CoCo

	<computer> The {Tandy} Color Computer with a Motorola
	{MC6809E} {CPU}.  The {Dragon} is a CoCo clone.  The CoCo was
	as powerful as the {IBM XT} at the time it was made, and could
	run {OS-9}.

	(1997-02-12)

Cocol

	{Coco Language}

Coco Language

	<language> (Cocol) A language for writing left-attributed {LL1
	grammars}, used as the input language for the {Coco} LL1
	{parser generator}, which produces {Modula-2 table-driven
	parsers} as output.

	Cocol-2 is a version for the Coco-2 generator.  {Cocol/R} is
	an improvement over the original Cocol and Cocol-2.

	{(ftp://neptune.inf.ethz.ch/)}.

	["A Compiler Generator for Microcomputers", P. Rechenberg et
	al, P-H 1989].

	(1997-12-09)

Cocol/R

	<language> (Coco Language) A language for writing
	left-attributed {LL1 grammars}, used as the input language for
	the {Coco/R} LL1 {parser generators}, which produce {C++},
	{Pascal}, {Modula-2}, {Java} or {Oberon} {recursive-descent
	parsers} and associated {scanners} as output.

	Cocol/R is an improvement over the original {Cocol} and
	Cocol-2.

	[Moessenboeck, H., "A Generator for Fast Compiler Front-Ends",
	Report 127, Dept. Informatik, ETH Zurich, 1990].

	(1997-12-09)

COCOMO

	{Constructive Cost Model}

Coco/R

	<tool> A program by Hanspeter Moessenboeck
	<moessenboeck@ssw.uni-linz.ac.at> which generates {recursive
	descent parsers} and their associated {scanners} from
	{attributed grammars} (LL1).  Coco/R can {bootstrap} itself to
	generate its own driver, {parser}, scanner and {semantic
	evaluator} from an attributed grammar included in the
	distribution.

	Versions exist for generating {Oberon}, {Modula-2}, {Pascal},
	{C}, and {C++} source for {MS-DOS} and {Unix}.  A {Java}
	implementation was planned.

	Latest version: 1.34, as gf 1994-10-13.

	Coco/R was ported to {Modula-2} by Marc Brandis, Christof
	Brass, and Pat Terry.

	{(ftp://ftp.ssw.uni-linz.ac.at/pub/Coco)}.

	Mail server: <server@ftp.psg.com> (Subject: send
	pub/modula-2/coco/).

	E-mail: Pat Terry <p.terry@ru.ac.za> (Modula/Pascal versions),
	Hanspeter Moessenboeck <moessenboeck@ssw.uni-linz.ac.at>
	(Oberon, Java versions), Frankie Arzu <farzu@uvg.edu.gt> (C,
	C++ versions).

	["A compiler generator for microcomputers", by Rechenberg and
	Mossenbock, Prentice Hall, 1989, 0-13-155136-1].

	[Moessenboeck, H., "A Generator for Fast Compiler Front-Ends",
	Report 127, Dept. Informatik, ETH Zurich, 1990].

	[Terry, P.D., "Compilers and Compiler Generators: An
	Introduction with C++", ITCP: ISBN 1-85032-298-8].

	(1997-12-09)

CODASYL

	{Conference On DAta SYstems Languages}

Codd's First Normal Form

	{database normalisation}

Codd's reduction algorithm

	<database> An {algorithm} to convert an arbitrary expression
	of the {relational calculus} to an equivalent expression of
	the {relational algebra}.  This can be used as the basis of an
	implementation of the relational calculus.

	(1998-10-05)

code

	1. <software> Instructions for a computer in some programming
	language, often {machine language} (machine code).

	The word "code" is often used to distinguish instructions from
	{data} (e.g. "The code is marked 'read-only'") whereas the
	word "{software}" is used in contrast with "{hardware}" and
	may consist of more than just code.

	(2000-04-08)

	2. <cryptography> Some method of {encryption} or the resulting
	encrypted message.

	(2006-11-10)

Code 2.0

	<language> A {coarse-grain} {dataflow} language with a graphical
	interface for users to draw communication structure.

	{(http://cs.utexas.edu/users/code)}.

	E-mail: Emery Berger <emery@cs.utexas.edu>.

	["The CODE 2.0 Parallel Programming Language", P. Newton et
	al, Proc ACM Intl Conf on Supercomput, Jul 1992].

	(1996-01-13)

codebook

	{data dictionary}

CODEC

	{coder/decoder}

CodeCenter

	<programming> (Formerly {Saber-C}) A proprietary {software
	development environment} for {C} programs, offering an
	integrated toolkit for developing, testing, debugging and
	maintainance.

	(1994-12-23)

coded character set

	<character, standard> A mapping, generally 1:1, from a set of
	{integers}, known as {character codes} or {code positions}, to
	a set of {characters} that may include letters, digits,
	punctuation, {control codes}, mathematical and typographic
	symbols.

	There are several {standard} coded character sets, the most
	widely used is {ASCII}, generally in its {Latin-1} dialect,
	with {Unicode} becoming slowly more common; while {EBCDIC} and
	{Baudot} are extinct except in {legacy systems}.

	(2009-01-06)

Code Division Multiple Access

	<communications> (CDMA) (Or "spread spectrum") A form of
	{multiplexing} where the transmitter encodes the signal using
	a {pseudorandom} sequence which the receiver also knows and
	can use to decode the received signal.  Each different random
	sequence corresponds to a different communication channel.

	{Motorola} uses CDMA for digital cellular phones.  Qualcomm
	pioneered the introduction of CDMA into wireless telephone
	services.

	(2001-03-28)

code division multiplexing

	{Code Division Multiple Access}

Code-Generator Generator Language

	<language> ("seagull") (CGGL) A {machine description language}
	based on modelling the computer as a {finite-state machine}.

	["A Code Generator Generator Language", M.K. Donegan et al,
	SIGPLAN Notices 14(8):58-64, Aug 1979].

	(1994-10-24)

code grinder

	<jargon, abuse> A {suit}-wearing minion of the sort hired in
	legion strength by banks and insurance companies in the {Real
	World} to implement payroll packages in {RPG} and other such
	unspeakable horrors.  In its native habitat, the code grinder
	often removes the suit jacket to reveal an underplumage
	consisting of button-down shirt (starch optional) and a tie.
	In times of dire stress, the sleeves (if long) may be rolled
	up and the tie loosened about half an inch.  It seldom helps.
	The {code grinder}'s milieu is about as far from hackerdom as
	one can get and still touch a computer; the term connotes
	pity.

	Used of or to a {hacker}, this term is a really serious slur
	on the person's creative ability; it connotes a design style
	characterised by primitive technique, rule-boundedness, {brute
	force} and utter lack of imagination.

	Compare {card walloper}.  Contrast {real programmer}.

	[{Jargon File}]

	(1994-11-11)

code management

	{source code management}

code police

	<humour> (By analogy with George Orwell's "Thought Police" in
	"1984") A mythical team of Gestapo-like storm troopers that
	enforce programming style rules.  Used ironically, to suggest
	that the practice under discussion is condemned mainly by
	anal-retentive {weenies}.  "Dike out that {goto} or the code
	police will get you!"  The ironic usage is perhaps more
	common.

	[{Jargon File}]

	(1994-12-08)

code position

	<character> An {integer} that a {coded character set} maps to
	a {character}.  A code position is normally stored or
	transmitted by applying a {character encoding} to turn it into
	a {byte string}.

	(2002-03-03)

coder/decoder

	<communications> (CODEC) An electronic device or component
	combining the circuits needed to convert digital signals to
	and from analog ({Pulse Code Modulation}) form.

	(1997-07-22)

codes

	1. <jargon> Programs.  This usage is common among scientific
	computing people who use {supercumputers} for heavy-duty
	{number crunching}.

	2. <cryptography> Something to do with {cryptography}.

	[{Jargon File}]

	(1994-10-28)

C-odeScript

	<language> A {Liana} interpreter, embeddable in {C} and {C++}
	programs.

	(1995-03-09)

code segment

	<memory> ({Intel 8086} CS) The area of memory containing the
	{machine code} instructions of a {program}.  The code segment
	of a program may be shared between multiple processes running
	that code so long as none of them tries to modify it.

	{Unix}, confusingly, calls this the "text segment" and the
	area for uninitialied data, the {bss segment}.

	Initialised data is located in the {data segment}.

	(1996-12-21)

code walk

	<programming> Stepping through {source code} as part of a
	{code review}.

	Where a code walk probably only follows the potential {control
	flow} of a program, a {dry run} is a more detailed manual
	execution of a program that also keeps track of the value of
	every {variable} involved.

	(2006-11-27)

codewalker

	<programming, tool> A program component that analyses other
	programs.  {Compilers} have codewalkers in their front ends;
	so do {cross-reference generators} and some database front
	ends.  Other utility programs that try to do too much with
	source code may turn into codewalkers.  As in "This new
	'vgrind' feature would require a codewalker to implement."

	[{Jargon File}]

	(1994-12-23)

CODIL

	{COntext Dependent Information Language}

codomain

	<theory> The set of values or {type} containing all possible
	results of a {function}.  The codomain of a function f of type
	D -> C is C.  A function's {image} is a subset of its
	codomain.

	(1994-12-23)

coercion

	{implicit type conversion}

COFF

	{Common Object File Format}

COGENT

	{COmpiler and GENeralized Translator}

Cogent Prolog

	<language> A full {Edinburgh standard Prolog} with {debugger},
	{listener}, {DCG}, many {built-ins}, text windows, support for
	{modules}, and support for both 16-bit and 32-bit {protected
	mode}.

	Contact: Dennis C. Merritt.

	(1999-11-24)

Cognitech

	<company> A French software company specialising in
	{artificial intelligence}.

	(1995-01-04)

cognitive architecture

	<architecture> A computer architecure involving
	{non-deterministic}, multiple {inference} processes, as found
	in {neural networks}.  Cognitive architectures model the human
	brain and contrast with single processor computers.

	The term might also refer to software architectures,
	e.g. {fuzzy logic}.

	[Origin?  Better definition?  Reference?]

	(1995-11-29)

COGO

	<application, engineering> A subsystem of {ICES} aimed at
	{coordinate geometry} problems in civil engineering.

	["Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT, Aug
	1967].

	(1995-01-04)

Coherent Parallel C

	<language> A {data parallel} version of {C}.

	["Coherent Parallel C", E. Felten et al in Third Conf on
	Hypercube Concurrent Computers and Appls, ACM, 1988,
	pp. 440-450].

	(1995-01-04)

COHESION

	<programming> {DEC}'s {CASE} environment.

	[Details?].

	(1995-01-04)

COIF

	<language> {Fortran} with {interactive} graphic extensions for
	{circuit design}, on {UNIVAC 1108}.

	["An Interactive Software System for Computer-Aided Design: An
	Application to Circuit Projects", CACM 9(13), Sep 1970].

	(1995-01-04)

CoIP

	{Conferencing over IP}

cokebottle

	<character, humour> /kohk'bot-l/ Any unusual character,
	particularly one you can't type because it isn't on your
	keyboard.  {MIT} people used to complain about the
	"control-meta-cokebottle" commands at {SAIL}, and {SAIL}
	people complained about the "{altmode}-altmode-cokebottle"
	commands at {MIT}.  After the demise of the {space-cadet
	keyboard}, "cokebottle" was used less, but was often used to
	describe weird or non-intuitive keystrokes.

	The {OSF}/{Motif} {window manager}, "{mwm}" keystroke for
	switching to the default keybindings and behaviour is
	control-meta-{bang}.  Since {exclamation mark} might be
	thought to look like a Coke bottle, {Motif} hackers referred
	to this keystroke as "cokebottle".

	See also {quadruple bucky}.

	[{Jargon File}]

	(1995-01-04)

COLASL

	<mathematics, application> An early system for numerical
	problems on the {IBM 7030}.  It used a special {character set}
	for input of natural mathematical expressions.

	[Sammet 1969, pp. 265-271].

	(1995-01-04)

COLD

	1. <language> A {sugar}ed version of {COLD-K}.

	2. <storage> Computer Output to Laser Disk - see {Enterprise
	Report Management}.

	(2007-07-24)

cold boot

	<operating system> A {boot} from {power off}.

	Contrast {warm boot}.

	[{Jargon File}]

	(1995-11-27)

ColdFusion

	<World-Wide Web, database, tool> {Allaire Corporation}'s
	commercial {database} application development tool that allows
	{databases} to have a {World-Wide Web} {interface}, so a
	database can be queried and updated using a {web browser}.

	The ColdFusion Server application runs on the {web server} and
	has access to a {database}.  ColdFusion files on the web
	server are {HTML} pages with additional ColdFusion commands to
	{query} or {update} the database, written in {CFML}.  When the
	page is requested by the user, the {web server} passes the
	page to the Cold Fusion application, which executes the {CFML}
	commands, places the results of the {CFML} commands in the
	{HTML} file, and returns the page to the {web server}.  The
	page returned to the {web server} is now an ordinary {HTML}
	file, and it is sent to the user.

	Examples of ColdFusion applications include order entry, event
	registration, catalogue search, directories, calendars, and
	interactive training.  ColdFusion applications are robust
	because all database interactions are encapsulated in a single
	industrial-strength {CGI} script.  The formatting and
	presentation can be modified and revised at any time (as
	opposed to having to edit and recompile {source code}).

	ColdFusion Server can connect with any database that supports
	{ODBC} or {OLE DB} or one that has a native database driver.
	Native database drivers are available for {Oracle} and
	{Sybase} databases.

	ColdFusion is available for {Windows}, {Solaris}, and {HP-UX}.
	A {development environment} for creating ColdFusion files,
	called ColdFusion Studio, is also available for {Windows}.

	Latest version: MX(6), as of 2003-07-11.

	The {filename extension} for ColdFusion files is .cfm

	{(http://coldfusion.com/)}.

	(2003-07-27)

ColdFusion Markup Language

	<language, World-Wide Web> (CFML) A {tag} based {markup}
	language used to create {ColdFusion} {web applications} by
	embedding ColdFusion commands in {HTML} files.

	(1999-08-01)

COLD-K

	<language> A formal design {kernel language} for describing
	(sequential) software systems in intermediate stages of their
	design.

	["An Introduction to COLD-K", H.B.M. Jonkers in Algebraic
	Methods: Theory, Tools and Applications, M. Wirsing et al eds,
	LNCS 394, Springer 1989, pp. 139-205].

	(1995-01-04)

COLINGO

	<language> Compile On-LINe and GO.  An english-like {query}
	system from {MITRE Corporation} for the {IBM 1401}.

	["The COLINGO System Design Philosophy", Information System
	Sciences, Proc Second Congress, 1965].

	[Sammet 1969, p. 664].

	(1995-01-04)

collision

	1. <networking> When two {hosts} transmit on a {network} at
	once causing their {packets} to corrupt each other.

	See {collision detection}.

	2. <programming> {hash collision}.

	(1995-01-06)

collision detection

	<networking> A class of methods for sharing a data
	transmission medium in which {hosts} transmit as soon as they
	have data to send and then check to see whether their
	transmission has suffered a {collision} with another host's.

	If a collision is detected then the data must be resent.  The
	resending algorithm should try to minimise the chance that two
	hosts's data will repeatedly collide.  For example, the
	{CSMA/CD} protocol used on {Ethernet} specifies that they
	should then wait for a random time before re-transmitting.

	See also {backoff}.

	This contrasts with {slotted protocols} and {token passing}.

	(1997-03-18)

collocation

	{co-location}

co-location

	<networking> /koh'loh-kay`sh*n/ or /koh`loh-kay'sh*n/ (Or
	"colocation") Providing network connections such as {Internet}
	{leased lines} to several {servers} housed together in a
	{server room}.  This is typically provided as a commercial
	service.

	The hyphenated form is correct and the most common on the web,
	followed by "colocation".  "collocation" (/ko`loh-kay'sh*n/,
	not /koh'-/), is an old word with a similar meaning.  It is
	common in dictionaries and follows the pattern of other
	Latin-derived words like collect, college, and collate, but is
	least common on the web.

	The verbal form is "to colocate" or "co-locate" (commonly
	/koh'loh`kayt/, also (US) /koh`loh'kayt/).

	(2000-10-03)

colon

	<character> ":" {ASCII} character 58.  Common names: {ITU-T}:
	colon.  Rare: dots; {INTERCAL}: two-spot.

	(1995-09-25)

color

	{colour}

Color Graphics Adapter

	<hardware, graphics> (CGA) One of {IBM}'s earliest hardware
	video {display standards} for use in {IBM PCs}.  CGA can
	display 80*25 or 40*25 text in 16 colors, 640*200 {pixels} of
	graphics in two colors or 320*200 in four colors (IBM PC video
	modes 0-6).  It is now obsolete.

	(1995-11-11)

color model

	{colour model}

Colossus

	(A huge and ancient statue on the Greek island of Rhodes).

	1. <computer> The Colossus and Colossus Mark II computers used
	by {Alan Turing} at {Bletchley Park}, UK during the Second
	World War to crack the "Tunny" cipher produced by the Lorenz
	SZ 40 and SZ 42 machines.  Colossus was a semi-fixed-program
	{vacuum tube} calculator (unlike its near-contemporary, the
	freely programmable {Z3}).

	["Breaking the enemy's code", Glenn Zorpette, IEEE Spectrum,
	September 1987, pp. 47-51.]

	2. The computer in the 1970 film, "Colossus: The Forbin
	Project".  Forbin is the designer of a computer that will run
	all of America's nuclear defences.  Shortly after being turned
	on, it detects the existence of Goliath, the Soviet
	counterpart, previously unknown to US Planners.  Both
	computers insist that they be linked, whereupon the two become
	a new super computer and threaten the world with the immediate
	launch of nuclear weapons if they are detached.  Colossus
	begins to give its plans for the management of the world under
	its guidance.  Forbin and the other scientists form a
	technological resistance to Colossus which must operate
	underground.

	{The Internet Movie Database
	(http://www.imdb.com/title/tt0064177)}.

	(2007-01-04)

colour

	<graphics> (US "color") Colours are usually represented as
	{RGB} triples in a {digital} {image} because this corresponds
	most closely to the electronic signals needed to drive a
	{CRT}.  Several equivalent systems ("{colour models}") exist,
	e.g. {HSB}.  A colour {image} may be stored as three separate
	images, one for each of red, green, and blue, or each {pixel}
	may encode the colour using separate {bit-fields} for each
	colour component, or each pixel may store a logical colour
	number which is looked up in a hardware {colour palette} to
	find the colour to display.

	Printers may use the {CMYK} or {Pantone} representations of
	colours as well as RGB.

	(1999-08-02)

colour depth

	{bits per pixel}

colour look-up table

	{colour palette}

colour model

	<graphics> Any system for representing {colours} as {ordered
	sets} of numbers.  The most common colour models are {RGB},
	{CMYK}, and {HSB}.  There are several others, e.g. {CMY}, and
	the "Lab" system(?).

	See also: {Pantone}.

	(1999-10-21)

colour palette

	<graphics, hardware> (colour look-up table, CLUT) A device
	which converts the {logical} colour numbers stored in each
	{pixel} of {video} memory into {physical} colours, normally
	represented as {RGB} triplets, that can be displayed on the
	{monitor}.  The palette is simply a block of fast {RAM} which
	is addressed by the logical colour and whose output is split
	into the red, green and blue levels which drive the actual
	display (e.g. {CRT}).

	The number of entries (logical colours) in the palette is the
	total number of colours which can appear on screen
	simultaneously.  The width of each entry determines the number
	of colours which the palette can be set to produce.

	A common example would be a palette of 256 colours
	(i.e. addressed by eight-bit pixel values) where each colour
	can be chosen from a total of 16.7 million colours (i.e. eight
	bits output for each of red, green and blue).

	Changes to the palette affect the whole screen at once and can
	be used to produce special effects which would be much slower
	to produce by updating pixels.

	(1997-06-03)

Columbia AppleTalk Package

	<networking> (CAP) An implementation of {Apple Computer}'s
	{AppleTalk} {protocols} for {Unix} {4.2BSD} and its
	derivatives, from {Columbia University}.  There are two
	different {LAP} delivery mechanisms for: {IPTalk} and
	{Ethertalk} (possibly using {UAB}).

	CAP supports the following {AppleTalk} {protocols}: {AppleTalk
	Transaction Protocol} (ATP), {Name Binding Protocol} (NBP),
	{Printer Access Protocol} (PAP), {AppleTalk Session Protocol}
	(ASP), {AppleTalk Filing Protocol} (AFP) client side.  In
	addition, the {Datagram Delivery Protocol} (DDP) and {Zone
	Information Protocol} (ZIP) are partially available.  The
	structure of the {Internet Appletalk Bridge} software makes it
	impossible to provide full DDP service.  Only the Get Zone
	List ATP ZIP command is implemented for ZIP.

	(1995-01-10)

column

	1. <database> A named slice through a {database} {table} that
	includes the same field of each {row}.  For example, a
	telephone directory table might have a row for each person
	with a name column and a telephone number column.

	2. <storage> A line of memory cells in a {dynamic
	random-access memory}, that is selected by a particular column
	address.

	(2007-10-12)

Column Address Strobe

	<hardware> (CAS) A signal sent from a processor (or {memory
	controller}) to a {dynamic random-access memory} (DRAM) (qv)
	circuit to indicate that the column {address lines} are valid.

	(1996-10-17)

COM

	1. <programming> {Component Object Model}.

	2. <storage> Computer Output on Microfilm - see {Enterprise
	Report Management}.

com

	<networking> (.com, "commercial") The {top-level domain}
	originally for American companies but, since the explosion of
	the {World-Wide Web}, used by most companies and for {vanity
	domains} of all types, whether in the US or not, often in
	addition to {country code} domains like amazon.co.uk.

	The term "dot com" is now widely used to refer to any Internet
	business as in "My dot com turned into a dot bomb".

	(2007-02-18)

.com

	{com}

COMAL

	{COMmon Algorithmic Language}

combination

	1. <mathematics> A {set} containing a certain number of
	objects selected from another set.

	The number of combinations of r objects chosen from a set of n
	is

		n C r = n! / ((n-r)! r!)

	where "n C r" is normally with n and r as subscripts or as n
	above r in parentheses.

	See also {permutation}.

	2. <reduction> In the theory of {combinators}, a combination
	denotes an expression in which {function application} is the
	only operation.

	(1995-04-10)

combinator

	<theory> A function with no {free variables}.  A term is
	either a constant, a variable or of the form A B denoting the
	{application} of term A (a function of one argument) to term
	B.  {Juxtaposition} associates to the left in the absence of
	parentheses.  All combinators can be defined from two basic
	combinators - S and K.  These two and a third, I, are defined
	thus:

		S f g x	= f x (g x)
		K x y	= x
		I x	= x		= S K K x

	There is a simple translation between {combinatory logic} and
	{lambda-calculus}.  The size of equivalent expressions in the
	two languages are of the same order.

	Other combinators were added by {David Turner} in 1979 when he
	used combinators to implement {SASL}:

		B f g x = f (g x)
		C f g x = f x g
		S' c f g x = c (f x) (g x)
		B* c f g x = c (f (g x))
		C' c f g x = c (f x) g

	See {fixed point combinator}, {curried function},
	{supercombinators}.

	(2002-11-03)

combinatory logic

	<logic> A system for reducing the operational notation of
	{logic}, mathematics or a {functional language} to a sequence
	of modifications to the input data structure.  First
	introduced in the 1920's by {Schoenfinkel}.  Re-introduced
	independently by {Haskell Curry} in the late 1920's (who
	quickly learned of Schoenfinkel's work after he had the idea).
	Curry is really responsible for most of the development, at
	least up until work with Feys in 1958.

	See {combinator}.

	(1995-01-05)

Comdex

	<business> A computer show that is held twice yearly, once in
	the spring (in Atlanta) and once in autumn (in Las Vegas).
	Comdex is a major show during which new releases of software
	and hardware are made.  {Microsoft}, for example, often
	annouces its products at Comdex.

	(1995-01-11)

COME FROM

	<programming, humour> A semi-mythical language construct dual
	to the "go to"; "COME FROM" <label> would cause the referenced
	label to act as a sort of {trapdoor}, so that if the program
	ever reached it, control would quietly and {automagically} be
	transferred to the statement following the "COME FROM".

	"COME FROM" was first proposed in R.L. Clark's "A Linguistic
	Contribution to GOTO-less programming", which appeared in a
	1973 {Datamation} issue (and was reprinted in the April 1984
	issue of "{Communications of the ACM}").  This parodied the
	then-raging "{structured programming}" {holy wars} (see
	{considered harmful}).

	Mythically, some variants are the "assigned COME FROM" and the
	"computed COME FROM" (parodying some nasty control constructs
	in {Fortran} and some extended {BASICs}).  Of course,
	{multitasking} (or {nondeterminism}) could be implemented by
	having more than one "COME FROM" statement coming from the
	same label.

	In some ways the {Fortran} "DO" looks like a "COME FROM"
	statement.  After the terminating statement number/"CONTINUE"
	is reached, control continues at the statement following the
	DO.  Some generous Fortrans would allow arbitrary statements
	(other than "CONTINUE") for the statement, leading to examples
	like:

	      DO 10 I=1,LIMIT
	 C imagine many lines of code here, leaving the
	 C original DO statement lost in the spaghetti...
	      WRITE(6,10) I,FROB(I)
	 10   FORMAT(1X,I5,G10.4)

	in which the trapdoor is just after the statement labelled 10.
	(This is particularly surprising because the label doesn't
	appear to have anything to do with the flow of control at
	all!)

	While sufficiently astonishing to the unsuspecting reader,
	this form of "COME FROM" statement isn't completely general.
	After all, control will eventually pass to the following
	statement.  The implementation of the general form was left to
	{Univac Fortran}, ca. 1975 (though a roughly similar feature
	existed on the {IBM 7040} ten years earlier).  The statement
	"AT 100" would perform a "COME FROM 100".  It was intended
	strictly as a debugging aid, with dire consequences promised
	to anyone so deranged as to use it in production code.  More
	horrible things had already been perpetrated in production
	languages, however; doubters need only contemplate the
	"{ALTER}" verb in {COBOL}.

	{SCL} on {VME} {mainframes} has a similar language construct
	called "whenever", used like this:

		 whenever x=123345 then S;

	Meaning whenever variable x reached the value 123345 then
	execute statement S.

	"COME FROM" was supported under its own name for the first
	time 15 years later, in {C-INTERCAL} (see {INTERCAL},
	{retrocomputing}); knowledgeable observers are still reeling
	from the shock.

	[{Jargon File}]

	(1998-04-19)

COMIS

	<language> A COMpilation and Interpretation System.

	A {Fortran} {interpreter} use by the {PAW} system.

	(1994-11-30)

COMIT

	<language> The first string-handling and {pattern-matching}
	language, designed in 1957-8 for applications in {natural
	language} translation.  The user has a workspace organised
	into shelves.  Strings are made of constituents (words),
	accessed by {subscript}.  A program is a set of rules, each of
	which has a pattern, a replacement and goto another rule.

	["COMIT Programmer's Reference Manual", V.H. Yngve, MIT Press
	1961].

	[Sammet 1969, pp. 416-436].

	(1994-11-30)

Comite Europeen des Postes et Telecommunications

	<body> (CEPT, European Conference of Post and
	Telecommunications) The committee that defined the CEPT speech
	{compression} scheme.

	[Details of compression scheme?]

	(1998-03-16)

COMIT II

	<language> ["Computer Programming with COMIT II", Victor
	H. Yngve, MIT Press, 1963].

	(1995-01-11)

Comma

	<project> COMputable MAthematics.

	An {ESPRIT} project at KU {Nijmegen}.

	(1994-11-30)

comma

	<character> "," {ASCII} character 44.  Common names: {ITU-T}:
	comma.  Rare: {ITU-T}: cedilla; {INTERCAL}: tail.

	In the {C} programming language, "," is an operator which
	evaluates its first argument (which presumably has
	{side-effects}) and then returns the value of its second
	argument.  This is useful in "for" statements and {macros}.

	(1995-03-10)

command

	<operating system> A character string which tells a program to
	perform a specific action.  Most commands take {arguments}
	which either modify the action performed or supply it with
	input.  Commands may be typed by the user or read from a file
	by a {command interpreter}.  It is also common to refer to
	menu items as commands.

	(1997-06-21)

Command Control Processor

	<operating system> (CCP) {CP/M}'s {command-line interpreter}.

	(2001-11-01)

command interpreter

	<operating system> A program which reads textual commands from
	the user or from a file and executes them.  Some commands may
	be executed directly within the interpreter itself
	(e.g. setting variables or control constructs), others may
	cause it to load and execute other files.

	{Unix}'s command interpreters are known as {shells}.

	When an {IBM PC} is {boot}ed {BIOS} loads and runs the
	{MS-DOS} command interpreter into memory from file COMMAND.COM
	found on a {floppy disk} or {hard disk} drive.  The commands
	that COMMAND.COM recognizes (e.g. COPY, DIR, PRN) are called
	internal commands, in contrast to external commands which are
	executable files.

	(1995-03-16)

command key

	{feature key}

command line interface

	<operating system> A means of communication between a
	{program} and its {user}, based solely on textual input and
	output.  Commands are input with the help of a {keyboard} or
	similar device and are interpreted and executed by the
	program.  Results are output as text or graphics to the
	{terminal}.

	Command line interfaces usually provide greater flexibility
	than {graphical user interfaces}, at the cost of being harder
	for the novice to use.  Consequently, some {hackers} look down
	on GUIs as designed {For The Rest Of Them}.

	(1996-01-12)

command-line interpreter

	{command interpreter}

command line option

	<software> (Or "option", "flag", "switch", "option switch") An
	argument to a command that modifies its function rather than
	providing data.  Options generally start with "-" in {Unix} or
	"/" in {MS-DOS}.  This is usually followed by a single letter
	or occasionally a digit.  More recently, {GNU} software
	adopted the --longoptionname style, usually in addition to
	traditional, single-character, -x style equivalents.

	Some commands require each option to be a separate argument,
	introduced by a new "-" or "/", others allow multiple option
	letters to be concatenated into a single argument with a
	single "-" or "/", e.g. "ls -al".  A few Unix commands
	(e.g. {ar}, {tar}) allow the "-" to be omitted.  Some options
	may or must be followed by a value, e.g. "cc prog.c -o prog",
	sometimes with and sometimes without an intervening space.

	{getopt} and {getopts} are commands for parsing command line
	options.  There is also a {C} library routine called getopt
	for the same purpose.

	(2007-02-18)

comma separated values

	<file format> (CSV) A {file format} used as a portable
	representation of a {database}.  Each line is one entry or
	record and the fields in a record are separated by {commas}.
	Commas may be followed by arbitrary space and/or tab
	characters which are ignored.  If field includes a comma, the
	whole field must be surrounded with {double quotes}.

	(1995-05-06)

COMMEN

	[L.J. Cohen.  Proc SJCC 30:671-676, AFIPS (Spring 1967)].

	(1994-11-30)

comment

	<programming> (Or "remark") Explanatory text embedded in
	program {source} (or less often data) intended to help human
	readers understand it.

	Code completely without comments is often hard to read, but
	code with too many comments is also bad, especially if the
	comments are not kept up-to-date with changes to the code.
	Too much commenting may mean that the code is
	over-complicated.  A good rule is to comment everything that
	needs it but write code that doesn't need much of it.
	Comments that explain __why__ something is done and how the code
	relates to its environment are useful.

	A particularly irksome form of over-commenting explains
	exactly what each statement does, even when it is obvious to
	any reasonably competant programmer, e.g.

		/* Open the input file */
		infd = open(input_file, O_RDONLY);

	(2007-02-19)

commented out

	{comment out}

comment out

	<programming> To surround a section of code with {comment}
	{delimiters} or to prefix every line in the section with a
	comment marker.  This prevents it from being compiled or
	interpreted.  It is often done to temporarily disable the
	code, e.g. during {debugging} or when the code is redundant or
	obsolete, but is being left in the source to make the intent
	of the active code clearer.

	The word "comment" is sometimes replaced with whatever
	{syntax} is used to mark comments in the language in question,
	e.g. "hash out" ({shell script}, {Perl}), "REM out" ({BASIC}),
	etc.

	Compare {condition out}.

	[{Jargon File}]

	(1998-04-28)

commercial at

	<character> "@".  {ASCII} code 64.  Common names: at sign, at,
	strudel.  Rare: each, vortex, whorl, {INTERCAL}: whirlpool,
	cyclone, snail, ape, cat, rose, cabbage, amphora.  {ITU-T}:
	commercial at.

	The @ sign is used in an {electronic mail address} to separate
	the local part from the {hostname}.  This dates back to July
	1972 when {Ray Tomlinson} was designing the first[?] {e-mail}
	program.

	It is ironic that @ has become a trendy mark of Internet
	awareness since it is a very old symbol, derived from the
	latin preposition "ad" (at).

	Giorgio Stabile, a professor of history in Rome, has traced
	the symbol back to the Italian Renaissance in a Roman
	mercantile document signed by Francesco Lapi on 1536-05-04.

	In Dutch it is called "apestaartje" (little ape-tail), in
	German "affenschwanz" (ape tail).  The French name is
	"arobase".  In Spain and Portugal it denotes a weight of about
	25 pounds, the weight and the symbol are called "arroba".
	Italians call it "chiocciola" (snail).

	See {@-party}.

	(2003-04-28)

Commercial Internet eXchange

	<networking, body> (CIX) The CIX is a non-profit, 501(c)6,
	trade association coordinating {Internet} services.  Its
	member organisations provide {TCP/IP} or {OSI} data
	{internetwork} services to the general public.  The CIX gives
	them unrestricted access to other worldwide networks.  It also
	takes an interest in the development and future direction of
	the {Internet}.

	The CIX provides a neutral forum to exchange ideas,
	information, and experimental projects among suppliers of
	internetworking services.  The CIX broadens the base of
	national and international cooperation and coordination among
	member networks.  Together, the membership may develop
	consensus positions on legislative and policy issues of mutual
	interest.

	The CIX encourages technical research and development for the
	mutual benefit of suppliers and customers of data
	communications internetworking services.  It assists its
	member networks in the establishment of, and adherence to,
	operational, technical, and administrative policies and
	standards necessary to ensure fair, open, and competitive
	operations and communication among member networks.  CIX
	policies are formulated by a member-elected board of
	directors.

	{(http://cix.org/)}.

	(1995-01-13)

commercial off-the-shelf software

	{commercial software}

commercial software

	<software> (Or "commercial off-the-shelf software", COTS)
	{Software} that is produced for sale.  This contrasts with
	{free software}, which is produced for free distribution,
	meaning without charge and/or without restriction on further
	distribution.

	Some companies that sell software distribute some (versions)
	of products free of charge (but usually with restricted
	distribution rights), this would probably still be called
	commercial software.  Conversely, software that an individual
	distributes for free, but for which he accepts donations,
	would still be called free software.

	(2007-02-07)

Commercial Translator

	<language> An English-like pre-{COBOL} language for business
	{data processing}.

	[Sammet 1969, p. 378].

	(1994-11-08)

Committed Data Rate

	<communications> (CDR) The data transfer rate that an {ISP}
	guarantees a {virtual circuit} will carry.  The CDR is the
	data portion of {Committed Information Rate} (CIR).

	(2007-02-28)

Committed Information Rate

	<networking> (CIR) The guaranteed average {data rate} of a
	{virtual circuit} in a {frame relay} network.  The CIR plus
	the Excess Information Rate (EIR, burst rate) is equal to or
	less than the speed of the access port into the network.

	The term CIR includes voice and non-data packets that are not
	included in the {Committed Data Rate} (CDR).  CIR is generally
	used in reference to {leased lines} and similar classes of
	network services, not {dial-up}.

	(2010-05-07)

comm mode

	<chat> (Or "com mode") An {ITS} feature supporting interactive
	on-line {chat}.

	[{Jargon File}]

	(1998-01-18)

Commodore

	<company, computer> {Commodore Business Machines} or one of
	their computers such as the {Commodore 64}.

	(2010-09-14)

Commodore 1010

	<storage> A 3.5-inch floppy {disk drive} for the {Amiga}.

	(1998-12-23)

Commodore 128

	<computer> (C128) An expanded {Commodore 64}, {Commodore
	Business Machines}' last commercially released 8-bit computer.
	However, they did prototype the {Commodore 65} and {Commodore
	SX64}.

	(1996-06-05)

Commodore 1541

	<storage> The best known {floppy disk} drive for the
	{Commodore 64}.  The 1541 was a single-sided 160 Kb drive but
	converting to {flippy disks} would give another 160 Kb.

	The disk drive used {Group Code Recording} and contained a
	{6502} processor as a {disk controller}.  Some people wrote
	code for it to vibrate the head at different frequencies to
	play tunes.

	The transfer rate was about 300 bytes per second.  The 1541
	used a {bit-serial} version of the {IEEE 488} parallel
	protocol.  Some third-party speed-ups could transfer about 4
	kilobytes per second over the interface, and some "fast
	loaders" managed up to 10 kbps.

	The {Commodore 1570} was an upgraded 1541 for use with the
	{Commodore 128}.

	(2000-03-07)

Commodore 1570

	<storage> {Commodore Business Machines}'s allegedly "advanced"
	disk drive for use with the {C128}.  It is basically a {1541}
	with the capability to use "burst loading" (like the
	{Commodore 1571}), and lots of new {bugs}.

	The {Commodore 1571} was a double-sided version of the 1570.

	(1996-04-07)

Commodore 1571

	<storage> {Commodore Business Machines}'s "advanced" {disk
	drive} for the {C128}.  It was the double-sided version of the
	{Commodore 1570} disk drive but, unlike the 1570, worked quite
	well.

	The 1571 supported "{burst mode}" loading when used on a C128
	in native mode, which increased the transfer speed from 1541
	speed to about three kilobytes per second (about a 10-fold
	increase).  The 1571 could be told to emulate a {1541} for use
	with a {C64} or 1541 disks.

	Bugs in early releases of the 1571 {ROM} affected access to
	the second side of the disk.

	(1996-04-07)

Commodore 1581

	<storage> {Commodore Business Machines}'s 3.5 inch {disk
	drive} for the {Commodore 64} and {Commodore 128}.  The drive
	stores 800 {kilobytes} using an {MFM} format which is
	different from both {messy-dos} 720 kb, and the {Amiga} 880 kb
	formats.

	The 1581 supports a poor imitation of {directories} which are
	really just {partitions} and largely unused.  It also supports
	burst loading like the {Commodore 1571}, but is actually
	faster as it is better designed.  It has 3160 {blocks} free
	when formatted.

	The 1581 is the highest density C64 serial bus drive made by
	Commodore.  However Creative Micro Designs (CMD) make the
	{FD2000} (1.6MB) and (until recently) the {FD4000} (3.2MB)
	3.5" disk drives.  {GEOS} users like 1581s as they are very
	fast when used with GEOS.

	See also {Commodore 1541}, {Commodore 1571}.

	(1998-12-23)

Commodore 64

	<computer> (C64) An 8-bit {Commodore Business Machines}
	{personal computer} released around September 1981.
	Prototypes were (apparently) made before Christmas 1980 (and
	shown at some computer fair).

	The {CPU} was a {6510} from {MOS Technology} (who were a
	wholly owned subsiduary of Commodore at this time(?)).  The
	C64 had 64 {kilobytes} of {RAM} as standard and a 40-column
	text, 320x200 {pixel} display generating {composite video},
	usually connected to a television.

	{DMA}-based memory expanders for the C64 (and C128) allowed
	128, 256, and 512 kb of RAM.  Several third party
	manufacturers produce accelerators and RAM expanders for the
	C64 and C128.  (Some, risking a {holy war}, compare this to
	putting a brick on roller-skates).  Such accelerators come in
	speeds up to 20MHz (20 times the original) and RAM expanders
	to 16MB.

	The C64's {1541} 5.25 {floppy disk} drive had a {6502}
	processor as a {disk controller}.

	See also {Commodore 65}.

	["Assembly language programming with the Commodore 64", Marvin
	L. De Jong].

	(1996-06-05)

Commodore 64DX

	{Commodore 65}

Commodore 65

	<computer> (Or Commodore 64DX, C65, C64DX) The last 8-bit
	computer designed by {Commodore Business Machines}, about
	1989-1991.  The C65 boasts an {ugly} collection of {custom}
	{integrated circuits} which makes even the {Amiga} hardware
	look standard.

	The core of the C65 {chipset} is the {CSG 4510} and {CSG
	4569}.  The 4510 is a {65CE02} with two {6526} {CIAs}.  The
	4569 is equivalent to a combination of the {6569} VIC-II and
	the {MMU} of the {Commodore 64}.  The C65 also has a {DMA
	controller} (Commodore's purpose built {DMAgic}) which also
	functions as a simple {blitter}, and a {floppy controller} for
	the internal {Commodore 1581}-like disk drive.  The floppy
	controller, known as the {F011}, supports seven drives (though
	the {DOS} only supports 2).  The {4510} supports all the {C64}
	{video modes}, plus an 80 column text mode, and {bitplane}
	modes.  The bitplane modes can use up to eight bitplanes, and
	{resolutions} of up to 1280 x 400.  The {palette} is 12-bit
	like the {Amiga 500}.  It also has two SID's (MOS 8580/6581)
	for stereo audio.

	The C65 has two busses, D and E, with 64 {kilobytes} of {RAM}
	on each.  The VIC-III can access the D-bus while the CPU
	accesses the E-bus, and then they can swap around.  This
	effectively makes the whole 8MB {address space} both {chip
	ram} and {fast ram}.  {RAM} expansion is accomplished through
	a {trap door} slot in the bottom which uses a {grock} of a
	connector.  The C65 has a {C128}-like native mode, where all
	of the new features are enabled, and the CPU runs at 3.5
	megahertz with its {pipeline} enabled.  It also has a C64
	{incompatibility mode} which offers approx 50-80%
	compatibility with C64 software by turning off all its {bells
	and whistles}.  The {bells and whistles} can still be accessed
	from the C64 mode, which is dissimilar to the C128's
	inescapable C64 mode.

	Production of the C65 was dropped only a few weeks before it
	moved from the Alpha stage, possibly due to Commodore's cash
	shortage.  Commodore estimate that "between 50 and 10000"
	exist.  There are at least three in Australia, about 30 in
	Germany and "some" in the USA and Canada.

	(1996-04-07)

Commodore Business Machines

	<company> (CBM) Makers of the {PET}, {Commodore 64},
	{Commodore 16}, {Commodore 128}, and {Amiga} {personal
	computers}.  Their logo is a {chicken head}.

	The Commodore name is controlled by Commodore Licensing BV,
	now a subsidiary of Asiarim.  Commodore USA signed an
	agreement with Commodore Licensing BV.

	On 1994-04-29, Commodore International announced that it had
	been unable to renegotiate terms of outstanding loans and was
	closing down the business.  Commodore US was expected to go
	into liquidation.  Commodore US, France, Spain, and Belgium
	were liquidated for various reasons.  The names Commodore and
	Amiga were maintained after the liquidation.

	After 1994, the rights to the Commodore name bounced across
	several European companies.

	On 1995-04-21, German retailer {Escom AG} bought Commodore
	International for $14m and production of the Amiga resumed.
	Netherlands-based {Tulip Computers} took over the brand.

	Production of the 8-bit range alledgedly never stopped during
	the time in liquidation because a Chinese company were
	producing the {C64} in large numbers for the local market
	there.

	In 2004, Tulip sold the Commodore name to another Dutch firm,
	Yeahronimo, that eventually changed its name to Commodore
	International.

	In April 2008 three creditors took the company to court
	demanding a bankruptcy ruling.

	On 2010-03-17, Commodore USA announced that it was to release
	a new PC in June 2010 which looks very similar to the old
	Commodore 64 but comes with a {Core 2 Duo}, {Core 2 Quad},
	{Pentium D} or {Celeron D} processor and with {Ubuntu} {Linux}
	or {Windows 7} installed.  {PC World article
	(http://pcworld.com/article/192415)}.

	(2010-09-14)

Commodore SX64

	<computer> A "portable" {Commodore 64}.  Shaped vaguely like a
	seat cushion, this cumbersome experiment in transportable
	computers had a detachable keyboard on one end which, when
	removed, revealed a 6" {monitor} and a 5 1/4" {floppy disk}
	drive.  The curious combination of a bulky design and
	microscopic display are the most likely cause for the SX64's
	discontinuation.

	[Processor?  RAM?  Dates?]

	(1997-10-25)

COMmon Algorithmic Language

	<language> (COMAL) A language for beginners developed by
	Benedict Loefstedt and Borge Christensen in 1973 and popular
	in Europe and Scandinavia.  It has a {Pascal}-like structure
	added to {BASIC}.  COMAL-80 has been adopted as an
	introductory language in Denmark.

	There is a version for the {Amiga} and a well-supported
	version for the {PC}, running under {MS-DOS} and {Microsoft
	Windows}, called UniCOMAL.  Recently, it has been developed as
	a web-scripting language called WebCOMAL.

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

	There is a COMAL User's Group at 5501 Groveland Terr, Madison
	WI 53716, USA.

	["Beginning COMAL", B. Christensen, Ellis Harwood 1982].

	(2000-11-14)

Common Applications Environment

	<operating system> (CAE) Part of {X/Open}, based on {POSIX}
	and {C}.

	[Details?]

	(2007-03-01)

Common Applications Service Element

	{Common Application Service Element}

Common Architecture for Next Generation Internet Protocol

	<networking> (CATNIP, originally Common Architecture
	Technology for Next-generation Internet Protocol)

	A network architecture designed to provide a compressed form
	of the existing {network layer} {protocols} and to integrate
	{CLNP}, {IP}, and {IPX}.  It provides for any of the
	{transport layer} {protocols} in use, including {TP4}, {CLTP},
	{TCP}, {UDP}, {IPX}, and {SPX}, to run over any of the network
	layer protocol formats: CLNP, IP (version 4), IPX and CATNIP.

	CATNIP was originally proposed by Robert L. Ullmann of {Lotus
	Development Corporation} on 1993-12-22.  It was published as
	{RFC 1707} in October 1994 but it is not an {Internet}
	standard of any kind.

	(1996-03-23)

COmmon Business Oriented Language

	<language, business> /koh'bol/ (COBOL) A programming language
	for simple computations on large amounts of data, designed by
	the {CODASYL} Committee in April 1960.  COBOL's {natural
	language} style is intended to be largely self-documenting.
	It introduced the {record} structure.

	COBOL was probably the most widely used programming language
	during the 1960s and 1970s.  Many of the major programs that
	required repair or replacement due to {Year 2000} {software
	rot} issues were originally written in COBOL, and this was
	responsible for a short-lived increased demand for COBOL
	programmers.  Even in 2002 though, new COBOL programs are
	still being written in some organisations and many old COBOL
	programs are still running in {dinosaur} shops.

	Major revisions in 1968 (ANS X3.23-1968), 1974 (ANS
	X3.23-1974) and 1985.

	{Usenet} newsgroup: {news:comp.lang.cobol}.

	["Initial Specifications for a Common Business Oriented
	Language" DoD, US GPO, Apr 1960].

	(2002-02-21)

common carrier

	<communications, company> (Or "phone company") A private
	company that offers telecommunications services to the public.

	(1995-03-20)

Common Command Set

	<storage, standard> (CCS) Additional requirements and features
	for direct-access {SCSI} devices.

	In 1985 when the first {SCSI} standard was being finalised as
	an {American National Standard}, the {X3T9.2} Task Group was
	approached by some manufacturers who wanted changes.  Rather
	than delay the SCSI standard, X3T9.2 formed an ad hoc group to
	define CCS.

	[Spec?  Status?  "direct-access"?]

	(1997-03-23)

Common Communication Services

	<networking, IBM> (CCS) The standard program interface to
	networks in {IBM}'s {SAA}.

	(2007-05-14)

Common Desktop Environment

	<graphics, operating system> (CDE) A {desktop manager} from
	{COSE}.

	(1994-10-31)

Common ESP

	<language> (CESP) A {Unix}-based version of ESP ({Extended
	Self-containing Prolog}) from {Mitsubishi}'s {AI Language
	Institute}.

	(2000-07-11)

Common Gateway Interface

	<World-Wide Web> (CGI) A {standard} for running external
	{programs} from a {World-Wide Web} {HTTP} {server}.  CGI
	specifies how to pass {arguments} to the program as part of
	the HTTP request.  It also defines a set of {environment
	variables} that are made available to the program.  The
	program generates output, typically {HTML}, which the web
	server processes and passes back to the {browser}.
	Alternatively, the program can request {URL redirection}.  CGI
	allows the returned output to depend in any arbitrary way on
	the request.

	The CGI program can, for example, access information in a
	{database} and format the results as HTML.  The program can
	access any data that a normal application program can, however
	the facilities available to CGI programs are usually limited
	for security reasons.

	Although CGI programs can be compiled programs, they are more
	often written in a (semi) {interpreted language} such as
	{Perl}, or as {Unix} {shell scripts}, hence the common name
	"CGI script".

	Here is a trivial CGI script written in Perl.  (It requires
	the "CGI" module available from {CPAN}).

	 #!/usr/bin/perl
	 use CGI qw(:standard);

	 print header, start_html,
	   h1("CGI Test"),
	   "Your IP address is: ", remote_host(),
	   end_html;

	When run it produces an {HTTP} header and then a simple HTML
	page containing the {IP address} or {hostname} of the machine
	that generated the initial request.  If run from a command
	prompt it outputs:

	  Content-Type: text/html; charset=ISO-8859-1

	  <!DOCTYPE html
		  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
		   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
	  <html xmlns="http://www.w3.org/1999/xhtml"
	    lang="en-US" xml:lang="en-US">
	  <head>
	  <title>Untitled Document</title>
	  <meta http-equiv="Content-Type"
	    content="text/html; charset=iso-8859-1" />
	  </head>
	  <body>
	  <h1>CGI Test</h1>Your IP address is: localhost
	  </body>
	  </html>

	The CGI program might be saved as the file "test.pl" in the
	appropriate directory on a web server,
	e.g. "/home/httpd/test".

	Accessing the appropriate {URL}, e.g.
	http://acme.com/test/test.pl, would cause the program to
	run and a custom page produced and returned.

	Early web servers required all CGI programs to be installed in
	one directory called cgi-bin but it is better to keep them
	with the HTML files to which they relate unless they are truly
	global to the site.  Similarly, it is neither necessary nor
	desirable for all CGI programs to have the extension ".cgi".

	Each CGI request is handled by a new process.  If the process
	fails to terminate for some reason, or if requests are
	received faster than the server can respond to them, the
	server may become swamped with processes.  In order to improve
	performance, {Netscape} devised {NSAPI} and {Microsoft}
	developed the {ISAPI} standard which allow CGI-like tasks to
	run as part of the main server process, thus avoiding the
	overhead of creating a new process to handle each CGI
	invocation.  Other solutions include {mod_perl} and {FastCGI}.

	Latest version: CGI/1.1.

	{(http://hoohoo.ncsa.uiuc.edu/cgi)}.

	(2007-05-22)

Common Hardware Reference Platform

	{PowerPC Platform}

Common Information Model

	<standard> (CIM) An {open systems} management {standard}
	driven by the {Distributed Management Task Force} (DMTF).

	(2003-06-07)

Common Intermediate Format

	<communications, standard> (CIF) A {video} format used in
	{videoconferencing} systems, which supports both {NTSC} and
	{PAL} signals, with a {data rate} of 30 {frames per second}
	(fps), with each {frame} containing 288 lines and 352
	{luminance} {pixels} per line.  CIF is part of the {ITU}
	{H.261} videoconferencing standard.

	CIF is also known as Full CIF (FCIF) to distinguish it from
	{Quarter CIF} (QCIF), a related video format standard that
	transfers one fourth as much data as CIF.

	(2007-05-14)

Common Intermediate Language

	<language> (CIL)

	[Details?]

	["Construction of a Transportable, Milti-Pass Compiler for
	Extended Pascal", G.J. Hansen et al, SIGPLAN Notices
	14(8):117-126, Aug 1979].

	(1994-10-24)

Common Internet File System

	<protocol> (CIFS) An {Internet} {file system} {protocol},
	based on {Microsoft}'s {SMB}.  Microsoft has given CIFS to the
	{Internet Engineering Task Force} (IETF) as an Internet Draft.
	CIFS is intended to complement existing protocols such as
	{HTTP}, {FTP}, and {NFS}.

	CIFS runs on top of {TCP/IP} and uses the Internet's {Domain
	Name Service} (DNS).  It is optimised to support the slower
	speed {dial-up} connections common on the Internet.

	CIFS is more flexible than FTP.  FTP operations are carried
	out on entire files whereas CIFS is aimed at routine data
	access and incorporates high-performance multi-user read and
	write operations, {locking}, and file-sharing semantics.

	CIFS is probably closest in functionality to NFS.  NFS gives
	random access to files and directories, but is {stateless}.
	With CIFS, once a file is open, state about the current access
	to that file is stored on both the client and the server.
	This allows changes on the server side to be notified to the
	clients	that are interested.

	{Microsoft Overview
	(http://msdn.microsoft.com/library/en-us/fileio/base/cifs_smb_protocol_overview.asp)}.

	{SNIA page (http://snia.org/tech_activities/CIFS/)}.

	{CIFS: A Common Internet File System, Paul Leach and Dan Perry
	(http://microsoft.com/Mind/1196/CIFS.htm)}.

	{IETF Specification. CIFS version 1
	(ftp://ietf.org/internet-drafts/draft-leach-cifs-v1-spec-01.txt)}.

	(2003-03-12)

Common-ISDN-API

	{Common ISDN Application Programming Interface}

Common ISDN Application Programming Interface

	<networking> (CAPI, Common-ISDN-API) A programming interface
	standard for an application program to communicate with an
	{ISDN} card.

	Work on CAPI began in 1989, focussing on the German ISDN
	protocol, and was finished in 1990 by a CAPI working group
	consisting of application providers, ISDN equipment
	manufacturers, large customers, user groups and DBP Telekom,
	resulting in COMMON-ISDN-API Version 1.1.  Following
	completion of the international protocol specification, almost
	every telecommunication provider offers {BRI} and {PRI} with
	{protocols} based on {Q.931} / ETS 3009 102.  Common-ISDN-API
	Version 2.0 was developed to support all Q.931 protocols.

	Latest version: 2.0, as of 1998-09-07.

	{(http://capi.org/)}.

	[Why not CIAPI?]

	(1998-09-07)

Common Lisp

	<language> A dialect of {Lisp} defined by a consortium of
	companies brought together in 1981 by the {Defence Advanced
	Research Projects Agency} (DARPA).  Companies included
	{Symbolics}, {Lisp Machines, Inc.}, {Digital Equipment
	Corporation}, {Bell Labs}., {Xerox}, {Hewlett-Packard},
	{Lawrence Livermore Labs}., {Carnegie-Mellon University},
	{Stanford University}, {Yale}, {MIT} and {USC Berkeley}.
	Common Lisp is {lexically scoped} by default but can be
	{dynamically scoped}.

	Common Lisp is a large and complex language, fairly close to a
	superset of {MacLisp}.  It features {lexical binding}, data
	structures using defstruct and setf, {closures}, multiple
	values, types using declare and a variety of numerical types.
	Function calls allow "&optional", keyword and "&rest"
	arguments.  Generic sequence can either be a list or an
	{array}.  It provides formatted printing using escape
	characters.  Common LISP now includes {CLOS}, an extended LOOP
	{macro}, condition system, {pretty printing} and logical
	pathnames.

	Implementations include {AKCL}, {CCL}, {CLiCC}, {CLISP},
	{CLX}, {CMU Common Lisp}, {DCL}, {KCL}, {MCL} and {WCL}.

	Mailing list: <common-lisp@ai.sri.com>.

	{ANSI Common Lisp draft proposal
	(ftp://ftp.think.com/public/think/lisp:public-review.text)}.

	["Common LISP: The Language", Guy L. Steele, Digital Press
	1984, ISBN 0-932376-41-X].

	["Common LISP: The Language, 2nd Edition", Guy L. Steele,
	Digital Press 1990, ISBN 1-55558-041-6].

	(1994-09-29)

Common LISP in Parallel

	<language, parallel> (CLIP) A version of {Common LISP} from
	{Allegro} for the {Sequent Symmetry}.

	(1994-12-12)

Common LISP Object System

	<language> (CLOS) An {object-oriented} extension to {Common
	LISP}, based on {generic functions}, {multiple inheritance},
	{declarative method combination} and a {meta-object protocol}.
	A descendant of {CommonLoops} and based on {Symbolics}
	{FLAVORS} and {Xerox} {LOOPS}, among others.

	See also {PCL}.

	["Common LISP Object System Specification X3J13 Document
	88-002R", D.G.  Bobrow et al, SIGPLAN Notices 23, Sep 1988].

	(1994-11-30)

CommonLoops

	<language> {Xerox}'s {object-oriented} {Lisp} which led to
	{CLOS}.

	See also {Portable CommonLoops}.

	{(ftp://arisia.xerox.com/pub/pcl/September-16-92-PCL-c.tar.Z)}.

	["CommonLoops: Merging Lisp and Object-Oriented Programming",
	D.G. Bobrow et al, SIGPLAN Notices 21(11):17-29, Nov 1986].

	(1999-07-02)

Common Management Information Protocol

	<protocol> (CMIP) Part of the {OSI} body of {standards}
	specifying {protocol} elements that may be used to provide the
	operation and notification services described in the related
	standard, CMIS ({Common Management Information Services}).

	Document: {ISO}/{IEC} 9596, or equivalent {ITU} X.711.

	(1997-12-07)

Common Management Information Services

	<networking> (CMIS) Part of the {OSI} body of network
	{standards}.

	Network management information services are used by {peer
	process}es to exchange information and commands for the
	purpose of {network management}.  CMIS defines a message set
	(GET, CANCEL-GET, SET, CREATE, DELETE, EVENT-REPORT and
	ACTION), and the structure and content of the messages such
	that they might be used by "open" systems.  In concept, it is
	similar to {SNMP}, but more powerful (and hence more complex).

	{ISO}/{IEC} 9595.

	(2007-08-07)

Common Object File Format

	<file format> (COFF) The {executable file} and {object file}
	format used by {Unix System V} Release 3 and later.

	{Unix manual page}: coff(5).

	(2007-08-15)

Common Object Model

	{Component Object Model}

Common Object Request Broker Architecture

	<standard, programming> (CORBA) An {Object Management Group}
	specification which provides a standard messaging interface
	between distributed {objects}.

	The original CORBA specification (1.1) has been revised
	through version 2 (CORBA 2) with the latest specification
	being version 3 (CORBA 3).  In its most basic form CORBA
	consists of the {Interface Definition Language} (IDL) and the
	Dynamic Invocation Interface (DII).

	The IDL definition is complied into a Stub (client) and
	Skeleton (server) component that communicate through an
	{Object Request Broker} (ORB).  When an ORB determines that a
	request is to a remote object, it may execute the request by
	communicating with the remote ORB.

	The Corba IDL can be mapped to a number of languages including
	{C}, {C++}, {Java}, {COBOL}, {Smalltalk}, {Ada}, {Lisp},
	{Python}, and {IDLscript}.  CORBA ORBs are widely available
	for a number of platforms.  The OMG standard for inter-ORB
	communication is {IIOP}, this ensures that all CORBA 2
	compliant ORBS are able to interoperate.

	Latest version: Corba 3.0.3 2004-03-12, as of 2007-09-04.

	See also {COSS}, {Component Object Model}, {RMI}.

	{OMG CORBA specs
	(http://www.omg.org/technology/documents/corba_spec_catalog.htm)}.

	(2007-09-04)

Common Objects

	<language> An {object-oriented} {Lisp} from {Hewlett-Packard}.

	["Inheritance and the Development of Encapsulated Software
	Components", A. Snyder, Proc 20th Hawaii Conf on Sys Sci,
	pp. 227-238, 1987].

	(1995-01-18)

Common Program Interface

	<programming> (CPI) The {API} of {SAA}.

	(1997-12-01)

Common User Access

	<programming> (CUA) The {user interface} standard of {SAA}.

	(1997-12-01)

Commonwealth Hackish

	<jargon> Hacker jargon as spoken outside the US, especially in
	the British Commonwealth.  It is reported that Commonwealth
	speakers are more likely to pronounce truncations like "char"
	and "soc", etc., as spelled (/char/, /sok/), as opposed to
	American /keir/ and /sohsh/.  Dots in {newsgroup} names
	(especially two-component names) tend to be pronounced more
	often (so soc.wibble is /sok dot wib'l/ rather than /sohsh
	wib'l/).  The prefix {meta} may be pronounced /mee't*/;
	similarly, Greek letter beta is usually /bee't*/, zeta is
	usually /zee't*/, and so forth.  Preferred {metasyntactic
	variables} include {blurgle}, "eek", "ook", "frodo", and
	"bilbo"; "wibble", "wobble", and in emergencies "wubble";
	"banana", "tom", "dick", "harry", "wombat", "frog", {fish},
	and so on and on (see {foo}).

	Alternatives to verb doubling include suffixes "-o-rama",
	"frenzy" (as in feeding frenzy), and "city" (examples: "barf
	city!"  "hack-o-rama!"  "core dump frenzy!").  Finally, note
	that the American terms "parens", "brackets", and "braces" for
	(), [], and {} are uncommon; Commonwealth hackish prefers
	"brackets", "square brackets", and "curly brackets".  Also,
	the use of "pling" for {bang} is common outside the United
	States.

	See also {attoparsec}, {calculator}, {chemist}, {console
	jockey}, {fish}, {go-faster stripes}, {grunge}, {hakspek},
	{heavy metal}, {leaky heap}, {lord high fixer}, {loose bytes},
	{muddie}, {nadger}, {noddy}, {psychedelicware}, {plingnet},
	{raster blaster}, {RTBM}, {seggie}, {spod}, {sun lounge},
	{terminal junkie}, {tick-list features}, {weeble}, {weasel},
	{YABA}, and notes or definitions under {Bad Thing}, {barf},
	{bum}, {chase pointers}, {cosmic rays}, {crippleware},
	{crunch}, {dodgy}, {gonk}, {hamster}, {hardwarily},
	{mess-dos}, {nibble}, {proglet}, {root}, {SEX}, {tweak} and
	{xyzzy}.

	[{Jargon File}]

	(1995-01-18)

Communicating Functional Processes

	<language> (CFP) A parallel {functional programming} language.

	["Communicating Functional Processes", M.C. van Eekelen et al,
	TR 89-3, U Nijmegen, Netherlands, 1989].

	(1994-11-30)

Communicating Sequential Processes

	<language, parallel> (CSP) A notation for {concurrency} based
	on {synchronous message passing} and selective communications
	designed by {Anthony Hoare} in 1978.  It features {cobegin}
	and coend and was a precursor to {occam}.

	See also {Contextually Communicating Sequential Processes}.

	["Communicating Sequential Processes", A.R. Hoare, P-H 1985].

	(1994-11-01)

Communication and Network Riser

	<hardware, standard> (CNR) A specification for {audio},
	{modem}, {USB} and {Local Area Networking} interfaces of core
	computer logic {chip sets}.  {Intel} introduced CNR on
	2000-02-07.  It was mainly developed by hardware and software
	developers who helped release AMR ({Audio/Modem Riser}) and is
	used by several computer manufacturers.

	{(http://www.computerhope.com/jargon/c/cnr.htm)}.

	(2007-03-15)

Communications Decency Act

	<legal> (CDA) An amendment to the U.S. 1996 Telecommunications
	Bill that went into effect on 1996-02-08.  The law, originally
	proposed by Senator James Exon to protect children from
	obscenity on the Internet, ended up making it punishable by
	fines of up to $250,000 to post indecent language on the
	Internet anywhere that a minor could read it.

	Thousands of outraged {Internet} users turned their {web
	pages} black in protest or displayed the {Electronic Frontier
	Foundation}'s special {icons}.

	On 1996-06-12, a three-judge panel in Philadelphia ruled the
	CDA unconstitutional and issued an injunction against the
	United States Justice Department forbidding them to enforce
	the "indecency" provisions of the law.  Internet users
	celebrated by displaying an animated "Free Speech" fireworks
	icon to their web pages, courtesy of the {Voters
	Telecommunications Watch}.  The Justice Department appealed
	the decision to the U.S. Supreme Court.

	(1996-11-03)

Communications of the ACM

	<publication> (CACM) A monthly publication by the {Association
	for Computing Machinery} sent to all members.  CACM is an
	influential publication that keeps computer science
	professionals up to date on developments.  Each issue includes
	articles, case studies, practitioner oriented pieces, regular
	columns, commentary, departments, the ACM Forum, technical
	correspondence and advertisements.

	{(http://acm.org/cacm/)}.

	(1995-01-18)

communications port

	<hardware, communications> A connector for a communications
	interface, usually, a {serial port}.

	(1996-08-04)

Communications Server

	<operating system> {IBM}'s rebranding of {ACF}.

	(1999-01-20)

communications software

	<communications, software> {Application programs}, {operating
	system} components, and probably {firmware}, forming part of a
	{communication system}.  These different software components
	might be classified according to the functions within the
	{Open Systems Interconnect} model which they provide.

	Typical applications include a {web browser}, {Mail User
	Agent}, {chat} and {telnet}.

	(2001-03-18)

communication system

	<communications> A system or facility for transfering data
	between persons and equipment.  The system usually consists of
	a collection of individual communication {networks},
	transmission systems, relay stations, tributary stations and
	{terminal} equipment capable of interconnection and
	interoperation so as to form an integrated whole.  These
	individual components must serve a common purpose, be
	technically compatible, employ common procedures, respond to
	some form of control and generally operate in unison.

	["Communications Standard Dictionary", 2nd Edition, Martin
	H. Weik].

	(1995-02-06)

Community of Massive Gaming Agency

	<body> (CMGA) An online {gaming portal} introduced by German Telekom.

	(2003-06-15)

COMNET

	<simulation, networking> A {simulation} tool from {CACI} for
	analysing wide-area voice or data networks, based on
	{SIMSCRIPT}.

	(2008-10-13)

compact

	1. <theory> (Or "finite", "isolated") In {domain theory}, an
	element d of a {cpo} D is compact if and only if, for any
	{chain} S, a subset of D,

		d <= lub S  =>  there exists s in S such that d <= s.

	I.e. you always reach d (or better) after a finite number of
	steps up the chain.

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

	[{Jargon File}]

	(1995-01-13)

	2. <jargon> Of a design, describes the valuable property that
	it can all be apprehended at once in one's head.  This
	generally means the thing created from the design can be used
	with greater facility and fewer errors than an equivalent tool
	that is not compact.  Compactness does not imply triviality or
	lack of power; for example, {C} is compact and {Fortran} is
	not, but C is more powerful than Fortran.  Designs become
	non-compact through accreting {features} and {cruft} that
	don't merge cleanly into the overall design scheme (thus, some
	fans of {Classic C} maintain that {ANSI C} is no longer
	compact).

	(2008-10-13)

Compact COBOL

	<language> A subset of {COBOL} defined, but not published,
	ca. 1961.

	[Sammet 1969, p. 339].

	(2008-10-13)

Compact Disc

	<storage> (CD) (Not "disk", this spelling is part of the
	standard).

	A 4.72 inch disc developed by {Sony} and {Philips} that can
	store, on the same disc, still and/or moving images in
	monochrome and/or color; stereo or two separate sound tracks
	integrated with and/or separate from the images; and digital
	program and information files.

	The same fabrication process is used to make both audio CDs
	and {CD-ROMs} for storing computer data, the only difference
	is in the device used to read the CD (the player or drive).

	{CD Information Center
	(http://cd-info.com/cd-info/CDInfoCenter.html)}.

	(1999-06-23)

Compact Disc interactive

	<storage> (CD-i) An embedded application of {CD-ROM} allowing
	the user limited interaction with films, games and educational
	applications via a special {controller}.

	(1994-11-02)

Compact Disc Read-Only Memory

	<storage> (CD-ROM) A {non-volatile} optical data storage
	medium using the same physical format as audio {compact
	discs}, readable by a computer with a CD-ROM drive.

	CD-ROM is popular for distribution of large databases,
	software and especially {multimedia} {applications}.  The
	maximum capacity is about 600 megabytes.  A CD can store
	around 640 {megabytes} of data - about 12 billion bytes per
	pound weight.

	CD-ROM drives are rated with a speed factor relative to music
	CDs (1x or 1-speed which gives a data transfer rate of 150
	{kilobytes} per second).  12x drives were common in April
	1997.  Above 12x speed, there are problems with vibration and
	heat.  {Constant angular velocity} (CAV) drives give speeds up
	to 20x but due to the nature of CAV the actual throughput
	increase over 12x is less than 20/12.

	20x was thought to be the maximum speed due to mechanical
	constraints but on 1998-02-24, {Samsung Electronics}
	introduced the SCR-3230, a 32x CD-ROM drive which uses a ball
	bearing system to balance the spinning CD-ROM in the drive to
	reduce noise.

	CD-ROM drives may connect to an {IDE} interface, a {SCSI}
	interface or a propritary interface, of which there are three
	- Sony, Panasonic, and Mitsumi.  Most CD-ROM drives can also
	play audio CDs.

	There are several formats used for CD-ROM data, including
	{Green Book CD-ROM}, {White Book CD-ROM} and {Yellow Book
	CD-ROM}.  {ISO 9660} defines a standard {file system}, later
	extended by {Joliet}.

	See also {Compact Disc Recordable}, {Digital Versatile Disc}.

	{Byte, February 1997
	(http://byte.com/art/9702/sec17/art5.htm)}.

	(2006-09-25)

Compact Disc Read-Write

	{Compact Disc Rewritable}

Compact Disc Recordable

	<storage> (CD-R) A write-once version of {CD-ROM}.  CD-Rs can
	hold about 650 {megabytes} of data.  They are very durable and
	can be read by normal CD-ROM drives, but once data has been
	written it cannot be altered.

	Standard prerecorded CDs have their information permanently
	stamped into an aluminium reflecting layer.  CD-R discs have a
	dye-based recording layer and an additional golden reflecting
	layer.

	Digital information is written to the disc by burning
	(forming) pits in the recording layer in a pattern
	corresponding to that of a conventional CD.

	The laser beam heats the substrate and recording layer to
	approximately 250 C.  The recording layer melts and the
	substrate expands into the space that becomes available.

	{Phillips: New Technologies
	(http://www-us.sv.philips.com/newtech/cdrewritable.html)}.

	See also {CD-RW} and {DVD-RAM}.

	(1999-08-01)

Compact Disc Rewritable

	<storage> (CD-RW) A rewritable version of {CD-ROM}.  A CD-RW
	drive can write about 650 {megabytes} of data to CD-RW media
	an unlimited number of times.  Most CD-RW drives can also
	write once to {CD-R} media.

	CD-RW media cannot be read by CD-ROM drives built prior to
	1997 due to the reduced reflectivity (15% compared to 70%) of
	CD-RW media.

	CD-RW drives and media are currently (1999) more expensive
	than {CD-R} drives and media.  CD-R is sometimes considered a
	better technology for archival purposes as the data cannot be
	accidentally modified or tampered with, and encourages better
	archival practices.

	Standard prerecorded CDs have their information permanently
	stamped into an aluminium reflecting layer.  CD-WR discs have
	a phase-change recording layer and an additional silver
	(aluminium) reflecting layer.

	A laser beam can melt crystals in the recording layer into a
	non-crystalline amorphous phase or anneal them slowly at a
	lower temperature back to the crystalline state.  The different
	reflectance of the areas make them appear as the 'pits' and
	'lands' of a standard CD.

	{Phillips: New Technologies
	(http://www-us.sv.philips.com/newtech/cdrewritable.html)}.

	See also {CD-R} and {DVD-RAM}.

	(1999-08-01)

Compact Disc writer

	<storage> (CD burner) A device that can write data to {Compact
	Disc Recordable} (CD-R) or {Compact Disc Rewritable} (CD-RW)
	discs.  Now both these CD formats are often combined with a
	{DVD writer}.

	(2008-09-16)

compaction

	{compression}

compactness preserving

	<theory> In {domain theory}, a {function} f is compactness
	preserving if f c is {compact} whenever c is.

	(1995-01-13)

Compaq Computer Corporation

	<company> A US manufacturer and vendor of {IBM PC compatible}
	{personal computers} and servers.  Compaq was started in 1982
	by three ex-{Texas Instruments} employees and by 1995 had
	become the largest PC manufacturer.

	Quarterly sales $2499M, profits $210M (Aug 1994).

	Compaq was acquired by {Hewlett-Packard} in 2004.

	{(http://compaq.com/)}.

	(1995-10-24)

Compas Pascal

	The predecessor of {Turbo Pascal}, sol by {POLY Data} of
	Denmark.  It was later renamed POLY Pascal, and afterward
	sold to {Borland}.

	(1995-01-19)

COMPASS

	COMPrehensive ASSembler.

	The {assembly language} on {CDC} computers.

	(1995-01-19)

compatibility

	{compatible}

compatible

	<jargon> Different systems (e.g., {programs}, {file formats},
	{protocols}, even {programming languages}) that can work
	together or exchange data are said to be compatible.

	See also {backward compatible}, {forward compatible}.

	(1998-01-15)

Compatible Timesharing System

	<operating system> (CTSS) One of the earliest (1963)
	experiments in the design of interactive {time-sharing}
	{operating systems}.  CTSS was ancestral to {Multics}, {Unix},
	and {ITS}.  It was developed at the {MIT} Computation Center
	by a team led by Fernando J. Corbato.  CTSS ran on a modified
	{IBM 7094} with a second 32K-word bank of memory, using two
	{2301 drums} for swapping.  {Remote access} was provided to up
	to 30 users via an {IBM 7750} {communications controller}
	connected to {dial-up} {modems}.

	The name {ITS} (Incompatible {time-sharing} System) was a hack
	on CTSS, meant both as a joke and to express some basic
	differences in philosophy about the way I/O services should be
	presented to user programs.

	(1997-01-29)

Compel

	{COMpute ParallEL}

Competitive Access Provider

	<networking> (CAP, or "Bypass Carrier") A company which
	provides network links between the customer and the
	{IntereXchange Carrier} or even directly to the {Internet
	Service Provider}.  CAPs operate private networks independent
	of {Local Exchange Carriers}.

	["Getting Connected The Internet at 56k and Up", Kevin Dowd,
	First Edition, p. 49, O'Reilly & Associates, Inc., June 1996,
	ISBN 1-56592-154-2 (US), ISBN 1-56592-203-4 (international)].

	(1997-07-23)

Compiled HTML

	<filename extension> A {Microsoft} file format for
	distributing a collection of {HTML} files, along with their
	associated images, sounds, etc., as a single compressed
	archive file.

	Microsoft use this format for {Windows} {HTML Help} files.
	Most chms include a project (.hhp) file listing the included
	files and basic settings, a contents (.hhc) file, an index
	(.hhk) file, html files, and, optionally, image files.

	Users view chms with hh.exe, the HTML Help viewer installed
	with {Internet Explorer}.

	Filename extension: .chm.

	{(http://msdn.microsoft.com/library/en-us/htmlhelp/html/vsconHH1Start.asp)}.

	(2003-05-17)

compiler

	<programming, tool> A program that converts another program
	from some {source language} (or {programming language}) to
	{machine language} (object code).  Some compilers output
	{assembly language} which is then converted to {machine
	language} by a separate {assembler}.

	A compiler is distinguished from an assembler by the fact that
	each input statement does not, in general, correspond to a
	single machine instruction or fixed sequence of instructions.
	A compiler may support such features as automatic allocation
	of variables, arbitrary arithmetic expressions, control
	structures such as FOR and WHILE loops, variable {scope},
	input/ouput operations, {higher-order functions} and
	{portability} of source code.

	{AUTOCODER}, written in 1952, was possibly the first primitive
	compiler.  {Laning and Zierler}'s compiler, written in
	1953-1954, was possibly the first true working algebraic
	compiler.

	See also {byte-code compiler}, {native compiler}, {optimising
	compiler}.

	(1994-11-07)

COmpiler and GENeralized Translator

	<language> (COGENT) A {compiler} writing language with
	pattern-directed string and list processing features, for {CDC
	3600} and {CDC} 3800.  A COGENT program consists of
	{productions} defining a {context-free} language, plus
	analysis and synthesis function generators.

	["COGENT Programming Manual", J.C. Reynolds, ANL-7022, Argonne,
	Mar 1965].

	[Sammet 1969, p.638].

	["An Introduction to the COGENT System", J.C. Reynolds, Proc
	ACM 20th Natl Conf, 1965].

	(1994-12-23)

compiler compiler

	{compiler-compiler}

Compiler-Compiler

	An early {compiler generator} for the {Atlas}, with its own
	distinctive input language.

	["The Compiler-Compiler", R.A. Brooker et al, Ann Rev
	Automatic Programming 3:229-275, Pergamon 1963].

	(1994-10-24)

compiler-compiler

	A utility to generate the {source code} of a {parser},
	{interpreter} or {compiler} from an annotated language
	description (usually in {BNF}).  Most so called
	compiler-compilers are really just {parser generators}.

	Examples are {Bison}, {Eli}, {FSL}, {META 5}, {MUG2},
	{Parsley}, {Pre-cc}, {Yacc}.

	(1995-01-23)

compiler jock

	A programmer who specialises in writing {compilers}.

	[{Jargon File}]

	(1995-01-19)

Compiler Language for Information Processing

	(CLIP) A language written in 1958-1959, based on {IAL}, which
	led to {JOVIAL}.  CLIP was one of the first languages used to
	write its own {compiler}.

	[Sammet 1969, p. 635].

	(1994-12-12)

Compiler Target Language

	(CTL) The intermediate language used by the {ALICE} parallel
	machine.

	["The Design and Implementation of ALICE: A Parallel Graph
	Reduction Machine", M.D. Cripps et al, Proc Workshop on Graph
	Reduction, Springer 1987].

	(1994-11-14)

compile time

	<programming> The period of time during which a program's
	{source code} is being translated into {machine code}, as
	opposed to {run time} when the program is being executed.  As
	well as the work done by the {compiler}, this may include
	macro preprocessing as done by {cpp} for example.  The final
	stage of program construction, performed by the {linker},
	would generally also be classed as compile time but might be
	distinguished as {link time}.

	For example, {static data} in a {C} program is allocated at
	compile time whereas non-static data is allocated at {run
	time}, typically on the {stack}.

	(2004-09-28)

COMPL

	<language, operating system>

	["The COMPL Language and Operating System", A.G. Fraser et al,
	Computer J 9(2):144-156, 1966].

	(1995-01-24)

complement

	<logic> The other value or values in the set of possible
	values.

	See {logical complement}, {bitwise complement}, {set
	complement}.

	(1995-01-24)

Complementary Metal Oxide Semiconductor

	<integrated circuit> (CMOS) A {semiconductor} fabrication
	technology using a combination of n- and p-doped semiconductor
	material to achieve low {power dissipation}.  Any path through
	a {gate} through which {current} can flow includes both n and
	p type {transistors}.  Only one type is turned on in any
	{stable state} so there is no {static power dissipation} and
	current only flows when a gate switches in order to charge the
	{parasitic capacitance}.

	(1999-06-04)

complementary nondeterministic polynomial

	<complexity> (Co-NP) The set (or property) of problems with a
	yes/no answer where the complementary no/yes problem takes
	{nondeterministic polynomial time} ({NP}).

	For example, "Is n prime" is Co-NP and "Is n not prime" is NP,
	since it is only necessary to find one {factor} to prove that
	n is not {prime} whereas to prove that it is prime all possible
	factors must be eliminated.

	(2009-05-21)

complete

	See also {complete graph}, {complete inference system},
	{complete lattice}, {complete metric space}, {complete partial
	ordering}, {complete theory}.

	[1. or 2. or both?]

	(1996-04-24)

complete graph

	A {graph} which has a link between every pair of nodes.  A
	complete {bipartite graph} can be partitioned into two subsets
	of nodes such that each node is joined to every node in the
	other subset.

	(1995-01-24)

complete inference system

	<logic> An {inference} system A is complete with respect to
	another system B if A can reach every conclusion which is true
	in B.  The dual to completeness is {soundness}.

	(1998-07-05)

complete lattice

	A {lattice} is a {partial ordering} of a set under a relation
	where all finite subsets have a {least upper bound} and a
	{greatest lower bound}.  A complete lattice also has these for
	infinite subsets.  Every finite lattice is complete.  Some
	authors drop the requirement for {greatest lower bounds}.

	(1994-12-02)

complete metric space

	<theory> A {metric space} in which every sequence that
	converges in itself has a limit.  For example, the space of
	{real numbers} is complete by {Dedekind's axiom}, whereas the
	space of {rational numbers} is not - e.g. the sequence a[0]=1;
	a[n_+1]:=a[n]/2+1/a[n].

	(1998-07-05)

completeness

	{complete}

complete partial ordering

	<theory> (cpo) A {partial ordering} of a {set} under a
	{relation}, where all {directed} {subsets} have a {least upper
	bound}.  A cpo is usually defined to include a least element,
	{bottom} (David Schmidt calls this a {pointed cpo}).  A cpo
	which is {algebraic} and {boundedly complete} is a (Scott)
	{domain}.

	(1994-11-30)

complete theory

	<logic> An abstract logical {theory} in which all true
	statements have formal {proofs} within the theory.

	(1998-07-05)

complete unification

	<programming> W.P. Weijland's name for {unification} without
	{occur check}.

	(1996-01-11)

Complex Instruction Set Computer

	(CISC) A processor where each instruction can perform several
	low-level operations such as memory access, arithmetic
	operations or address calculations.  The term was coined in
	contrast to {Reduced Instruction Set Computer}.

	Before the first RISC processors were designed, many computer
	architects were trying to bridge the "{semantic gap}" - to
	design {instruction sets} to support {high-level languages} by
	providing "high-level" instructions such as procedure call and
	return, loop instructions such as "decrement and branch if
	non-zero" and complex {addressing modes} to allow data
	structure and {array} accesses to be compiled into single
	instructions.

	While these architectures achieved their aim of allowing
	high-level language constructs to be expressed in fewer
	instructions, it was observed that they did not always result
	in improved performance.  For example, on one processor it was
	discovered that it was possible to improve the performance by
	NOT using the procedure call instruction but using a sequence
	of simpler instructions instead.  Furthermore, the more
	complex the instruction set, the greater the overhead of
	decoding an instruction, both in execution time and silicon
	area.  This is particularly true for processors which used
	{microcode} to decode the (macro) instruction.  It is easier
	to debug a complex instruction set implemented in microcode
	than one whose decoding is "{hard-wired}" in silicon.

	Examples of CISC processors are the {Motorola} {680x0} family
	and the {Intel 80186} through {Intel 486} and {Pentium}.

	(1994-10-10)

complexity

	<algorithm> The level in difficulty in solving mathematically
	posed problems as measured by the time, number of steps or
	arithmetic operations, or memory space required (called time
	complexity, computational complexity, and space complexity,
	respectively).

	The interesting aspect is usually how complexity scales with
	the size of the input (the "{scalability}"), where the size of
	the input is described by some number N.  Thus an {algorithm}
	may have computational complexity O(N^2) (of the order of the
	square of the size of the input), in which case if the input
	doubles in size, the computation will take four times as many
	steps.  The ideal is a constant time algorithm (O(1)) or
	failing that, O(N).

	See also {NP-complete}.

	(1994-10-20)

complexity analysis

	In sructured program design, a quality-control operation that
	counts the number of "compares" in the logic implementing a
	function; a value of less than 10 is considered acceptable.

complexity class

	<algorithm> A collection of {algorithms} or {computable
	functions} with the same {complexity}.

	(1996-04-24)

complexity measure

	<algorithm> A quantity describing the {complexity} of a
	computation.

	(1996-04-24)

complex number

	<mathematics> A number of the form x+iy where i is the square
	root of -1, and x and y are {real numbers}, known as the
	"real" and "imaginary" part.  Complex numbers can be plotted
	as points on a two-dimensional plane, known as an {Argand
	diagram}, where x and y are the {Cartesian coordinates}.

	An alternative, {polar} notation, expresses a complex number
	as (r e^it) where e is the base of {natural logarithms}, and r
	and t are real numbers, known as the magnitude and phase.  The
	two forms are related:

		r e^it = r cos(t) + i r sin(t)
		       = x + i y
	where
		x = r cos(t)
		y = r sin(t)

	All solutions of any {polynomial equation} can be expressed as
	complex numbers.  This is the so-called {Fundamental Theorem
	of Algebra}, first proved by Cauchy.

	Complex numbers are useful in many fields of physics, such as
	electromagnetism because they are a useful way of representing
	a magnitude and phase as a single quantity.

	(1995-04-10)

complex programmable logic device

	<hardware> (CPLD) A programmable circuit similar to an {FPGA},
	but generally on a smaller scale, invented by {Xilinx, Inc}.

	(1998-09-26)

component

	<programming> An {object} adhering to a {component
	architecture}.

	(1997-11-20)

component architecture

	<programming> A notion in {object-oriented} programming where
	"components" of a program are completely generic.  Instead of
	having a specialised set of {methods} and {fields} they have
	generic methods through which the component can advertise the
	functionality it supports to the system into which it is
	loaded.  This enables completely {dynamic loading} of
	{objects}.  {JavaBeans} is an example of a component
	architecture.

	See also {design pattern}.

	(1997-11-20)

component based development

	<programming> (CBD) The creation, integration, and {re-use} of
	{components} of program code, each of which has a common
	interface for use by multiple systems.

	(1999-08-23)

Component Integration Laboratories

	<project> (CIL) An effort to create a common framework for
	interoperability between {application programs} on {desktop}
	{platforms}, formed by {Apple Computer, Inc.}, {IBM},
	{Novell}, {Oracle}, {Taligent}, {WordPerfect} and {Xerox}.

	[When?  What happened?]

	(1994-10-24)

Component Object Model

	<programming> (COM) An open software architecture from {DEC}
	and {Microsoft}, allowing interoperation between
	{ObjectBroker} and {OLE}.  Microsoft evolved COM into {DCOM}.

	On page XV of Box's book in the foreword by Charlie Kindel he
	says, "It is Mark Ryland's fault that some people call COM the
	'Common Object Model.'  He deeply regrets it and apologizes
	profusely."

	["Essential COM", Don Box].

	[Details?  URL?]

	(1999-06-12)

com port

	{communications port}

composite

	{aggregate}

composition

	1. {function composition}.

	2. {typesetting}.

Compositional C++

	<language, parallel> (CC++) Extensions to {C++} for
	{compositional parallel programming}.

	{FTP Caltech (ftp://csvax.cs.caltech.edu/pub/comp)}.

	[Did Carl Kesselman at Cal Tech develop it?]

	(2000-08-16)

Compound Document Architecture

	<file format> (CDA) {DEC}'s set of {standards} for compound
	document creation, storage, retrieval, interchange and
	manipulation.

	(1996-11-03)

compound key

	<database> (Or "multi-part key", "concatenated key") A {key}
	which consists of more than one {attribute} of the body of
	information (e.g. database "{record}") it identifies.

	(1997-04-26)

COMPREHENSIVE

	An early system on {MIT}'s {Whirlwind}.

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

	(2002-06-03)

Comprehensive Perl Archive Network

	<tool> (CPAN) A collection of {Internet} {archives} containing
	material related to the {Perl} programming language.

	{(http://perl.com/CPAN)}.

	(1999-12-04)

Comprehensive TeX Archive Network

	<text> (CTAN) An {archive site} for the {TeX} text formatting
	package.

	{(http://tex.ac.uk)}.  {Gopher
	(gopher://gopher.tex.ac.uk/)}.  {(ftp://ftp.tex.ac.uk/)}.
	NFS: nfs.tex.ac.uk.

	(1995-01-18)

compress

	1. To feed data through any {compression} {algorithm}.

	2. <tool> The {Unix} program "compress", now largely
	supplanted by {gzip}.

	Unix compress was written in {C} by Joseph M. Orost, James
	A. Woods et al., and was widely circulated via {Usenet}.  It
	uses the {Lempel-Ziv Welch} {algorithm} and normally produces
	files with the suffix ".Z".

	Compress uses variable length codes.  Initially, nine-bit
	codes are output until they are all used.  When this occurs,
	ten-bit codes are used and so on, until an
	implementation-dependent maximum is reached.

	After every 10 {kilobytes} of input the compression ratio is
	checked.  If it is decreasing then the entire string table is
	discarded and information is collected from scratch.

Compressed SLIP

	<networking> (CSLIP) {VanJacobsen TCP header compression}.  A
	version of {SLIP} using {compression}.  CSLIP has no effect on
	the data portion of the {packet} and has nothing to do with
	compression by {modem}.  It does reduce the {TCP} header from
	40 bytes to 7 bytes, a noticeable difference when doing
	{telnet} with lots of little packets.  CSLIP has no effect on
	UDP, only TCP.

	(1995-05-28)

compressed video

	{video compression}

compression

	1. <application> (Or "compaction") The coding of data to save
	storage space or transmission time.  Although data is already
	coded in digital form for computer processing, it can often be
	coded more efficiently (using fewer bits).  For example,
	{run-length encoding} replaces strings of repeated characters
	(or other units of data) with a single character and a count.
	There are many compression {algorithms} and utilities.
	Compressed data must be decompressed before it can be used.

	The standard {Unix} compression utilty is called {compress}
	though {GNU}'s superior {gzip} has largely replaced it.  Other
	compression utilties include {pack}, {zip} and {PKZIP}.

	When compressing several similar files, it is usually better
	to join the files together into an {archive} of some kind
	(using {tar} for example) and then compress them, rather than
	to join together individually compressed files.  This is
	because some common compression {algorithms} build up tables
	based on the data from their current input which they have
	already compressed.  They then use this table to compress
	subsequent data more efficiently.

	See also {TIFF}, {JPEG}, {MPEG}, {Lempel-Ziv Welch},
	"{lossy}", "{lossless}".

	{Compression FAQ
	(ftp://rtfm.mit.edu/pub/usenet/news.answers/compression-faq/)}.

	{Web Content Compression FAQ
	(http://perl.apache.org/docs/tutorials/client/compression/compression.html)}.

	{Usenet} newsgroups: {news:comp.compression},
	{news:comp.compression.research}.

	2. <multimedia> Reducing the dynamic range of an audio signal,
	making quiet sounds louder and loud sounds quieter.  Thus,
	when discussing digital audio, the preferred term for reducing
	the total amount of data is "compaction".  Some advocate this
	term in all contexts.

	(2004-04-26)

COMPROSL

	COMpound PROcedural Scientific Language.

	A language for scientists and engineers.

	[Sammet 1969, pp. 299-300].

Compu$erve

	(Or "CompuSpend", "Compu$pend") A pejorative name for
	{CompuServe Information Service} ({CI$}) drawing attention to
	perceived high charges.

	[{Jargon File}]

	(1994-11-08)

Compulink Information eXchange

	(CIX) A London-based conferencing system, also providing
	{electronic mail}, {FTP}, {telnet}, {IRC}, {Gopher} and
	{World-Wide Web}.  Includes conferences "archimedes" or "bbc"
	for users of {Acorn} computers.

	E-mail: <cixadmin@cix.compulink.co.uk>.

	Telephone: +44 (181) 390 8446.

	(1994-11-08)

CompuServe

	{CompuServe Information Service}

CompuServe Corporation

	<company> The parent organisation of {CompuServe Information
	Service}, CompuServe Network Services and CompuServe Remote
	Computing Services.  CompuServe was owned by H.R. Block but is
	now (1999) owned by {America On-Line}.

	{(http://compuserve.com/)}.

	(1995-09-12)

CompuServe Information Service

	<company> (CIS, CompuServe Interactive Services).  An ISP and
	on-line service {portal} based in Columbus, Ohio, USA; part of
	{AOL} since February 1998.

	CIS was founded in 1969 as a computer {time-sharing service}.
	Along with {AOL} and {Prodigy}, CIS was one of the first
	pre-Internet, on-line services for consumers, providing
	{bulletin boards}, on-line conferencing, business news, sports
	and weather, financial transactions, {electronic mail},
	{Usenet} news, travel and entertainment data and on-line
	editions of computer publications.  CIS was originally run by
	{CompuServe Corporation}.

	In 1979, CompuServe was the first service to offer {electronic
	mail} and technical support to personal computer users.  In
	1980 they were the first to offer {real-time} {chat} with its
	CB Simulator.  By 1982, the company had formed its Network
	Services Division to provide wide-area networking to corporate
	clients.

	Initially mostly serving the USA, in 1986 they developed a
	Japanese version called NIFTYSERVE.  In 1989, they expanded
	into Europe and became a leading {Internet service provider}.

	In 2001 they released version 7.0 of their client program.

	{CompuServe home (http://compuserve.com/)}.

	(2009-04-02)

CompuServe Interactive Services

	{CompuServe Information Service}

Compusult Ltd.

	A computer consulting firm (in Newfoundland, Canada?) that
	provides a public access {Unix}.

	(1994-10-20)

computability theory

	<mathematics> The area of theoretical computer science
	concerning what problems can be solved by any computer.

	A function is computable if an {algorithm} can be implemented
	which will give the correct output for any valid input.

	Since computer programs are {countable} but {real numbers} are
	not, it follows that there must exist real numbers that
	cannot be calculated by any program.  Unfortunately, by
	definition, there isn't an easy way of describing any of them!

	In fact, there are many tasks (not just calculating real
	numbers) that computers cannot perform.  The most well-known
	is the {halting problem}, the {busy beaver} problem is less
	famous but just as fascinating.

	["Computability", N.J. Cutland. (A well written
	undergraduate-level introduction to the subject)].

	["The Turing Omnibus", A.K. Dewdeney].

	(1995-01-13)

computable

	{computability theory}

Computational Adequacy Theorem

	This states that for any program (a non-function typed term in
	the {typed lambda-calculus} with constants) {normal order
	reduction} (outermost first) fails to terminate if and only if
	the {standard semantics} of the term is {bottom}.  Moreover,
	if the reduction of program e1 terminates with some {head
	normal form} e2 then the standard semantics of e1 and e2 will
	be equal.  This theorem is significant because it relates the
	operational notion of a reduction sequence and the
	{denotational semantics} of the input and output of a
	reduction sequence.

computational complexity

	<algorithm> The number of steps or arithmetic operations
	required to solve a computational problem.  One of the three
	kinds of {complexity}.

	(1996-04-24)

Computational Fluid Dynamics

	<language> (CFD) A {Fortran}-based parallel language for the
	{Illiac IV}.

	(1994-11-29)

computational geometry

	<mathematics> The study of {algorithms} for combinatorial,
	topological, and metric problems concerning sets of points,
	typically in {Euclidean space}.  Representative areas of
	research include geometric search, convexity, proximity,
	intersection, and {linear programming}.

	(1997-08-03)

computational learning

	{grammatical inference}

computational molecular biology

	<application> The area of {bioinformatics} concerning the use
	of computers to characterise the molecular components of
	living things.

	(2005-01-07)

COMpute ParallEL

	<language> (Compel) The first {single-assignment} language.

	["A Language Design for Concurrent Processes", L.G. Tesler et
	al, Proc SJCC 32:403-408, AFIPS (Spring 1968)].

	(1995-01-19)

Computer

	<publication> A journal of the {IEEE Computer Society}.

	(1995-03-10)

computer

	<computer> A machine that can be programmed to manipulate
	symbols.  Computers can perform complex and repetitive
	procedures quickly, precisely and reliably and can quickly
	store and retrieve large amounts of data.

	The physical components from which a computer is constructed
	(electronic circuits and input/output devices) are known as
	"{hardware}".  Most computers have four types of hardware
	component: CPU, input, output and memory.  The CPU ({central
	processing unit}) executes programs ("{software}") which tell
	the computer what to do.  Input and output (I/O) devices allow
	the computer to communicate with the user and the outside
	world.  There are several kinds of memory - fast, expensive,
	short term memory (e.g. {RAM}) to hold intermediate results,
	and slower, cheaper, long-term memory (e.g. {magnetic disk} and
	{magnetic tape}) to hold programs and data between jobs.

	See also {analogue computer}.

	(1995-03-10)

Computer Aided Design

	<application> (CAD) The part of {CAE} concerning the drawing
	or physical layout steps of engineering design.  Often found
	in the phrase "CAD/CAM" for ".. manufacturing".

	(1994-11-30)

Computer Aided Detector Design

	<project, standard> (CADD) A project to standardise {HEP}
	detector designer.

	(2011-02-18)

Computer Aided Engineering

	<application> (CAE) The use of {software} to help with all
	phases of engineering design work.  Like {computer aided
	design}, but also involving the conceptual and analytical
	design steps and extending into {Computer-Integrated
	Manufacturing} (CIM).

	(1994-10-28)

Computer-Aided Instruction

	<application, education> (CAI, or "- assisted", "- learning",
	CAL, Computer-Based Training CBT, "e-learning") The use of
	computers for education and training.

	The programs and data used in CAI, known as "courseware", may
	be supplied on media such as {CD-ROM} or delivered via a
	{network} which also enables centralised logging of student
	progress.  CAI may constitute the whole or part of a course,
	may be done individually or in groups ("Computer Supported
	Collaborative Learning", CSCL), with or without human
	guidance.

	(2011-11-25)

Computer-Aided Learning

	{Computer-Aided Instruction}

Computer Aided Software Engineering

	<programming> (CASE, or "- assisted -") A technique for using
	computers to help with one or more phases of the {software
	life-cycle}, including the systematic analysis, design,
	implementation and maintenance of software.  Adopting the CASE
	approach to building and maintaining systems involves software
	tools and training for the developers who will use them.

	(1996-05-10)

Computer-Aided Software Testing

	<programming> (CAST) Automated software testing in one or more
	phases of the {software life-cycle}.

	(1996-05-10)

Computer Aided Test Engineering

	<testing, electronics> (CATE) {CASE} methods applied to
	electronics testing and linked to {CAE}.

	(2007-05-03)

Computer Animation Movie Language

	<language> A programming language for generating {animation}.

	["A Computer Animation Movie Language for Educational Motion
	Pictures", D.D. Weiner et al, Proc FJCC 33(2), AFIPS, Fall
	1968].

	(2012-01-30)

Computer-Assisted Learning

	{Computer-Aided Instruction}

Computer-Assisted Software Engineering

	{Computer-Aided Software Engineering}

Computer Associates International, Inc.

	<company> (CA) A US software development company, founded in
	1976.  CA have purchased many other software companies,
	including {Spectrum Software, Inc.}, {Cheyenne Software},
	{Platinum Technology, Inc.}, {ASK Corporation}.  They produce
	a number of popular software packages, including {Unicenter
	TNG} and {Ingres}.

	They had an {Initial Public Offering} in 1981 valued at more
	than US$3.2M, had more than US$6B in revenue in 2000, and
	employ more than 17,000 people.

	{(http://ca.com/)}.

	(20002-04-20)

Computer-Based Training

	{Computer-Aided Instruction}

computer bus

	{bus}

Computer Compiler

	1. <language> A proposed language for {compiler} design.

	[Sammet 1969, p. 695].

	2. A discussion of various applications of computers to the
	design and production of computers.

	{ACM
	(http://dl.acm.org/citation.cfm?id=1464213&CFID=83216609&CFTOKEN=42516197)}.

	["A proposal for a computer compiler", Gernot Metze
	(University of Illinois), Sundaram Seshu (University of
	Illinois), AFIPS '66 (Spring) Proceedings of the 1966-04-26 -
	28, Spring joint computer conference].

	(2007-02-13)

computer confetti

	<jargon> (Or "{chad}") A common term for {punched-card}
	{chad}, which, however, does not make good confetti, as the
	pieces are stiff and have sharp corners that could injure the
	eyes.

	{GLS} reports that he once attended a wedding at {MIT} during
	which he and a few other guests enthusiastically threw chad
	instead of rice.  The groom later grumbled that he and his
	bride had spent most of the evening trying to get the stuff
	out of their hair.

	[{Jargon File}]

	(2001-06-22)

Computer Conservation Society

	<body> (CCS) A british group that aims to promote the
	conservation and study of historic computers, past and future.
	The CCS is a co-operative venture between the {British
	Computer Society}, the Science Museum of London and the Museum
	of Science and Industry in Manchester.  The CCS was
	constituted in September 1989 as a Specialist Group of the
	BCS.

	A number of active projects and working groups focus on
	specific computer restorations, early computer technologies
	and software.  Membership is open to anyone interested.

	{Home (http://computerconservationsociety.org)}.

	See also {Bletchley Park}.

	(2012-03-22)

computer cookie

	{HTTP cookie}

computer crime

	<legal> Breaking the criminal law by use of a computer.

	See also {computer ethics}, {software law}.

	(1997-07-09)

Computer Design Language

	<language> An {ALGOL}-like language for computer design.

	["An ALGOL-like Computer Design Language", Y. Chu, CACM 8(10)
	(Oct 1965)].

	(1994-11-17)

computer dictionary

	{Free On-line Dictionary of Computing}

Computer Emergency Response Team

	<security, body> (CERT) An organisation formed by {DARPA} in
	November 1988 in response to the {Internet worm} incident.
	The CERT charter is to work with the {Internet} community to
	help it responf to computer security events involving Internet
	{hosts}, to raise awareness of computer security issues and to
	conduct research targeted at improving the security of
	existing systems.  CERT products and services include 24-hour
	technical assistance for responding to computer security
	incidents, product vulnerability assistance, technical
	documents and tutorials.

	{CERT Home (http://cert.org/)}.

	E-mail: <cert@cert.org> (incident reports).

	Telephone +1 (412) 268 7090 (24-hour hotline).

	(2012-05-18)

computer ethics

	<philosophy> Ethics is the field of study that is concerned
	with questions of value, that is, judgments about what human
	behaviour is "good" or "bad".  Ethical judgments are no
	different in the area of computing from those in any other
	area.  Computers raise problems of privacy, ownership, theft,
	and power, to name but a few.

	Computer ethics can be grounded in one of four basic
	world-views: Idealism, Realism, Pragmatism, or Existentialism.
	Idealists believe that reality is basically ideas and that
	ethics therefore involves conforming to ideals.  Realists
	believe that reality is basically nature and that ethics
	therefore involves acting according to what is natural.
	Pragmatists believe that reality is not fixed but is in
	process and that ethics therefore is practical (that is,
	concerned with what will produce socially-desired results).
	Existentialists believe reality is self-defined and that
	ethics therefore is individual (that is, concerned only with
	one's own conscience).  Idealism and Realism can be considered
	ABSOLUTIST worldviews because they are based on something
	fixed (that is, ideas or nature, respectively).  Pragmatism
	and Existentialism can be considered RELATIVIST worldviews
	because they are based or something relational (that is,
	society or the individual, respectively).

	Thus ethical judgments will vary, depending on the judge's
	world-view.  Some examples:

	First consider theft.  Suppose a university's computer is used
	for sending an e-mail message to a friend or for conducting a
	full-blown private business (billing, payroll, inventory,
	etc.).  The absolutist would say that both activities are
	unethical (while recognising a difference in the amount of
	wrong being done).  A relativist might say that the latter
	activities were wrong because they tied up too much memory and
	slowed down the machine, but the e-mail message wasn't wrong
	because it had no significant effect on operations.

	Next consider privacy.  An instructor uses her account to
	acquire the cumulative grade point average of a student who is
	in a class which she instructs.  She obtained the password for
	this restricted information from someone in the Records Office
	who erroneously thought that she was the student's advisor.
	The absolutist would probably say that the instructor acted
	wrongly, since the only person who is entitled to this
	information is the student and his or her advisor.  The
	relativist would probably ask why the instructor wanted the
	information.  If she replied that she wanted it to be sure
	that her grading of the student was consistent with the
	student's overall academic performance record, the relativist
	might agree that such use was acceptable.

	Finally, consider power.  At a particular university, if a
	professor wants a computer account, all she or he need do is
	request one but a student must obtain faculty sponsorship in
	order to receive an account.  An absolutist (because of a
	proclivity for hierarchical thinking) might not have a problem
	with this divergence in procedure.  A relativist, on the other
	hand, might question what makes the two situations essentially
	different (e.g. are faculty assumed to have more need for
	computers than students?  Are students more likely to cause
	problems than faculty?  Is this a hold-over from the days of
	"in loco parentis"?).

	{"Philosophical Bases of Computer Ethics", Professor Robert
	N. Barger (http://nd.edu/~rbarger/metaethics.html)}.

	{Usenet} newsgroups: {news:bit.listserv.ethics-l},
	{news:alt.soc.ethics}.

	(1995-10-25)

computer file

	{file}

computer geek

	<jargon> (Or "turbo nerd", "turbo geek") One who eats
	(computer) {bugs} for a living.  One who fulfils all the
	dreariest negative stereotypes about {hackers}: an asocial,
	malodourous, pasty-faced monomaniac with all the personality
	of a cheese grater.  The term cannot be used by outsiders
	without implied insult to all {hackers}; compare
	black-on-black usage of "nigger".  A computer geek may be
	either a fundamentally clueless individual or a proto-hacker
	in {larval stage}.

	See also {Alpha Geek}, {propeller head}, {clustergeeking},
	{geek out}, {wannabee}, {terminal junkie}, {spod}, {weenie}.

	[{Jargon File}]

	(1997-06-26)

computer-generated imagery

	<graphics> (CGI) Animatied graphics produced by computer and
	used in film or television.

	(1998-10-13)

Computer Generation Incorporated

	<company> (CGI) A US software development company and systems
	integrator.

	{(http://compgen.com/)}.

	E-mail: Paul G. Smith <pauls@compgen.com>

	Telephone: +1 (404) 705 2800

	Address: Bldg. G, 4th Floor, 5775 Peachtree-Dunwoody Rd.,
	Atlanta, GA 30342, USA.

	(1997-02-11)

Computer Graphics Metafile

	<graphics, file format> (CGM) A standard file format for
	storage and communication of graphical information, widely
	used on {personal computers} and accepted by {desktop
	publishing} and technical illustration systems.

	{MIME type}: image/cgm.

	{ANSI}/{ISO} 8632-1987.  Worked on by the {ISO}/{IEC} group
	{JTC1/SC24}.

	{CGM Open Consortium (http://cgmopen.org/)}.

	See also: {WebCGM}.

	(1999-02-16)

Computer Integrated Manufacturing

	<application> (CIM) Use of computers to control multiple
	aspects of a production process in a factory.  A CIM system
	may control and/or monitor areas such as design, analysis,
	planning, purchasing, cost accounting, inventory control,
	distribution, materials handling and management.

	(2003-06-07)

computer language

	{programming language}

Computer Language for AeronauticS and Programming

	<language> (CLASP) A {real-time} language from NASA, focussing
	on {fixed-point} mathematics.  CLASP is a near subset of
	{SPL}, with some ideas from {PL/I}.

	["Flight Computer and Language Processor Study", Raymond
	J. Rubey, Management Information Services, Detroit, 1971].

	(1994-10-13)

computer law

	<legal> Legal aspects of the production, sale and use of
	computers; including areas such as {software law},
	{copyright}, patents, sale of goods, communication law and
	general media issues such as free speech.

	(2012-08-30)

computer literacy

	<education> Basic skill in use of computers, from the
	perspective of such skill being a necessary societal skill.

	The term was coined by Andrew Molnar, while director of the
	Office of Computing Activities at the {National Science
	Foundation}.

	"We started computer literacy in '72 [...] We coined that
	phrase.  It's sort of ironic.  Nobody knows what computer
	literacy is.  Nobody can define it.  And the reason we
	selected [it] was because nobody could define it, and [...] it
	was a broad enough term that you could get all of these
	programs together under one roof" (cited in Aspray, W.,
	(September 25, 1991) "Interview with Andrew Molnar," OH 234.
	Center for the History of Information Processing, Charles
	Babbage Institute, University of Minnesota).

	The term, as a coinage, is similar to earlier coinages, such
	as "visual literacy", which {Merriam-Webster
	(http://m-w.com/)} dates to 1971, and the more recent
	"media literacy".

	A more useful definition from
	{(http://www.computerliteracyusa.com/)} is:

	Computer literacy is an understanding of the concepts,
	terminology and operations that relate to general computer
	use.  It is the essential knowledge needed to function
	independently with a computer.  This functionality includes
	being able to solve and avoid problems, adapt to new
	situations, keep information organized and communicate
	effectively with other computer literate people.

	(2007-03-23)

Computer Management Group of Australia

	<body> (CMGA) An Australian group that organises conferences,
	exhibitions, meetings and seminars about IT management for its
	corporate and individual members.

	{CMGA Home (http://cmga.org.au/)}.

	(2012-10-25)

Computer Mediated Communication

	<messaging> (CMC) Communication that takes place through, or
	is facilitated by, computers.  Examples include {e-mail}, the
	{World-Wide Web}, real-time {chat} tools like {IRC}, {Windows
	Live Messenger} and {video conferencing}.

	(2012-10-25)

computer nerd

	{computer geek}

computer network

	{network}

Computer Output on Microfilm

	{Enterprise Report Management}

Computer Output to Laser Disc

	{Enterprise Report Management}

Computer Output to Laser Disk

	{Enterprise Report Management}

Computer Professionals for Social Responsibility

	<body> (CPSR) A non-profit organisation whose mission is to
	provide the public and policymakers with realistic assessments of
	the power, promise and problems of {Information Technology} and
	the effects of computers on society.

	CPSR was founded in the USA in 1981 but has spread to many other
	countries.  CPSR is supported by its membership.  CPSR sponsors
	conferences such as their Annual Meeting, Directions and
	Implications in Advanced Computing (DIAC), the Participatory
	Design Conference (PDC) and the Computers, Freedom and Privacy
	(CFP) conference.

	{CPSR Home (http://cpsr.org/)}.

	(2012-11-04)

computer program

	{software}

Computer + Science NETwork

	<body> (CSNET) The networking organisation which combined with
	{BITNET} to form {CREN}.

	(1994-11-30)

computer security

	{security}

computer sex

	<jargon> Two computers interfaced with each other.

	(1996-02-22)

Computer Software Configuration Item

	<jargon, software> (CSCI) A {configuration item} consisting of
	{software}.

	(2012-11-07)

Computer-Supported Collaborative Learning

	<education> (CSCL) Any form of {Computer-Aided Instruction}
	that emphasises group learning as opposed to working alone.

	(2011-11-25)

Computer Supported Cooperative Work

	<tool> (CSCW) (Or "groupware") Software tools and technology
	to support groups of people working together on a project,
	often at different sites.

	See also {Lotus Notes}.

	(1994-11-30)

Computer Telephone Integration

	<communications> (CTI or "- Telephony -") Enabling computers to
	know about and control telephony functions such as making and
	receiving voice, {fax} and data calls, telephone directory
	services and {caller identification}.

	CTI is used in call centres to link incoming calls to computer
	software functions such as database look-up of the caller's
	number, supported by services such as {Automatic Number
	Identification} and {Dialled Number Identification Service}.

	Application software ({middleware}) can link {personal computers}
	and servers with telephones and/or a {PBX}.  Telephony and
	{software} vendors such as {AT&T}, {British Telecom}, {IBM},
	{Novell}, {Microsoft} and {Intel} have developed CTI services.

	The main {CTI} functions are integrating {messaging} with
	{databases}, {word processors} etc.; controlling voice, {fax},
	and {e-mail} messaging systems from a single {application
	program}; graphical call control - using a {graphical user
	interface} to perform functions such as making and receiving
	calls, forwarding and conferencing; call and {data}
	association - provision of information about the caller from
	databases or other applications automatically before the call
	is answered or transferred; {speech synthesis} and {speech
	recognition}; automatic logging of call related information
	for invoicing purposes or callback.

	CTI can improve customer service, increase productivity, reduce
	costs and enhance workflow automation.

	IBM were one of the first with workable CTI, now sold as
	"CallPath".  {Callware}'s {Phonetastic} is another {middleware}
	product.

	CTI came out of the 1980s call centre boom, where it linked
	central servers and {IVRs} with {PBX}es to provide call
	transfer and {screen popping}.  In the 1990s, efforts were
	made by several vendors, such as IBM, Novell {TSAPI} and
	Microsoft {TAPI}, to provide a version for {desktop computers}
	that would allow control of a desktop telephone and assist in
	{hot desking}.

	See also {Telephony Application Programming Interface}.

	(2012-11-18)

Computer Telephony

	{Computer Telephone Integration}

Computer Telephony Integration

	{Computer Telephone Integration}

computer virus

	{virus}

computer vision

	<application> A branch of {artificial intelligence} and {image
	processing} concerned with computer processing of images from the
	real world.  Computer vision typically requires a combination of
	low level {image processing} to enhance the image quality
	(e.g. remove noise, increase contrast), {pattern recognition} to
	recognise features such as lines, areas and colours and {image
	understanding} to translate these features into knowledge about
	the objects in the scene.

	{Usenet} newsgroup: {news:comp.ai.vision}.

	(2012-12-25)

compute server

	<computer, parallel> A kind of {parallel processor} where the
	parallel processors have no I/O except via a bus or other
	connection to a {front-end processor} which handles all I/O to
	disks, {terminals} and network.

	In some antiquated {IBM} {mainframes}, a second CPU was
	provided that could not access I/O devices, known as the slave
	or attached processor, while the CPU having access to all
	devices was known as the master processor.

	(1995-03-19)

computing

	{computer}

Computing Devices Canada Ltd.

	{General Dynamics Canada Ltd.}

computing dictionary

	{Free On-line Dictionary of Computing}

computron

	<jargon> /kom'pyoo-tron"/ 1. A notional unit of computing power
	combining execution speed and storage capacity.  E.g. "That
	machine can't run GNU Emacs, it doesn't have enough computrons!"

	2. A mythical subatomic particle that carries computation or
	information, in much the same way that an electron carries
	electric charge (see also {bogon}).

	[{Jargon File}]

	(2013-03-02)

Compuware Corporation

	<company> A US {software} and service company established in 1973.
	Since 1973, Compuware focused on optimising business software
	development, testing and operation.  In 1999 the company had grown
	to over 15,000 employees worldwide and revenues of more than
	$1.6B.  By 2013 it had shrunk to less than 5000.

	Current (2013) products and services include performance
	optimisation, availability and quality of web, non-web, mobile,
	streaming and cloud applications; project portfolio management,
	professional services automation; mainframe applications and
	developer tools; rapid application development and professional
	services.

	{(http://compuware.com/)}.

	(2013-03-08)

COMSL

	<language> ["COMSL - A Communication System Simulation Language",
	R.L. Granger, Proc FJCC 37 (1970)].

	(2013-03-08)

COMTRAN

	["Communications Computer Language COMTRAN", D.W. Clark et al,
	RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY,
	July 1969].

	[Sammet 1969, p.324, 331].

ConC

	<language> A {concurrent} extension of {C} based on {decomposed
	Petri nets}.  It uses the 'handshake' and 'unit' constructs.

	["ConC: A Language for Distributed Real-Time Programming",
	V.K. Garg et al, Computer Langs 16(1):5-18 (1991)].

	(1995-03-02)

concatenate

	<programming> To join together two or more files or lists to form
	one big one.

	The {Unix} {cat} command can be used to concatenate files.

	(1995-12-22)

concatenated key

	{compound key}

concentrator

	<communications> A device that combines the data streams from
	many simultaneously active inputs into one shared channel in
	such a way that the streams can be separated after
	transmission.  The concentrator's output bandwidth must be at
	least as great as the total bandwidth of all simultaneously
	active inputs.  A concentrator is one kind of {multiplexing}
	device.

	For example, a concentrator may be used to connect 24 2400 bps
	TTYs to a host via a 57600 bps channel.

	(2000-03-01)

conceptualisation

	<artificial intelligence> The process or result of listing the
	types of objects, concepts and other entities that are assumed to
	exist in some area of interest and the relationships that hold
	among them.  A conceptualisation is an {abstract}, simplified view
	of the world that we wish to represent.  For example, we may
	conceptualise a family as the set of names, sexes and the
	relationships of the family members.  Choosing a
	conceptualisation is the first stage of {knowledge
	representation}.  A conceptualisation is a high-level {data model}.

	Every {knowledge base}, {knowledge-based system}, or
	{knowledge-level agent} is committed to some
	conceptualisation, explicitly or implicitly.

	(2013-04-17)

Concert/C

	<language, parallel> A {parallel} extension of {ANSI C} with
	{asynchronous} {message passing}, developed at the {IBM} {TJWRC}
	in July 1993.  Concert/C provides {primitives} to create and
	terminate {processes} and communicate between them.  The programmer
	explicitly expresses parallelization and distribution.

	{1994 Announcement
	(http://www.cs.bu.edu/~best/courses/cs551/projects/concert.txt)}.

	(2013-05-05)

ConCoord

	<programming, parallel> An environment for programming networks of
	{sequential} and {parallel} computers.  ConCoord supports
	{explicit parallelism} with different {granularity}.

	(2013-05-22)

concrete class

	<programming> In {object-oriented programming}, a {class}
	suitable to be instantiated, as opposed to an {abstract
	class}.

	(1995-05-01)

Concrete Data Structure

	<theory> (CDS) A model of programming language terms developed in
	the context of constructing fully {abstract semantics} for
	{sequential} languages.  A CDS is a 4-tuple (C,V,E,|-) where C is
	a cell, V is a value, E is an event and |- is an "enabling
	relation".  An event is a cell and a value.  A cell C is "enabled"
	by a set of events S if S |- C.  A state is a set of events which
	are consistent in that the values they give for any cell are all
	equal.  Every cell in a state is enabled.

	[G. Berry, P.-L. Curien, "Theory and practice of sequential
	algorithms: the kernel of applicative language CDS", Algebraic
	methods in semantics, CUP 1985].

	(1994-11-30)

concrete syntax

	<language, data> The {syntax} of a language including all the
	features visible in the {source code} such as {parentheses}
	and {delimiters}.  The concrete syntax is used when {parsing}
	the program or other input, during which it is usually
	converted into some kind of {abstract syntax tree} (conforming
	to an {abstract syntax}).

	In communications, concrete syntax is called {transfer
	syntax}.

	(1997-07-21)

CONCUR

	<language> A proposal for a language for programming with
	{concurrent} processes.  CONCUR was inspired by {Modula} but
	removes Modula's restrictions on the placement of process
	declarations and invocations in order to study the implications of
	process support more fully.  Anderson presents a {compiler} which
	translates CONCUR into the {object language} for a hypothetical
	machine.

	["CONCUR, A Language for Continuous Concurrent
	Processes", R.M. Salter et al, Comp Langs 5(3):163-189, 1981].

	{["Concur: a High-Level Language for Concurrent Programming",
	Karen Anderson Thesis, B. Thomas Golisano College of Computing and
	Information Sciences, 1979]
	(https://ritdml.rit.edu/handle/1850/15968?show=full)}

	(2013-06-05)

concurrency

	{multitasking}

Concurrent C

	1. <language> An extension of {C} with {rendezvous}-based
	{concurrency}.  Versions for most {Unix} systems were available
	commercially from {AT&T}.

	["Concurrent C", N.H. Gehani et al, Soft Prac & Exp
	16(9):821-844 (1986)].

	["The Concurrent C Programming Language", N. Gehani et al,
	Silicon Press 1989].

	(1994-11-11)

	2. <language> An extension of {C} with {asynchronous} {message
	passing}.

	["Concurrent C: A Language for Distributed Systems",
	Y. Tsujino et al, Soft Prac & Exp 14(11):1061-1078 (Nov
	1984)].

	(1994-11-11)

Concurrent C++

	<language> A {programming language} developed by Gehani and Roome
	at {Bell Labs} by merging their earlier {Concurrent C} language
	with {C++}.

	["Concurrent C++: Concurrent Programming with Class(es)",
	N. Gehani, W.D. Roome, Bell Labs, 1986].

	(2013-06-26)

Concurrent Clean

	<language> An alternative name for {Clean} 1.0.

	(1995-11-08)

Concurrent CLU

	<language> A {programming language} extending {CLU} for
	{concurrent} processes, developed by by Hamilton in 1984.

	["Preserving Abstraction in Concurrent
	Programming", R.C.B.  Cooper, K.G. Hamilton, IEEE
	Trans Soft Eng SE-14(2):258-263, Feb 1988].1

	(2013-09-28)

Concurrent Constraint Programming

	<language> (CCP) Not a language, but a general approach.

	[Details?]

	(2001-11-01)

Concurrent Euclid

	<language, parallel> A {concurrent} extension of a subset of
	{Euclid} ("{Simple Euclid}") developed by J.R. Cordy and
	R.C. Holt of the {University of Toronto} in 1980.

	Concurrent Euclid features {separate compilation}, {modules},
	processes and {monitors}, {signal} and {wait} on {condition
	variables}, 'converters' to defeat {strong type checking},
	absolute addresses.  All procedures and functions are
	{re-entrant}.  {TUNIS} (a {Unix}-like {operating system}) is
	written in Concurrent Euclid.

	["Specification of Concurrent Euclid", J.R. Cordy & R.C. Holt,
	Reports CSRI-115 & CSRI-133, CSRI, U Toronto, Jul 1980,
	rev. Aug 1981].

	["Concurrent Euclid, The Unix System, and Tunis," R.C. Holt,
	A-W, 1983].

	(2005-02-19)

Concurrent LISP

	<language> A {concurrent} version of {Lisp}.  Sugimoto et al
	implemented an {interpreter} on a "large scale computer" and were
	planning to implement it on multiple {microprocessors}.

	["A Multi-Processor System for Concurrent Lisp", S. Sugimoto et
	al, Proc 1983 Intl Conf parallel Proc, 1983 pp.135-143].

	(2013-10-18)

Concurrent Massey Hope

	<language, functional programming> An extension of {Massey
	Hope}, by Peter Burgess, Robert Pointon, and Nigel Perry
	<N.Perry@massey.ac.nz> of {Massey University}, NZ, that
	provides {multithreading} and {type}d inter-{thread}
	communication.  It uses {C} for {intermediate code} rather
	than {assembly language}.

	(1999-08-04)

Concurrent ML

	<language> (CML) A {concurrent} extension of {SML/NJ} written
	by J. Reppy at {Cornell University} in 1990.  CML supports
	dynamic {thread} creation and synchronous {message passing} on
	typed channels.  Threads are implemented using first-class
	{continuations}.  First-class synchronous operations allow
	users to tailor their synchronisation abstractions for their
	application.  CML also supports both {stream I/O} and
	low-level I/O in an integrated fashion.

	Latest version 0.9.8, as of 1994-12-21, requires SML/NJ 0.75
	or later.

	{(ftp://ftp.cs.cornell.edu/pub/)}.

	E-mail: <sml-bugs@research.att.com> (bugs).

	["CML: A Higher-Order Concurrent Language", John H. Reppy,
	SIGPLAN Notices 26(6):293-305, June 1991].

	(2000-08-09)

Concurrent Oberon

	<language> A {concurrent} version of {Oberon}.  There is an
	implementation the {Ceres} {workstation}.

	["Adding Concurrency to the Oberon System", S. Lalis et al,
	ETH Zurich, 1993].

	(1994-11-11)

Concurrent Object-Oriented C

	<language> (cooC) A language with {concurrent} {object} execution
	from {Toshiba}.  It has {synchronous} and {asynchronous} {message
	passing}.  It has been implemented for {SunOS}.

	{(ftp://tsbgw.isl.rdc.toshiba.co.jp/pub/toshiba/cooc-beta.1.1.tar.Z)}.

	[SIGPLAN Notices 28(2)].

	(2000-08-13)

Concurrent Object-Oriented Language

	<language> (COOL) An extension of {C++} with {task-level
	parallelism} for {shared-memory} {multi-processors}.

	["COOL: A Language for Parallel Programming", R. Chandra
	<rohit@seagull.stanford.edu> et al in Languages and Compilers
	for Parallel Computing, D. Gelernter et al eds, MIT Press
	1990, pp. 126-148].

	E-mail: Rohit Chandra <rohit@cool.stanford.edu>.

	(1994-11-30)

Concurrent Pascal

	<language> An extension of a {Pascal} subset, {Sequential Pascal},
	developed by Brinch Hansen in 1972-75.  Concurrent Pascal was the
	first language to support {monitors}.  It provided access to
	hardware devices through monitor calls and also supported
	processes and {class}es.

	["The Programming Language Concurrent Pascal", Per Brinch
	Hansen, IEEE Trans Soft Eng 1(2):199-207 (Jun 1975)].

	(1994-11-30)

concurrent processing

	{multitasking}

Concurrent Prolog

	<language> A {Prolog} variant with {guarded clauses} and
	{committed-choice nondeterminism} ({don't-care nondeterminism}) by
	Ehud "Udi" Shapiro, Yale <shapiro-ehud@yale.edu>.  A subset has
	been implemented, but not the full language.

	See also {Mandala}.

	["Concurrent Prolog: Collected Papers", E. Shapiro, V.1-2, MIT
	Press 1987].

	(1994-11-30)

Concurrent Scheme

	<language> A parallel {Lisp}, for the {Mayfly} by M. Swanson
	<swanson%teewinot@cs.utah.edu>.

	["Concurrent Scheme", R.R. Kessler et al, in Parallel Lisp:
	Languages and Systems, T. Ito et al eds, LNCS 441, Springer
	1989].

	(1994-11-30)

ConcurrentSmalltalk

	<language> A {concurrent} variant of {Smalltalk}.

	["Concurrent Programming in ConcurrentSmalltalk", Y. Yokote et
	al in Object-Oriented Concurrent Programming, A. Yonezawa et
	al eds, MIT Press 1987, pp. 129-158].

	(1994-11-30)

Concurrent SP/k

	<language> (CSP/k) A {PL/I}-like {concurrent} language.

	["Structured Concurrent Programming with Operating System
	Applications", R.C. Holt et al, A-W 1978].

	(1997-12-15)

Concurrent Versions System

	<programming> (CVS) A {cross-platform} {code management
	system} originally based on {RCS}.

	CVS tracks all revisions to a file in an associated file with
	the same name as the original file but with the string ",v"
	(for version) appended to the filename.  These files are
	stored in a (possibly centralised) repository.

	Changes are checked in or "committed" along with a comment (which
	appears in the the "commit log").  CVS has the notions of
	projects, {branches}, file locking and many others needed to
	provide a full-functioned repository.

	It is commonly accessed over over its own "anonCVS" {protocol} for
	read-only access (many {open source} projects are available by
	anonymous CVS) and over the {SSH} protocol by those with commit
	privileges ("committers").

	CVS has been rewritten several times and does not depend on
	RCS.  However, files are still largely compatible; one can
	easily migrate a project from RCS to CVS by copying the
	history files into a CVS repository.  A sub-project of the
	{OpenBSD} project is building a complete new implementation of
	CVS, to be called OpenCVS.

	{CVS Home (http://cvshome.org/)}.  {OpenCVS
	(http://opencvs.org/)}.

	(2005-01-17)

condela

	{Connection Definition Language}

condition out

	<programming> A programming technique that prevents a section of
	{code} from being executed by putting it in an {if statement}
	whose condition is always false.

	It is often easier to do this than to {comment out} the code
	because you don't need to modify the code itself (as you would if
	commenting out each line individually) or worry about {nested
	comments} within the code (as you would if putting nesting comment
	delimiters around it).

	For example, in {Perl} you could write:

	 if (0) {
	 ...code to be ignored...
	 }

	In a compiled language, the {compiler} could simply generate no
	code for the whole if statement.  Some compiled languages such as
	C provide {compile-time directives} that achieve the same effect,
	e.g.:

	 #if 0
	 ...code to be ignored...
	 #endif

	(or "#ifdef notdef").

	[{Jargon File}]

	(2013-12-08)

condom

	<jargon> 1. The protective plastic bag that accompanies {3.5-inch
	microfloppy diskettes}.  Rarely, also used of (paper) disk
	envelopes.  Unlike the {write protect tab}, the condom (when left
	on) not only impedes the practice of {SEX} but has also been shown
	to have a high failure rate as drive mechanisms attempt to access
	the disk - and can even fatally frustrate insertion.

	2. The protective cladding on a {light pipe}.

	3. "keyboard condom": A flexible, transparent plastic cover
	for a keyboard, designed to provide some protection against
	dust and {programming fluid} without impeding typing.

	4. "elephant condom": the plastic shipping bags used inside
	cardboard boxes to protect hardware in transit.

	[{Jargon File}]

	(1995-03-14)

Conference On DAta SYstems Languages

	<body> (CODASYL) A consortium that developed {database models} and
	standard {database} extensions for {COBOL}.

	CODASYL was formed in 1959 to guide the development of a
	{standard} {programming language} that could be used on many
	computers.  Members came from industry and government data
	processing departments.  Its goal was to promote more effective
	data {systems analysis}, design and implementation.  It published
	specifications for various languages over the years, handing these
	over to official standards bodies ({ISO}, {ANSI} or their
	predecessors) for formal standardisation.

	The 1965 List Processing Task Force worked on the {IDS/I} database
	extension.  It later renamed itself to the Data Base Task Group
	(DBTG) and publishing the Codasyl Data Model, the first to allow
	one-to-many {relations}.  This work also introduced {data
	definition languages} (DDLs) to define the {database schema} and a
	{data manipulation language} (DML) to be embedded in COBOL
	programs to request and update data in the database.

	Interest in CODASYL declined with the rise of {relational
	databases} beginning in the early 1980s.

	(2013-12-29)

Conferencing over IP

	<communications, standard> (CoIP) Standards for the transmission
	of {multimedia} over the {Internet}.  CoIP extends {VoIP} (voice
	over Internet Protocol) with {text}, {images}, {video}.  The main
	CoIP standard is based on {H.323}.

	The VoIP forum of the {IMTC} merged with the {H.323} Activity
	Group in January 1999 to form the Conferencing over IP (CoIP)
	Activity Group.

	VoIP uses "VoIP Devices" as {gateways} to {route} voice data
	{packets} over the Internet or {PSTN}.  {Protocols} such as {SGCP}
	and its successor {MGCP} extend VoIP to handle media other than
	voice data.

	(2013-12-29)

confidence test

	<testing> Tests to confirm that the results of a program lie
	within certain ranges according to the expected probability
	distribution.

	(1997-10-27)

CONFIG.SYS

	<operating system> A {text file} containing special system
	configuration commands, found in the {root directory} on an
	{MS-DOS} computer, typically on {drive} C (the {hard disk}).  It
	is read by {MS-DOS} at {boot time}, after the setup has been read
	from {CMOS RAM} and before running {AUTOEXEC.BAT}.  It can be
	modified by the user.

	Some example commands which CONFIG.SYS might contain are:

		DEVICE=C:\DOS\HIMEM.SYS /testmem:off

	Load the {extended memory} manager.

		DEVICE=C:\DOS\EMM386.EXE RAM

	Load the {expanded memory} manager.

		BUFFERS=10,0

	Specify memory for {disk buffers}.

		FILES=70

	Set the number of files that can be open at once.

		DOS=UMB

	DOS is located in {UppeMemoryBlock}.

		LASTDRIVE=Z

	Disk drives are A: to Z:.

		FCBS=16,0

	Set the number of {file control blocks}.

		DEVICEHIGH /L:1,12048 =C:\DOS\SETVER.EXE

	Report the DOS version to older programs.

		DOS=HIGH

	DOS should maintain a link to {UMB}.

		COUNTRY=358,437 C:\DOS\COUNTRY.SYS

	Set the {country code} for some programs.

		STACKS=9,256

	Set {dynamic stacks} for hardware control.

		SHELL=C:\DOS\COMMAND.COM C:\DOS\ /E:1024 /p

	Set the location of the {command interpreter}.

	(1995-03-16)

configuraholic

	<jargon> A {luser} who twiddles with computer settings until
	it no longer works and must be fixed by the {system
	administror}.

	(2007-03-20)

configuration item

	<jargon> Hardware or software, or an aggregate of both, which
	is designated by the project configuration manager (or
	contracting agency) for {configuration management}.

	(1996-05-29)

configuration management

	<job> A discipline applying technical and administrative
	controls to:

	1. Identification and documentation of physical and functional
	characteristics of {configuration items}.

	2. Any changes to characteristics of those configuration
	items.

	3. Recording and reporting of change processing and
	implementation of the system.

	{Source code management} or "code management" is configuration
	management applied to {code} through the various stages of the
	{software life-cycle}.

	(2014-01-21)

configuration programming

	<programming> An approach that advocates the use of a separate
	configuration language to specify the {coarse-grain} structure
	of programs.  Configuration programming is particularly
	attractive for {concurrent}, parallel and distributed systems
	that have inherently complex program structures.

	{Darwin} is an example of a configuration language.

	(1995-03-14)

configure

	<software> A program by {Richard Stallman} to discover
	properties of the current {platform} and to set up {make} to
	compile and install {gcc}.

	{Cygnus configure} was a similar system developed by
	K. Richard Pixley in collaboration with Richard Stallman.
	In 1994, David MacKenzie and others modified {autoconf} to
	incorporate all the features of Cygnus configure and many
	{GNU} programs, including gcc now use autoconf.

	{Metaconfig} is a similar program used in building {Perl}.

	{(http://airs.com/ian/configure)}.

	(2005-04-15)

conflation

	<database> Combining or blending of two or more versions of a
	text; confusion or mixing up.  Conflation {algorithms} are
	used in {databases}.

	[Any specific technical meaning?]

	(1996-04-14)

congestion

	<communications> The condition that arises when the amount of data
	senders want to send down a communication path exceeds its
	{capacity}.  Typically this will result in some {packets} being
	delayed, thus increasing the average {latency}.

	(2014-05-04)

CONIC

	<systems> A {distributed system} language and {operating system}
	developed at {Imperial College} to support {dynamic
	configuration}.

	{Paper (http://spiral.imperial.ac.uk/bitstream/10044/1/452/1/Dynamic%20Configuration%20for%20Distributed.pdf)}.

	["Dynamic Configuration for Distributed Systems", J. Kramer et
	al, IEEE Trans Soft Eng SE-11(4):424-436, Apr 1985].

	(2014-05-04)

conjunction

	{AND}

Conjunctive Normal Form

	<logic> (CNF) A {logical formula} consisting of a
	{conjunction} of {disjunctions} of terms where no disjunction
	contains a conjunction.  Such a formula might also be
	described as a product of sums.  E.g. the CNF of

		(A and B) or C
	is
		(A or C) and (B or C).

	Contrast {Disjunctive Normal Form}.

	(1995-12-10)

connect

	<library, networking> {Unix} socket library routine to connect
	a socket that has been created on the local hosts to one at a
	specified socket address on the remote host.

	{Unix manual pages}: connect(2), accept(2).

	(1995-03-21)

connected graph

	<mathematics> A {graph} such that there is a path between any
	pair of nodes (via zero or more other nodes).

	Thus if we start from any node and visit all nodes connected
	to it by a single edge, then all nodes connected to any of
	them, and so on, then we will eventually have visited every
	node in the connected graph.

	(1996-09-22)

connected subgraph

	<mathematics> A {connected graph} consisting of a {subset} of
	the {nodes} and {edges} of some other graph.

	(1996-09-22)

Connection Definition Language

	<language> (condela) A {procedural}, parallel language for
	defining {neural networks}.

	{(ftp://tut.cis.ohio-state.edu/pub/condela)}.

	(1994-11-30)

connectionless protocol

	<protocol> The data communication method in which communication
	occurs between {hosts} with no previous setup.  {Packets} sent
	between two hosts may take different routes.

	{UDP} is a connectionless protocol.  Also called {packet
	switching}.  Contrast {circuit switching}, {connection-oriented}.

	(2014-05-04)

Connection Machine LISP

	<language> {Lisp} with a parallel data structure, the
	'xapping', an array of values assigned to an {array} of sites.

	[G.L. Steele et al, "Connection Machine LISP: Fine-Grained
	Parallel Symbolic Processing", in Proc 1986 ACM Conf on LISP
	and Functional Prog, Aug 1986, pp.279-297].

	["Connection Machine LISP Reference Manual", Thinking Machines
	Corp, Feb 1987].

	(1995-02-28)

connection-oriented

	<networking> (Or connection-based, stream-oriented).  A type
	of {transport layer} data communication service that allows a
	{host} to send data in a continuous stream to another host.
	The transport service will guarantee that all data will be
	delivered to the other end in the same order as sent and
	without duplication.  Communication proceeds through three
	well-defined phases: connection establishment, data transfer,
	connection release.  The most common example is {Transmission
	Control Protocol} (TCP).

	Opposite of {connectionless}, {datagram}.  See also {circuit
	switching}, {packet switching}, {virtual circuit}.

connection-oriented network service

	<networking> (CONS) Because of the relatively long transit
	delays and inferior bit error rate of {WANs}, a more
	sophisticated {connection-oriented} {protocol} is normally
	used.

	(1997-11-08)

connective

	<logic> An operator used in {first order logic} to combine two
	logical formulas.

	(2014-05-04)

connector conspiracy

	<business, standard> The tendency of manufacturers (or, by
	extension, other designers) to come up with products that
	don't fit with the old stuff, thereby making you buy either
	all new stuff or expensive interface devices.

	The term probably came into prominence with the appearance of
	the DEC {KL-10}, none of whose connectors matched anything
	else.  The KL-10 {Massbus} connector was actually *patented*
	by {DEC}, who reputedly refused to licence the design, thus
	effectively locking out competition for the lucrative Massbus
	peripherals market.  This policy was a source of frustration
	for the owners of dying, obsolescent disk and tape drives.

	A related phenomenon is the invention of new screw heads so
	that only Designated Persons, possessing the magic
	screwdrivers, can remove covers and make repairs or install
	options.  Older Apple {Macintosh}es took this one step
	further, requiring not only a hex wrench but a specialised
	case-cracking tool to open the box.

	With the advent of more open-systems computing this term has
	fallen somewhat into disuse.

	Compare {backward combatability}.

	[{Jargon File}]

	(2010-02-04)

CONNIVER

	<language> An {artificial intelligence} {programming language} for
	{automatic theorem proving} from {MIT}.  CONNIVER grew out of
	{PLANNER} and was based on {coroutines} rather than
	{backtracking}.  It allowed multiple database contexts with
	hypothetical assertions.

	["The CONNIVER Reference Manual", D. McDermott & G.J. Sussman
	<gjs@zurich.ai.mit.edu>, AI Memo 259, MIT AI Lab, 1973].

	(1995-01-10)

Co-NP

	{complementary nondeterministic polynomial}

CONS

	{connection-oriented network service}

cons

	<programming> /konz/ or /kons/ A {Lisp} function which takes an
	element H and a {list} T and returns a new list whose {head} is H
	and whose {tail} is T.

	In {Lisp}, "cons" (short for "construct") is the fundamental
	operation for building structures.  It actually takes any two
	objects and returns them in a "cons cell" or pair object.  This is
	sometimes called a {dotted-pair} because an application of cons:

		(cons H T)

	can also be input and output using an {infix} dot operator:

		(H . T)

	(with suitable quoting of arguments).

	A cons cell can also be used as two-branched tree node object with
	one object hanging from each branch.  Because the result of a cons
	is itself an object, it can be used to build {binary trees} of any
	shape and complexity.

	Typically, a cons would be represented in memory as a two
	consecutive {pointers}.

	For historical reasons, the functions to return the objects in a
	cons are called {car} and {cdr}.

	[{Jargon File}]

	(2014-06-11)

conservative evaluation

	<parallelism> Under this {parallel evaluation strategy}, no
	evaluation is started unless it is known to be needed.  The
	opposite of conservative evaluation is {speculative evaluation}.

	(2014-06-21)

considered harmful

	<programming, humour> A type of phrase based on the title of
	{Edsger W. Dijkstra}'s famous note in the March 1968
	{Communications of the ACM}, "Goto Statement Considered Harmful",
	which fired the first salvo in the {structured programming wars}.

	Amusingly, the {ACM} considered the resulting acrimony
	sufficiently harmful that it will (by policy) no longer print
	articles taking so assertive a position against a coding practice.

	In the ensuing decades, a large number of both serious papers and
	parodies bore titles of the form "X considered Y".  The
	structured-programming wars eventually blew over with the
	realisation that both sides were wrong, but use of such titles has
	remained as a persistent minor in-joke.

	[{Jargon File}]

	(2014-06-21)

consistently complete

	{boundedly complete}

console

	1. <hardware, operating system, history> The {operator}'s station
	of a {mainframe} as opposed to an ordinary user's {terminal}.  In
	times past, the console was a privileged location that conveyed
	godlike powers to anyone with fingers on its keys.  Under {Unix}
	and other modern {time-sharing} {operating systems}, such
	privileges are guarded by {passwords} instead, and the console is
	just the {tty} the system was booted from.  On Unix the device is
	called /dev/console.

	On a {microcomputer} {Unix} box, the console is the main screen
	and keyboard.  Other, character-only, terminals may be connected
	to {serial ports}.  Typically only the console can do real
	{graphics} or run {X}.  See also {CTY}.

	2. <games> A self-contained {microcomputer} optimised for gaming,
	with powerful graphical output designed to be displayed on a
	television; equipped with one or more {joystick} controllers for
	input and an {optical drive} to load software.  Later generations
	also feature {Internet} connection via {wireless} or wired
	{Ethernet} for downloading games and multiplayer networked play.
	Typically such devices have no keyboard so text must be input
	using the controller to operate an on-screen keyboard, e.g. to
	enter player names.

	The most successful recent examples are the {Sony Playstation} and
	{Microsoft Xbox} families.

	[{Jargon File}]

	(2014-07-01)

console jockey

	{terminal junkie}

consortium

	<body> A group of two or more companies, educational
	institutions, governments or other bodies with some shared
	purpose.

	Examples from computing include the {World Wide Web
	Consortium} (W3C), {Apache Software Foundation}, {The Open
	Group}, {X Consortium}.

	(2009-06-05)

Consortium for Lexical Research

	<body> (CLR) A repository for {natural language processing}
	software, {lexical} data, tools and resources; set up in July 1991
	in the Computing Research Laboratory of {New Mexico State
	University}, Las Cruces, New Mexico, USA.

	CLR maintained a public {FTP} {archive site} and a separate
	members-only library.  As of 1994-02-01, CLR had about 60 members,
	mostly academic institutions, including most US natural language
	processing centres.  Materials could be contributed in exchange
	for membership.

	In 2006, the CRL closed down due to lack of funding.  The CLR
	FTP server and e-mail address seems to have disappeared with it.

	[{The Consortium for Lexical Research, Y. Wilks, Principal
	Investigator, Computing Research Laboratory, New Mexico State
	University
	(http://clair.eecs.umich.edu/aan/paper.php?paper_id=H92-1114)}].

	(2014-07-06)

constant angular velocity

	<storage> (CAV) One of the two schemes for controlling the rate of
	rotation of the disk in a {disk drive}.  Constant {angular
	velocity} keeps the rate of rotation constant.  This means that
	the {linear velocity} of the disk under the head is larger when
	reading or writing the outer {tracks}.  This in turn implies
	either a variation in the data rate to and from the heads or the
	bits per unit length along the track.

	The alternative, {constant linear velocity}, requires the rate of
	rotation of the disk to accelerate and decelerate according to the
	radial postion of the heads, increasing the energy use and
	vibration.

	(2014-07-16)

constant applicative form

	<functional programming> (CAF) A {supercombinator} which is
	not a {lambda abstraction}.  This includes truly constant
	expressions such as 12, (+ 1 2), [1, 2, 3] as well as partially
	applied functions such as (+ 4).  Note that this last example
	is equivalent under {eta abstraction} to \ x . + 4 x which is
	not a CAF.

	Since a CAF is a supercombinator, it contains no free
	variables.  Moreover, since it is not a lambda abstraction it
	contains no variables at all.  It may however contain
	identifiers which refer to other CAFs, e.g.

		c 3 where c = (* 2).

	A CAF can always be lifted to the top level of the program.
	It can either be compiled to a piece of graph which will be
	shared by all uses or to some shared code which will overwrite
	itself with some graph the first time it is evaluated.  A CAF
	such as

		ints = from 1  where  from n = n : from (n+1)

	can grow without bound but may only be accessible from within
	the code of one or more functions.  In order for the {garbage
	collector} to be able to reclaim such structures, we associate
	with each function a list of the CAFs to which it refers.
	When garbage collecting a reference to the function we collect
	the CAFs on its list.

	[{The Implementation of Functional Programming Languages, Simon
	Peyton Jones (http://research.microsoft.com/%7Esimonpj/papers/slpj-book-1987/PAGES/224.HTM)}].

	(2006-10-12)

constant folding

	<compiler> A {compiler} {optimisation} technique where
	constant subexpressions are evaluated at {compile time}.  This
	is usually only applied to built-in numerical and {boolean}
	operators whereas {partial evaluation} is more general in that
	expressions involving user-defined functions may also be
	evaluated at compile time.

	(1997-02-20)

Constantine/Yourdon

	{Yourdon/Constantine}

constant linear velocity

	<storage> (CLV) A {disk} driving scheme in which the {linear
	velocity} of the disk is kept constant.  This requires that
	the {angular velocity} of the disk be larger when the reading
	or writing tracks closer to the axis.  The advantage of this
	technique is that the read/write speed is constant.  However,
	as mechanical stability puts an upper limit on the angular
	velocity (and not the linear velocity) using the same linear
	velocity throughout, i.e., using less then the maximal angular
	velocity at outer tracks means that the full potential of the
	drive is not used.

	(1998-03-27)

constant mapping

	Some TCP software constructs the destination Ethernet address
	from the top 24 bits of the Ethernet address followed by the
	low 24 bits of the (class A) destination Internet address.
	For this scheme the top 24 bits of the Ethernet address must
	be the same on all hosts on the net.  Contrast {ARP}.

constraint

	<programming, mathematics> A {Boolean} {relation}, often an
	equality or {ineqality} relation, between the values of one or
	more mathematical variables (often two).  E.g. x>3 is a
	constraint on x.  {constraint satisfaction} attempts to assign
	values to variables so that all constraints are true.

	{Usenet} newsgroup: {news:comp.constraints}.  {FAQ
	(http://cs.unh.edu/ccc/archive/)}.

	(2002-06-08)

constraint functional programming

	<programming> (CFP) {functional programming} plus
	{constraints}.

	(2002-06-08)

Constraint Handling In Prolog

	<language> (CHIP) A {constraint logic programming} language
	developed by M. Dincbas at {ECRC}, Munich, Germany in 1985
	which includes {Boolean unification} and a symbolic
	{simplex}-like {algorithm}.  CHIP introduced the
	{domain-variable model}.

	["The Constraint Logic Programming Language CHIP", M. Dincbas
	et al, Proc 2nd Intl Conf on Fifth Generation Computer Sys,
	Tokyo (Nov 1988), pp.249-264].

	["Constraint Satisfaction in Logic Programming", Van
	Hentenryck.  Available from COSYTEC, 4 rue Jean Rostand,
	F91893 Orsay, France].

	(1994-11-15)

ConstraintLisp

	<language> An {object-oriented} {constraint} language based on
	{CSP}.  An extension of {Common Lisp} and {CLOS}.

	["ConstraintLisp: An Object-Oriented Constraint Programming
	Language", Bing Liu (ex bing@iti.gov.sg) et al, SIGPLAN
	Notices 27(11):17-26, Nov 1992].

	(2000-04-02)

Constraint Logic Programming

	(CLP) A programming framework based (like {Prolog}) on {LUSH}
	(or {SLD}) {resolution}, but in which {unification} has been
	replaced by a {constraint solver}.  A CLP {interpreter}
	contains a Prolog-like {inference engine} and an {incremental
	constraint solver}.  The engine sends constraints to the
	solver one at a time.  If the new constraint is consistent
	with the collected constraints it will be added to the set.
	If it was inconsistent, it will cause the engine to
	{backtrack}.

	{CLP*} is a variant.

	["Constraint Logic Programming", J. Jaffar et al, 14th POPL,
	ACM 1987].

	(1994-11-01)

CONSTRAINTS

	A language for solving {constraints} using {value inference}.

	["CONSTRAINTS: A Language for Expressing Almost-Hierarchical
	Descriptions", G.J. Sussman et al, Artif Intell 14(1):1-39
	(Aug 1980)].

	(1994-11-01)

constraint satisfaction

	<application> The process of assigning values to variables
	while meeting certain requirements or "{constraints}".  For
	example, in {graph colouring}, a node is a variable, the
	colour assigned to it is its value and a link between two
	nodes represents the constraint that those two nodes must not
	be assigned the same colour.  In {scheduling}, constraints
	apply to such variables as the starting and ending times for
	tasks.

	The {Simplex} method is one well known technique for solving
	numerical constraints.

	The search difficulty of constraint satisfaction problems can
	be determined on average from knowledge of easily computed
	structural properties of the problems.  In fact, hard
	instances of {NP-complete} problems are concentrated near an
	abrupt transition between under- and over-constrained
	problems.  This transition is analogous to phase transitions
	in physical systems and offers a way to estimate the likely
	difficulty of a constraint problem before attempting to solve
	it with search.

	{Phase transitions in search
	(ftp://parcftp.xerox.com/pub/dynamics/constraints.html)} (Tad
	Hogg, {XEROX PARC}).

	(1995-02-15)

constructed type

	A type formed by applying some {type constructor function} to
	one or more other types.  The usual constructions are
	functions: t1 -> t2, products: (t1, t2), sums: t1 + t2 and
	lifting: lift(t1).

	(In {LaTeX}, the lifted type is written with a subscript
	{\perp}).

	See also {algebraic data type}, {primitive type}.

	(1995-02-03)

constructive

	<mathematics> A proof that something exists is "constructive"
	if it provides a method for actually constructing it.
	{Cantor}'s proof that the {real numbers} are {uncountable} can
	be thought of as a *non-constructive* proof that {irrational
	numbers} exist.  (There are easy constructive proofs, too; but
	there are existence theorems with no known constructive
	proof).

	Obviously, all else being equal, constructive proofs are
	better than non-constructive proofs.  A few mathematicians
	actually reject *all* non-constructive arguments as invalid;
	this means, for instance, that the law of the {excluded
	middle} (either P or not-P must hold, whatever P is) has to
	go; this makes proof by contradiction invalid.  See
	{intuitionistic logic} for more information on this.

	Most mathematicians are perfectly happy with non-constructive
	proofs; however, the constructive approach is popular in
	theoretical computer science, both because computer scientists
	are less given to abstraction than mathematicians and because
	{intuitionistic logic} turns out to be the right theory for a
	theoretical treatment of the foundations of computer science.

	(1995-04-13)

Constructive Cost Model

	<programming> (COCOMO) A method for evaluating the cost of a
	{software} package proposed by Dr Barry Boehm.  There are a
	number of different types:

	The Basic COCOMO Model estimates the effort required to
	develop software in three modes of development ({Organic
	Mode}, {Semidetached Mode}, or {Embedded Mode}) using only
	{DSIs} as an input.  The Basic model is good for quick, early,
	and rough order of magnitude estimates.

	The Intermediate COCOMO Model an extension of the Basic COCOMO
	model.  The Intermediate model uses an {Effort Adjustment
	Factor} (EAF) and slightly different coefficients for the
	effort equation than the Basic model.  It produces better
	results than the Basic model because the user supplies
	settings for cost drivers that determine the effort and
	duration of the software projects.  The Intermediate model
	also allows the system to be divided and estimated in
	components.  DSI values and cost drivers can be chosen for
	individual components instead of for the system as a whole.

	The Detailed COCOMO Model differs from the Intermediate COCOMO
	model in that it uses effort multipliers for each phase of the
	project.  These phase dependent effort multipliers yield
	better estimates because the {cost driver} ratings may be
	different during each phase.  The detailed model also provides
	a three-level product hierarchy and has some other
	capabilities such as a procedure for adjusting the phase
	distribution of the development schedule.

	["Software Engineering Economics", B. Boehm, Prentice-Hall,
	1981].

	(1996-05-29)

constructive solid geometry

	<graphics> (CSG) A method for describing the geometry of
	complex scenes by applying set operations to primitive
	objects.

	See also {CSG-tree}.

	[What operations?  What objects?]

	(1998-06-09)

constructor

	<programming> 1. In {functional programming} and {type
	theory}, one of the symbols used to create an object with an
	{algebraic data type}.

	2. A function provided by a {class} in {C++} and some other
	{object-oriented languages} to {instantiate} an object,
	i.e. to name it and initialise it.  The constructor function
	has the same name as the class.  A class may also have a
	{destructor} function to destroy objects of that class.

	(1994-10-20)

Consul

	<language> A {constraint}-based [{future}-based?] language
	with {Lisp}-like {syntax}.

	["Consul: A Parallel Constraint Language", D. Baldwin, IEEE
	Software 6(4):62-71].

	(1994-11-30)

consultant

	<job> A person who facilitates organisational change and/or
	provides subject matter expertise on technical, functional and
	business topics during development or implementation.
	Consultants perform {business requirements analysis},
	recommends selection of packaged software, develop proposals
	for consulting services and manage implementation projects at
	client sites.  They provides expert knowledge of products such
	as {SAP R/3}, {PeopleSoft}, {HRMS/Financials}, and
	{SmartStream}.

	(2004-03-09)

container class

	A {class} whose instances are collections of other objects.
	Examples include {stacks}, {queues}, {lists} and {arrays}.

content addressable memory

	(CAM, or "associative memory") A kind of storage device which
	includes comparison logic with each bit of storage.  A data
	value is broadcast to all words of storage and compared with
	the values there.  Words which match are flagged in some way.
	Subsequent operations can then work on flagged words, e.g. read
	them out one at a time or write to certain bit positions in
	all of them.  A CAM can thus operate as a {data parallel}
	({SIMD}) processor.

	CAMs are often used in {caches} and {memory management units}.

	(1995-02-16)

content-based information retrieval

	<image, algorithm> (CBIR) A general term for methods for using
	information stored in image archives.

	[Details?]

	[IEEE Computer, September 1995].

	(1995-11-23)

Content Data Model

	(CDM) An {SGML}-based {DoD} specification for interactive
	manuals.

	(1995-02-15)

content-free

	1. (By analogy with "context-free") Used of a message that
	adds nothing to the recipient's knowledge.  Though this
	adjective is sometimes applied to {flamage}, it more usually
	connotes derision for communication styles that exalt form
	over substance or are centred on concerns irrelevant to the
	subject ostensibly at hand.  Perhaps most used with reference
	to speeches by company presidents and other professional
	manipulators.

	See also {four-colour glossies}.

	2. Within British schools the term refers to general-purpose
	software such as a {word processor}, a {spreadsheet} or a
	program that tests spelling of words supplied by the teacher.
	This is in contrast to software designed to teach a particular
	topic, e.g. a plant growth simulation, an interactive periodic
	table or a program that tests spelling of a predetermined list
	of words.  Content-free software can be more cost-effective as
	it can be reused for many lessons throughout the syllabus.

	[{Jargon File}]

	(1998-08-26)

contention slot

	(Or contention period).  Minimum time a {host} must transmit
	for before it can be sure that no other host's {packet} has
	collided with its transmission.  If the maximum propagation
	delay from one host to any other is T, then a host that starts
	to transmit at time t0 may collide with a host that starts
	just before t0 + T.  The first host will not detect the
	collision until time t0 + 2T.

Contents of Decrement part of Register

	<programming> (cdr) /ku'dr/ or /kuh'dr/ The {LISP} operation
	that returns the right-hand node of a {binary tree} structure.
	In the typical case where the tree is used to store a list,
	the cdr is the tail of the list, i.e. all but the first
	element.

	The instruction format of the {IBM 7090} that hosted the
	original LISP implementation featured two 15-bit fields called
	the "address" and "decrement" parts.  The term "cdr" was
	originally "Contents of Decrement part of Register".
	Similarly, "car" stood for "Contents of Address part of
	Register".

	[{Jargon File}]

	(2007-02-28)

context

	That which surrounds, and gives meaning to, something else.

	<grammar> In a {grammar} it refers to the symbols before and
	after the symbol under consideration.  If the syntax of a
	symbol is independent of its context, the grammar is said to
	be {context-free}.

context clash

	<grammar> When a {parser} cannot tell which alternative
	{production} of a {syntax} applies by looking at the next
	input {token} ("lexeme").

	E.g. given syntax

		C -> A | b c

		A -> d | b e

	If you're parsing non-terminal C and the next token is 'b',
	you don't know whether it's the first or second alternative of
	C since they both can start with b.

	To discover whether a grammar has a context clash:

	For each non-terminal, N, with multiple alternatives, look at
	the first symbol of each alternative's right-hand side, call
	it s.  If s is the empty string, then find the set FOLLOWER(N)
	otherwise find the set FIRST*(s).  If any of the sets for N's
	alternatives intersect then there will be a context clash when
	parsing N.  If the next input symbol is one of those in the
	intersection of two sets then you won't know which of the
	alternatives applies.

	FIRST(s) is the set of symbols with which s can start,
	including s itself.  If s is a non-terminal then FIRST(s) also
	includes the first symbol of each alternative right-hand side
	of s.  The '*' in FIRST*(s) means the "{transitive closure}"
	of FIRST which means keep applying FIRST to each element of
	the result until the result doesn't change.  I.e. start with
	just the set R = {s}, then for each non-terminal x in R, add
	FIRST(x) to R.  Keep doing this until nothing new is added.
	(We are really only interested in the terminals in FIRST*(s)
	but some definitions include the non-terminals).

	FOLLOWER(N) is the set of symbols which can come after N in a
	sentence.  Find each occurrence of N on the right-hand side of
	a rule, e.g.

		M -> ... | ... N ... | ...

	If there is a symbol s immediately following N then add
	FIRST*(s) to the result (again, we're only interested in the
	terminal symbols in FIRST*(s)) if there is no symbol after N
	in the alternative then add FOLLOWER(M) to the result (i.e. if
	N can be the last symbol in an M then anything that can follow
	M can also follow N).

	If a grammar can generate the same sentence in multiple
	different ways (with different parse tress) then it is
	ambiguous.  An ambiguity must start with a context clash (but
	not all context clashes imply ambiguity).  The context clash
	occurs when trying to parse the first token of the phrase with
	multiple parses - you will not be able to tell which
	alternative to take.  To see if a context clash is also a case
	of ambiguity you would need to follow the alternatives
	involved in each context clash to see if they can generate the
	same complete sequence of tokens.

	(1995-04-05)

COntext Dependent Information Language

	<language> (CODIL) An early language for non-numerical
	business problems.

	["CODIL, Part1.  The Importance of Flexibility", C.F. Reynolds
	et al, Computer J 14(3):217-220, May 1971].

	(1994-12-23)

context-free

	Said of a {grammar} where the syntax of each constituent is
	independent of the symbols occuring before and after it in a
	sentence.  {Parsers} for such grammars are simpler than those
	for context-dependent grammars because the parser need only
	know the current symbol.

context-sensitive menu

	<operating system> A {menu} which appears in response to a
	user action (typically a {mouse} click) and whose contents are
	determined by which {application window} was clicked or has
	the {input focus}.

	Most {GUIs} use a secondary mouse button (right or middle) to
	call up a context-sensitive menu as the {primary mouse button}
	is normally used to interact with objects which are already
	visible.

	The context-sensitive menu often contains functions that are
	also available in a {menu bar} but the context-sensitive menu
	provides quick access to a subset of functions that are
	particularly relevant to the window area clicked on.

	The {RISC OS} {WIMP} uses only context-sensitive menus (always
	invoked using the middle mouse button).  This saves screen
	space and reduces mouse movement compared to a {menu bar}.

	(1999-09-22)

context switch

	<operating system> When a {multitasking} {operating system}
	stops running one {process} and starts running another.  Many
	operating systems implement concurrency by maintaining
	separate environments or "contexts" for each process.  The
	amount of separation between processes, and the amount of
	information in a context, depends on the operating system but
	generally the OS should prevent processes interfering with each
	other, e.g. by modifying each other's memory.

	A context switch can be as simple as changing the value of the
	{program counter} and {stack pointer} or it might involve
	resetting the {MMU} to make a different set of memory {pages}
	available.

	In order to present the user with an impression of parallism,
	and to allow processes to respond quickly to external events,
	many systems will context switch tens or hundreds of times per
	second.

	(1996-12-18)

Contextually Communicating Sequential Processes

	(CCSP) A notation based on {CSP}.

	["Contextually Communicating Sequential Processes - A Software
	Engineering Approach", M. Hull et al, Software Prac & Exp
	16(9):845-864 (Sept 1986)].

	(1994-11-01)

continental drift

	In 1980 {David Turner} remarked that {KRC} ran "at the speed
	of the continental drift".

	(1994-12-06)

continuation

	{continuation passing style}

Continuation Passing Style

	(CPS) A semantically clean language with continuations used as
	an intermediate language for {Scheme} and the {SML/NJ}
	{compiler}.

	["Rabbit: A Compiler for Scheme", G.L. Steele, AI-TR-474, MIT
	(May 1978)].

	["Compiling With Continuations", A. Appel, Cambridge U Press
	1992].

continuation passing style

	<programming> (CPS) A style of programming in which every user
	function f takes an extra argument c known as a continuation.
	Whenever f would normally return a result r to its caller, it
	instead returns the result of applying the continuation to r.
	The continuation thus represents the whole of the rest of the
	computation.  Some examples:

	 normal (direct style)    -->	continuation passing

	 square x = x * x		square x k = k (x*x)

	 g (square 23)			square 23 g

	 (square 3) + 1			square 3 ( \ s . s+1 )

	(1995-04-04)

continuations

	{continuation passing style}

continuous function

	A function f : D -> E, where D and E are {cpos}, is continuous
	if it is {monotonic} and

		f (lub Z) = lub { f z | z in Z }

	for all {directed} sets Z in D.  In other words, the image of
	the lub is the lub of any directed image.

	All {additive} functions (functions which preserve all lubs)
	are continuous.  A continuous function has a {least fixed
	point} if its {domain} has a least element, {bottom} (i.e. it
	is a cpo or a "pointed cpo" depending on your definition of a
	cpo).  The {least fixed point} is

		fix f = lub {f^n bottom | n = 0..infinity}

	(1994-11-30)

Continuous System Modeling Program

	<simulation> (CSMP) A program for {simulation} of dynamics of
	{continuous systems}.  CSMP is similar to {CSSL}.

	["A Guide to Using CSMP - The Continuous System Modeling
	Program", Frank H. Speckhart et al, P-H 1976].

	(1995-02-23)

Continuous System Simulation Language

	<simulation> (CSSL) Versions include {ACSL}, {HYTRAN}, {SL-I},
	{S/360} and {CSMP}.

	CSSL(Continuous System Simulation Language) versions I, II,
	III, IV and V have been commercially available since 1968.
	CSSL-I was developed for {Jet Propulsion Labs} in 1968.
	CSSL-III was widely distributed from 1969-1975.  CSSL-IV
	(interactive version) was developed by R. Nilsen and ran on
	over 30 different computers.  Currently CSSL-V is marketed by
	{Simulation Services International} and available on {PCs} and
	{workstations}.

	["The SCi Continuous System Simulation Language (CSSL)",
	Simulation, 9(6), Dec 1967].

	[URL?]

	(2003-04-15)

continuous wave

	<communications, history> (CW) A term from early radio history
	for a transmitter using an {electron tube} (valve) oscillator
	to constantly add energy to a tuned circuit connected to an
	antenna.

	The term is used in contrast with the use of a {spark gap} to
	initiate a damped {sinusoidal wave} in a {tuned circuit}
	consisting of an {inductor} and {capacitor}.  The energy in
	this circuit constantly changes between the capacitor's
	electrostatic field and the inductor's magnetic field.  The
	energy is then coupled to the radiating antenna, loosely (so
	as not to dampen the wave too quickly).

	Some radio amateurs understand "CW" to mean transmission by
	means a single frequency signal which is either on or off
	(e.g. {Morse code}), as opposed to a carrier which varies
	continuously in amplitude, frequency or phase.  Some would
	even call the former "unmodulated" even though turning on and
	off is actually the most extreme form of amplitude modulation.

	(2009-11-24)

contraction

	{reduction}

contract programmer

	<job> A programmer who works on a fixed-length/temporary
	contract, and is often specialised in writing certain types of
	code.

	A contract programmer may be independent or they may work in a
	supplier's {professional services} department, providing
	consultancy and programming services for the supplier's
	products.

	(2004-03-09)

control

	<character> (Or "ctrl", "^") One (or a pair) of {modifier
	keys} found on all modern {keyboards}.  If the control key is
	held down while pressing and releasing certain other keys then
	a "{control character}" is generated, e.g. holding control and
	hitting "A" generates control-A ({ASCII} code 1).  The ASCII
	code for the control character is generally 64 less than that
	for the unmodified character.

	The control key does not generate any character on its own but
	most modern keyboards and {operating systems} allow a program
	to tell whether each of the individual keys on the keyboard
	(including modifier keys) is pressed at any time.

	Control characters mostly have some kind of "non-printing"
	effect on the output such as ringing the bell (Control-G) or
	advancing to the next line (Control-J).  Most have alternative
	names suggesting these functions (Bell, Line Feed, etc.).

	See {ASCII character table}.

	(1997-07-10)

Control and Status Register

	<hardware> (CSR) A {register} in most {CPUs} which stores
	additional information about the results of machine
	instructions, e.g. comparisons.  It usually consists of
	several independent flags such as {carry}, {overflow} and
	zero.  The CSR is chiefly used to determine the outcome of
	{conditional branch} instructions or other forms of
	conditional execution.

	(1998-06-26)

control bus

	<architecture> In a {digital computer}, the signal paths that
	carry commands from the {instruction decode} logic to various
	different functional units such as the {ALU}, {memory address
	register}, {memory data register} and other {buffers}.

	Named by analogy with the {address bus} and {data bus}, each
	of which carries a set of related signals, the signals carried
	by the control bus are more independant.

	Some might include other signals such as timing ({clock}) and
	status under the term, further reducing its similarity to
	other busses.

	(2007-07-25)

control-C

	<character> (Or ETX, End of Text) The {ASCII} character with
	code 3.

	Control-C is the interrupt character used on many {operating
	systems}, including {Unix} and {MS-DOS} to abort a running
	program.

	Among {BSD} {Unix} hackers, the canonical humorous response
	to "Give me a break!" is "Control C".

	[{Jargon File}]

	(1995-03-16)

control code

	<character> A character which is input or output to cause some
	special action rather than to appear as part of the data.

	Most control characters are input by holding down (either of)
	the "Control" key(s) on the keyboard and simultaneously
	pressing another key which may be a letter or (depending on
	the keyboard and {operating system}) certain punctuation
	characters.  Some control codes usually have their own special
	keys: {escape}, {tab}, {delete}, {backspace}, {return} and can
	thus be entered with a single keypress.

	Different {operating systems} and programs have different
	conventions for what effect typing certain control codes will
	have, such as interrupting the current process or suspending
	output.

	Control codes may be output for their effect on the output
	device, e.g. moving the cursor or print head to the start of a
	new line.

	See {control-O}, {control-Q}, {control-S}.

	(1995-03-23)

control flow

	<programming> (Or "flow of control") The sequence of execution
	of instructions in a program.  This is determined at run time
	by the input data and by the {control structures} (e.g. "if"
	statements) used in the program.

	Not to be confused with "{flow control}".

	(1997-09-14)

control-G

	{bell}

Control Language

	<language> (CL) The {batch} language for {IBM RPG}/38, used in
	conjunction with {RPG III}.

	See also {OCL}.

	(2000-04-08)

controller

	<hardware> Part of a computer, typically a separate circuit
	board, which allows the computer to use certain kinds of
	{peripheral} devices.  A {disk controller} is used to connect
	{hard disks} and {floppy disks}, a {network controller} is
	used for {Ethernet}.  Other controllers are: {keyboard
	controller}, {interrupt controller} and {graphics controller}.

	(1998-03-16)

control-O

	<character> {ASCII} character 15 (SI).

	The character used on some {operating systems} to abort output
	but allow the program to keep on running.  The name "SI" comes
	from its use on some terminals to "shift in" an alternative
	character set.  "SO" is {Control-N}.

	Compare {control-S}.

	[{Jargon File}]

	(1995-03-16)

Control Program

	<operating system> (CP) The component of {IBM}'s {Virtual
	Machine} (VM) that provides "guest support" for {operating
	systems} that run on IBM {mainframe} compatible processors.
	Cp does this by providing a seamless {emulation} of privileged
	functions in the problem program environment.

	(1999-01-19)

Control Program for Microcomputers

	<operating system> (CP/M) An early {microcomputer} {operating
	system} written by Gary Kildall of {Digital Research} for
	{8080} and {Zilog Z80}-based 8-bit computers.  CP/M was very
	popular in the late 1970s but was virtually wiped out by
	{MS-DOS} after the release of the {IBM PC} in 1981.

	Many of CP/M's features and conventions strongly resemble
	those of early {DEC} operating systems such as {TOPS-10},
	{OS/8}, {RSTS} and {RSX-11}.

	CP/M might have been the {OS} for the {IBM PC} instead of
	{MS-DOS} but Kildall wanted to keep control of his creation
	and only license it to IBM.  Big Blue however wanted to own
	and control it completely.  Kildall spent the day IBM's reps
	wanted to meet him enjoying the perfect flying weather in his
	private plane.

	[Did CP/M use the same {FAT} file system as MS-DOS?]

	(1996-01-07)

control-Q

	<character> (Or XON, DC1, {Device Control} 1) The character
	with {ASCII} code 17, used in {software handshaking} to resume
	output after a previous {control-S}.

	[{Jargon File}]

	(1996-06-28)

control-S

	<character> (Or XOFF, DC3, {Device Control} 3) The character
	with {ASCII} code 19, used in {software handshaking} to
	temporarily suspend output until a {control-Q} is received.

	[{Jargon File}]

	(1996-06-28)

control structure

	<programming> One of the instructions, statements or groups of
	statements in a programming language which determines the
	sequence of execution of other instructions or statements (the
	{control flow}).

	In {assembly language} this typically consists of {jumps} and
	{conditional jumps} along with {procedure} call and return
	though some architectures include other constructs such as an
	instruction which skips the following instruction depending on
	some condition ({PDP}?), various kinds of {loop} instructions
	(later {Motorola 680x0}) or conditional execution of all
	instructions (Advanced RISC Machine).

	Basic control structures (whatever their names in particular
	languages) include "if CONDITION then EXPRESSION else
	EXPRESSION", the {switch statement}, "while CONDITION do
	EXPRESSION", "gosub", the suspect "{goto}" and the much-feared
	"{come from}".  Other constructs handle errors and
	{exceptions} such as {traps} and {interrupts}.

	(1997-09-14)

control tty

	(/dev/ptyp*) The network side of a {pseudo-tty}.

control unit

	1. <processor> The part of a {CPU} that sends control signals
	to other components to cause them to execute the {machine
	cycle} - fetch, decode, execute, store.

	2. <architecture> Any device that controls the I/O operations
	of one or more {peripheral} devices, e.g. a {disk controller}.

	(2008-05-21)

conventional memory

	<storage> The first 640 {kilobytes} of an {IBM PC}'s memory.
	Prior to {EMS}, {XMS}, and {HMA}, {real mode} application
	could use only this part of the memory.

	(1996-01-10)

converged network

	<networking> A single {network} that can carry {voice},
	{video} and {data}.

	(2007-06-07)

Convergent Technologies

	<company> A company formed by a small group of people who left
	{Intel Corporation} in 1979.  Convergent Technologies' first
	product was the IWS (Integrated Workstation) based on the
	{Intel 8086}, which ran {Convergent Technologies Operating
	System} - their first {operating system}.

	Unisys bought {Convergent Technologies} in 1988.

	[Who bought/merged with who and when?]

	(1998-04-03)

Convergent Technologies Operating System

	<operating system> (CTOS, BTOS, STARSYS) /see-toss/ A modular,
	{message-passing}, {multi-process} based {operating system}.

	{Convergent Technologies}' first product was the IWS
	(Integrated Workstation) based on the {Intel 8086}, which had
	CTOS as its operating system.  It is a modular operating
	system with built in {local area networking}.  CTOS supports
	multiple processes or {threads}, and message-based
	{inter-process communication}.

	Companies which have licensed CTOS include {Burroughs} (BTOS)
	and {Bull} (STARSYS).  The largest customer was {Unisys}, with
	whom Convergent Technologies merged to become one company in
	1988.  CTOS now has over 800,000 users worldwide.

	CTOS runs on Intel {Pentium} computers, and can run
	concurrently with {Microsoft} {Windows NT}.

	For some reason, CTOS is no longer marketted to new customers,
	although there is a support comittment for existing customers
	until 2001.  Major customers include Police Forces, Banks, and
	Airlines.

	Latest version: CTOS III 1.3.2.

	["Exploring CTOS", Miller E., Crook J., Loy J. - Prentice
	Hall, ISBN 0-13-297342-1, 1991].

	(1996-09-24)

Conversational LISP

	<language> (CLISP) A mixed English-like, {ALGOL}-like surface
	{syntax} for {Interlisp}.

	["CLISP: Conversational LISP", W. Teitelman, in Proc Third
	Intl Joint Conf on AI, Stanford, Aug 1973, pp.686-690].

	(1994-11-01)

Conversational Monitor System

	{Virtual Machine/Conversational Monitor System}

converse

	<logic> The truth of a {proposition} of the form A => B and
	its converse B => A are shown in the following truth table:

		A   B | A => B   B => A
		------+----------------
		f   f |	  t	   t
		f   t |	  t	   f
		t   f |	  f	   t
		t   t |	  t	   t

	(2002-07-12)

conversion to iteration

	A transformation applied to functional programs to replace
	recursion with iteration.  A tail-recursive function can be
	compiled to an iterative loop where the recursive call becomes
	a jump back to the start and the parameters are held in
	registers which are updated with new values each time around
	the loop.  See Iteration, Tail recursion optimisation.

CONVERT

	<language> 1. (Or "REC", "Regular Expression Converter") A
	{string processing} language that combined the {pattern
	matching} and transformation operations of {COMIT} with the
	{recursive data structures} of {Lisp}.

	["Convert", A. Guzman et al, CACM 9(8):604-615, Aug 1966].

	2. An early language to convert programs and data from one
	language to another.

	["CONVERT Manual", OLI Systems Inc, Oct 1976].

	(2007-02-05)

convert.f90

	A {Fortran77} to {Fortran90} translator by Michael Metcalf
	<metcalf@cernvm.cern.ch>.  The significant differences between
	the two Fortrans make this package useful.

	{(ftp://jkr.cc.rl.ac.uk/pub/MandR/convert.f90)}.

	(1993-07-17)

Convex Computer Corporation

	<company> A mini-super-computer manufacturer.

	Address: Richardson, Texas, USA.

	(1995-03-01)

convex hull

	<mathematics, graphics> For a {set} S in space, the smallest
	{convex set} containing S.  In the plane, the convex hull can
	be visualized as the shape assumed by a rubber band that has
	been stretched around the set S and released to conform as
	closely as possible to S.

	(1997-08-03)

Conway, John Horton

	{John Horton Conway}

Conway's Law

	<project, humour> The rule that the organisation of the
	software and the organisation of the software team will be
	congruent; originally stated as "If you have four groups
	working on a compiler, you'll get a 4-pass compiler".

	Melvin Conway, an early proto-hacker, wrote an {assembler} for
	the {Burroughs 220} called SAVE.  The name "SAVE" didn't stand
	for anything; it was just that you lost fewer card decks and
	listings because they all had SAVE written on them.

	[{Jargon File}]

Conway's Life

	{Life}

cooC

	{Concurrent Object-Oriented C}.

cooccurrence matrix

	<mathematics> Given a position operator P(i,j), let A be a nxn
	matrix whose element A[i][j] is the number of times that
	points with grey level (intensity) g[i] occur, in the position
	specified by P, relative to points with grey level g[j].  Let
	C be the nxn matrix that is produced by dividing A with the
	total number of point pairs that satisfy P.  C[i][j] is a
	measure of the joint probability that a pair of points
	satisfying P will have values g[i], g[j].  C is called a
	cooccurrence matrix defined by P.  Examples for the operator P
	are: "i above j", "i one position to the right and two below
	j", etc.

	(1995-05-11)

cookbook

	<programming> (From amateur electronics and radio) A book of
	small code segments that the reader can use to do various
	{magic} things in programs.

	One current example is the "{PostScript} Language Tutorial and
	Cookbook" by Adobe Systems, Inc (Addison-Wesley, ISBN
	0-201-10179-3), also known as the {Blue Book} which has
	recipes for things like wrapping text around arbitrary curves
	and making 3D fonts.

	Cookbooks, slavishly followed, can lead one into {voodoo
	programming}, but are useful for hackers trying to {monkey up}
	small programs in unknown languages.  This function is
	analogous to the role of phrasebooks in human languages.

	[{Jargon File}]

	(1994-11-04)

cooked mode

	The normal{Unix} character-input mode, with interrupts enabled
	and with erase, kill and other special-character
	interpretations performed directly by the tty driver.
	Opposite of {raw mode}.  See also {rare mode}.  Other
	operating systems often have similar mode distinctions, and
	the raw/rare/cooked way of describing them has spread widely
	along with the {C} language and other Unix exports.  Most
	generally, "cooked mode" may refer to any mode of a system
	that does extensive preprocessing before presenting data to a
	program.

	[{Jargon File}]

cookie

	1. <World-Wide Web> {HTTP cookie}.

	2. <protocol> A handle, transaction ID, or other token of
	agreement between cooperating programs.  "I give him a packet,
	he gives me back a cookie".

	The ticket you get from a dry-cleaning shop is an example of a
	cookie; the only thing it's useful for is to relate a later
	transaction to this one (so you get the same clothes back).

	Compare {magic cookie}; see also {fortune cookie}.

	3. <security, jargon> A {cracker} term for the {password} list
	on a {multi-user} computer.

	4. <jargon> An adjective describing a computer that just
	became {toast}.

	(1997-04-14)

cookie bear

	{cookie monster}

cookie file

	<operating system> A collection of {fortune cookies} in a
	format that facilitates retrieval by a {fortune} program.
	There are many cookie files in public distribution, and site
	admins often assemble their own from various sources.

	[{Jargon File}]

	(1997-01-07)

cookie jar

	1. <programming> An area of memory set aside for storing
	{cookies}.  Most commonly heard in the {Atari ST} community;
	many useful ST programs record their presence by storing a
	distinctive {magic number} in the jar.  Programs can inquire
	after the presence or otherwise of other programs by searching
	the contents of the jar.

	2. <security> A {cracker} term for the password file of a
	multi-user computer.

	[{Jargon File}]

	(1997-02-12)

cookie monster

	<recreation> (From the children's TV program "Sesame Street")
	Any of a family of early (1970s) hacks reported on {TOPS-10},
	{ITS}, {Multics} and elsewhere that would lock up either the
	victim's terminal (on a {time-sharing} machine) or the
	{console} (on a batch {mainframe}), repeatedly demanding "I
	WANT A COOKIE".  The required responses ranged in complexity
	from "COOKIE" through "HAVE A COOKIE" and upward.

	See also {wabbit}.

	[{Jargon File}]

	(1997-02-12)

cooky

	{cookie}

COOL

	1. {Concurrent Object-Oriented Language}.

	2. CLIPS Object-Oriented Language?

	3. A C++ class library developed at {Texas Instruments} that
	defines {containers} like {Vectors}, {List}, {Hash_Table},
	etc.  It uses a shallow hierarchy with no common {base class}.
	The functionality is close to {Common Lisp} data structures
	(like {libg++}).  The {template} {syntax} is very close to
	{Cfront} 3.x and {g++} 2.x.

	JCOOL's main difference from COOL and GECOOL is that it uses
	real C++ templates instead of a similar syntax that is
	preprocessed by a special 'cpp' distributed with COOL and
	GECOOL.

	{(ftp://csc.ti.com/pub/COOL.tar.Z)}.

	GECOOL, JCOOL: {(ftp://cs.utexas.edu/pub/COOL/)}.

	E-mail: Van-Duc Nguyen <nguyen@crd.ge.com>

	(1992-08-05)

CooL

	<language> Combined object-oriented Language.

	An {object-oriented} language from the {ITHACA} {Esprit}
	project, which combines {C}-based languages with {database}
	technology.

	(1995-03-15)

COOL:Gen

	{Advantage Gen}

Co-operative Development Environment

	<tool, product> (CDE) A set of tools from {Oracle} for
	enterprise-wide, {client/server} {application} development.

	(1995-03-15)

Cooperative Information System

	<networking> (CIS) Networked computers which support
	individual or collaborative human work, and manage access to
	information and computing services.  Computation is done
	{concurrent}ly over the network by cooperative {database}
	systems, {expert systems}, multi-agent planning systems, and
	other software application systems ranging from the
	conventional to the advanced.

	(1995-05-11)

cooperative multitasking

	<parallel, operating system> A form of {multitasking} where it
	is the responsibility of the currently running task to give up
	the processor to allow other tasks to run.  This contrasts
	with {pre-emptive multitasking} where the task {scheduler}
	periodically suspends the running task and restarts another.

	Cooperative multitasking requires the programmer to place
	calls at suitable points in his code to allow his task to be
	{deschedule}d which is not always easy if there is no obvious
	top-level {main loop} or some routines run for a long time.
	If a task does not allow itself to be descheduled all other
	tasks on the system will appear to "freeze" and will not
	respond to user action.

	The advantage of cooperative multitasking is that the
	programmer knows where the program will be descheduled and can
	make sure that this will not cause unwanted interaction with
	other processes.  Under {pre-emptive multitasking}, the
	scheduler must ensure that sufficient state for each process
	is saved and restored that they will not interfere.  Thus
	cooperative multitasking can have lower {overheads} than
	pre-emptive multitasking because of the greater control it
	offers over when a task may be descheduled.

	Cooperative multitasking is used in {RISC OS}, {Microsoft
	Windows} and {Macintosh} {System 7}.

	(1995-03-20)

coordinate

	<mathematics> One member of a {tuple} of numbers which defines
	the position of a point in some space.  Commonly used
	coordinate systems have as many coordinates as their are
	dimensions in the space, e.g. a pair for two dimensions.  The
	most common coordinate system is {Cartesian coordinates},
	probably followed by {polar coordinates}.

	(1997-07-09)

Coordinated Universal Time

	<time, standard> (UTC, World Time) The standard time common to
	every place in the world.  UTC is derived from {International
	Atomic Time} (TAI) by the addition of a whole number of "leap
	seconds" to synchronise it with {Universal Time} 1 (UT1), thus
	allowing for the eccentricity of the Earth's orbit, the
	rotational axis tilt (23.5 degrees), but still showing the
	Earth's irregular rotation, on which UT1 is based.

	Coordinated Universal Time is expressed using a 24-hour clock
	and uses the {Gregorian calendar}.  It is used in aeroplane
	and ship navigation, where it also sometimes known by the
	military name, "Zulu time".  "Zulu" in the phonetic alphabet
	stands for "Z" which stands for longitude zero.

	UTC was defined by the International Radio Consultative
	Committee ({CCIR}), a predecessor of the {ITU-T}.  CCIR
	Recommendation 460-4, or ITU-T Recommendation X.680 (7/94),
	contains the full definition.

	The language-independent international abbreviation, UTC, is
	neither English nor French.  It means both "Coordinated
	Universal Time" and "Temps Universel Coordonné".

	{BIPM
	(http://www.bipm.org/enus/5_Scientific/c_time/time_1.html)}.

	{The Royal Observatory Greenwich
	(http://rog.nmm.ac.uk/leaflets/time/time.html)}.

	{History of UTC and GMT
	(http://ecco.bsee.swin.edu.au/chronos/GMT-explained.html)}.

	{U.S. National Institute of Standards & Technology
	(http://its.bldrdoc.gov/fs-1037/dir-009/_1277.htm)}.

	{UK National Physical Laboratory
	(http://npl.co.uk/npl/ctm/time_scales.html)}.

	{US Naval Observatory
	(http://tycho.usno.navy.mil/systime.html)}.

	{International Telecommunications Union
	(http://itu.int/radioclub/rr/arts02.htm)}.

	{Earth's irregular rotation
	(http://foldoc.org/pub/misc/earth_rotation)}.

	(2001-08-30)

Coordinating Committee for Intercontinental Research Networks

	(CCIRN) A committee that includes the United States FNC and
	its counterparts in North America and Europe.  Co-chaired by
	the executive directors of the Federal Networking Council and
	the European Association of Research Networks (RARE), the
	CCIRN provides a forum for cooperative planning among the
	principal North American and European research networking
	bodies.

	(1994-11-30)

coordination language

	<networking, protocol> A language defined specifically to
	allow two or more parties ({components}) to communicate in
	order to accomplish some shared goal.

	Examples of coordination languages are {Linda} and {Xerox}'s
	{CLF} ({STITCH}).

	(2004-04-18)

copious free time

	<jargon> (Apple; originally from the introduction to Tom
	Lehrer's song "It Makes A Fellow Proud To Be A Soldier") Used
	ironically to indicate the speaker's lack of the quantity in
	question; a mythical schedule slot for accomplishing tasks
	held to be unlikely or impossible.  Sometimes used to indicate
	that the speaker is interested in accomplishing the task, but
	believes that the opportunity will not arise.  "I'll implement
	the automatic layout stuff in my copious free time."

	The phrase is also used for time reserved for bogus or
	otherwise idiotic tasks, such as implementation of bad
	{chrome}, or the stroking of {suits}.  "I'll get back to him
	on that feature in my copious free time."

	[{Jargon File}]

	(1994-11-30)

copper

	Conventional electrical network cable with a core conductor of
	copper (or aluminium!)

	Opposed to {light pipe} or, say, a short-range microwave link.

	[{Jargon File}]

	(1994-11-30)

Copper Distributed Data Interface

	(CDDI) {FDDI} running over conventional copper cables.  A
	{Cisco}/{Crescendo} copyright term(?).  All {FDDI}
	connections, {single-attached} or {dual-attached}, can be
	either {optical fibre} or copper.

	(1994-12-14)

coprocessor

	Any computer processor which assists the main processor (the
	"{CPU}") by performing certain special functions, usually much
	faster than the main processor could perform them in software.
	The coprocessor often decodes instructions in parallel with
	the main processor and executes only those instructions
	intended for it.

	The most common example is a {floating point} coprocessor (or
	"{FPU}"), others are graphics and networking.

	(1995-01-05)

copy and paste

	<text> (Or "cut and paste", after the paper, scissors and glue
	method of document production) The system supported by most
	document editing applications (e.g. {text editors}) and most
	{operating systems} that allows you to select a part of the
	document and then save it in a temporary buffer (known
	variously as the "clipboard", "cut buffer", "kill ring").  A
	"copy" leaves the document unchanged whereas a "cut" deletes
	the selected part.

	A "paste" inserts the data from the clipboard at the current
	position in the document (usually replacing any currently
	selected data).  This may be done more than once, in more than
	one position and in different documents.

	More sophisticated {operating systems} support copy and paste
	of different data types between different applications,
	possibly with automatic format conversion, e.g from {rich
	text} to plain {ASCII}.

	{GNU Emacs} uses the terms "kill" instead of "cut" and "yank"
	instead of "paste" and data is stored in the "kill ring".

	[Origin?  Macintosh?  Xerox?]

	(1998-07-01)

copybook

	<programming, library> (Or "copy member", "copy module") A
	common piece of {source code} designed to be copied into many
	source programs, used mainly in {IBM} {DOS} {mainframe}
	programming.

	In {mainframe} {DOS} (DOS/VS, DOS/{VSE}, etc.), the copybook
	was stored as a "book" in a {source} library.  A library was
	comprised of "books", prefixed with a letter designating the
	language, e.g., A.name for Assembler, C.name for Cobol, etc.,
	because {DOS} didn't support multiple libraries, private
	libraries, or anything.  This term is commonly used by {COBOL}
	programmers but is supported by most {mainframe} languages.
	The {IBM} {OS} series did not use the term "copybook", instead
	it referred to such files as "libraries" implemented as
	"partitioned data sets" or {PDS}.

	Copybooks are functionally equivalent to {C} and {C++}
	{include} files.

	(1997-07-31)

copybroke

	<security> /kop'ee-brohk/ (Or "copywronged" - a play on
	"{copyright}") 1. Used to describe an instance of a
	{copy-protected} program that has been "broken"; that is, a
	copy with the copy-protection scheme disabled or removed.

	2. Copy-protected software which is unusable because of some
	{bit-rot} or {bug} that has confused the {copy protection}.

	3. Used to describe data damaged because of a side effect of a
	copy protection system.

	[{Jargon File}]

	(1997-03-16)

copying garbage collection

	A {garbage collection} method where memory is divided into two
	equal halves, known as the "from space" and "to space".
	Garbage collection copies active cells from the from space to
	the to space and leaves behind an invisible pointer (an
	"indirection") from the old position to the new copy.  Once
	all active cells have been copied in one direction, the spaces
	are swapped and the process repeated in the opposite
	direction.

copyleft

	<legal> /kop'ee-left/ (A play on "copyright") The {copyright}
	notice and {General Public License} applying to the works of
	the {Free Software Foundation}, granting reuse and
	reproduction rights to everyone.

	Typically copyrights take away freedoms; copyleft preserves
	them.  It is a legal instrument that requires those who pass
	on a program to include the rights to use, modify, and
	redistribute the code; the code and the freedoms become
	legally inseparable.

	The copyleft used by the GNU Project combines a regular
	copyright notice and the "GNU General Public License" (GPL).
	The GPL is a copying license which basically says that you
	have the aforementioned freedoms.  The license is included in
	each GNU source code distribution and manual.

	See also {General Public Virus}.

	[{Jargon File}]

	(1995-04-18)

copy member

	{copybook}

copy module

	{copybook}

copy protection

	<security> Any technique designed to prevent unauthorised
	copying of software.  Such techniques will only hinder the
	most incompetant attempts at {software theft} but often
	prevent legitimate customers from using products they have
	paid for in the way they want.  Considered silly.

	[{Jargon File}]

	(2010-02-03)

copyright

	<legal> The exclusive rights of the owner of the copyright on
	a work to make and distribute copies, prepare derivative
	works, and perform and display the work in public (these last
	two mainly apply to plays, films, dances and the like, but
	could also apply to software).

	A work, including a piece of software, is under copyright by
	default in most coutries, whether of not it displays a
	copyright notice.  However, a copyright notice may make it
	easier to assert ownership.  The copyright owner is the person
	or company whose name appears in the copyright notice on the
	box, or the disk or the screen or wherever.  Most countries
	have agreed to uphold each others' copyrights.

	A copyright notice has three parts.  The first can be either the
	{copyright symbol} (a letter C in a circle), the word "Copyright"
	or the abbreviation "Copr".  Only the first of these is recognised
	internationally and the common {ASCII} rendering "(C)" is not
	valid anywhere.  This is followed by the name of the copyright
	holder and the year of publication.  The year should be the year
	of _first_ publication, it is not necessary as some believe to
	update this every year to the current year.  Copyright protection
	in most countries extends for 50 years after the author's death.

	Originally, most of the computer industry assumed that only
	the program's underlying instructions were protected under
	copyright law but, beginning in the early 1980s, a series of
	lawsuits involving the video screens of game programs extended
	protections to the appearance of programs.

	Use of copyright to restrict redistribution is immoral,
	unethical and illegitimate.  It is a result of brainwashing by
	monopolists and corporate interests and it violates everyone's
	rights.  Such use of copyrights and patents hamper
	technological progress by making a naturally abundant resource
	scarce.  Many, from communists to right wing libertarians, are
	trying to abolish intellectual property myths.

	See also {public domain}, {copyleft}, {software law}.

	{Universal Copyright Convention
	(http://www.unesco.org/new/en/culture/themes/creativity/creative-industries/copyright/)}.

	{US Copyright Office (http://copyright.gov/)}.

	{Usenet} newsgroup: {news:misc.legal.computing}.

	[Is this definition correct in the UK?  In the US?  Anywhere?]

	(2014-01-08)

copyright symbol

	<character, legal> "&copy;" The internationally recognised
	symbol required to introduce a {copyright} notice, a letter C
	with a circle around it.  This can be encoded in {ISO 8859-1}
	as character code decimal 169, hexadecimal A9, in {HTML} as
	&amp;copy;, &amp;#169; or &amp;#xA9;.

	A "c" in parentheses: "(c)" is sometimes used in documents
	stored in a {coded character set} such as {ASCII} that does
	not include the C in a circle, but this has no legal meaning.

	(2009-01-06)

copywronged

	{copybroke}

CORAL

	1. {Class Oriented Ring Associated Language}.

	2. A {deductive database} and {logic programming} system based
	on {Horn-clause} rules with extensions like {SQL}'s {group-by}
	and {aggregation} operators.  CORAL was developed at the
	University of Wisconsin-Madison.  It is implemented in C++ and
	has a {Prolog}-like {syntax}.

	Many evaluation techniques are supported, including {bottom-up
	fixpoint evaluation} and top-down {backtracking}.  {Modules}
	are separately compiled; different evaluation methods can be
	used in different modules within a single program.
	Disk-resident data is supported via an interface to the
	{Exodus} storage manager.  There is an on-line help facility.
	It requires {AT&T} {C++} 2.0 (or {G++} soon) and runs on
	{Decstation} and {Sun-4}.

	{(ftp://ftp.cs.wisc.edu/)}.

	(1993-01-29)

CORAL 66

	A real-time system programming language derived from {JOVIAL}
	and {ALGOL 60}.  It was adopted as the British military
	standard from 1970 until the arrival of {Ada}.

	["Official Definition of CORAL 66", P.M. Woodward et al, HMSO,
	London, 1970].

CORBA

	{Common Object Request Broker Architecture}

CORBIE

	<language> An early system on the {IBM 704}.

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

	(1996-05-10)

CORC

	CORnell Compiler.  Simple language for student math problems.

	["The Cornell Computing Language", R.W. Conway et al, CACM
	6(6):317-320 (Jun 1963) Sammet 1969, p.294-296].

core

	1. <storage> {Main memory} or {RAM}.  This term dates from the
	days of {ferrite core memory} and, like the technology, is now
	archaic.

	Some derived idioms outlived the hardware: for example, "in
	core" (meaning {paged in}), {core dump}, "core image", "core
	file".  Some varieties of Commonwealth hackish prefer {store}.

	[{Jargon File}]

	(2009-11-06)

	2. <processor> An {integrated circuit} design, usually for a
	{microprocessor}, which includes only the {CPU} and which is
	intended to be incorporated on a chiip with other circuits
	such as {cache}, {memory management unit}, I/O ports and
	timers.  The trend in 2009 is to have multiple cores per chip.

	The {ARM6}, {ARM7} and {ARM8} are early examples, the {Intel}
	{Core i9} more recent.

	3. <language> A varient on {kernel} as used to describe
	features built into a language as opposed to those provided by
	{libraries}.

	(2009-11-06)

core cancer

	<jargon> A process that exhibits a slow but inexorable
	{resource leak} - like a cancer, it kills by crowding out
	productive "tissue".

	[{Jargon File}]

	(1997-11-10)

core dump

	<programming, operating system, jargon> Common {Iron Age}
	jargon, preserved by {Unix} for a {memory dump}.

	The term is also used for a complete account of a human's
	knowledge on some subject (also {brain dump}), especially in a
	lecture or answer to an exam question.

	[{Jargon File}]

	(2007-05-09)

core gateway

	Historically, one of a set of gateways ({routers}) operated by
	the {Internet Network Operations Center} at Bolt, Beranek and
	Newman (BBN).  The core gateway system formed a central part
	of {Internet} routing in that all groups must advertise paths
	to their networks from a core gateway.

Corel Corporation

	<company> A software publisher best known for the {CorelDraw}
	{application}.  Founded in June 1985 by Dr. Michael Cowpland,
	Corel Corporation was originally a {systems integration}
	company.  In January 1989, however they entered the software
	publishing market with the introduction of CorelDraw.  Corel
	became the second largest maker of personal {productivity
	software} in January 1996 when they purchased the
	{WordPerfect} family of software from {Novell, Inc.}.

	{(http://corel.com/)}.

	(1997-03-12)

core leak

	{memory leak}

Corel VENTURA

	<text, graphics> (Previously "Ventura Publisher") The first
	full-featured {desktop publishing} program available for the
	{IBM personal computer} and compatibles.  Ventura Publisher
	was originally distributed by {Ventura}, a wholy owned
	subsiduary of {Xerox Corporation} but was acquired by {Corel
	Corporation} in September 1993.

	Latest version: Corel VENTURA 8, as of 1999-04-05.

	{Home
	(http://corelnet.com/products/graphicsandpublishing/ventura8/index.htm)}.

	(1999-04-05)

Core Protocol Stack

	<architecture>

	1. A portion of the {Web Services} {architecture} for
	defining and describing various {Web Services}.

	2. The architectural {protocol} layers of a {Bluetooth}
	{wireless} {communication} system, comprising the {Host
	Control Interface} (HCI), {Logical Link Control and Adaptation
	Protocol} (L2CAP), {RS232 Serial Cable Emulation Profile}
	(RFCOMM), {Service Discovery Protocol} (SDP), and {Object
	Exchange} (OBEX).

	(2002-06-28)

Core War

	<games> (Or more recently, "Core Wars") A game played between
	{assembly code} programs running in the {core} of a simulated
	machine (and vicariously by their authors).  The objective is
	to kill your opponents' programs by overwriting them.

	The programs are written using an {instruction set} called
	"{Redcode}" and run on a {virtual machine} called "{MARS}"
	(Memory Array Redcode Simulator).

	Core War was devised by Victor Vyssotsky, Robert Morris Sr.,
	and {Dennis Ritchie} in the early 1960s (their original game
	was called "{Darwin}" and ran on a {PDP-1} at {Bell Labs}).
	It was first described in the "Core War Guidelines" of March,
	1984 by D. G. Jones and A. K. Dewdney of the Department of
	Computer Science at The University of Western Ontario
	(Canada).

	Dewdney wrote several "Computer Recreations" articles in
	"Scientific American" which discussed Core War, starting with
	the May 1984 article.  Those articles are contained in the two
	anthologies cited below.  A.K. Dewdney's articles are still
	the most readable introduction to Core War, even though the
	{Redcode} dialect described in there is no longer current.

	The International Core War Society (ICWS) creates and
	maintains Core War standards and the runs Core War
	tournaments.  There have been six annual tournaments and two
	standards (ICWS'86 and ICWS'88).

	["The Armchair Universe: An Exploration of Computer Worlds",
	A. K. Dewdney, W. H. Freeman, New York, 1988, ISBN
	0-7167-1939-8, LCCN QA76.6 .D517 1988]

	["The Magic Machine: A Handbook of Computer Sorcery",
	A. K. Dewdney, W. H. Freeman, New York, 1990, ISBN
	0-7167-2125-2 (Hardcover), 0-7167-2144-9 (Paperback), LCCN
	QA76.6 .D5173 1990].

	(1998-10-30)

corge

	/korj/ Yet another {metasyntactic variable}, named after a cat
	invented by Mike Gallaher and propagated by the {GOSMACS}
	documentation.

	See {grault}.

	[{Jargon File}]

	(1994-12-08)

Cornell List Processor

	(CLP) A list processing language, an extension of {CORC}, used
	for {simulation}.

	[Sammet 1969, p. 461].

	(1994-11-01)

Cornell Theory Center

	(CTC) One of four supercomputing centers funded by the US
	{National Science Foundation}.  The CTC also receives funding
	from the {Advanced Research Projects Agency}, the National
	Institutes of Health, New York State, {IBM} Corporation, and
	other members of the center's Corporate Research Institute.

	{(http://tc.cornell.edu/)}.

	(1994-12-08)

Cornell University

	<body, education> A US Ivy League University founded in 1868
	by businessman Ezra Cornell and respected scholar Andrew
	Dickson White.  Cornell includes thirteen colleges and
	schools.  On the Ithaca campus are the seven undergraduate
	units and four graduate and professional units.  The Medical
	College and the Graduate School of Medical Sciences are in New
	York City.  Cornell has 13,300 undergraduates and 6,200
	graduate and professional students.

	See also {Concurrent ML}, {Cornell Theory Center}, {Cornell
	University Programming Language}, {CU-SeeMe}, {ISIS}.

	{(http://cornell.edu/)}.

	(1996-12-01)

Coroutine Pascal

	["Control Separation in Programming languages", Lemon et al,
	ACM Ann Conf 1977].

	(1994-12-08)

Corporation for National Research Initiatives

	<body> (CNRI) A US research and development organisation that
	leads and funds research and development of network-based
	information technology including the {National Information
	Infrastructure}.

	Address: Reston, VA, USA.

	{CNRI Home (http://cnri.reston.va.us/)}.

	(2004-08-27)

Corporation for Open Systems

	(COS) An international consortium of computer users and
	vendors set up to provide ways of testing {OSI}
	implementations.

	(1994-11-30)

Corporation for Research and Educational Networking

	<body> (CREN) The organisation responsible for providing
	networking service to {BITNET} and {CSNET} users.  CREN was
	formed in October 1989, when {BITNET} and {CSNET} were
	combined under one authority.  {CSNET} is no longer
	operational, but CREN still runs {BITNET}.

	[Still true?]

	(1996-05-17)

CORREGATE

	Based on {Internal Translator} (IT).

	[Sammet 1969, p. 139].

	(1994-11-30)

Correlatives and Conversions

	The {data description language} used in the {Pick} {operating
	system}.

	["Exploring the Pick Operating System", J.E. Sisk et al,
	Hayden 1986].

	(1994-11-30)

Cortex

	An experimental slow controls project at {CERN}.

	(1994-11-30)

CORTL

	An intermediate language, a form of {RTL}, by Carl McConnell
	<mcconnell@cs.uiuc.edu>.

	(1994-11-30)

COS

	1. {Cray Operating System}.

	2. {Corporation for Open Systems}.

COSE

	Common Open Software Environment.  An initiative by
	Hewlett-Packard, Sun, IBM, Novell, Univel and SCO to move
	toward consistency and interoperability between Unix
	suppliers.

COSINE

	Cooperation for Open Systems Interconnection Networking in
	Europe.  A EUREKA project.

cosmic rays

	Notionally, the cause of {bit rot}.  However, this is a
	semi-independent usage that may be invoked as a humorous way
	to {handwave} away any minor {randomness} that doesn't seem
	worth the bother of investigating.  "Hey, Eric - I just got
	a burst of garbage on my {tube}, where did that come from?"
	"Cosmic rays, I guess."  Compare {sunspots}, {phase of the
	moon}.  The British seem to prefer the usage "cosmic showers";
	"alpha particles" is also heard, because stray alpha particles
	passing through a memory chip can cause single bit errors
	(this becomes increasingly more likely as memory sizes and
	densities increase).

	Factual note: Alpha particles cause bit rot, cosmic rays do
	not (except occasionally in spaceborne computers).  Intel
	could not explain random bit drops in their early chips, and
	one hypothesis was cosmic rays.  So they created the World's
	Largest Lead Safe, using 25 tons of the stuff, and used two
	identical boards for testing.  One was placed in the safe, one
	outside.  The hypothesis was that if cosmic rays were causing
	the bit drops, they should see a statistically significant
	difference between the error rates on the two boards.  They
	did not observe such a difference.  Further investigation
	demonstrated conclusively that the bit drops were due to alpha
	particle emissions from thorium (and to a much lesser degree
	uranium) in the encapsulation material.  Since it is
	impossible to eliminate these radioactives (they are uniformly
	distributed through the earth's crust, with the statistically
	insignificant exception of uranium lodes) it became obvious
	that one has to design memories to withstand these hits.

	[{Jargon File}]

COSS

	{Common Object Services Specification} in {CORBA}.

cost control callback

	<communications> A system where a computer automatically
	rejects incoming {dial-up} calls from certain telephone
	numbers and calls them back, with the result that the caller
	pays nothing for the connection.  This differs from security
	{callback} in that it applies to certain phone numbers instead
	of to certain user names.

	(2003-07-13)

Cost Driver Attribute

	<programming> Factors affecting the productivity of software
	development.  These include attributes of the software,
	computers, personnel, and project.

	(1996-05-28)

Cost/Schedule Control System Criteria

	<project> (C/SCSC) A set of criteria specified by the Federal
	Government for reporting project schedule and financial
	information.

	(1996-05-29)

COTS

	<software> commercial off-the-shelf.  See {commercial software}.

	(2007-02-08)

Cougar

	<World-Wide Web, standard> A former (development) name for the
	{W3C}'s {HTML} 4 standard.

	(2001-02-06)

cough and die

	<jargon> {barf}.  Connotes that the program is throwing its
	hands up by design rather than because of a bug or oversight.
	"The parser saw a control-A in its input where it was looking
	for a printable, so it coughed and died."

	Compare {die}, {die horribly}, {scream and die}.

	[{Jargon File}]

	(1995-03-07)

count

	<programming> One of the built-in {aggregate functions} in
	{relational database} systems, that returns the number of rows
	in a result.  The argument to the function is nearly always
	"*", e.g.

	  SELECT COUNT(*) FROM books

	which returns the number of rows in the "books" table.  If,
	instead, we say

	  SELECT COUNT(publisher) FROM books

	then only rows with a non-{null} value in the "publisher"
	column will be counted.

	(2010-09-26)

countable

	<mathematics> A term describing a {set} which is {isomorphic}
	to a subet of the {natural numbers}.  A countable set has
	"countably many" elements.  If the isomorphism is stated
	explicitly then the set is called "a counted set" or "an
	{enumeration}".

	Examples of countable sets are any {finite} set, the {natural
	numbers}, {integers}, and {rational numbers}.  The {real
	numbers} and {complex numbers} are not [proof?].

	(1999-08-29)

countably many

	{countable}

counted

	<mathematics> A term describing a {set} with an explicit
	{isomorphism} to the {natural numbers}.

	Compare: {countable}.

	(1995-04-13)

counterbug

	<humour> A {bug} used as a relpy to refute another person's
	bug report, as in "counterargument".

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-10-24)

country code

	<networking, standard> Originally, a two-letter abbreviation
	for a particular country (or geographical region), generally
	used as a {top-level domain}.

	Originally country codes were just for countries; but country
	codes have been allocated for many areas (mostly islands) that
	aren't countries, such as Antarctica (aq), Christmas Island
	(cx) and Saint Pierre et Miquelon (pm).

	Country codes are defined in {ISO 3166} and are used as the
	top level domain for {Internet} {hostnames} in most countries
	but hardly ever in the USA (code "us").  ISO 3166 defines
	short and full english and french names, two- and three-letter
	codes and a three-digit code for each country.

	There are also {language codes}.

	{Latest list (http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html)}.

	(2006-12-11)

coupling

	<programming, hardware> The degree to which components depend
	on one another.  There are two types of coupling, "tight" and
	"loose".  Loose coupling is desirable for good {software
	engineering} but tight coupling may be necessary for maximum
	performance.  Coupling is increased when the data exchanged
	between components becomes larger or more complex.

	(1996-08-01)

Course Author Language

	<language> (CAL) The {CAI} language for the {IBM 360}.

	["Design of a Programming Language for Computer Assisted
	Learning", F.M. Tonge, Proc IFIP Congress 1968, v2].

	(1994-11-08)

courseware

	<application> Programs and data used in {Computer-Based
	Training}.

	(1995-03-13)

Coursewriter III

	<language, education> A simple {CAI} language, developed
	around 1976.

	["Coursewriter III, Version 3 Author's Guide", SH20-1009,
	IBM].

	(1995-03-13)

cowboy

	[Sun, from William Gibson's {cyberpunk} SF]  Synonym
	for {hacker}.  It is reported that at Sun this word is often
	said with reverence.

	[{Jargon File}]

COWSEL

	COntrolled Working SpacE Language.  Burstall and Popplestone,
	U Edinburgh, 1964-66.  LISP-like semantics with FORTH-like
	stack, and reverse Polish syntax.  Forerunner of POP.
	EPU-R-12, U Edinburgh (Apr 1966).

CP

	A concurrent Prolog.

	"The Concurrent Logic Programming Language CP": Definition and
	Operational Semantics", V. Saraswat, 14th POPL, ACM 1987,
	pp.49-62.

CPAN

	{Comprehensive Perl Archive Network}

CParaOps5

	<language> A {parallel} version of {OPS5} written at CMU, in
	{C} and compiling to C.  CParaOps5 is available for {Unix},
	{Mach}, {Encore Multimaxen}, and {Sequent}.

	Latest version: 5.4, as of 1999-08-30.

	{(http://cs.ucsb.edu/~acha/software.html)}.

	(1999-08-30)

CPE

	{Customer Premises Equipment}

CPGA

	{Ceramic Pin Grid Array}

CPI

	{Common Program Interface}

CPL

	Combined Programming Language.  U Cambridge and U London.  A
	very complex language, syntactically based on ALGOL 60, with a
	pure functional subset.  Provides the ..where.. form of local
	definitions.  Strongly typed but has a "general" type enabling
	a weak form of polymorphism.  Functions may be defined as
	either normal or applicative order.  Typed array and
	polymorphic list structures.  List selection is through
	structure matching.  Partially implemented on the Titan (Atlas
	2) computer at Cambridge.  Led to the much simpler BCPL.  "The
	Main Features of CPL", D.W. Barron et al, Computer J
	6(2):134-143 (Jul 1963).

CPLD

	{complex programmable logic device}

CPM

	{Control Program for Microcomputers}

CP/M

	{Control Program for Microcomputers}

cpo

	{complete partial ordering}

cpp

	{C preprocessor}.

cppp

	<tool> A compiler {front-end} for {C++} by Tony Davis
	<ted@cs.brown.edu> with complete semantic processing.  cppp is
	based on {Yacc} and outputs an {abstract syntax graph}.
	Version: 1.14.

	{(ftp://wilma.cs.brown.edu/pub/cppp.tar.Z)}.

	(1993-05-26)

C preprocessor

	<tool, programming> (cpp) The standard {Unix}
	{macro}-expansion utility run as the first phase of the {C}
	compiler, {cc}.  Cpp interprets lines beginning with "#" such
	as

		#define BUFFER_SIZE 256

	as a textual {assignment} giving the symbol BUFFER_SIZE a
	value "256".  Symbols defined with cpp are traditionally given
	upper case names to distinguish them from C identifiers.  This
	symbol can be used later in the input, as in

		char input_buffer[BUFFER_SIZE];

	This use of cpp to name constants, rather than writing these
	{magic numbers} inline, makes a program easier to read and
	maintain, especially if there is more than one occurrence of
	BUFFER_SIZE all of which must all have the same value.

	Cpp macros can have parameters:

		#define BIT(n) (1<<(n))

	This can be used with any appropriate actual argument:

		msb = BIT(nbits-1);

	Note the parentheses around the "n" in the definition of BIT.
	Without these, operator precedence might mean that the
	expression substituted in place of n might not be interpreted
	correctly (though the example above would be OK).

	Cpp also supports conditional compilation with the use of

		#ifdef SYMBOL
		...
		#else
		...
		#endif
	and
		#if EXPR
		...
		#else
		...
		#endif

	constructs, where SYMBOL is a Cpp symbol which may or may not
	be defined and EXPR is an arithmetic expression involving only
	Cpp symbols, constants and C operators which Cpp can evaluate
	to a constant at {compile time}.

	{Decus cpp} is a free implementation for {VMS}.

	The most widely used C preprocessor today is the {GNU} CPP,
	distributed as part of {GCC}.

	(2001-12-31)

C Programmer's Disease

	<programming> The tendency of the undisciplined {C} programmer
	to set arbitrary but supposedly generous static limits on
	table sizes (defined, if you're lucky, by constants in header
	files) rather than taking the trouble to do proper dynamic
	storage allocation.  If an application user later needs to put
	68 elements into a table of size 50, the afflicted programmer
	reasons that he or she can easily reset the table size to 68
	(or even as much as 70, to allow for future expansion) and
	recompile.  This gives the programmer the comfortable feeling
	of having made the effort to satisfy the user's (unreasonable)
	demands, and often affords the user multiple opportunities to
	explore the marvellous consequences of {fandango on core}.  In
	severe cases of the disease, the programmer cannot comprehend
	why each fix of this kind seems only to further disgruntle the
	user.

	[{Jargon File}]

	(2001-12-31)

C-Prolog

	<language, Prolog> An implementation of {Prolog} in {C},
	developed by F. Pereira <pereira@research.att.com> et al in
	July 1982.  It had no {garbage collection}.

	It is not in the {public domain}.

	(1994-10-13)

cproto

	<programming, tool> A translator , written by Chin Huang at
	canrem.com, that generates {ANSI C} {function prototypes} from
	{K&R} {C} function definitions.  It can also translate
	function definition heads between {K&R} style and {ANSI C}
	style.

	Posted to {comp.sources}.misc, volume 29.  Runs under {Unix},
	{MS-DOS}.

	(1992-07-18)

CPS

	1. Conversational Programming System.  An interactive extended
	subset of {PL/I} from {Allen-Babcock} Corp in 1965.

	["Conversational Programming System under TSO (PBPO), Terminal
	User's Manual", SH20-1197, IBM].

	[Sammet 1969, p. 232-240].

	2. {Continuation Passing Style}.

CPSR

	{Computer Professionals for Social Responsibility}

CPU

	{central processing unit}

CPU Info Center

	<processor> An old {World-Wide Web} site at the {University of
	California at Berkeley} describing many different computers
	and their performance.

	{(http://bwrc.eecs.berkeley.edu/CIC/)}.

	(2000-01-12)

CPU time

	{processor time}

CPU Wars

	/C-P-U worz/ A 1979 large-format comic by Chas Andres
	chronicling the attempts of the brainwashed androids of IPM
	(Impossible to Program Machines) to conquer and destroy the
	peaceful denizens of HEC (Human Engineered Computers).  This
	rather transparent allegory featured many references to
	{ADVENT} and the immortal line "Eat flaming death,
	minicomputer mongrels!" (uttered, of course, by an IPM
	stormtrooper).  It is alleged that the author subsequently
	received a letter of appreciation on IBM company stationery
	from the head of IBM's Thomas J. Watson Research Laboratories
	(then, as now, one of the few islands of true hackerdom in the
	IBM archipelago).  The lower loop of the B in the IBM logo, it
	is said, had been carefully whited out.  See {eat flaming
	death}.

	[{Jargon File}]

CR

	{Carriage Return}

cr

	<networking> The {country code} for Costa Rica.

	(1999-01-27)

cracker

	<jargon> An individual who attempts to gain unauthorised
	access to a computer system.  These individuals are often
	malicious and have many means at their disposal for breaking
	into a system.  The term was coined ca. 1985 by hackers in
	defence against journalistic misuse of "{hacker}".  An earlier
	attempt to establish "worm" in this sense around 1981--82 on
	{Usenet} was largely a failure.

	Use of both these neologisms reflects a strong revulsion
	against the theft and vandalism perpetrated by cracking rings.
	The neologism "cracker" in this sense may have been influenced
	not so much by the term "safe-cracker" as by the non-jargon
	term "cracker", which in Middle English meant an obnoxious
	person (e.g., "What cracker is this same that deafs our ears /
	With this abundance of superfluous breath?"  -- Shakespeare's
	King John, Act II, Scene I) and in modern colloquial American
	English survives as a barely gentler synonym for "white
	trash".

	While it is expected that any real hacker will have done some
	playful cracking and knows many of the basic techniques,
	anyone past {larval stage} is expected to have outgrown the
	desire to do so except for immediate practical reasons (for
	example, if it's necessary to get around some security in
	order to get some work done).

	Contrary to widespread myth, cracking does not usually involve
	some mysterious leap of hackerly brilliance, but rather
	persistence and the dogged repetition of a handful of fairly
	well-known tricks that exploit common weaknesses in the
	security of target systems.  Accordingly, most crackers are
	only mediocre hackers.

	Thus, there is far less overlap between hackerdom and
	crackerdom than the {mundane} reader misled by
	sensationalistic journalism might expect.  Crackers tend to
	gather in small, tight-knit, very secretive groups that have
	little overlap with the huge, open hacker poly-culture; though
	crackers often like to describe *themselves* as hackers, most
	true hackers consider them a separate and lower form of life,
	little better than {virus} writers.  Ethical considerations
	aside, hackers figure that anyone who can't imagine a more
	interesting way to play with their computers than breaking
	into someone else's has to be pretty {losing}.

	See also {Computer Emergency Response Team}, {dark-side
	hacker}, {hacker ethic}, {phreaking}, {samurai}, {Trojan
	horse}.

	[{Jargon File}]

	(1998-06-29)

cracking

	{cracker}

crack root

	<security, jargon> To defeat the security system of a {Unix}
	machine and gain {root} privileges thereby.  The sort of thing
	a {cracker} wants to do.

	[{Jargon File}]

	(2010-02-04)

crank

	(Automotive slang) Verb used to describe the performance of a
	machine, especially sustained performance.  "This box cranks
	(or, cranks at) about 6 megaflops, with a burst mode of twice
	that on vectorised operations."

	[{Jargon File}]

	(1994-12-01)

crapplet

	<World-Wide Web, abuse> A badly written or profoundly useless
	{Java} {applet}.  "I just wasted 30 minutes downloading this
	stinkin' crapplet!"

	(1997-03-30)

CrApTeX

	/krap'tekh/ (University of York, England) Term of abuse used
	to describe {TeX} and {LaTeX} when they don't work (when used
	by TeXhackers), or all the time (by everyone else).  The
	non-TeX enthusiasts generally dislike it because it is more
	verbose than other formatters (e.g. {troff}) and because
	(particularly if the standard Computer Modern fonts are used)
	it generates vast output files.

	See {religious issues}.

	[{Jargon File}]

	(1994-12-01)

crash

	1. A sudden, usually drastic failure.  Most often said of the
	{system}, especially of magnetic disk drives (the term
	originally described what happened when the air gap of a hard
	disk collapses).  "Three {lusers} lost their files in last
	night's disk crash."  A disk crash that involves the
	read/write heads dropping onto the surface of the disks and
	scraping off the oxide may also be referred to as a "head
	crash", whereas the term "system crash" usually, though not
	always, implies that the operating system or other software
	was at fault.

	2. To fail suddenly.  "Has the system just crashed?"
	"Something crashed the OS!" See {down}.  Also used
	transitively to indicate the cause of the crash (usually a
	person or a program, or both).  "Those idiots playing
	{SPACEWAR} crashed the system."

	[{Jargon File}]

	(1994-12-01)

crash and burn

	<jargon> A spectacular crash, in the mode of the conclusion of
	the car-chase scene in the movie "Bullitt" and many subsequent
	imitators (compare {die horribly}).  A {Sun-3} {display
	screen} losing the flyback transformer and lightning strikes
	on {VAX-11/780} backplanes are notable crash and burn
	generators.

	The construction "crash-and-burn machine" is reported for a
	computer used exclusively for alpha or {beta} testing, or
	reproducing bugs (i.e. not for development).  The implication
	is that it wouldn't be such a disaster if that machine
	crashed, since only the testers would be inconvenienced.

	[{Jargon File}]

	(1996-02-22)

crawler

	{robot}

crawling horror

	<jargon> Ancient {crufty} hardware or software that is kept
	obstinately alive by forces beyond the control of the hackers
	at a site.  Like {dusty deck} or {gonkulator}, but connotes
	that the thing described is not just an irritation but an
	active menace to health and sanity.  "Mostly we code new stuff
	in C, but they pay us to maintain one big Fortran II
	application from nineteen-sixty-X that's a real crawling
	horror."

	Compare {WOMBAT}.

	[{Jargon File}]

	(1994-12-01)

Cray instability

	A shortcoming of a program or {algorithm} that manifests
	itself only when a large problem is being run on a powerful
	machine such as a {Cray}.  Generally more subtle than {bugs}
	that can be detected in smaller problems running on a
	{workstation} or {minicomputer}.

	[{Jargon File}]

	(1994-10-13)

crayola

	/kray-oh'l*/ A {super-minicomputer} or {super-microcomputer}
	that provides some reasonable percentage of {supercomputer}
	performance for an unreasonably low price.  A crayola might
	also be a {killer micro}.

	[{Jargon File}]

	(1994-10-13)

crayola books

	<publication> A humorous and/or disparaging term for the
	{rainbow series} of National Computer Security Center (NCSC)
	computer security standards.

	See also {Orange Book}.

	[{Jargon File}]

	(1996-12-03)

crayon

	1. Someone who works on {Cray} {supercomputers}.  More
	specifically, it implies a programmer, probably of the {CDC}
	ilk, probably male, and almost certainly wearing a tie
	(irrespective of gender).  Systems types who have a {Unix}
	background tend not to be described as crayons.

	2. A {computron} that participates only in {number crunching}.

	3. A unit of computational power equal to that of a single
	{Cray-1}.  There is a standard joke about this usage that
	derives from an old Crayola crayon promotional gimmick: When
	you buy 64 crayons you get a free sharpener.

	[{Jargon File}]

	(1994-10-13)

Cray Research, Inc.

	<company> US manufacturer of large powerful {mainframe}
	{supercomputers}, co-founded by noted computer architect,
	{Seymour Cray}.

	Quarterly sales $216M, profits $8M (Aug 1994).

	Cray were bought by {Silicon Graphics, Inc.}.

	[More details?]

	(1999-10-19)

CRC

	{cyclic redundancy check}

creationism

	The (false) belief that large, innovative software designs can
	be completely specified in advance and then painlessly
	magicked out of the void by the normal efforts of a team of
	normally talented programmers.  In fact, experience has shown
	repeatedly that good designs arise only from evolutionary,
	exploratory interaction between one (or at most a small
	handful of) exceptionally able designer(s) and an active user
	population - and that the first try at a big new idea is
	always wrong.  Unfortunately, because these truths don't fit
	the planning models beloved of {management}, they are
	generally ignored.

	[{Jargon File}]

creeping elegance

	Describes a tendency for parts of a design to become {elegant}
	past the point of diminishing return, something which often
	happens at the expense of the less interesting parts of the
	design, the schedule, and other things deemed important in the
	{Real World}.  See also {creeping featurism}, {second-system
	effect}, {tense}.

creeping featurism

	<jargon> /kree'ping fee'chr-izm/ (Or "feature creep") A
	systematic tendency to load more {chrome} and {features} onto
	systems at the expense of whatever elegance they may have
	possessed when originally designed.  "The main problem with
	{BSD} Unix has always been creeping featurism."

	More generally, creeping featurism is the tendency for
	anything to become more complicated because people keep saying
	"Gee, it would be even better if it had this feature too".
	The result is usually a patchwork because it grew one ad-hoc
	step at a time, rather than being planned.  Planning is a lot
	of work, but it's easy to add just one extra little feature to
	help someone, and then another, and another, ....  When
	creeping featurism gets out of hand, it's like a cancer.

	Usually this term is used to describe computer programs, but
	it could also be said of the federal government, the IRS 1040
	form, and new cars.  A similar phenomenon sometimes afflicts
	conscious redesigns; see {second-system effect}.  See also
	{creeping elegance}.

	[{Jargon File}]

	(1997-08-03)

creeping featuritis

	<jargon> /kree'ping fee'-chr-i:`t*s/ A variant of {creeping
	featurism}, with its own spoonerism: "feeping creaturitis".
	Some people like to reserve this form for the disease as it
	actually manifests in {software} or {hardware}, as opposed to
	the lurking general tendency in designers' minds.  -ism means
	"condition" or "pursuit of", whereas -itis usually means
	"inflammation of".

	[{Jargon File}]

	(1997-08-03)

C-Refine

	A {preprocessor} for {C} and languages with similar syntax by
	Lutz Prechelt <prechelt@ira.uka.de>.  C-Refine allows symbolic
	naming of code fragments so as to redistribute complexity and
	provide running commentary.

	Version 3.0 is available from comp.sources.reviewed archives.
	It is highly portable and has been ported to {Unix}, {MS-DOS},
	{Atari}, {Amiga}.

	{(ftp://ftp.uu.net/usenet/comp.sources.reviewed/volume02/crefine)}.

	(1992-07-16)

CREN

	{Corporation for Research and Educational Networking}

CREW PRAM

	concurrent read, exclusive write {PRAM}.

crippleware

	1. Software that has some important functionality deliberately
	removed, so as to entice potential users to pay for a working
	version.

	2. (Cambridge) {Guiltware} that exhorts you to donate to some
	charity.

	Compare {careware}, {nagware}.

	3. Hardware deliberately crippled, which can be upgraded to a
	more expensive model by a trivial change (e.g. removing a
	jumper).  A correspondant gave the following example:

	In 1982-5, a friend had a {Sharp} {scientific calculator}
	which was on the list of those permitted in exams.  No
	programmable calculators were allowed.

	A very similar, more expensive, programmable model had two
	extra keys for programming where the cheaper version just had
	blank metal.

	My friend took his calculator apart (as you would) and lo and
	behold, the rubber switches of the program keys were there on
	the circuit board.  So all he had to do was cut a hole in the
	face.  For exams he would pre-load the calculator with any
	useful routines, put a sticker with his name on it over the
	hole, and press the buttons through the sticker with a pen.

	[{Jargon File}]

	(2001-05-12)

criptography

	<spelling> It's spelled "{cryptography}".

	(1996-12-13)

Crisis Software

	A small UK company producing {software} for the {Acorn}
	{Archimedes} range of computers.

	{(http://dcs.warwick.ac.uk/~phid/Crisis/)}.

	(1994-11-10)

CRISP

	A {Lisp}-like language and {compiler} for the {IBM 370}
	written by Jeff Barnett of SDC, Santa Monica, CA, USA in the
	early 1970s.  It generalised {Lisp}'s two-part {cons nodes} to
	n-part nodes.

	(1994-11-10)

crisp

	(Or "discrete") The opposite of "{fuzzy}".

	(1994-12-23)

Crispy Critters

	<jargon> (Or "Crispy Crittered".  From the "Post" breakfast
	cereal of the same name) {hardware} which is {fried} or
	{toast}.

	(1995-01-31)

critical mass

	In physics, the minimum amount of fissionable material
	required to sustain a chain reaction.  Of a software product,
	describes a condition of the software such that fixing one bug
	introduces one plus {epsilon} bugs.  (This malady has many
	causes: {creeping featurism}, ports to too many disparate
	environments, poor initial design, etc.)  When software
	achieves critical mass, it can never be fixed; it can only be
	discarded and rewritten.

	[{Jargon File}]

	(1994-12-23)

critical section

	A non-{re-entrant} piece of code that can only be executed by
	one process at a time.  It will usually terminate in bounded
	time and a process will only have to wait a bounded time to
	enter it.  Some synchronisation mechanism is required at the
	entry and exit of the critical section to ensure exclusive
	use.

CRL

	Carnegie Representation Language.

	{Carnegie Group, Inc.}  Frame language derived from SRL.
	Written in Common LISP.  Used in the product Knowledge Craft.

CRLF

	<character> /ker'l*f/, sometimes /kru'l*f/ or /C-R-L-F/ A
	{carriage return} (CR, {ASCII} 13) followed by a {line feed}
	(LF, {ASCII} 10).  Under {Unix} influence this usage has
	become less common because Unix uses just line feed as its
	line terminator.

	See {newline}, {terpri}.

	[{Jargon File}]

	(1995-03-27)

CRM

	1. <business> {Customer Relationship Management}.

	2. <networking> {Cisco Resource Manager}.

crock

	[American scatologism "crock of shit"] 1. An awkward feature
	or programming technique that ought to be made cleaner.  For
	example, using small integers to represent error codes without
	the program interpreting them to the user (as in, for example,
	Unix "make(1)", which returns code 139 for a process that dies
	due to {segfault}).

	2. A technique that works acceptably, but which is quite prone
	to failure if disturbed in the least.  For example, a
	too-clever programmer might write an assembler which mapped
	{instruction mnemonics} to numeric {opcodes}
	{algorithm}ically, a trick which depends far too intimately on
	the particular bit patterns of the opcodes.  (For another
	example of programming with a dependence on actual opcode
	values, see {The Story of Mel}.)  Many crocks have a tightly
	woven, almost completely unmodifiable structure.  See {kluge},
	{brittle}.  The adjectives "crockish" and "crocky", and the
	nouns "crockishness" and "crockitude", are also used.

	[{Jargon File}]

cron

	<operating system> The Unix clock {daemon} that executes
	commands at specified dates and times according to
	instructions in a "crontab" file.

	{Unix manual page}: cron(8).

	(1997-04-10)

cross-assembler

	An {assembler} which runs on one type of processor and
	produces {machine code} for another.

	There is a set of {6502}, 68xx and {Zilog Z80} and {8085}
	cross-assemblers in {C} by <msmakela@cc.helsinki.fi> and Alan
	R. Baldwin.  They run under {MS-DOS} and could be compiled to
	run under {Unix} and on the {Amiga} and {Atari ST}.

	See also {fas}.

	{(ftp://ccosun.caltech.edu/)}.

	(1993-03-10)

cross-compiler

	<programming> A {compiler} which runs on one {platform} and
	produces code for another, as opposed to a {native} code
	compiler which produces code for the platform on which it
	runs.

	(1998-02-24)

cross-platform

	<software, hardware> A term that describes a language,
	software application or hardware device that works on more
	than one system {platform} (e.g. {Unix}, {Microsoft Windows},
	{Macintosh}).  E.g. {Netscape Navigator}, {Java}.

	(1998-02-24)

cross-post

	[{Usenet}] To post a single article simultaneously to several
	{newsgroups}.  Distinguished from posting the article
	repeatedly, once to each newsgroup, which causes people to see
	it multiple times (which is very bad form).  Gratuitous
	cross-posting without a Followup-To line directing responses
	to a single followup group is frowned upon, as it tends to
	cause {followup} articles to go to inappropriate newsgroups
	when people respond to only one part of the original posting.

	[{Jargon File}]

cross software

	Software developed on one kind of computer for use on another
	(usually because the other computer does not have itself
	adequate facilities for software development).

CROSSTABS

	Simple language for statistical analysis of tabular data.
	"User's Manual for the CROSSTABS System", Cambridge Computer
	Assoc (Feb 1977).

crosstalk

	<electronics> Interference caused by two signals becoming
	partially superimposed on each other due to electromagnetic
	(inductive) or electrostatic (capacitive) coupling between the
	conductors carrying the signals.  A common example of
	crosstalk is where the magnetic field from changing current
	flow in one wire induces current in another wire running
	parallel to the other, as in a transformer.  Crosstalk can be
	reduced by using shielded cables and increasing the distance
	between conductors.

	(1995-12-20)

CROW PRAM

	concurrent read, owner write {PRAM}.

CRT

	{cathode ray tube}

crudware

	/kruhd'weir/ Pejorative term for the hundreds of megabytes of
	low-quality {freeware} circulated by user's groups and {BBSs}
	in the micro-hobbyist world.

	[{Jargon File}]

cruft

	<jargon> (back-formation from "crufty") Anything unpleasant
	that accumulates over time.  Also used as a verb, as in {cruft
	together}, {hand cruft}.

	[{Jargon File}]

	(2006-01-19)

crufted

	{cruft}

cruft together

	<jargon> To {hack together} though with the suggestion that
	the result may be {cruft}.

	[{Jargon File}]

	(2006-01-19)

crumb

	<data, jargon> (Or tayste /tayst/) Silly suggested term for
	two {binary digits}.

	The term "quarter" has also been suggested, referring to the
	US 25-cent coin.  This was once equal in value to two of the
	eight "bits" - pie-slice-shaped "pieces of eight" - into which
	Spanish silver crowns were cut to make change.

	[{Jargon File}]

	(2007-05-31)

crunch

	1. <jargon> To process, usually in a time-consuming or
	complicated way.  Connotes an essentially trivial operation
	that is nonetheless painful to perform.  The pain may be due
	to the triviality's being embedded in a loop from 1 to
	1,000,000,000.  "Fortran programs do mostly {number
	crunching}."

	2. <compression> To reduce the size of a file without losing
	information by a scheme such as {Huffman coding}.  Since such
	{lossless compression} usually takes more computations than
	simpler methods such as {run-length encoding}, the term is
	doubly appropriate.

	3. The {hash character}.  Used at {XEROX} and {CMU}, among
	other places.

	4. To squeeze program source to the minimum size that will
	still compile or execute.  The term came from a {BBC
	Microcomputer} program that crunched {BBC BASIC} {source} in
	order to make it run more quickly (apart from storing
	{keywords} as byte codes, the language was wholly interpreted,
	so the number of characters mattered).  {Obfuscated C Contest}
	entries are often crunched; see the first example under that
	entry.

	[{Jargon File}]

	(2007-11-12)

cruncha cruncha cruncha

	<jargon> /kruhn'ch* kruhn'ch* kruhn'ch*/ An encouragement
	sometimes muttered to a machine bogged down in a serious
	{grovel}.  Also describes a notional sound made by grovelling
	hardware.

	See {grind} (sense 3).

	(2003-06-02)

crunchy

	{floppy disk}

cryppie

	<job, cryptography> /krip'ee/ A cryptographer.  One who hacks
	or implements software or hardware for {cryptography}.

	[{Jargon File}]

	(1996-08-23)

crypt

	{Unix} command to perform {encryption} and {decryption}.

cryptanalysis

	The branch of {cryptography} concerned with decoding encrypted
	messages when you're not supposed to be able to.

	(1994-12-06)

Crypt Breakers Workbench

	(cbw) A freely distributable multi-window integrated workbench
	of tools for {cryptanalysis} of files encrypted with the
	{4.2BSD} {Unix} {crypt} command.  It was originally written by
	Robert W. Baldwin at {MIT}.

	{(ftp://black.ox.ac.uk/src/security)},
	{(ftp://scitsc.wlv.ac.uk/pub/infomagic/usenet.cdrom/sources/unix/volume10)},
	{(ftp://ftp.sunet.se/pub/usenet/comp.sources.unix/volume10)}.

	(1994-12-06)

cryptography

	<cryptography> The practise and study of {encryption} and
	{decryption} - encoding data so that it can only be decoded by
	specific individuals.  A system for encrypting and decrypting
	data is a cryptosystem.  These usually involve an {algorithm}
	for combining the original data ("{plaintext}") with one or
	more "keys" - numbers or strings of characters known only to
	the sender and/or recipient.  The resulting output is known as
	"{ciphertext}".

	The security of a cryptosystem usually depends on the secrecy
	of (some of) the keys rather than with the supposed secrecy of
	the {algorithm}.  A strong cryptosystem has a large range of
	possible keys so that it is not possible to just try all
	possible keys (a "{brute force}" approach).  A strong
	cryptosystem will produce ciphertext which appears random to
	all standard statistical tests.  A strong cryptosystem will
	resist all known previous methods for breaking codes
	("{cryptanalysis}").

	See also {cryptology}, {public-key encryption}, {RSA}.

	{Usenet} newsgroups: {news:sci.crypt},
	{news:sci.crypt.research}.

	{FAQ} {MIT
	(ftp://rtfm.mit.edu/pub/usenet/news.answers/cryptography-faq/)}.

	{Cryptography glossary
	(http://io.com/~ritter/GLOSSARY.HTM#BruteForceAttack)}.

	{RSA cryptography glossary
	(http://rsasecurity.com/rsalabs/faq/glossary.html)}.

	{Cryptography, PGP, and Your Privacy
	(http://draco.centerline.com:8080/~franl/crypto.html)}.

	(2000-01-16)

cryptology

	The study of {cryptography} and {cryptanalysis}.

	(1994-12-06)

Crystal

	Concurrent Representation of Your Space-Time ALgorithms.

	A {recursion equation} parallel language.

	["A Parallel Language and its Compilation to Multiprocessor
	Machines or VLSI", M.C. Chen, 13th POPL, ACM 1986 pp.131-139].

	(1994-12-06)

CS-4

	["CS-4 Language Reference Manual and Operating System
	Interface", Ben M. Brosgol et al, Report IR-130-2,
	Intermetrics, Cambridge MA, Oct 1975].

	(1995-01-19)

C-Scheme

	{MIT Scheme}

CSCI

	{Computer Software Configuration Item}

C/SCSC

	{Cost/Schedule Control System Criteria}

CSCW

	{Computer Supported Cooperative Work}

CSG

	{constructive solid geometry}

CSG-tree

	<graphics> (Or "status tree"?) An approach used in {ray
	tracing} to evaluate {constructive solid geometry} structures.

	[Better explanation?  "Evaluate"?]

	(1998-06-09)

csh

	{C shell}

C sharp

	{C#}

C shell

	<operating system> (csh) The {Unix} {command-line interpreter}
	{shell} and {script language} by {William Joy}, originating
	from {Berkeley} {Unix}.

	{Unix} systems up to around {Unix Version 7} only had one
	shell - the {Bourne shell}, sh.  Csh had better {interactive}
	features, notably command input {history}, allowing earlier
	commands to be recalled and edited (though it was still not as
	good as the {VMS} equivalent of the time).

	Presumably, csh's {C}-like {syntax} was intended to endear it
	to programmers but sadly it lacks some {sh} features which are
	useful for writing {shell scripts} so you need to know two
	different syntaxes for every shell construct.

	A plethora of different shells followed csh, e.g. {tcsh},
	{ksh}, {bash}, {rc}, but sh and csh are the only ones which
	are provided with most versions of Unix.

	(1998-04-04)

.cshrc

	<operating system> (C Shell run commands) A {C Shell} startup
	configuration file.  This file is found in a user's {home
	directory} and can contain shell and other commands to set
	variables, define aliases, and perform any other
	initialisation which should happen for every shell (as opposed
	to {.login} which is only run for a {login shell}).

	Compare {AUTOEXEC.BAT} on {MS-DOS}.

	See also {rc}.

	(1996-04-09)

CSID

	{character set identifier}

C++SIM

	A {class} library like the {simulation} class libraries of
	{SIMULA}, by Mark Little <M.C.Little@newcastle.ac.uk>.
	Version: 1.0.

	{(ftp://arjuna.ncl.ac.uk/)}.

	(1993-06-04)

CSK Corporation

	<company> The japanese company that owns {CSK Software} and
	{Sega}.  CSK Corp. is the largest independent japanese
	software company.

	(2003-05-13)

CSK Software

	<company> An international software company formed by the
	merger of {Quay Financial Software} and {Micrognosis}, and
	fully owned by {CSK Corporation}, Japan.

	CSK Software is based in Frankfurt/Main (Germany) with offices
	in London (UK), Zurich (Switzerland), Madrid (Spain), and
	Singapore.  Products segments are RDD: Real-time data
	delivery, main product is {Slingshot} for delivering real-time
	data over the Internet (real push technology).  ETS:
	Electronic Trading Systems, price calculation and automatic
	trading (with connections to {XONTRO} and {XETRA}).  EAI:
	{Enterprise Application Integration}, main product is {XGen},
	a universal message converter with {GUI} and connections also
	to {SWIFT}.

	{(http://csksoftware.com/)}.

	E-mail: <info@csksoftware.com>.

	Address: CSK Software AG, Opernplatz 2, D-60313 Frankfurt,
	Germany.

	Tel: +49 (69) 509 520.  Fax: +49 (69) 5095 2333.

	(2003-05-13)

CSL

	1. Computer Structure Language.  A computer {hardware
	description language}, written in {BCPL}.

	["Computer Structure Language (CSL)", Proc 1975 Symp on Comp
	Hardware Description Languages and their Appl, ACM (Sep
	1975)].

	2. Control and Simulation Language.  A language for industrial
	simulation from Esso and {IBM}.

	["Control and Simulation Language", J.N. Buxton et al,
	Computer J 5(3):194-199 (Oct 1962).  Version: CSL 2 (1966 for
	IBM 7094)].

CSLIP

	{Compressed SLIP}

CSM

	["CSM - A Distributed Programming Language", S. Zhongxiu et
	al, IEEE Trans Soft Eng SE-13(4):497-500 (Apr 1987)].

CSMA/CD

	Carrier Sense Multiple Access / Collision Detect.

	The low level network arbitration {protocol} used on
	{Ethernet}.  Nodes wait for quiet on the net before starting
	to transmit and listen while they are transmitting.  If two
	nodes transmit at once the data gets corrupted.  The nodes
	detect this and continue to transmit for a certain length of
	time to ensure that all nodes detect the collision.  The
	transmitting nodes then wait for a random time before
	attempting to transmit again thus minimising the chance of
	another collision.  The ability to detect collision during
	transmission reduces the amount of {bandwidth} wasted on
	collisions compared with simple {ALOHA} broadcasting.

	(1995-02-23)

CSMP

	{Continuous System Modeling Program}

CSNET

	Computers and Science Network, operated by {CREN} for US
	computer science institutes.  It provides {electronic mail}
	service via {dial-up} lines, {X.25} and {Internet} services.

CSO

	Campus Phone Book software developed for, and originally used
	at, the Computer Services Office of the University of Illinois
	at Urbana-Champaign.  The server software is known as "qi" and
	the client is "ph".  Recent versions of the software refer to
	CCSO (Computing & Communications Service Office).

	{(ftp://uxc.cso.uiuc.edu/)}.

CSP

	1. <language> {Communicating Sequential Processes}.

	2. <hardware> {Chip Scale Packaging}.

CSP/80

	Based on CSP.

	"CSP/80: A Language for Communicating Processes", M. Jazayeri
	et al, Proc Fall COMPCON80, IEEE pp.736-740 (Sept 1980).

CS/PCode

	Used at {Microsoft}.

CSP/k

	{Concurrent SP/k}

CS-Prolog

	Distributed logic language.

	"CS-Prolog on Multi-Transputer Systems", I. Futo et al,
	Microprocessors & Microsystems, March 1989.

CSPS

	["Toward Comprehensive Specification of Distributed Systems",
	G. Roman et al, Proc 7th Intl Conf on Distrib Comp Sys, IEEE
	1987, pp. 282-289].

CSP-S

	["Implementation of CSP-S for Description of Distributed
	Algorithms", L. Patniak et al, Comput Lang 9(3):193-202
	(1984)].

CS/QCode

	Used at {Microsoft}.

	[More detail?]

CSR

	{Control and Status Register}

CSS

	{Cascading Style Sheets}

CSSA

	An {object-oriented} language.

	["Key Concepts in the INCAS Multicomputer Project", J. Nehmer
	et al, IEEE Trans Soft Eng SE-13(8):913-923 (Aug 1987)].

CSS/II

	Computer System Simulator II.  Like {GPSS}, for {IBM 360}.

	["Computer System Simulator II (CSS II) Program Description
	and Operations Manual", SH20-0875, IBM].

CSSL

	{Continuous System Simulation Language}

CSTools

	{Concurrency} through {message-passing} to named message
	queues.

CSU

	1. {California State University}.

	2. {Cleveland State University}.

	3. {Channel Service Unit}.

CSU/DSU

	{channel service unit/digital service unit}

CSV

	{comma separated values}

CT

	{Computer Telephone Integration}

CTC

	{Cornell Theory Center}

CTC++

	<testing> A {test coverage} analysis tool from {Testwell} for
	{C} and {C++} that checks for function, decision, condition
	and multicondtion coverage in host, target and kernel.

	{CTC++ Home (http://testwell.fi/)}.

	(2004-10-20)

CTCP

	<networking> {Client To Client Protocol}

CTI

	1. <communications> {Computer Telephone Integration}.

	2. <education> Computers in Teaching Initiative.  A UK
	government scheme.

	(1996-12-08)

CTL

	1. {Checkout Test language}.

	2. {Compiler Target Language}.

	3. {Computational Tree Logic}

CTOS

	1. <operating system> {Computerised Tomography Operating
	System}.

	2. <operating system> {Convergent Technologies Operating
	System}.

ctrl

	{control}

CTS

	1. <communications> {clear to send}.

	2. <medical> {overuse strain injury}.

CTSS

	{Compatible Timesharing System}

CTY

	/sit'ee/ or /C-T-Y/ [MIT] The terminal physically associated
	with a computer's system {console}.  The term is a contraction
	of "Console {tty}", that is, "Console TeleTYpe".  This {ITS}-
	and {TOPS-10}-associated term has become less common, as most
	Unix hackers simply refer to the CTY as "the console".

	[{Jargon File}]

CU

	<chat> "see you".

	(1997-12-01)

cu

	1. <communications> {Call Unix}.

	2. <networking> The {country code} for Cuba.

CUA

	{Common User Access}

Cube

	Three-dimensional visual language for higher-order logic.

	"The Cube Language", M. Najork et al, 1991 IEEE Workshop on
	Visual Langs, Oct 1991, pp.218-224.

	[{Jargon File}]

cube

	1. [short for "cubicle"] A module in the open-plan offices
	used at many programming shops.  "I've got the manuals in my
	cube."

	2. A NeXT machine (which resembles a matte-black cube).

cubing

	<jargon> By analogy with "tubing", hacking on an IPSC ({Intel
	Personal SuperComputer}) hypercube.  "Louella's gone cubing
	*again*!!"

	[{Jargon File}]

	(2003-10-09)

CUCH

	CUrry-CHurch.

	{Lambda-calculus}

	["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana
	Scott, Oxford U 1969].

	["Introduction to the CUCH", C. Bohm et al, in Automata
	Theory, E.R. Caianiello ed, A-P 1966, pp.35-65].

	(1994-12-02)

Cuckoo's Egg

	{The Cuckoo's Egg}

CUL

	<chat> "See you later".

	(1997-12-01)

Culler-Fried System

	A system for interactive mathematics.

	[Sammet 1969, p. 253-255].

	(1994-11-15)

CUPID

	A graphic {query language}.

	["CUPID: A Graphic Oriented Facility for Support of
	Nonprogrammer Interactions with a Database", N. McDonald, PhD
	Thesis, CS Dept, UC Berkeley 1975].

CUPL

	Cornell University Programming Language.

	A language for simple mathematics problems, based on {CORC},
	with {PL/I}-like {syntax}.

	["An Instruction Language for CUPL", R.J. Walker, Cornell U,
	Jul 1967].

	(1994-11-15)

curly bracket

	brace

current

	<electronics> The quantity of {charge} per unit time, measured
	in Amperes (Amps, A).  By historical convention, the sign of
	current is positive for currents flowing from positive to
	negative {potential}, but experience indicates that electrons
	are negatively charged and flow in the opposite direction.

	(1995-10-05)

curried function

	<mathematics, programming> A {function} of N {arguments} that
	is considered as a function of one argument which returns
	another function of N-1 arguments.  E.g. in {Haskell} we can
	define:

		average :: Int -> (Int -> Int)

	(The parentheses are optional).  A {partial application} of
	average, to one Int, e.g. (average 4), returns a function of
	type (Int -> Int) which averages its argument with 4.  In
	uncurried languages a function must always be applied to all
	its arguments but a {partial application} can be represented
	using a {lambda abstraction}:

		\ x -> average(4,x)

	Currying is necessary if {full laziness} is to be applied to
	functional sub-expressions.

	It was named after the logician {Haskell Curry} but the
	19th-century logician, {Gottlob Frege} was the first to
	propose it and it was first referred to in ["Uber die
	Bausteine der mathematischen Logik", M. Schoenfinkel,
	Mathematische Annalen. Vol 92 (1924)].

	{David Turner} said he got the term from {Christopher
	Strachey} who invented the term "currying" and used it in his
	lecture notes on programming languages written circa 1967.
	Strachey also remarked that it ought really to be called
	"Schoenfinkeling".

	Stefan Kahrs <smk@dcs.ed.ac.uk> reported hearing somebody in
	Germany trying to introduce "scho"nen" for currying and
	"finkeln" for "uncurrying".  The verb "scho"nen" means "to
	beautify"; "finkeln" isn't a German word, but it suggests "to
	fiddle".

	["Some philosophical aspects of combinatory logic",
	H. B. Curry, The Kleene Symposium, Eds. J. Barwise,
	J. Keisler, K. Kunen, North Holland, 1980, pp. 85-101]

	(2002-07-24)

currying

	Turning an uncurried function into a {curried function}.

curseperl

	A {curses} library for {Perl} by the author of Perl, Larry
	Wall <lwall@netlabs.com>.  It comes with Perl.

	(1994-12-06)

curses

	A set of subroutines in {Unix} for handling navigation on a
	terminal screen using the cursor.

cursor

	1. <hardware> A visually distinct mark on a display indicating
	where newly typed text will be inserted.  The cursor moves as
	text is typed and, in most modern editors, can be moved around
	within a document by the user to change the insertion point.

	2. <database> In {SQL}, a named control structure used by an
	{application program} to point to a row of data.  The position
	of the {row} is within a {table} or {view}, and the cursor is
	used interactively so select rows from columns.

	(1996-12-27)

cursor dipped in X

	<jargon> The metaphorical source of the electronic equivalent
	of a poisoned-pen letter.  Derived from English metaphors of
	the form "pen dipped in X" (where X = e.g. "acid", "bile",
	"vitriol").  These map over neatly to this hackish usage (the
	cursor being what moves, leaving letters behind, when one is
	composing on-line).

	"Talk about a {nastygram}!  He must've had his cursor dipped
	in acid when he wrote that one!"

	[{Jargon File}]

	(1996-12-27)

CU-SeeMe

	<communications> /see`-yoo-see'-mee/ ("CU" from {Cornell
	University}) A {shareware} {personal computer}-based
	{videoconferencing} program for use over the {Internet},
	developed at {Cornell University}, starting in 1992.

	CU-SeeMe allows for direct {audiovisual} connections between
	{clients}, or, like {irc}, it can support multi-user
	converencing via {servers} (here called "reflectors") to
	distribute the video and audio signals between multiple
	clients.

	CU-SeeMe was the first videoconferencing tool available at a
	reasonable price (in this case, free) to users of personal
	computers.

	{(http://cu-seeme.cornell.edu/)}.

	{(http://home.stlnet.com/~hubble/cuseeme/index.html)}.

	Compare with {multicast backbone}.

	(1996-12-01)

CUSI

	A collection of indices to various {World-Wide Web} and other
	{Internet} documents.  It is located at {Nexor} in the UK.

	{(http://web.nexor.co.uk/public/cusi/cusi.html)}.

	(1994-11-29)

cuspy

	/kuhs'pee/ [WPI: from the {DEC} abbreviation CUSP, for
	"Commonly Used System Program", i.e. a utility program used by
	many people] 1. (of a program) Well-written.

	2. Functionally excellent.  A program that performs well and
	interfaces well to users is cuspy.  See {rude}.

	[{Jargon File}]

custom

	(Or "bespoke") An adjective describing any product that is
	special in some way, individually created for a specific user
	or system, as opposed to generic or off-the-shelf.

	(2008-06-25)

Customer Information Control System

	<communications, database> (CICS) An {IBM} communications
	system that was converted for {database} handling.

	[Huh?]

	(1994-11-29)

Customer Information Systems

	{Customer Relationship Management}

Customer Interaction Software

	{Customer Relationship Management}

Customer Relationship Management

	<business> (CRM, CIS, Customer Information Systems, Customer
	Interaction Software, TERM, Technology Enabled Relationship
	Manager) Enterprise-wide software applications that allow
	companies to manage every aspect of their relationship with a
	customer.  The aim of these systems is to assist in building
	lasting customer relationships - to turn customer satisfaction
	into customer loyalty.

	Customer information acquired from sales, marketing, customer
	service, and support is captured and stored in a centralised
	{database}.  The system may provide {data-mining} facilities
	that support an {opportunity management system}.  It may also
	be integrated with other systems such as accounting and
	manufacturing for a truly enterprise-wide system with
	thousands of users.

	(1999-08-20)

CUT

	{Coordinated Universal Time}

cut and paste

	{copy and paste}

cut-and-waste code

	<humour, programming> Code that someone found online (e.g. in a
	{blog}) and copied and pasted into a product.  The result is
	usually a lot of wasted time trying to track down obscure bugs
	from code that may have made sense in the original context but not
	in the new one.  Also known as blog-driven development.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-07-03)

cut a tape

	To write a software or document distribution on magnetic tape
	for shipment.  Has nothing to do with physically cutting the
	medium!  "Cutting a disk" has also been reported as live
	usage.  Related slang usages are mainstream business's "cut a
	check", the recording industry's "cut a record", and the
	military's "cut an order".

	All of these usages reflect physical processes in obsolete
	recording and duplication technologies.  The first stage in
	manufacturing an old-style vinyl record involved cutting
	grooves in a stamping die with a precision lathe.  More
	mundanely, the dominant technology for mass duplication of
	paper documents in pre-photocopying days involved "cutting a
	stencil", punching away portions of the wax overlay on a silk
	screen.  More directly, paper tape with holes punched in it
	was an important early storage medium.

	[{Jargon File}]

cutover

	<communications, networking> /cut-ov*/ Switching from an old
	({hardware} and/or {software}) system to a replacement system,
	covering the overlap from when the new system is {live} until
	the old system has been {shut down}.

	(1997-07-09)

cut-through switching

	<networking> The application of {wormhole routing} to
	{packets} in a {packet switching} system so that forwarding of
	a packet starts as soon as its destination is known, before
	the whole packet has arrived.

	Compare {store and forward}.

	(2006-12-06)

cv

	<networking> The {country code} for Cape Verde.

	(1999-01-27)

CVS

	{Concurrent Versions System}

CW

	{continuous wave}

CWeb

	<language> An {ANSI C} implementation of the {Web} {literate
	programming} language.  Version 3.1 by Levy, Knuth, and Marc
	van Leeuwen is writen in, and outputs, {ANSI C} and {C++}.

	{(ftp://ftp.cwi.nl/pub/cweb/)}.

	(1993-12-16)

CWI

	{Centrum voor Wiskunde en Informatica}

CWIC

	Compiler for Writing and Implementing Compilers.  Val Schorre.
	One of the early metacompilers.  Compare {Meta-II}.

CWIS

	{Campus-Wide Information System}

C with Classes

	Short-lived predecessor to C++.

	["Classes: An Abstract Data Type Facility for the C Language",
	B. Stroustrup, CSTR-84 Bell Labs, Apr 1980].  Also in [SIGPLAN
	Notices (Jan 1982)].

cx

	<networking> The {country code} for Christmas Island.

	(1999-01-27)

cxref

	<tool> A cross-reference generator by Arnold Robbins from
	{Georgia Institute of Technology}.

	(2000-02-29)

cy

	<networking> The {country code} for Cyprus.

	(1999-01-27)

Cy486SLC

	A version of the {Intel 486} made by {Cyrix}.  It has a
	{486SX} {instruction set}, a 1 kilobyte {cache}, and an {Intel
	80386SX}-compatible pinout and thus, 16-bit data bus.

	(1994-11-30)

cyber

	<chat> To have {cybersex}.

	(1997-06-21)

cyberbunny

	<abuse> Someone who knows absolutely nothing about computers
	and advises people who know absolutely nothing about
	computers.  The term is used mostly on {AOL}, {Prodigy},
	{Compuserve}, etc.

	(1996-02-18)

cyberchondriac

	<jargon, humour> (After "hypochondriac") 1. A user who always
	thinks there is something wrong with his computer.

	2. Someone who uses the {World-Wide Web} to indulge their
	hyperchondria.

	(2001-03-10)

cybercrud

	<jargon> /si:'ber-kruhd/ 1. (Coined by Ted Nelson) Obfuscatory
	tech-talk.  Verbiage with a high {MEGO} factor.  The computer
	equivalent of bureaucratese.

	2. Incomprehensible stuff embedded in e-mail.  First there
	were the "Received" headers that show how mail flows through
	systems, then MIME ({Multi-purpose Internet Mail Extensions})
	headers and part boundaries, and now huge blocks of {hex} for
	PEM ({Privacy Enhanced Mail}) or PGP ({Pretty Good Privacy})
	{digital signatures} and certificates of authenticity.  This
	stuff all has a purpose and good user interfaces should hide
	it, but all too often users are forced to wade through it.

	[{Jargon File}]

	(1995-04-04)

CyberGlove

	<hardware, virtual reality> A {data glove} sold by {Virtual
	Technologies}.  The spandex-like glove houses 18 sensors to
	track accurately just about every move your hand is capable of
	making.  The accompanying software includes a
	three-dimensional hand model that can he added to any {virtual
	reality} application.  The glove includes a mount for Polhemus
	and Ascension sensors.

	(2003-06-17)

cybernetics

	<robotics> /si:`b*-net'iks/ The study of control and
	communication in living and man-made systems.

	The term was first proposed by {Norbert Wiener} in the book
	referenced below.  Originally, cybernetics drew upon
	electrical engineering, mathematics, biology, neurophysiology,
	anthropology, and psychology to study and describe actions,
	feedback, and response in systems of all kinds.  It aims to
	understand the similarities and differences in internal
	workings of organic and machine processes and, by formulating
	abstract concepts common to all systems, to understand their
	behaviour.

	Modern "second-order cybernetics" places emphasis on how the
	process of constructing models of the systems is influenced by
	those very systems, hence an elegant definition - "applied
	epistemology".

	Related recent developments (often referred to as {sciences of
	complexity}) that are distinguished as separate disciplines
	are {artificial intelligence}, {neural networks}, {systems
	theory}, and {chaos theory}, but the boundaries between those
	and cybernetics proper are not precise.

	See also {robot}.

	{The Cybernetics Society (http://cybsoc.org)} of the UK.

	{American Society for Cybernetics
	(http://asc-cybernetics.org/)}.

	{IEEE Systems, Man and Cybernetics Society
	(http://isye.gatech.edu/ieee-smc/)}.

	{International project "Principia Cybernetica"
	(http://pespmc1.vub.ac.be/DEFAULT.html)}.

	{Usenet} newsgroup: {sci.systems (news:sci.systems)}.

	["Cybernetics, or control and communication in the animal and the
	machine", N. Wiener, New York: John Wiley & Sons, Inc., 1948]

	(2002-01-01)

cyberpunk

	/si:'ber-puhnk/ (Originally coined by SF writer Bruce Bethke
	and/or editor Gardner Dozois) A subgenre of SF launched in
	1982 by William Gibson's epoch-making novel "Neuromancer"
	(though its roots go back through Vernor Vinge's "True Names"
	to John Brunner's 1975 novel "The Shockwave Rider").  Gibson's
	near-total ignorance of computers and the present-day hacker
	culture enabled him to speculate about the role of computers
	and hackers in the future in ways hackers have since found
	both irritatingly na"ive and tremendously stimulating.
	Gibson's work was widely imitated, in particular by the
	short-lived but innovative "Max Headroom" TV series.  See
	{cyberspace}, {ice}, {jack in}, {go flatline}.

	Since 1990 or so, popular culture has included a movement or
	fashion trend that calls itself "cyberpunk", associated
	especially with the rave/techno subculture.  Hackers have
	mixed feelings about this.  On the one hand, self-described
	cyberpunks too often seem to be shallow trendoids in black
	leather who have substituted enthusiastic blathering about
	technology for actually learning and *doing* it.  Attitude is
	no substitute for competence.  On the other hand, at least
	cyberpunks are excited about the right things and properly
	respectful of hacking talent in those who have it.  The
	general consensus is to tolerate them politely in hopes that
	they'll attract people who grow into being true hackers.

	[{Jargon File}]

cyberrhea

	<humour, jargon> /si:'ber-eer/ An affliction of some {word
	processor} users; excessive frequency and looseness of
	productivity.  Particularly virulent among those who have not
	discovered the fortifying virtues of revision.

	["Right Words, Right Places" Scott Rice, Wadsworth, 1993, A5.]

	(1997-02-25)

cybersex

	<networking> Sex performed in {real time} via a digital
	medium.

	Compare {teledildonics}.

	[Details?]

	(1998-02-10)

cyberspace

	<jargon> /si:'ber-spays/ 1. (Coined by {William Gibson})
	Notional "information-space" loaded with visual cues and
	navigable with brain-computer interfaces called "cyberspace
	decks"; a characteristic prop of {cyberpunk} SF.  In 1991
	serious efforts to construct {virtual reality} interfaces
	modelled explicitly on Gibsonian cyberspace were already under
	way, using more conventional devices such as glove sensors and
	binocular TV headsets.  Few hackers are prepared to deny
	outright the possibility of a cyberspace someday evolving out
	of the network (see {network, the}).

	2. Occasionally, the metaphoric location of the mind of a
	person in {hack mode}.  Some hackers report experiencing
	strong eidetic imagery when in hack mode; interestingly,
	independent reports from multiple sources suggest that there
	are common features to the experience.  In particular, the
	dominant colours of this subjective "cyberspace" are often
	grey and silver, and the imagery often involves constellations
	of marching dots, elaborate shifting patterns of lines and
	angles, or moire patterns.

	[{Jargon File}]

	(1999-02-01)

cyberspastic

	<humour> A person suffering from information overload while
	browsing the {Internet} or {World-Wide Web}.

	Compare {webhead}.

	(1995-11-09)

cyber-squatting

	<jargon, networking> The practice of registering famous brand
	names as {Internet} {domain names}, e.g. harrods.com, ibm.firm
	or sears.shop, in the hope of later selling them to the
	appropriate owner at a profit.

	(1998-01-22)

CyberWand

	<hardware, virtual reality> A {virtual reality} {controller}.
	The CyberWand costs $99, or $765 with optional Polhemus
	sensor.  It is basically the handle of a flight control system
	without the base.  The controller's four buttons and 2-D hat
	sensor track six degrees of movement.

	(1995-04-04)

CyberZine

	<publication> A combination paper and {World-Wide Web} on-line
	{Cyberspace} guide.  Upon payment you will be given a user name
	and password to access CyberZine on-line and the paper version
	will be posted first class.  Subscribers can also use the
	CyberZine help desk.

	{(http://cyberzine.org/)}.

	(1994-09-22)

CYBIL

	Control Data's system programming language in the 80's.  Major
	parts of CDC systems written in this.

Cyc

	<artificial intelligence> A large {knowledge-based system}.

	Cyc is a very large, multi-contextual {knowledge base} and
	{inference engine}, the development of which started at the
	{Microelectronics and Computer Technology Corporation} (MCC)
	in Austin, Texas during the early 1980s.

	Over the past eleven years the members of the Cyc team, lead
	by {Doug Lenat}, have added to the knowledge base a huge
	amount of fundamental human knowledge: {facts}, rules of
	thumb, and {heuristics} for reasoning about the objects and
	events of modern everyday life.

	Cyc is an attempt to do symbolic {AI} on a massive scale.  It
	is not based on numerical methods such as statistical
	probabilities, nor is it based on {neural networks} or {fuzzy
	logic}.  All of the knowledge in Cyc is represented
	{declaratively} in the form of logical {assertions}.  Cyc
	presently contains approximately 400,000 significant
	assertions, which include simple statements of fact, rules
	about what conclusions to draw if certain statements of fact
	are satisfied, and rules about how to reason with certain
	types of facts and rules.  The {inference engine} derives new
	conclusions using {deductive reasoning}.

	To date, Cyc has made possible ground-breaking pilot
	applications in the areas of {heterogeneous} database browsing
	and integration, {captioned image retrieval}, and {natural
	language processing}.

	In January of 1995, a new independent company named Cycorp was
	created to continue the Cyc project.  Cycorp is still in
	Austin, Texas.  The president of Cycorp is {Doug Lenat}.

	The development of Cyc has been supported by several
	organisations, including {Apple}, {Bellcore}, {DEC}, {DoD},
	{Interval}, {Kodak}, and {Microsoft}.

	{(http://cyc.com/)}.

	{Unofficial FAQ (http://robotwisdom.com/ai/cycfaq.html)}.

	(1999-09-07)

CYCL

	A {frame language}.

	["Building Large Knowledge-Based Systems", Doug B. Lenat et
	al, A-W 1990].

cycle

	<unit> A basic unit of computation, one period of a computer
	{clock}.

	Each {instruction} takes a number of clock cycles.  Often the
	computer can access its memory once on every clock cycle, and
	so one speaks also of "memory cycles".

	Every {hacker} wants more cycles (noted hacker {Bill Gosper}
	describes himself as a "cycle junkie").  There are only so
	many cycles per second, and when you are sharing a computer
	the cycles get divided up among the users.  The more cycles
	the computer spends working on your program rather than
	someone else's, the faster your program will run.  That's why
	every hacker wants more cycles: so he can spend less time
	waiting for the computer to respond.

	The use of the term "cycle" for a computer clock period can
	probably be traced back to the rotation of a generator
	generating alternating current though computers generally use
	a clock signal which is more like a {square wave}.
	Interestingly, the earliest mechanical calculators,
	e.g. Babbage's {Difference Engine}, really did have parts
	which rotated in true cycles.

	[{Jargon File}]

	(1997-09-30)

cyclebabble

	<jargon> Advertising raw {clock speed}, instead of {bus
	speed}.

	{IBM} uses raw clock speed as the speed of the computer.  In
	the {IBM PC} and {IBM PC XT}, the clock is divided by 4 to
	produce the 4-phase bus clocks.  Thus a 4 MHz IBM XT really
	runs at 0.895 MHz, because that 4 MHz was really 3.58 MHz
	which gets divided by four.

	A {Tandy} {Color Computer} ran at exactly the same speed, but
	clock speed was specified as bus speed, 0.895 MHz, leaving the
	impression that it was 4 times slower.  Actually it ran a
	little faster with a more efficient {instruction set}.  If the
	actual {clock rate} had been specified on a {CoCo 3}, it would
	have been 14.32 MHz, although the bus speed was still 0.895
	MHz.  That high speed also generated video, color, and {hidden
	refresh} timing.

	100 MHz computers are running at bus speeds of around 25 MHz.

	(1997-02-13)

cycle crunch

	<jargon> A situation wherein the number of people trying to
	use a computer simultaneously has reached the point where no
	one can get enough {cycles} because they are spread too thin
	and the system has probably begun to {thrash}.

	This scenario is an inevitable result of Parkinson's Law
	applied to {time-sharing}.  Usually the only solution is to
	buy more computer.  Happily, this has rapidly become easier
	since the mid-1980s, so much so that the very term "cycle
	crunch" now has a faintly archaic flavour; most hackers now
	use {workstations} or {personal computers} as opposed to
	traditional {time-sharing} systems.

	[{Jargon File}]

	(1994-11-29)

cycle drought

	A scarcity of {cycles}.  It may be due to a {cycle crunch},
	but it could also occur because part of the computer is
	temporarily not working, leaving fewer cycles to go around.
	"The {high moby} is {down}, so we're running with only half
	the usual amount of memory.  There will be a cycle drought
	until it's fixed."

	[{Jargon File}]

	(1994-11-29)

cycle of reincarnation

	A term coined by {Ivan Sutherland} ca. 1970 to refer to a
	well-known effect whereby function in a computing system
	family is migrated out to special-purpose {peripheral}
	hardware for speed, then the peripheral evolves toward more
	computing power as it does its job, then somebody notices that
	it is inefficient to support two asymmetrical processors in
	the architecture and folds the function back into the main
	{CPU}, at which point the cycle begins again.

	Several iterations of this cycle have been observed in
	{graphics-processor} ({blitter}) design, and at least one or
	two in communications and {floating-point} processors.  Also
	known as "the Wheel of Life", "the Wheel of Samsara" and other
	variations of the basic Hindu/Buddhist theological idea.

	[{Jargon File}]

	(1994-11-16)

cycle server

	<jargon> A powerful computer that exists primarily for running
	large {batch} jobs.  The term implies that {interactive} tasks
	such as editing are done on other machines on the network,
	such as {workstations}.

	[{Jargon File}]

	(1998-03-13)

cyclic redundancy check

	<algorithm> (CRC or "cyclic redundancy code") A number derived
	from, and stored or transmitted with, a block of data in order
	to detect corruption.  By recalculating the CRC and comparing
	it to the value originally transmitted, the receiver can
	detect some types of transmission errors.

	A CRC is more complicated than a {checksum}.  It is calculated
	using division either using {shifts} and {exclusive ORs} or
	{table lookup} ({modulo} 256 or 65536).

	The CRC is "redundant" in that it adds no information.  A
	single corrupted {bit} in the data will result in a one bit
	change in the calculated CRC but multiple corrupted bits may
	cancel each other out.

	CRCs treat blocks of input bits as coefficient-sets for
	{polynomials}.  E.g., binary 10100000 implies the polynomial:
	1*x^7 + 0*x^6 + 1*x^5 + 0*x^4 + 0*x^3 + 0*x^2 + 0*x^1 + 0*x^0.
	This is the "message polynomial".  A second polynomial, with
	constant coefficients, is called the "generator polynomial".
	This is divided into the message polynomial, giving a quotient
	and remainder.  The coefficients of the remainder form the
	bits of the final CRC.  So, an order-33 generator polynomial
	is necessary to generate a 32-bit CRC.  The exact bit-set used
	for the generator polynomial will naturally affect the CRC
	that is computed.

	Most CRC implementations seem to operate 8 bits at a time by
	building a table of 256 entries, representing all 256 possible
	8-bit byte combinations, and determining the effect that each
	byte will have.  CRCs are then computed using an input byte to
	select a 16- or 32-bit value from the table.  This value is
	then used to update the CRC.

	{Ethernet} {packets} have a 32-bit CRC.  Many disk formats
	include a CRC at some level.

	(1997-08-02)

cyclic redundancy code

	{cyclic redundancy check}

Cyclo

	<programming, tool> (Cyclomatic complexity tool) A {C} and
	{C++} code analysis tool by Roger D. Binns.  It measures
	{cyclomatic complexity}, shows function calls, and can draw
	{flowgraphs} of {ANSI C} and {C++} code.  It requires {Lex}
	and {C++}.

	Posted to {alt.sources}, 1993-06-28.

	(1993-06-28)

cyclomatic complexity

	<programming, testing> A measure of the number of linearly
	independent paths through a program {module}.  Cyclomatic
	complexity is a measure for the complexity of code related to
	the number of ways there are to traverse a piece of code.
	This determines the minimum number of inputs you need to test
	all ways to execute the program.

	(1998-03-17)

Cygnus Tcl Tools

	<Cygnus, Tcl, Tk, tool> A rebundling of {Tcl} and {Tk} into
	the {Cygnus} {GNU} build framework with "{configure}" by david
	d 'zoo' zuhn <zoo@cygnus.com>.

	Latest version: Release-930124, as of 1993-01-24.

	{(ftp://cygnus.com/pub/)}.

	(2000-09-25)

cylinder

	<storage> The set of {tracks} on a multi-headed {disk} that
	may be accessed without head movement.  That is, the
	collection of disk tracks which are the same distance from the
	spindle about which the disks rotate.  Each such group forms
	the shape of a cylinder.  Placing data that are likely to be
	accessed together in cylinders reduces the access
	significantly as head movement ({seeking}) is slow compared to
	disk rotation and switching between heads.

	(1997-07-15)

CypherText

	<language> An interactive language for text formatting and
	typesetting.

	["CypherText: An Extensible Composing and Typesetting
	Language", C.G. Moore et al, Proc FJCC 37, AFIPS (Fall 1970)].

	(1995-05-10)

Cyrix

	<company> A {microprocessor} manufacturer.  They produce an
	{Intel 486} equivalent - the {Cy486SLC} and a {Pentium}
	equivalent - the {Cyrix 6x86}.

	{(http://cyrix.com/)}.

	(1996-03-23)

Cyrix 6x86

	<processor> (6x86) {IBM} and {Cyrix}'s {sixth-generation},
	64-bit {80x86}-compatible {microprocessor}.  The 6x86 combines
	aspects of both {RISC} and {CISC}.  It has a {superscalar},
	{superpipelined} {core}, and performs {register renaming},
	{speculative execution}, {out-of-order completion}, and {data
	dependency removal}.  It has a 16-kilobyte {primary cache} and
	is socket-compatible with the {Pentium} P54C.  It has four
	performance levels: PR 120+, PR 150+, PR 166+ and PR 200+.

	The chip was designed by Cyrix and is manufactured by IBM.

	The architecture of the 6x86 is more advanced than that of the
	Pentium, incorporating some of the features of Intel's
	{Pentium Pro}.  At a given {clock rate} it executes most code
	more quickly than a Pentium would.  However, its {FPU} is
	considerably less efficient than Intel's.

	{IBM FAQ
	(http://chips.ibm.com/products/x86/6x86/faqs/6x86_faqs.html)},
	{Cyrix FAQ
	(http://cyrix.com/process/prodinfo/6x86/faq-6x86.htm)}.

	(1997-05-26)

cz

	<networking> The {country code} for the Czech Republic.

	(1999-01-27)

D

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

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

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

D-1000

	<computer> {Datamatic Corporation}'s first computer,
	which weighed 25 tons, took up 6,000 square feet and
	cost $1.5 million, produced some time after 1955.

	(2009-01-14)

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.

DAC

	{Digital to Analog Converter}

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.

	(1995-01-16)

D/A converter

	{Digital to Analog Converter}

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
	languages}, {logic languages} 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)].

	(1994-09-22)

DADS

	{Dictionary of Algorithms and Data Structures}

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 {hosts} 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}.

	[{Jargon File}]

	(1995-05-11)

DAG

	1. <architecture> {Data Address Generator}.

	2. <mathematics> {directed acyclic graph}.

	(1997-08-30)

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}).

	(1997-01-07)

daisywheel printer

	<printer> A kind of {impact printer} where the characters are
	arranged on the ends of the spokes of a wheel (resembling the
	petals on a daisy).

	The wheel (usually made of plastic) is rotated to select the
	character to print and then an electrically operated hammer
	mechanism bends the selected spoke forward slightly,
	sandwiching an ink ribbon between the character and the paper,
	as in a typewriter.

	One advantage of this arrangement over that of a typewriter is
	that different wheels may be inserted to produce different
	{typefaces}.

	(1998-04-28)

dancing frog

	<programming, humour> A {bug} or {glitch} that only occurs for
	a particular user; never when the user tries to show it to
	anyone else.

	The term is derived from a Warner Brothers cartoon in which a
	man discovers a frog which can sing and dance; he believes
	this will make his fortune but the frog never performs in
	front of anyone else.

	(2004-10-16)

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.

	[{Jargon File}]

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

	<jargon, legal> 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.

	Opposite: {samurai}.

	[{Jargon File}]

	(1997-04-28)

Darms

	<language, music> A music language.

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

	(1995-05-12)

DARPA

	{Defense Advanced Research Projects Agency}

Dartmouth BASIC

	<language> The original {BASIC} language, designed by John
	G. Kemeny and Thomas E. Kurtz at Dartmouth College in 1963.
	Dartmouth BASIC first ran on a {GE 235} [date?] and on an {IBM
	704} on 1964-05-01.  It was designed for quick and easy
	programming by students and beginners using Dartmouth's
	experimental {time-sharing} system.  Unlike most later BASIC
	dialects, Dartmouth BASIC was compiled.

	(2003-07-02)

Darwin

	1. <operating system> An {operating system} based on the
	{FreeBSD} version of {Unix}, running on top of a {microkernel}
	({Mach} 3.0 with darwin 1.02) that offers advanced networking,
	services such as the {Apache} {web server}, and support for
	both {Macintosh} and Unix {file systems}.  Darwin was
	originally released in March 1999.  It currently runs on
	{PowerPC} based Macintosh computers, and, in October 2000, was
	being ported to {Intel} processor-based computers and
	compatible systems by the Darwin community.

	2. <programming, tool> A general purpose structuring tool of
	use in building complex {distributed systems} 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>.

	3. {Core War}.

	(2003-08-08)

DAS

	Digital Analog Simulator.

	Represents {analog computer} design.

	(1994-11-08)

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.

	(1994-11-08)

DAT

	1. {Digital Audio Tape}.

	2. {Dynamic Address Translation}.

data

	<data, data processing, jargon> /day't*/ (Or "raw data")
	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}.  Computers nearly
	always represent data in {binary}.

	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 binary data 01110101 might represent the integer
	117 or the {ASCII} lower case U character or the blue component of
	a pixel in some {video}.  Which of these it represents is
	determined by the way it is processed (added, printed, displayed,
	etc.).  Even these numbers, characters or pixels however are still
	not really information until their context is known, e.g. my bank
	balance is £117, there are two Us in "vacuum", you have blue eyes.

	(2007-09-10)

data abstraction

	<data> Any representation of data in which the implementation
	details are hidden (abstracted).  {Abstract data types} and
	{objects} are the two primary forms of data abstraction.

	[Other forms?].

	(2003-07-03)

data acquisition

	{data logging}

Data Address Generator

	<architecture> (DAG) The mechanism which generates temporary
	memory addresses for data that is transferred between memory
	and {registers} in a {Digital Signal Processor}.

	Certain {DSP} architectures incorporate more than one DAG to
	simplify the programming needed to move blocks of data between
	buffers.

	For instance, certain {Fast Fourier Transform} {algorithms}
	requiring {bit reversing}, can use the DAG for that purpose,
	or they can use two DAGS, one for Program Memory Data (PMD),
	and the other for Data Memory Data (DMD).

	(1997-08-12)

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}.

	{Carol E. Brown's tutorial
	(http://accounting.rutgers.edu/raw/aies/www.bus.orst.edu/faculty/brownc/lectures/db_tutor/db_tutor.htm)}.

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

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

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

	(2005-11-17)

database administrator

	<job> A person responsible for the design and management of
	one or more {databases} and for the evaluation, selection and
	implementation of {database management systems}.  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 analysts}.

	Tasks might include controling an organisation's data
	resources, using {data dictionary} software to ensure {data
	integrity} and security, recovering corrupted data and
	eliminating data redundancy and uses tuning tools to improve
	database performance.

	(2004-03-11)

database analyst

	<job> A person who uses {data modeling} to analyse and specify
	data use within an application area.  A database analyst
	defines both {logical views} and physical data structures.  In
	a {client/server} environment, he defines the database part of
	the back end system.

	(2004-03-11)

database machine

	<hardware> 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.

	[Example?]

	(2004-03-11)

database management system

	<database> (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.

	A database management system (DBMS) can be 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.

	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.

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

	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 may not
	leave an audit trail of actions or 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.

	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 should
	mirror the organisation's data structure and process
	transactions 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.

	The three most common organisations are the {hierarchical
	database}, {network database} and {relational database}.  A
	database management system may provide one, two or all three
	methods.  Inverted lists and other methods are also used.  The
	most suitable structure depends on the application and on the
	transaction rate and the number of inquiries that will be
	made.

	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.

	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.

	See also: {intelligent database}.

	(1998-10-07)

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 normalisation

	<database> A series of steps followed to obtain a {database}
	design that allows for efficient access and {storage} of data
	in a {relational database}.  These steps reduce data
	redundancy and the chances of data becoming inconsistent.

	A {table} in a {relational database} is said to be in normal
	form if it satisfies certain {constraints}.  {Codd}'s original
	work defined three such forms but there are now five generally
	accepted steps of normalisation.  The output of the first step
	is called First Normal Form (1NF), the output of the second
	step is Second Normal Form (2NF), etc.

	First Normal Form eliminates {repeating groups} by putting
	each value of a multi-valued attribute into a new row.

	Second Normal Form eliminates {functional dependencies} on a
	{partial key} by putting the fields in a separate table from
	those that are dependent on the whole {key}.

	Third Normal Form eliminates functional dependencies on
	non-key fields by putting them in a separate table.  At this
	stage, all non-key fields are dependent on the key, the whole
	key and nothing but the key.

	Fourth Normal Form separates independent multi-valued facts
	stored in one table into separate tables.

	Fifth Normal Form breaks out data redundancy that is not
	covered by any of the previous normal forms.

	{(http://bkent.net/Doc/simple5.htm)}.

	[What about non-relational databases?]

	(2005-07-28)

database query language

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

	(1998-04-15)

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.

database transaction

	<database> A set of related changes applied to a {database}.  The
	term typically implies that either all of the changes should be
	applied or, in the event of an error, none of them, i.e. the
	transaction should be {atomic}.  Atomicity is one of the {ACID}
	properties a transaction can have, another is {isolation} -
	preventing interference between processes trying to access the
	database {cocurrently}.  This is usually achieved by some form of
	{locking} - where one process takes exclusive control of a
	database {table} or {row} for the duration of the transaction,
	preventing other processes from accessing the locked data.

	The canonical example of a transaction is transferring money
	between two bank accounts by subtracting it from one and adding it
	to the other.

	Some {relational database management systems} require the user to
	explicitly start a transaction and then either commit it (if all
	the individual steps are successful) or roll it back (if there are
	any errors).

	(2013-06-03)

Data/BASIC

	<language> (Or "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].

	(2001-04-30)

DATABUS

	DATApoint BUSiness Language.

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

	(1995-01-16)

data bus

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

	The width and {clock rate} of the data bus determine its data
	rate (the number of {bytes} per second it can carry), which 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.

	See also {data path}.

	(1995-01-16)

datacenter manager

	<job> A person who plans and directs all computer and
	{peripheral} operations, {data entry}, data control scheduling
	and quality control.

	(2004-03-11)

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.

	(1997-03-10)

DATACODE I

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

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

	(1994-12-06)

Datacom

	A {DBMS} from {Computer Associates International}.

	(1994-12-06)

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 {EIA-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 {modems} are "DTE" according to the original
	standard.

	(1995-02-28)

data communications analyst

	<job> A person who installs, maintains, and troubleshoots
	{data networks}.  A data communications analyst may have
	knowledge of {T1} lines, {TCP/IP}, {fiber optics}, {SNA},
	{frame relay}.  He assists users with problems related to
	connectivity, analyses data flow, configures {modems}, {DSUs},
	{multiplexors}, and {routers}, and uses network tools such as
	{NetView} or {Netspy}.

	(2004-03-11)

Data Communications Equipment

	{Data Communication Equipment}

data compression

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

	(1995-04-02)

Data definition language

	<language, database> (DDL)

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

	{SQL} contains DDL commands that can be used either
	interactively, or within programming language {source code},
	to define databases and their components, e.g. CREATE and
	DROP.

	See also {Data manipulation language} (DML).

	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].

	(1999-04-26)

data dictionary

	<database> A data structure that stores {metadata}, i.e. data
	about {data}.  The term "data dictionary" has several uses.

	Most generally it is a set of {data descriptions} that
	can be shared by several applications.

	Usually it means a {table} in a {database} that stores the
	names, {field} {types}, length, and other characteristics of
	the fields in the database tables.

	An active data dictionary is automatically updated as changes
	occur in the database.  A passive data dictionary must be
	manually updated.

	In a {DBMS}, this functionality is performed by the {system
	catalog}.  The data dictionary is a more general software
	utility used by designers, users, and administrators for
	{information resource management}.

	The data dictionary may maintain information on system
	hardware, software, documentation, users, and other aspects.

	Data dictionaries are also used to document the database
	design process itself and can accumulate metadata
	ready to feed into the system catalog.

	[Does anybody call them "codebooks"?]

	(2001-04-24)

data dictionary file

	<database> (DDF) A set of files describing the structure of a
	{database} file. DDFs define {database tables} and include
	information about file locations, field layouts and
	indexes. DDFs are the standard method for defining field and
	index characteristics for {Btrieve} files.

	(1997-06-03)

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 Driven Machine

	<language> (DDM) A {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].

	(1999-04-26)

Data Encryption Algorithm

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

	(1994-12-06)

Data Encryption Key

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

	See {cryptography}.

	(1994-12-06)

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).

	(1994-12-06)

data feed

	<data, architecture> Some process for transferring {data} from
	one system to another in a predetermined form.

	(2009-05-17)

data flow

	<architecture> A data flow architecture or language performs a
	computation when all the {operands} are available.  Data flow is
	one kind of {data driven} architecture, the other is {demand
	driven}.  It is a technique for specifying {fine-grain
	concurrency}, 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.

	(1996-05-13)

Data Flow Diagram

	<programming> A graphical notation used to describe how {data}
	flows between {processes} in a system.  Data flow diagrams are
	an important tool of most {structured analysis} techniques.

	{(http://smartdraw.com/resources/centers/software/dfd.htm)}.

	(2003-05-17)

data fork

	{Macintosh file system}

data frame

	{activation record}

Data General

	<company> A US computer manufacturer.  Responsible for the
	{Nova} {minicomputer}.

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

	(1994-09-26)

Data General mN601

	{Data General MicroNova 601}

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?]

	(1995-04-04)

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 {methods} 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 interchangeably, because the latter has evolved to
	meet the need of representing the former.

	(1995-11-03)

data integrity

	<data> The absence of unintended changes or errors in some
	data.  Integrity implies that the data is an exact copy of
	some original version, e.g. that it has not been corrupted in
	the process of being written to, and read back from, a {hard
	disk} or during transmission via some communications channel.

	Integrity may further imply that the {information} represented
	by the data has been {validated}, i.e. verified to conform to
	certain constraints, e.g. a date's year, month and day parts
	are within the appropriate ranges and the date actually
	exists.

	(2009-06-03)

Data Interchange Standards Association

	<standard> (DISA) A not-for-profit corporation that acts as
	the secretariat for {ANSI}'s {EDI} standards committee, ASC
	X12 that works on {ANSI X12}.  DISA manages ASC X12's
	membership, balloting, standards development and maintenance,
	publications, and communications with ANSI.

	(1999-09-18)

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.

	(1997-01-07)

Datakit

	<networking> A {circuit-switched} digital network, similar to
	{X.25}.  Datakit supports {host-to-host} connections and
	{EIA-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://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].

	(1996-10-20)

Dataless Management Services

	<operating system> (DMS)

	{(http://cs.arizona.edu/computer.help/policy/DIGITAL_unix/AA-PS3LE-TE_html/sharing10.html)}.

	(2005-09-15)

dataless management utility

	<operating system> (DMU) A {Dataless Management Services}
	(DMS) utility for managing the sharing of installed operating
	software between DMS servers and clients.  It allows users to
	install, configure, show and delete DMS environments and add,
	list, modify and remove DMS clients.

	(2005-09-15)

Data Link Connection Identifier

	<networking> (DLCI) A channel number which is attached to
	{data frames} to tell a {Frame Relay} network how to route the
	data.  In Frame Relay, multiple logical channels are
	{multiplexed} over a single physical channel.  The DLCI says
	which of these logical channels a particular data frame
	belongs to.

	{(http://etinc.com/frmain.htm#whatsadlci)}.

	(2000-02-13)

data link layer

	<networking> Layer two, the second lowest layer in the {OSI}
	seven layer model.  The data link layer splits data into
	{frames} (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 {network layer}.
	The data link 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}.

	(1995-02-14)

data link level

	{data link 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?]

	(1996-01-29)

Data Link Switching

	<networking> (DLSw) A standard for transporting {IBM} {Systems
	Network Architecture} (SNA) and {network basic input/output
	system} (NetBIOS) traffic over an {Internet protocol} network.

	Initially, in 1992, DLSw was proprietary to IBM.  It was
	submitted to the {IETF} as {RFC 1434} in 1993, later updated
	by {RFC 1795}.

	{(http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/dlsw.htm)}.

	(2008-01-11)

data logger

	{data logging}

data logging

	<data> (data acquisition) Storing a series of measurements
	over time, usually from a sensor that converts a physical
	quantity such as temperature, pressure, relative humidity,
	light, resistance, current, power, speed, vibration into a
	voltage that is then converted by a {digital to analog
	converter} (DAC) into a binary number.  Data logging hardware
	may have several DACs for multiple simultaneous measurements.
	The hardware usually connects to a {parallel port}, {serial
	port} or {USB} port on a {PC}.

	(2004-11-15)

Data Management Language

	<language> (DML)

	1. Any language for manipulating data or files,
	e.g. {IBM}'s {Distributed Data Management} (DDM).

	2. An early {ALGOL}-like language with lists and graphics,
	that ran on the {Honeywell 635}.

	["DML: A Data Management Language", D.W. Bray et al, GE,
	Syracuse NY].

	(1999-06-07)

Data Manipulation Language

	<language, database> (DML, or {Data Management Language}) A
	language for the manipulation of data in a {database} by
	applications and/or directly by end-users.

	{SQL} contains DML commands such as INSERT, UPDATE, and
	DELETE.

	See also {Data Definition Language} (DDL).

	(1999-04-26)

data mart

	<database> A type of {data warehouse} designed primarily to
	address a specific function or department's needs, as opposed
	to a data warehouse which is traditionally meant to address
	the needs of the organisation from an enterprise perspective.
	In addition, a data mart often uses {aggregation} or
	summarisation of the data to enhance query performance.
	However, it is important to maintain the ability to access the
	underlying base data to enable {drill-down analysis} as
	necessary.

	(1998-04-24)

Datamatic Corporation

	{Honeywell}

Datamation

	/day"t*-may"sh*n/ A magazine that many hackers assume all
	{suits} 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.

	[{Jargon File}]

data mining

	<database> Analysis of data in a {database} using tools which
	look for trends or anomalies without knowledge of the meaning
	of the data.  Data mining was invented by {IBM} who hold some
	related patents.

	Data mining may well be done on a {data warehouse}.

	{ShowCase STRATEGY (http://showcasecorp.com/)} is an
	example of a data mining tool.

	(2001-02-08)

data model

	<database> The product of the {database} design process which
	aims to identify and organize the required data logically and
	physically.

	A data model says what information is to be contained in a
	database, how the information will be used, and how the items
	in the database will be related to each other.

	For example, a data model might specify that a customer is
	represented by a customer name and credit card number and a
	product as a product code and price, and that there is a
	one-to-many relation between a customer and a product.

	It can be difficult to change a database layout once code has
	been written and data inserted.  A well thought-out data model
	reduces the need for such changes.  Data modelling enhances
	application maintainability and future systems may re-use
	parts of existing models, which should lower development
	costs.

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

	One of the most widely used methods for developing data models
	is the {entity-relationship model}.  The {relational model} is
	the most widely used type of data model.  Another example is
	{NIAM}.

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

	(2000-06-24)

data modeling

	<spelling> US spelling of "{data model}ling".

	(2000-06-24)

data modelling

	{data model}

Data Over Cable Service Interface Specification

	<communications, networking> (DOCSIS) {ITU}-approved interface
	requirements for {cable modems} involved in high-speed data
	distribution over a {cable television} network.  DOCSIS
	compatible equipment uses a 6 MHz {carrier} band for
	{downstream}, using 64 and 256 {QAM} (ITU Annex B), and {QPSK}
	and 16 QAM for {upstream}, allowing up to 36 and 10 Mb/s,
	respectively for downstream and upstream channels.

	{CableLabs FAQ (http://cablemodem.com/FAQs.html)}.

	(2001-07-10)

Data Over Cable Systems Interface Specifications

	{Data Over Cable Service Interface Specification}

data packet

	{packet}

Dataparallel-C

	<language, parallel> {C} with {parallel} extensions by Hatcher
	and Quinn of the University of New Hampshire.  Dataparallel-C
	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].

	(1995-03-30)

data path

	<architecture> A {CPU}'s internal {data bus} and {functional
	units}.  The width of the data path in bits is a major
	determiner of the processor's performance.

	(1997-07-09)

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.

	(1995-02-28)

DataPoint

	<company> An early {minicomputer} manufacturer which also
	developed {ARCnet}.

	(2004-08-25)

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.

	(1995-03-30)

Data Protection Act

	<legal> (DPA) A UK law guaranteeing rights to individuals in
	relation to personal data that others hold on them.  For
	example, under the DPA, you have the right to see what data a
	company holds on you.

	(2007-06-17)

data rate

	{data transfer rate}

data redundancy

	<data, communications, storage> Any technique that stores or
	transmits extra, derived data that can be used to detect or
	repair errors, either in hardware or software.  Examples are
	{parity bits} and the {cyclic redundancy check}.

	If the cost of errors is high enough, e.g. in a
	{safety-critical system}, redundancy may be used in both
	hardware AND software with three separate computers programmed
	by three separate teams ("triple redundancy") and some system
	to check that they all produce the same answer, or some kind
	of majority voting system.

	The term is not typically used for other, less beneficial,
	duplication of data.

	2. <communications> The proportion of a message's gross
	information content that can be eliminated without losing
	essential information.

	Technically, redundancy is one minus the ratio of the actual
	uncertainty to the maximum uncertainty.  This is the fraction
	of the structure of the message which is determined not by the
	choice of the sender, but rather by the accepted statistical
	rules governing the choice of the symbols in question.

	[Shannon and Weaver, 1948, p. l3]

	(2010-02-04)

data segment

	<memory> The range of memory locations where the {initialised
	data} of a program produced by a {Unix} {linker} is located.

	Executable code is located in the {code segment} and
	uninitialised data in the {bss segment}.

	(2004-02-24)

data 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 {modems} 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.

	(1995-01-30)

data set

	<operating system, storage> An {IBM} term for a {file}.

	(1997-04-15)

data set organization

	<operating system, storage> (DSORG) An {IBM} term for {file}
	structure.  These include PS {physical sequential}, DA {direct
	access}, IS {indexed sequential}, PO {partitioned} (a
	library).  This system dates from {OS/360}, and breaks down
	beginning with {VSAM} and {VTAM}, where it is no longer
	applied.

	Sequential and indexed data sets can be accessed using either
	a "basic" or a "queued" "access method."  For example a
	DSORG=PS file can use either BSAM (basic sequential access
	method) or QSAM (queued sequential access method).  It can
	also be processed as a {direct file} using BDAM.  Likewise a
	library can be processed using BPAM (basic partitioned access
	method), BSAM, QSAM, or BDAM.  DSORG and access method are
	somewhat, but not completely, orthogonal.

	The "basic" access method deals with {physical blocks} rather
	than {records}, and usually provides more control over the
	specific {device}.  Each I/O operation using the "basic"
	access method reads or writes a single block.  A "basic" read
	or write starts an {asynchronous} I/O operation, and the
	programmer is responsible for waiting for completion and
	checking for errors.

	The "queued" access method deals with {logical records} and
	provides blocking and deblocking services.  It is "queued"
	because it provides {read-ahead} and {write-behind} services.
	While a program is processing records in one input block, for
	example, QSAM may be reading one or more blocks ahead.  Queued
	"get" or "put" operations are synchronous as far as the
	programmer is concerned.  The operation is complete when the
	next logical record has been successfully processed.

	EXCP ({Execute Channel Program}) is a lower-level method of
	accessing data.

	IBM manuals usually named "Data Administration Guide",
	e.g. SC26-4505-1 for MVS/ESA DFP 3.1, provide more detail
	about data set organizations and access methods.

	(2005-08-08)

DataStage

	<database, tool> A tool set for designing, developing, and
	running {applications} that populate one or more {tables} in a
	{data warehouse} or {data mart}.

	[Reference]?

	(2004-06-23)

Datastorm Technologies, Inc.

	<company> The original suppliers of {Procomm}.

	Address: Columbia MO, USA.

	(2004-06-29)

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}.

	(1996-10-17)

data structure

	<data, programming> Any method of organising a collection of
	{data} to allow it to be manipulated effectively.  It may
	include {meta} data to describe the properties of the
	structure.

	Examples data structures are: {array}, {dictionary}, {graph},
	{hash}, {heap}, {linked list}, {matrix}, {object}, {queue},
	{ring}, {stack}, {tree}, {vector}.

	(2003-09-11)

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)].

	(1995-02-28)

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 converters}, and {multiplexors}.

	DTE is usually connected via an {EIA-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
	transmit on pin three and receive on pin two.  It is a curious
	fact that many {modems} are actually "DTE" according to the
	original standard.

	(1995-02-28)

Data Terminal Ready

	<communications> (DTR) The wire in a full {RS-232} connection
	that tells the {Data Communication Equipment} (DCE, typically
	a {modem}) that the {Data Terminal Equipment} (DTE, typically
	a computer or {terminal}) is ready to transmit and receive
	data.

	(2000-04-05)

DATA-TEXT

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

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

	(1994-12-06)

data transfer

	<data> Copying or moving {data} from one place to another,
	typically via some kind of {network} (e.g. {Asynchronous
	Transfer Mode}, {File Transfer Protocol}) or local data
	connection ({bus}, {SCSI}, {IDE}, {SATA}).

	(2009-06-09)

data transfer rate

	<communications> (Or "throughput, data rate", "transmission
	rate") The amount of {data} transferred in one direction over
	a link divided by the time taken to transfer it, usually
	expressed in bits per second (bps), bytes per second (Bps) or
	{baud}.  The link may be anything from an interface to a {hard
	disk} to a radio transmission from a satellite.

	Where data transfer is not continuous throughout the given
	time interval, the data transfer rate is thus an average rate
	that will be lower than the peak rate.  The peak or maximum
	possible rate may itself be lower than the {capacity} of the
	communication channel if the channel is shared, or part of the
	signal is not considered as data, e.g. {checksum} or {routing}
	information.

	When applied to data rate, the multiplier {prefixes} "kilo-",
	"mega-", "giga-", etc. (and their abbreviations, "k", "M",
	"G", etc.) always denote powers of 1000.  For example, 64 kbps
	is 64,000 bits per second.  This contrasts with units of
	{storage} where they stand for powers of 1024, e.g. 1 KB =
	1024 bytes.

	The other important characteristic of a channel is its
	{latency}.

	The {bandwidth} of a channel determines the data transfer rate
	but is a different characteristic, measured in {Hertz}.
	[Relationship?]

	(2008-02-08)

DATATRIEVE

	<database, language> A query and report system for use with
	{DEC}'s {VMS} ({RMS}, {VAX Rdb}/VMS or {VAX DBMS}).

	(2007-01-16)

Datatron 200 series

	<computer> A family of computers produced by {Burroughs} that
	included the {Datatron 204} and {Datatron 220}.

	(2007-01-16)

data type

	{type}

DataViews

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

	(1994-12-07)

DataVis

	A {dataflow} language for scientific {visualisation}.

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

	(1994-12-06)

data warehouse

	<database> (Or corporate data warehouse, CDW) Any system for
	storing, retrieving and managing large amounts of data.  Data
	warehouse software often includes sophisticated {compression}
	and {hashing} techniques for fast searches, as well as
	advanced filtering.  A data warehouse is often a {relational
	database} containing a recent snapshot of corporate data and
	optimised for searching.  Planners and researchers can use
	this database without worrying about slowing down day-to-day
	operations of the production database.  The latter can be
	optimised for transaction processing (inserts and updates).

	Compare {data mart}.

	(2007-05-16)

data warehousing

	{data warehouse}

date

	<convention, data> A string unique to a time duration of 24
	hours between 2 successive midnights defined by the local time
	zone.  The specific representation of a date will depend on
	which calendar convention is in force; e.g., Gregorian,
	Islamic, Japanese, Chinese, Hebrew etc. as well as local
	ordering conventions such as UK: day/month/year, US:
	month/day/year.

	Inputting and outputting dates on computers is greatly
	complicated by these {localisation} issues which is why they
	tend to operate on dates internally in some unified form such
	as seconds past midnight at the start of the first of January
	1970.

	Many software and hardware representations of dates allow only
	two digits for the year, leading to the {year 2000} problem.

	{Unix manual page}: date(1), ctime(3).

	(1997-07-11)

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}.

	[{Jargon File}]

	(1994-12-06)

daughter

	<mathematics, data> (Or "child", "successor") In a {tree}, a
	{node} pointed to by a {parent}, i.e. another node closer to
	the {root node}.

	(1998-11-14)

daughterboard

	<hardware> (Or "daughter board", "daughtercard", "daughter
	card") A {printed circuit board} that connects to the
	{motherboard}.  The daughterboard is typically smaller than
	the motherboard.

	A daughterdboard often adds to or supports the main functions
	of the {motherboard}, unlike an {expansion card} which
	provides some new function.  For example, a post-release
	hardware modification might be released as a daughterboard for
	soldering onto the {motherboard}.

	(2004-09-28)

daughtercard

	{daughterboard}

David Turner

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

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

	He worked at UKC and set up a company, {Research Software
	Limited} to market {Miranda}.

	(1994-12-06)

day mode

	{phase}

DAZIX

	Daisy/Cadnetix Corporation.

	A supplier of digital electronic {CAE} systems.

	(1994-12-06)

DB

	{database}

DB2

	<database> A {relational database} from {IBM}.

	When running under IBM's MVS ({Multiple Virtual Storage})
	{operating system}, DB2 is implemented on top of {VSAM} and
	uses its underlying data structures.

	DB2, later called "DB2 Universal DataBase", also runs under
	{windows NT}, {AIX}, {Solaris} and, most recently, {Linux}.

	[Details?  Was there a "DB1"?]

	(1999-02-01)

DB-25

	<hardware> The standard 25-pin {D-shell connector} used for
	{EIA-232} serial communication.

	{DE-9} is a common alternative.

	(1996-12-08)

DBA

	{database administrator}

dBASE

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

	dBASE evolved from {Vulcan} by Wayne Ratliffe, which came out
	in around 1980 and ran on CP/M.  It was called dBaseII when
	sold to {Ashton-Tate Corporation}.

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

	Ashton-Tate was taken over in the early 1990s by what became
	{Borland Software Corporation} who sold dBase in March(?)
	1999 to the newly formed dBase Inc.  dBase Inc's first release
	was {Visual dBASE} 5.7, a Y2K upgrade to Visual dBASE 5.x.

	Current version, as of 2003-11-24: dBASE PLUS 2.0x build 1703.

	{dBase Home (http://dbase.com/)}.

	(2003-11-24)

DBC

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

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

	(1995-05-01)

DBCS

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

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

	(1995-03-21)

dBFAST

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

DBH

	{Denis Howe}

DBMS

	{database management system}

DBPL

	<language, database> 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].

	(1994-12-07)

DBRI

	{Dual Basic Rate Interface}

dbx

	<programming> A {source-level debugger} originating from {BSD
	Unix} but now available for many other {Unix} distributions.

	{Sun documentation
	(http://developers.sun.com/sunstudio/documentation/ss12/mr/man1/dbx.1.html)}.

	(2009-04-27)

dBXL

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

	(1994-12-07)

DC

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

	Here is an example program which prints out {factorials}:

		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}.

	(1995-03-17)

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}.

DCAC

	{Domestic Communications Assistance Center}

DCALGOL

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

DCC

	1. <audio> {Digital Compact Cassette}.

	2. <networking> {Direct Client to Client Protocol}.

	(2001-12-02)

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}

DCI

	{Display Control Interface}

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.

DCOM

	{Distributed Component Object Model}

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?]

	[{Jargon File}]

DCS

	1. {Digital Cellular System}.

	2. {Digital Control System}.

DCT

	{Discrete Cosine Transform}

DD

	1. <storage> {double density}.

	2. <database> {data dictionary}.

	3. <programming> {Deployment Descriptor}.

	(2005-01-26)

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".

	dd had a 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.

	[{Jargon File}]

	(2005-08-08)

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), pp. 850-861, Sep 1968].

	2. <language, games> An {adventure} language developed by
	M. Urban, C. Kostanick et al of the {UCLA} Computer Club.  DDL
	was the forerunner of {ADL}.

	3. {Data Definition Language}.

	4. {Document Description Language}.

	5. {Dynamic Data Exchange}.  (Originally "Linking").

	(1997-06-05)

DDM

	1. <protocol, database> {Distributed Data Management}.

	2. <language> {Data Driven Machine}.

	(1999-06-07)

DDN

	{Defense Data Network}

DDO

	{Dynamic Drive Overlay}

DDP

	{Distributed Data Processing}

DDR

	{Double Data Rate Random Access Memory}

DDR-RAM

	{Double Data Rate Random Access Memory}

DDR-SDRAM

	{Double Data Rate Random Access Memory}

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 {suits} 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).

	[{Jargon File}]

DDW

	{distributed data warehouse}

de

	<networking> The {country code} for Germany.

	(1999-01-27)

DE-9

	<hardware> The standard 9-pin {D-shell connector} used for
	{EIA-232} serial communication.  DE-9 is a common alternative
	to {DB-25}, especially on {personal computers}.

	(1999-12-08)

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.

	[{Jargon File}]

DEADBEEF

	<convention, storage> /ded-beef/ The {hexadecimal} pattern
	used to fill words of freshly allocated memory under a number
	of {IBM} environments including the {RS/6000}; equal to
	decimal 3,735,928,559 (unsigned) or -559,038,737 (32-bit
	signed).  As in "Your program is DEADBEEF" (meaning gone,
	aborted, flushed from memory).

	(1998-06-29)

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}.

	[{Jargon File}]

	(1996-05-22)

deadlock

	<parallel, programming> A situation where 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 waiting for output from a server
	while the server is 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}.

	Another example, common in {database} programming, is two
	processes that are sharing some resource (e.g. read access to
	a {table}) but then both decide to wait for exclusive
	(e.g. write) access.

	The term "deadly embrace" is mostly synonymous, 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.

	Compare: {livelock}.  See also {safety property}, {liveness
	property}.

	[{Jargon File}]

	(2000-07-26)

deadly embrace

	{deadlock}

dead tree

	<publication, jargon> Paper.

	Use of this term emphasises the waste of natural resources and
	limited features available from the printed form of a document
	compared with an electronic rendition.

	E.g. "I read the dead tree edition of the {Guardian
	(http://guardian.co.uk/)} on the train".

	See also {tree-killer}.

	(1999-11-03)

dead tree edition

	{dead tree}

deamon

	<spelling> It's spelled "{daemon}".

	(1996-12-13)

death code

	A routine whose job is to set everything in the computer -
	{registers}, 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 {registers} 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).

	[{Jargon File}]

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.

deb

	<filename extension, Debian> The {filename extension} for a
	{Debian} {binary package}.

	(2001-01-27)

Debbugs

	<programming> The {bug tracking system} used by the {Debian}
	Project.  Each bug is given a number, and is kept on file
	until it is marked as having been dealt with. The system is
	mainly controlled by {electronic mail}, but the bug reports
	can be viewed via the {World-Wide Web}.

	{Debbugs home (http://debian.org/Bugs/)}.

	(2002-06-12)

Debian

	<operating system> /deb'ee`n/, *not* /deeb'ee`n/ The
	non-profit volunteer organisation responsible for Debian
	{GNU}/{Linux} and Debian {GNU}/{Hurd}.  Debian's {Linux}
	distribution is dedicated to free and {open source} software;
	the main goal of the distribution is to ensure that one can
	download and install a fully-functional {operating system}
	that is completely adherent to the Debian Free Software
	Guidelines (DFSG).

	Debian was begun in August 1993 by Ian Murdock, and was
	sponsored by the {Free Software Foundation} from November 1994
	to November 1995.  The name Debian is a contraction of DEB(ra)
	and IAN Murdock.

	Debian's packaging system (dpkg) is similar to other popular
	packaging systems like {RPM}.  There are over 2200 packages of
	precompiled software available in the main (free) section of
	the Debian 2.1 distribution alone -- this is what sets Debian
	apart from many other Linux distributions.  The high quality
	and huge number of official packages (most Debian systems'
	/usr/local/ remains empty -- almost everything most Linux
	users want is officially packaged) are what draw many people
	to use Debian.

	Another unique aspect to the Debian project is the open
	development; pre-releases are made available from Day 1 and if
	anyone wishes to become a Debian developer, all that is needed
	is proof of identification and a signed {PGP} or {GPG} key.
	There are over 400 Debian developers all around the world --
	many developers have never met face-to-face, and most
	development talks take place on the many {mailing lists} and
	the {IRC} network.

	{(http://debian.org/)}.

	{Debian Linux archives (ftp://ftp.debian.org/debian)}.

	(1999-02-23)

Debian GNU/Hurd

	<operating system> A {GNU} distribution based on the {Hurd}
	{kernel} instead of the more well known {Linux} kernel.

	[Reference?]

	(2001-12-02)

Debian GNU/Linux

	{Debian}

debianize

	<Debian> To take a {source package} and make the necessary
	modifications to allow it to be built as a policy compliant
	{Debian} package.

	(2000-05-31)

deboursification

	<jargon> Removal of irrelevant {newsgroups} from the
	Newsgroups header of a {followup}.  The term applies
	particularly to the removal of frivolous groups added by one
	of the Kooks.

	See also: {sneck}.

	[Sam Spade anti-{spam} software].

	(1999-09-15)

De Bruijn graph

	<mathematics> A class of {graphs} with elegant properties.

	De Bruijn graphs are especially easy to use for {routing},
	with shifting of source and destination addresses.

	[What properties?  How are they used in routing?]

	(1998-04-28)

De Bruijn notation

	<language> 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].

	(2003-06-15)

DEBUG

	<software, tool> The bundled {compiler}/{assembler} for
	{DOS}/{Windows} after {CP/M}.

	[Did CP/M have "DEBUG"?]

	["DOS Power Tools, Techniques, Tricks, and Utilities, PC
	Magazine, Paul Somerson Executive Editor, Bantam Books, 1988].

	(2003-06-17)

debugging

	<programming> The process of attempting to determine the cause
	of the symptoms of malfunctions in a program or other system.
	These symptoms may be detected during testing or use by real
	users.

	Symptoms are often caused by factors outside the program, such
	as misconfiguration of the user's {operating system},
	misunderstanding by the user (see {PEBCAK}) or failures in
	other external systems on which the program relies.  Some of
	these are more in the realm of {technical support} but need to
	be eliminated.  Debugging really starts when it has been
	established that the program is not behaving according to its
	specification (which may be formal or informal).  It can be
	done by visual inspection of the {source code}, {debugging by
	printf} or using a {debugger}.  The result may be that the
	program is actually behaving as specified but that the spec is
	wrong or the requirements on which it was based were deficient
	in some way (see {BAD}).

	Once a bug has been identified and a fix applied, the program
	must be tested to determine whether the bug is really fixed
	and what effects the changes have had on other aspects of the
	program's operation (see {regression testing}).

	The term is said to have been coined by {Grace Hopper}, based
	on the term "{bug}".

	(2006-11-27)

debugging an empty file

	<programming, humour> A humourous definition of {programming}
	that considers a complete absence of any code as a {bug} to be
	fixed.

	{test-driven development} proceeds by the programmer writing
	tests for code that doesn't exist yet, which could be
	described as testing an empty file.

	(2012-05-01)

debugging by printf

	<programming> The {debugging} technique where the programmer
	inserts print statements into a program so that when run the
	program leaves a "trail of {breadcrumbs}" allowing him to see
	which parts were executed.  The information output may just be
	a short string to indicate that a particular point in the code
	has been reached or it might be a complete {stack trace}.  The
	output typically just goes to the window or terminal in which
	the program is running or may be written to a log file.

	{printf} is the standard {C} print function, other languages
	would use different names.

	(2007-03-08)

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}.

	[{Jargon File}]

DEC Alpha

	<processor> A {RISC} {microprocessor} from {DEC}.  In November
	1995, the Alpha was purportedly the fastest non-research chip
	used in commonly available {workstations}.  It is
	{superpipelined} and {superscalar}.  In February 1996 it was
	clocked at 200 MHz and in March 1998 at 666 MHz.

	(1998-03-17)

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.

	[{Jargon File}]

DECdesign

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

	(1994-09-05)

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}.

	[{Jargon File}]

dechunker

	{chunker}

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.

	(1995-01-13)

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.

	(1995-03-14)

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}.

	(1996-05-03)

decision support

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

	[Examples?]

	(1995-02-14)

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.

	(1995-02-14)

Decision Support Systems

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

	(1995-02-14)

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.

	(1995-09-22)

deckle

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

	[{Jargon File}]

	(1994-11-23)

declarative language

	<language> Any {relational language} or {functional language}.
	These kinds of {programming language} describe relationships
	between variables in terms of {functions} or {inference
	rules}, and the language executor ({interpreter} or
	{compiler}) applies some fixed {algorithm} to these relations
	to produce a result.

	Declarative languages contrast with {imperative languages}
	which specify explicit manipulation of the computer's internal
	state; or {procedural languages} which specify an explicit
	sequence of steps to follow.

	The most common examples of declarative languages are {logic
	programming} languages such as {Prolog} and {functional
	languages} like {Haskell}.

	See also {production system}.

	(2004-05-17)

DECmate I

	<computer> The first in {DEC}'s series of miniaturised {PDP-8}
	computers based on the {Intersil 6120} [Harris 6120?]
	{microprocessor} and dedicated to {wordprocessing}.  The
	DECmate was DEC's original competition for the {IBM PC}.

	The DECmate I was introduced in 1980 as the successor to the
	{WT78}.  The processor ran at 10 MHz, and was housed in a
	{VT100} {CRT} terminal.  It was a very limted model, no {EAE}
	option was available, memory was 32 Kwords.  It used the RX02
	8" dual floppy drive.  Options were the DP278-A and -B
	communication ports and RL278: 1 to 4 {RL02} {cartridge disk}
	drives.

	{(http://telnet.hu/hamster/dr/decmate.html)}.

	[Processor manufacturer?]

	(2003-05-29)

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.

decode

	<cryptography> To apply {decryption}.

	(2004-05-22)

Decomposed Petri Net

	<parallel> (DPN) A {Petri net} that has been split into
	multiple, interconnected nets.  This makes it easier to
	analyse or run the net.

	DPNs are the basis of {concurrency} in {ConC}.

	(2006-11-27)

decompress

	<compression, data> To reverse the effects of data
	{compression}.

	(2001-01-30)

decryption

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

	(1995-05-10)

DECstation

	<computer> A range of {RISC} based {workstations} manufactured
	by {DEC}.

	[Details?]

	(1997-04-29)

DECT

	{Digital Enhanced Cordless Telecommunications}

DECtape

	<hardware, storage> A reel of {magnetic tape} about 4 inches
	in diameter and one inch wide.  Unlike today's {macrotapes},
	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).  DECtape was a
	variant on {LINCtape}.

	In their heyday DECtapes 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.

	(1995-03-16)

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.

	(1994-11-03)

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.

	[{Jargon File}]

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
	{AFJs} (suggested uses included "as a power-off indicator").

	[{Jargon File}]

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.

	(1996-08-10)

deductive database

	<database> A combination of a conventional {database}
	containing {facts}, a {knowledge base} containing {rules}, 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.

	(1995-04-27)

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.

	(1994-12-07)

Deep Blue

	<computer> A super computer developed by researchers at {IBM}
	to explore the use of {parallel processing} to solve complex
	computing problems.  It is known as the first computer to beat
	the current chess World Grand Master.

	Deep Blue started it's life as a PhD project at {Carnegie
	Mellon University} by PhD students Feng-hsiung Hsu and Murray
	Campbell.  Chiptest, as it was known then, consisted of a
	custom designed chip hosted in a {Sun} 3/160 computer.

	The project moved over to IBM in 1989 when Hsu and Campbell
	joined IBM.  {Deep Thought}, as it was known by then, played
	for the first time against Garry Kasparov in the same year.
	The game of two matches was easily won by Kasparov.

	The next match against Kasparov took place in February 1996.
	By then the machine was again renamed, at that time it was
	known as Deep Blue.  It was also heavily re-engineered: it was
	by then running on a 32-node {RS/6000} cluster, each
	containing 8 custom designed chips.  Alas, Kasparov won again.

	The breakthrough finally happened in February 1997: with both
	the algorithm and the raw speed significantly improved, Deep
	Blue beat Kasparov 3.5:2.5.

	{HOME (http://chess.ibm.com)}.

	(1997-06-16)

deep hack mode

	{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.

	[{Jargon File}]

de facto standard

	A widespread consensus on a particular product or {protocol}
	which has not been ratified by any official {standards} 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.

	(1994-10-27)

default

	<data> A value or thing to use when none is specified by the
	user.  Defaults are important for making systems behave in a
	predictable way without the user having to give lots of
	"obvious" details.

	For example: the default {TCP/IP port} for the {HTTP}
	{protocol} is 80, the {Unix} {ls} command does not list files
	whose names begin with ".", the default {number base} in most
	contexts is 10 (decimal), the default {filename extension} for
	{Microsoft Word} documents is ".doc".

	(2009-02-20)

default.htm

	{index.html}

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.

	(1996-05-13)

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.

	(1996-05-13)

defect density

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

	(1996-05-13)

Defense Advanced Research Project Agency

	{Defense Advanced Research Projects Agency}

Defense Advanced Research Projects Agency

	<body> (DARPA, ARPA) An agency of the US Department of Defense
	responsible for the development of new technology for use by
	the military.  DARPA was established in 1958 in response to
	the Soviet launching of Sputnik, with the mission of keeping
	the US's military technology ahead of its enemies.  DARPA is
	independent from other more conventional military R&D and
	reports directly to senior DoD management.  DARPA has around
	240 personnel (about 140 technical) directly managing a $2
	billion budget.  These figures are "on average" since DARPA
	focusses on short (two to four-year) projects run by small,
	purpose-built teams.

	ARPA was its original name, then it was renamed DARPA (for
	Defense) in 1972, then back to ARPA [When?], and then,
	incredibly, back to DARPA again on 1996-03-11!

	ARPA was responsible for funding development of {ARPANET}
	(which grew into the {Internet}), as well as the {Berkeley}
	version of {Unix} and {TCP/IP}.

	{(http://darpa.mil/)}.

	{History (http://foldoc.org/pub/misc/darpa)}.

	(1999-07-17)

Defense Calculator

	{IBM 701}

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}.

	(1994-12-01)

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 numbers}, the administration of the root
	domain, and providing information and support services to the
	{DDN}.  It is also a primary repository for {RFCs}.

	See also {Internet Registry}.

	(1994-12-07)

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}.

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

	(1994-12-01)

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}.

	(1995-06-19)

deferral

	Waiting for quiet on the {Ethernet}.

definite clause

	<logic> A {Horn clause} that has exactly one {positive
	literal}.

	(2000-01-24)

definite sentence

	<logic> A collection of {definite clauses}.

	(2003-12-04)

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 {constraints} and constraint abstractions
	are reused to define new constraints, as the means of
	programming logical variables for parallel coordination.

	{Goffin} is a DCP language.

	(1995-03-28)

deflate

	<file format, compression> A {compression} {standard} derived
	from {LZ77}; it is reportedly used in {zip}, {gzip}, {PKZIP},
	and {png}, among others.

	Unlike {LZW}, deflate compression does not use patented
	compression {algorithms}.

	Used as a verb to mean to compress (not decompress!) a file
	which has been compressed using deflate compression.  The
	opposite, {inflate}, means to decompress data which has been
	deflated.

	Deflate is described in {RFC 1951}.

	(1997-06-21)

deflate compression

	{deflate}

deflate/inflate compression

	{deflate}

deforestation

	<programming> A technique invented by {Phil Wadler} for
	eliminating intermediate data structures built and passed
	between composed functions in {function languages}.

	(1997-06-21)

defrag

	{defragment}

defragment

	<tool, file system> /dee-frag(-ment)'/ (Or "defrag") To
	coalesce files and free space on a {file system}; to reduce
	{fragmentation}.

	(2004-08-19)

defunct process

	{zombie process}

degree

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

degrees of freedom

	<robotics> 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.

	[{Jargon File}]

DEK

	{Data Encryption Key}

Delaunay triangulation

	<mathematics, graphics> (After B. Delaunay) For a {set} S of
	points in the {Euclidean plane}, the unique {triangulation}
	DT(S) of S such that no point in S is inside the circumcircle
	of any triangle in DT(S).  DT(S) is the dual of the {voronoi
	diagram} of S.

delayed control-transfer

	<SPARC, programming> A technique used on the {SPARC} to reduce
	the effect of {pipeline breaks} 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).

	Annulled branches are indicated in SPARC assembler language by
	appending ",A" to the {operation code}.  For example,

	 LOOP: ...
	 CMP    %L0,10
	 BLE,A   LOOP
	 ADD     %L2, %L3, #L4

	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.

	(2001-06-26)

delay instruction

	{delayed control-transfer}

delay slot

	{delayed control-transfer}

delete

	1. <operating system> (Or "erase") 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.

	(1996-12-01)

delimiter

	<character> A {character} or {string} used to separate, or
	mark the start and end of, items of data in, e.g., a
	{database}, {source code}, or {text file}.

	See also: {record}.

	(2001-03-16)

delint

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

	[{Jargon File}]

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.

	(1996-05-29)

Dell Computer Corporation

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

	"From notebooks to networks", their slogan says.

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

	(1996-05-29)

Delphi

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

	[Addresses?]

	(1995-04-06)

	2. <language> {Borland}'s {Object Oriented 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.

	(1996-05-27)

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.

	(1996-05-29)

Delta

	<language>

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

	2. A string-processing language with single-character commands
	from {Tandem Computers}.

	3. A 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].

	4. A {COBOL} generating language produced by {Delta Software
	Entwicklung GmbH (http://delta-software.de/)}.

	(2000-08-02)

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".

	[{Jargon File}]

	(2000-08-02)

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 goals} 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

	(1997-02-20)

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}.

	(1995-02-16)

demand paged

	{demand paging}

demand paging

	<memory management> 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}.

	{Prepaging} is generally more efficient than demand paging.

	(1998-04-24)

DeMarco

	Tom DeMarco proposed a form of {structured analysis}.

	(1995-02-16)

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.

	[{Jargon File}]

	(1994-12-07)

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].

	(1994-12-07)

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}.

	[{Jargon File}]

	(1994-10-27)

De-Militarised Zone

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

	Compare {red zone}.

	(1995-02-23)

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.

	[{Jargon File}]

	(1994-11-04)

demodulate

	{demodulation}

demodulation

	<communications> To recover the {signal} from the {carrier}.
	For example, in a radio broadcast using {amplitude modulation}
	the audio signal is transmitted as the mean amplitude of a
	radio-frequency carrier so demodulation requires a circuit
	which measures the amplitude and filters out the carrier.
	There are many other kinds of {modulation} and corresponding
	demodulation.

	(1998-07-29)

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 {apps} 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}).

	[{Jargon File}]

	(1995-02-22)

demon

	1. <operating system> (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 rules} as demons.  Whenever a new
	piece of knowledge was added, various demons would activate
	(which demons depends on the particular piece of data) and
	would create additional pieces of knowledge by applying their
	respective inference rules to the original piece.  These new
	pieces could in turn activate more demons as the inferences
	filtered down through chains of logic.  Meanwhile, the main
	program could continue with whatever its primary task was.
	This is similar to the {triggers} used in {relational
	databases}.

	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.

	Walt Bunch believes the term comes from the demons in Oliver
	Selfridge's paper "Pandemonium", MIT 1958, which was named
	after the capital of Hell in Milton's "Paradise Lost".
	Selfridge likened neural cells firing in response to input
	patterns to the chaos of millions of demons shrieking in
	Pandemonium.

	2. <company> {Demon Internet} Ltd.

	3. A {program generator} for {differential equation} problems.

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

	[{Jargon File}]

	(1998-09-04)

Demon Internet Ltd.

	<company> One of the first company to provide public
	{Internet} access in the UK.

	The staff of Demon Systems Ltd., an established software
	house, started Demon Internet on 1992-06-01 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.

	Demon link to {Sprintlink} in the United States making them
	totally independent.  They peer with {EUNet} and {PIPEX} to
	ensure good connectivity in Great Britain as well as having
	links 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 provide 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 {PoPs} are being added
	continuously.

	Subscribers get allocated an {Internet Address} and can choose
	a {hostname} within the demon.co.uk {domain}.  They can have
	any number of e-mail address at that host.

	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 {PoPs} will be phased out and
	replaced with others during 1995.

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

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

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

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

	Telephone: +44 (181) 349 0063.

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

	(1994-11-08)

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).

	(1995-12-14)

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}.

	(1994-11-04)

Denis Howe

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

	(2008-03-26)

Dennis Ritchie

	<person> 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}.

	(2008-03-26)

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}.

	(1996-08-21)

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].

	(1996-10-13)

Department of Defense

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

	(1996-05-29)

Department of Defense Network

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

	(1994-12-07)

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.

	[{Jargon File}]

dependability

	{software reliability}

dependable software

	{software reliability}

Deployment Descriptor

	<programming> (DD) A {J2EE} configuration file.

	(2005-01-26)

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}.

	[{Jargon File}]

	(1995-04-19)

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}.

	(1995-04-19)

deque

	{double-ended queue}

dequeue

	{queue}

DER

	{Distinguished Encoding Rules}

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 yield 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}.

	At first sight the word "dereference" might be thought to mean
	"to cause to stop referring" but its meaning is well
	established in jargon.

	(1998-12-15)

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.

	[{Jargon File}]

derived class

	<programming> (Or "subclass") In {object-oriented}
	programming, a {class} that is derived from a {base class} by
	{inheritance}.  The derived class contains all the features of
	the base class, but may have new features added or redefine
	existing features.

	The synonym "subclass" is possibly confusing since the derived
	class has a superset of the base class's features.

	Compare {derived type}.

	(2001-09-14)

derived type

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

	Compare {derived class}.

	(2001-09-14)

DES

	{Data Encryption Standard}

descender

	<text> A lowercase letter that extends below the base line,
	such as "g", "j", or "p".  Also used to denote the part of the
	letter extending below the base line.  Compare {ascender}.

	(1998-03-27)

descent function

	If a {recursive} function is of the form

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

	then d is known as the descent function.

Descriptive Intermediate Attributed Notation for Ada

	<language> (DIANA) A formerly {de facto standard}
	{intermediate language} for {Ada} programs, developed by Goos
	and Wulf at {CMU} in January 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}.  At the present (2001) it is no longer
	used by the major ADA compilers

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

	(2001-09-15)

Descriptive Top-Level Specification

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

	(1994-11-11)

descriptor

	<operating system> An integer, string or other small data
	value which refers to one of several objects allocated to a
	program by the {operating system}, usually the {kernel}.  A
	common example is a {Unix} {file descriptor} which is a small
	integer that identifies an I/O channel.  Another example is a
	reference to an area of memory (e.g. {shared memory}).

	Compare {capability}.

	(1998-02-06)

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].

	(1996-12-08)

Design In Real Time

	<programming> (Dirt) A user {interface builder} for the {X
	Window System} by R. Hesketh.

	(1994-12-07)

design pattern

	<programming> A description of an {object-oriented design}
	technique which names, abstracts and identifies aspects of a
	design structure that are useful for creating an
	object-oriented design.  The design pattern identifies
	{classes} and {instances}, their roles, collaborations and
	responsibilities.  Each design pattern focuses on a particular
	object-oriented design problem or issue.  It describes when it
	applies, whether it can be applied in the presence of other
	design constraints, and the consequences and trade-offs of its
	use.

	{Home
	(http://st-www.cs.uiuc.edu/users/patterns/patterns.html)}.

	["Design Patterns: Elements of Reusable Object-Oriented
	Software", Erich Gamma, Richard Helm, Ralph Johnson, and John
	Vlissides].

	(1997-07-21)

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.

	(1996-12-08)

Design System language

	J. Gaffney, Evans & Sutherland 1976.  Interpretive FORTH-like
	language for 3d 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}.

	[{Jargon File}]

	(1996-05-13)

desktop

	1. <operating system> In a {WIMP} {graphical user interface},
	the visual representation of a real desktop (the top surface
	of a piece of furniture) with documents, folders and a rubbish
	bin arranged on it.  The user manipulates files on the
	computer by using a {mouse} to {click} and {drag} their
	representations ({icons}) on the desktop.

	The WIMP interface and desktop metaphor was invented at {Xerox
	PARC} and popularised by the {Apple Macintosh}.

	2. <computer> {desktop computer}.

	(2007-09-12)

desktop database

	{Macintosh file system}

Desktop Management Interface

	<standard, operating system> (DMI) A {specification} from the
	{Desktop Management Task Force} (DMTF) that establishes a
	standard {framework} for managing networked computers.  DMI
	covers {hardware} and {software}, {desktop} systems and
	{servers}, and defines a model for filtering events and
	describing {interfaces}.

	DMI provides a common path for technical support, IT managers,
	and individual users to access information about all aspects
	of a computer - including {processor} type, installation date,
	attached {printers} and other {peripherals}, power sources,
	and maintenance history.  It provides a common format for
	describing products to aid vendors, systems integrators, and
	end users in enterprise desktop management.

	DMI is not tied to any specific hardware, operating system, or
	management protocols.  It is easy for vendors to adopt,
	mappable to existing management protocols such as {Simple
	Network Management Protocol} (SNMP), and can be used on
	non-network computers.

	DMI's four components are:

	Management Information Format (MIF) - a text file containing
	information about the hardware and software on a computer.
	Manufacturers can create their own MIFs specific to a
	component.

	Service layer - an OS add-on that connects the management
	interface and the component interface and allows management
	and component software to access MIF files.  The service layer
	also includes a common interface called the local agent, which
	is used to manage individual components.

	Component interface (CI) - an {application program interface}
	(API) that sends status information to the appropriate MIF
	file via the service layer.  Commands include Get, Set, and
	Event.

	Management interface (MI) - the management software's
	interface to the service layer.  Commands are Get, Set, and
	List.

	CI, MI, and service layer drivers are available on the
	Internet.  {Intel}'s {LANDesk Client Manager} (LDCM) is based
	on DMI.

	Version: 2.0s (as of 2000-01-19).

	{(http://dmtf.org/spec/dmis.html)}.

	{Sun overview
	(http://sun.com/solstice/products/ent.agents/presentations/sld014.html)}.

	(2000-01-19)

Desktop Management Task Force

	<body> (DMTF) The industry consortium that develops, supports,
	and maintains standards for systems management of {PC} systems
	and products, to reduce total cost of ownership.  These
	include the {Desktop Management Interface} (DMI), the
	most-widely used management standard today.

	The DMTF is participating in an industry effort to create a
	standard for management over the {Internet}.  They are
	defining an {object-oriented} {Common Information Model}
	(CIM).

	{(http://dmtf.org/)}.

	(2000-01-19)

desktop manager

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

	(1994-12-07)

desktop publisher

	{desktop publishing}

desktop publishing

	<text, application> (DTP) Using computers to lay out text and
	graphics for printing in magazines, newsletters, brochures,
	etc.  A good DTP system provides precise control over
	templates, styles, fonts, sizes, colour, paragraph formatting,
	images and fitting text into irregular shapes.

	Example programs include {FrameMaker}, {PageMaker}, {InDesign}
	and {GeoPublish}.

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

	{Usenet} newsgroup: {news:comp.text.desktop}.

	(2005-03-14)

DESQview

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

destructor

	<programming> A {function} provided by a {class} in {C++} and
	some other {object-oriented languages} to delete an object,
	the inverse of a {constructor}.

	(1998-04-28)

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].

	(1994-12-07)

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.

	(1995-09-22)

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}).

	(1996-05-03)

DETOL

	<language> {Directly Executable Test Oriented
	Language}.

	(1995-09-29)

developer

	{programmer}

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.

	(1996-05-13)

development environment

	<programming, tool> An integrated suite of {tools} to aid the
	{development} of {software} in a particular {language} or for
	a particular {application}.  Usually, this consists of a
	{compiler} and {editor} and may also include one or more of a
	{debugger}, {profiler}, and {source code} manager.

	See also: {IDE}.

	(1999-08-01)

device

	{peripheral}

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?]

	(1996-08-20)

Device Control 1

	{Control-Q}

Device Control 2

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

	(1996-06-28)

Device Control 3

	{Control-S}

Device Control 4

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

	(1996-06-28)

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
	{registers} 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.

	(1994-10-27)

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.

	(1996-09-20)

Device Manager

	<operating system> The {Microsoft Windows} {control panel}
	{applet} used to enable, disable and configure the hardware on
	which Windows is running.  You can launch Device Manager via
	the Control Panel/System or directly with:

	 rundll32.exe devmgr.dll DeviceManager_Execute

	(2008-04-16)

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}).

	[{Jargon File}]

	(1996-12-03)

/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}.

	[{Jargon File}]

devo

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

	(1994-11-04)

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

	<benchmark> 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://ftp.nosc.mil/pub/aburto/)}.

	{Results
	(http://performance.netlib.org/performance/html/dhrystone.data.col0.html)}.

	(2002-03-26)

DHSD

	{Duplex High Speed Data}

DHTML

	{Dynamic HTML}

Dialled Number Identification Service

	<communications> (DNIS) A service that tells the recipient of
	a telephone call the telephone number dialled by the person
	making the call.  It is used by call centres hosting multiple
	numbers, voicemail systems and ISPs offering shared dial-in
	services.

	Compare {ANI}, {Caller ID}.

	(2005-02-09)

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 {modems}.

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}

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}".

	[{Jargon File}]

	(1995-03-28)

Dick Size War

	{penis war}

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.

	(1995-03-29)

dictionary

	1. {data dictionary}.

	2. {associative array}.

	3. {Free On-line Dictionary of Computing}.

Dictionary APL

	{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}.

	[{Jargon File}]

Dictionary of Algorithms and Data Structures

	<algorithm> (DADS) A dictionary by Paul Black.

	{(http://www.aprendelo.com/rec/dictionary-algorithms-and-data-structures.html)}.

	(2001-03-26)

Dictionary of Computing

	{Free On-line Dictionary of Computing}

DID

	{Direct Inward Dialing}

diddle

	<jargon> (US) To work in a casual manner, or the result of such
	work.  (In the UK "to diddle someone" means to cheat them).

	"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."

	Similar to {twiddle}, less purposeful than {tweak}.

	[{Jargon File}]

	(2013-08-18)

Didot point

	<unit, text> A variant of the {point}, equal to 0.3759 mm, or
	1/72 of a French Royal inch (27.07 mm), or about 1/68 inch.
	Didot points are used in Europe.  This unit is named after the
	French printer François Ambroise Didot (1730 - 1804) who
	defined the "point-based" typographical measurement system.

	(2002-03-11)

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> Plural: dies.  An unpackaged {integrated
	circuit}.

	[{Jargon File}]

	(2002-12-09)

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".

	[{Jargon File}]

	(1996-05-28)

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}.

	[{Jargon File}]

	(1995-02-10)

Difference Engine

	<computer, history> {Charles Babbage}'s design for the first
	automatic mechanical calculator.  The Difference Engine was a
	special purpose device intended for the production of
	mathematical tables.  Babbage started work on the Difference
	Engine in 1823 with funding from the British Government.  Only
	one-seventh of the complete engine, about 2000 parts, was
	built in 1832 by Babbage's engineer, Joseph Clement.  This was
	demonstrated successfully by Babbage and still works
	perfectly.  The engine was never completed and most of the
	12,000 parts manufactured were later melted for scrap.

	It was left to Georg and Edvard Schuetz to construct the first
	working devices to the same design which were successful in
	limited applications.  The Difference Engine No. 2 was finally
	completed in 1991 at the Science Museum, London, UK and is on
	display there.

	The engine used gears to compute cumulative sums in a series
	of {registers}: r[i] := r[i] + r[i+1].  However, the addition
	had the {side effect} of zeroing r[i+1].  Babbage overcame
	this by simultaneously copying r[i+1] to a temporary register
	during the addition and then copying it back to r[i+1] at the
	end of each cycle (each turn of a handle).

	{Difference Engine at the Science Museum
	(http://nmsi.ac.uk/on-line/treasure/plan/2ndcomp.htm#babbage)}.

	(1997-09-29)

difference equation

	<mathematics> 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.

	(1995-02-10)

differential backup

	<operating system> A kind of {backup} that copies all {files}
	that have changed since the last {full backup}.  Each
	differential backup will include all files in previous
	differential backups since the full backup so to restore a
	version of a file, you only need to search the full backup and
	the relevant differential backup.

	Some systems support differential backup by associating an
	"Archive" flag with each file and setting this flag whenever
	the file is modified to indicate that it should be included in
	the next backup.  A differential backup does not change this
	flag, whereas an {incremental backup} resets it.

	(2004-03-05)

differential driver

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

	(1995-03-14)

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 receiver subtracts the inverted signal from
	the normal signal to yield 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 converters} and the subtraction performed
	digitally.

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

	Opposite: {single ended}.

	(1995-03-08)

Diffie-Hellman

	<cryptography> A {public-key encryption} {key exchange
	algorithm}.

	{FAQ (http://rsa.com/rsalabs/faq/html/3-6-1.html)}.

	(1999-03-15)

digerati

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

	[Newsweek, March 1995?].

	(1995-05-07)

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 readers} 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.

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

	(1995-04-10)

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}.

	[{Jargon File}]

Digital

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

	(1995-12-18)

digital

	<data> A description of {data} which is stored or transmitted
	as a sequence of discrete symbols from a finite set, most
	commonly this means {binary} data represented using electronic
	or electromagnetic signals.

	The opposite is {analogue}.

	(1998-10-28)

digital audio

	<multimedia, file format> A sequence of discrete samples taken
	from a continuous sound ({audio}) waveform.  Tens of thousands
	of samples are taken each second.  Each sample represents the
	intensity of the sound pressure wave at that instant.  Apart
	from the sampling frequency, the other parameter is the
	digital encoding of each sample including the number of {bits}
	used.  The encoding may be linear, logarithmic or {mu-law}.

	Digital audio is typically created by taking 16-bit samples
	over a spectrum of 44.1 thousand cycles per second (kHz), this
	means that CD quality sound requires 1.4 million bits of data
	per second.  Digital telephone systems use lower sample rates.

	{Filename extension}: .au ({Unix}), .snd ({MS-DOS}, {MS
	Windows}).

	See also {Audio IFF}, {MP3}, {wav}.

	{Usenet} newsgroups: alt.binaries.sounds.*.

	A {FAQ} on audio file formats is available.  {Part 1
	(ftp://ftp.cwi.nl/pub/audio/AudioFormats.part1)}, {Part 2
	(ftp://ftp.cwi.nl/pub/audio/AudioFormats.part2)}.

	(1999-07-30)

Digital Audio Tape

	<storage, music> (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 discs}, 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.

	(1995-02-09)

digital camera

	<graphics, hardware> A camera that captures and stores still
	images as {digital} data instead of on photographic film.

	The first digital cameras became available in the early
	1990s[?].

	[Which and when was the first?]

	(2000-08-10)

digital carrier

	<hardware, communications> A medium which can carry {digital}
	signals; broadly equivalent to the {physical layer} of the
	{OSI} 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.

	(1996-03-31)

digital certificate

	<communications, security> An {attachment} to an {electronic
	mail} message used for security purposes, e.g. to verify that
	a user sending a message is who he or she claims to be, and to
	provide the receiver with the means to encode a reply.

	An individual wishing to send an encrypted message applies for
	a digital certificate from a {certificate authority} (CA).
	The CA issues an encrypted digital certificate containing the
	applicant's {public key} and a variety of other identification
	information.  The CA makes its own public key readily
	available on the {Internet}.

	The recipient of an encrypted message uses the CA's public key
	to decode the digital certificate attached to the message,
	verifies it as issued by the CA and then obtains the sender's
	public key and identification information held within the
	certificate.

	(2006-05-27)

digital computer

	<computer> A {computer} that represents numbers and other data
	using discrete internal states, in contrast to the
	continuously varying quantities used in an {analog computer}.

	Some of the fundamental ideas behind the digital computer were
	proposed by {Alan Turing} between 1936 and 1938.  The design
	of the {Atanasoff-Berry Computer} (1937-1942) included some of
	the important implementation details but the first digital
	computer to successfully run real programs was the {Z3}
	(1941).  {ENIAC} (1943-1946) was the first electronic digital
	computer but was only programmable by manual rewiring or
	switches.

	(2003-10-01)

Digital Control System

	<system> (DCS) A {digital computer} used for {real-time}
	control of a {dynamic system}, usually in an industrial
	environment, possibly as part of a {Supervisory Control and
	Data Acquisition} (SCADA) system.

	A DCS samples {feedback} from the system under control and
	modifies the control signals in an attempt to achieve some
	desired behaviour.

	Analysis of such digital-analogue feedback systems can involve
	mathematical methods such as {difference equations}, {Laplace
	transforms}, {z transfer functions}, {state space models} and
	{state transition matrices}.

	(2004-08-22)

digital dashboard

	<software> A personalised desktop {portal} that focuses on
	{business intelligence} and {knowledge management}.

	{Microsoft}'s version has a launch screen including stock
	quotes, voice mail and e-mail messages, a calendar, a weather
	forecast, traffic information, access to news feeds, customer
	and sales data, and Internet conferences.  A digital dashboard
	might previously have been thought of as an executive
	information system.  In the future, digital dashboards could
	be available on {personal digital assistants} and cellular
	phones.

	["Gates pitches 'digital dashboards' to bevy of top CEOs", Bob
	Trott, pub. InfoWorld Electric, 1999-05-19].

	(1999-09-14)

Digital Data Service

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

	(1995-02-28)

digital electronics

	<electronics> The implementation of {two-valued logic} using
	electronic {logic gates} such as {and gates}, {or gates} and
	{flip-flops}.  In such circuits the logical values true and
	false are represented by two different {voltages}, e.g. 0V for
	false and +5V for true.  Similarly, numbers are normally
	represented in {binary} using two different voltages to
	represented zero and one.

	Digital electronics contrasts with {analogue} electronics
	which represents continuously varying quantities like sound
	pressure using continuously varying voltages.

	Digital electronics is the foundation of modern computers and
	{digital communications}.  Massively complex digital logic
	circuits with millions of gates can now be built onto a single
	{integrated circuit} such as a {microprocessor} and these
	circuits can perform millions of operations per second.

	(2006-01-14)

Digital Enhanced Cordless Telecommunications

	<communications, standard> (DECT, formerly ".. European ..") A
	{standard} developed by the {European Telecommunication
	Standard Institute} from 1988, governing pan-European {digital
	mobile telephony}.  DECT covers wireless {PBXs}, {telepoint},
	residential {cordless telephones}, wireless access to the
	{public switched telephone network}, Closed User Groups
	(CUGs), {Local Area Networks}, and wireless {local loop}.

	DECT defines only the radio connection between two points and
	can be used for remote access to public and private networks.
	Other mobility standards, such as {GSM}, {TACS}, and {DCS
	1800} add the necessary switching, signaling, and management
	functions that are not specified by DECT.

	The DECT Common Interface radio standard is a {multicarrier}
	{time division multiple access}, {time division duplex}
	(MC-TDMA-TDD) radio transmission technique using ten {radio
	frequency} channels from 1880 to 1930 MHz, each divided into
	24 time slots of 10ms, and twelve {full-duplex} accesses per
	{carrier}, for a total of 120 possible combinations.

	A DECT base station (an RFP, Radio Fixed Part) can transmit
	all 12 possible accesses (time slots) simultaneously by using
	different frequencies or using only one frequency.  All
	signaling information is transmitted from the RFP within a
	multiframe (16 frames).  {Voice} signals are digitally encoded
	into a 32 kbit/s signal using {Adaptive Differential Pulse
	Code Modulation}.

	The {handover} process is requested autonomously by the
	portable terminal and the Radio Fixed Parts, according to the
	carrier signal levels.  A "Generic Access Profile" defines a
	minimum set of requirements for the support of speech
	telephony.

	{(http://italtel.it/catalog/data/inglese/capc_5.htm)}.

	(1999-04-13)

digital envelope

	<cryptography>

	{(http://rsa.com/rsalabs/faq/html/2-2-4.html)}.

	[Summary?]

	(1999-03-16)

Digital Equipment Computer Users Society

	<body, DEC> (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.

	(1995-02-08)

Digital Equipment Corporation

	<company, hardware> (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.

	The first PC from DEC was a {CP/M} computer called {Rainbow},
	announced in 1981-82.

	DEC was the technological leader of the minicomputer era
	(roughly 1967 to 1987), but its failure to embrace
	{microcomputers} 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 systems} 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).

	DEC was taken over by {Compaq Computer Corporation} in 1998.
	In 2002 Compaq was in turn acquired by {Hewlett-Packard} who
	sold off parts of Digital Equipment Corporation to {Intel} and
	absorbed the rest.  The Digital logo is no longer used.

	(2012-07-29)

Digital Equipment Corporation Network

	<networking> (DECNET) {Ethernet} software used on {DEC}
	computers such as the {Vax}.

	[More details?]

	(1999-06-03)

Digital European Cordless Telecommunications

	{Digital Enhanced Cordless Telecommunications}

Digital Express Group, Inc.

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

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

	(1994-10-25)

Digital Lempel Ziv 1

	<algorithm> (DLZ1) A {Lempel-Ziv compression} {algorithm}
	which 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.

	DLZ1 is used on {Digital Linear Tape}.

	(1997-04-05)

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)}.

	(1995-02-23)

Digital Linear Tape

	<storage> (DLT) A kind of {magnetic tape} drive
	originally developed by {DEC} and now marketed by {Quantum}.

	DLT drives implement the {Digital Lempel Ziv 1} (DLZ1)
	{compression} {algorithm} in a combination of {hardware} and
	{firmware}.  They use a popular chip by {Stac} (now {hi/fn})
	to do the string searching.  Counting, sorting and {Huffman
	coding} are done in firmware (with hardware support for the
	Huffman algorithm?).

	In April 1997 DLT drives can transfer 5 {megabytes} per second
	and can store 35 {gigabytes} on a single cartridge.
	Compression might roughly double these figures.

	(1997-04-05)

digital logic

	{two-valued logic}

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.

	(1997-02-12)

Digital Radio Mondiale

	<communications> (DRM) A form of {monaural} digital broadcast
	using {carrier} frequencies below 30 MHz.  DRM uses {MPEG-4
	AAC Main Profile} and {SBR} at data rates of 16-25 kbps.

	{(http://drm.org/)}.

	(2001-12-20)

Digital Research

	<company> The company which developed {CP/M}, the {operating
	system} used on many of the first generation 8-bit
	{microprocessor}-based {personal computers}.  Digital Research
	also produced {DR-DOS}.

	Address: Santa Cruz, CA, USA.

	(1998-03-17)

Digital Rights Management

	<legal> (DRM) Any technology used to limit the use of
	{software}, music, movies or other digital data.  This
	generally relies on some interaction between the media and the
	system that plays it.  For example, video {DVDs} usually
	include a {region code}.  If this does not match the player's
	region code, the player will refuse to play the disc.

	(2006-02-02)

digital service unit

	{data service unit}

Digital Signal Processing

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

	(1994-12-07)

Digital Signal Processing Language

	<language> (DSPL) A {C}-derived {DSP} language.

	["The Programming Language DSPL", A. Schwarte & H. Hanselmann,
	Proc PCIM 90, 1990].

	(1994-12-01)

digital signature

	<cryptography> 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.

	(1995-02-07)

digital signatures

	{digital signature}

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.

	(1995-11-16)

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].

	(1996-10-13)

Digital Simultaneous Voice and Data

	<communications> (DSVD) A technique supported by some {modems}
	for multiplexing compressed speech with digital data for
	transmission over a normal telephone line.

	DSVD isn't standardised yet, so generally you have to have the
	same make of modem at both ends for it to work.

	[How does it work?  Which modems?  References?]

	(1997-06-05)

DIGITAL Standard MUMPS

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

	(1995-01-10)

Digital Subscriber Line

	<communications, protocol> (DSL, or Digital Subscriber Loop,
	xDSL - see below) A family of {digital} {telecommunications}
	{protocols} designed to allow high speed data communication
	over the existing {copper} telephone lines between end-users
	and telephone companies.

	When two conventional {modems} are connected through the
	telephone system ({PSTN}), it treats the communication the
	same as voice conversations.  This has the advantage that
	there is no investment required from the telephone company
	(telco) but the disadvantage is that the {bandwidth} available
	for the communication is the same as that available for voice
	conversations, usually 64 kb/s ({DS0}) at most.  The
	{twisted-pair} copper cables into individual homes or offices
	can usually carry significantly more than 64 kb/s but the
	telco needs to handle the signal as digital rather than
	analog.

	There are many implementation of the basic scheme, differing
	in the communication {protocol} used and providing varying
	{service levels}.  The {throughput} of the communication can
	be anything from about 128 kb/s to over 8 Mb/s, the
	communication can be either symmetric or asymmetric (i.e. the
	available bandwidth may or may not be the same {upstream} and
	{downstream}).  Equipment prices and service fees also vary
	considerably.

	The first technology based on DSL was {ISDN}, although ISDN is
	not often recognised as such nowadays.  Since then a large
	number of other protocols have been developed, collectively
	referred to as xDSL, including {HDSL}, {SDSL}, {ADSL}, and
	{VDSL}.  As yet none of these have reached very wide
	deployment but wider deployment is expected for 1998-1999.

	{(http://cyberventure.com/~cedpa/databus-issues/v38n1/xdsl.html)}.

	{2Wire DSL provider lookup (http://2Wire.com/)}.

	["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].

	(2001-04-30)

Digital Subscriber Line Access Module

	<networking, hardware> (DSLAM, or Digital Subscriber Line
	Access Multiplexer) The generic term for the {Central Office}
	(CO) equipment where x{DSL} lines are terminated.  The
	multiple {DSL} signals may be {multiplexed} onto a {wideband}
	channel such as {ATM}.

	(2000-04-05)

Digital Subscriber Loop

	{Digital Subscriber Line}

Digital Switched Network

	<communications> (DSN) The completely digital version of the
	{PSTN}.

	(1997-07-18)

Digital to Analog Converter

	<electronics> (DAC) A device which takes a digital value and
	outputs a voltage which is proportional to the input value.

	Typical uses include digital generation of audio signals or
	conversion of a {bitmap image} to a signal to drive a {CRT}.

	(1998-02-15)

Digital Versatile Disc

	<storage> (DVD, formerly "Digital Video Disc") An optical
	storage medium with improved capacity and bandwidth compared
	with the {Compact Disc}.  DVD, like CD, was initally marketed
	for entertainment and later for computer users.  [When was it
	first available?]

	A DVD can hold a full-length film with up to 133 minutes of
	high quality video, in {MPEG-2} format, and audio.

	The first DVD drives for computers were read-only drives
	("DVD-ROM").  These can store 4.7 GBytes - over seven times
	the storage capacity of CD-ROM.  DVD-ROM drives read existing
	{CD-ROMs} and music CDs and are compatible with installed
	sound and video boards.  Additionally, the DVD-ROM drive can
	read DVD films and modern computers can decode them in
	software in {real-time}.

	The DVD video standard was announced in November 1995.
	Matshusita did much of the early development but Philips made
	the first DVD player, which appeared in Japan in November
	1996.  In May 2004, Sony released the first dual-layer drive,
	which increased the disc capacity to 8.5 GB.  Double-sided,
	dual-layer discs will eventually increase the capacity to 17
	GB.

	Write-once DVD-R ("recordable") drives record a 3.9GB DVD-R
	disc that can be read on a DVD-ROM drive.  Pioneer released
	the first DVD-R drive on 1997-09-29.

	By March 1997, {Hitachi} had released a rewritable DVD-RAM
	drive (by false analogy with {random-access memory}).  DVD-RAM
	drives read and write to a 2.6 GB DVD-RAM disc, read and
	write-once to a 3.9GB DVD-R disc, and read a 4.7 GB or 8.5 GB
	DVD-ROM.  Later, DVD-RAM discs could be read on DVD-R and
	DVD-ROM drives.

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

	(2006-01-07)

Digital Versatile Disk Random Access Memory

	<storage> (DVD-RAM) Rewritable {DVD} media that is recordable
	on both sides, giving up to 9.6{GB} of storage.  A drive can
	record to disk and read from it at the same time, so the term
	{full duplex} is often used.  There are two general types of
	media: traditional discrete disk in DVD or Jewel case, and one
	in a permanent case like a large floppy; the disk remains in
	the case, and the case goes into the drive.  The former can
	sometimes be read by regular DVD drives; the latter obviously
	cannot.

	{Technical details, somewhat dated, at burnworld.com
	(http://burnworld.com/dvd/primer/dvdram.htm)}.

	(2005-01-26)

Digital Video Disc

	{Digital Versatile Disc}

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].

	(1994-12-07)

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.

	[{Jargon File}]

DIL

	{Dual In-Line Package}

Dilbert

	<humour> 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.

	See also: {BOFH}.

	{(http://unitedmedia.com/comics/dilbert/)}.

	(1996-10-11)

Dilberted

	<jargon> To be exploited and oppressed by your boss.  Derived
	from the experiences of {Dilbert}, the geek-in-hell comic
	strip character.  "I've been dilberted again.  The old man
	revised the specs for the fourth time this week."

	(1997-03-29)

DIM

	{DIM statement}

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].

	(1996-01-07)

DIMM

	{Dual In-Line Memory Module}

DIM statement

	<programming> (From "dimension") A {keyword} in most versions
	of the {BASIC} programming language that declares the size of
	an {array}.  E.g.

		DIM A(100)

	declares a one-dimensional array with 101 numeric elements
	(including A(0)).

	{Visual Basic} uses the DIM (or "Dim") statement for any
	variable declaration, even {scalars}, e.g.

	Dim DepartmentNumber As Integer

	which declares a single (scalar) variable of type Integer.

	(1999-03-26)

DIN

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

DIN-8

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

	(1996-12-08)

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."

	[{Jargon File}]

Dining Philosophers Problem

	<parallel> (DPP) A problem introduced by {Dijkstra} concerning
	resource allocation between processes.  The DPP is a model and
	universal method for testing and comparing theories on
	resource allocation.  Dijkstra hoped to use it to help create
	a layered {operating system}, by creating a machine which
	could be consider to be an entirely {deterministic}
	{automaton}.

	The problem consists of a finite set of processes which share
	a finite set of resources, each of which can be used by only
	one process at a time, thus leading to potential {deadlock}.

	The DPP visualises this as a number of philosophers sitting
	round a dining table with a fork between each adjacent pair.
	Each philosopher may arbitrarily decide to use either the fork
	to his left or the one to his right but each fork may only be
	used by one philosopher at a time.

	Several potential solutions have been considered.

	Semaphores - a simple, but unfair solution where each
	resources is a {binary semaphore} and additional semaphores
	are used to avoid deadlock and/or {starvation}.

	Critical Regions - each processor is protected from
	interference while it exclusively uses a resource.

	Monitors - the process waits until all required resources are
	available then grabs all of them for use.

	The best solution allows the maximum parallelism for any
	number of processes (philosophers), by using an array to track
	the process' current state (i.e. hungry, eating, thinking).
	This solution maintains an array of semaphores, so hungry
	philosophers trying to acquire resources can block if the
	needed forks are busy.

	(1998-08-09)

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}.

	[{Jargon File}]

	(1994-10-31)

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].

	(1994-10-31)

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 {minicomputers} and {mainframes}, 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}.

	[{Jargon File}]

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}.

	(1995-11-17)

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" (an acronym for 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 1986 (this was when the phrase "dinosaurs mating" was
	coined).  In 1991 {AT&T} absorbed NCR, only to spit it out
	again in 1996.  Unisys bought {Convergent Technologies} in
	1988 and later others.

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

	[More dates?]

	[{Jargon File}]

	(1998-07-10)

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}.

	(1995-03-14)

Diophantine equation

	<mathematics> Equations with {integer} coefficients to which
	integer solutions are sought.  Because the results are
	restricted to integers, different {algorithms} must be used
	from those which find {real} solutions.

	[More details?]

	(1998-08-27)

DIP

	1. {Dual In-line Package}.

	2. {Document Image Processing}.

diplex

	<communications> (From {telegraphy}) Two simultaneous
	transmissions in one direction.

	Compare: {duplex}.

	(2000-03-30)

DIPP

	{Dual Inline Pin Package}

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.

	(1995-03-01)

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).

	(1995-04-12)

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.

	(1994-12-07)

directed graph

	(digraph) A graph with one-way edges.

	See also {directed acyclic graph}.

	(1994-11-11)

Directed Oc

	<language> (Doc) A language related to {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].

	(1999-10-08)

directed set

	<theory> 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}.

	(1994-11-11)

Direct Inward Dialing

	<communications> (DID) A service offered by telephone
	companies which allows the last 3 or 4 digits of a phone
	number to be transmitted to the destination {exchange}.

	For example, a company could have 10 incoming lines, all with
	the number 234 000.  If a caller dials 234 697, the call is
	sent to 234 000 (the company's exchange), and the digits 697
	are transmitted.  The company's exchange then routes the call
	to extension 697.  This gives the impression of 1000 direct
	dial lines, whereas in fact there are only 10.  Obviously,
	only 10 at a time can be used.

	This system is also used by {fax servers}.  Instead of an
	exchange at the end of the 234 000 line, a computer running
	fax server software and {fax modem} cards uses the last three
	digits to identify the recipient of the fax.  This allows 1000
	people to have their own individual fax numbers, even though
	there is only one 'fax machine'.

	{Dictionary of PC Hardware and Data Communications Terms
	(http://ora.com/reference/dictionary/terms/D/Direct_Inward_Dialing.htm)}.

	(1997-06-29)

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).

	(1995-12-23)

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].

	(1995-09-29)

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.

	(1996-08-23)

directories

	{directory}

directory

	<file system> A node in a hierarchical {file system} which
	contains zero or more other nodes - generally, {files} or
	other directories.

	The term "folder" is sometimes used in systems such as the
	{Macintosh} or {Microsoft Windows} in which directories are
	traditionally depicted as folders (like small briefcases).

	(2007-02-21)

Directory Access Protocol

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

directory service

	<database, networking> A structured repository of information
	on people and resources within an organisation, facilitating
	management and communication.

	On a {LAN} or {WAN} the directory service identifies all
	aspects of the {network} including users, software, hardware,
	and the various rights and policies assigned to each.  As a
	result applications can access information without knowing
	where a particular resource is physically located, and users
	interact oblivious to the network {topology} and {protocols}.

	To allow {heterogeneous networks} to share directory
	information the {ITU} proposed a common structure called
	{X.500}.  However, its complexity and lack of seamless
	{Internet} support led to the development of {Lightweight
	Directory Access Protocol} (LDAP) which has continued to
	evolve under the aegis of the {IETF}.  Despite its name {LDAP}
	is too closely linked to {X.500} to be "lightweight".

	{LDAP} was adopted by several companies such as {Netscape
	Communications Corporation} (Netscape Directory Server) and
	has become a {de facto standard} for directory services.
	Other LDAP compatible offerings include {Novell, Inc.}'s
	{Novell Directory Services} (NDS) and {Microsoft
	Corporation}'s {Active Directory}.  The Netscape and Novell
	products are available for {Windows NT} and {Unix}
	{platforms}.  {Novell Directory Services} also run on Novell
	platforms. {Microsoft Corporation}'s {Active Directory} is an
	integral part of {Microsoft's Windows 2000} and although it
	can interface with directory services running on other systems
	it is not available for other platforms.

	(2001-01-02)

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.

	(1994-12-07)

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.

	(1994-12-07)

DirectX

	<programming, hardware> A {Microsoft} programming interface
	{standard}, first included with {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.  Version 5 was
	current at 1998-02-01.  Version 8.1 is included in {Windows
	XP}.

	Latest version: 8.1 (as of 2001-12-31).

	{(http://microsoft.com/directx/)}.

	(2001-12-31)

DIRFT

	{Do It Right the First Time}

Dirt

	{Design In Real Time}

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

	[{Jargon File}]

	(1994-12-07)

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 hits}).

	[{Jargon File}]

dis

	<programming> A {CPython} {bytecode} {disassembler}.

	{dis home (https://docs.python.org/2/library/dis.html)}.

	(2014-06-08)

DISA

	1. <body> {Defense Information Systems Agency}.

	2. <standard> {Data Interchange Standards Association}.

	(1999-09-18)

disaster planning

	{disaster recovery}

disaster recovery

	<business> (DR) Planning and implementation of procedures and
	facilities for use when essential systems are not available
	for a period long enough to have a significant impact on the
	business, e.g. when the head office is blown up.

	Disasters include natural: fire, flood, lightning, hurricane;
	hardware: power failure, component failure, {head crash};
	software failure: {bugs}, resources; vandalism: arson,
	bombing, {cracking}, theft; data corruption or loss: human
	error, media failure; communications: computer network
	equipment, {network storm}, telephones; security: passwords
	compromised, {computer virus}; legal: change in legislation;
	personnel: unavailability of essential staff, industrial
	action.

	Companies need to plan for disaster: before: {risk analysis},
	preventive measures, training; during: how should staff and
	systems respond; after: recovery measures, post mortem
	analysis.

	Hardware can usually be replaced and is usually insured.
	Software and data needs to be backed up off site.  Alternative
	communication systems should be arranged in case of network
	failure or inaccessible premises, e.g. emergency telephone
	number, home working, alternative data center.

	(2007-06-20)

disc

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

	(1995-07-30)

disc drive

	{disc}

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.

	[{Jargon File}]

	(1995-07-30)

disconnect

	{SCSI reconnect}

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.

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

	[{Jargon File}]

	(1997-04-12)

discrete

	<mathematics> A description of a quantity whose value is one
	of a fixed set of values, as opposed to a {continuous} - a
	value capable of infinitessimal variation.  For example,
	{integers} are discrete values whereas {real numbers} are
	continuous; {digital sound} has discrete {amplitude} leves
	whereas {analog sound} is continuous.

	(2009-10-08)

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}.

	(1997-03-10)

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}.

	(1997-03-10)

discrete preorder

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

	(1995-09-21)

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.

	(1995-04-25)

discussion group

	<messaging> Any system that supports group messaging, e.g. a
	shared {mailbox}, {Usenet}, {bulletin board system}, or
	possibly a {mailing list}, used to publish messages on some
	particular topic.

	(2000-11-16)

Disiple

	<language, DSP> 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].

	(2000-11-16)

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
	{conjunctions} where no conjunction contains a disjunction.
	E.g. the DNF of (A or B) and C is (A and C) or (B and C).

	(1994-12-07)

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, is correctly spelled with a
	"c", indeed, this spelling is part of the CD standard.

	(1995-07-30)

disk controller

	<hardware, storage> (Or "hard disk controller", HDC) The
	circuit which allows the {CPU} to communicate with a {hard
	disk}, {floppy disk} or other kind of {disk drive}.

	The most common disk controllers in use are {IDE} and {SCSI}
	controllers.  Most home {personal computers} use IDE
	controllers.  High end PCs, {workstations} and network {file
	servers} mostly have {SCSI adaptors}.

	(1998-03-16)

disk drive

	<hardware, storage> (Or "hard disk drive", "hard drive",
	"floppy disk drive", "floppy drive") A {peripheral} device
	that reads and writes {hard disks} or {floppy disks}.  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.

	In order for a disk drive to start to read or write a given
	location a read/write head must be positioned radially over
	the right track and rotationally over the start of the right
	sector.

	Radial motion is known as "{seek}ing" and it is this which
	causes most of the intermittent noise heard during disk
	activity.  There is usually one head for each disk surface and
	all heads move together.  The set of locations which are
	accessible with the heads in a given radial position are known
	as a "{cylinder}".  The "{seek time}" is the time taken to
	seek to a different cylinder.

	The disk is constantly rotating (except for some {floppy disk}
	drives where the motor is switched off between accesses to
	reduce wear and power consumption) so positioning the heads
	over the right sector is simply a matter of waiting until it
	arrives under the head.  With a single set of heads this
	"{rotational latency}" will be on average half a revolution
	but some big drives have multiple sets of heads spaced at
	equal angles around the disk.

	If seeking and rotation are independent, access time is seek
	time + rotational latency.  When accessing multiple tracks
	sequentially, data is sometimes arranged so that by the time
	the seek from one track to the next has finished, the disk has
	rotated just enough to begin accessing the next track.

	See also {sector interleave}.

	Early disk drives had a capacity of a few {megabytes} and were
	housed inside a separate cabinet the size of a washing
	machine.  Over a few decades they shrunk to fit a {terabyte}
	or more in a box the size of a paperback book.

	The disks may be {removable disks}; floppy disks always are,
	removable hard disks were common on {mainframes} and
	{minicomputers} but less so on {microcomputers} until the mid
	1990s(?) with products like the {Zip Drive}.

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

	Two common interfaces for disk drives (and other devices) are
	{SCSI} and {IDE}.  {ST-506} used to be common in
	microcomputers (in the 1980s?).

	(1997-04-15)

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.

	(1996-02-22)

diskette

	{floppy disk}

disk farm

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

	[{Jargon File}]

	(1995-03-27)

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 storage}.  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}.

	(1995-03-28)

disk mirroring

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

	(1996-02-17)

Disk Operating System

	<operating system> (DOS) The original {disk operating system}
	from {IBM}.

	DOS was the low-end OS of choice on the {IBM 360}, the
	high-end system was called just "{OS}".  DOS had a smaller
	{kernel} and less functionality than OS and could run on the
	typical 32K 360/30 and 64K 360/40 class machines.

	DOS was a successor to {TOS}.

	(1999-01-20)

disk operating system

	<operating system> (DOS) The name of a number of {operating
	systems} which include facilities for storing files on disk,
	often used to refer to {Microsoft DOS}.  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).

	A DOS should present a uniform interface to different storage
	device such as {floppy disks}, {hard disks} 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}).

	(1998-07-08)

disks

	{disk}

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].

	(1995-05-10)

disman

	{Distributed Management}

display

	1. <hardware> {monitor}.

	2. <language> A vector of pointers to {activation records}.
	The Nth element points to the activation record containing
	variables declared at {lexical depth} N.  This allows faster
	access to variables from outer {scopes} 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.

	(1996-02-22)

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}.

	[{Jargon File}]

	(1995-05-10)

Display PostScript

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

Display Screen Equipment

	{Visual Display Unit}

display standard

	<hardware, standard> {IBM} and others have introduced a
	bewildering plethora of graphics and text display {standards}
	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 can also do {CGA} and {MDA}.

	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.

	Graphics software had to support the major IBM graphics
	standards and many non-IBM, proprietary standards for
	displays.  Either software vendors provided {display drivers}
	or display vendors provided drivers for the software package.
	In either case, switching software or switching display
	systems was 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

	 XVGA	   1024x768	256	(IBM name: 8514)

	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}.

	[What were the corresponding "mode" numbers"?]

	(2011-03-20)

display standards

	{display standard}

display terminal

	{visual display unit}

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}.

	[{Jargon File}]

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.

	(1997-01-21)

Distributed Component Object Model

	<programming> (DCOM) {Microsoft}'s extension of their
	{Component Object Model} (COM) to support objects distributed
	across a {network}.  DCOM has been submitted to the {IETF} as
	a draft standard.  Since 1996, it has been part of {Windows
	NT} and is also available for {Windows 95}.

	Unlike {CORBA}, which runs on many {operating systems}, DCOM
	is currently (Dec 1997) only implemented by {Microsoft} for
	{Microsoft Windows} and by {Software AG}, under the name
	"{EntireX}", for {Unix} and {IBM} {mainframes}.  DCOM serves
	the same purpose as {IBM}'s {DSOM} {protocol}.

	DCOM is broken because it's an {object model} that has no
	provisions for {inheritance}, one of the major reasons for
	{object oriented programming} in the first place.

	{(http://microsoft.com/com/tech/DCOM.asp)}.

	[Details?]

	(2000-08-02)

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://dstc.edu.au/AU/research_news/dce/dce.html)}.

	(1994-12-07)

distributed database

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

	(1994-12-07)

Distributed Data Management

	<protocol, database> (DDM) An {IBM} {data} {protocol}
	architecture for data management services across {distributed}
	systems in an {SNA} environment.

	DDM provides a common {data management language} for data
	interchange among different IBM system platforms.

	Products supporting DDM include {AS/400}, {System/36},
	{System/38} and {CICS/DDM}.

	On the AS/400, 	DDM controls remote file processing.
	DDM enables application programs running on one AS/400
	system to access data files stored on another system
	supporting DDM. Similarly, other systems that have DDM can
	access files in the database of the local AS/400 system.
	DDM makes it easier to distribute file processing between two
	or more systems.

	{OS/400 Distributed Data Management V3R6 Reference
	(http://as400bks.rochester.ibm.com/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/QBJALH00/CCONTENTS)}.

	(1999-04-26)

distributed data warehouse

	<database> (DDW) Data shared across multiple data
	repositories, for the purpose of {OLAP}.  Each data warehouse
	may belong to one or many organisations.  The sharing im;plies
	a common format or definition of data elements (e.g.  using
	XML).

	(2008-03-15)

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].

	(1994-12-07)

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 {objects}.  {Multi-threaded}
	objects have autonomous activity and may simultaneously
	evaluate {method} calls.

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

	(1996-01-07)

Distributed Management Environment

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

	(1995-02-22)

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.

	Opposite: {shared memory}.

	(1995-03-22)

Distributed Network Operating System

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

	(1996-04-01)

Distributed Operating Multi Access Interactive Network

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

	(1995-02-16)

Distributed Processes

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

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

	(1994-12-02)

Distributed Queue Dual Bus

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

	{(http://ece.wpi.edu/~vlad/ee535/hw5/page1.html)}.

	[Details?]

	(2000-08-02)

Distributed Smalltalk

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

	(1994-12-02)

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://dstc.edu.au/AU/research_news/dist-env.html)}.

	(1994-12-06)

distributed systems

	{distributed system}

distribution

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

	2. <messaging> A vague term encompassing {mailing lists} and
	{Usenet} {newsgroups} (but not {BBS} {fora}); any
	topic-oriented message channel with multiple recipients.

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

	[{Jargon File}]

distributive lattice

	<theory> 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 lub c) glb (a lub b)

	and vice versa.

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

	(1998-11-09)

disusered

	<jargon> ({Usenet}) Said of a person whose account on a
	computer has been removed to prevent access.  Setting the
	DISUSER account status flag on {VMS} disables the account.

	"He got disusered when they found out he'd been {cracking}
	through the school's {Internet} access."

	[{Jargon File}]

	(1994-12-08)

dithering

	<data, algorithm> A technique used in {quantisation} processes
	such as {graphics} and {audio} to reduce or remove the
	correlation between noise and signal.

	Dithering is used in {computer graphics} to create additional
	colors and shades from an existing {palette} by interspersing
	{pixels} of different colours.  On a {monochrome} display,
	areas of grey are created by varying the proportion of black
	and white pixels.  In colour displays and printers, colours
	and textures are created by varying the proportions of
	existing colours.  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 doesn't reduce resolution.  There are three types:
	regular dithering which uses a very regular predefined
	pattern; random dither where the pattern is a random noise;
	and pseudo random dither which uses a very large, very
	regular, predefined pattern.

	Dithering is used to create patterns for use as backgrounds,
	fills and shading, as well as for creating {halftones} for
	printing.  When used for printing is it very sensitive to
	paper properties.  Dithering can be combined with
	{rasterising}.  It is not related to {anti-aliasing}.

	(2003-07-20)

Ditto Drive

	<hardware, storage> The Ditto {tape drives} range in capacity
	from 120 {megabytes} to 1.6 {gigabytes} ({data compression}
	can roughly double these figures).  The newer devices are
	designed for special tapes, though they will read standard
	tape types.

	The largest of tape stores up 3.2 {GB}.  Using an enhanced
	{floppy drive} card the transfer rate approaches the claimed
	19 {MB}/minute.  External {parallel} port versions are also
	available.

	{Compatibility details
	(http://iomega.com/support/techs/ditto/3040.html)}.

	(1997-03-26)

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.

	(1994-12-08)

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.

	(1997-03-07)

dj

	<networking> The {country code} for Djibouti.

	(1999-01-27)

DJGPP

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

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

	Address: DJ Delorie, Rochester, NH, USA.

	(1995-04-10)

DjVu

	<application, compression, file format, graphics, World-Wide
	Web> (pronounced like "deja vu") An {image compression}
	{algorithm} and software developped by {Yann LeCun}'s research
	group at {AT&T Labs}, which provides high {resolution}
	{digital images} for distribution over the {Internet}.  DjVu
	is five to 20 times more efficient than {JPEG} or {GIF}.  A
	free {web browser} {plug-in} allows users to display DjVu
	images.

	{(http://djvu.research.att.com/)}.

	(1999-10-07)

DK

	{Datakit}

dk

	<networking> The {country code} for Denmark.

	(1999-01-27)

DL/1

	Query language, linear keyword.

DLC

	{Data Link Control}

DLCI

	{Data Link Connection Identifier}

	[Is this correct?]

	(1997-03-01)

DLE

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

	(1996-06-24)

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. <networking> {Data Link Layer}.

	2. <library> {Dynamically Linked Library}.

	3. {Dial Long Line} equipment.

	(2000-04-05)

DLM

	Distributed Lock Manager on distributed VMS systems.

DLP

	<language> {Distributed Logic Programming}.

	(1996-01-07)

DLPI

	{Data Link Provider Interface}

DLSw

	{Data Link Switching}

DLT

	{Digital Linear Tape}

DLUR/DLUS

	<networking> Dependent Logical Unit Requester/Server.  The
	DLUR function is an {APPN} enhancement for an end node or
	network node that supports dependent {LUs}.  The DLUS function
	is a product feature of an {interchange node} or a {T5}
	network node supporting {session services} extensions.

	{(http://booksrv2.raleigh.ibm.com/cgi-bin/bookmgr/bookmgr.cmd/BOOKS/DLUR7/)}.

	(1997-05-08)

DLZ1

	{Digital Lempel Ziv 1}

dm

	<networking> The {country code} for Dominica.

	(1999-01-27)

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)]

	(1994-11-02)

dmake

	Required by {uC++}.

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

	[What is it?]

	(1994-11-02)

DMALGOL

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

	(1995-02-22)

DME

	{Distributed Management Environment}

DMI

	{Desktop Management Interface}

DML

	<language>

	1. {Data Manipulation Language}.

	2. {Data Management Language}.

	3. ["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].

	(1999-04-27)

DMM

	{Digital Multimeter}

DMS

	{Dataless Management Services}

DMTF

	{Desktop Management Task Force}

DMU

	{Data Management Unit}

	{Data Manipulation Unit}

	{Data Multiplexer Unit}

	{dataless management utility}

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].

	(1997-02-11)

DNF

	{disjunctive normal form}

DNIS

	{Dialled Number Identification Service}

DNIX

	<operating system> A flavor of {Unix} that is proprietary to
	{Olivetti} and {Wang Global}.

	[Details?  Reference?]

	(2000-12-16)

DNOS

	{Distributed Network Operating System}

DNS

	1. {Domain Name System}.

	2. Distributed Name Service.  See {DECdns}.

do

	1. <programming> {repeat loop}.

	2. <networking> The {country code} for Dominican Republic.

	(1999-06-10)

DOA

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

	(2000-12-19)

Doc

	{Directed Oc}

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).

	[{Jargon File}]

docking station

	<hardware> A {desktop} mains powered unit into which a
	{laptop} or other portable computer can be connected via fixed
	connectors at the rear of the computer to provide quick and
	convenient connection of {peripherals} not normally used with
	a laptop.  These can include power supply, {expansion cards},
	additional {storage}, an external {monitor}, {network card},
	{CD-ROM}, full-size {keyboard}, {printer}, and {mouse}.  The
	alternative would require each of the above to be connected to
	the laptop individually.

	(2000-04-10)

DOCMaker

	<text, tool, product> An application for the {Apple}
	{Macintosh} which creates stand-alone, self-running document
	{files}.  It features scrollable and re-sizable windows,
	graphics, varied text styles and {fonts}, full printing
	capability, and links to other {software} and {information}.

	Companies such as Federal Express, GTE, {Hewlett-Packard},
	{Iomega}, {Adobe Systems, Inc.}, {Apple Computer} and
	{Aladdin} use DOCMaker to distribute disk-based
	{documentation} with their products.

	{(http://hsv.tis.net/~greenmtn/docm1.html)}.

	(1998-01-27)

doco

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

	See also {devo} and {mango}.

	2. (UK) A short technical document.  A "doco" is often not the
	documentation passed to management.

	Compare {doc}.

	[{Jargon File}]

	(1999-10-08)

DOCSIS

	{Data Over Cable Service Interface Specification}

doctype decoration

	<humour> When a {web author} adds a {doctype declaration} but
	doesn't bother to write valid {HTML}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-05-30)

document

	1. <application> Any specific type of {file} produced or
	edited by a specific {application}; usually capable of being
	printed.  E.g. "Word document", "Photoshop document", etc.

	2. <hypertext> 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.

	3. <programming> To write {documentation} on a certain piece
	of code.

	(2003-10-25)

documentation

	<programming> 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}.

	[{Jargon File}]

	(2003-10-25)

Document Examiner

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

	(1995-04-16)

Document Image Processing

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

	(1994-11-11)

Document Object Model

	<hypertext, language, World-Wide Web> A {W3C} specification
	for {application program interfaces} for accessing the content
	of {HTML} and {XML} documents.

	{(http://w3.org/DOM/)}.

	(1999-12-14)

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} or {XML}, consisting of a set of {mark-up} tags and
	their interpretation.

	{Docbook DTD home (http://oasis-open.org/docbook/)}.

	{XML DTD Tutorial (http://xml101.com/dtd)}.

	(2001-04-30)

DOCUS

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

DoD

	1. <body> {Department of Defense}.

	2. {Dial on Demand}.

	(2000-03-25)

DoD-1

	Unofficial name of the language that became Ada.

dodgy

	Synonym with {flaky}.  Preferred outside the US

	[{Jargon File}]

DOD-STD-2167A

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

	(1996-05-28)

DoD-STD-2168

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

	(1996-05-29)

DOE

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

DOF

	{degrees of freedom}

dog

	<tools> An enhanced version of the {Unix} {cat} command that,
	in addition to outputting the contents of files, can output
	the data obtained by fetching URLs.  It also offers various
	output options such as line numbering.

	{Unix manual page}:
	{(http://www.penguin-soft.com/penguin/man/1/dog.html)}.

	(2009-06-12)

dogcow

	/dog'kow/  See {Moof}.

	[{Jargon File}]

dogfood

	{eating one's own dogfood}

dogfooding

	{eating one's own dogfood}

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.

	(1994-12-08)

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}.

	[{Jargon File}]

	(1994-12-08)

Do It Right the First Time

	<chat> (DIRFT) A programming approach that aims to avoid the
	overheads of debugging and testing incomplete or incorrect code by
	careful specification, design and implementation.  DIRFT contrasts
	with {rapid prototyping} which emphasises the benefits of having
	running code as soon as possible, even if it is not perfect.
	DIRFT is appropriate in the rare cases where the requirements are
	well understood and unlikely to change, e.g. reimplementing
	exactly the same function in a different language.

	(2012-11-17)

Dojo

	{The Dojo Toolkit}

DOL

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

dollar

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

	Well-known uses of the dollar symbol in computing include as a
	prefix on the names of {string} {variables} in {BASIC},
	{shell} and related languages like {Perl}.  In shell languages
	it is also used in {positional parameters} so "$1" is the
	first parameter to a shell script, "$2" the second, etc.

	(2006-09-10)

do loop

	{repeat loop}

DOM

	{Document Object Model}

domain

	1. <networking> A group of computers whose {fully qualified
	domain names} (FQDN) share a common suffix, the "domain name".

	The {Domain Name System} maps {hostnames} to {Internet
	address} using a hierarchical {namespace} where each level in
	the hierarchy contributes one component to the FQDN.  For
	example, the computer foldoc.doc.ic.ac.uk is in the
	doc.ic.ac.uk domain, which is in the ic.ac.uk domain, which is
	in the ac.uk domain, which is in the uk {top-level domain}.

	A domain name can contain up to 67 characters including the
	dots that separate components.  These can be letters, numbers
	and hyphens.

	2. An {administrative domain} is something to do with {routing}.

	3. {Distributed Operating Multi Access Interactive Network}.

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

	See {domain theory}.

	5. <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.

	6. The subject or market in which a piece of software is
	designed to work.

	(2007-10-01)

domain address

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

	(1994-10-27)

Domain Analysis

	<systems analysis> 1. Determining the operations, data
	objects, properties and {abstractions} appropriate for
	designing solutions to problems in a given {domain}.

	2. The {domain engineering} activity in which domain knowledge
	is studied and formalised as a domain definition and a domain
	specification.  A {software reuse} approach that involves
	combining software components, subsystems, etc., into a single
	application system.

	3. The process of identifying, collecting organising,
	analysing and representing a {domain model} and software
	architecture from the study of existing systems, underlying
	theory, emerging technology and development histories within
	the domain of interest.

	4. The analysis of systems within a domain to discover
	commonalities and differences among them.

	(1997-12-26)

domain architecture

	<systems analysis> A generic, organisational structure or
	design for software systems in a {domain}.  The domain
	architecture contains the designs that are intended to satisfy
	requirements specified in the {domain model}.  A domain
	architecture can be adapted to create designs for software
	systems within a domain and also provides a framework for
	configuring {assets} within individual software systems.

	(1997-12-26)

Domain Architecture Model

	<systems analysis> A set of software architectures generic to
	a {domain} that define organising frameworks for constructing
	new application designs and implementations within the domain,
	consistent with the domain requirements model.

	(1997-12-26)

domain calculus

	<database> A form of {relational calculus} in which {scalar}
	variables take values drawn from a given {domain}.

	Examples of the domain calculus are {ILL}, {FQL}, {DEDUCE} and
	the well known {Query By Example} (QBE).  {INGRES} is a
	{relational DBMS} whose {DML} is based on the relational
	calculus.

domain engineering

	<systems analysis> 1. The development and evolution of
	{domain} specific knowledge and artifacts to support the
	development and evolution of systems in the domain.  Domain
	engineering includes engineering of {domain models},
	components, methods and tools and may also include {asset
	management}.

	2. The engineering process of analysing and modelling a
	domain, designing and modelling a generic solution
	architecture for a product line within that domain,
	implementing and using reusable components of that
	architecture and maintaining and evolving the domain,
	architecture and implementation models.

	3. A reuse-based approach to defining the scope ({domain
	definition}), specifying the structure ({domain architecture})
	and building the Assets (requirements, designs, software code,
	documentation) for a class of systems, subsystems or
	applications.  Domain engineering can include domain
	definition, domain analysis, developing the domain
	architecture domain implementation.

domain handle

	<networking> Information held by a {domain name} registrar
	about a registrant (the person or organisation that owns the
	name).  Typically the registrar stores one copy of this
	information and refers to that copy for each additional domain
	registered by the same person.  The information would include
	basic contact details: name, e-mail address, etc. and billing
	information.  Some of this information would be used to
	populate the {whois} database entry for a domain.

	{(http://www.easyname.eu/support/domains/20-what-is-a-domain-handle)}.

	(2009-09-17)

domainist

	<jargon> /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
	paths}.  This term is now (1993) semi-obsolete, as most sites
	have converted.

	[{Jargon File}]

	(1995-04-21)

domain maturity

	<systems analysis> The level of stability and depth of
	understanding that has been achieved in an area for which
	{applications} are developed.

	(1997-12-26)

domain model

	<systems analysis> 1. A definition of the functions, objects,
	data, requirements, relationships and variations in a
	particular {domain}.

	2. A product of {domain analysis} which provides a
	representation of the requirements of the domain.  The domain
	model identifies and describes the structure of data, flow of
	information, functions, constraints and controls within the
	Domain that are included in software systems in the domain.
	The Domain Model describes commonalities and variabilities
	among requirements for software systems in the domain.

	(1997-12-26)

domain name

	{fully qualified domain name}

Domain Name Server

	<spelling> {Domain Name System}.

	(1997-12-15)

Domain Name System

	<networking> (DNS) A general-purpose distributed, replicated,
	data query service chiefly used on {Internet} for translating
	{hostnames} into {Internet addresses}.  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.

	The name resolution client (e.g. Unix's gethostbyname()
	library function) can be configured to search for host
	information in the following order: first in the local {hosts
	file}, second in {NIS} and third in DNS.  This sequencing of
	Naming Services is sometimes called "name service switching".
	Under {Solaris} is configured in the file /etc/nsswitch.conf.

	DNS can be queried interactively using the command {nslookup}.
	It is defined in {STD 13}, {RFC 1034}, {RFC 1035}, {RFC 1591}.

	{BIND} is a common DNS server.

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

	(2001-05-14)

domain selection

	<systems analysis> The prioritisation and selection of one or
	more {domains} for which specific {software reuse} engineering
	projects are to be initiated.

	(1997-12-26)

Domain Software Engineering Environment

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

	(1996-05-29)

domain-specific language

	<language> A machine-processable language whose terms are
	derived from a {domain model} and that is used for the
	definition of components or software architectures supporting
	that domain.  A domain-specific language is often used as
	input to an application generator.

	(1997-12-26)

domain squatter

	<World-Wide Web> An unscrupulous person who registers a
	{domain name} in the hope of selling it to the rightful,
	expected owner at a profit.  E.g. {(http://foldoc.com/)}.

	(2007-07-15)

domain theory

	<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 {applications} 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}
	{CPOs}.

	There are domain-theoretic computational models in other
	branches of mathematics including {dynamical systems},
	{fractals}, {measure theory}, {integration theory},
	{probability theory}, and {stochastic processes}.

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

	(1999-12-09)

Domestic Communications Assistance Center

	<body> (DCAC) A joint effort between the U.S. Marshals
	Service, FBI and Drug Enforcement Agency.  The DCAC is charged
	with developing customised hardware for intercepting
	{Internet} and wireless communications. The DCAC is under the
	control and budget of the FBI.

	{CNET article
	(http://news.cnet.com/8301-1009_3-57439734-83/fbi-quietly-forms-secretive-net-surveillance-unit/)}.

	(2012-06-24)

DOMF

	Distributed Object Management Facility.

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

	(1994-11-04)

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}.

	(1994-11-04)

dongle

	<hardware> /dong'gl/ (From "dangle" - because it dangles off
	the computer?)

	1. <security> A security or {copy protection} device for
	commercial {microcomputer} programs that 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 start-up and at
	programmed intervals thereafter, and terminate if it does not
	respond with the expected validation code.

	One common form consisted of a serialised {EPROM} and some
	drivers in a {D-25} connector shell.

	Dongles attempt to combat {software theft} by ensuring that,
	while users can still make copies of the program (e.g. for
	{backup}), they must buy one dongle for each simultaneous use
	of the program.

	The idea was clever, but initially unpopular with users who
	disliked tying up a port this way.  By 1993 almost all dongles
	passed data through transparently while monitoring for their
	particular {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.

	In 1998, dongles and other copy protection systems are fairly
	uncommon for {Microsoft Windows} software but one engineer in
	a print and {CADD} bureau reports that their {Macintosh}
	computers typically run seven dongles: After Effects, Electric
	Image, two for Media 100, Ultimatte, Elastic Reality and CADD.
	These dongles are made for the Mac's daisy-chainable {ADB}
	port.

	The term is used, by extension, for any physical electronic
	key or transferable ID required for a program to function.
	Common variations on this theme have used the {parallel port}
	or even the {joystick} port or a {dongle-disk}.

	An early 1992 advertisment from Rainbow Technologies (a
	manufacturer of dongles) claimed that the word derived from
	"Don Gall", the alleged inventor of the device.  The company's
	receptionist however said that the story was a myth invented
	for the ad.

	[{Jargon File}]

	(1998-12-13)

	2. A small adaptor cable that connects, e.g. a {PCMCIA}
	{modem} to a telephone socket or a PCMCIA {network card} to an
	{RJ45} {network cable}.

	(2002-09-29)

dongle cracker

	<security> Someone who enables software that has been written
	to require a {dongle} to run without it.

	(2007-06-11)

dongle-disk

	/don'gl disk/ (Or "key disk") A kind of {dongle} consisting of
	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.

	[{Jargon File}]

	(1998-12-13)

Don't do that then!

	<humour> (From an old doctor's office joke about a patient
	with a trivial complaint) A stock response to a user
	complaint.  "When I type control-S, the whole system comes to
	a halt for thirty seconds."  "Well don't do that then!"

	[{Jargon File}]

	(1998-12-13)

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}.

	[{Jargon File}]

Dooced

	<jargon> Losing your job because of something posted on a
	personal website.  After {(http://dooce.com/)} where Heather
	Armstrong posted details about her job.

	(2012-04-13)

DOOM

	<games> A simulated 3D moster-hunting action game for {IBM
	PCs}, 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 3d (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: {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://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.

	(1994-12-14)

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}.

	[{Jargon File}]

Dorito Syndrome

	<humour> Feelings of emptiness and dissatisfaction triggered
	by addictive substances that lack nutritional content.  "I
	just spent six hours surfing the Web, and now I've got a bad
	case of Dorito Syndrome."

	(1997-03-30)

DORUM

	{Draft Once ReUse Many}

DOS

	<operating system> 1. The common abbreviation for {MS-DOS}.

	2. {IBM}'s {Disk Operating System}.

	3. Any {disk operating system}.

	(2001-03-16)

DOS/360

	<operating system> The {operating system} announced by {IBM}
	at the low end for the {System/360} in 1964 and delivered in
	1965 or 1966.

	Following the failure of {OS}, IBM designed DOS for the low
	end machines, able to run in 16KB(?) and 64KB memory.

	DOS/360 used three {memory partitions}, but it had no serious
	{memory protection}.  The three partitions were not
	specialised, but frequently one was used for {spooling}
	{punched cards} to {disk}, another one for {batch job}
	execution and another for spooling disk to printers.

	With DOS/VS, introduced in 1970, the number of partitions was
	increased, {virtual memory} was introduced and the minimum
	memory requirements increased.

	Later they released DOS/VSE and ESA/VSE.  DOS/360 successors
	are still alive today (1997) though not as popular as in the
	late 1960s.

	Contrary to the Hacker's {Jargon File}, {GECOS} was not copied
	from DOS/360.

	(1997-09-22)

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 PCs}.

	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].

	(1995-01-12)

DOS requester

	<networking> An {MS-DOS} {client} that provides transparent
	redirection of printing and file accesses to a network
	{server}.  It handles levels 3, 4 and 5 of the {Open Systems
	Interconnect} seven layer model.

	A DOS requester under {Novell NetWare} will interface to a
	{network card} driver with an {ODI} interface, and will be
	either a single executable (netx.exe) or a set of {VLMs} that
	are loaded on demand.

	In the {IBM}/{Microsoft} {LAN Manager}/{SMB} world, where
	the name {DOS redirector} is more common, there will be an
	{NDIS} interface driver and a net.exe executable.

	{NetWare Client 32 for DOS/Windows
	(http://developer.novell.com/research/appnotes/1996/may/01/)}.

	{(http://cad.strath.ac.uk/~davidm/projects/guide/requester.html)}.

	(1998-01-05)

dot

	<character> {decimal point}.

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

	(1995-03-14)

dot address

	An {Internet address} in {dot notation}.

dot com

	{com}

dot file

	<operating system, convention> A {Unix} {application program}
	configuration file.  On {Unix}, files named with a leading dot
	are not normally shown 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 proliferate - 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.  Common examples are .profile,
	.cshrc, .login, .emacs, .mailrc, .forward, .newsrc, .plan,
	.rhosts, .sig, .xsession.

	See also {profile}, {rc file}.

	[{Jargon File}]

	(1994-12-07)

dot leaders

	<text> A row of {full stops} intended to guide the reader's
	eye across the page from a column of variable length items on
	the left to the corresponding items in a column on the right.
	Used, for example, in the contents page of a book to tie a
	heading on the left to its page number on the right.

	(2010-07-25)

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 forward 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
	printers}.

	[Other pin arrangements?]

	(1995-03-14)

dot notation

	<networking> {Berkeley Unix} notation for an {Internet
	address}, consisting of one to four numbers (a "dotted quad")
	in {hexadecimal} (leading 0x), {octal} (leading 0), or
	(usually) 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 programs accept an address in dot notation in place of a
	{hostname}.

	(2000-08-10)

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 {CRTs} use vertical stripes, not dots, and its
	measurement is the distance between stripes, not the diagonal
	distance between dots.

	["The Computer Glossary", Alan Freedman].

	(1995-12-14)

dotted quad

	dot notation

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}.

	[{Jargon File}]

	(1994-12-07)

double-click

	<operating system> Two clicks of a {mouse} button made in
	rapid succession without moving the mouse.  A double-click
	often combines the actions of selecting, and then activating
	an object in a {GUI}, e.g. selecting and opening a document.
	Some {text editors} use double-click to select the word under
	the {mouse pointer}.

	When used as a verb it is often written as two words with a
	space instead of a hyphen.

	(2006-07-09)

Double Data Rate Random Access Memory

	<storage> (DDR-RAM, DDR-SDRAM ...Synchronous...) {RAM} that
	transfers data on both 0-1 and 1-0 {clock} transitions,
	theoretically yielding twice the data transfer rate of normal
	RAM or {SDRAM}.

	{DDR-RAM Article
	(http://pcreview.co.uk/Article.php?aid=9)}.

	{DDR-SDRAM Article
	(http://www4.tomshardware.com/mainboard/00q4/001030/)}.

	(2001-05-24)

Double Data Rate Synchronous Random Access Memory

	{Double Data Rate Random Access Memory}

double DECkers

	<jargon> Married couples in which both partners work for
	{Digital Equipment Corporation}.

	[{Jargon File}]

	(1994-12-07)

double density

	{floppy disk}

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}.

	[{Jargon File}]

	(1994-12-07)

double-duplex

	<communications> (From {telegraphy}) A {full-duplex} link with
	two telegraphers (a sender and a receiver) at each end, to
	simultaneously transmit in both directions.

	Compare: {single-duplex}.

	(2000-03-30)

double-ended queue

	<algorithm> /dek/ (deque) A {queue} which can have items added
	or removed from either end[?].

	The Knuth reference below reports that the name was coined by
	E. J. Schweppe.

	[D. E. Knuth, "The Art of Computer Programming. Volume 1:
	Fundamental Algorithms", second edition, Sections 2.2.1, 2.6,
	Addison-Wesley, 1973].

	{Silicon Graphics (http://sgi.com/tech/stl/Deque.html)}.

	[Correct definition?  Example use?]

	(2003-12-17)

double quote

	<character> '"' {ASCII} character 34.  Often used in
	programming languages to delimit strings.  In {Unix} {shells}
	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.

	(1995-03-28)

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.

	(1995-03-28)

DOUGLAS

	<language> An early system on the {IBM 701}.

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

	(1994-12-07)

Douglas Engelbart

	<person> Douglas C. Engelbart, the inventor of the {mouse}.

	On 1968-12-09, Douglas C. Engelbart and the group of 17
	researchers working with him in the {Augmentation Research
	Center} at {Stanford Research Institute} in Menlo Park,
	California, USA, presented a 90-minute live public
	demonstration of the on live system, {NLS}, they had been
	working on since 1962.  The presentation was a session in the
	of the Fall Joint Computer Conference held at the Convention
	Center in San Francisco, and it was attended by about 1000
	computer professionals.  This was the public debut of the
	computer {mouse}, {hypertext}, object addressing, dynamic file
	linking and shared-screen collaboration involving two persons
	at different sites communicating over a network with audio and
	video interface.

	The original 90-minute video: {Hyperlinks
	(http://vodreal.stanford.edu/engel/08engel200.ram)}, {Mouse
	(http://vodreal.stanford.edu/engel/12engel200.ram)},
	{Web-board
	(http://vodreal.stanford.edu/engel/23engel200.ram)}.

	{Biography (http://www2.bootstrap.org/dce-bio.htm)}.

	{Tia O'Brien, "The Mouse", Silicon Valley News
	(http://mercurycenter.com/svtech/news/special/engelbart/)}.

	{(http://inventors.about.com/library/weekly/aa081898.htm)}.

	(2003-08-06)

Doug Lenat

	<person> One of the world's leading computer scientists
	specialising in {Artificial Intelligence}.  He is currently
	(1999) head of the {Cyc} Project at {MCC}, and President of
	Cycorp.  He has been a Professor of Computer Science at
	{Carnegie-Mellon University} and {Stanford University}.

	See also {microLenat}.

	(1999-08-24)

DOW COMPILER

	An early system on the {Datatron 200} series.

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

	(1994-12-07)

Do What the Fuck You Want to Public License

	<legal> (WTFPL) An obscenely permissive {license} for {software}
	and other scientific or artistic works.  As the name suggests, the
	WTFPL does not restrict what you can do with the licenced work at
	all.  The only restriction on the use of the license itself is
	that if you change it you also change the name.

	The WTFPL aims to expose and remove the problems of the popular
	but competing {GPL} and {BSD} licences.

	Since, according to its own terms, the license can be completely
	ignored, it can be little more than an amusing paradox.

	{WTFPL Home (http://www.wtfpl.net/)}.

	(2013-11-05)

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}; opposite: {up}.

	[{Jargon File}]

	(1994-12-07)

download

	<jargon> To transfer data from one computer to another.
	Downloading usually refers to transfer from a larger "host"
	system (especially a {server} or {mainframe}) to a smaller
	"client" system, especially a {microcomputer} or specialised
	peripheral, and "{upload}" usually means from small to large.

	Others hold that, technically, download means "receive" and
	upload means "send", irrespective of the size of the systems
	involved.

	Note that in communications between ground and space,
	space-to-earth transmission is always "down" and the reverse
	"up", regardless of size.  So far the in-space machines have
	invariably been smaller; thus the upload/download distinction
	has been reversed from its usual sense.

	[{Jargon File}]

	(2003-11-04)

downloading

	{download}

downsizing

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

	(1995-03-27)

downstream

	{upstream}

down-time

	<jargon> A period of time during which a (computer) system is
	not operational, due to a malfunction or maintenance.

	(1997-06-08)

downward closed

	{closure}

Downy cocktail

	{cationic cocktail}

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}.

	[{Jargon File}]

	(1996-07-22)

DPA

	{Data Protection Act}

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.

	[{Jargon File}]

	(1994-12-07)

DPer

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

	See {DP}.

	[{Jargon File}]

	(1994-12-07)

dpi

	Dots per inch.

	A measure of resolution for printers, scanners and displays.

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

	(1995-01-05)

DPL

	DECmmp Parallel Language.

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

	(1994-12-07)

DPL-82

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

	(1994-12-07)

DPLL

	{Digital Phase-Locked Loop}

DPMI

	{DOS Protected Mode Interface}

DPMS

	<hardware> {Display Power Management Signaling}.

	(1995-12-11)

DPN

	{Decomposed Petri Net}

DPP

	{Dining Philosophers Problem}

d-Prolog

	<language> A version of {Prolog} extended with {defeasible
	reasoning}.

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

	(1994-12-07)

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)].

	[What does it stand for?]

	(1995-03-28)

DPS-6

	<computer> A {Honeywell} {minicomputer} from the 1980s-1990s.
	It originally ran the {GCOS-6} {operating system}.

	(2004-08-24)

dpSather

	{Data-parallel} {Sather}.  {deterministic} {fine-grained
	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}.

	(1994-11-04)

Draft Once ReUse Many

	<jargon> (DORUM) Reusing parts of a document to produce parts
	of an entirely new document.  The term normally refers to text
	documents but the practise is equally common in programming.

	(1998-05-09)

drag

	{drag and drop}

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>]

	(2007-06-15)

dragging

	{drag}

drag-n-drop

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

	(1996-12-13)

DRAGON

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

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

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

	[{Jargon File}]

	(1994-12-08)

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 systems} 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".

	[{Jargon File}]

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}.

	(1996-12-03)

DRAGOON

	<language> A {distributed}, {concurrent}, {object-oriented}
	{Ada}-based language developed in the {Esprit} {DRAGON}
	project by Colin Atkinson at {Imperial College} in 1989 (Now
	at University of Houston, Clear Lake).  DRAGOON supports
	object-oriented programming for {embeddable systems} and is
	presently implemented as an Ada {preprocessor}.

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

	(1999-11-22)

drain

	<jargon> (IBM) To allow a system to complete the processing of
	its current work before the system becomes unavailable.
	E.g. draining a device before taking it {off-line} or telling
	a {web server} in a {server farm} not to accept any new
	requests but to finish processing any requests it has already
	accepted.

	[{Jargon File}]

	(2005-07-18)

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}.

	(1997-02-23)

Drawing eXchange Format

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

	(1994-12-08)

dread high bit disease

	<character> A condition endemic to {PRIME} (also known as
	"PR1ME") {minicomputers} that results in all the characters
	having their high bit (0x80, see {meta bit}) ON rather than
	OFF.  This complicates transporting files to other systems and
	talking to true 8-bit devices.  Folklore had it that PRIME
	adopted the 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.  A few
	other machines have exhibited similar brain damage.

	[{Jargon File}]

	(2002-04-09)

DREAM 6800

	<computer> A computer based on the {Motorola 6800}
	{microprocessor}.

	The DREAM 6800 could be programmed in {CHIP-8}.

	(2002-04-09)

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}.

drill down

	<database> (Or "drill-down analysis") To examine data in
	greater detail, especially, in {reporting}, to interactively
	select some item from a summary and display the data that
	contributed to that item, broken down by some extra parameter.

	For example, when viewing your company's total worldwide sales
	for each month of this year, you might drill down to see
	October's sales by country, then again to see October's sales
	in Afghanistan by product and so on.

	This kind of analysis is often supported by some kind of {data
	warehouse}.

	(2007-06-04)

drill-down analysis

	{drill down}

drive

	<storage> A {peripheral} device that allows a computer to read
	or/or write some storage medium such as a {hard disk}, {floppy
	disk}, {magnetic tape}, {compact disc} or {DVD}.  These would
	be called a {disk drive}, {magnetic tape drive}, etc.  CD and
	DVD drives are known collectively as {optical drives}.  When
	unqualified the term probably refers to a hard disk drive.

	The term "drive" refers particularly to the electrical
	components such as electric motors and head positioning
	system, read-write heads and associated electronics.

	Of the above storage media, typically only hard disks are
	fixed, the rest being removable.  Most PCs in 2009 include one
	disk drive and one optical drive housed in the main PC
	enclosure.  Extra drives can be connected externally via
	{USB}, {SCSI} or {Firewire}.  Magnetic tape is always
	removable and tape drives are typically external.

	Not to be confused with a "driver" meaning {device driver} -
	software used to access a peripheral device.

	(2009-12-01)

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.

	[{Jargon File}]

drivers

	{driver}

Dr. James H. Clark

	<person> The founder of {Silicon Graphics, Inc.} and
	co-founder of {Netscape Communications Corporation}.

	(1998-05-21)

DRM

	1. {Digital Rights Management}

	2. {Digital Radio Mondiale}

	(2006-02-02)

droid

	<robotics> (From "android") The robots of the Star Wars
	universe.  While androids look somewhat human-like, Star Wars'
	droids are typically fashioned in the likeness of their
	creators or in a utilitarian design that stresses function
	over appearance.  Droids are equipped with artificial
	intelligence, though some are naturally created smarter than
	others depending on the function they are designed to serve.

	"Droid" is a Lucasfilm Ltd. trademark.

	{starwars.com (http://starwars.com/databank/droid/)}.

	["A Guide to the Star Wars Universe", Bill Slavicsek, 1994,
	Lucasfilm Ltd.]

	[Was George Lucas really the first to use the abbreviation (in
	1977)?]

	(2006-07-21)

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

	<jargon> 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."

	[{Jargon File}]

	(1997-06-23)

drop cable

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

drop-down list

	{pull-down list}

drop-down menu

	{pull-down menu}

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.

	[{Jargon File}]

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 zero
	voltage on the electrical mains.

	2. Missing characters in typed input due to software
	malfunction or system overload (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}.

	[{Jargon File}]

	(2001-02-22)

DrScheme

	<Scheme> A popular {Scheme} implementation from the {PLT} team
	at {Rice University}.

	{(http://cs.rice.edu/CS/PLT/packages/drscheme/)}.

	(2001-02-22)

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.

	[{Jargon File}]

	(2011-12-03)

drug report

	<humour> A {bug report} so utterly incomprehensible that
	whoever submitted it must have been smoking crack.  Even
	worse than a {chug report}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2011-12-03)

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 {newbies}.

	See also "{The Story of Mel}".

	(1994-12-22)

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 mat} 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.

	[{Jargon File}]

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 and {control flow} or to track down a {bug} (as
	part of {debugging}).  A dry run is an extreme form of {desk
	check} or {code review} and is practical only for fairly
	simple programs, small amounts of data and simple external
	interfaces.  It was often performed {off-line} using a
	{hardcopy} of the {source code}.

	Dry runs were common practice in the days when access to
	computers was limited but the availability of {screen editors}
	and fast {compilers} makes {debugging by printf} a more
	productive method in most cases.  Sophisticated {debuggers}
	that allow you to get the computer to step through your source
	code line by line and show values of variables make even this
	unnecessary.

	(2006-11-27)

DS0

	<communications> The zeroth {DS level}, having a transmission
	rate of 64,000 bits per second (64 kb/s), intended to carry
	one {voice channel} (a phone call).

	(2001-03-18)

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 1,544,000 bits per second ({baud}).

	DS1 is commonly used to multiplex 24 {DS0} channels.  Each DS0
	channel, originally a digitised voice-grade telephone signal,
	carries 8000 bytes per second (64,000 bits per second).  A DS1
	frame includes one byte from each of the 24 DS0 channels and
	adds one {framing bit}, making a total of 193 bits per frame
	at 8000 frames per second.  The result is 193*8000 = 1,544,000
	bits per second.

	In the original standard, the successive framing bits
	continuously repeated the 12-bit 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 check} (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].

	(1996-03-30)

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".

	(1995-02-07)

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}.

	(1995-02-07)

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.

	(1995-01-12)

DSA

	{Directory System Agent}

DSDM

	{Dynamic Systems Development Method}

DSE

	1. Display Screen Equipment.  See {Visual Display Unit}.

	2. {Data Structure Editor}.

	(2002-11-09)

DSEE

	{Domain Software Engineering Environment}

D-shell connector

	<hardware> One of the family of connectors: DA-15, {DB-25},
	DC-37, DD-50, {DE-9}, and DEH-15 [VGA].  The "D" is the shape
	of the shell, the next letter determines connector size, and
	the number is the maximum pin count.

	(1999-12-08)

DSI

	{Delivered Source Instruction}

DSL

	1. <communications> {Digital Subscriber Line}.

	2. <language> {Digital Simulation Language}.

	3. <language> {Denotational Semantics Language}.

	(1996-10-13)

DSLAM

	{Digital Subscriber Line Access Module}

DS level

	<communications> (Digital Signal or Data Service level)
	Originally an {AT&T} classification of transmitting one or
	more voice conversations in one digital data stream.  The best
	known DS levels are {DS0} (a single conversation), {DS1} (24
	conversations multiplexed), {DS1C}, {DS2}, and {DS3}.

	By extension, the DS level can refer to the raw data rate
	necessary for transmission:

	 DS0      64 Kb/s
	 DS1   1.544 Mb/s
	 DS1C  3.15  Mb/s
	 DS2   6.31  Mb/s
	 DS3  44.736 Mb/s
	 DS4 274.1   Mb/s

	(where K and M signify multiplication by 1000 and 1000000,
	rather than powers of two).  In this sense it can be used to
	measure of data service rates classifying the user access
	rates for various point-to-point {WAN} technologies or
	standards (e.g. {X.25}, {SMDS}, {ISDN}, {ATM}, {PDH}).

	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 rather different (see {E1}).  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 kb/s.

	(1998-05-18)

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}.

	(1995-01-10)

DSN

	{Digital Switched Network}

DSO

	{dynamic shared object}

DSORG

	{data set organization}

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}

DSR

	{Dynamic Service Register}

DSS

	1. {Decision Support Systems}.

	2. {Digital Signature Standard}.

	(1995-11-16)

DSSSL

	{Document Style Semantics and Specification Language}

DST

	Daylight-Saving Time.

DSU

	1. <communications> {Data Service Unit}.

	2. {Disk Subsystem Unit} ({Artecon}).

	3. <humour> {Dwarf Storage Unit}.

	(1996-12-01)

DSVD

	{Digital Simultaneous Voice and Data}

DSW

	{penis war}

DTALGOL

	Decision Table ALGOL.

	An {ALGOL} superset from {Victoria University}, Wellington
	that added {decision tables} and runs on {Burroughs Large
	System}.

	(1995-02-02)

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}

DTR

	{Data Terminal Ready}

DTS

	1. {Distributed Time Service}.

	2. <audio> {Digital Theatre Sound}.

	(2001-12-24)

DTSS

	<operating system> The first commercial {time-sharing} system,
	created by {Dartmouth College} and sold by {General Electric}
	around 1967.

	GE's Information Service Divsion (ISD) marketed DTSS which was
	running on a system called {GE-265} (a combination of the
	{front-end processor} the {Datanet-30} and the {GE-235}).

	DTSS was ported (and significantly improved by GE ISD around
	1965-1966 on a combination of DN-30 and {GE-635}).  This
	proprietary system, called Mk-II, later improved by GE and
	renamed Mk-III, is still working today (1997) as part of the
	GE service bureau that also includes {IBM} and {Unix}
	computers.

	(1997-09-16)

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 {EIA-232}.

	(1995-01-05)

	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}.

	(1995-03-28)

du

	<tool, storage> ("disk usage") The {Unix} command to list the
	amount of disk space consumed by a directory and its
	subdirectories.

	{Unix manual page}: du(1).

	(2004-04-01)

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.

	(1997-03-16)

DUAL-607

	<language> An early system on the {IBM 701}.

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

	(1994-12-13)

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 {routers} and {concentrators} 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.

	(1994-12-13)

dual boot

	<operating system> Any system offering the user the choice of
	two {operation systems} (OSes) under which to start a
	computer.  A dual boot system allows the user to run programs
	for both operating systems on a single computer (though not
	simultaneously).  The term "multiple boot" or "multiboot"
	extends the idea to more than two OSes.

	The OSes are generally unaware of each other's existence.
	They are installed on separate {hard disk} {partitions} or on
	separate disks.  They may be able to access each other's
	files, possibly via some extra {driver} software if they use
	different {file systems}.

	The OSes need not be completely different - they might be
	different versions of {Microsoft Windows} (e.g. {Windows XP}
	and {Windows NT}) or {Linux} (e.g. {Debian} and {Fedora}).

	A dual boot system differs from an {emulator} such as
	{vmware}, which runs one or more OSes "on top" of the primary
	OS, using its resources.

	(2005-02-01)

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.

	(1994-12-13)

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 {notebook computers}.

	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.

	(1996-01-28)

Dual In-Line Package

	<hardware> (DIL, DIP) The most common type of package for
	small and medium scale {integrated circuits}, 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?]

	(1995-02-06)

dual ported

	A term used to describe memory {integrated circuits} 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}.

	(1995-01-12)

dual-stack

	<networking> A term used to describe a network {node} running both
	{IPv4} and {IPv6} {protocol stacks} (or possibly others) at the
	same time.  Such a machine can act as a {protocol converter}
	between the two networks.

	A node without dual-stack support can relay traffic in a protocol
	it does not support natively by use of {tunnelling}.

	{RFC 4213 (http://tools.ietf.org/html/rfc4213)}

	(2013-10-08)

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.

	(1995-03-28)

duck typing

	<programming> A term coined by Dave Thomas for a kind of
	{dynamic typing} typical of some programming languages, such
	as {Smalltalk}, {Ruby} or {Visual FoxPro}, where a
	{variable}'s {run-time} value determines the operations that
	can be performed on it.

	The term comes from the "duck test": if it walks like a duck
	and quacks like a duck, it must be a duck.

	Duck typing considers the {methods} to which a value responds
	and the {attributes} it posesses rather than its relationship
	to a type hierarchy.  This encourages greater {polymorphism}
	because types are enforced as late as possible.

	{(http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/100511)}.

	(2006-09-13)

DUEL

	<programming> A {front end} to {gdb} by Michael Golan
	<mg@cs.princeton.edu>.  DUEL implements a language designed
	for {debugging} {C} programs.  It 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/)}.

	(1993-03-20)

duff

	1. <programming> {Duff's device}.

	2. <person> {Tom Duff}.

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}]

	[{Jargon File}]

	(2001-06-22)

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}.

	(1995-04-14)

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?]

	[{Jargon File}]

	(1995-04-14)

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
	{hexadecimal} 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).

	[{Jargon File}]

	(1994-12-01)

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}.

	[{Jargon File}]

Dungeon

	{Zork}

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}.

	[{Jargon File}]

	(1995-02-02)

duplex

	<communications> Used to describe a communications channel
	that can carry signals in both directions, in contrast to a
	{simplex} channel which only ever carries a signal in one
	direction.

	If signals can only flow in one direction at a time the
	communications is "{half-duplex}", like a single-lane road with
	traffic lights at each end.  Walkie-talkies with a
	"press-to-talk" button provide half-duplex communications.

	If signals can flow in both directions simultaneously the
	communications is "{full-duplex}", like a normal two-lane
	road.  Telephones provide full-duplex communications.

	The term "duplex" was first used in wireless, telegraph, and
	telephone communications.  Nearly all communications circuits
	used by computers are two-way, so the term is seldom used.

	{(http://cit.ac.nz/smac/dc100www/dc_014.htm)}.

	(2001-07-21)

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}).

	(1995-02-02)

dup loop

	<messaging> /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
	killers} 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}.

	[{Jargon File}]

	(2003-12-15)

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}.

	[{Jargon File}]

DV cartridge

	<games> (Digital Video?)  A plug-in circuit cartridge required
	by some games consoles in order to play {MPEG} video material.

	(1994-11-02)

DVD

	{Digital Versatile Disc}

DVD-R

	{Digital Versatile Disc}

DVD-RAM

	{Digital Versatile Disk Random Access Memory}

DVD-ROM

	{Digital Versatile Disc}

DVI

	1. <file format> (device independent) The usual output format
	of {TeX}, giving a description of a formatted document that is
	not related to any specific hardware or other standard
	document format.  Utilities exist to view and print DVI files
	on various systems and devices.

	2. {Digital Video Input}.

	(2003-09-11)

Dvorak

	<hardware> A configuration of (computer) keyboard keys
	arranged to increase the speed and ease of typing over the
	normal {qwerty} layout; the most common characters (for
	English) have been put on the home row.

	The standard Dvorak International layout is:

	 `~  1!  2@  3#  4%  5^     6^  7&  8*  9(  0)  [\{  ]\}  \\|
	     '"  ,<  .>  p   y      f   g   c   r   l   /?  +=
	     a   o   e   u   i      d   h   t   n   s   -_
	     ;:  q   j   k   x      b   m   w   v   z

	[Do other Dvorak-like layout standards exist for other
	languages?]

	(2002-03-14)

Dwarf Storage Unit

	<humour> (DSU) An {IBM} term for a cupboard.

	(1996-06-24)

DWDM

	{wavelength division multiplexing}

dweeb

	An even lower form of life than the {spod}, found in much the
	same habitat as the former.  though more prevailent on {talker
	systems}.  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

	<filename extension> The {filename extension} for {Autodesk}
	{drawing} files.

	{(http://faqs.org/faqs/graphics/fileformats-faq/part3/)}.

	(2000-08-02)

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}.

	[{Jargon File}]

DX4

	{Intel DX4}

DXF

	{Drawing Exchange Format}

dyadic

	<programming> {binary} (describing an {operator}).

	Compare {monadic}.

	(1998-07-24)

Dyadic Systems Limited

	{Dyalog Limited}

Dyalog APL

	<language> Arguably the current (2001) market-leading
	implementation of {APL}, from {Dyalog Limited}.  Dyalog APL
	runs under {Windows 95}, {Windows 98}, {Windows NT}, and
	{Windows 2000}; and several popular {UNIX} systems including
	{Linux}.

	Dyalog APL complies with {ISO 8485} and has many features that
	make it good for complex {GUI} applications.

	Dyalog APL was introduced in 1983 and is currently (2002) in
	active development.

	(2003-11-17)

Dyalog Limited

	<company> The company that distributes {Dyalog APL}.
	Previously known as Dyadic Systems Limited.

	{Dyalog Home (http://dyalog.com)}.

	(2003-11-17)

DYANA

	{DYnamics ANAlyzer}

Dylan

	{DYnamic LANguage}

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} on 1993-08-11.

	(1993-08-11)

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.

	(1995-01-30)

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}.

	(1995-01-30)

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} (.so - shared object files), {Microsoft Windows}
	(.dll) and {RISC OS} on the {Acorn} {Archimedes} (relocatable
	modules).

	(1995-12-12)

dynamically scoped

	{dynamic scope}

dynamically typed

	{dynamic typing}

dynamic analysis

	<programming> Evaluation of a program based on its execution.
	Dynamic analysis relies on executing a piece of software with
	selected test data.

	(1996-05-13)

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
	functions}".

	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 database management system

	<database> (dynamic DBMS) A {database} with "value-based"
	relationships where typically the relationship is specified at
	retrieval time and the locations of related records are
	discovered during retrieval.  Both {Independent Logical File}
	(ILF) databases and {relational databases} are value-based.

	The opposite is a {static database management system}.

	(1998-10-07)

Dynamic Data Exchange

	<language> (DDE, originally Dynamic Data Linking, DDL) A
	{Microsoft Windows} 3 {hotlink} {protocol} that allows
	{application programs} 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.

	(1997-06-05)

Dynamic Data Linking

	{Dynamic Data Exchange}

dynamic DBMS

	{dynamic database management system}

Dynamic Drive Overlay

	<storage, software> (DDO) Software to allow a {system BIOS}
	that does not support {Logical Block Addressing} to access
	drives larger than 528 MB.

	The alternatives are to update the system BIOS or install an
	{EIDE controller} card with a suitable on-board BIOS.

	{Seagate
	(http://seagate.com/support/disc/drivers/discfile.shtml)}.

	(2001-03-18)

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.

	(1995-05-05)

Dynamic Host Configuration Protocol

	<protocol> (DHCP) A {protocol} that provides a means to
	dynamically allocate {IP address}es to computers on a {local
	area network}.  The {system administrator} assigns a range of
	IP addresses to DHCP and each client computer 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.

	DHCP is defined in {RFC 2131}.

	{Microsoft} introduced DHCP on their {NT server} with version
	3.5 in late 1994.

	{(http://dhcp.org/)}.

	(1998-11-22)

Dynamic HTML

	<language, World-Wide Web> (DHTML) The addition of
	{JavaScript} to {HTML} to allow web pages to change and
	interact with the user without having to communicate with the
	server.  JavaScript allows the behaviour of the page to be
	controlled by code that is downloaded with the HTML.  It does
	this by manipulating the {Document Object Model} (DOM).

	The term DHTML is often also taken to include the use of
	"style" information to give finer control of HTML layout.  The
	style information can be supplied as {Cascading Style Sheets}
	(CSS) or as "style" attributes (which can be manipulated by
	JavaScript).  Layers are often also used with DHTML.

	Both the JavaScript and style data can be included in the HTML
	file or in a separate file referred to from the HTML.  Some
	web browsers allow other languages (e.g. {VBScript} or {Perl})
	to be used instead of JavaScript but this is less common.

	DHTML can be viewed in {Internet Explorer} 4+, {Firefox} and
	{Netscape} Communicator 4+ but, as usual, Microsoft disagree
	on how DHTML should be implemented.  The {Document Object
	Model} Group of the {World Wide Web Consortium} is developing
	standards for DHTML.

	{(http://w3c.org/DOM/)}.

	(2005-10-17)

DYnamic LANguage

	<language> (Dylan) A simple {object-oriented} {Lisp} dialect,
	most closely resembling {CLOS} and {Scheme}, developed by
	Advanced Technology Group East at {Apple Computer}.

	{Thomas} is a Dylan {compiler} implemented in {Scheme}.

	See also {Marlais}.

	["Dylan(TM) an Object-Oriented Dynamic Language", {Apple
	Computer}, Eastern Research and Technology, April 1992].

	(1995-04-19)

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.

	(1995-03-07)

dynamic link library

	{Dynamically Linked Library}

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.

	Early DRAM chips, containing up to a 16k x 1 (16384 locations
	of one bit each), 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 miniaturisation,
	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 toward
	{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 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} can supply four successive bits on one data
	line by clocking the CAS\ line.

	{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.

	DRAM used for Video RAM ({VRAM}) has 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 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.

	(1996-07-11)

dynamic routing

	<networking> (Or "adaptive routing") {Routing} that adjusts
	automatically to network topology or traffic changes.

	(1997-05-08)

DYnamics ANAlyzer

	<language> (DYANA) An early language specialised for
	vibrational and other dynamic physical systems.

	[Sammet 1969, p. 628].

	(1997-07-20)

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}.

	(1996-07-11)

dynamic scoping

	{dynamic scope}

Dynamic Systems Development Method

	<programming> (DSDM) An independent software development
	framework.

	{DSDM.org Home (http://dsdm.org/)}.

	[What is it?]

	(2002-02-14)

dynamic translation

	<architecture> A {virtual machine} implementation approach,
	used to speed up execution of {byte-code} programs.  To
	execute a program unit such as a {method} or a {function}, the
	virtual machine compiles its bytecodes into (hardware) machine
	code.  The translated code is also placed in a cache, so that
	next time that unit's machine code can be executed
	immediately, without repeating the translation.

	This technique was pioneered by the commercial {Smalltalk}
	implementation currently known as {VisualWorks}, in the early
	1980s.  Currently it is also used by some implementations of
	the {Java Virtual Machine} under the name {JIT} (Just In Time
	compilation).

	[Peter L. Deutsch and Alan Schiffman. "Efficient
	Implementation of the Smalltalk-80 System", 11th Annual
	Symposium on Principles of Programming Languages, Jan 1984,
	pp. 297-302].

	(2002-04-15)

dynamic typing

	<programming> Enforcement of type rules at {run time} as
	opposed to {compile time}.  Dynamic typing catches more errors
	as run-time exceptions than {static typing}.

	{Tcl}, {Perl}, {PHP}, {Python} and {Visual Basic} are examples
	of dynamically typed languages.  A dynamically typed language
	may have {strong typing} or {weak typing}.

	(2004-07-20)

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://uk.dynix.com/classic.html)}.

	(1995-04-28)

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 interfaces}.  Dynix also sell other products and
	services for {database} enrichment, interconnectivity, and
	on-line and {CD-ROM} databases.

	{(http://uk.dynix.com/dynix.html)}.

	(1995-04-28)

dynner

	<data, jargon> /din'r/ 32 {bits}, by analogy with {byte}.
	Usage: rare and extremely silly.

	See also {playte}, {tayste}, {crumb}.

	[{Jargon File}]

	(1997-12-03)

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.

	(1995-03-17)

dz

	<networking> The {country code} for Algeria.

	(1999-01-27)

E

	1. An extension of {C++} with {database} types and
	{persistent} {objects}.  E is a powerful and flexible
	{procedural} programming language.  It is used in the {Exodus}
	database system.

	See also {GNU E}.

	{(ftp://ftp.cs.wisc.edu/exodus/E/)}.

	["Persistence in the E Language: Issues and Implementation",
	J.E. Richardson et al, Soft Prac & Exp 19(12):1115-1150 (Dec
	1989)].

	2. <language> A {procedural language} by Wouter van
	Oortmerssen with {semantics} similar to {C}.  E features
	lists, low-level {polymorphism}, {exception} handling, quoted
	expressions, {pattern matching} and {object} {inheritance}.
	{Amiga E} is a version for the {Amiga}.

	(1999-10-05)

E1

	<communications> A European {framing specification} for the
	transmission of 32 {DS0} (64 kb/s) data streams.  By
	extension, it can also denote the transmission rate required
	(2.048 Mb/s = 2048 kb/s).  Unlike {DS1} it is free of
	{bit-robbing}.

	(2002-03-22)

E2

	<communications> A European {framing specification} for the
	transmission of four multiplexed {E1} data streams, resulting
	in a transmission rate of 8.448 Mb/s (= 8448 kb/s).

	(2002-03-22)

E2ES

	{end-to-end solution}

E3

	<communications> A European {framing specification} for the
	transmission of 16 multiplexed {E1} data streams, resulting in
	a transmission rate of 34.368 Mb/s (= 34,368 kb/s).

	(2002-03-22)

E4

	<communications> A European {framing specification} for the
	transmission of 64 multiplexed {E1} data streams, resulting in
	a transmission rate of 139.264 Mb/s (= 139,264 kb/s).

	(2002-03-22)

E5

	<communications> A European {framing specification} for the
	transmission of 256 multiplexed {E1} data streams, resulting
	in a transmission rate of 565.148 Mbps (= 565,148 kb/s).

	(2002-03-22)

E-acute

	<character> "É" - a capital "E" with an acute accent.  Character
	code 201, 0xC9.  Entity reference: &amp;Eacute;.

	(2013-01-13)

EAF

	{Effort Adjustment Factor}

EAG

	{Extended Affix Grammar}

eager evaluation

	Any {evaluation strategy} where evaluation of some or all
	function arguments is started before their value is required.
	A typical example is {call-by-value}, where all arguments are
	passed evaluated.  The opposite of eager evaluation is
	{call-by-need} where evaluation of an argument is only started
	when it is required.

	The term "{speculative evaluation}" is very close in meaning
	to eager evaluation but is applied mostly to parallel
	architectures whereas eager evaluation is used of both
	sequential and parallel evaluators.

	Eager evaluation does not specify exactly when argument
	evaluation takes place - it might be done fully speculatively
	(all {redex}es in the program reduced in parallel) or may be
	done by the caller just before the function is entered.

	The term "eager evaluation" was invented by Carl Hewitt and
	Henry Baker <hbaker@netcom.com> and used in their paper ["The
	Incremental Garbage Collection of Processes", Sigplan Notices,
	Aug 1977.
	{(ftp://ftp.netcom.com/pub/hb/hbaker/Futures.html)}].  It was
	named after their "eager beaver" evaluator.

	See also {conservative evaluation}, {lenient evaluation},
	{strict evaluation}.

	(1994-12-22)

Eagle

	A {dBASE}-like dialect bundled with {Emerald Bay}, sold by
	{Migent} from 1986-1988, later renamed {Vulcan} when {Wayne
	Ratliff} reacquired the product.

EAI

	{Enterprise Application Integration}

EAPROM

	{Electrically Alterable Programmable Read-Only Memory}

earliest deadline first

	<operating system, algorithm> (EDF) A strategy for {CPU} or
	disk access {scheduling}.  With EDF, the task with the
	earliest deadline is always executed first.

	{Scan-EDF} is an example.

	(1995-11-15)

Early PL/I

	<language> (EPL) A {PL/I} subset dialect by McIlroy, Morris et
	al, the first running PL/I {compiler}.  It was used by {Bell
	Labs} and {MIT} to write {Multics}.  EPL had extensions to
	handle the segment/offset nature of {Multics} pointers.

	See also {REPL}, {TMG}.

	["EPL Reference Manual", Project MAC, April 1966].

	[Sammet 1969, p. 542].

	(1995-11-15)

EARN

	<networking> {European Academic and Research
	Network}.

	(1995-11-15)

EAROM

	Electrically Alterable Read-Only Memory.

	{EEPROM}

earthquake

	(IBM) The ultimate real-world shock test for computer
	hardware.  Hackish sources at {IBM} deny the rumor that the
	San Francisco Bay Area quake of 1989 was initiated by the
	company to test quality-assurance procedures at its California
	plants.

	[{Jargon File}]

	(1995-04-22)

Ease

	General purpose parallel programming language, combining the
	process constructs of CSP and the distributed data structures
	of Linda.  "Programming with Ease: Semiotic Definition of the
	Language", S.E. Zenith, <zenith-steven@yale.edu> Yale U
	TR-809, Jul 1990.

EASE II

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

EASIAC

	Early system on Midac computer.  Listed in CACM 2(5):16 (May
	1959).

EAST

	A {Eureka} project developing a {software engineering}
	{platform}.

	(1994-12-07)

easter egg

	<jargon> (From the custom of the Easter Egg hunt observed in
	the US and many parts of Europe)

	1. A message hidden in the {object code} of a program as a
	joke, intended to be found by persons disassembling or
	browsing the code.

	2. A message, graphic, sound effect, or other behaviour
	emitted by a program (or, on an {IBM PC}, the {BIOS} {ROM}) in
	response to some undocumented set of commands or keystrokes,
	intended as a joke or to display program credits.

	One well-known early Easter egg found in a couple of
	{operating systems} caused them to respond to the command
	"make love" with "not war?".  Many {personal computers}, and
	even satellite control computers, have much more elaborate
	eggs hidden in {ROM}, including lists of the developers' names
	(e.g. {Microsoft Windows} 3.1x), political exhortations and
	snatches of music.  The {Tandy} Color Computer 3 ({CoCo}) had
	images of the entire development team.  Microsoft {Excel} 97
	includes a flight simulator!

	{(http://eeggs.com/)}.

	[{Jargon File}]

	(2003-06-23)

Easter egging

	<jargon> ({IBM}, From the custom of the Easter Egg hunt
	observed in the US and many parts of Europe) The act of
	replacing unrelated components more or less at random in the
	hope that a malfunction will go away.  Hackers consider this
	the normal operating mode of {field circus} techs and do not
	love them for it.

	Compare {Easter egg}, {shotgun debugging}.

	[{Jargon File}]

	(1998-03-18)

Eastern Washington University

	A university 20 miles southwest of Spokane, WA on the edge of
	the rolling Palouse Prairie.

	{(http://ewu.edu/)}.

	Address: Cheney, Washington, USA.

	(1995-02-28)

EASY FOX

	An early system on the {JOHNNIAC} computer.

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

eat flaming death

	<humour, abuse> A construction popularised among hackers by
	the infamous {CPU Wars} comic; supposedly derive from a
	famously turgid line in a WWII-era anti-Nazi propaganda comic
	that ran "Eat flaming death, non-Aryan mongrels!" or something
	of the sort (however, it is also reported that the Firesign
	Theater's 1975 album "In The Next World, You're On Your Own"
	included the phrase "Eat flaming death, fascist media pigs";
	this may have been an influence).  Used in humorously
	overblown expressions of hostility. "Eat flaming death,
	{EBCDIC} users!"

	[{Jargon File}]

	(2006-12-12)

eating one's own dogfood

	<programming> When a developer uses their own code for their
	own daily needs.  Being a user as well as a developer creates
	the user empathy that is the hallmark of good software.

	The term seems to have originated at {Microsoft}.

	{(http://www.joelonsoftware.com/items/2004/04/16.html)}

	(2006-12-12)

eating your own dogfood

	{eating one's own dogfood}

EAX

	{Environmental Audio eXtensions}

EBASIC

	<language> A {BASIC} by Gordon Eubanks, now at {Symantec},
	that led to {CBASIC}.

	(2006-12-12)

EBCDIC

	{Extended Binary Coded Decimal Interchange Code}

EBCIDIC

	<spelling> It's spelled "{EBCDIC}".

	(1996-12-13)

EBNF

	<language> {Extended Backus-Naur Form}.

Ebone

	A pan-European {backbone} network service.

ec

	<networking> The {country code} for Ecuador.

	(1999-01-27)

EC++

	A preprocessor
	by Glauco Masotti <masotti@lipari.usc.edu>
	that translates Extended C++ into C++.

	{(ftp://ftp.uu.net/languages/c++/EC++.tar.Z)}.

	(1989-10-10)

ECAP II

	Electronic Circuit Analysis Program.  Simple language for
	analysing electrical networks.  "Introduction to Computer
	Analysis: ECAP for Electronics Technicians and Engineers",
	H. Levin, P-H 1970.

E-carrier system

	<communications> A series of {digital} transmission formats
	promulgated by the {ITU} and used outside of North America and
	Japan.

	The basic unit of the E-carrier system is the {DS0}, which has
	a transmission rate of 64 Kbps, and is commonly used for one
	{voice circuit}.  The {E1} format consists of 32 DS0 channels,
	for a total capacity of 2.048 Mbps.  {E2}, {E3}, {E4}, and
	{E5} circuits carry multiple E1 channels multiplexed,
	resulting in transmission rates of up to 565.148 Mbps.

	The E-carrier system is similar to, and compatible with, the
	{T-carrier system} used in North America, but has higher
	capacity since it uses {out-of-band signaling} in contrast to
	the {in-band signaling} or {bit-robbing} used in the T-system.

	(2000-03-10)

Ecash

	<application> A trial form of {electronic funds transfer} over
	the {Internet} (and soon by {electronic mail}).

	The ecash software stores digital money, signed by a bank, on
	the user's local computer.  The user can spend the digital
	money at any shop accepting ecash, without the trouble of
	having to open an account there first, or having to transmit
	credit card numbers.  The shop just has to accept the money,
	and deposit it at the bank.  The security is provided by a
	{public-key} {digital signature}.

	There process involves the issuing banks who exchange real
	money for ecash, users who have and spend ecash, shops who
	accept ecash payments, and clearing banks who clear payments
	received by shops.

	At the moment, all users and shops must have an account at
	{DigiCash}'s own bank, the "First Digital Bank" at
	bank.digicash.com.  They can withdraw money from the bank, and
	convert it to ecash.  Shops can be started by any ecash user.

	{(http://digicash.com/ecash/ecash-home.html)}.

	(1995-04-10)

ECC

	{error detection and correction}

Eccles-Jordan circuit

	{flip-flop}

Echidna

	{Constraint logic programming} embedded in an
	{object-oriented} language.  The {syntax} is an extension of
	{Edinburgh Prolog}.

	["Hierarchical Arc Consistency Applied to Numeric Processing
	in Constraint Logic Programming", G. Sidebottom et al,
	TR-91-06, CSS-IS, Simon Fraser U, and Comp Intell 8(4)
	(1992)].

	{(ftp://cs.sfu.edu/pub/ecl/papers)}.

	E-mail: <expert@cs.sfu.edu>.

	(1994-12-08)

echo

	1. A {topic group} on {FidoNet}'s {echomail} system.

	Compare {newsgroup}.

	2. A {Unix} command that just prints its arguments.

	[{Jargon File}]

echo cancellation

	A process which removes unwanted echoes from the signal on a
	telephone line.  Echoes are usually caused by impedance
	mismatches along an analogue line.

ECHT

	European Conference on {Hypertext}.

ECIP2

	An {Esprit} project on the definition of a specification
	language at the requirement level.

ECIS

	{European Committee for Interoperable Systems}

Eckert-Mauchly Computer Corporation

	<company> The company which designed and built {Univac}
	computers.

	(1995-03-01)

ECL

	1. <hardware> {Emitter Coupled Logic}.

	2. <language> Extensible {CL}.

	Wegbreit, ca 1970.

	["The ECL Programming System", B. Wegbreit, Proc FJCC
	39:253-261, AFIPS (Fall 1971)].

	["ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U
	(Dec 1974)].

	(1994-11-09)

ECLIPSE

	A {Prolog} + {CLP} compiler from {ECRC}.

ECM

	<storage> {error correcting memory}.

	(1995-10-10)

ECMA

	1. {European Computer Manufacturers Association},
	   now {ECMA International}.

	2. A subset of {ALGOL}.  [Sammet 1969, p.180].

	(1998-09-07)

ECMA International

	<body> (Formerly European Computer Manufacturers Association)
	An industry association founded in 1961 and dedicated to the
	standardisation of information and communication systems.

	ECMA edits {standards} and technical reports.  All ECMA
	publications are available free of charge.

	The best known ECMA standard is ECMA 262, defining the
	{scripting language} {ECMAScript}.

	(2003-06-23)

ECMAScript

	<language> ({ECMA} standard 262, {ISO} standard 16262) The
	standardised version of the core {JavaScript} language.

	(2005-07-28)

Ecole Normale Superieure

	<body> (ENS) A higher education and research institution in
	Paris, France.

e-commerce

	{electronic commerce}

Econet

	1. One of the IGC networks.  EcoNet serves individuals and
	organisations working for environmental preservation and
	sustainability.  Important issues covered include: global
	warming, energy policy, rainforest preservation, legislative
	activities, water quality, toxics and environmental education.

	EcoNet users can send and receive private messages, including
	fax and telex, to and from more than 18,000 international
	users on the APC networks or to millions on other networks.
	EcoNet seeks to build coalitions and partnerships with
	activist and non-profit organisations to develop the use of
	the electronic communications medium.  EcoNet provides
	subsidies and financial incentives to environmental
	organisations and committed individuals who foster the
	effectiveness of organisations through the use of electronic
	networking.  FTP/Telnet: igc.apc.org.

	2. A network produced by {Acorn Computers} Ltd. for the {BBC
	Microcomputer} and its successors.

ECOOP

	European Conference on Object-oriented Programming.

ECP

	1. {Engineering Change Proposal}.

	2. {Enhanced Capabilities Port}.

	3. {Extended Capabilities Port}.

	4. {Extended Concurrent Prolog}.

	(1997-12-01)

ECRC

	{European Computer-Industry Research Centre GmbH}

ECRC-Prolog

	Evidently {Prolog} with {coroutine} extensions.

	See also {SEPIA}.

	["ECRC-Prolog User's Manual Version 1.0", K. Estenfeld,
	TR-LP-08 ECRC, Feb 1986].

	(1994-12-01)

ECSL

	Extended CSL.

	A {discrete simulation} language, the successor to {CSL}.

	["Extended Control and Simulation Language", A.T. Clementson,
	Comp J 9(3):215-220 (1966)].

	(1994-12-08)

ECSP

	An extension to {CSP}, supporting dynamic communication
	channels and nested processes.

	["Static Type Checking of Interprocess Communication in ECSP",
	F. Baiardi et al, SIGPLAN Notices 19(6):290-299 (June 1984)].

	(1994-12-08)

ECSS II

	Extendable Computer System Simulator.

	An extension of {SIMSCRIPT II}.

	["The ECSS II Language for Simulating Computer Systems",
	D.W. Kosy, R-1895-GSA, Rand Corp].

	(1994-12-08)

ECSSL

	Formerly APSE.  An equation-oriented specification language
	for {continuous simulations}.  The {compiler} outputs
	{HYTRAN}, which must be run on an analog processor.

	(1994-12-08)

ed

	<tool, text> (editor) {Unix}'s {line editor}.  Ed is rarely
	used by humans since even {vi} is better.

	{Unix manual page}: ed(1).

	(1999-03-01)

EDA

	1. {Electronic Design Automation}.

	2. {Exploratory Data Analysis}.

	3. A product line from {Dazix}.

	(1995-10-02)

EDAC

	{error detection and correction}

e-ddress

	{electronic mail address}

Eden

	<language, operating system> A {concurrent},
	{object-oriented}, distributed {operating system} and
	language, {Eden Programming Language} (EPL), based on {remote
	procedure call}.  It has both {synchronous} and {asynchronous}
	{message passing}.

	["The Eden System: A Technical Review", G. Almes et al, IEEE
	Trans Soft Eng SE-11(1):43-59, Jan 1985].

	(2009-05-26)

Eden Programming Language

	<language> (EPL) A language developed at the {University of
	Washington}, based on {Concurrent Euclid} and used with the
	{Eden} distributed operating system.

	EPL influenced {Emerald} and {Distributed Smalltalk}.

	["EPL Programmer's Guide", A. Black et al, U Washington June
	1984].

	{Eden}

EDF

	{earliest deadline first}

EDI

	{Electronic Data Interchange}

EDI analyst

	<job> A person who introduces {EDI} {standards} and
	technology.  An EDI analyst makes decisions for information
	construction and selects resources for EDI processing and
	application expansion.  He coordinates processing and
	transmission schedules and mapping of standard data formats.
	He generally serves as a key contact for trading partners and
	value-added network consultants.

	(2004-03-11)

EDIF

	Electronic Design Interchange Format.

	Not a programming language, but a format to simplify data
	transfer between CAD/CAE systems.  LISP-like syntax.  See also
	{Berkeley EDIF200}.

	E-mail: <edif-support@cs.man.ac.uk>
	{(ftp://edif.cs.man.ac.uk/pub/edif)}.

	["Designer's Guide to EDIF", E. Marx et al, EDN 1987."EDIF
	Electronic Design Interchange Format Version 200", ANSI/EIA
	Standard 548].

	(1995-03-10)

EDIFACT

	{ISO 9735}:1988

Edinburgh Multi Access System

	<operating system> (EMAS) One of the first {operating systems}
	written in a {high-level language} ({IMProved Mercury
	autocode}), apparently predating {Unix}.

	[Papers in J. {British Computer Society}].

	[More info?  Dates?]

	(1996-04-07)

Edinburgh Prolog

	Prolog dialect which eventually developed into the standard,
	as opposed to Marseille Prolog.  (The difference is largely
	syntax.)  Clocksin & Mellish describe Edinburgh Prolog.
	Version: C-Prolog.

	(1995-03-10)

Edinburgh SML

	(EdML) Implementation of the {Core} language of {SML}.
	{Byte-code interpreter} in {C}.  Ported to {Amiga}, {Atari},
	{Archimedes} and {IBM PC}.

	Version: 0.44.

	{(ftp://ftp.dcs.ed.ac.uk/pub/edml/EDML4)}.

	E-mail: <lfcs@ed.ac.uk>.

	(1994-12-08)

Edison

	1. (Named after the American inventor Thomas Edison
	(1847-1931))

	A simplified Pascal by Per Brinch Hansen with {modules} and
	{concurrency} (cobegin/coend).

	["Edison - A Multiprocessor Language", P. Brinch Hansen, CS
	Dept, USC, Sep 1980].

	["Programming a Personal Computer", Brinch Hansen, P-H 1977].

	2. A language which adds an {OPS5}-like {rete}-based
	{production system} system to {C}.  It is implemented as a {C}
	{preprocessor}.

	["Edison, A Unix and C Friendly Rete Based Production System",
	B. Thirion, SIGPLAN Notices 27(1):75-84 (Jan 1992)].

	(1994-12-08)

edit

	<application> Use of some kind of {editor} program to modify a
	{document}.  Also used to refer to the modification itself,
	e.g. "my last edit only made things worse".

	To edit something usually implies that the changes will
	persist for some time, usually by saving the edited document
	to a {file}, though one might open an editor, create a new
	document in memory, print it and exit without saving it to
	disk.

	Editing is normally done by a human but see, e.g., {sed}.

	(2007-07-11)

editor

	<application> A program used to {edit} a {document}.

	Different types of document have different editors, e.g. a
	{text editor} for {text files}, an {image editor} for
	{images}, an {HTML editor} for {web pages}, etc.  The term can
	be used for pretty much any kind of data modification, e.g. a
	{disk sector editor} which operates directly on the {hard
	disk}, bypassing the {filesystem}.

	(2007-07-11)

EDL

	<language>

	1. {Experiment Description Language}.

	2. {Event Description Language}.

EDM

	{Electronic Data Management}

EdML

	{Edinburgh SML}

EDMS

	{Electronic Document Management System}

EDO DRAM

	{Extended Data Out Dynamic Random Access Memory}

EDO memory

	{Extended Data Out Dynamic Random Access Memory}

EDO RAM

	{Extended Data Out Dynamic Random Access Memory}

EDP

	{Electronic Data Processing}

EDP auditor

	<job> A person who analyses system functions and operations to
	determine adequate security and controls.  An EDP analyst
	evaluates systems and operational procedures and reports
	findings to senior management.  He writes ad hoc report
	programs using {4GLs} and specialised audit software.

	(2004-03-11)

EDRAM

	{Enhanced Dynamic Random Access Memory}

EDS

	{Enhanced Directory Service}

EDS+

	<database, hardware> A {database accelerator} built by {ICL}
	as part of the {EDS} project.  The machine has up to 64 nodes,
	each node having 64Mb of memory, 2 {SPARC} processors and a
	1Gb of disk.

	See also {PARADE}.

	(1994-11-02)

EDSAC

	{Electronic Discrete Sequential Automatic Computer}

edu

	<networking> ("education") The {top-level domain} for
	educational establishments in the USA (and some other
	countries).  E.g. "mit.edu".  The UK equivalent is "ac.uk".

	(1999-01-26)

education contact

	<job> The person at a company who should receive educational
	material.

	(2004-03-11)

edutainment

	<application> Interactive education and entertainment services
	or software, usually supplied commercially via a cable network
	or on {CD-ROM}.

	(1995-03-30)

Edward Lorenz

	<person> A mathematical meteorologist who discovered the
	{Lorenz attractor} in the 1960s.

	(1996-01-13)

Edward Yourdon

	<person> A {software engineering} consultant, widely known as
	the developer of the "{Yourdon method}" of structured systems
	analysis and design, as well as the co-developer of the
	Coad/Yourdon method of {object-oriented analysis} and design.
	He is also the editor of three software journals - American
	Programmer, Guerrilla Programmer, and Application Development
	Strategies - that analyse software technology trends and
	products in the United States and several other countries
	around the world.

	Ed Yourdon received a B.S. in Applied Mathematics from {MIT},
	and has done graduate work at MIT and at the Polytechnic
	Institute of New York.  He has been appointed an Honorary
	Professor of {Information Technology} at Universidad CAECE in
	Buenos Aires, Argentina and has received numerous honors and
	awards from other universities and professional societies
	around the world.

	He has worked in the computer industry for 30 years, including
	positions with {DEC} and {General Electric}.  Earlier in his
	career, he worked on over 25 different {mainframe} computers,
	and was involved in a number of pioneering computer projects
	involving {time-sharing} and {virtual memory}.

	In 1974, he founded the consulting firm, {Yourdon, Inc.}.  He
	is currently immersed in research in new developments in
	software engineering, such as object-oriented software
	development and {system dynamics} modelling.

	Ed Yourdon is the author of over 200 technical articles; he
	has also written 19 computer books, including a novel on
	{computer crime} and a book for the general public entitled
	Nations At Risk.  His most recent books are Object-Oriented
	Systems Development (1994), Decline and Fall of the American
	Programmer (1992), Object-Oriented Design (1991), and
	Object-Oriented Analysis (1990).  Several of his books have
	been translated into Japanese, Russian, Chinese, Spanish,
	Portugese, Dutch, French, German, and other languages, and his
	articles have appeared in virtually all of the major computer
	journals.

	He is a regular keynote speaker at major computer conferences
	around the world, and serves as the conference Chairman for
	Digital Consulting's SOFTWARE WORLD conference.  He was an
	advisor to Technology Transfer's research project on software
	industry opportunities in the former Soviet Union, and a
	member of the expert advisory panel on CASE acquisition for
	the U.S. Department of Defense.

	Mr. Yourdon was born on a small planet at the edge of one of
	the distant red-shifted galaxies.  He now lives in the Center
	of the Universe (New York City) with his wife, three children,
	and nine Macintosh computers, all of which are linked together
	through an Appletalk network.

	(1995-04-16)

Edwin

	{MIT Scheme}

ee

	<networking> The {country code} for Estonia.

	(1999-01-27)

EEMA

	{European Electronic Messaging Association}

EEPROM

	{Electrically Erasable Programmable Read-Only Memory}

	See also {EAPROM}.

EER

	An extended {entity-relationship model}.

E. F. Codd

	<person> The inventor of the {relational data model} of
	{databases}.

	[Name?  More?]

	(1995-11-29)

EFF

	{Electronic Frontier Foundation}

effective computable

	<theory> A term describing a {function} for which there is an
	{effective algorithm} that correctly calculates the function.
	The algorithm must consist of a {finite} sequence of
	instructions.

	(1996-05-03)

effective number of bits

	<hardware> (ENOB) An indication of the quality of an {analog
	to digital converter}.  The measurement is related to the test
	frequency and the {signal-to-noise ratio}.

	[Better definition?]

	(1998-06-15)

Effort Adjustment Factor

	<programming> (EAF) A term used in {COCOMO} to calculate a
	{cost driver attribute}'s effect on a project.  It is the
	product of the effort multipliers corresponding to each of the
	cost drivers for the project.

	(1996-05-29)

EFI

	{Extensible Firmware Interface}

EFL

	{Extended Fortran Language}

EFNet

	<networking> (From "Eris-free Net", eris being
	eris.berkeley.edu).

	The dominant {Internet Relay Chat} network.

	See also {Undernet}.

	(1995-11-09)

Eforth

	<language> A system produced by Ting to help implementers
	produce Forths for different targets, using {assemblers}.

	(1996-07-28)

E-Forth

	<language> A {Forth} {interpreter} written in {Motorla 6809}
	assembly code by Lennart Benschop
	<lennart@blade.stack.urc.tue.nl>.  Posted to {Usenet}
	newsgroup {alt.sources} on 1993-11-03 with a {Motorola 6809}
	{assembler}.

	(1993-11-03)

EFT

	{electronic funds transfer}

EFTPOS

	{Electronic Funds Transfer Point of Sale}

EFTS

	{electronic funds transfer}

eg

	<networking> The {country code} for Egypt.

	(1999-01-27)

EGA

	{Enhanced Graphics Adapter}

Eggdrop

	<communications> The world's most popular {open source IRC
	bot}, designed for flexibility and ease of use.  Eggdrop is
	freely distributable under the {GPL}.  It was originally
	developed by Robey Pointer but he no longer works on it.

	Eggdrop is designed to run on {Linux}, {*BSD}, {SunOs},
	{Windows}, {Mac OS X} and other platforms.  It is extendable
	with {Tcl} scripts and/or {C} modules.  It supports
	{Undernet}, {DALnet}, {EFnet}, {IRCnet}, and {QuakeNet}.  It
	can form {botnets} and share {partylines} and userfiles
	between bots.

	(2005-07-07)

egosurfing

	<jargon> Scanning the {World-Wide Web}, databases, print media
	or research papers looking for the mention of your name.

	(1997-04-17)

EGP

	{Exterior Gateway Protocol}

egrep

	<tool> An extended version of the {Unix} {grep} command.
	Egrep accepts extended {regular expressions} (REs) including
	"*" following multi-character REs; "+" (one or more matches);
	"?"  (zero or one matches); "|" separating two REs matches
	either.  REs may be bracketed with ().  Despite its additional
	complexity, egrep is usually faster than {fgrep} or {grep}.

	(2004-07-20)

Egyptian brackets

	<programming, humour> A humourous term for {K&R} {indent style},
	referring to the "one hand up in front, one down behind" pose
	which popular culture inexplicably associates with Egypt.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2011-11-30)

Eh

	/A/.  Software Portability Group, U Waterloo.  A typeless
	language derived from (and similar to) B.  Provides guaranteed
	order of evaluation for side effects in expressions.  Also
	character indexing operators.

	See also {Zed}.

	["Eh Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo,
	Nov 1976].

eh

	<networking> The {country code} for Western Sahara.

	(1999-01-27)

eHelp Corporation

	<company> A vendor of {Microsoft} {Windows} application
	development tools such as {RoboHELP} and {RoboDemo}.

	EHelp were formerly (around 1997) Blue Sky Software.

	{eHelp Home (http://ehelp.com/)}.

	Address: 7777 Fay Avenue, Suite 201, La Jolla, CA 92037, USA.
	Telephone: +1-800-793-0364, +1 (619) 459 6365.  Fax: +1 (619)
	459 6366.

	(2003-07-24)

EHTS

	Emacs HyperText System.

	An experimental multi-user {hypertext} system from the
	{University of Aalborg}.  It consists of a text editor (based
	on {Epoch} and {GNU Emacs} and written in {elisp}) and a
	graphical {browser} (based on {XView} and written in {C})
	running under the {X Window System} and {OpenWindows}.  Both
	tools use {HyperBase} as their {database}.

	(1995-01-05)

EIA

	{Electronics Industry Association}

EIA-232

	<communications, standard> (Formerly "RS-232") The most common
	{asynchronous} {serial line} {standard}.  EIA-232 is the {EIA}
	equivalent of {ITU-T} {V.24}, and {V.28}.

	EIA-232 specifies the {gender} and pin use of connectors, but
	not their physical type.  {RS-423} specifies the electrical
	signals.  25-way {D-type} connectors are common but often only
	three wires are connected - one ground (pin 7) and one for
	data in each direction.  The other pins are primarily related
	to {hardware handshaking} between sender and receiver and to
	{carrier detection} on {modems}, inoperative circuits, busy
	conditions etc.

	The standard classifies equipment as either {Data
	Communications Equipment} (DCE) or {Data Terminal Equipment}
	(DTE).  DTE receives data on pin 3 and transmits on pin 2
	(TD).  A DCE EIA-232 interface has a female connector.  DCE
	receives data from DTE on pin 2 (TD) and sends that data out
	the analog line.  Data received from the analog line is sent
	by the DCE on pin 3(RD).

	Originally DCE was a modem and DTE was a computer or terminal.
	The terminal or computer was connected (via EIA-232) to two
	modems, which were connected via a telephone line.

	The above arrangement allows a computer or terminal to be
	connected to a modem with a straight-through (2-2, 3-3) cable.
	It is common, however, to find equipment with the wrong sex
	connector or with pins two and three reversed, requiring the
	insertion of a cable or adaptor wired as a {gender mender} or
	{null modem}.  Such an adaptor is also required when
	connecting a computer directly to a terminal or to another
	computer without the use of modems.

	(1999-12-28)

EIA-232C

	<communications, standard> The {EIA} equivalent of {ITU-T}
	{standard} {V.24}.

	The {EIA} EIA-232C electrical signal is unbalanced +/- 5 to +/-
	12V, {polar} {non return to zero} and handles data speeds up
	to 19.2 kilobits per second.

	[Correct name?  Relationship to RS-232C? Difference from
	EIA-232?]

	(2004-08-02)

EIA-422

	<communications, standard> (Formerly "RS-422") An {EIA}
	{serial line} {standard} which specifies 4-wire,
	{full-duplex}, {differential line}, {multi-drop}
	communications.  The mechanical connections for this interface
	are specified by {EIA-449}.  The maximum cable length is
	1200m.  Maximum data rates are 10Mbps at 1.2m or 100Kbps at
	1200m.  EIA-422 cannot implement a truly multi-point
	communications network (such as with {EIA-485}), although only
	one driver can be connected to up to ten receivers.  The best
	use of EIA-422 is probably in {EIA-232} extension cords.

	{Comparing EIA-422, 423, 449 to RS-232-C
	(http://rad.com/networks/1995/rs232/rs449.htm)}.  {Details
	on RS-232, 422, 423 and 485
	(http://rs485.com/rs485spec.html)}.

	(2002-10-05)

EIA-423

	<communications, standard> (Formerly "RS-423") An {EIA}
	{serial line} {standard} which specifies {single ended}
	communication.  The mechanical connections for this interface
	are specified by {EIA-449}.  Although it was originally
	intented as a successor of {EIA-232} it is not widely used.
	The {EIA-232} standard has its limits at 20kbps and 1.5m.
	EIA-423 can have a cable lenght of 1200m, and achieve a data
	rate of 100Kbps.  When no data is being transmitted, the
	serial line is at a logical zero (+3 to +15 Volts).  A logical
	one is represented as a signal level of -15 to -3 Volts.  In
	practise, one often finds signals which switch between
	nominally +4.5 and +0.5 Volts.  Such signals are large by
	modern standards, and because the impedance of the circuits is
	relatively high, the allowable bit rate is modest.  The data
	is preceded by a start bit which is always a logical
	one.  There may be seven or eight bits of data, possibly
	followed by an even or odd parity bit and one or two stop
	bits.  A "break" condition is a continuous logical one on the
	line which is what would be observed if nothing was connected.

	{Comparing EIA-422, 423, 449 to RS-232-C
	(http://rad.com/networks/1995/rs232/rs449.htm)}.  {Details
	on RS-232, 422, 423 and 485
	(http://rs485.com/rs485spec.html)}.

	(2002-10-05)

EIA-449

	<communications, standard> (Formerly "RS-449") An EIA
	{standard} for a 37-pin or 9-pin {D-type} connector
	(functional- and mechanical characteristics), usually used
	with {EIA-422} or {EIA-423} electrical specifications.

	(2002-10-05)

EIA-485

	<communications, standard> (Formerly "RS-485") An {EIA}
	{serial line} {standard} which specifies 2-wire,
	{half-duplex}, {differential line}, {multi-point}
	communications.  Maximum cable length is 1200m.  Maximum data
	rates are 10Mbps at 1.2m or 100Kbps at 1200m.  EIA-485 can
	implement a truly multi-point communications network, and
	specifies up to 32 drivers and 32 receivers on a single
	(2-wire) bus.

	{Differential SCSI} uses EIA-485.

	{Details on RS-232, 422, 423, and 485
	(http://rs485.com/rs485spec.html)}.

	(2003-04-18)

EIA-530

	<communications, standard> (Formerly "RS-530") An {EIA}
	{serial line} {standard} which specifies {differential line}
	and {singe ended} communications.  Combining {EIA-422} and
	{EIA-423}, and defining a 25-pin connector for mechanical
	connections, this standard serves as a complement to {EIA-232}
	for high(er) speed data transmissions.

	(2002-10-05)

EIDE

	{Advanced Technology Attachment Interface with Extensions}

Eiffel

	<language> An {object-oriented} language produced by {Bertrand
	Meyer} in 1985.  Eiffel has {classes} with {multiple
	inheritance} and {repeated inheritance}, {deferred class}es
	(like {Smalltalk}'s {abstract class}), and {clusters} of
	classes.  Objects can have both {static types} and {dynamic
	types}.  The dynamic type must be a descendant of the static
	(declared) type.  {Dynamic binding} resolves {multiple
	inheritance} clashes.  It has flattened forms of classes, in
	which all of the inherited features are added at the same
	level and {generic class}es parametrised by type.

	Other features are {persistent objects}, {garbage collection},
	{exception} handling, {foreign language interface}.  Classes
	may be equipped with {assertions} (routine preconditions and
	postconditions, class {invariants}) implementing the theory of
	"{Design by Contract}" and helping produce more reliable
	software.

	Eiffel is compiled to {C}.  It comes with libraries containing
	several hundred classes: data structures and {algorithms}
	(EiffelBase), graphics and user interfaces (EiffelVision) and
	language analysis (EiffelLex, EiffelParse).

	The first release of Eiffel was release 1.4, introduced at the
	first {OOPSLA} in October 1986.  The language proper was first
	described in a University of California, Santa Barbara report
	dated September 1985.

	Eiffel is available, with different libraries, from several
	sources including {Interactive Software Engineering}, USA (ISE
	Eiffel version 3.3); Sig Computer GmbH, Germany (Eiffel/S);
	and {Tower, Inc.}, Austin (Tower Eiffel).

	The language definition is administered by an open
	organisation, the Nonprofit International Consortium for
	Eiffel (NICE).  There is a standard kernel library.

	An {Eiffel source checker} and compiler {front-end} is
	available.

	Latest version: 4.2, as of 1998-10-28.

	Latest version: ISE Eiffel version 3.3.

	See also {Sather}, {Distributed Eiffel}, {Lace}, {shelf}.

	E-mail: <queries@eiffel.com>.

	["Eiffel: The Language", Bertrand Meyer, P-H 1992].

	(1998-11-15)

Eiffel source checker

	A compiler {front-end} for {Eiffel} 3 by Olaf Langmack
	<langmack@inf.fu-berlin.de> and Burghardt Groeber.  It was
	generated automatically with the {Karlsruhe toolbox} for
	compiler construction according to the most recent public
	language definition.  The {parser} derives an easy-to-use
	{abstract syntax tree}, supports elementary error recovery and
	provides a precise source code indication of errors.  It
	performs a strict syntax check and analyses 4000 lines of
	source code per second on a {Sun} {SPARC} {workstation}.

	{(ftp://ftp.fu-berlin.de/pub/heron/ep.tar.Z)}.

	(1992-12-14)

eigenvalue

	<mathematics> The factor by which a {linear transformation}
	multiplies one of its {eigenvectors}.

	(1995-04-10)

eigenvector

	<mathematics> A {vector} which, when acted on by a particular
	{linear transformation}, produces a scalar multiple of the
	original vector.  The scalar in question is called the
	{eigenvalue} corresponding to this eigenvector.

	It should be noted that "vector" here means "element of a
	vector space" which can include many mathematical entities.
	Ordinary vectors are elements of a vector space, and
	multiplication by a matrix is a {linear transformation} on
	them; {smooth functions} "are vectors", and many partial
	differential operators are linear transformations on the space
	of such functions; quantum-mechanical states "are vectors",
	and {observables} are linear transformations on the state
	space.

	An important theorem says, roughly, that certain linear
	transformations have enough eigenvectors that they form a
	{basis} of the whole vector states.  This is why {Fourier
	analysis} works, and why in quantum mechanics every state is a
	superposition of eigenstates of observables.

	An eigenvector is a (representative member of a) {fixed point}
	of the map on the {projective plane} induced by a {linear
	map}.

	(1996-09-27)

eight-bit clean

	<software> A term which describes a system that deals
	correctly with extended {character sets} which (unlike ASCII)
	use all eight {bits} of a {byte}.  Many programs and
	communications systems assume that all characters have codes
	in the range 0 to 127.  This leaves the top bit of each byte
	free for use as a {parity} bit or some kind of {flag bit}.
	These assumptions break down when the program is used in some
	non-english-speaking countries with larger alphabets.

	If a binary file is transmitted via a communications link
	which is not eight-bit clean, it will be corrupted.  To combat
	this you can encode it with {uuencode} which uses only {ASCII}
	characters.  There are some links however which are not even
	"seven-bit clean" and cause problems even for uuencoded data.

	(1995-01-05)

eight queens problem

	{eight queens puzzle}

eight queens puzzle

	<algorithm> A puzzle in which one has to place eight queens on
	a chessboard such that no queen is attacking any other,
	i.e. no two queens occupy the same row, column or diagonal.
	One may have to produce all possible such configurations or
	just one.

	It is a common students assignment to devise a program to
	solve the eight queens puzzle.  The {brute force} {algorithm}
	tries all 64*63*62*61*60*59*58*57 = 178,462,987,637,760
	possible layouts of eight pieces on a chessboard to see which
	ones meet the criterion.  More intelligent algorithms use the
	fact that there are only ten positions for the first queen
	that are not reflections of each other, and that the first
	queen leaves at most 42 safe squares, giving only
	10*42*41*40*39*38*37*36 = 1,359,707,731,200 layouts to try,
	and so on.

	The puzzle may be varied with different number of pieces and
	different size boards.

	[Best algorithm?]

	(1999-07-28)

eighty-column mind

	<abuse> The sort said to be possessed by persons for whom the
	transition from {punched card} to {paper tape} was traumatic
	(nobody has dared tell them about disks yet).  It is said that
	these people, including (according to an old joke) the founder
	of {IBM}, will be buried "face down, 9-edge first" (the 9-edge
	being the bottom of the card).  This directive is inscribed on
	IBM's 1402 and 1622 card readers and is referenced in a famous
	bit of doggerel called "The Last Bug", the climactic lines of
	which are as follows:

	  He died at the console
	  Of hunger and thirst.
	  Next day he was buried,
	  Face down, 9-edge first.

	The eighty-column mind is thought by most {hackers} to
	dominate IBM's customer base and its thinking.

	See {fear and loathing}, {card walloper}.

	[{Jargon File}]

	(1996-08-16)

eighty-twenty rule

	<programming> The program-design version of the law of
	diminishing returns.  The 80/20 rule says that roughly 80% of
	the problem can be solved with 20% of the effort that it would
	take to solve the whole problem.

	For example, parsing {e-mail addresses} in "From:" lines in
	e-mail messages is notoriously difficult if you follow the RFC
	2822 specification.  However, about 60% of actual "From:"
	lines are in the format "From: Their Name <user@host>", with a
	far more constrained idea of what can be in "user" or "host"
	than in RFC 2822.  Another 25% just add double-quotes around
	"Their Name".  Matching just those two patterns would thus
	cover 85% of "From:" lines, with a tiny portion of the code
	required to fully implement RFC2822.

	(Adding support for "From: user@host" and "From: user@host
	(Their Name) " brings coverage to almost 100%, leaving only
	really baroque things that RFC-2822 permits, like "From:
	Pete(A wonderful \) chap) <pete(his account)@silly.test(his
	host)" or the like.)

	It is an eternal question whether too much attention is paid
	to the 80/20 rule (leading to systems that are irrevocably
	broken for "unusual" cases), or too little (leading to systems
	that sacrifice usability in the typical case, just so that
	rare cases can work properly).

	Compare: {KISS Principle}

	(2003-11-17)

EIRP

	{equivalent isotropically radiated power}

EISA

	{Extended Industry-Standard Architecture}

EJB

	{Enterprise JavaBeans}

Eksi Sozluk

	<World-Wide Web> ("Sour Dictionary") An online, Turkish,
	colaborative, hypertext dictionary.

	{Eksi Sozluk Home (http://sourtimes.org/)}.

	(2006-11-02)

EL1

	Extensible Language One.  An extensible language by
	B. Wegbreit of Harvard ca 1974.  EL1 is internally somewhat
	{Lisp}-like, but fully typed with {records} and pointers.  The
	external {syntax} is {ALGOL}-like and extensible, supporting
	user-defined {data structures}, control structures and
	operations.  The {parser} is table-driven, with a modifiable
	set of productions.  Used as the basis for the {ECL}
	{operating system}.

	["Studies in Extensible Programming Languages", B. Wegbreit,
	Garland.  Pub 1980].

el(alpha)

	Aims to be a high-level language that knows about real
	hardware, for systems programming.  "Essential Language
	el(alpha) - A Reduced Expression Set Language for Systems
	Programming", T. Watanabe et al, SIGPLAN Notices 26(1):85-98.

Elan

	["Top-down Programming with Elan", C.H.A. Koster, Ellis
	Horwood 1987].

El Camino Bignum

	<humour> /el' k*-mee'noh big'nuhm/ The road mundanely called
	El Camino Real, a road through the San Francisco peninsula
	that originally extended all the way down to Mexico City and
	many portions of which are still intact.  Navigation on the
	San Francisco peninsula is usually done relative to El Camino
	Real, which defines {logical} north and south even though it
	isn't really north-south many places.  El Camino Real runs
	right past {Stanford University}.

	The Spanish word "real" (which has two syllables: /ray-al'/)
	means "royal"; El Camino Real is "the royal road".  In the
	{Fortran} language, a "{real}" quantity is a number typically
	precise to seven significant digits, and a "{double
	precision}" quantity is a larger {floating-point} number,
	precise to perhaps fourteen significant digits (other
	languages have similar "real" types).

	When a {hacker} from {MIT} visited Stanford in 1976, he
	remarked what a long road El Camino Real was.  Making a pun on
	"real", he started calling it "El Camino Double Precision" -
	but when the hacker was told that the road was hundreds of
	miles long, he renamed it "El Camino Bignum", and that name
	has stuck.  (See {bignum}).

	[{Jargon File}]

	(1996-07-16)

elder days

	The heroic age of hackerdom (roughly, pre-1980); the era of
	the {PDP-10}, {TECO}, {ITS} and the {ARPANET}.  This term has
	been rather consciously adopted from J. R. R. Tolkien's
	fantasy epic "The Lord of the Rings".

	Compare {Iron Age}.  See also {elvish} and {Great Worm}.

	[{Jargon File}]

e-learning

	{Computer-Aided Instruction}

Electing a Pope

	<electronics, humour> (From the smoke signals given out when
	the guys in funny hats choose a new Pope) Causing an
	{integrated circuit} or other electronic component to emit
	smoke by passing too much current through it.

	See {magic smoke}.

	(1995-08-18)

Electrically Alterable Programmable Read-Only Memory

	<storage> (EAPROM) A {PROM} whose contents can be changed.

	[What's the difference between EAPROM and {EEPROM}?]

	(1995-11-12)

Electrically Erasable Programmable Read-Only Memory

	<storage> (EEPROM) A {non-volatile storage} device using a
	technique similar to the floating gates in {EPROMs} but with
	the capability to discharge the floating gate electrically.
	Usually bytes or words can be erased and reprogrammed
	individually during system operation.

	In contrast to {RAM}, writing takes much longer than reading
	and EEPROM is more expensive and less dense than RAM.  It is
	appropriate for storing small amounts of data which is changed
	infrequently, e.g. the hardware configuration of an {Acorn}
	{Archimedes}.

	[Difference from {EAPROM}?]

	(1995-04-22)

Electromagnetic Compatibility

	<hardware, testing> (EMC) The extent to which a piece of
	hardware will tolerate electrical interference from other
	equipment, and will interfere with other equipment.

	There are strict legal EMC requirements for the sale of any
	electrical or electronic hardware in most countries, although
	the actual standards differ.  See, for example, {EMCNet
	(http://emcnet.com/)}.

	See also {Electrostatic Discharge}, {Radio Frequency
	Interference}.

	(1997-12-19)

electromigration

	<electronics> Mass transport due to momentum exchange between
	conducting electrons and diffusing metal atoms.
	Electromigration causes progressive damage to the metal
	conductors in an {integrated circuit}.  It is characteristic
	of metals at very high current density and temperatures of
	100C or more.

	The term was coined by Professor Hilbert Huntington in the
	late 1950s because he didn't like the German use of the word
	"electrotransport".

	Mass transoport occurs via the Einstein relation J=DFC/kT
	where F is the driving force for the transoport.  For
	electromigraiton F is z*epj and z* is an electromigration
	parameter relating the momentum exchange and z is the charge
	of the "diffusing" species.

	(1999-02-25)

electron

	<electronics> A sub-atomic particle with a negative quantised
	{charge}.  A flow of electrical {current} consists of the
	unidirectional (on average) movement of many electrons.  The
	more mobile electrons are in a given material, the greater it
	electrical conductance (or equivalently, the lower its
	resistance).

	(1995-10-06)

electronic commerce

	<application, communications> (EC) The conducting of business
	communication and transactions over networks and through
	computers.  As most restrictively defined, electronic commerce
	is the buying and selling of goods and services, and the
	transfer of funds, through digital communications.  However EC
	also includes all inter-company and intra-company functions
	(such as marketing, finance, manufacturing, selling, and
	negotiation) that enable commerce and use {electronic mail},
	{EDI}, file transfer, fax, {video conferencing}, {workflow},
	or interaction with a remote computer.

	Electronic commerce also includes buying and selling over the
	{World-Wide Web} and the {Internet}, {electronic funds
	transfer}, {smart cards}, {digital cash} (e.g. Mondex), and all
	other ways of doing business over digital networks.

	[{Electronic Commerce Dictionary}].

	(1995-10-08)

Electronic Commerce Dictionary

	<publication> A lexicon of {electronic commerce} terms.  It
	includes over 900 terms and acronyms, and over 200 {website}
	addresses.  It has entries on commerce over the {World-Wide
	Web}, {Internet} payment systems, The {National Information
	Infrastructure}, {Electronic Data Interchange}, {Electronic
	Funds Transfer}, {Public Key Cryptography}, {smart cards} and
	{digital cash}, computer and network security for commerce,
	marketing through electronic media.

	{(http://tedhaynes.com/haynes1/intro.html)}.

	(1999-03-24)

electronic data interchange

	<application, communications> (EDI) The exchange of
	standardised document forms between computer systems for
	business use.  EDI is part of {electronic commerce}.

	EDI is most often used between different companies ("trading
	partners") and uses some variation of the {ANSI X12}
	{standard} (USA) or {EDIFACT} (UN sponsored global standard).

	[{Electronic Commerce Dictionary}].

	(1995-10-06)

Electronic Data Processing

	1. <application> (EDP) {data processing} by computers.

	2. <company> The name of {Honeywell}'s computer business
	between 1960, when it gained complete ownership of {Datamatic
	Corporation}, and 1963, when it was officially renamed
	Honeywell Inc.

	(1995-03-30)

Electronic Design Automation

	<application> (EDA) Software tools for the development of
	{integrated circuits} and systems.

	Companies selling EDA tools include {Cadence}, {Intergraph},
	{Mentor}, {Synopsys}, {Viewlogic}.  {Zuken-Redac Dazix} has
	been acquired by Intergraph.

	(1995-10-09)

Electronic Discrete Sequential Automatic Computer

	<computer, history> (EDSAC, often "Electronic Delay Storage
	Automatic Computer") Based upon the {EDVAC} (Electronic
	Discrete Variable Automatic Computer) designed in 1945, the
	EDSAC was completed in 1949 at the University of Cambridge
	Mathematical Laboratory in England.  The EDSAC performed its
	first calculation on 1949-05-06. EDSAC was considered to be
	the first computer to store programs.  It ceased to exist in
	about 1951.

	[What happened to it?]

	(2010-01-07)

Electronic Frontier Foundation

	<body> (EFF) A group established to address social and legal
	issues arising from the impact on society of the increasingly
	pervasive use of computers as a means of communication and
	information distribution.  EFF is a non-profit civil liberties
	public interest organisation working to protect freedom of
	expression, privacy, and access to on-line resources and
	information.

	{(http://eff.org/)}.

	(1994-12-08)

electronic funds transfer

	<application, communications> (EFT, EFTS, - system) Transfer
	of money initiated through electronic terminal, automated
	teller machine, computer, telephone, or {magnetic tape}.  In
	the late 1990s, this increasingly includes transfer initiated
	via the {World-Wide Web}.  The term also applies to credit
	card and automated bill payments.

	{Glossary (http://fms.treas.gov/eft/glossary.html)}.

	(1999-12-08)

Electronic Funds Transfer Point of Sale

	<business, real-time> A method of electronic payment which
	allows money to be transferred from the account of the shopper
	to the merchant in close-to real-time.  Generally the shopper
	will give the merchant a credit or debit card, which will be
	swiped to obtain the account information.  The shopper will
	then be required to either sign a receipt or enter a {PIN} via
	a keypad to authorise the transaction.

	(2003-06-22)

electronic funds transfer system

	{electronic funds transfer}

electronic magazine

	<messaging, publication, World-Wide Web> (e-zine) A regular
	publication on some particular topic distributed in digital
	form, chiefly now via the {World-Wide Web} but also by
	{electronic mail} or {floppy disk}.  E-zines are often
	distributed for free by enthusiasts.

	(1996-08-04)

electronic mail

	<messaging> (e-mail) Messages automatically passed from one
	computer user to another, often through computer {networks}
	and/or via {modems} over telephone lines.

	A message, especially one following the common {RFC 822}
	{standard}, begins with several lines of {headers}, followed
	by a blank line, and the body of the message.  Most e-mail
	systems now support the {MIME} {standard} which allows the
	message body to contain "{attachments}" of different kinds
	rather than just one block of plain {ASCII} text.  It is
	conventional for the body to end with a {signature}.

	Headers give the name and {electronic mail address} of the
	sender and recipient(s), the time and date when it was sent
	and a subject.  There are many other headers which may get
	added by different {message handling systems} during delivery.

	The message is "composed" by the sender, usually using a
	special program - a "{Mail User Agent}" (MUA).  It is then
	passed to some kind of "{Message Transfer Agent}" (MTA) - a
	program which is responsible for either delivering the message
	locally or passing it to another MTA, often on another {host}.
	MTAs on different hosts on a network often communicate using
	{SMTP}.  The message is eventually delivered to the
	recipient's {mailbox} - normally a file on his computer - from
	where he can read it using a mail reading program (which may
	or may not be the same {MUA} as used by the sender).

	Contrast {snail-mail}, {paper-net}, {voice-net}.

	The form "email" is also common, but is less suggestive of the
	correct pronunciation and derivation than "e-mail".  The word
	is used as a noun for the concept ("Isn't e-mail great?", "Are
	you on e-mail?"), a collection of (unread) messages ("I spent
	all night reading my e-mail"), and as a verb meaning "to send
	(something in) an e-mail message" ("I'll e-mail you (my
	report)").  The use of "an e-mail" as a count noun for an
	e-mail message, and plural "e-mails", is now (2000) also well
	established despite the fact that "mail" is definitely a mass
	noun.

	Oddly enough, the word "emailed" is actually listed in the
	Oxford English Dictionary.  It means "embossed (with a raised
	pattern) or arranged in a net work".  A use from 1480 is
	given.  The word is derived from French "emmailleure",
	network.  Also, "email" is German for enamel.

	{The story of the first e-mail message
	(http://pretext.com/mar98/features/story2.htm)}.

	(2002-07-14)

electronic mail address

	<messaging> (Usually "e-mail address") The string used to
	specify the source or destination of an {electronic mail}
	message.  E.g. "john@doc.acme.ac.uk".

	The {RFC 822} standard is probably the most widely used on the
	{Internet}.  {X.400} was once used in Europe and Canada.
	{UUCP}-style ({bang path}) addresses or other kinds of {source
	route} became virtually extinct in the 1990s.

	In the example above, "john" is the {local part} which is the
	name of a {mailbox} on the destination computer.  If the
	sender and recipient use the same computer, or the same {LAN},
	for electronic mail then the local part is usually all that is
	required.

	If they use different computers, e.g. they work at different
	companies or use different {Internet service providers}, then
	the "host part", e.g. "sales.acme.com" must be appended after
	an "@".  This usually takes the form of a {fully qualified
	domain name} or, within a large organisation, it may be just
	the {hostname} part, e.g. "sales".  The destination computer
	named by the host part is usually a {server} of some kind
	rather than an individual's {workstation} or {PC}.  The user's
	mail is stored on the server and read later via {client} mail
	software running on the user's computer.

	Large organisations, such as universities will often set up a
	global {alias} directory which maps a simple user name such as
	"jsmith" to an address which contains more information such as
	"jsmith@london.bigcomp.co.uk".  This hides the detailed
	knowledge of where the message will be delivered from the
	sender, making it much easier to redirect mail if a user
	leaves or moves to a different department for example.

	(2006-10-18)

electronic mail client

	{Mail User Agent}

electronic meeting

	<messaging, conferencing, meeting> /e'lek-tro'nik mee'ting/
	The use of a {network} of {personal computers} to improve
	communication that takes place in a meeting.  The computers
	are used for typically 30-50% of the meeting.  They do not
	eliminate conversation, discussion, or humour from the
	meeting.

	Electronic meetings are effective with as few as two
	participants and with over 100 participants.  Participants can
	be face-to-face in a meeting room or distributed around the
	world.  They may all be participating at the same time or
	different times.

	{Getting Results from Electronic Meetings
	(http://emsl.co.uk/)}.

	(2000-11-16)

Electronic Numerical Integrator and Computer

	<computer> (ENIAC) The first electronic {digital computer} and
	an ancestor of most computers in use today.  ENIAC was
	developed by Dr. {John Mauchly} and {J. Presper Eckert} during
	World War II at the Moore School of the {University of
	Pennsylvania}.

	In 1940 Dr. {John Vincent Atanasoff} attended a lecture by
	Mauchly and subsequently agreed to show him his binary
	calculator, the {Atanasoff-Berry Computer} (ABC), which was
	partially built between 1937-1942.  Mauchly used ideas from
	the ABC in the design of ENIAC, which was started in June 1943
	and released publicly in 1946.

	ENIAC was not the first digital computer, {Konrad Zuse}'s {Z3}
	was released in 1941.  Though, like the ABC, the Z3 was
	{electromechanical} rather than electronic, it was freely
	programmable via paper tape whereas ENIAC was only
	programmable by manual rewiring or switches.  Z3 used binary
	representation like modern computers whereas ENIAC used
	decimal like mechanical calculators.

	ENIAC was underwritten and its development overseen by
	Lieutenant Herman Goldstine of the U.S. Army Ballistic
	Research Laboratory (BRL).  While the prime motivation for
	constructing the machine was to automate the wartime
	production of firing and bombing tables, the very first
	program run on ENIAC was a highly classified computation
	for Los Alamos.  Later applications included weather
	prediction, cosmic ray studies, wind tunnel design,
	petroleum exploration, and optics.

	ENIAC had 20 {registers} made entirely from {vacuum tubes}.
	It had no other no memory as we currently understand it.  The
	machine performed an addition in 200 {microseconds}, a
	multiplication in about three {milliseconds}, and a division
	in about 30 milliseconds.

	{John von Neumann}, a world-renowned mathematician serving on
	the BRL Scientific Advisory Committee, soon joined the
	developers of ENIAC and made some critical contributions.
	While Mauchly, Eckert and the Penn team continued on the
	technological problems, he, Goldstine, and others took up the
	logical problems.

	In 1947, while working on the design for the successor
	machine, EDVAC, von Neumann realized that ENIAC's lack of a
	central control unit could be overcome to obtain a rudimentary
	stored program computer (see the Clippinger reference below).
	Modifications were undertaken that eventually led to an
	{instruction set} of 92 "orders".  {Von Neumann} also proposed
	the {fetch-execute cycle}.

	[R. F. Clippinger, "A Logical Coding System Applied to the
	ENIAC", Ballistic Research Laboratory Report No. 673, Aberdeen
	Proving Ground, MD, September 1948.
	{(http://ftp.arl.mil/~mike/comphist/48eniac-coding)}].

	[H. H. Goldstine, "The Computer from Pascal to von Neumann",
	Princeton University Press, 1972].

	[K. Kempf, "Electronic Computers within the Ordnance Corps",
	Aberdeen Proving Ground, MD, 1961.
	{(http://ftp.arl.mil/~mike/comphist/61ordnance)}].

	[M. H. Weik, "The ENIAC Story", J. American Ordnance Assoc.,
	1961. {(http://ftp.arl.mil/~mike/comphist/eniac-story.html)}].

	[How "general purpose" was ENIAC, compared to Zuse's {Z3}?]

	(2003-10-01)

Electronic Performance Support System

	<tool> (EPSS) A system that provides electronic task guidance
	and support to the user at the moment of need.  EPSS can
	provide {application} help, reference information, guided
	instructions and/or tutorials, subject matter expert advice
	and hints on how to perform a task more efficiently.  An EPSS
	can combine various technologies to present the desired
	information.  The information can be in the form of text,
	{graphical displays}, sound, and {video} presentations.

	["Electronic Performance Support Systems: How and Why to
	Remake the Workplace Through the Strategic Application of
	Technology", Gloria Gerry, Weingarten Press].

	(1997-10-24)

Electronic Piece Of Cheese

	{EPOC}

Electronic Report Management

	<storage> (ERM, Enterprise Report Management) The capture,
	archiving and publishing, in digital form, of (typically
	{mainframe} generated) documents such as accounting and
	financial reports.  ERM often replaces systems based on paper
	or {microfilm}.

	ERM usually captures data from {print streams} and stores it
	on {hard drives}, {storage area networks} or {optical disk}
	drives.  The data is indexed and can be retreived at the
	desktop with a {web browser} or a {fat client}.  ERM systems
	are part of {enterprise content management} or {electronic
	document management}.

	An example application is {PearlDoc QuickFile Information
	Management System (http://pearldoc.com/)} (IMS).

	An early replacement for {greenbar} printed reports was
	Computer Output on Microfilm (COM, not to be confused with
	{Microsoft}'s {Component Object Model}).  This was superseded
	by Computer Output to Laser Disk (or Disc - COLD) which used
	optical media.

	In 1999 the {AIIM} renamed COLD to ERM/COLD to reflect the
	variety of media in use.  This was promoted, in 2002, by Mason
	Grigsby - widely reputed as "The Father of COLD" for his
	seminal work with {INSCI} in the late 1980s.  Judging from
	their web site, AIIM don't seem too sure whether ERM is
	"Electronic", "Enterprise" or both.

	(2007-07-25)

Electronics Industry Association

	<body, standard> (EIA) A body which publishes "Recommended
	Standards" (RS) for physical devices and their means of
	interfacing.  {EIA-232} is their standard that defines a
	computer's {serial port}, connector pin-outs, and electrical
	signaling.

	(1995-03-02)

electronic whiteboarding

	{Audiographic Teleconferencing}

electron model

	<electronics> A {model} of {semiconductor} behaviour in which
	{donors} contribute the {charge} of an {electron}, and
	{acceptors} contribute a space for same, in effect
	contributing a fictional positive charge of similiar
	magnitude.  Physicists use the {electron model}.  Some
	language theorists consider language and the {electron} to be
	{models} in themselves.

	Contrast {hole model}.

	(1995-10-06)

electron tube

	<electronics> (Or tube, vacuum tube, UK: valve, electron
	valve, thermionic valve, firebottle, glassfet) An electronic
	component consisting of a space exhausted of gas to such an
	extent that {electrons} may move about freely, and two or more
	electrodes with external connections.  Nearly all tubes are of
	the thermionic type where one electrode, called the cathode,
	is heated, and electrons are emitted from its surface with a
	small energy (typically a Volt or less).  A second electrode,
	called the anode (plate) will attract the electrons when it is
	positive with respect to the cathode, allowing current in one
	direction but not the other.

	In types which are used for amplification of signals,
	additional electrodes, called grids, beam-forming electrodes,
	focussing electrodes and so on according to their purpose, are
	introduced between cathode and plate and modify the flow of
	electrons by electrostatic attraction or (usually) repulsion.
	A voltage change on a grid can control a substantially greater
	change in that between cathode and anode.

	Unlike {semiconductors}, except perhaps for {FETs}, the
	movement of electrons is simply a function of electrostatic
	field within the active region of the tube, and as a
	consequence of the very low mass of the electron, the currents
	can be changed quickly.  Moreover, there is no limit to the
	current density in the space, and the electrodes which do
	dissapate power are usually metal and can be cooled with
	forced air, water, or other refrigerants.  Today these
	features cause tubes to be the active device of choice when
	the signals to be amplified are a power levels of more than
	about 500 watts.

	The first electronic digital computers used hundreds of vacuum
	tubes as their active components which, given the reliability
	of these devices, meant the computers needed frequent repairs
	to keep them operating.  The chief causes of unreliability are
	the heater used to heat the cathode and the connector into
	which the tube was plugged.

	Vacuum tube manufacturers in the US are nearly a thing of the
	past, with the exception of the special purpose types used in
	broadcast and image sensing and displays.  Eimac, GE, RCA, and
	the like would probably refer to specific types such as "Beam
	Power Tetrode" and the like, and rarely use the generic terms.

	The {cathode ray tube} is a special purpose type based on
	these principles which is used for the visual display in
	television and computers.  X-ray tubes are diodes (two element
	tubes) used at high voltage; a tungsten anode emits the
	energetic photons when the energetic electrons hit it.
	Magnetrons use magnetic fields to constrain the electrons;
	they provide very simple, high power, ultra-high frequency
	signals for radar, microwave ovens, and the like.  Klystrons
	amplify signals at high power and microwave frequencies.

	(1996-02-05)

Electrostatic Discharge

	<hardware, testing> (ESD) One kind of test that hardware
	usually has to pass to prove it is suitable for sale and use.
	The hardware must still work after is has been subjected to
	some level of electrostatic discharge.  Some organisations
	have their own ESD requirements which hardware must meet
	before it will be considered for purchase.

	Different countries have different legal regulations about
	levels of ESD.

	See also {Radio Frequency Interference}, {Electromagnetic
	Compatibility}.

	(1997-12-19)

elegant

	(From Mathematics) Combining simplicity, power, and a certain
	ineffable grace of design.  Higher praise than "clever",
	"winning" or even {cuspy}.

	The French aviator, adventurer, and author Antoine de
	Saint-Exup'ery, probably best known for his classic children's
	book "The Little Prince", was also an aircraft designer.  He
	gave us perhaps the best definition of engineering elegance
	when he said "A designer knows he has achieved perfection not
	when there is nothing left to add, but when there is nothing
	left to take away."

	[{Jargon File}]

	(1994-11-29)

element

	1. <data, programming> One of the items of data in an {array}.

	2. <language, text> One kind of node in an {SGML}, {HTML}, or
	{XML} {document} {tree}.  An SGML element is typically
	represented by a start {tag} ("<p>") and an end tag ("</p>").
	In some SGML implementations, some tags are omissible, as with
	"</p>" in {HTML}.

	The start tag can contain {attributes} ("<p lang="en-UK"
	class='stuff'>"), which are an unordered set of key-value
	bindings for that element.  Both the start tag and end tag for
	an element typically contain the "tag name" (also called the
	"{GI}" or generic identifier) for that element.

	In {XML}, an element is always represented either by an
	explicit start tag and end tag, or by an empty element tag
	("<img src='thing.{png}' alt='a dodad' />").

	Other kinds of SGML node are: a section of character data
	("foo"), a comment ("<!-- bar -->"), a markup declaration
	("<!ENTITY reg CDATA '&#174'>"), or a processing instruction
	("<?xml-stylesheet href="shop-english.xsl" type="text/xsl"
	?>").

	(2001-01-30)

elephant

	Large, grey, four-legged mammal.

elephantine

	Used of programs or systems that are both conspicuous {hogs}
	(owing perhaps to poor design founded on {brute force and
	ignorance}) and exceedingly {hairy} in source form.  An
	elephantine program may be functional and even friendly, but
	(as in the old joke about being in bed with an elephant) it's
	tough to have around all the same (and, like a pachyderm,
	difficult to maintain).  In extreme cases, hackers have been
	known to make trumpeting sounds or perform expressive
	proboscatory mime at the mention of the offending program.
	Usage: semi-humorous.  Compare "has the elephant nature" and
	the somewhat more pejorative monstrosity.  See also
	{second-system effect} and {baroque}.

	[{Jargon File}]

elevator controller

	An archetypal dumb embedded-systems application, like
	{toaster} (which superseded it).  During one period (1983--84)
	in the deliberations of ANSI X3J11 (the C standardisation
	committee) this was the canonical example of a really stupid,
	memory-limited computation environment.  "You can't require
	"printf(3)" to be part of the default run-time library - what
	if you're targeting an elevator controller?"  Elevator
	controllers became important rhetorical weapons on both sides
	of several {holy wars}.

ELF

	Binary format used by System V Release 4 Unix.

ELI

	1. <language> An early system on the {IBM 705} and {IBM 650}.

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

	2. {Embedded Lisp Interpreter}.

Eli Compiler Construction System

	<tool> A compiler generation package which integrates
	off-the-shelf tools and libraries with specialised language
	processors to generate complete compilers quickly and
	reliably.  It simplifies the development of new
	special-purpose languages, implementation of existing
	languages on new hardware and extension of the constructs and
	features of existing languages.

	It runs on {Sun-4} {SunOS} 4, 5, {Ultrix}/{MIPS}, {RS/6000},
	{HP-UX}, {SGI}, {Linux}.

	Latest version 4.3.1, as of 2000-08-07

	{Colorado U (ftp://ftp.cs.colorado.edu/pub/cs/distribs/eli/)}.
	{Europe (ftp://ftp.upb.de/unix/eli)}.

	Mailing list: <eli-request@cs.colorado.edu>.

	E-mail: <compiler@uni-paderborn.de>, Developers
	<elibugs@cs.colorado.edu>, Users <eli@cs.colorado.edu>.

	(2000-08-12)

ELISP

	1. <language> A {Lisp} variant originally implemented for
	{DEC-20s} by Chuck Hedrick of Rutgers.

	2. <language> A common abbreviation for {Emacs Lisp}.  Use of
	this abbreviation is discouraged because "Elisp" is or was a
	trademark.

	[Still a trademark?  Whose?]

	(1995-04-04)

elite

	1. <security> A term used to describe skilled {crackers} or
	{hackers}, or their deeds.  In the last sense, compare to
	{elegant}.

	The term is also used to describe exclusive forums ({ftp}
	sites, {BBSs}) used for trading pirated software, {crack}ing
	tools, or {phreaking} codes.

	(1997-01-31)

ELIZA

	<artificial intelligence> A famous program by {Joseph
	Weizenbaum}, which simulated a Rogerian psychoanalyst by
	rephrasing many of the patient's statements as questions and
	posing them to the patient.  It worked by simple {pattern
	recognition} and substitution of key words into canned
	phrases.  It was so convincing, however, that there are many
	anecdotes about people becoming very emotionally caught up in
	dealing with ELIZA.  All this was due to people's tendency to
	attach to words meanings which the computer never put there.

	See also {ELIZA effect}.

	(1997-09-13)

ELIZA effect

	<jargon> /e-li:'z* *-fekt'/ (From {ELIZA}) The tendency of
	humans to attach associations to terms from prior experience.
	For example, there is nothing magic about the symbol "+" that
	makes it well-suited to indicate addition; it's just that
	people associate it with addition.  Using "+" or "plus" to
	mean addition in a computer language is taking advantage of
	the ELIZA effect.

	The ELIZA effect is a {Good Thing} when writing a programming
	language, but it can blind you to serious shortcomings when
	analysing an {Artificial Intelligence} system.

	Compare {ad-hockery}; see also {AI-complete}.

	[{Jargon File}]

	(1997-09-13)

Elk

	{Extension Language Kit}

ELLA

	A hardware design language from DRA Malvern.  Implemented in
	{ALGOL68-RS}.

	E-mail: <ella@dra.hmg.gb>.  {SPARC version
	(ftp://src.doc.ic.ac.uk/packages/ELLA)}.

	["ELLA 2000: A Language for Electronic System Design",
	J.D. Morison and A.S. Clarke, McGraw-Hill 1993].

Ellemtel

	A {C++} style-guide originated by {Ellemtel Telecom Systems},
	Stockholm.

Ellie

	<language> An {object-oriented} language with {fine-grained
	parallelism} for {distributed computing}.  Ellie is based on
	{BETA}, {Smalltalk}, and others.  Parallelism is supported by
	{unbounded RPC} and "{future}" {objects}.  Synchronisation is
	by {dynamic interfaces}.  {Classes}, {methods}, {blocks}, and
	{objects} are all modelled by {first-class} "Ellie objects".
	It supports {genericity}, {polymorphism}, and
	{delegation}/{inheritance}.

	{(http://diku.dk/ellie/papers/)}?

	["Ellie Language Definition Report", Birger Andersen
	<birger.andersen@acm.org>, SIGPLAN Notices 25(11):45-65, Nov
	1990].

	(2000-04-02)

ELLIS

	EuLisp LInda System.  An object-oriented Linda system written
	for EuLisp.  "Using Object-Oriented Mechanisms to Describe
	Linda", P. Broadbery <pab@maths.bath.ac.uk> et al, in
	Linda-Like Systems and Their Implementation, G. Wilson ed, U
	Edinburgh TR 91-13, 1991.

elm

	<messaging> A {full-screen} {MUA} for {Unix}, {MS-DOS}, {MS
	Windows}, and {OS/2}.

	{Usenet} newsgroup: {news:comp.mail.elm}.

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/elm/FAQ/faq.html)}.

	(1996-03-20)

ELMAGUIDE

	<language> The {metalanguage} used for interpretation of user
	actions in the {ELMA} compiler writer developed at Tallinn
	Poly Institute in 1978.

	(1996-03-20)

ELMAMETA

	A Fortran extension, written at the {Tallinn Poly Inst} in
	1978, used for lexical, syntactic and semantic sepecification
	in the {ELMA} {compiler} writer.  This system was widely used
	in the Soviet Union, and produced an {Ada} to {Diana}
	{compiler}.

	(1994-12-08)

ELP

	1. English Language Programs.  Language for testing avionics
	equipment, on Varian 620/i.

	"Multiband Automatic test Equipment - A Computer Controlled
	Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971).

	2. Equational Logic Programming.  A semantically pure, fully
	{lazy} language by M.J. O'Donnell <odonnell@cs.uchicago.edu>.
	Latest version: 4.2.

	{Sun and DEC versions
	(ftp://gargoyle.uchicago.edu/pub/equations/eq4.2.tar.Z)}.

	["Equational Logic as a Programming Language", M.J. O'Donnell,
	MIT Press 1985].

ELSIE

	<language> A distributed version of {ELLIS}.

	["Using Object-Oriented Mechanisms to Describe Linda",
	P. Broadbery <pab@maths.bath.ac.uk> et al, in "Linda-Like
	Systems and Their Implementati"on, G. Wilson ed, U Edinburgh
	TR 91-13, 1991].

	(1995-11-16)

Elvis

	<tool> A {vi} lookalike which supports nearly all of the vi/ex
	commands, in both visual mode and colon mode.

	Like vi/ex, elvis stores most of the text in a temporary file
	instead of RAM.  This allows it to edit files that are too
	large to fit in a single process' data space.

	Elvis runs under {BSD} UNIX, AT&T {SysV} UNIX, {MINIX},
	{MS-DOS}, {Atari TOS}, {Coherent}, {OS9}/68000, {VMS},
	{Windows 95} and {Windows NT}.

	Elvis is just as awful to use as vi, so someone will like it.

	Version 1.8pl14 (1995-09-04).

	{FTP Delft (ftp://dutepp0.et.tudelft.nl/pub/Unix/Editors/)},
	{FTP PDX (ftp://ftp.cs.pdx.edu/pub/elvis/)}.

	E-mail: Steve Kirkendall <kirkenda@cs.pdx.edu>.

	(1995-11-16)

elvish

	<character> 1. The Tengwar of Feanor, a table of letterforms
	resembling the beautiful Celtic half-uncial hand of the "Book
	of Kells".  Invented and described by J.R.R. Tolkien in "The
	Lord of The Rings" as an orthography for his fictional
	"elvish" languages, this system (which is both visually and
	phonetically {elegant}) has long fascinated hackers (who tend
	to be intrigued by artificial languages in general).  It is
	traditional for graphics printers, plotters, window systems,
	and the like to support a Feanorian typeface as one of their
	demo items.  By extension, the term might be used for any odd
	or unreadable typeface produced by a graphics device.

	2. The typeface mundanely called "B"ocklin", an art-decoish
	{display font}.  [Why?]

	[{Jargon File}]

	(1998-04-28)

EM

	{End of Medium}

EM-1

	<language> A {stack}-oriented intermediate language from
	{Vrije University Amsterdam}, used by the {Amsterdam Compiler
	Kit}.

	E-mail: Andrew Tanenbaum <ast@cs.vu.nl>.

	(1996-04-07)

EMA

	Extended Mercury Autocode.

	See {Autocode}.

	(1995-01-24)

Emacs

	<text, tool> /ee'maks/ (Editing MACroS, or Extensible MACro
	System, GNU Emacs) A popular {screen editor} for {Unix} and
	most other {operating systems}.

	Emacs is distributed by the {Free Software Foundation} and was
	{Richard Stallman}'s first step in the {GNU} project.  Emacs
	is extensible - it is easy to add new functions; customisable
	- you can rebind keys, and modify the behaviour of existing
	functions; self-documenting - there is extensive on-line,
	context-sensitive help; and has a real-time "what you see is
	what you get" display.  Emacs is writen in {C} and the higher
	levels are programmed in {Emacs Lisp}.

	Emacs has an entire {Lisp} system inside it.  It was
	originally written in {TECO} under {ITS} at the {MIT} {AI
	lab}.  AI Memo 554 described it as "an advanced,
	self-documenting, customisable, extensible real-time display
	editor".

	It includes facilities to view directories, run compilation
	subprocesses and send and receive {electronic mail} and
	{Usenet} {news} ({GNUS}).  {W3} is a {web browser}, the
	ange-ftp package provides transparent access to files on
	remote {FTP} {servers}.  {Calc} is a calculator and {symbolic
	mathematics} package.  There are "modes" provided to assist in
	editing most well-known programming languages.  Most of these
	extra functions are configured to load automatically on first
	use, reducing start-up time and memory consumption.  Many
	hackers (including {Denis Howe}) spend more than 80% of their
	{tube time} inside Emacs.

	GNU Emacs is available for {Unix}, {VMS}, {GNU}/{Linux},
	{FreeBSD}, {NetBSD}, {OpenBSD}, {MS Windows}, {MS-DOS}, and
	other systems.  Emacs has been re-implemented more than 30
	times.  Other variants include {GOSMACS}, CCA Emacs, UniPress
	Emacs, Montgomery Emacs, and {XEmacs}.  {Jove}, {epsilon}, and
	{MicroEmacs} are limited look-alikes.

	Some Emacs versions running under {window managers} iconify as
	an overflowing kitchen sink, perhaps to suggest the one
	feature the editor does not (yet) include.  Indeed, some
	hackers find Emacs too {heavyweight} and {baroque} for their
	taste, and expand the name as "Escape Meta Alt Control Shift"
	to spoof its heavy reliance on keystrokes decorated with
	{bucky bits}.  Other spoof expansions include "Eight Megabytes
	And Constantly Swapping", "Eventually "malloc()'s All Computer
	Storage", and "Emacs Makes A Computer Slow" (see {recursive
	acronym}).  See also {vi}.

	Latest version: 20.6, as of 2000-05-11.  21.1 ({RSN}) adds a
	new redisplay engine with support for {proportional text},
	images, {toolbars}, {tool tips}, toolkit scroll bars, and a
	mouse-sensitive mode line.

	{FTP} from your nearest {GNU archive site}.

	E-mail: (bug reports only) <bug-gnu-emacs@gnu.org>.

	{Usenet} newsgroups: {news:gnu.emacs.help},
	{news:gnu.emacs.bug}, {news:alt.religion.emacs},
	{news:gnu.emacs.sources}, {news:gnu.emacs.announce}.

	[{Jargon File}]

	(1997-02-04)

Emacs Lisp

	<language> A dialect of {Lisp} used to implement the higher
	layers of the {Free Software Foundation}'s editor, {GNU}
	{Emacs}.  Sometimes abbreviated to "{elisp}".  An enormous
	number of Emacs Lisp packages have been written including
	modes for editing many programming languages and interfaces to
	many {Unix} programs.

e-mail

	{electronic mail}

e-mail address

	{electronic mail address}

e-mail client

	{Mail User Agent}

EMAS

	{Edinburgh Multi Access System}

Embedded Lisp Interpreter

	<language> (ELI) A small {Common Lisp}-like {interpreter}
	embedded in the {Andrew mail system}, written by Bob
	Glickstein at {CMU}.

	(2000-04-05)

Embedded Mode

	<programming> A term used by {COCOMO} to describe a project
	development that is characterised by tight, inflexible
	constraints and interface requirements.  The product must
	operate within (is embedded in) a strongly coupled complex of
	hardware, software, regulations and operational procedures.
	An embedded mode project will require a great deal of
	innovation.  An example would be a {real-time system} with
	timing constraints and customised hardware.

	(1996-05-29)

embedded system

	<computer> Hardware and software which forms a component of
	some larger system and which is expected to function without
	human intervention.

	A typical embedded system consists of a single-board
	{microcomputer} with software in {ROM}, which starts running
	some special purpose {application program} as soon as it is
	turned on and will not stop until it is turned off (if ever).

	An embedded system may include some kind of {operating system}
	but often it will be simple enough to be written as a single
	program.  It will not usually have any of the normal
	{peripherals} such as a keyboard, monitor, serial connections,
	mass storage, etc. or any kind of user interface software
	unless these are required by the overall system of which it is
	a part.  Often it must provide {real-time} response.

	{Usenet} newsgroup: {news:comp.arch.embedded}.

	(1995-04-12)

embedding

	1. <mathematics> One instance of some mathematical object
	contained with in another instance, e.g. a {group} which is a
	subgroup.

	2. <theory> ({domain theory}) A {complete partial order} F in
	[X -> Y] is an embedding if

	(1) For all x1, x2 in X, x1 <= x2  <=>  F x1 <= F x2 and

	(2) For all y in Y, {x | F x <= y} is {directed}.

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

	(1995-03-27)

EMBLA Pro

	<messaging, tool> An {IMAP}-compliant {electronic mail}
	{client} from {WinSoft Products Ltd}.  EMBLA Pro allows you to
	use an IMAP mail server in a true client/server network
	manner, once you've connected to the IMAP server, you can
	organise messages into folders on the server and you can view
	messages and any attached files at the server before deciding
	whether or not to download them to your local system.  IMAP
	allows the user to select individual message attachments to be
	viewed and/or downloaded.  You can delete files and messages
	from the server, move or copy them to the local computer or
	leave them for future retrieval.  EMBLA Pro also supports the
	standard {POP3} protocol.  Both POP3 and IMAP2 run over
	{E-SMTP}.

	The IMAP {Unix} {daemons} can support specific environments,
	for example, Sun MailTool attachments.  All flavours of Unix
	are catered for with a suite of binary mail daemons, eg:
	{SunSoft} {Solaris}, {HP}, {IBM} and {SCO}.

	EMBLA conforms to the SMTP, E-SMTP, {MIME} and IMAP {Internet}
	standards - RFC1590 (RFC1521), RFC1522, RFC1426, RFC1425,
	RFC1176, RFC0822, RFC0821 and the draft update of RFC1176.

	{(http://ftech.co.uk/~winsoft/embla.htm)}.

	(1996-03-11)

embosser

	{Braille printer}

EMC

	{Electromagnetic Compatibility}

EMD Enterprises, Inc.

	<company> A software development and consulting firm
	specialising in {database} and {client-server} applications.

	{(http://emdent.com/)}.

	(1994-12-12)

EMDIR

	The CERN {Electronic Mail DIRectory} utility.

	[Details?]

	(1995-02-23)

Emerald

	An {object-oriented} distributed programming language and
	environment developed at the {University of Washington} in the
	early 1980s.  Emeral was the successor to {EPL}.  It is
	{strongly typed} and uses {signatures} and {prototypes} rather
	than {inheritance}.

	["Distribution and Abstract Types in Emerald", A. Black et al,
	IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987)].

	(1994-11-09)

EMI

	{External Machine Interface}

Emitter Coupled Logic

	(ECL) (Or "Current Mode Logic") A technology for building
	logic gates where the emitter of a {transistor} is used as the
	output rather than its collector.  ECL has a propagation time
	of 0.5 - 2 ns (faster than {TTL}) and a power dissipation 3 -
	10 times higher than {TTL}.

	(1994-11-09)

EML

	Extended ML.  A language for formally specifying {SML}
	programs.

	["Formal Program Development in Extended ML for the Working
	Programmer", D.  Sannella, Proc 3rd BCS/FACS Workshop on
	Refinement", Springer 1990].

EMM

	<storage> {Expanded Memory Manager}.

	(1996-01-12)

EMM386

	<software, storage> An {expanded memory manager} for {IBM PCs}
	with an {Intel 80386} or higher processor, part of {MS-DOS}
	version 5.00 or higher.  EMM386 uses {extended memory} to
	simulate {expanded memory} and also provides {upper memory
	blocks}.  It must be loaded by a DEVICE= command in your
	{CONFIG.SYS} file.

	(1996-01-13)

emote

	<chat> (emotion) A command used on {talk} systems and {MUDs}
	to indicate the performance of an action, usually a facial
	expression of emotional state.

	(1996-11-28)

emoticon

	<messaging> /ee-moh'ti-kon/ (Or "smiley") An {ASCII} {glyph}
	used to indicate an emotional state in text-only {electronic
	messaging} systems such as {chat}, {electronic mail}, {SMS} or
	{news}.  Although originally intended mostly as jokes,
	emoticons are widely recognised if not expected; the lack of
	verbal and visual cues can otherwise cause non-serious
	comments to be misinterpreted, resulting in offence, arguments
	and {flame wars}.

	Hundreds of emoticons have been proposed, but only a few are
	in common use.  These include:

	 :-)	"smiley face" (for humour, laughter,
		friendliness, occasionally sarcasm)

	 :-(	"frowney face" (for sadness, anger, or upset)

	 ;-)	"half-smiley" (ha ha only serious); also
		known as "semi-smiley" or "winkey face".

	 :-/	"wry face"

	These are more recognisable if you tilt your head to the left.
	The first two are by far the most frequently encountered.
	Hyphenless forms of them are also common.  The acronym "{lol}"
	is also often used in the same context for the same effect
	(and is easier to type).

	The emoticon was invented by one Scott Fahlman on the {CMU}
	{bboard} systems on 1982-09-19.  He later wrote: "I had no
	idea that I was starting something that would soon pollute all
	the world's communication channels."  {GLS} confirms that he
	remembers this original posting, which has subsequently been
	{retrieved from a backup
	(http://research.microsoft.com/~mbj/Smiley/BBoard_Contents.html)}.

	As with exclamation marks, overuse of the smiley is a mark of
	loserhood!  More than one per paragraph is a fairly sure sign
	that you've gone over the line.

	[{Jargon File}]

	(2010-05-16)

empeg

	<hardware> An in-car audio product that plays {MP3} files from
	a {hard disk}.  It is based around a {DEC}/{Intel} {StrongARM}
	{S-1100} processor and runs a version of {Linux}.  The {user
	interface} is written in {Python}.

	{(http://empeg.com/)}.

	See also {MPEG}.

	(1999-09-14)

empire

	<games> Any of a family of military simulations derived from a
	game written by Peter Langston many years ago.  Five or six
	multi-player variants of varying degrees of sophistication
	exist, and one single-player version implemented for both
	{Unix} and {VMS}; the latter is even available as {MS-DOS}
	{freeware}.  All are notoriously addictive.

	[{Jargon File}]

	(1995-08-06)

empty element tag

	{tag}

EMS

	{Expanded Memory Specification}

emTeX

	<language, text, tool> (Eberhard Mattes TeX) Eberhard Mattes
	<mattes@azu.informatik.uni-stuttgart.de>'s version of the
	{LaTeX} document preparation system designed for {DOS} and
	{OS/2}.

	(2001-05-24)

EMU8000

	<multimedia, hardware, music> The "{Advanced WavEffect}" music
	synthesizer {integrated circuit} used on the {SB AWE32} card.

	The EMU8000 is a sub-system offering high quality music
	synthesis and an "effect {engine}" which provides musical
	effects like reverb and chorus to {MIDI} playback.  The
	EMU8000 supports up to 32 voices, and the effect amount for
	each voice can be controlled via MIDI.

	(1996-12-15)

emulation

	<architecture> When one system performs in exactly the same
	way as another, though perhaps not at the same speed.  A
	typical example would be emulation of one computer by (a
	program running on) another.  You might use an emulation as a
	replacement for a system whereas you would use a simulation if
	you just wanted to analyse it and make predictions about it.

	(2003-05-22)

emulator

	{Hardware} or {software} that performs {emulation}.

	(1995-05-12)

Emulator program

	<networking> (EP) {IBM} software that emulates a 2701/2/3
	hard-wired {IBM 360} communications controller and resides in
	a 370x/372x/374x comms controller.

	See also {Partitioned Emulation Program} (PEP).

	(1999-01-29)

EMX

	A programming environment for {OS/2} by Eberhard Mattes
	<mattes@azu.informatik.uni-stuttgart.de>.  EMX supports
	programming in {C}, {C++} and {Objective C}.  It works with
	{gcc}, {g++}, {gdb}, {libg++}, .obj linkage, {DLL} and
	{headers}.  Version 0.8g.

	{Europe (ftp://ftp.uni-stuttgart.de/soft/os2/emx-0.8g)}.  {US
	(ftp://ftp-os2.cdrom.com/os2/2_x/Unix/gnu/emx0.8g)}.

	Mailing list: <listserv@ludd.luth.se> ("subscribe to
	emx-list").

	(1992-09-21)

enabling

	{software enabling}

Encapsulated PostScript

	(EPS) An extension of the {PostScript} graphics file format
	developed by {Adobe Systems}.  EPS is used for {PostScript}
	graphics files that are to be incorporated into other
	documents.  An EPS file includes {pragmas} (special PostScript
	comments) giving information such as the bounding box, page
	number and fonts used.

	On some computers, EPS files include a low resolution version
	of the PostScript image.  On the {Macintosh} this is in {PICT}
	format, while on the {IBM PC} it is in {TIFF} or {Microsoft
	Windows} {metafile} format.

	[Spec?]

	(1995-01-04)

encapsulation

	1. The technique used by layered protocols in which a layer
	adds header information to the protocol data unit (PDU) from
	the layer above.  As an example, in Internet terminology, a
	packet would contain a header from the physical layer,
	followed by a header from the network layer (IP), followed by
	a header from the transport layer (TCP), followed by the
	application protocol data.

	2. The ability to provide users with a well-defined interface
	to a set of functions in a way which hides their internal
	workings.  In {object-oriented programming}, the technique of
	keeping together data structures and the methods (procedures)
	which act on them.

	(1998-09-07)

encode

	1. <algorithm, hardware> To convert {data} or some physical
	quantity into a given format.  E.g. {uuencode}.

	See also {encoder}.

	2. <cryptography> To encrypt, to perform {encryption}.

	(1999-07-06)

encoder

	1. <algorithm, hardware> Any program, circuit or {algorithm}
	which {encodes}.

	Example usages: "{MPEG} encoder", "{NTSC} encoder",
	"{RealAudio} encoder".

	2. <hardware> A sensor or transducer for converting rotary
	motion or position to a series of electronic pulses.

	(1997-03-04)

encryption

	<algorithm, cryptography> Any procedure used in {cryptography}
	to convert {plaintext} into {ciphertext} (encrypted message)
	in order to prevent any but the intended recipient from
	reading that data.

	Schematically, there are two classes of encryption primitives:
	{public-key cryptography} and {private-key cryptography}; they
	are generally used complementarily.
	Public-key encryption algorithms include {RSA};
	private-key algorithms include the obsolescent {Data Encryption
	Standard}, the {Advanced Encryption Standard}, as well as
	{RC4}.

	The {Unix} command {crypt} performs a weak form of encryption.
	Stronger encryption programs include {Pretty Good Privacy} and
	the {GNU Privacy Guard}.

	Other closely related aspects of {cryptograph} include
	{message digests}.

	(2003-04-12)

endian

	<data, architecture> Suffix used in the terms {big-endian} and
	{little-endian} that describe the ordering of {bytes} in a
	multi-byte number.

	The term comes from Swift's "Gulliver's Travels" via the
	famous paper "On Holy Wars and a Plea for Peace" by Danny
	Cohen, USC/ISI IEN 137, 1980-04-01.

	The Lilliputians, being very small, had correspondingly small
	political problems.  The Big-Endian and Little-Endian parties
	debated over whether soft-boiled eggs should be opened at the
	big end or the little end.

	See also {middle-endian}, {holy wars}, {NUXI problem}, {swab}.

	(2007-08-14)

endless loop

	{infinite loop}

End Of Line

	<character> (EOL) Synonym for {newline}, derived perhaps from
	the original {CDC 6600} {Pascal}.  The abbreviation "EOL" is
	now rare, but widely recognised and occasionally used for
	brevity.  Used in the example entry under {BNF}.

	Out of context this would probably be (deliberately) ambiguous
	because different systems used different (combinations of)
	characters to mark the end of a line.  {Unix} uses a {line
	feed}; DOS uses {carriage return}, line feed ({CRLF}) and the
	{Macintosh} uses carriage return.

	See also {EOF}.

	(2002-03-22)

End of Medium

	<character> (EM) {ASCII} character 25.

	(1996-06-28)

End Of Text

	{control-C}

End Of Transmission

	<character> (EOT) The {mnemonic} for {ASCII} character 4.

end tag

	{tag}

end-to-end solution

	<jargon> (E2ES) A term that suggests that the supplier of an
	{application program} or system will provide all the hardware
	and/or software components and resouces to meet the customer's
	requirement and no other supplier need be involved.

	Compare: {turn-key} solution.

	(2006-03-30)

End Transmission Block

	<character> (ETB) The {mnemonic} for {ASCII} character 23.

	(1996-06-28)

end-user

	<job> The person who uses a computer application, as opposed
	to those who developed or support it.  The end-user may or may
	not know anything about computers, how they work, or what to
	do if something goes wrong.  End-users do not usually have
	administrative responsibilities or privileges.

	End users are certain to have a different set of assumptions
	than the developers who created the application.

	(1997-03-29)

engage

	<spelling> Do you mean {Nokia N-Gage}?

	(2005-01-18)

Engelbart, Douglas

	{Douglas Engelbart}

engine

	<jargon> 1. A piece of {hardware} that encapsulates some
	function but can't be used without some kind of {front end}.
	Today we have, especially, "{print engine}": the guts of a
	{laser printer}.

	2. An analogous piece of software; notionally, one that does a
	lot of noisy {crunching}, such as a "database engine", or
	"{search engine}".

	The hackish senses of "engine" are actually close to its
	original, pre-Industrial-Revolution sense of a skill, clever
	device, or instrument (the word is cognate to "ingenuity").
	This sense had not been completely eclipsed by the modern
	connotation of power-transducing machinery in {Charles
	Babbage}'s time, which explains why he named the
	stored-program computer that he designed in 1844 the
	"{Analytical Engine}".

	[{Jargon File}]

	(1996-05-31)

English

	<database> The official name of the {database} language used by
	the {Pick} {operating system}, actually a sort of {crufty},
	brain-damaged {SQL} with delusions of grandeur.  The name permits
	{marketroids} to say "Yes, and you can program our computers in
	English!" to ignorant {suits} without quite running afoul of the
	truth-in-advertising laws.

	["Exploring the Pick Operating System", J.E. Sisk et al,
	Hayden 1986].

	[{Jargon File}]

	(2014-06-27)

English shellcode

	<security> A kind of {malware} that is embedded in ordinary
	English sentences.  English shellcode attempts to avoid
	detection by {antivirus software} by making the code resemble,
	e.g. {e-mail} text or {Wikipedia} entries.  It was first
	revealed by researchers at {Johns Hopkins}.

	(2010-03-02)

Enhanced Capabilities Port

	<hardware> (ECP) The most common {parallel printer interface}
	on current (1997) {IBM PC} compatibles.

	Enhanced Capabilities Port is defined in standard IEEE 1284.
	It is bi-directional and faster than earlier parallel ports.

	Not to be confused with {Extended Capabilities Port}.

	(1997-12-01)

Enhanced Directory Service

	<operating system> (EDS) A common, distributed, integrated,
	{directory service} with centralized and/or replicated
	administration.

	[Reference?]

	(2003-06-18)

Enhanced Dynamic Random Access Memory

	(EDRAM)
	{(http://ruralnet.net/~prairie)}.

	[Summary?]

	(1995-11-23)

Enhanced Graphics Adapter

	<graphics, hardware> (EGA) An {IBM PC} {display standard} with
	a {resolution} of 640 x 350 {pixels} of 16 colours.

	(1995-06-28)

Enhanced IDE

	{Advanced Technology Attachment Interface with Extensions}

Enhanced Integrated Drive Electronics

	{Advanced Technology Attachment Interface with Extensions}

enhanced parallel port

	<hardware> (EPP) A {parallel port} that confirms to the
	{IEEE}'s EPP {standard}.  An EPP is actually an expansion bus
	that can handle 64 {disk drives} and other {peripherals}.

	["PC Magazine", 1996-01-09, p. 262].

	[Details?  Manufacturers?]

	(1996-04-07)

Enhanced Small Disk Interface

	<storage, hardware> (ESDI) An obsolete {hard disk}
	{controller} {standard}, first introduced by {Maxtor} in 1983,
	and intended to be the successor to the original
	{ST-506}/{ST-412}.  ESDI was faster and more reliable, but
	still could not compete with {IDE} and {SCSI}.

	EDSI used two cables: a 20-pin data cable to each drive and a
	single 34-pin control cable {daisy chain} with the controller
	at one end and a terminator at the other.  In PCs, it
	supported up to two drives at 1-2MB/s with drives up to 2GB.

	{PC Guide
	(http://pcguide.com/ref/hdd/if/obsoESDI-c.html)}.

	(2003-08-01)

enhancement

	1. A change to a product which is intended to make it better
	in some way, e.g. new functions, faster, or occasionally more
	compatible with other systems.  Enhancements to {hardware}
	components, especially {integrated circuits} often mean they
	are smaller and less demanding of resources.  Sadly, this is
	almost never true of {software} enhancements.

	2. {Marketroid}-speak for a {bug fix}.  This abuse of language
	is a popular and time-tested way to turn incompetence into
	increased revenue.  A hacker being ironic would instead call
	the fix a {feature}, or perhaps save some effort by declaring
	"{That's not a bug, that's a feature!}".

	[{Jargon File}]

	(1998-04-04)

ENIAC

	{Electronic Numerical Integrator and Computer}

Enigma

	<hardware, cryptography> The electro-mechanical {cipher}
	engine used by the Germans in World War II to encrypt and
	decrypt field orders.  Many of their messages were deciphered
	at {Bletchley Park}, by {Alan Turing} and others.

	See also: {Tunny Emulator}.

	(2012-03-25)

ENOB

	{effective number of bits}

ENQ

	1. <character> /enkw/ or /enk/ ENQuire.  The {mnemonic} for
	{ASCII} character 5.

	2. <chat> An on-line convention for querying someone's
	availability.  After opening a {chat} connection to someone
	apparently in heavy hack mode, one might type "SYN SYN ENQ?"
	(the SYNs representing notional synchronisation bytes), and
	expect a return of {ACK} or {NAK} depending on whether or not
	the person felt interruptible.

	Compare {ping}, {finger}.

	[{Jargon File}]

	(1998-01-18)

enqueue

	{queue}

ENS

	<body> See {Ecole Normale Superieure}

Ente Nazionale Italiano di Unificazione

	(UNI) The Italian national standards body, a member of {ISO}.

enterprise

	<body> A business, generally a large one.

	(1994-11-22)

Enterprise Application Integration

	<software> (EAI) The use of {middleware} to integrate the
	{application programs}, {databases}, and {legacy systems}
	involved in an organisation's critical business processes.

	[Example?]

	(1999-09-28)

Enterprise JavaBeans

	<specification, business, programming> (EJB) A {server}-side
	{component architecture} for writing reusable {business logic}
	and {portable} {enterprise} applications.  EJB is the basis of
	{Sun}'s {Java 2 Platform, Enterprise Edition} (J2EE).

	Enterprise JavaBean components are written entirely in {Java}
	and run on any EJB compliant server.  They are {operating
	system}, {platform}, and {middleware} independent, preventing
	vendor {lock-in}.

	EJB servers provide system-level services (the "plumbing")
	such as {transactions}, security, {threading}, and
	{persistence}.

	The EJB architecture is inherently transactional,
	{distributed}, {multi-tier}, {scalable}, secure, and {wire
	protocol} neutral - any {protocol} can be used: {IIOP},
	{JRMP}, {HTTP}, {DCOM} etc.  EJB 1.1 requires {RMI} for
	communication with components.  EJB 2.0 is expected to require
	support for RMI/IIOP.

	EJB applications can serve assorted clients: {browsers}, Java,
	{ActiveX}, {CORBA} etc.  EJB can be used to wrap {legacy
	systems}.

	EJB 1.1 was released in December 1999.  EJB 2.0 is in
	development.

	Sun claims broad industry adoption.  30 vendors are shipping
	server products implementing EJB.  Supporting vendors include
	{IBM}, {Fujitsu}, {Sybase}, {Borland}, {Oracle}, and
	{Symantec}.

	An alternative is Microsoft's MTS ({Microsoft Transaction
	Server}).

	{(http://java.sun.com/products/ejb/)}.

	{FAQ (http://java.sun.com/products/ejb/faq.html)}.

	(2000-04-20)

Enterprise Report Management

	{Electronic Report Management}

Enterprise Resource Planning

	<application, business> (ERP) Any {software} system designed
	to support and automate the business processes of medium and
	large businesses.  This may include manufacturing,
	distribution, personnel, project management, payroll, and
	financials.

	ERP systems are accounting-oriented information systems for
	identifying and planning the {enterprise}-wide resources
	needed to take, make, distribute, and account for customer
	orders.  ERP systems were originally extensions of {MRP II}
	systems, but have since widened their scope.  An ERP system
	also differs from the typical MRP II system in technical
	requirements such as {relational database}, use of {object
	oriented programming} language, {computer aided software
	engineering} tools in development, {client/server}
	{architecture}, and {open system} {portability}.

	{JBOPS} are the major producers of ERP software.

	{"ERP Systems - Using IT to gain a competitive advantage",
	Shankarnarayanan S.
	(http://expressindia.com/newads/bsl/advant.htm)}.

	(1999-07-27)

Enterprise Systems CONnectivity

	<networking> (ESCON) {Optical fibre} connections between a
	{mainframe} and its {peripherals}.  Also an {IBM} registered
	trademark.

	(1997-03-31)

EntireX

	<operating system> The German company {Software AG}'s
	implementation of {DCOM} under {Unix} and on {IBM}
	{mainframes}, released at the end of 1997.  EntireX enables
	users to exchange their {DCOM} components between {Windows
	95}, {Windows NT}, {Unix} and {OS/390} and to build
	{application programs} with components running on any of those
	{platforms}.

	{Home
	(http://softwareag.com/corporat/solutions/entirex/entirex.htm)}.

	(1999-02-05)

entity

	<database> In an {entity-relationship model}, an entity is a
	type of thing being modeled such as "person" or "product".
	Different entities have different sets of attributes such as
	"name" or "price" and are connected via relationships like
	"bought".  Entities are closely related to {classes (class)}.

	(2009-11-22)

entity-relationship diagram

	{entity-relationship model}

entity-relationship model

	<database, specification> An approach to {data modelling}
	proposed by P. Chen in 1976.  The model says that you divide
	your database in two logical parts, entities (e.g. "customer",
	"product") and relations ("buys", "pays for").

	One of the first activities in specifying an application is
	defining the entities involved and their relationships,
	e.g. using an entity-relationship diagram to represent a
	model.

	["The entity-relationship model: toward a unified view of
	data", P.P. Chen, ACM Transactions on Database Systems 1:1 pp
	9-36, 1976].

	(2009-11-21)

entropy

	<theory> A measure of the disorder of a system.  Systems tend
	to go from a state of order (low entropy) to a state of
	maximum disorder (high entropy).

	The entropy of a system is related to the amount of
	{information} it contains.  A highly ordered system can be
	described using fewer {bits} of information than a disordered
	one.  For example, a string containing one million "0"s can be
	described using {run-length encoding} as [("0", 1000000)]
	whereas a string of random symbols (e.g. bits, or characters)
	will be much harder, if not impossible, to compress in this
	way.

	{Shannon}'s formula gives the entropy H(M) of a message M in
	bits:

		H(M) = -log2 p(M)

	Where p(M) is the probability of message M.

	(1998-11-23)

Entry Sequenced Data Set

	<database> (ESDS) An {IBM} straight sequential flat file (like
	{QSAM}) but externally managed via {IDCAMS}.  ESDS is used in
	{VSAM}.

	(1999-01-11)

enumerated type

	<programming> (Or "enumeration") A {type} which includes in
	its definition an exhaustive list of possible values for
	variables of that type.  Common examples include {Boolean},
	which takes values from the list [true, false], and
	day-of-week which takes values [Sunday, Monday, Tuesday,
	Wednesday, Thursday, Friday, Saturday].  Enumerated types are
	a feature of {strongly typed languages}, including {C} and
	{Ada}.

	Characters, (fixed-size) integers and even {floating-point}
	types could be (but are not usually) considered to be (large)
	enumerated types.

	(1996-11-28)

enumeration

	1. <mathematics> A {bijection} with the {natural numbers}; a
	{counted set}.

	Compare {well-ordered}.

	2. <programming> {enumerated type}.

	(1996-11-28)

environment

	{environment variable}

Environmental Audio eXtensions

	<audio> (EAX) Something from {Creative Labs} for generating
	sound effects.

	EAX is a competitor to {Aureal}'s {A3D}.

	[Hardware or software?]

	(2008-02-17)

environment variable

	<programming, operating system> A {variable} that is bound in
	the current environment.  When evaluating an expression in
	some environment, the evaluation of a variable consists of
	looking up its name in the environment and substituting its
	value.

	Most programming languages have some concept of an environment
	but in {Unix} {shell scripts} it has a specific meaning
	slightly different from other contexts.  In shell scripts,
	environment variables are one kind of {shell variable}.  They
	differ from {local variables} and {command line arguments} in
	that they are inheritted by a {child process}.  Examples are
	the PATH variable that tells the shell the {file system}
	{paths} to search to find command {executables} and the TZ
	variable which contains the local time zone.  The variable
	called "SHELL" specifies the type of shell being used.

	These variables are used by commands or {shell scripts} to
	discover things about the environment they are operating in.
	Environment variables can be changed or created by the {user}
	or a program.

	To see a list of environment variables type "setenv" at the
	{csh} or {tcsh} {prompt} or "set" at the {sh}, {bash}, {jsh}
	or {ksh} prompt.

	In other programming languages, e.g. {functional programming}
	languages, the environment is extended with new bindings when
	a {function}'s {parameters} are bound to its {actual
	arguments} or when new variables are declared.  In a
	{block-structured} {procedural} language, the environment
	usually consists of a {linked list} of {activation records}.

	(1999-01-26)

Envoy

	{Motorola}'s integrated personal wireless communicator.  Envoy
	is a {personal digital assistant} which incorporates two-way
	wireless and wireline communication.  It was announced on 7
	March 1994 and released in the third quarter of 1994.  It runs
	{Genral Magic}'s {Magic Cap} {operating system} and
	Telescript(TM) communications language on Motorola's {Dragon}
	chip set.  This includes the highly integrated {Motorola
	68349} processor and a special purpose {application specific
	integrated circuit} (ASIC) referred to as Astro.  This chip
	set was designed specifically for {Magic Cap} and
	{Telescript}.

	A user can write on the Envoy communicator with the
	accompanying stylus or a finger, to type and select or move
	objects on its screen.  An on-screen keyboard can be used to
	input information, draw or write personal notations, or send
	handwritten messages and faxes.

	Envoy can send a wireless message to another Envoy, {PC} or
	fax; broadcast a message to a group, with each member of that
	group receiving the message in their preferred format; gather
	information based on your requirements; schedule a meeting and
	automatically invite attendees; screen, route and organise
	messages; send a business card to another Envoy across a
	conference room table; access real-time scheduling and pricing
	information for US airline flights, then order tickets via fax
	or {electronic mail}; keep track of contacts through an
	address book; receive daily news summaries and stock
	information; capture, organize and review business and
	personal expenses on-the-go; gather, edit and analyze
	information in spreadsheets and graphs compatible with {Lotus
	1-2-3} and {Excel}; shop in an electronic mall.

	{(http://motorola.com/MIMS/WDG/Technology/Envoy/)}.

	[Was it released in Q3 '94?]

	(1995-01-18)

EOF

	End Of File

	1. The {out-of-band} value returned by {C}'s sequential
	character-input functions (and their equivalents in other
	environments) when end of file has been reached.  This value
	is -1 under {C} libraries postdating V6 Unix, but was
	originally 0.

	2. The keyboard character (usually control-D, the ASCII EOT
	(End Of Transmission) character) that is mapped by the {Unix}
	terminal driver into an end-of-file condition.

	[{Jargon File}]

	(1995-01-18)

EOL

	1. {End Of Line}.

	2. Expression Oriented Language.  A low-level language for
	strings. Versions: EOL-1, EOL-2, EOL-3.  ["EOL - A Symbol
	Manipulation Language", L. Lukaszewicz, Computer J 10(1):53
	(May 1967)].

	[{Jargon File}]

EOR

	{exclusive or}

EOT

	1. <character> {End Of Transmission}

	2. <storage> End Of Tape.  A marker used on {magnetic tapes}.

	(1996-06-24)

EOU

	<character, humour> The mnemonic of a mythical {ASCII} control
	character (End Of User) that would make an {ASR-33} {Teletype}
	explode on receipt.  This construction parodies the numerous
	obscure {delimiter} and control characters left in ASCII from
	the days when it was associated more with wire-service
	teletypes than computers (e.g. {FS}, {GS}, {RS}, {US}, {EM},
	{SUB}, {ETX}, and especially {EOT}).  It is worth remembering
	that ASR-33s were big, noisy mechanical beasts with a lot of
	clattering parts; the notion that one might explode was
	nowhere near as ridiculous as it might seem to someone sitting
	in front of a {tube} or flatscreen today.

	[{Jargon File}]

	(1996-06-29)

EOUG

	European {ORACLE} Users Group.

EP

	{Emulator program}

EPCS

	{Experimental Physics Control Systems}

ephemeral port

	<networking> A {TCP} or {UDP} {port} number that is
	automatically allocated from a predefined range by the {TCP/IP
	stack} software, typically to provide the port for the client
	end of a {client-server} communication.

	{BSD} used ports 1024 through 4999 as ephemeral ports, though
	it is often desirable to increase this allocation.

	{(http://ncftpd.com/ncftpd/doc/misc/ephemeral_ports.html)}.

	(2002-10-06)

EPILOG

	1. Extended Programming In LOGic.  {PROLOG} with several AND's
	having different time constraints.

	["Epilog: A Language for Extended Programming in Logic",
	A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis
	Horwood 1984].

	2. A {data-driven} {PROLOG}, with both {AND parallelism} and
	{OR parallelism}.  ["EPILOG = PROLOG + Data Flow", M.J. Wise,
	SIGPLAN Noices 17:80-86 (1982)].

EPIM

	{Enterprise Product Information Management}

EPL

	1. {Early PL/I}.

	2. {Experimental Programming Language}.

	3. {Eden Programming Language}.

	4. {Equational Programming Language}

	5. {Ethernet Private Line}

EPOC

	<operating system> A family of graphical {operating systems}
	developed by {Psion} for portable devices, primarily {PDA}s.
	The name EPOC came from epoch, the beginning of an era, but was
	backfitted by the engineers to "Electronic Piece Of Cheese".
	The first version, later known as EPOC16, was developed in the
	late 1980s and early 1990s for Psion's "{SIBO}" (SIxteen Bit
	Organisers) devices.  All EPOC16 devices feature an
	{8086}-family processor and a 16-bit architecture.  EPOC16 is
	a single-user {pre-emptive multitasking} operating system,
	written in Intel 8086 {assembler language} and {C} and
	designed to be delivered in {ROM}.  It supported a simple
	programming language called {OPL} and an {IDE} called {OVAL}.

	EPOC16 was followed by {EPOC32} in 1997.

	(2009-05-26)

epoch

	1. <operating system> (Probably from astronomical timekeeping)
	A term used originally in {Unix} documentation for the time
	and date corresponding to zero in an {operating system}'s
	{clock} and {timestamp} values.

	Under most Unix versions the epoch is 1970-01-01 00:00:00 GMT;
	under {VMS}, it's 1858-11-17 00:00:00 (the base date of the US
	Naval Observatory's ephemerides); on a {Macintosh}, it's
	1904-01-01 00:00:00.

	System time is measured in seconds or {ticks} past the epoch.
	Weird problems may ensue when the clock wraps around (see
	{wrap around}), which is not necessarily a rare event; on
	systems counting 10 ticks per second, a signed 32-bit count of
	ticks is good only for 0.1 * 2**31-1 seconds, or 6.8 years.
	The one-tick-per-second clock of Unix is good only until
	2038-01-18, assuming at least some software continues to
	consider it signed and that word lengths don't increase by
	then.  See also {wall time}.

	2. <editor> (Epoch) A version of {GNU Emacs} for the {X Window
	System} from {NCSA}.

	[{Jargon File}]

	(2004-06-10)

EPP

	{Enhanced Parallel Port}

EPROM

	{Erasable Programmable Read-Only Memory}

EPROM OTP

	{Erasable Programmable Read-Only Memory One Time Programmable}

EPROS

	A specification/prototyping language.  Implemented in {Franz
	Lisp}.

	{(ftp://utsun.s.u-tokyo.jp/lang/epros)}.

	["Software Prototyping, Formal Methods and VDM", Sharam
	Hekmatpour et al, A-W 1988].

EPS

	{Encapsulated PostScript}

EPSILON

	<language> A {macro} language with high level features
	including strings and lists, developed by A.P. Ershov at
	Novosibirsk in 1967.  EPSILON was used to implement {ALGOL 68}
	on the {M-220}.

	["Application of the Machine-Oriented Language Epsilon to
	Software Development", I.V. Pottosin et al, in Machine
	Oriented Higher Level Languages, W. van der Poel, N-H 1974,
	pp. 417-434].

	[{Jargon File}]

	(1995-05-10)

epsilon

	1. <character> The fifth letter of the Greek alphabet.

	2. <mathematics> (From the Hungarian mathematician {Paul
	Erdos}) A very small, insignificant, or negligible quantity of
	something.

	The use of epsilon is from the {epsilon-delta method} of
	{proof} in {differential calculus}.

	(2001-07-06)

epsilon squared

	<jargon> A quantity even smaller than {epsilon}, as small in
	comparison to epsilon as epsilon is to something normal;
	completely negligible.  If you buy a supercomputer for a
	million dollars, the cost of the thousand-dollar terminal to
	go with it is {epsilon}, and the cost of the ten-dollar cable
	to connect them is epsilon squared.

	Compare {lost in the underflow}, {lost in the noise}.

	(1997-09-05)

EPSIMONE

	Concurrent simulation language derived from Simone.  "EPSIMONE
	Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978.

EPSS

	{Electronic Performance Support System}

EqL

	An equational language.  Bharat Jayaraman
	<bharat@cs.buffalo.edu>.  "EqL: The Language and its
	Implementation", B. Jayaraman et al, IEEE Trans Soft Eng
	SE-15(6):771-780 (June 1989).

EQLOG

	Equality, types and generic modules for logic programming.
	A language using Horn clauses.  J.A. Goguen, J. Meseguer.

EQLog

	OBJ2 plus logic programming based on Horn logic with equality.

	"EQLog: Equality, Types and Generic Modules for Logic
	Programming", J.  Goguen et al in Functional and Logic
	Programming, D. DeGroot et al eds, pp.295-363, P-H 1986.

Eqn

	Language for typesetting mathematics.

	"A System for Typesetting Mathematics", B.W. Kernighan and
	L.L. Cherry, CACM 18(3):151-157 (Mar 1975).

equals

	<character> "=", {ASCII} character 61.

	Common names: {ITU-T}: equals; gets; takes.  Rare:
	quadrathorpe; {INTERCAL}: half-mesh.

	Equals is used in many languages as the {assignment} operator
	though earlier languages used ":=" ("becomes equal to") to
	avoid upsetting mathematicians with statements such as "x =
	x+1".  It is also used in compounds such as "<=", ">=", "==",
	"/=", "!=" for various comparison operators and in {C}'s "+=",
	"*=" etc. which mimic the {primitive} operations of
	{two-address code}.

	(1995-03-29)

equational logic

	<logic> First-order equational logic consists of
	{quantifier}-free terms of ordinary {first-order logic}, with
	equality as the only {predicate} symbol.  The {model theory}
	of this logic was developed into {Universal algebra} by
	Birkhoff et al.  [Birkhoff, Gratzer, Cohn].  It was later made
	into a branch of {category theory} by Lawvere ("algebraic
	theories").

	(1995-02-21)

Equational Programming Language

	<language> (EPL) An {equational language} for {parallel}
	scientific applications, developed by RPI. Szymanski.

	["EPL - Parallel Programming with Recurrent Equations",
	B. Szymanski in Parallel Functional Languages and Compilers,
	B. Szymanski et al, A-W 1991].

	(2010-09-21)

Equel

	Embedded Quel.  {INGRES, Inc.}  Combines QUEL theories with C
	code.

equivalence class

	<mathematics> An equivalence class is a subset whose elements
	are related to each other by an {equivalence relation}.  The
	equivalence classes of a set under some relation form a
	{partition} of that set (i.e. any two are either equal or
	{disjoint} and every element of the set is in some class).

	(1996-05-13)

equivalence class partitioning

	<testing> A software testing technique that involves
	identifying a small set of representative input values that
	invoke as many different input conditions as possible.

	For example, for {binary search} the following partitions
	exist: inputs that do or do not conform to pre-conditions,
	Inputs where the key element is or is not a member of the
	array.  One can combine these into finer partitions.  One can
	also pick specific conditions of the array, e.g. a single
	value, even or odd number of elements.  One should look at
	{boundary conditions}, e.g. inputs where the key element is
	the first or last element in the array.

	(2004-01-18)

equivalence partitioning

	{equivalence class partitioning}

equivalence relation

	<mathematics> A relation R on a set including elements a, b,
	c, which is reflexive (a R a), symmetric (a R b => b R a) and
	transitive (a R b R c => a R c).  An equivalence relation
	defines an {equivalence} class.

	See also {partial equivalence relation}.

	(1996-05-13)

equivalent isotropically radiated power

	<communications> (EIRP) The power radiated by a radio antenna
	calculated as the power output of the {intentional radiator}
	multiplied by the gain of the antenna (due to its shape).

	Limits are defined by the {FCC} and other national regulators.

	(2008-02-11)

ER

	{Entity-Relationship}

er

	<networking> The {country code} for Eritrea.

	(1999-01-27)

ERA

	{Entity-Relationship-Attribute}

era

	Synonym {epoch}.  Webster's Unabridged makes these words
	almost synonymous, but "era" usually connotes a span of time
	rather than a point in time.

Erasable Programmable Read-Only Memory

	<storage> (EPROM) A type of storage device in which the data
	is determined by electrical charge stored in an isolated
	("floating") {MOS} {transistor} {gate}.  The isolation is good
	enough to retain the charge almost indefinitely (more than ten
	years) without an external power supply.  The EPROM is
	programmed by "injecting" charge into the floating gate, using
	a technique based on the tunnel effect.  This requires higher
	voltage than in normal operation (usually 12V - 25V).  The
	floating gate can be discharged by applying ultraviolet light
	to the chip's surface through a quartz window in the package,
	erasing the memory contents and allowing the chip to be
	reprogrammed.

	(1995-04-22)

erase

	{delete}

ERC

	<database> An extended {entity-relationship model}.

	[Details?  What does it stand for?]

	(1997-12-23)

ERCIM

	European Research Consortium on Informatics and Mathematics.
	An association of European research organisations promoting
	cooperative research on key issues in {Information
	Technology}.

	(2000-12-30)

ERD

	{entity-relationship diagram}

EREW PRAM

	exclusive read, exclusive write {PRAM}.

ERFPI

	An early system on the {LGP-30} computer.

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

	(1994-12-08)

ergonomic

	Concerning {ergonomics} or exhibitting good ergonimics.

	(1995-04-14)

ergonomics

	The study of the design and arrangement of equipment so that
	people will interact with the equipment in healthy,
	comfortable, and efficient manner.  As related to computer
	equipment, ergonomics is concerned with such factors as the
	physical design of the keyboard, screens, and related
	hardware, and the manner in which people interact with these
	hardware devices.

	(1995-04-14)

ERGO-Shell

	<operating system, tool> An ergonomic {X Window System} {Unix}
	{shell} for software engineers by Regine Freitag
	<freitag@gmd.de>.  ERGO-Shell is now obsolete.

	Version: 2.1.

	{(ftp://ftp.gmd.de/gmd/ergo/)}.

	E-mail: Dr. Wolfgang Dzida, GMD <dzida@gmd.de> or the author.

	(2000-12-19)

Eric Conspiracy

	<person, humour> A shadowy group of moustachioed hackers named
	Eric first pinpointed as a sinister conspiracy by an infamous
	talk.bizarre posting ca. 1986.  This was doubtless influenced
	by the numerous "Eric" jokes in the Monty Python oeuvre.
	There do indeed seem to be considerably more moustachioed
	Erics in hackerdom than the frequency of these three traits
	can account for unless they are correlated in some arcane way.
	Well-known examples include {Eric Allman} (of the "Allman
	style" described under {indent style}), {Erik Fair} (co-author
	of NNTP), {Eric S. Raymond} and about fifteen others.  The
	organisation line "Eric Conspiracy Secret Laboratories" now
	emanates regularly from more than one site.

	[{Jargon File}]

	(1998-10-20)

Eric S. Raymond

	<person> One of the authors of the Hacker's {Jargon File}.
	Eric was involved in the {JOLT} project and {GNU Emacs} as
	well as maintaining several {FAQ} lists.  He is a keen
	advocate of {open source}.

	{(http://ccil.org/~esr)}.

	E-mail: <esr@snark.thyrsus.com>

	(1998-10-20)

Eris

	/e'ris/ The Greek goddess of Chaos, Discord, Confusion, and
	Things You Know Not Of; her name was latinised to Discordia
	and she was worshiped by that name in Rome.  Not a very
	friendly deity in the Classical original, she was reinvented
	as a more benign personification of creative anarchy starting
	in 1959 by the adherents of {Discordianism} and has since been
	a semi-serious subject of veneration in several "fringe"
	cultures, including hackerdom.

	See {Church of the SubGenius}.

	[{Jargon File}]

	(1994-12-08)

Erlang

	1. <person> {Agner Krarup Erlang}.  (The other senses were
	named after him).

	2. <language> A concurrent {functional language} for large
	industrial {real-time} systems by Armstrong, Williams and
	Virding of Ellemtel, Sweden.

	Erlang is untyped.  It has {pattern matching} syntax,
	{recursion equations}, explicit {concurrency}, {asynchronous
	message passing} and is relatively free from {side-effects}.
	It supports transparent cross-{platform} distribution.  It has
	primitives for detecting run-time errors, real-time {garbage
	collection}, {modules}, {dynamic code replacement} (change
	code in a continuously running real-time system) and a
	{foreign language interface}.

	An unsupported free version is available (subject to a
	non-commercial licence).  Commercial versions with support are
	available from {Erlang Systems AB}.  An {interpreter} in
	{SICStus Prolog} and compilers in {C} and Erlang are available
	for several {Unix} {platforms}.

	{Open Telecom Platform} (OTP) is a set of {libraries} and
	tools.

	{Commercial version (http://erlang.se/)} - sales, support,
	training, consultants.  {Open-source version
	(http://erlang.org/)} - downloads, user-contributed
	software, mailing lists.

	{Training and consulting (http://erlang-consulting.com/)}.

	E-mail: <erlang@erix.ericsson.se>.

	[Erlang - "Concurrent Programming in Erlang", J. Armstrong, M.
	& Williams R. Virding, Prentice Hall, 1993. ISBN 13-285792-8.]

	3. <unit> 36 {CCS} per hour, or 1 call-second per second.

	Erlang is a unit without dimension, accepted internationally
	for measuring the traffic intensity.  This unit is defined as
	the aggregate of continuous occupation of a channel for one
	hour (3600 seconds).  An intensity of one Erlang means the
	channel is continuously occupied.

	(2003-03-25)

ERM

	{Electronic Report Management}

erotica

	{pornography}

ERP

	{Enterprise Resource Planning}

error

	1. A discrepancy between a computed, observed, or measured
	value or condition and the true, specified, or theoretically
	correct value or condition.

	2. <programming> A mental mistake made by a programmer that
	may result in a program {fault}.

	3. (verb) What a program does when it stops as result of a
	programming error.

	(2000-03-28)

error-based testing

	<programming> Testing where information about programming
	style, error-prone language constructs, and other programming
	knowledge is applied to select test data capable of detecting
	faults, either a specified class of faults or all possible
	faults.

	(1996-05-13)

error correcting memory

	<storage> (ECM) {RAM} using some kind of {error detection and
	correction} (EDAC) scheme.  The two types of memory errors in
	RAM (especially {DRAM}) are "soft" errors due to
	radiation-induced bit switching, and "hard" errors due to the
	unexpected deterioration of a memory chip.  Soft errors do not
	indicate lasting damage to the memory board, but they do
	corrupt programs or data.  Hard errors demand physical
	repairs.  Single bit memory failures are the most common.  A
	hard single bit failure, such as that caused by a completely
	dead chip can be corrected by EDAC if each chip supplies only
	one bit of each word.  EDAC memory is the most common level of
	protection for {minicomputers} and {mainframes} whereas the
	cheaper parity protection is more common in {microcomputers}.

	[Clearpoint, "The Designer's Guide to Add-In Memory", Third
	Addition].

	(1995-10-10)

error detection and correction

	<algorithm, storage> (EDAC, or "error checking and
	correction", ECC) A collection of methods to detect errors in
	transmitted or stored data and to correct them.  This is done
	in many ways, all of them involving some form of coding.  The
	simplest form of error detection is a single added {parity
	bit} or a {cyclic redundancy check}.  Multiple parity bits can
	not only detect that an error has occurred, but also which
	bits have been inverted, and should therefore be re-inverted
	to restore the original data.  The more extra bits are added,
	the greater the chance that multiple errors will be detectable
	and correctable.

	Several codes can perform Single Error Correction, Double
	Error Detection (SECDEC).  One of the most commonly used is
	the {Hamming code}.

	At the other technological extreme, cuniform texts from about
	1500 B.C. which recorded the dates when Venus was visible,
	were examined on the basis of contained redundancies (the
	dates of appearance and disappearance were suplemented by the
	length of time of visibility) and "the worst data set ever
	seen" by [Huber, Zurich] was corrected.

	{RAM} which includes EDAC circuits is known as {error
	correcting memory} (ECM).

	[Wakerly, "Error Detecting Codes", North Holland 1978].

	[Hamming, "Coding and Information Theory", 2nd Ed, Prentice
	Hall 1986].

	(1995-03-14)

es

	1. <networking> The {country code} for Spain.

	2. <operating system> {Extensible Shell}.

	3. (Expert System) An {expert system} for the {IBM PC}
	featuring {forward chaining}, {backward chaining} and {fuzzy
	set} relations.

	{(ftp://ftp.uu.net/pub/ai/expert-sys/summers.tar.Z)}.

	[BYTE Oct 1990].

	(1999-02-01)

ES-1

	<text, tool> An early text editing {interpreter}.

	[Sammet 1969, p. 684].

	(1999-02-01)

ESA

	1. <architecture> {Enterprise Systems Architecture}.

	2. <body> European Space Agency.

	(1999-10-31)

ESC

	{escape}

ESCAPE

	<language> An early system on the {IBM 650}.

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

	(1995-01-05)

escape

	<character> (ESC) {ASCII} character 27.

	When sent by the user, escape is often used to abort execution
	or data entry.  When sent by the computer it often starts an
	{escape sequence}.

	(1997-11-27)

escape sequence

	<character> (Or "escape code") A series of characters starting
	with the {escape} character (ASCII 27).  Escape sequences are
	often used to control display devices such as {VDUs}.  An
	escape sequence might change the colour of subsequent text,
	reassign keys on the keyboard, change printer settings or
	reposition the cursor.  The escape sequences of the {DEC}
	{vt100} {video terminal} have become a {de facto standard} for
	this purpose.

	The term is also used for any sequence of characters that
	temporarily suspends normal processing of a stream of
	characters to perform some special function.  For example, the
	{Hayes} {modem} uses the sequence "+++" to escape to command
	mode in which characters are interpreted as commands to the
	modem itself rather than as data to pass through.

	[Was the character named after this use or vice versa?]

	(1997-11-27)

ESCD

	{Extended System Configuration Data}

ESCON

	{Enterprise Systems CONnectivity}

escrow

	<security> An arrangement where something (generally money or
	documents) is held in trust ("in escrow") by a trusted third
	party until certain agreed conditions are met.  In computing
	the term is used for {key escrow} and also for {source code
	escrow}.

	(1999-12-14)

ESD

	{Electrostatic Discharge}

ESDI

	{Enhanced Small Disk Interface}

ESF

	Eureka Software Factory.

ESI

	1. {European Software Institute}.

	2. A dialect of {JOSS}.

	[Sammet 1969, p. 217].

esim

	A language for {simulation} of {VLSI} at the {switch level}.
	The {primitives} are nodes and {transistors}.

	[C.M. Baker et al, "Tools for Verifying Integrated CIrcuit
	Design", Lambda 1(3):22-30 (1980)].

	(1994-10-20)

ESL

	{Expert Systems} Ltd.

ESLPDPRO

	{ESL} public domain version of Edinburgh {Prolog} for
	{MS-DOS}.  The code is totally compatible with C-Prolog.

	{(ftp://aisun1.ai.uga.edu/ai.prolog/eslpdpro.zip)}.

ESML

	{Extended Systems Modelling Language}

ESMTP

	<messaging, protocol> Extended {SMTP}.  Initially defined in
	{RFC 1869} and extended thereafter.

	See also {ETRN}.

	(1997-11-21)

ESP

	1. Extra Simple Pascal.  Subset of Pascal.

	2. Econometric Software Package.  Statistical analysis of time
	series.  "Econometric Software Package, User's Manual",
	J.P. Cooper, Graduate School of Business, U Chicago.  Sammet
	1978.

	3. {Extended Self-containing Prolog}.

	4. An early {symbolic mathematics} system.

	[A. Rom, Celest Mech 3:331-345 (1971)].

	(1994-12-08)

ESPOL

	{Executive Systems Programming Oriented Language}

ESPRIT

	{European Strategic Programme for Research in Information Technology}

ESR

	{Eric S. Raymond}

essential complexity

	<programming> A measure of the "structuredness" of a program.

	(1996-05-13)

Estelle

	A {Pascal} extension for formal specification of computer
	{network} {protocols}.  Protocols are described by {modules}
	which are communicating {NFAs}.  Modules are arranged in a
	dynamic hierarchy and communicate at named interaction points.

	{EstPC (ftp:osi.ncsl.nist.gov/pub/osikit/estpc)} Compiles
	Estelle into C.  {petdingo} Translates Estelle into C++

	Adopted by {ITU-T}.  ISO 9074 (1989).

	["The Formal Description Technique Estelle", M.  Diaz et al
	eds, N-H 1989].

Esterel

	A distributed language for synchronous interaction of
	{real-time} systems with their environment.  Uses explicit
	timing requests.  Esterel programs are compiled into finite
	{automata}.

	["The ESTEREL Programming Language and its Mathematical
	Semantics", G. Berry & L. Cosserat, TR 327, INRIA, 1984].

EstPC

	A {compiler} from {Estelle} to {C}.

	{(ftp:osi.ncsl.nist.gov/pub/osikit/estpc)}.

	(1994-09-19)

ET

	Bernd Gersdorf, U Bremen.  An integration of functional and
	logic programming.

et

	<networking> The {country code} for Ethiopia.

	(1999-01-27)

ET++

	A {Smalltalk}-like system for {Suns}, built on {C++} by
	Weinand of UBILAB Zurich.  Version 3.0-alpha includes {class}
	libraries and documentation.

	{(ftp://iamsun.unibe.ch/C++/ET++/et2.2.tar.Z)}.

	E-mail: Erich Gamma <gamma@ifi.unizh.ch>.

	(1992-10-26)

eta abstraction

	{eta conversion}

eta conversion

	<theory> In {lambda-calculus}, the eta conversion rule states

		\ x . f x  <-->  f

	provided x does not occur as a {free variable} in f and f is a
	function.  Left to right is eta reduction, right to left is
	eta abstraction (or eta expansion).

	This conversion is only valid if {bottom} and \ x . bottom are
	equivalent in all contexts.  They are certainly equivalent
	when applied to some argument - they both fail to terminate.
	If we are allowed to force the evaluation of an expression in
	any other way, e.g. using {seq} in {Miranda} or returning a
	function as the overall result of a program, then bottom and
	\ x . bottom will not be equivalent.

	See also {observational equivalence}, {reduction}.

eta expansion

	{eta conversion}

eta reduction

	{eta conversion}

ETB

	{End Transmission Block}

ETC

	{ExTendible Compiler}

e-text

	{electronic text}

ETHER

	<language> A {concurrent} {object-oriented} language?

	(1997-03-18)

EtherGate

	Multi-protocol Ethernet gateway made by LRT.
	See Computer Systems, October 1985.

Ethernet

	<networking> A {local area network} first described by
	Metcalfe & Boggs of {Xerox PARC} in 1976.  Specified by {DEC},
	{Intel} and {XEROX} (DIX) as {IEEE 802.3} and now recognised
	as the industry standard.

	Data is broken into {packets} and each one is transmitted
	using the {CSMA/CD} {algorithm} until it arrives at the
	destination without colliding with any other packet.  The
	first {contention slot} after a transmission is reserved for
	an {acknowledge} packet.  A {node} is either transmitting or
	receiving at any instant.  The {bandwidth} is about 10 Mbit/s.
	Disk-Ethernet-Disk transfer rate with {TCP/IP} is typically 30
	kilobyte per second.

	Version 2 specifies that {collision} detect of the transceiver
	must be activated during the {inter-packet gap} and that when
	transmission finishes, the differential transmit lines are
	driven to 0V (half step).  It also specifies some {network
	management} functions such as reporting {collisions}, retries
	and {deferrals}.

	Ethernet cables are classified as "XbaseY", e.g. 10base5,
	where X is the data rate in {Mbps}, "base" means "{baseband}"
	(as opposed to {radio frequency}) and Y is the category of
	cabling.  The original cable was {10base5} ("full spec"),
	others are {10base2} ("thinnet") and {10baseT} ("twisted
	pair") which is now (1998) very common.  {100baseT} ("{Fast
	Ethernet}") is also increasingly common.

	{Usenet} newsgroup: {news:comp.dcom.lans.ethernet}.

	{(http://wwwhost.ots.utexas.edu/ethernet/ethernet-home.html)}.

	(1997-04-16)

Ethernet address

	<networking> (Or "{MAC} address") The physical address
	identifying an individual {Ethernet controller} board.  An
	Ethernet addess is a 48-bit number aabbccddeeff where a-f are
	{hexadecimal} digits.  The first 24 bits, aabbcc, identify the
	manufacturer of the controller.  The Ethernet address is
	hard-wired on some controllers, stored in a {ROM} on some, and
	others allow it to be changed from software.  It is usually
	written as six hexadecimal numbers, e.g. 08:00:20:03:72:DC.

	See also {ARP}, {Internet address}.

	(1996-02-21)

Ethernet meltdown

	A {network meltdown} on {Ethernet}.

	(1994-11-29)

Ethernet Private Line

	<networking> (EPL) A data service defined by the {Metro
	Ethernet Forum}, providing a point-to-point Ethernet
	connection between a pair of dedicated User-Network Interfaces
	(UNIs), with a high degree of transparency.

	(2010-09-21)

EtherTalk

	<networking> An {Apple Computer} {network} {standard} used to
	extend an {AppleTalk} network across an {Ethernet} network.

	Compare {LocalTalk}.

	(1994-11-29)

ethics

	{computer ethics}

ETL

	<database> The processes of Extracting, Transforming (or
	Transporting), and Loading data from {source systems} into a
	{data warehouse}.

	(2003-12-31)

ETM

	<database> An {active DBMS} from the {University of
	Karlsruhe}.

	[Expansion?  Features?]

	(1997-06-23)

ETRN

	<messaging, protocol> ("Extended {TURN}") An {ESMTP} command
	(first defined in {RFC 1985}) with which a {client} asks the
	{server} to deliver queued mail to the client via a new ESMTP
	connection.

	ETRN supersedes the {SMTP} "TURN" command in the same way that
	ESMTP's "{EHLO}" supersedes SMTP's "{HELO}".

	(1997-11-21)

ETSI

	{European Telecommunications Standards Institute}

ETX

	{End Of Text}

Euclid

	<language> (Named after the Greek geometer, fl ca 300 BC.) A
	{Pascal} descendant for development of verifiable system
	software.  No {goto}, no {side effects}, no global
	assignments, no functional arguments, no nested procedures, no
	floats, no {enumeration types}.  Pointers are treated as
	indices of special arrays called collections.  To prevent
	{aliasing}, Euclid forbids any overlap in the list of actual
	parameters of a procedure.  Each procedure gives an imports
	list, and the compiler determines the identifiers that are
	implicitly imported.  Iterators.

	Ottawa Euclid is a variant.

	["Report on the Programming Language Euclid", B.W. Lampson et
	al, SIGPLAN Notices 12(2):1-79, Feb 1977].

	(1998-11-23)

Euclidean Algorithm

	{Euclid's Algorithm}

Euclidean norm

	<mathematics> The most common {norm}, calculated by summing
	the squares of all coordinates and taking the square root.
	This is the essence of {Pythagoras's theorem}.  In the
	infinite-dimensional case, the sum is infinite or is replaced
	with an integral when the number of dimensions is
	{uncountable}.

	(2004-02-15)

Euclid's Algorithm

	<algorithm> (Or "Euclidean Algorithm") An {algorithm} for
	finding the {greatest common divisor} (GCD) of two numbers.
	It relies on the identity

		gcd(a, b) = gcd(a-b, b)

	To find the GCD of two numbers by this algorithm, repeatedly
	replace the larger by subtracting the smaller from it until
	the two numbers are equal.  E.g. 132, 168 -> 132, 36 -> 96, 36
	-> 60, 36 -> 24, 36 -> 24, 12 -> 12, 12 so the GCD of 132 and
	168 is 12.

	This algorithm requires only subtraction and comparison
	operations but can take a number of steps proportional to the
	difference between the initial numbers (e.g. gcd(1, 1001) will
	take 1000 steps).

	(1997-06-30)

Eudora

	{Electronic mail} software for communicating over {TCP/IP}
	from {Macintosh}, {Microsoft Windows}, {Windows NT}, and {IBM}
	{OS/2} computers.  Both commercial and free versions are
	produced by {QUALCOMM, Inc.}

EULA

	{end-user license agreement}

EULER

	[Named after the Swiss mathematician Leonhard Euler
	(1707-1783)] A revision of {ALGOL} by {Niklaus Wirth}.  A
	small predecessor of {Pascal}.

	["EULER: A Generalisation of ALGOL and Its Formal Definition",
	N. Wirth, CACM 9(1) (Jan 1966) and 9(2) (Feb 1966)].

EuLisp

	1985-present.  A {Lisp} dialect intended to be a common
	European {standard}, with influences from {Common LISP}, {Le
	LISP}, {Scheme} and {T}.  {First-class functions}, {class}es
	and {continuations}, both {static scope} and {dynamic scope},
	{modules}, support for {parallelism}.  The class system
	({TELOS}) incorporates ideas from {CLOS}, {ObjVLisp} and
	{Oaklisp}.

	See also {Feel}.

	E-mail: <eudist@maths.bath.ac.uk>.

EUnet Ltd.

	EUnet Ltd. is jointly owned by the EUnet national service
	providers and {EurOpen}, the European Forum for Open Systems.

	EUnet services include {electronic mail} ({Internet}-style
	{RFC 822} as well as {X.400}), {InterEUnet} ({Internet
	Protocol}) connectivity and services such as {remote login}
	and {file transfer} over {leased lines}, {dial-up lines},
	{X.25} and {Integrated Services Digital Network}.  EUnet is
	the primary European region provider of {network news} and the
	top-level European distributor of {Internet Talk Radio}.

	EUnet operates its own infrastructure across Europe and is the
	largest European component of the {Internet}.  EUnet is a
	member of {Commercial Internet Exchange} and {Ebone93}, a
	research network consortium.

	E-mail: <info@EU.net>.  {(http://eu.net/)}.

Euphoria

	End User Programming with Hierarchical Objects for Robust
	Interpreted Applications.  Interpreted language with dynamic
	storage and dynamic typing.  Rapid Deployment Software.

	E-mail: <robert.craig@canrem.com>.

Eureka

	A European technological development programme.

Eureka step

	In {program transformation}, a transformation which is not
	obvious or easy to define as an {algorithm}.

	(1994-12-08)

Eurisko

	<artificial intelligence> A language for "{opportunistic
	programming}" written by {Doug Lenat} in 1978.  Eurisko
	constructs its own methods and modifies its strategies as it
	tries to solve a problem.

	{(http://homepages.enterprise.net/hibou/aicourse/lenat.txt)}.

	[Mentioned by Alan Kay, SIGPLAN Notices 28(3), March 1993,
	p. 88].

	(1994-12-08)

Eurocard

	A range of standard circuit board sizes.

	Normal	       double Eurocard = 233.4 x 160 mm
	Extended       double Eurocard = 233.4 x 220 mm
	Super extended double Eurocard = 233.4 x 250 mm
	Hyper extended double Eurocard = 233.4 x 280 mm

Euro-ISDN

	European Integrated Services Digital Network.

	An {ETSI} standard for {Integrated Services Digital Network}
	being phased in in March 1994.  Euro-ISDN will allow full
	transparent interworking between all European countries
	(members of the {CEPT}).  It is available on a commercial
	basis in most European countries.

	(1994-12-08)

EuroNet

	<company> An {IAP} from Amsterdam, The Netherlands operating
	since 1994-08-01 and owned by {France Telecom} since
	1998-11-06.

	{(http://euronet.nl/)}.

	E-mail: <info@euro.net>.

	Telephone: +31 (020) 535 5555.

	Fax: +31 (020) 535 5400.

	Address: Herengracht 208-214, 1016 BS Amsterdam, The
	Netherlands.

	(1999-01-17)

EuropaNET

	A combination of pan-European backbone services run by DANTE.

European Academic and Research Network

	<networking> (EARN) A self-managing network in the research
	community originally sponsored by {IBM}.  It uses {BITNET}
	{protocols} and connects to BITNET in the USA.

	(1995-11-15)

European Computer-Industry Research Centre GmbH

	<body> (ECRC) A joint research organisation founded in 1984 on
	the initiative of three major European manufacturers: {Bull}
	(France), {ICL} (UK) and {Siemens} (Germany).  Its activities
	were intended to enhance the future competitive ability of the
	European {Information Technology} industry and thus complement
	the work of national and international bodies.

	The Centre is intended to be the breeding ground for those
	ideas, techniques and products which are essential for the
	future use of electronic information processing.  The work of
	the Centre will focus on advanced information processing
	technology for the next generation of computers.

	ECRC is an independent company, owned equally by its
	shareholders.  The formal interface between ECRC and its
	shareholders consists of two bodies: The Shareholders'
	Council, which approves the Centre's programmes and budgets
	and supervises their execution and the Scientific Advisory
	Board, which advises the Shareholders' Council in determining
	future research directions.

	There are many collaborations between ECRC and its
	shareholders' companies on specific projects (Technology
	Transfer, prospective studies etc).  The Centre is staffed by
	highly qualified scientists drawn from different countries.
	Research staff are hired directly by ECRC, as well as some who
	come on assignment from the member companies, and others
	seconded from public research agencies and universities.

	Seminars are held which bring together specialists from the
	Centre and the member companies.

	ECRC's mission is to pursue research in fundamental areas of
	computer science.  The aim is to develop the theory,
	methodologies and tools needed to build innovative computer
	applications.  ECRC contributes actively to the international
	effort that is expanding the frontiers of knowledge in
	computer science.  It plays an important role in bridging the
	gap between research and industry by striving to work at the
	highest academic level with a strong industrial focus.  ECRC
	constitutes an opportunity in Europe for the best scientists
	and offers young researchers the possibility to mature in an
	environment which exposes them to both fundamental research
	and the process of delivering the results to industry.

	ECRC plays an important role in Europe and is involved in
	several European Community initiatives.  It is regularly
	consulted by the Commission of the European Communities on
	strategic issues, such as the definition of future research
	plans, international co-operation and relationships between
	academia and industry.

	Address: ECRC GmbH, Arabellastrasse 17, D-81925 Munich,
	Germany.

	{(http://ecrc.de/)}.

	Telephone: +49 (89) 926 99 0.  Fax: +49 (89) 926 99 170.

	(1994-12-01)

European Computer Manufacturers Association

	<body> (ECMA) The former name of {ECMA International}

European Strategic Programme for Research in Information Technology

	<project> (ESPRIT) A funding programme to develop Information
	Technology in the European Economic Communities.  Superseded
	by {Framework 4}.

	(1996-05-13)

European Telecommunications Standards Institute

	<body> (ETSI) A European version of the {ITU-T}(?).

	(1996-05-13)

EUUG

	{European Unix User Group}

EV6

	<hardware, protocol> (Alpha EV6) {Compaq}'s {bus protocol} for
	{Slot A} {motherboards}.  The Alpha EV6 bus protocol is
	capable of bus speeds from 40 to 400 MHz and uses a
	{point-to-point} {topology} with {clock forwarding}.

	(1999-08-05)

Eva

	1. A toy ALGOL-like language used in "Formal Specification of
	Programming Languages: A Panoramic Primer", F.G. Pagan, P-H
	1981.

	2. Explicit Vector Language.

EVALUATE

	<programming> The {COBOL85} {keyword} for a {switch
	statement}.

	(1997-06-10)

evaluation

	<programming> 1. Converting an expression into a value using
	some {reduction strategy}.

	2. The process of examining a system or system component to
	determine the extent to which specified properties are
	present.

	(1996-05-13)

evaluation strategy

	{reduction strategy}

evaluator

	<theory> Geoff Burn defines evaluators E0, E1, E2 and E3 which
	when applied to an expression, reduce it to varying degrees.
	E0 does no evaluation, E1 it evaluates to {weak head normal
	form} (WHNF), E2 evaluates the structure of a list, i.e. it
	evaluates it either to NIL or evaluates it to a CONS and then
	applies E2 to the second argument of the CONS.  E3 evaluates
	the structure of a list and evaluates each element of the list
	to {WHNF}.  This concept can be extended to data structures
	other than lists and forms the basis of the {evaluation
	transformer} style of {strictness analysis}.

	(1994-12-12)

EVE

	{Extensible VAX Editor}

event

	1. <software> An occurrence or happening of significance to a
	task or program, such as the completion of an asynchronous
	input/output operation.  A task may wait for an event or any
	of a set of events or it may (request to) receive asynchronous
	notification (a {signal} or {interrupt}) that the event has
	occurred.

	See also {event-driven}.

	2. <data> A transaction or other activity that affects the
	records in a file.

	(2000-02-09)

Event Description Language

	<language> (EDL)

	["EDL: A Basis for Distributed System Debugging Tools",
	P.C. Bates et al, in Proc Hawaii Intl Conf on Sys Sci, Jan
	1982, pp.86-93].

	(2007-07-11)

event-driven

	<programming> A kind of program, such as a {graphical user
	interface}, with a main loop which just waits for {events} to
	occur.  Each event has an associated handler which is passed
	the details of the event, e.g. mouse button 3 pressed at
	position (355, 990).

	For example, {X window system} and most {Visual Basic}
	{application programs} are event-driven.

	See also {callback}.

	(2000-02-09)

EVGA

	{Extended Video Graphics Array}

evolutionary algorithm

	(EA) An {algorithm} which incorporates aspects of natural
	selection or survival of the fittest.  An evolutionary
	algorithm maintains a population of structures (usually
	randomly generated initially), that evolves according to rules
	of selection, recombination, mutation and survival, referred
	to as genetic operators.  A shared "environment" determines
	the fitness or performance of each individual in the
	population.  The fittest individuals are more likely to be
	selected for reproduction (retention or duplication), while
	recombination and mutation modify those individuals, yielding
	potentially superior ones.

	EAs are one kind of {evolutionary computation} and differ from
	{genetic algorithms}.  A GA generates each individual from
	some encoded form known as a "chromosome" and it is these
	which are combined or mutated to breed new individuals.

	EAs are useful for optimisation when other techniques such as
	{gradient descent} or direct, analytical discovery are not
	possible.  Combinatoric and real-valued function optimisation
	in which the optimisation surface or fitness landscape is
	"rugged", possessing many {locally optimal} solutions, are
	well suited for evolutionary algorithms.

	(1995-02-03)

evolutionary computation

	Computer-based problem solving systems that use computational
	models of evolutionary processes as the key elements in design
	and implementation.

	A number of evolutionary computational models have been
	proposed, including {evolutionary algorithms}, {genetic
	algorithms}, the {evolution strategy}, {evolutionary
	programming}, and {artificial life}.

	{The Hitchhiker's Guide to Evolutionary Computation
	(http://cis.ohio-state.edu/hypertext/faq/bngusenet/comp/ai/genetic/top.html)}.

	{Bibliography
	(http://liinwww.ira.uka.de/bibliography/Ai/EC-ref.html)}.

	{Usenet} newsgroup: {news:comp.ai.genetic}.

	(1995-03-02)

evolutionary programming

	(EP) A {stochastic} optimisation strategy originally conceived
	by Lawrence J. Fogel in 1960.

	An initially random population of individuals (trial
	solutions) is created.  Mutations are then applied to each
	individual to create new individuals.  Mutations vary in the
	severity of their effect on the behaviour of the individual.
	The new individuals are then compared in a "tournament" to
	select which should survive to form the new population.

	EP is similar to a {genetic algorithm}, but models only the
	behavioural linkage between parents and their offspring, rather
	than seeking to emulate specific genetic operators from nature
	such as the encoding of behaviour in a genome and
	recombination by genetic crossover.

	EP is also similar to an {evolution strategy} (ES) although
	the two approaches developed independently.  In EP, selection
	is by comparison with a randomly chosen set of other
	individuals whereas ES typically uses {deterministic}
	selection in which the worst individuals are purged from the
	population.

	(1995-02-03)

evolution strategy

	(ES) A kind of {evolutionary algorithm} where individuals
	(potential solutions) are encoded by a set of real-valued
	"object variables" (the individual's "genome").  For each
	object variable an individual also has a "strategy variable"
	which determines the degree of mutation to be applied to the
	corresponding object variable.  The strategy variables also
	mutate, allowing the rate of mutation of the object variables
	to vary.

	An ES is characterised by the population size, the
	number of offspring produced in each generation and whether
	the new population is selected from parents and offspring or
	only from the offspring.

	ES were invented in 1963 by Ingo Rechenberg, Hans-Paul
	Schwefel at the {Technical University of Berlin} (TUB) while
	searching for the optimal shapes of bodies in a flow.

	(1995-02-03)

EWOS

	{European Workshop for Open Systems}

exa-

	{prefix}

Exabyte

	<company, storage> A company and, by extension, a tape format for
	computer data backup and transfer.  The tape is a data quality 8mm
	video cassette recorder tape.  Exabyte units can store between
	five and fourteen {gigabytes} of data per tape.  Exabytes are
	usually attached to {Unix} {workstations}.

	[What different tape capacities exist?  Compare with DAT?]

	(1995-07-06)

exabyte

	<unit, data> (EB) A unit of {data} equal to 10^18 {bytes} but see
	{binary prefix} for other definitions.  An exabyte is exactly
	1000^6 bytes or 1000 {petabytes}.

	1000 exabytes are one {zettabyte}.

	See {prefix}.

	(2013-11-04)

examining the entrails

	The process of {grovel}ling through a {core dump} or {hex}
	image in an attempt to discover the bug that brought a program
	or system down.  The reference is to divination from the
	entrails of a sacrified animal.

	Compare {runes}, {incantation}, {black art}, {desk check}.

	[{Jargon File}]

	(1994-12-12)

EXAPT

	EXtended {APT}.

Excalibur bug

	<humour, programming> The legendary bug that, despite repeated
	valliant attempts, none but the true king of all programmers
	can fix.  Named after the sword in the stone in the legend of King
	Arthur.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-03-20)

Exceed

	<interface> A tool to display remote {X Window System}
	applications on {Microsoft Windows}.  Exceed is not an X
	server.

	(2001-04-29)

Excel

	{Microsoft Excel}

Excelan

	Manufacturers of intelligent {Ethernet} cards.  Software and
	addresses are down-loadable.  The cards have their own {RAM}
	for buffers.

Excelerator

	A set of {CASE} tools from {Index Technology Corporation}.

exception

	An error condition that changes the normal {flow of control}
	in a program.  An exception may be generated ("raised") by
	{hardware} or {software}.  Hardware exceptions include
	{reset}, {interrupt} or a signal from a {memory management
	unit}.  Exceptions may be generated by the {arithmetic logic
	unit} or {floating-point unit} for numerical errors such as
	divide by zero, {overflow} or {underflow} or {instruction
	decoding} errors such as privileged, reserved, {trap} or
	undefined instructions.  Software exceptions are even more
	varied and the term could be applied to any kind of error
	checking which alters the normal behaviour of the program.

	(1994-10-31)

exception handler

	Special code which is called when an {exception} occurs during
	the execution of a program.  If the programmer does not
	provide a handler for a given exception, a built-in system
	exception handler will usually be called resulting in abortion
	of the program run and some kind of error indication being
	returned to the user.

	Examples of exception handler mechanisms are {Unix}'s signal
	calls and {Lisp}'s {catch} and {throw}.

	(1994-10-31)

EXCH

	<jargon> /eks'ch*/ or /eksch/ To exchange two things, each for
	the other; to swap places.  If you point to two people sitting
	down and say "Exch!", you are asking them to trade places.
	EXCH, meaning EXCHange, was originally the name of a {PDP-10}
	instruction that exchanged the contents of a {register} and a
	memory location.

	Many newer hackers are probably thinking instead of the
	{PostScript} exchange operator (which is usually written in
	lowercase).

	[{Jargon File}]

	(1999-09-17)

Exchange Server

	{Microsoft Exchange}

excl

	{exclamation mark}

exclamation mark

	<character> The character "!" with {ASCII} code 33.

	Common names: {bang}; pling; excl (/eks'kl/); shriek; {ITU-T}:
	exclamation mark, exclamation point (US).  Rare: {factorial};
	exclam; smash; cuss; boing; yell; wow; hey; wham; eureka;
	soldier; {INTERCAL}: spark-spot.

	The {Commonwealth Hackish}, "pling", is common among {Acorn
	Archimedes} owners.  {Bang} is more common in the USA.

	The occasional {CMU} usage, "shriek", is also used by {APL}
	fans and mathematicians, especially {category} theorists.

	Exclamation mark is used in {C} and elsewhere as the logical
	negation {operation} ({NOT}).

	(1998-09-17)

exclamation point

	{exclamation mark}

exclusive or

	<logic> (XOR, EOR) /X or, E or/ A two-input {Boolean logic}
	{function} whose result is true if one input is true and the
	other is false.  The {truth table} is

		A | B | A xor B
		--+---+--------
		F | F |    F
		F | T |    T
		T | F |    T
		T | T |    F

	The output is thus true if the inputs are not equal.  If one
	input is false, the other is passed unchanged whereas if one
	input is true, the other is inverted.

	In Boolean algebra, exclusive or is often written as a plus in
	a circle: "&oplus;".  The circle may be omitted suggesting
	addition {modulo} two.

	In {digital logic}, an exclusive or {logic gate} is drawn like
	a normal {inclusive or} gate but with a curved line across
	both inputs:
	{exclusive or gate (img:http://upload.wikimedia.org/wikipedia/commons/e/e0/XOR.jpg)}.

	(2006-12-13)

EXCP

	{Execute Channel Program}

EXE

	/eks'ee/ or /eek'see/ or /E-X-E/ An executable binary file.
	Some operating systems (notably {MS-DOS}, VMS, and TWENEX) use
	the extension .EXE to mark such files.  This usage is also
	occasionally found among Unix programmers even though Unix
	executables don't have any required suffix.

	[{Jargon File}]

EXEC

	<language> An early {batch} language for the {IBM} {VM/CMS}
	systems.

	[SC19-6209 Virtual Machine/ System Product CMS Command and
	Macro Reference, Appendix F. CMS EXEC Control Statements].

	[Was {EXEC 2} was a later version?]

	(2000-08-06)

exec

	/eg-zek'/ <operating system> 1. execute.

	A synonym for {chain} derived from the {Unix} "exec" {system
	call}.

	{Unix manual page}: execve(2).

	2. (Obsolete) {executive}.

	The mainstream "exec" as an abbreviation for (human) executive
	is *not* used.  To a hacker, an "exec" is a always a program,
	never a person.

	3. At {IBM} and {VM}/{CMS} shops, the equivalent of a {shell}
	command file.

	4. <operating system> The innermost {kernel} of the {Amiga}
	{operating system} which provides shared-library support,
	device interface, {memory management}, {CPU} management, basic
	{IPC}, and the basic structures for OS extension.  The rest of
	the Amiga OS (windowing, file system, third-party extensions,
	etc.) is built using these structures.

	[{Jargon File}]

	(1997-08-01)

EXEC 2

	1. <language> A {scripting language} produced by {IBM} in the
	late 1970s.

	Superseded by {REXX}.

	[SC24-5219, "Virtual Machine/System Product EXEC 2
	Reference"].

	[Successor to {EXEC 1}?  With or without a space?]

	2. <operating system> An archaic {operating system} from
	{UNIVAC}.  By about 1980 it had been replaced by {EXEC 8}.

	[Dates?  Did EXEC 3 to EXEC 7 exist?]

	(2000-08-06)

EXEC 8

	<operating system> {Unisys}'s {operating system} from about
	1980 to 2000, by which time it was a dying breed with Unisys
	moving to {Windows NT} and {Unix}.

	[Was 8 the successor to {EXEC 2}?]

	(2000-08-06)

executable

	<operating system> A {binary} file containing a program in
	{machine language} which is ready to be {execute}d (run).

	The term might also be, but generally isn't, applied to
	{scripts} which are interpreted by a {command line
	interpreter}.  Executables are distinguished in {Unix} by
	having the execute permission bits set, at least for the
	owner.  {MS-DOS} uses the {filename extension} ".exe".

	(1997-06-21)

executable content

	<operating system> Executable programs sent by one computer to
	another via a network.  For example a {Java} {applet} is
	executable content.  Usage: rare.

	(1998-03-23)

execute

	{execution}

Execute Channel Program

	<operating system> (EXCP) An {IBM} system for low-level file
	access, where the programmer is completely responsible for
	providing a list of device-specific "channel comands" to be
	executed by {I/O channels}, {control units} and/or {devices}.
	The {operating system} will simply check the "{CCW}" chains
	for security purposes (access invalid memory or outside of
	{file extents}) and then schedule them for execution.

	(2005-08-08)

execution

	<operating system, programming> The process of carrying out
	the {instructions} in a computer program by a computer.

	See also {dry run}.

	(1996-05-13)

executive

	<operating system> The {command interpreter} or {shell} for an
	{operating system}.  The term is used especially around
	{mainframes} and probably derived from {UNIVAC}'s archaic
	{EXEC 2} and current (in 2000) {EXEC 8} {operating systems}.

	(2000-08-06)

Executive Systems Programming Oriented Language

	<language> An {ALGOL} superset with high level instructions
	for low level actions, e.g. interrupting another processor on
	a multiprocessor system.  Its single pass compiler was very
	fast: over 250 lines/s on a 10MHz processor.

	ESPOL was used to write the MCP (Master Control Program) on
	the {Burroughs 6700}.  It was superseded by {NEWP}.

	["The B6700 ESPOL Reference Manual", Burroughs, 1970].

	(2001-06-14)

exercise, left as an

	Used to complete a proof in technical books when one doesn't
	mind a {handwave}, or to avoid one entirely.  The complete
	phrase is: "The proof [or "the rest"] is left as an exercise
	for the reader."  This comment *has* occasionally been
	attached to unsolved research problems by authors possessed of
	either an evil sense of humour or a vast faith in the
	capabilities of their audiences.

	[{Jargon File}]

	(1995-02-20)

exhaustive testing

	<programming> Executing a program with all possible
	combinations of inputs or values for program variables.

	(1996-05-13)

existential quantifier

	{quantifier}

exit

	1. <programming> A {library function} in the {C} and {Unix}
	{run-time library} that causes the program to terminate and
	return control to the {shell}.  The alternative to calling
	"exit" is simply to "fall off the end" of the program or its
	top-level, {main}, routine.

	Equivalent functions, possibly with different names, exist in
	pretty much every programming language, e.g. "exit" in
	{Microsoft DOS} or "END" in {BASIC}.

	On exit, the {run-time system} closes open files and releases
	other resources.  An {exit status} code (a small integer, with
	zero meaning OK and other values typically indicating some
	kind of error) can be passed as the only argument to "exit";
	this will be made available to the shell.  Some languages
	allow the programmer to set up exit handler code which will be
	called before the standard system clean-up actions.

	2. Any point in a piece of code where control is returned to
	the caller, possibly activating one or more user-provided exit
	handlers.  This might be a {return} statement, exit call (in
	sense 1 above) or code that raises an error condition (either
	intentionally or unintentionally).  If the exit is from the
	top-level routine then such a point would typically terminate
	the whole program, as in sense 1.

	(2008-05-15)

EXODUS

	<database> An extensible {database} project developed at the
	University of Wisconsin.

	(1996-05-13)

eXodus

	A package from White Pines allowing the Macintosh to be used
	as an X server.

EXOS

	A brand of {Ethernet controller} card and Ethernet software
	for {Unix}.

	(1995-01-12)

expanded memory

	<storage> Memory used through {EMS}.  In systems based on
	{Intel 80386} or later processor expanded memory is part of
	the {extended memory} that is mapped into the {expanded memory
	page frame} by the processor.  The mapping is controlled by
	the {EMM}.  In earlier systems, a dedicated {EMS} hardware
	adaptor is needed to map memory into the page frame.  In both
	cases, an appropriate {device driver} is needed for the proper
	communication between hardware and {EMM}.

	(1996-01-10)

expanded memory manager

	<software, storage> (EMM) {IBM PC} memory manager software
	implementing {Expanded Memory Specification}, such as {EMM386}
	or {QEMM386}.  EMMs can usually provide {UMB} as well.

	(1996-01-10)

expanded memory page frame

	<storage> The part of the {IBM PC} {reserved memory} address
	space used by {EMS}.

	(1996-01-10)

Expanded Memory Specification

	<storage> (EMS) An {IBM PC} memory {paging} scheme enabling
	access to memory other than {conventional memory} in {real
	mode}.

	{Expanded memory} is provided through a {page frame} of at
	least 64 {kilobytes} in the {reserved memory} address region.
	Access to this memory is provided by an {expanded memory
	manager} (EMM) software.  The EMM functions are accessible
	through {interrupt} 67H.

	In {8086} or {8088} based systems this is the only way to use
	memory beyond conventional memory.  In systems based on
	{80286} or later, {XMS} and {HMA} provide alternative methods.

	EMS was developed jointly by {Lotus}, {Intel}, and {Microsoft}
	prior to 1988.  Accordingly, this specification is sometimes
	referred to as LIM EMS.

	A complete discussion of EMS and programming examples can be
	found in ["PC System Programming for developers", 1989, ISBN
	1-55755-035-2 (Book only) and ISBN 1-55755-036-0 (Book and
	diskette)].

	{EEMS}, a competing expanded memory management standard, was
	developed by {AST Research}, {Quadram} and {Ashton-Tate}.

	See also {upper memory block}.

	(1996-01-10)

expansion card

	<hardware> A circuit board which can be plugged into one of a
	computer's {expansion slots} to provide some optional extra
	facility such as additional {RAM}, {disk controller},
	{coprocessor}, {graphics accelerator}, communication device or
	some special-purpose interface.

	Different computers have different standards for the cards
	they accept, e.g. {PCI}.

	(1998-06-26)

expansion slot

	<hardware> A connector in a computer into which an {expansion
	card} can be plugged.  The connector supplies power to the
	card and connects it to the {data bus}, {address bus} and
	control signals of the {motherboard}.

	(1998-06-26)

expect

	<language, tool> A {Unix} tool written in {Tcl} and a {script
	language} for automating the operation of {interactive}
	applications such as {telnet}, {FTP}, {passwd}, {fsck},
	{rlogin}, {tip}, etc..  Expect can feed input to other
	programs and perform {pattern matching} on their output.  It
	is also useful for testing these applications.  By adding
	{Tk}, you can also wrap interactive applications in {X11}
	{GUIs}.

	{(http://expect.nist.gov/)}.

	["expect: Scripts for Controlling Interactive Tasks", Don
	Libes, Comp Sys 4(2), U Cal Press Journals, Nov 1991].

	(1997-06-09)

eXperimental LISP

	<language> (xlisp) An experimental programming language
	combining a subset of {Common Lisp} with an {object-oriented}
	extension capability (Class and Object types).  It was
	implemented by David Micheal Betz at Apple to allow
	experimentation with {object-oriented programming} on small
	computers.  The {C} {source code} has been ported to {Unix},
	{Microsoft Windows}, {Macintosh}, {Amiga}, {Atari}, and
	{MS-DOS}.

	Version 2.1 of the {interpreter}, by Tom Almy is closer to
	Common Lisp.

	Latest version: 2.1, as of 1992-05-26.

	{(ftp://wasp.eng.ufl.edu/)}, {(ftp://cs.orst.edu/)},
	{(ftp://glia.biostr.washington.edu/)}.

	E-mail: Tom Almy <toma@sail.labs.tek.com>.

	{Microsoft Windows version
	(ftp://ftp.cica.indiana.edu/util/wxlslib.zip)}.

	{Macintosh version (ftp://netcom.com/pub/bskendig/)}.

	{Usenet} newsgroup: {news:comp.lang.lisp.x}.

	(2000-08-14)

Experimental Physics Control Systems

	<body> (EPCS) A group of the European Physical Society,
	focussing on all aspects of controls, especially
	{informatics}, in experimental physics, including accelerators
	and experiments.

	(1994-12-12)

Experimental Programming Language

	<language> (EPL) A language by {David May} which influenced
	{occam}.

	["EPL: An Experimental Language for Distributed Computing",
	D.C. May, in Trends and Applications 1978: Distributed
	Processing, NBS, pp.69-71].

	(1994-11-18)

Experiment Description Language

	<language> (EDL) J.S. Jenkins.

	["A Programmable System for Acquisition and Reduction of
	Respiratory Physiological Data", J.S. Jenkins et al, Ann
	Biomed Eng, 17:93-108 1989].

	(2007-07-11)

Expert Judgement Models

	<programming> A method of software estimation that is based on
	consultation with one or more experts that have experience
	with similar projects.  An expert-consensus mechanism such as
	the {Delphi Technique} may be used to produce the estimate.

	(1996-05-29)

expert system

	<artificial intelligence> A computer program that contains a
	{knowledge base} and a set of {algorithms} or rules that infer
	new facts from knowledge and from incoming data.

	An expert system is an {artificial intelligence} application
	that uses a knowledge base of human expertise to aid in
	solving problems.  The degree of problem solving is based on
	the quality of the data and rules obtained from the human
	expert.  Expert systems are designed to perform at a human
	expert level.  In practice, they will perform both well below
	and well above that of an individual expert.

	The expert system derives its answers by running the knowledge
	base through an {inference engine}, a software program that
	interacts with the user and processes the results from the
	rules and data in the knowledge base.

	Expert systems are used in applications such as medical
	diagnosis, equipment repair, investment analysis, financial,
	estate and insurance planning, route scheduling for delivery
	vehicles, contract bidding, counseling for self-service
	customers, production control and training.

	[Difference from "{knowledge-based system}"?]

	(1996-05-29)

Expert Systems Ltd.

	<company> (ESL) Distributors of {ESLPDPRO}.

	Adderss: Magdalen Centre, Oxford Science Park, Oxford, OX4
	4GA.  Telephone +44 (865) 784474.

	(1996-05-29)

explicit parallelism

	A feature of a programming language for a {parallel
	processing} system which allows or forces the programmer to
	annotate his program to indicate which parts should be
	executed as independent parallel tasks.  This is obviously
	more work for the programmer than a system with {implicit
	parallelism} (where the system decides automatically which
	parts to run in parallel) but may allow higher performance.

explicit type conversion

	<programming> (Or "cast" in {C} and elsewhere).  A programming
	construct ({syntax}) to specify that an expression's value
	should be converted to a different type.

	For example, in {C}, to convert an {integer} (usually 32 bits)
	to a {char} (usually 8 bits) we might write:

		int i = 42;
		char *p = &buf;
		*p = (char) i;

	The expression "(char)" (called a "cast") converts i's value
	to char type.  Casts (including this one) are often not
	strictly necessary, due to automatic {coercions} performed by
	the compiler, but can be used to make the conversion obvious
	and to avoid warning messages.

	(1999-09-19)

exploit

	<security> A security hole or an instance of taking advantage
	of a security hole.

	"[...] {hackers} say exploit. {sysadmins} say hole"
	-- {Mike Emke (http://emke.com/)}.

	Emke reports that the stress is on the second syllable.  If
	this is true, this may be a case of hackerly zero-deriving
	verbs (especially instantials) from nouns, akin to "write" as
	a noun to describe an instance of a disk drive writing to a
	disk.

	(2001-11-24)

Exploratory Data Analysis

	(EDA)

	[J.W.Tukey, "Exploratory Data Analysis", 1977, Addisson
	Wesley].

exponent

	<programming> (Or "characteristic") The part of a
	{floating-point} number specifying the power of ten by which
	the {mantissa} should be multiplied.  In the common notation,
	e.g. 3.1E8, the exponent is 8.

	(1995-02-27)

exponential

	1. <mathematics> A function which raises some given constant
	(the "base") to the power of its argument.  I.e.

		f x = b^x

	If no base is specified, {e}, the base of {natural
	logarthims}, is assumed.

	2. <complexity> {exponential-time algorithm}.

	(1995-04-27)

exponential-time

	<complexity> The set or property of problems which can be
	solved by an {exponential-time algorithm} but for which no
	{polynomial-time algorithm} is known.

	(1995-04-27)

exponential-time algorithm

	<complexity> An {algorithm} (or {Turing Machine}) that is
	guaranteed to terminate within a number of steps which is a
	{exponential} function of the size of the problem.

	For example, if you have to check every number of n digits to
	find a solution, the {complexity} is O(10^n), and if you add
	an extra digit, you must check ten times as many numbers.

	Even if such an algorithm is practical for some given value of
	n, it is likely to become impractical for larger values.  This
	is in contrast to a {polynomial-time algorithm} which grows
	more slowly.

	See also {computational complexity}, {polynomial-time},
	{NP-complete}.

	(1995-04-27)

Express

	1. A language supporting {concurrency} through {message
	passing} to named message queues from {ParaSoft} Corporation

	{(ftp://ftp.parasoft.com/express/docs)}.

	2. Data definition language, meant to become an ISO standard
	for product data representation and exchange.  TC 184/SC4 N83,
	ISO, 1991-05-31.  E-mail: <smith@cme.nist.gov>.

	3. A data modelling language adopted by the {ISO} working
	group on {STEP}.

expression

	<programming> Any piece of program code in a {high-level
	language} which, when (if) its execution terminates, returns a
	value.  In most programming languages, expressions consist of
	constants, variables, operators, functions, and {parentheses}.
	The operators and functions may be built-in or user defined.
	Languages differ on how expressions of different {types} may
	be combined - with some combination of explicit {casts} and
	implicit {coercions}.

	The {syntax} of expressions generally follows conventional
	mathematical notation, though some languages such as {Lisp} or
	{Forth} have their own idiosyncratic syntax.

	(2001-05-14)

expression tree

	<mathematics, grammar> The {syntax tree} of an {expression}.

	(1998-11-14)

extend

	<programming> To add {features} to a program, especially
	through the use of {hooks}.

	"Extend" is very often used in the phrase "extend the
	{functionality} of a program."

	{Plug-ins} are one form of extension.

	(1997-06-21)

Extended Affix Grammar

	<language, grammar> (EAG) A formalism for describing both the
	{context free syntax} and the {context sensitive syntax} of
	languages.

	EAGs belong to the family of {two-level grammars}.  They are
	very closely related to two-level {van Wijngaarden grammars}.

	EAG can be used as a specification formalism, specifying in
	{relations} rather than {functions}, or as a {relational
	programming language} like {PROLOG}.

	{(http://www.cs.ru.nl/~kees/eag/)}

	(2009-02-06)

Extended ALGOL

	<language> An extension of {ALGOL 60}, used to write the
	{ESPOL} compiler on the {Burroughs B5500}, {Burroughs B6500},
	and {Burroughs B6700}.

	["Burroughs B6700 Extended ALGOL Language Information Manual",
	No. 5000128 (Jul 1971)].

	[Sammet 1969, p. 196].

	(1995-05-09)

Extended Architecture

	<storage> (XA) A {CD-ROM} drive specification required by
	{Green Book CD-ROM} and {White Book CD-ROM} formats.  Drives
	labelled "XA ready" may require a {firmware} upgrade.

	(1994-11-02)

Extended Backus-Naur Form

	<language> Any variation on the basic {Backus-Naur Form} (BNF)
	{meta-syntax} notation with (some of) the following additional
	constructs: {square brackets} "[..]" surrounding optional
	items, suffix "*" for {Kleene closure} (a sequence of zero or
	more of an item), suffix "+" for one or more of an item,
	{curly brackets} enclosing a list of alternatives, and
	super/subscripts indicating between n and m occurrences.

	All these constructs can be expressed in plain BNF using extra
	{productions} and have been added for readability and
	succinctness.

	(1995-04-28)

Extended Binary Coded Decimal Interchange Code

	<character, standard> /eb's*-dik/, /eb'see`dik/, /eb'k*-dik/,
	/ee`bik'dik`/, /*-bik'dik`/ (EBCDIC) A proprietary 8-bit
	{character set} used on {IBM} {dinosaurs}, the {AS/400}, and
	{e-Server}.

	EBCDIC is an extension to 8 bits of BCDIC (Binary Coded
	Decimal Interchange Code), an earlier 6-bit character set used
	on IBM computers.  EBCDIC was [first?] used on the successful
	{System/360}, anounced on 1964-04-07, and survived for many
	years despite the almost universal adoption of {ASCII}
	elsewhere.  Was this concern for {backward compatibility} or,
	as many believe, a marketing strategy to lock in IBM
	customers?

	IBM created 57 national EBCDIC character sets and an
	International Reference Version (IRV) based on {ISO 646} (and
	hence ASCII compatible).  Documentation on these was not
	easily accessible making international exchange of data even
	between IBM mainframes a tricky task.

	US EBCDIC uses more or less the same characters as {ASCII},
	but different {code points}.  It has non-contiguous letter
	sequences, some ASCII characters do not exist in EBCDIC
	(e.g. {square brackets}), and EBCDIC has some ({cent sign},
	{not sign}) not in ASCII.  As a consequence, the translation
	between ASCII and EBCDIC was never officially completely
	defined.  Users defined one translation which resulted in a
	so-called de-facto EBCDIC containing all the characters of
	ASCII, that all ASCII-related programs use.

	Some printers, telex machines, and even electronic cash
	registers can speak EBCDIC, but only so they can converse with
	IBM mainframes.

	For an in-depth discussion of character code sets, and full
	translation tables, see {Guidelines on 8-bit character codes
	(ftp://ftp.ulg.ac.be/pub/docs/iso8859/iso8859.networking)}.

	{A history of character codes
	(http://tronweb.super-nova.co.jp/characcodehist.html)}.

	(2002-03-03)

Extended BNF

	{Extended Backus-Naur Form}

Extended C++

	<language> {EC++} extended by G. Masotti
	<masotti@lipari.usc.edu> with preconditions, postconditions
	and {class invariants}, {parameterised classes}, {exception
	handling} and {garbage collection}.  {EC++} translates
	Extended C++ into C++.

	(1989-10-10)

Extended Capabilities Port

	<hardware> (ECP) A {parallel printer interface} for {IBM PC}
	compatibles, supported by several, mainly US, manufacturers.

	Not to be confused with the more common {Enhanced Capabilities
	Port}.

	(1997-12-01)

Extended Concurrent Prolog

	<language> (ECP) {Concurrent Prolog} with {OR parallelism},
	{set abstraction} and {meta-inference} features.

	["AND-OR Queuing in Extended Concurrent Prolog", J. Tanaka et
	al, Proc Logic Prog Conf '85, LNCS 193, Springer 1985].

	(1994-12-01)

Extended Data Out Dynamic Random Access Memory

	<storage> (EDO DRAM, EDO RAM) A type of {DRAM} designed to
	access nearby memory locations faster than {FPM DRAM}.

	Extended Data Out DRAM (EDO-DRAM) allows the data outputs to
	be kept active after the CAS\ signal goes inactive, using an
	additional signal OE\ to control the data outputs.  This can
	be used in {pipelined} systems for overlapping accesses where
	the next cycle is started before the data from the last cycle
	is removed from the bus.

	EDO DRAM is primarily used with {Intel}'s {Pentium} processors
	since with slower processors there is no significant
	performance gain.  To make use of the advanced features of EDO
	an appropriate {chipset}, such as {Triton}, must be used.  In
	early 1995, EDO DRAM was available for computers from
	{Micron}, {Gateway 2000}, and {Intel Corporation}; since then
	other manufactures followed suit.

	Note that in comparison to {Burst EDO} EDO is sometimes
	referred to as "Standard EDO".

	(1996-06-25)

Extended Data Out Random Access Memory

	{Extended Data Out Dynamic Random Access Memory}

Extended Fortran Language

	(EFL) A {Fortran} {preprocessor} to provide {structured
	programming} constructs much like {C}.  EFL is a descendant of
	{RATFOR}.  It is written in C.

	["An Informal Description of EFL", S.I. Feldman].

eXtended Graphics Array

	<hardware> (XGA) An {IBM} {display standard} introduced in
	1990.

	XGA supports a {resolution} of 1024 x 768 {pixels} with a
	{palette} of 256 colours, or 640 x 480 with {high colour} (16
	{bits per pixel}).

	XGA-2 added 1024 x 768 support for high colour and higher
	refresh rates, improved performance, and supports 1360 x 1024
	in 16 colours.

	XGA is probably not the same as {8514-A}.

	See also {VESA}'s {EVGA} released at a similar time.

	(1999-08-01)

Extended Industry-Standard Architecture

	<architecture, standard> (EISA) /eesa/ A {bus} standard for
	{IBM compatibles} that extends the {ISA} bus architecture to
	32 bits and allows more than one {CPU} to share the bus.  The
	{bus mastering} support is also enhanced to provide access to
	4 GB of memory.  Unlike {MCA}, EISA can accept older {XT bus
	architecture} and {ISA} boards.

	EISA was announced in late 1988 by compatible vendors as a
	counter to {IBM}'s MCA in its {PS/2} series.  Although
	somewhat inferior to the MCA it became much more popular due
	to the proprietary nature of MCA.

	[Main sponsors?  Open standard?]

	(1996-06-25)

extended memory

	<storage> Memory above the first {megabyte} of {address space}
	in an {IBM PC} with an {80286} or later processor.

	Extended memory is not directly available in {real mode}, only
	through {EMS}, {UMB}, {XMS}, or {HMA}; only applications
	executing in {protected mode} can use extended memory
	directly.  In this case, the extended memory is provided by a
	supervising {protected-mode} {operating system} such as
	{Microsoft Windows}.  The processor makes this memory
	available through a system of {global descriptor tables} and
	{local descriptor tables}.  The memory is "protected" in the
	sense that memory assigned a local descriptor cannot be
	accessed by another program without causing a hardware {trap}.
	This prevents programs running in protected mode from
	interfering with each other's memory.

	A {protected-mode} {operating system} such as Windows can also
	run {real-mode} programs and provide {expanded memory} to
	them.  {DOS Protected Mode Interface} is {Microsoft}'s
	prescribed method for an {MS-DOS} program to access extended
	memory under a {multitasking} environment.

	Having extended memory does not necessarily mean that you have
	more than one megabyte of memory since the reserved memory
	area may be partially empty.  In fact, if your 386 or higher
	uses extended memory as expanded memory then that part is not
	in excess of 1Mb.

	See also {conventional memory}.

	(1996-01-10)

extended memory manager

	<software, storage> (XMM) The memory manager software
	implementing {Extended Memory Specification}, such as {HIMEM}
	or {QEMM386}.  XMM's can usually also act as {A20 handlers}.

	(1996-01-10)

Extended Memory Specification

	<storage> (XMS) The specification describing the use of {IBM
	PC} {extended memory} in {real mode} for storing data (but not
	executable code).  Memory is made available by {extended
	memory manager} (XMM) software.  The XMM functions are
	accessible through {interrupt} 2FH.

	(1996-01-10)

Extended ML

	A language by Don Sannella of the {University of Edinburgh}
	combining {algebraic specification} and {functional
	programming}.

	["Program Specification and Development in Standard ML",
	D. Sannella et al, 12th POPL, ACM 1985].

	(1994-12-12)

Extended Pascal

	A superset of {ANSI} and {ISO Pascal} with many enhancements,
	including {modules}, {separate compilation}, {type schema}ta,
	variable-length strings, direct-access files, complex numbers,
	initial values, constant expressions.  ANSI/IEEE770X3.160-1989
	and ISO 10206.

	(1994-12-12)

Extended Self-containing Prolog

	<language> (ESP) An {object-oriented} extension of {KL0} by
	Chikayama.  ESP has {backtracking}-based control,
	{unification}-based parameter passing and {object-oriented}
	calling.  An {object} in ESP is an {axiom} set.  A {class}
	definition consists of nature definitions ({inheritance}),
	slot definitions ({class variables}) and {clause} definitions.
	ESP has {multiple inheritance} similar to {Flavors}.  It has
	been implemented for {ICOT}'s {PSI} Sequential Inference
	machine.

	See also {CESP}.

	E-mail: <k-hata@air.co.jp>.

	["Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th
	Gen Comp Sys, ICOT 1984].

	(1994-12-08)

Extended System Configuration Data

	<operating system> (ESCD) An area of memory, not exceeding 32
	kilobytes in size, used by {MS-DOS}(?) as {NVRAM} for {PNP
	BIOS} and {PNP OS}.  It must be writeable at {run time}.

	Intel's {ICU} also uses ESCD to store information for PNP
	{ISA} cards and {legacy} ISA cards.

	(1999-11-22)

Extended Systems Modelling Language

	<language> (ESML) A {real-time} software engineering
	methodology based on {RTSA}.

	(2009-05-11)

Extended Tcl

	<language> (TclX) {Tcl} extended by Mark Diekhans
	<markd@NeoSoft.com> and Karl Lehenbauer from 1989 on with
	statements to provide high-level access {Unix} system
	primitives.

	Latest version: 7.6p2, as of 2003-02-12.

	{TclX Home (http://neosoft.com/tclx/)}.

	E-mail: <tcl-project@NeoSoft.com>.

	(2003-02-12)

Extended Tiny

	A research/educational tool for experimenting with {array}
	data dependence tests and reordering transformations.  It
	works with a language {tiny}, which does not have procedures,
	{goto}'s, pointers, or other features that complicate
	dependence testing.

	Michael Wolfe's original {tiny} has been extended
	substantially by William Pugh <pugh@cs.umd.edu> et al. at the
	{University of Maryland}.

	Version 3.0 (Dec 12th, 1992) includes a programming
	environment, dependence tester, tests translator
	({Fortran}->tiny), documentation, and technical reports.  It
	should run on any {Unix} system.

	{(ftp://cs.umd.edu/pub/omega)}.

	E-mail: Omega test research group <omega@cs.umd.edu>.

	(1992-12-12)

Extended Video Graphics Array

	<hardware, graphics> (EVGA) A {display standard} introduced by
	{VESA} in 1991.

	It offers a maximum {resolution} of 1024 x 768 {pixels}
	({non-interlaced}) and a 70 Hz {refresh rate}.

	EVGA should not be confused with the older {EGA} (Enhanced
	Graphics Array) or {XGA} (eXtended Graphics Array).

	[Same as "{eXtended Video Graphics Array}" (XVGA)?]

	(1999-08-01)

eXtended Video Graphics Array

	<hardware> (XVGA) A {display standard} with a {resolution} of
	1024 by 768 {pixels} of 256 colours.  {IBM} call this mode
	"{8514}".

	[Same as "{Extended Video Graphics Array}" (EVGA)?]

	(1997-12-11)

ExTendible Compiler

	<language> (ETC) A {Fortran}-like compiler that can be
	extended with {macros}.

	["ETC - An Extendible Macro-Based Compiler", B.N. Dickman,
	Proc SJCC 38 1971].

	(2010-01-28)

extensible

	<programming> Said of a system (e.g., {program}, {file
	format}, {programming language}, {protocol}, etc.) designed to
	easily allow the addition of new {features} at a later date,
	e.g. through the use of {hooks}, an {API} or {plug-ins}.

	See also {extend}, {forward compatible}.

	(1998-01-15)

extensible database

	<database> A {DBMS} that allows access to data from remote
	sources as if the remote data were part of the {database}.

	[Example?]

	(1997-11-20)

Extensible Firmware Interface

	<specification> (EFI) A specification originating from {Intel
	Corporation}, defining the {interface} between an {operating
	system} and {platform} {firmware}, and aiming to reduce OS
	dependence on details of the firmware implementation.

	{EFI Home (http://intel.com/technology/efi/)}.

	(2004-10-23)

Extensible HyperText Markup Language

	<hypertext, standard, World-Wide Web> (XHTML) A reformulation
	of {HTML} 4.01 in {XML}.  Being XML means that XHTML can be
	viewed, edited, and validated with standard XML tools.  At the
	same time, it operates as well as or better than HTML 4 in
	existing HTML 4 conforming user agents.

	The most important change is that all elements must be
	terminated, either with a closing tag or using the <tag.../>
	shorthand.  So, instead of

		<input type=submit>

	you would write

		<input type="submit" />

	The space before the "/" is required by some older browsers.
	Other differences are that tag and attribute names should be
	lower case and all attributes should be quoted.

	{XHTML Home (http://w3.org/TR/xhtml1/)}.

	{Quick Summary
	(http://technorealm.co.uk/design/html-to-xhtml-conversions.html)}

	Latest version: 1.0 Second Edition 2002-08-01, as of 2004-03-16.

	(2006-01-19)

Extensible Markup Language

	<language, text> (XML) An initiative from the {W3C} defining
	an "extremely simple" dialect of {SGML} suitable for use on
	the {World-Wide Web}.

	{(http://w3.org/XML/)}.

	[Relationship to the {XSL} forthcoming subset of {DSSSL}?]

	(1997-11-20)

Extensible Shell

	<operating system> (es) A {Unix} {shell} written by Byron
	Rakitzis <byron@netapp.com> and Paul Haahr <haahr@adobe.com>,
	derived from {rc}.  Es has real {functions}, {closures},
	{exceptions} and lets you redefine most internal shell
	operations.

	Version: 0.84.

	{(ftp://ftp.sys.utoronto.ca/pub/es/)}.

	["Es - A Shell with Higher Order Functions", P. Haahr et al,
	Proc Winter 1993 Usenix Technical Conference].

	(1993-04-30)

Extensible Stylesheet Language

	<World-Wide Web> (XSL) A {standard} developed by the {World
	Wide Web Consortium} defining a language for transforming and
	formatting {XML (eXtensible Markup Language)} documents.

	An XSL {stylesheet} is written in {XML} and consists of
	instructions for tree transformation and formatting.  The tree
	transformations describe how each XML {tag} relates to other
	data and the formatting instructions describe how to output
	the various types of data.

	{(http://w3.org/Style/XSL/)}.

	See also {Extensible Stylesheet Language Transformations}.

	(2005-09-30)

Extensible Stylesheet Language Transformations

	<World-Wide Web> (XSLT) A {W3C} standard for transforming
	{XML} documents into other XML documents or other formats.
	This was conceived as part of {XSL} but has been found to have
	wider applications.

	{(http://w3.org/TR/xslt)}.

	(2001-10-04)

Extensible VAX Editor

	<text, tool> (EVE) A {DEC} product implemented using DEC's
	{Text Processing Utility} (TPU).

	[Details?]

	(2000-05-08)

extension

	1. <filename extension> {filename extension}.

	2. <programming> A {feature} or piece of {code} which
	{extends} a program's {functionality}, e.g. a {plug-in}.

	(1997-06-21)

extensional

	Extensional properties, e.g. extensional equality, relate to
	the "black-box" behaviour of an object, i.e. how its output
	depends on its input.  The opposite is intensional which
	concerns how the object is implemented.

extensional equality

	(Or extensionality).  Functions, f and g are extensionally
	equal if and only if

		f x = g x  for all x.

	where "=" means both expressions fail to terminate (under some
	given {reduction strategy}) or they both terminate with the
	same basic value.

	Two functions may be extensionally equal but not
	inter-convertible (neither is reducible to the other).  E.g.
	\ x . x+x and \ x . 2*x.  See also {observational
	equivalence}, {referential transparency}.

extensionality

	{extensional equality}

Extension Language Kit

	<language> (Elk) A {Scheme} {interpreter} by Oliver Laumann
	<net@cs.tu-berlin.de> and Carsten Bormann
	<cabo@cs.tu-berlin.de> of the {Technical University of
	Berlin}.  Elk was designed to be used as a general extension
	language.  New {types} and {primitive} procedures can easily
	be added.  It has {first-class environments}, {dynamic-wind},
	{fluid-let}, {macros}, {autoload}ing and a {dump}.  It
	provides interfaces to {Xlib}, {Xt} and various {widget} sets;
	{dynamic loading} of extensions and {object files}; almost all
	artificial limitations removed; {generational}/{incremental
	garbage collector}; {Unix} {system call} extensions; {Records}
	(structures) and {bit strings}.

	Version: 2.2 is mostly {R3RS} compatible and runs on {Unix},
	{Ultrix}, {VAX}, {Sun-3}, {Sun-4}, {68000}, {i386}, {MIPS}, {IBM
	PC RT}, {RS/6000}, {HP700}, {SGI}, {Sony}, {MS-DOS}
	({gcc}+{DJGPP} or {go32}).

	{Germany
	(ftp://ftp.fu-berlin.de/pub/Unix/languages/scheme/elk-2.2.tar.gz)}.
	{US (ftp://ftp.x.org/contrib/elk-2.2.tar.gz)}.  {US
	(ftp://gatekeeper.dec.com/pub/comp.sources.misc/volume8/elk)}.

	(1994-12-15)

Exterior Gateway Protocol

	(EGP) A protocol which distributes routing information to the
	{routers} which connect {autonomous systems}.  The term
	"{gateway}" is historical, and "router" is currently the
	preferred term.  There is also a routing protocol called {EGP}
	defined in STD 18, RFC 904.  See also {Border Gateway
	Protocol}, {Interior Gateway Protocol}.

eXternal Data Representation

	(XDR) A {standard} for machine independent data structures
	developed by {Sun Microsystems} for use in {remote procedure
	call} systems.  It is defined in {RFC 1014} and is similar to
	{ASN.1}.

	(1994-12-13)

External Machine Interface

	<protocol> (EMI) A {protocol} primarily used to connect to
	{short message service} centres for {mobile telephones}.  EMI
	is an extension to Universal Computer Protocol (UCP).  EMI was
	was developed by CMG, now a part of {LogicaCMG}, the current
	{SMSC} market leader.

	Each byte of the message is encoded as two {hexadecimal}
	characters using an encoding not quite like {ASCII}.

	{EMI specification
	(http://www.netfunitalia.it/downloads/SMSC_EMI_Specification.PDF)}

	(2007-09-10)

external memory

	<storage> A vague term for slower, {non-volatile storage},
	usually {magnetic disk}, in contrast to {main memory} which is
	usually volatile {semiconductor} {RAM}.

	[{Jargon File}]

	(1997-02-17)

EXTRA

	Object-oriented, Pascal style, handles sets.  "A Data Model
	and Query Language for EXODUS", M.J. Carey et al, SIGMOD 88
	Conf Proc, pp.413- 423, ACM SIGMOD Record 17:3 (Sept 1988).

extranet

	<World-Wide Web> The extension of a company's {intranet} out
	onto the {Internet}, e.g. to allow selected customers,
	suppliers and mobile workers to access the company's private
	data and applications via the {World-Wide Web}.  This is in
	contrast to, and usually in addition to, the company's public
	{website} which is accessible to everyone.  The difference
	can be somewhat blurred but generally an extranet implies
	real-time access through a {firewall} of some kind.

	Such facilities require very careful attention to security but
	are becoming an increasingly important means of delivering
	services and communicating efficiently.

	[Did {Marc Andreessen} invent the term in September 1996?]

	(1997-12-17)

extrapolate

	{extrapolation}

extrapolation

	<mathematics, algorithm> A mathematical procedure which
	estimates values of a {function} for certain desired inputs
	given values for known inputs.

	If the desired input is outside the range of the known values
	this is called extrapolation, if it is inside then it is
	called interpolation.

	The method works by fitting a "curve" (i.e. a function) to two
	or more given points and then applying this function to the
	required input.  Example uses are calculating {trigonometric
	functions} from tables and audio waveform sythesis.

	The simplest form of interpolation is where a function, f(x),
	is estimated by drawing a straight line ("linear
	interpolation") between the nearest given points on either
	side of the required input value:

		f(x) ~ f(x1) + (f(x2) - f(x1))(x-x1)/(x2 - x1)

	There are many variations using more than two points or higher
	degree {polynomial} functions.  The technique can also be
	extended to functions of more than one input.

	(2007-06-29)

EXUG

	{European X User Group}

eyeball search

	<jargon> (Or vgrep) To look for something in a mass of code or
	data with one's own native optical sensors, as opposed to
	using some sort of pattern matching software like {grep} or
	any other automated search tool.

	Compare {vdiff}, {desk check}.

	[{Jargon File}]

	(1997-12-17)

EZ

	High-level string-processing language derived from SNOBOL4,
	SL5 and Icon.

	["The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U
	Arizona, 1984].

ezd

	<graphics, tool> (Easy drawing) A graphics {server} that sits
	between an {application program} and an {X} server and allows
	both existing and new programs easy access to structured
	graphics.  Ezd users have been able to have their programs
	produce interactive drawings within hours of reading the
	manual page.  Ezd supports structured graphics - application
	defined graphical objects are ordered into drawings by the
	application.  Unlike most X tools, ezd does not require any
	event handling by the application.  The ezd server maintains
	the window contents.  When an event occurs an application
	supplied {Scheme} expression is evaluated.

	Latest version: 15mar93 (as of 1993-03-10).

	{(ftp://gatekeeper.dec.com/pub/DEC/ezd/)}.

	Contact: Joel Bartlett.

	(2000-03-25)

e-zine

	{electronic magazine}

F100-L

	{Ferranti F100-L}

f2c

	A {Fortran 77} to {C} translator by S. I. Feldman, D. M. Gay,
	M. W. Maimone and N. L. Schryer.  Produces {ANSI C} or {C++}.

	{(ftp://netlib.bell-labs.com/netlib/f2c)}.

	E-mail: <dmg@bell-labs.com>.

	Latest version: 1997.07.24.

	(1997-08-01)

F2F

	{face-to-face}

F68K

	A portable {Forth} system for {Motorola} {680x0} computers by
	Joerg Plewe <joerg.plewe@mpi-dortmund.mpg.de>.  Ported to
	{Atari ST}, {Atari TT}, {Amiga}, {Sinclair QL} and {OS9}.
	Easily ported to {Motorola} {68000} based systems.

	{(ftp://archive.umich.edu/atari/Languages/)}.

	(1992-12-14)

FAC

	Functional Array Calculator.  An {APL}-like language, but
	{purely functional} and {lazy}.  It allows infinite {arrays}.

	["FAC: A Functional APL Language", H.-C. Tu and A.J. Perlis,
	IEEE Trans Soft Eng 3(1):36-45 (Jan 1986)].

facebook.com

	<World-Wide Web> One of the most popular {social networking}
	web sites.

	{FaceBook home (http://facebook.com/)}.

	(2007-11-16)

face time

	<jargon> Time spent interacting with somebody face-to-face (as
	opposed to via electronic links).  "Oh, yeah, I spent some
	face time with him at the last Usenix."

	[{Jargon File}]

face-to-face

	<jargon, chat> (F2F, {IRL}) Used to describe personal
	interaction in real life as opposed to via some digital or
	electronic communications medium.

	(1997-01-31)

Facile

	<language> A {concurrent} extension of {ML} from {ECRC}.

	{(http://ecrc.de/facile/facile_home.html)}.

	["Facile: A Symmetric Integration of Concurrent and Functional
	Programming", A. Giacalone et al, Intl J Parallel Prog
	18(2):121-160, Apr 1989].

	(1994-12-01)

facsimile

	<communications> ("fax") A process by which fixed graphic
	material including pictures, text, or images is scanned and
	the information converted into electrical signals which are
	transmitted via telephone to produce a paper copy of the
	graphics on the receiving fax machine.

	Some {modems} can be used to send and receive fax data.  {V.27
	ter} and {V.29} {protocols} are used.

	[Details?  Standards?]

	(2004-07-26)

FACT

	{Fully Automated Compiling Technique}

fact

	<artificial intelligence, programming> The kind of {clause}
	used in {logic programming} which has no {subgoals} and so is
	always true (always succeeds).  E.g.

		wet(water).
		male(denis).

	This is in contrast to a {rule} which only succeeds if all its
	subgoals do.  Rules usually contain {logic variables}, facts
	rarely do, except for oddities like "equal(X,X).".

	(1996-10-20)

factor

	A quantity which is multiplied by another quantity.

	See also {divisor}.

	[{Jargon File}]

factorial

	<mathematics> The mathematical {function} that takes a
	{natural number}, N, and returns the product of N and all
	smaller positive integers.  This is written

		N! = N * (N-1) * (N-2) * ... * 1.

	The factorial of zero is one because it is an {empty
	product}.

	Factorial can be defined {recursively} as

		0! = 1
		N! = N * (N-1)!		, N > 0

	The {gamma function} is the equivalent for {real numbers}.

	For example, the number of ways of shuffling 52 playing cards is
	52! or nearly 10^68.  {52 Factorial
	(http://czep.net/weblog/52cards.html)}.

	(2012-11-23)

FAD

	["FAD, A Simple and Powerful Database Language", F. Bancilon
	et al, Proc 13th Intl Conf on VLDB, Brighton, England, Sep
	1987].

failback

	{failover}

failover

	<reliability> Automatically switching to a different,
	{redundant} system upon {failure} or {abnormal termination} of
	the currently active system.  Failover can be applied to a
	{cluster} of {servers}, to {network} or storage components or
	any other set of redundant devices that must provide {high
	availability} because down-time would be expensive or
	inconvenient.  It may be implemented in hardware, software or
	a combination.

	A "{hot standby}" is continuously active at the same time as
	the failed system, using some kind of {load balancing} to
	share the work, whereas a "{warm standby}" is ready to become
	active at short notice.

	When the failed system is operational again it may "failback",
	i.e. become (one of) the active system(s) or it may become a
	warm standby.

	(2008-01-15)

failure

	The inability of a system or system component to perform a
	required function within specified limits.  A failure may be
	produced when a {fault} is encountered.

	(1996-05-13)

failure-directed testing

	<programming> (Or "heuristics testing") Software testing based
	on the knowledge of the types of {errors} made in the past
	that are likely for the system under test.

	(1996-05-16)

FAIR

	<language> An early system on the {IBM 705}.

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

	(1996-05-13)

Fairchild F8

	<processor> An 8-bit {microprocessor}.  The processor itself
	had no {address bus} - program and data memory access were
	contained in separate units, which reduced the number of pins
	and the associated cost.  It also featured 64 {registers},
	accessed by the ISAR register in cells ({register windows}) of
	eight, which meant external {RAM} wasn't always needed for
	small applications.  In addition, the 2-chip processor didn't
	need support chips, unlike others which needed seven or more.

	The F8 inspired other similar {CPUs}, such as the {Intel
	8048}.  The use of the ISAR register allowed a subroutine to
	be entered without saving a bunch of registers, speeding
	execution - the ISAR would just be changed.  Special purpose
	registers were stored in the second cell (regs 9-15), and the
	first eight registers were accessed directly.  The windowing
	concept was useful, but only the register pointed to by the
	ISAR could be accessed - to access other registers the ISAR
	was incremented or decremented through the window.

	(1994-11-16)

fall back

	<communications> A feature of a {modem} {protocol} where two
	modems which experience data corruption, e.g. due to line
	noise, can renegotiate to use a lower speed connection,
	possibly applying {fall forward} if the channel improves.

	(2004-07-30)

fall forward

	<communications> A feature of a {modem} {protocol} where two
	modems which {fall back} to a lower speed because of data
	corruption can later return to the higher speed if the
	connection improves.

	(2004-07-30)

fall over

	[IBM] Yet another synonym for {crash} or {lose}.  "Fall over
	hard" equates to {crash and burn}.

	[{Jargon File}]

fall through

	<programming> (The American misspelling "fall thru" is
	also common)

	1. To exit a loop by exhaustion, i.e. by having fulfilled its
	exit condition rather than via a break or exception condition
	that exits from the middle of it.  This usage appears to be
	*really* old, dating from the 1940s and 1950s.

	2. To fail a test that would have passed control to a
	subroutine or some other distant portion of code.

	3. In C, "fall-through" occurs when the flow of execution in a
	{switch statement} reaches a "case" label other than by
	jumping there from the switch header, passing a point where
	one would normally expect to find a "break".  A trivial
	example:

		switch (colour)
		{
		case GREEN:
		  do_green();
		  break;
		case PINK:
		  do_pink();
		  /* FALL THROUGH */
		case RED:
		  do_red();
		  break;
		default:
		  do_blue();
		  break;
		}

	The effect of the above code is to "do_green()" when colour is
	"GREEN", "do_red()" when colour is "RED", "do_blue()" on any
	other colour other than "PINK", and (and this is the important
	part) "do_pink()" __and then__ "do_red()" when colour is "PINK".
	Fall-through is {considered harmful} by some, though there are
	contexts (such as the coding of state machines) in which it is
	natural; it is generally considered good practice to include a
	comment highlighting the fall-through where one would normally
	expect a break.  See also {Duff's Device}.

fall thru

	{fall through}

FALSE

	A small, compiled extensible language with {lambda
	abstractions} by W. van Oortmerssen.

	{For Amiga (ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff885)}.

fandango on core

	<jargon, programming> (Unix/C, from the Mexican dance) In {C},
	a wild pointer that runs out of bounds, causing a {core dump},
	or corrupts the {malloc} {arena} in such a way as to cause
	mysterious failures later on, is sometimes said to have "done
	a fandango on core".  On low-end personal machines without an
	{MMU}, this can corrupt the {operating system} itself, causing
	massive lossage.  Other frenetic dances such as the rhumba,
	cha-cha, or watusi, may be substituted.

	See {aliasing bug}, {precedence lossage}, {smash the stack},
	{memory leak}, {memory smash}, {overrun screw}, {core}.

	[{Jargon File}]

	(1994-12-16)

fan-out

	<electronics> The number of {logic gate} inputs that can be
	driven from a single gate output of the same type.  Circuit
	designers need to add extra {buffers} if a signal goes to more
	inputs than the fan-out of the gate that produces it allows.

	(2007-05-16)

FAP

	<language> The {assembly language} for {Sperry-Rand 1103} and
	1103A.

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

	(1994-12-16)

FAQ

	{frequently asked question}

FAQL

	{frequently asked question}

FAQ list

	{frequently asked question}

faradise

	/far'*-di:z/ [US Geological Survey] To start any
	hyper-addictive process or trend, or to continue adding
	current to such a trend.  Telling one user about a new
	octo-tetris game you compiled would be a faradising act - in
	two weeks you might find your entire department playing the
	faradic game.

farkled

	<jargon> /far'kld/ (From DeVry Institute of Technology,
	Atlanta) A synonym for {hosed}.  Possibly related to Yiddish
	"farblondjet" and/or the "Farkle Family" skits on Rowan &
	Martin's Laugh-In.

	[{Jargon File}]

	(1998-09-07)

farm

	{processor farm}

farming

	<jargon> (From Adelaide University, Australia) What the
	{heads} of a {disk drive} are said to do when they plow little
	furrows in the magnetic media during a {head crash}.
	Typically used as follows: "Oh no, the machine has just
	crashed; I hope the hard drive hasn't gone {farming} again."

	[{Jargon File}]

	(2001-03-26)

FARNET

	A non-profit corporation, established in 1987, whose mission
	is to advance the use of computer networks to improve research
	and education.

fas

	1. Frankenstein Cross Assemblers.  A reconfigurable assembler
	package, especially suited for 8-bit processors, consisting of
	a base assembler module and a {yacc} parser, for each
	{microprocessor}, to handle {mnemonics} and addressing.
	Second party parser modules available from many sites.

	Base assembler and yacc parser modules by Mark Zenier.  FTP:
	ftp.njit.edu/pub/msdos/frankasm/frankasm.zoo.

	2. FAS.  A general purpose language sponsored by the Finnish
	government in the 70's and 80's.

FASBOL

	["FASBOL. A SNOBOL4 Compiler", P.J. Santos, Memo ERL-M134, UC
	Berkeley 1971].

fascist

	<jargon> Said of a computer system with excessive or annoying
	security barriers, usage limits, or access policies.  The
	implication is that said policies are preventing hackers from
	getting interesting work done.  The variant "fascistic" seems
	to have been preferred at {MIT}.

	In the design of languages and other software tools, "the
	fascist alternative" is the most restrictive and structured
	way of capturing a particular function; the implication is
	that this may be desirable in order to simplify the
	implementation or provide tighter error checking.  Compare
	{bondage-and-discipline language}, although that term is
	global rather than local.

	[{Jargon File}]

	(2003-07-29)

FASE

	Fundamentally Analyzable Simplified English.

	L.E. McMahon, Bell Labs.

	[Sammet 1969, p.720].

	(1994-11-09)

FAST

	1. <body> {Federation Against Software Theft}.

	2. <language> {Fortran Automatic Symbol Translator}.

	(1996-05-19)

Fast ATA

	{Advanced Technology Attachment Interface with Extensions}

Fast ATA-2

	{Advanced Technology Attachment Interface with Extensions}

Faster LEX

	<language> (FLEX) A reimplementation of the {Lex} {scanner
	generator}, by Vern Paxson <vern@ee.lbl.gov>.

	{Flex++} produces {C++} and {aflex} produces {Ada}.

	FTP flex-2.3.8.tar.Z from a {GNU archive site} or
	{(ftp://ftp.ee.lbl.gov/pub/flex-2.4.3.tar.Z)}.

	["The FLEX Scanner Generator", Vern Paxson <vern@ee.lbl.gov>,
	Systems Engineering, LBL, CA].

	[Home?  Current version?]

	(2003-12-16)

Fast Ethernet

	<networking> A version of {Ethernet} developed in the 1990s(?)
	which can carry 100 {Mbps} compared with standard Ethernet's
	10 Mbps.  It requires upgraded {network cards} and {hubs}.

	The relevant standards are {100BaseT}, {100BaseFX} and
	{100BaseVG}.

	(1998-03-23)

Fast Fourier Transform

	<algorithm> (FFT) An {algorithm} for computing the {Fourier
	transform} of a set of discrete data values.  Given a finite
	set of data points, for example a periodic sampling taken from
	a real-world signal, the FFT expresses the data in terms of
	its component frequencies.  It also solves the essentially
	identical inverse problem of reconstructing a signal from the
	frequency data.

	The FFT is a mainstay of {numerical analysis}.  Gilbert Strang
	described it as "the most important algorithm of our
	generation".  The FFT also provides the asymptotically fastest
	known algorithm for multiplying two {polynomials}.

	Versions of the algorithm (in {C} and {Fortran}) can be found
	on-line from the {GAMS} server {here
	(http://gams.nist.gov/cgi-bin/gams-serve/class/J1.html)}.

	["Numerical Methods and Analysis", Buchanan and Turner].

	(1994-11-09)

Fast Packet

	{Asynchronous Transfer Mode}

Fast Page Mode Dynamic Random Access Memory

	<hardware, storage> Is this the same as {Page Mode Dynamic
	Random Access Memory}?

	(1996-10-06)

Fast SCSI

	<hardware> A variant on the {SCSI-2} bus.  It uses the same
	8-bit bus as the original {SCSI}-1 but runs at up to 10MB/s -
	double the speed of SCSI-1.

	(1994-11-24)

FAT

	{File Allocation Table}

FAT32

	{File Allocation Table}

fatal

	<programming> Resulting in termination of the program.

	(1997-08-03)

fatal error

	<programming, operating system> Any {error} which causes
	abrupt {termination} of the program.  The program may be
	terminated either by itself or by the {operating system} (a
	"{fatal exception}").  In the former instance, the program
	contains code which catches the error and, as a result,
	returns to the operating system or calls an operating system
	service to terminate the program.

	(1997-08-03)

fatal exception

	<programming, operating system> A program execution error
	which is trapped by the {operating system} and which results
	in abrupt termination of the program.

	It may be possible for the program to catch some such errors,
	e.g. a {floating point} {underflow}; others, such as an
	invalid memory access (an attempt to write to read-only memory
	or an attempt to read memory outside of the program's {address
	space}), may always cause control to pass to the operating
	system without allowing the program an opportunity to handle
	the error.  The details depend on the language's {run-time
	system} and the operating system.

	See also: {fatal error}.

	(1997-08-03)

fat binary

	<operating system> An executable file containing code for more
	than one {CPU}.  The correct code is selected automatically at
	run time.  This is convenient for distributing {software} and
	sharing it between multiple {platforms}.

	{NEXTSTEP} supports fat binaries, e.g. for {Motorola 68000},
	{Intel 80486} and {SPARC} ("triple fat").  {Mac OS} supports
	fat binaries for both {680x0} and {PowerPC} native code.

	[Other OSes?]

	(1995-09-23)

fat client

	<networking> Opposite of "{thin client}".

	(1996-12-08)

fat electrons

	<electronics, humour> Old-time hacker David Cargill's theory
	on the cause of computer glitches.  Your typical electricity
	company draws its line current out of the big generators with
	a pair of coil taps located near the top of the dynamo.  When
	the normal tap brushes get dirty, they take them off line to
	clean them up, and use special auxiliary taps on the *bottom*
	of the coil.  Now, this is a problem, because when they do
	that they get not ordinary or "thin" electrons, but the fat
	sloppy electrons that are heavier and so settle to the bottom
	of the generator.  These flow down ordinary wires just fine,
	but when they have to turn a sharp corner (as in an
	integrated-circuit via), they're apt to get stuck.  This is
	what causes computer glitches.

	[Obviously, fat electrons must gain mass by {bogon} absorption
	- ESR]

	Compare {bogon}, {magic smoke}.

	[{Jargon File}]

	(1996-12-08)

fault

	1. <programming> A manifestation of an {error} in {software}.
	A fault, if encountered, may cause a {failure}.

	2. <architecture> {page fault}.

	(1996-05-14)

fault-based testing

	<testing> Software testing using test data designed to
	demonstrate the absence of a set of pre-specified {faults};
	typically, frequently occurring faults.  For example, to
	demonstrate that the software handles or avoids {divide by
	zero} correctly, the test data would include zero.

	(1996-05-15)

fault tolerance

	<architecture> 1. The ability of a system or component to
	continue normal operation despite the presence of hardware or
	software faults.  This often involves some degree of
	{redundancy}.

	2. The number of faults a system or component can withstand
	before normal operation is impaired.

	(1995-04-06)

fault tolerant

	{fault tolerance}

fault tree analysis

	<programming> A form of safety analysis that assesses hardware
	safety to provide failure statistics and sensitivity analyses
	that indicate the possible effect of critical failures.

	(1996-05-15)

fax

	{facsimile}

Fax over IP

	<communications> (FoIP) Transmission of a {facsimile} over an
	{IP} networking instead of {PSTN}, analogous to {Voice over
	IP}.

	(1999-04-26)

FC

	<language> A {functional language}.

	["FC Manual", L. Augustsson, Memo 13, Programming Methodology
	Group, Chalmers U, Sweden 1982].

	(1995-03-22)

FC-AL

	{Fibre Channel-Arbitrated Loop}.

FCB

	<operating system> {file control block}.

F-code

	The code for the {FP/M} {abstract machine}.

	["FP/M Abstract Syntax Description", Roger Bailey, Dept
	Computing, Imperial College, U London, 1985]1w.

	(1994-12-01)

FCP

	Flat Concurrent Prolog.

	["Design and Implementation of Flat Concurrent Prolog",
	C. Mierowsky, TR CS84-21 Weizmann Inst, Dec 1984].

	(1994-10-20)

FC-PGA

	{Flip Chip Pin Grid Array}

FCS

	{Frame Check Sequence}

FDC

	{floppy disk controller}

FDD

	{disk drive}

FDDI

	{Fiber Distributed Data Interface}

FDISK

	<operating system, tool> (Fixed disk utility) An {MS-DOS}
	utility program which prepares a {hard disk} so that it can be
	used as a {boot disk} and {file systems} can be created on it.
	{OS/2}, {NT}, {Windows 95}, {Linux}, and other {Unix} versions
	all have this command or something similar.

	(1996-12-23)

fd leak

	{file descriptor leak}

fdlibm

	A new version of the {C} maths library, libm, by Dr. K-C Ng.
	It is the basis for the bundled /usr/lib/libm.so in Solaris
	2.3 for SPARC and for future Solaris 2 releases for x86 and
	PowerPC.  It provides the standard functions necessary to pass
	the usual test suites.  This new libm can be configured to
	handle exceptions in accordance with various language
	standards or in the spirit of {IEEE 754}. The C source code
	should be portable to any IEEE 754 system.

	E-mail: <netlib@research.att.com> ("send all from fdlibm"),
	<fdlibm-comments@sunpro.eng.sun.com> (comments and bug
	reports).

	{(ftp://netlib.att.com/netlib)}.

	(1993-12-18).

FDMA

	{frequency division multiple access}

FDSE

	{full-duplex Switched Ethernet}

FDSP

	{full-duplex speaker phone}

FDT

	{Formal Description Technique}

fdx

	{full-duplex}

FEA

	{finite element analysis}

fear and loathing

	(Hunter S. Thompson) A state inspired by the prospect of
	dealing with certain real-world systems and standards that are
	totally {brain-damaged} but ubiquitous - {Intel 8086s},
	{COBOL}, {EBCDIC}, or any {IBM} machine except the {Rios}
	(also known as the {RS/6000}).

	[{Jargon File}]

	(1994-12-06)

feasibility study

	<systems analysis> Part of the {systems develpment life cycle}
	which aims to determine whether it is sensible to develop some
	system.  The most popular model of feasibility study is
	"TELOS", standing for Technical, Economic, Legal, Operational,
	Schedule.

	Technical Feasibility: does the technology exist to implement
	the proposed system?  Is it a practical proposition?

	Economic Feasibility: is the system cost-effective?  Do
	benefits outweigh costs?

	Legal Feasibility: is there any conflict between the proposed
	system and legal requirements, e.g. the {Data Protection Act}?

	Operational Feasibility: are the current work practices and
	procedures adequate to support the new system?

	Schedule Feasibility: can the system be developed in time?

	After the feasibility study, the {requirements analysis}
	should be carried out.

	(2006-07-11)

feasible

	<algorithm> A description of an {algorithm} that takes
	{polynomial} time (that is, for a problem set of size N, the
	resources required to solve the problem can be expressed as
	some polynomial involving N).

	Problems that are "feasible" are said to be "in P" where P is
	polynomial time.  Problems that are "possible" but not
	"feasible" are said to be "in NP".

	(2001-04-12)

	<systems analysis> A description of a project or system for
	which a {feasibility study} gives a positive answer.

	(2006-07-11)

feature

	<jargon> 1. A good property or behaviour (as of a program).
	Whether it was intended or not is immaterial.

	2. An intended property or behaviour (as of a program).
	Whether it is good or not is immaterial (but if bad, it is
	also a {misfeature}).

	3. A surprising property or behaviour; in particular, one that
	is purposely inconsistent because it works better that way -
	such an inconsistency is therefore a {feature} and not a
	{bug}.  This kind of feature is sometimes called a {miswart}.

	4. A property or behaviour that is gratuitous or unnecessary,
	though perhaps also impressive or cute.  For example, one
	feature of {Common LISP}'s "format" function is the ability to
	print numbers in two different Roman-numeral formats (see
	{bells, whistles, and gongs}).

	5. A property or behaviour that was put in to help someone
	else but that happens to be in your way.

	6. A bug that has been documented.  To call something a
	feature sometimes means the author of the program did not
	consider the particular case, and that the program responded
	in a way that was unexpected but not strictly incorrect.  A
	standard joke is that a bug can be turned into a {feature}
	simply by documenting it (then theoretically no one can
	complain about it because it's in the manual), or even by
	simply declaring it to be good.  "That's not a bug, that's a
	feature!" is a common catch-phrase.  Apparently there is a
	Volkswagen Beetle in San Francisco whose license plate reads
	"FEATURE".

	See also {feetch feetch}, {creeping featurism}, {wart}, {green
	lightning}.

	The relationship among bugs, features, misfeatures, warts and
	miswarts might be clarified by the following hypothetical
	exchange between two hackers on an airliner:

	A: "This seat doesn't recline."

	B: "That's not a bug, that's a feature.  There is an emergency
	exit door built around the window behind you, and the route
	has to be kept clear."

	A: "Oh.  Then it's a misfeature; they should have increased
	the spacing between rows here."

	B: "Yes.  But if they'd increased spacing in only one section
	it would have been a wart - they would've had to make
	nonstandard-length ceiling panels to fit over the displaced
	seats."

	A: "A miswart, actually.  If they increased spacing throughout
	they'd lose several rows and a chunk out of the profit margin.
	So unequal spacing would actually be the Right Thing."

	B: "Indeed."

	"Undocumented feature" is a common euphemism for a {bug}.

	7. An attribute or function of a {class} in {Eiffel}.

	[{Jargon File}]

	(1995-10-22)

feature creature

	[Possibly from slang "creature feature" for a horror movie]
	1. One who loves to add features to designs or programs,
	perhaps at the expense of coherence, concision or {taste}.

	2. Alternately, a mythical being that induces otherwise
	rational programmers to perpetrate such crocks.  See also
	{feeping creaturism}, {creeping featurism}.

	[{Jargon File}]

feature creep

	{creeping featurism}

featurectomy

	/fee"ch*r-ek"t*-mee/ The act of removing a {feature} from a
	program.  Featurectomies come in two flavours, the "righteous"
	and the "reluctant".  Righteous featurectomies are performed
	because the remover believes the program would be more elegant
	without the feature, or there is already an equivalent and
	better way to achieve the same end.  (Doing so is not quite
	the same thing as removing a {misfeature}.)  Reluctant
	featurectomies are performed to satisfy some external
	constraint such as code size or execution speed.

	[{Jargon File}]

	(1994-10-20)

feature key

	<hardware> (Or "flower", "pretzel", "clover", "propeller",
	"beanie" (from propeller beanie), {splat}, "command key") The
	{Macintosh} {modifier key} with the four-leaf clover graphic
	on its keytop.

	The feature key is the Mac's equivalent of a {control key}
	(and so labelled on some Mac II keyboards).  The proliferation
	of terms for this creature may illustrate one subtle peril of
	iconic interfaces.  Macs also have an "Option" {modifier key},
	equivalent to Alt.

	The cloverleaf-like symbol's oldest name is "cross of
	St. Hannes", but it occurs in pre-Christian Viking art as a
	decorative motif.  In Scandinavia it marks sites of historical
	interest.  An early {Macintosh} developer who happened to be
	Swedish introduced it to Apple.  Apple documentation gives the
	translation "interesting feature".

	The symbol has a {Unicode} character called "PLACE OF INTEREST
	SIGN" (U+2318), previously known as "command key".

	The Swedish name of this symbol stands for the word
	"sev"ardhet" (interesting feature), many of which are old
	churches.  Some Swedes report as an idiom for it the word
	"kyrka", cognate to English "church" and Scots-dialect "kirk"
	but pronounced /shir'k*/ in modern Swedish.  Others say this
	is nonsense.

	{(http://fileformat.info/info/unicode/char/2318/index.htm)}.

	[{Jargon File}]

	(2005-09-15)

feature shock

	<jargon> (From Alvin Toffler's "Future Shock") A user's
	confusion when confronted with a package that has too many
	features and poor introductory material.

	[{Jargon File}]

	(2005-09-15)

FEC

	{Forward Error Correction}

FED

	{field emission display}

Federal Geographic Data Committee

	(FGDC)

	{(ftp://fgdc.er.usgs.gov/gdc/html/fgdc.html)}.

	[Summary?]

	(1995-03-06)

Federal Information Exchange

	<networking> (FIX) One of the connection points between the
	American governmental {internets} and the {Internet}.

	(2001-05-14)

Federal Information Processing Standards

	<standard> (FIPS) United States Government technical
	{standards} published by the {National Institute of Standards
	and Technology} (NIST).  NIST develops FIPS when there are
	compelling Federal government requirements such as for
	security and {interoperability} but no acceptable industry
	standards or solutions.

	Computer-related products bought by the US Government must
	conform to FIPS.

	(2003-06-04)

Federal Networking Council

	(FNC) The coordinating group of representatives from federal
	agencies involved in the development and use of federal
	networking, especially those networks using {TCP/IP} and the
	{Internet}.  Current members include representatives from DOD,
	DOE, {DARPA}, {NSF}, NASA, and HHS.

	(1994-11-17)

federation

	<security> The establishment of some or all of business
	agreements, {cryptographic} trust and user identifiers or
	attributes across security and policy domains to enable more
	seamless business interaction.

	As {web services} promise to enable integration between
	business partners through {loose coupling} at the application
	and messaging layer, federation does so at the identity
	management layer, insulating each domain from the details of
	the others' authentication and authorization.  Key to this
	loose coupling at the identity management layer are
	standardized mechanisms and formats for the communication of
	identity information between the domains.  {SAML} is one such
	standard.

	(2011-05-12)

Federation Against Software Theft Limited

	<body, legal> (FAST) A non-profitmaking organisation, formed
	in 1984 by the software industry with the aim of eradicating
	{software theft} in the UK.  FAST was the world's first
	anti-piracy organisation to work to protect the intellectual
	property rights of software publishers.  Initially
	concentrating on lobbying parliament to revise Copyright law,
	FAST also prosecutes organisations and individuals for
	software theft on behalf of its members and publicises the
	legal penalties and security risks.

	FAST Corporate Services Limited runs the FAST Standard for
	Software Compliance (FSSC-1:2004).  This was developed in
	collaboration with the {British Standards Institution} as an
	independent standard of excellence in {software compliance}.

	In 1995 FAST proposed to merge with the {Business Software
	Alliance} created by {Microsoft} and which has a world-wide
	influence.  However, the talks fell through and in 1996,
	{Novell} and {Adobe Systems, Inc.} defected to BSA.

	{FAST Home (http://fast.org.uk/)}.

	E-mail: <fast@fast.org>.

	Address: York House, 18 York Road, Maidenhead, Berkshire SL6
	1SF.

	Telephone: +44 (1628) 622 121

	(2005-12-27)

Fedora

	<operating system, project> An open source project, sponsored
	by {Red Hat, Inc.}, and potentially feeding into their
	products.

	{Fedora Home (http://fedora.redhat.com/)}.

	(2005-12-27)

feed

	1. <data> {data feed}.

	2. {Rich Site Summary}.

feedback

	<electronics> Part of a system output presented at its input.
	Feedback may be unintended.  When used as a design feature,
	the output is usually transformed by passive components which
	attenuate it in some manner; the result is then presented at
	the system input.

	Feedback is positive or negative, depending on the sign with
	which a positive change in the original input reappears after
	transformation.  Negative feedback was invented by Black to
	stabilise {vacuum tube} amplifiers.  The behaviour becomes
	largely a function of the feedback transformation and only
	minimally a function of factors such as transistor gain which
	are imperfectly known.

	Positive feedback can lead to instability; it finds wide
	application in the construction of oscillators.

	Feedback can be used to control a system, as in {feedback
	control}.

	(1996-01-02)

feedback control

	<electronics> A control system which monitors its effect on
	the system it is controlling and modifies its output
	accordingly.  For example, a thermostat has two inputs: the
	desired temperature and the current temperature (the latter is
	the feedback).  The output of the thermostat changes so as to
	try to equalise the two inputs.

	Computer {disk drives} use feedback control to position the
	read/write heads accurately on a recording track.  Complex
	systems such as the human body contain many feedback systems
	that interact with each other; the homeostasis mechanisms that
	control body temperature and acidity are good examples.

	(1996-01-02)

feed-forward

	A {multi-layer perceptron} network in which the outputs from
	all neurons (see {McCulloch-Pitts}) go to following but not
	preceding layers, so there are no feedback loops.

Feel

	(Free and Eventually Eulisp) An initial implementation of an
	{EuLisp} {interpreter} by Pete Broadbery
	<pab@maths.bath.ac.uk>.  Version 0.75 features an integrated
	{object} system, {modules}, {parallelism}, interfaces to {PVM}
	library, {TCP/IP} {sockets}, {futures}, {Linda} and {CSP}.
	Portable to most {Unix} systems.  Can use {shared memory} and
	{threads} if available.

	{(ftp://ftp.bath.ac.uk/pub/eulisp/)}.

	(1992-09-14)

feep

	/feep/ 1.  The soft electronic "bell" sound of a display
	terminal (except for a VT-52); a beep (in fact, the
	microcomputer world seems to prefer {beep}).

	2. To cause the display to make a feep sound.  ASR-33s (the
	original TTYs) do not feep; they have mechanical bells that
	ring.  Alternate forms: {beep}, "bleep", or just about
	anything suitably onomatopoeic.  (Jeff MacNelly, in his comic
	strip "Shoe", uses the word "eep" for sounds made by computer
	terminals and video games; this is perhaps the closest written
	approximation yet.)  The term "breedle" was sometimes heard at
	SAIL, where the terminal bleepers are not particularly soft
	(they sound more like the musical equivalent of a raspberry or
	Bronx cheer; for a close approximation, imagine the sound of a
	Star Trek communicator's beep lasting for five seconds).  The
	"feeper" on a VT-52 has been compared to the sound of a '52
	Chevy stripping its gears.  See also {ding}.

	[{Jargon File}]

feeper

	/fee'pr/  The device in a terminal or workstation (usually
	a loudspeaker of some kind) that makes the {feep} sound.

feeping creature

	[{feeping creaturism}] An unnecessary feature; a bit of
	{chrome} that, in the speaker's judgment, is the camel's nose
	for a whole horde of new features.

	[{Jargon File}]

feeping creaturism

	/fee'ping kree"ch*r-izm/ A deliberate spoonerism for {creeping
	featurism}, meant to imply that the system or program in
	question has become a misshapen creature of hacks.  This term
	isn"t really well defined, but it sounds so neat that most
	hackers have said or heard it.  It is probably reinforced by
	an image of terminals prowling about in the dark making their
	customary noises.

FEL

	Function Equation Language.  Programs are sets of definitions.
	Sequences are lists stored in consecutive memory.  "FEL
	Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March
	1982.

femto-

	{prefix}

fence

	1. A sequence of one or more distinguished ({out-of-band})
	characters (or other data items), used to delimit a piece of
	data intended to be treated as a unit (the computer-science
	literature calls this a "sentinel").  The NUL (ASCII 0000000)
	character that terminates strings in C is a fence.  {Hex} FF
	is also (though slightly less frequently) used this way.  See
	{zigamorph}.

	2. An extra data value inserted in an array or other data
	structure in order to allow some normal test on the array's
	contents also to function as a termination test.  For example,
	a highly optimised routine for finding a value in an array
	might artificially place a copy of the value to be searched
	for after the last slot of the array, thus allowing the main
	search loop to search for the value without having to check at
	each pass whether the end of the array had been reached.

	3. [among users of optimising compilers] Any technique,
	usually exploiting knowledge about the compiler, that blocks
	certain optimisations.  Used when explicit mechanisms are not
	available or are overkill.  Typically a hack: "I call a dummy
	procedure there to force a flush of the optimiser's
	register-colouring info" can be expressed by the shorter
	"That's a fence procedure".

	[{Jargon File}]

	(1999-01-08)

fencepost error

	1. (Rarely "lamp-post error") A problem with the discrete
	equivalent of a {boundary condition}, often exhibited in
	programs by iterative loops.  From the following problem: "If
	you build a fence 100 feet long with posts 10 feet apart, how
	many posts do you need?"  (Either 9 or 11 is a better answer
	than the obvious 10).

	For example, suppose you have a long list or array of items,
	and want to process items m through n; how many items are
	there?  The obvious answer is n - m, but that is off by one;
	the right answer is n - m + 1.  The "obvious" formula exhibits
	a fencepost error.

	See also {zeroth} and note that not all {off-by-one errors}
	are fencepost errors.  The game of Musical Chairs involves a
	catastrophic off-by-one error where N people try to sit in N -
	1 chairs, but it's not a fencepost error.  Fencepost errors
	come from counting things rather than the spaces between them,
	or vice versa, or by neglecting to consider whether one should
	count one or both ends of a row.

	2. (Rare) An error induced by unexpected regularities in input
	values, which can (for instance) completely thwart a
	theoretically efficient {binary tree} or {hash coding}
	implementation.  The error here involves the difference
	between expected and worst case behaviours of an {algorithm}.

	[{Jargon File}]

	(1994-12-01)

fepped out

	<jargon> /fept owt/ The {Symbolics 3600} {LISP Machine} has a
	{Front-End Processor} (FEP).  When the main processor gets
	{wedged}, the FEP takes control of the keyboard and screen.
	Such a machine is said to have "fepped out" or "dropped into
	the fep".

	[{Jargon File}]

	(1994-12-01)

FEPROM

	{Flash Erasable Programmable Read-Only Memory}

Fermat prime

	<mathematics> A {prime number} of the form 2^2^n + 1.  Any
	prime number of the form 2^n+1 must be a Fermat prime.
	{Fermat} conjectured in a letter to someone or other that all
	numbers 2^2^n+1 are prime, having noticed that this is true
	for n=0,1,2,3,4.

	{Euler} proved that 641 is a factor of 2^2^5+1.  Of course
	nowadays we would just ask a computer, but at the time it was
	an impressive achievement (and his proof is very elegant).

	No further Fermat primes are known; several have been
	factorised, and several more have been proved composite
	without finding explicit factorisations.

	{Gauss} proved that a regular N-sided {polygon} can be
	constructed with ruler and compasses if and only if N is a
	power of 2 times a product of distinct Fermat primes.

	(1995-04-10)

Fermat's Last Post

	<humour> A post to a {bug tracker}, {mailing list} or {forum}
	in which the author claims to have found a simple fix or
	workaround for a bug, but never says what it is and never
	shows up again to explain it (even after others have been
	puzzling over the bug for years).

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-02-19)

Ferranti F100-L

	<processor> A {processor}, with 16-bit addressing, {registers}
	and data paths and a 1-bit serial {ALU}.  The F100-L could
	only access 32K of memory (one address bit was used for
	{indirection}).  It was designed by a British company for the
	British Military.

	The unique feature of the F100-L was that it had a complete
	control bus available for a {coprocessor}.  Any instruction
	the F100-L couldn't decode was sent directly to the
	coprocessor for processing.  Applications for coprocessors at
	the time were limited, but the design is still used in modern
	processors, such as the {National Semiconductor 32000} series.

	The {disk operating system} was written by Alec Cawley.

	(2007-05-19)

ferrite core memory

	<storage> (Or "core") An early form of {non-volatile storage}
	built (by hand) from tiny rings of magnetisable material
	threaded onto very fine wire to form large (e.g. 13"x13" or
	more) rectangluar arrays.  Each core stored one {bit} of data.
	These were sandwiched between {printed circuit boards}(?).
	Sets of wires ran horizontally and vertically and where a
	vertical and horizontal wire crossed, a core had both wires
	threaded through it.

	A single core could be selected and magnetised by passing
	sufficient current through its horizontal and vertical wires.
	A core would retain its magnetisation until it was
	re-magnetised.  The two possible polarities of magnetisation
	were used to represent the binary values zero and one.

	A third "sense" wire, passed through the core and, if the
	magnetisation of the core was changed, a small pulse would be
	induced in the sense wire which could be detected and used to
	deduce the core's original state.

	Some core memory was immersed in a bath of heated oil to
	improve its performance.

	Core memory was rendered obsolete by {semiconductor} memory.

	For example, the 1970s-era {NCR 499} had two boards, each with
	16 {kilobytes} of core memory.

	(1996-03-04)

Ferroelectric RAM

	{Ferroelectric Random Access Memory}

Ferroelectric Random Access Memory

	<storage> (FRAM) A type of {non-volatile} read/write {random
	access} {semiconductor} memory.  FRAM combines the advantages
	of {SRAM} - writing is roughly as fast as reading, and {EPROM}
	- non-volatility and in-circuit programmability.  Current (Feb
	1997) disadvantages are high cost and low density, but that
	may change in the future.  Density is currently at most 32KB
	on a chip, compared with 512KB for SRAM, 1MB for EPROM and 8MB
	for DRAM.

	A ferroelectric memory cell consists of a ferroelectric
	{capacitor} and a {MOS} {transistor}.  Its construction is
	similar to the storage cell of a {DRAM}.  The difference is in
	the dielectric properties of the material between the
	capacitor's electrodes.  This material has a high dielectric
	constant and can be polarized by an electric field.  The
	polarisation remains until it gets reversed by an opposite
	electrical field.  This makes the memory non-volatile.  Note
	that ferroelectric material, despite its name, does not
	necessarily contain iron.  The most well-known ferroelectric
	substance is BaTiO3, which does not contain iron.

	Data is read by applying an electric field to the capacitor.
	If this switches the cell into the opposite state (flipping
	over the electrical dipoles in the ferroelectric material)
	then more charge is moved than if the cell was not flipped.
	This can be detected and amplified by sense amplifiers.
	Reading destroys the contents of a cell which must therefore
	be written back after a read.  This is similar to the
	{precharge} operation in DRAM, though it only needs to be done
	after a read rather than periodically as with DRAM {refresh}.
	In fact it is most like the operation of {ferrite core
	memory}.

	FRAM has similar applications to EEPROM, but can be written
	much faster.  The simplicity of the memory cell promises high
	density devices which can compete with DRAM.

	{RAMTRON} is the company behind FRAM.

	(1997-02-17)

Fetch

	A {Macintosh} program by Jim Matthews <Fetch@Dartmouth.edu>
	for transferring files using {File Transfer Protocol} (FTP).
	Fetch requires a Mac 512KE, System 4.1, and either {KSP} 1.03
	or {MacTCP}.

	Latest version: 2.1.2.

	Fetch is Copyright 1992, Trustees of Dartmouth College.

	{(ftp://ftp.Dartmouth.edu/pub/mac/Fetch_2.1.2.sit.hqx)}.
	{(ftp://src.doc.ic.ac.uk/computing/systems/mac/info-mac/comm/tcp)}.

	(1994-11-30)

fetch-execute cycle

	<architecture, processor> The sequence of actions that a
	{central processing unit} performs to execute each {machine
	code} instruction in a program.

	At the beginning of each cycle the CPU presents the value of
	the {program counter} on the {address bus}.  The CPU then
	fetches the instruction from {main memory} (possibly via a
	{cache} and/or a {pipeline}) via the {data bus} into the
	{instruction register}.

	From the instruction register, the data forming the
	instruction is decoded and passed to the {control unit} which
	sends a sequence of control signals to the relevant {function
	units} of the CPU to perform the actions required by the
	instruction such as reading values from {registers}, passing
	them to the {ALU} to add them together and writing the result
	back to a register.

	The program counter is then incremented to address the next
	instruction and the cycle is repeated.

	The fetch-execute cycle was first proposed by {John von
	Neumann}.

	(1998-06-25)

Feynman, Richard P.

	{Richard P. Feynman}

FF

	{form feed}

ffccc

	{Floppy} {Fortran} coding convention checker.

FFP

	Formal FP.  A language similar to FP, but with regular
	sugarless {syntax}, for machine execution.

	See also {FL}.

	["Can Programming be Liberated From the von Neumann Style?  A
	Functional Style and Its Algebra of Programs", John Backus,
	1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)].

	(1994-10-24)

FFT

	{Fast Fourier Transform}

FGDC

	{Federal Geographic Data Committee}

FGHC

	Flat GHC.  A {flat} variant of {GHC} in which {guard} calls
	can be only to {primitives}.

	See also {KL1}.

	(1994-10-24)

FGL

	1. Flow Graph Lisp.  A distributed dataflow language for AMPS
	(Applicative Multi-Processing System).  "A Loosely-Coupled
	Applicative Multi-Processing System", R. Keller et al, NCC,
	AFIPS June 1979, pp.613- 622.

	2. Function Graph Language.  Related to FEL.

FGL+LV

	["Functional Programming and the Logical Variable",
	G. Lindstrom, POPL 1985, pp. 266-280].

	(1994-11-30)

FGRAAL

	Fortran extended GRAph Algorithmic Language.  A Fortran
	extension for handling sets and graphs.  "On a Programming
	Language for Graph Algorithms", W.C. Rheinboldt et al, BIT
	12(2) 1972.

fgrep

	<tool> A variant of the {Unix} {grep} command which searches
	for fixed (uninterpreted) strings rather than {regular
	expressions}.  Surprisingly, this is not always faster.

	(1996-10-27)

FhG

	{Fraunhofer Gesellschaft}

FHS

	{Filesystem Hierarchy Standard}

FHSS

	{Frequency-Hopping Spread Spectrum}

fi

	<networking> The {country code} for Finland.

	(1999-01-27)

Fiber Distributed Data Interface

	(FDDI) A 100 Mbit/s {ANSI} {standard} {local area network}
	architecture, defined in X3T9.5.  The underlying medium is
	{optical fibre} (though it can be copper cable, in which case
	it may be called {CDDI}) and the topology is a
	{dual-attached}, counter-rotating {token ring}.

	FDDI rings are normally constructed in the form of a "dual
	ring of trees".  A small number of devices, typically
	infrastructure devices such as {routers} and {concentrators}
	rather than {host} computers, are connected to both rings -
	these are referred to as "{dual-attached}".  Host computers
	are then connected as {single-attached} devices to the
	{routers} or {concentrators}.  The dual ring in its most
	degenerate form is simply collapsed into a single device.  In
	any case, the whole dual ring is typically contained within a
	computer room.

	This network topology is required because the dual ring
	actually passes through each connected device and requires
	each such device to remain continuously operational (the
	standard actually allows for optical bypasses but these are
	considered to be unreliable and error-prone).  Devices such as
	{workstations} and {minicomputers} that may not be under the
	control of the {network managers} are not suitable for
	connection to the dual ring.

	As an alternative to a dual-attached connection, the same
	degree of resilience is available to a {workstation} through a
	{dual-homed} connection which is made simultaneously 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.

	{Usenet} newsgroup: {news:comp.dcom.lans.fddi}.

	(1994-12-13)

Fiber Optic InterRepeater Link

	<networking> (FOIRL) An older standard of {fiber optic} guides
	used for carrying 10 MBps {Ethernet}.  The maximum length of a
	{segment} is 1 km.  A FOIRL {multiport repeater} and
	transceivers are necessary to carry the signal to multiple
	devices.

	The more recent version of Ethernet over fiber optic cables is
	{10baseFL} with a maximum segment length of 2 km.

	(1998-06-28)

fiber optics

	<spelling> US spelling of "fibre optics".  See {optical
	fibre}.

	(1997-03-31)

Fibonacci sequence

	<mathematics> The {infinite} sequence of numbers beginning

		1, 1, 2, 3, 5, 8, 13, ...

	in which each term is the sum of the two terms preceding it.

	The ratio of successive Fibonacci terms tends to the {golden
	ratio}, namely (1 + sqrt 5)/2.

	[Why not "Fibonacci {series}"?]

	(2002-10-15)

Fibre Channel

	<storage, networking, communications> An {ANSI} {standard}
	originally intended for high-speed {SANs} connecting
	{servers}, {disc arrays}, and {backup} devices, also later
	adapted to form the {physical layer} of {Gigabit Ethernet}.

	Development work on Fibre channel started in 1988 and it was
	approved by the ANSI standards committee in 1994, running at
	100Mb/s.  More recent innovations have seen the speed of Fibre
	Channel SANs increase to 10Gb/s.  Several topologies are
	possible with Fibre Channel, the most popular being a number
	of devices attached to one (or two, for redundancy) central
	Fibre Channel switches, creating a reliable infrastructure
	that allows servers to share storage arrays or tape libraries.

	One common use of Fibre Channel SANs is for high availability
	databaseq clusters where two servers are connected to one
	highly reliable {RAID} array.  Should one server fail, the
	other server can mount the array itself and continue
	operations with minimal {downtime} and loss of data.

	Other advanced features include the ability to have servers
	and {hard drives} seperated by hundreds of miles or to rapidly
	{mirror} data between servers and hard drives, perhaps in
	seperate geographic locations.

	{Fibre Channel Industry Association
	(http://fibrechannel.org)} (FCIA).

	(2003-09-27)

Fibre Channel-Arbitrated Loop

	<hardware, standard> (FC-AL) A fast serial bus interface
	standard intended to replace {SCSI} on high-end {servers}.

	FC-AL has a number of advantages over SCSI.  It offers higher
	speed: the base speed is 100 {megabytes} per second, with 200,
	400, and 800 planned.  Many devices are dual ported, i.e., can
	be accessed through two independent ports, which doubles speed
	and increases fault tolerance.  Cables can be as long as 30 m
	(coaxial) or 10 km (optical).  FC-AL enables
	{self-configuring} and {hot swapping} and the maximum number
	of devices on a single port is 126.  Finally, it provides
	software compatibility with SCSI.

	Despite all these features FC-AL is unlikely to appear on
	desktops anytime soon, partly because its price, partly
	because typical {desktop computers} would not take advantage
	of many of the advanced features.  On these systems {FireWire}
	has more potential.

	[Current status?  Reference?]

	(1999-09-12)

fibre optics

	{optical fibre}

FIDIL

	Based on "maps", generalised arrays whose index sets
	("domains") are arbitrary D-dimensional sets.  Domains are
	first-class objects and may be constructed by union,
	intersection, etc.

	["Fidil: A Language for Scientific Programming",
	P.N. Hilfinger et al, TR UCRL-98057, LLNL Jan 1988].

FIDO

	FInite DOmains.  A constraint language implemented on top of
	Prolog.

	{(ftp://ftp.uni-kl.de/pub1/Unix/languages/fido/)}.

FidoNet

	A worldwide hobbyist network of personal computers which
	exchanges {e-mail}, discussion groups, and files.  Founded in
	1984 and originally consisting only of {IBM PCs} and
	compatibles, FidoNet now includes such diverse machines as
	{Apple IIs}, {Ataris}, {Amigas}, and {Unix} systems.  Though
	it is much younger than {Usenet}, FidoNet is already (in early
	1991) a significant fraction of {Usenet}'s size at some 8000
	systems.

	[{Jargon File}]

field

	<data, database> An area of a {database} {record}, or
	{graphical user interface} {form}, into which a particular
	item of data is entered.

	Example usage: "The telephone number field is not really a
	numerical field", "Why do we need a four-digit field for the
	year?".

	A {database} {column} is the set of all instances of a given
	field from all records in a {table}.

	(1999-04-26)

field circus

	A derogatory pun on "field service".  The field service
	organisation of any hardware manufacturer, but especially
	{DEC}.  There is an entire genre of jokes about DEC field
	circus engineers:

	Q: How can you recognise a DEC field circus engineer with a
	flat tire?

	A: He's changing one tire at a time to see which one is flat.

	Q: How can you recognise a DEC field circus engineer who is
	out of gas?

	A: He's changing one tire at a time to see which one is flat.

	See {Easter egging} for additional insight on these jokes.

	There is also the "Field Circus Cheer" (from the {plan file}
	for {DEC} on MIT-AI):

	 Maynard! Maynard!
	 Don't mess with us!
	 We're mean and we're tough!
	 If you get us confused
	 We'll screw up your stuff.

	(DEC's service HQ is located in Maynard, Massachusetts).

	[{Jargon File}]

	(1994-12-01)

field effect transistor

	<electronics> (FET) A {transistor} with a region of {donor}
	material with two terminals called the "source" and the
	"drain", and an adjoining region of {acceptor} material
	between, called the "gate".  The voltage between the gate and
	the {substrate} controls the current flow between source and
	drain by depleting the donor region of its charge carriers to
	greater or lesser extent.

	There are two kinds of FET's, {Junction FETs} and {MOSFETs}.

	Because no current (except a minute leakage current) flows
	through the gate, FETs can be used to make circuits with very
	low power consumption.

	Contrast {bipolar transistor}.

	(1995-10-05)

field emission display

	<hardware> (FED) A type of {flat panel display} in which field
	emitting cathodes bombard a phosphor coating causing it to
	emit light.

	A field emission display is similar to a {cathode ray tube}
	but only a few millimeters thick.  They use a large array of
	fine metal tips or carbon nanotubes (which are the most
	efficient electron emitters known), to emit electrons through
	a process known as field emission.  Many of these are behind
	each phosphor dot so FEDs do not display dead pixels like LCDs
	even if 20% of the emitters fail.  {Sony} is researching FED
	because it is the flat-panel technology that comes closest to
	matching the picture of a CRT.

	(2007-10-10)

field mouse

	{wireless mouse}

field-programmable gate array

	<hardware> (FPGA) A {gate array} where the logic network can
	be programmed into the device after its manufacture.  An FPGA
	consists of an array of logic elements, either gates or lookup
	table {RAMs}, {flip-flops} and programmable interconnect
	wiring.

	Most FPGAs are reprogrammable, since their logic functions and
	interconnect are defined by RAM cells.  The {Xilinx} LCA,
	{Altera} FLEX and {AT&T} ORCA devices are examples.  Others
	can only be programmed once, by closing "antifuses".  These
	retain their programming permanently.  The {Actel} FPGAs are
	the leading example of such devices.  Atmel FPGAs are
	currently (July 1997) the only ones in which part of the array
	can be reprogrammed while other parts are active.

	As of 1994, FPGAs have logic capacity up to 10K to 20K
	2-input-NAND-equivalent gates, up to about 200 I/O pins and
	can run at {clock rates} of 50 MHz or more.  FPGA designs must
	be prepared using {CAD} software tools, usually provided by
	the chip vendor, to do technology mapping, partitioning and
	placement, routing, and binary output.  The resulting binary
	can be programmed into a {ROM} connected to the FPGA or
	{downloaded} to the FPGA from a connected computer.

	In addition to ordinary logic applications, FPGAs have enabled
	the development of {logic emulators}.  There is also research
	on using FPGAs as computing devices, taking direct advantage
	of their reconfigurability into problem-specific hardware
	processors.

	{Usenet} newsgroup: {news:comp.arch.fpga}.

	(1997-07-11)

field servoid

	<jargon, abuse> /fee'ld ser'voyd/ A play on "android", a
	derogatory term for a representative of a field service
	organisation (see {field circus}), suggesting an unintelligent
	rule-driven approach to servicing computer hardware.

	[{Jargon File}]

	(2003-02-03)

FIFO

	{first-in first-out}

Fifth

	An enhanced version of FORTH.  M.S. Dissertation, Cliff Click
	<cliff@cs.rice.edu>, Texas A&M, 1985.  Available from the
	Software Construction Co, (409)696-5432.

Fifth Dimension Technologies

	<company, virtual reality> (5DT) Manufacturers of the {5th
	Glove}.

	(1995-04-04)

fifth generation language

	<language, artificial intelligence> A myth the Japanese spent
	a lot of money on.  In about 1982, {MITI} decided it would
	spend ten years and a lot of money applying {artificial
	intelligence} to programming, thus solving the {software
	crisis}.  The project spent its money and its ten years and in
	1992 closed down with a wimper.

	(1996-11-06)

fifth normal form

	{database normalisation}

Fight-o-net

	<messaging> A distortion of {FidoNet}, often applied after a
	flurry of {flamage} in a particular {echo}, especially the
	SYSOP echo or Fidonews (see {'Snooze}).

	[{Jargon File}]

	(1996-11-04)

file

	<file system> An element of data storage in a {file system}.

	The history of computing is rich in varied kinds of files and
	{file systems}, whether ornate like the {Macintosh file
	system} or deficient like many simple pre-1980s file systems
	that didn't have {directories}.  However, a typical file has
	these characteristics:

	* It is a single sequence of bytes (but consider {Macintosh}
	{resource forks}).

	* It has a finite length, unlike, e.g., a {Unix} {device}.

	* It is stored in a {non-volatile storage} medium (but see
	{ramdrive}).

	* It exists (nominally) in a {directory}.

	* It has a name that it can be referred to by in file
	operations, possibly in combination with its {path}.

	Additionally, a file system may support other {file
	attributes}, such as {permissions}; timestamps for creation,
	last modification, and last access and revision numbers (a` la
	{VMS}).

	Compare: {document}.

	(2007-01-04)

File Allocation Table

	<file system> (FAT) The component of an {MS-DOS} or {Windows
	95} {file system} which describes the {files}, {directories},
	and free space on a {hard disk} or {floppy disk}.

	A disk is divided into {partitions}.  Under the FAT {file
	system} each partition is divided into {clusters}, each of
	which can be one or more {sectors}, depending on the size of
	the partition.  Each cluster is either allocated to a file or
	directory or it is free (unused).  A directory lists the name,
	size, modification time and starting cluster of each file or
	subdirectory it contains.

	At the start of the partition is a table (the FAT) with one
	entry for each cluster.  Each entry gives the number of the
	next cluster in the same file or a special value for "not
	allocated" or a special value for "this is the last cluster in
	the chain".  The first few clusters after the FAT contain the
	{root directory}.

	The FAT file system was originally created for the {CP/M}[?]
	{operating system} where files were catalogued using 8-bit
	addressing.  {MS DOS}'s FAT allows only {8.3} filenames.

	With the introduction of MS-DOS 4 an incompatible 16-bit FAT
	(FAT16) with 32-kilobyte {clusters} was introduced that
	allowed {partitions} of up to 2 gigabytes.

	Microsoft later created {FAT32} to support partitions larger
	than two gigabytes and {pathnames} greater that 256
	characters.  It also allows more efficient use of disk space
	since {clusters} are four kilobytes rather than 32 kilobytes.
	FAT32 was first available in {OEM} Service Release 2 of
	{Windows 95} in 1996.  It is not fully {backward compatible}
	with the 16-bit and 8-bit FATs.

	{IDG article
	(http://idg.net/idgframes/english/content.cgi?vc=docid_9-62525.html)}.
	{(http://home.c2i.net/tkjoerne/os/fat.htm)}.
	{(http://teleport.com/~brainy/)}.
	{(http://209.67.75.168/hardware/fatgen.htm)}.
	{(http://support.microsoft.com/support/kb/articles/q154/9/97.asp)}.

	Compare: {NTFS}.

	[How big is a FAT?  Is the term used outside MS DOS?  How long
	is a FAT16 filename?]

	(2000-02-05)

File Attach

	[FidoNet] 1.  A file sent along with a mail message from one
	BBS to another.

	2. Sending someone a file by using the File Attach option in a
	BBS mailer.

	[{Jargon File}]

File Composition

	A typesetting language.

	["File Composition System Reference Manual", No. 90388,
	Information Intl].

file compression

	<algorithm> The {compression} of data in a file, usually to
	reduce storage requirements.

	(1995-04-06)

file control block

	<operating system> (FCB) An {MS-DOS} data structure that
	stores information about an open file.  The number of FCBs is
	configured in {CONFIG.SYS} with a command

		FCBS=x,y

	where x (between 1 and 255 inclusive, default 4) specifies the
	number of file control blocks to allocate and therefore the
	number of files that MS-DOS can have open at one time.  y (not
	needed from DOS 5.0 onward) specifies the number of files to
	be closed automatically if all x are in use.

	(1995-03-21)

file descriptor

	<programming, operating system> An integer that identifies an
	open {file} within a {process}.  This number is obtained as a
	result of opening a file.  Operations which read, write, or
	close a file would take the file descriptor as an input
	parameter.

	In many {operating system} implementations, file descriptors
	are small integers which index a table of open files.  In
	{Unix}, file descriptors 0, 1 and 2 correspond to the
	{standard input}, {standard output} and {standard error} files
	respectively.

	See {file descriptor leak}.

	(1998-02-06)

file descriptor leak

	<programming> (Or "fd leak" /F D leek/) A kind of programming
	{bug} analogous to a {core leak}, in which a program fails to
	close {file descriptors} ("fd"s) after file operations are
	completed, and thus eventually runs out of them.

	See {leak}.

	(1994-11-30)

file extension

	{filename extension}

FileMaker

	<software> A {database} application developed by {Claris}.  It
	is currently the leading database application for the
	{Macintosh} and is the second most popular standalone package
	for {Windows}.

	(1998-02-18)

FileMaker, Inc.

	<company> The company that distributes the {FileMaker}
	{database}.  FileMaker, Inc. was previously known as {Claris}
	and was renamed after a restructuring in January 1998.

	{(http://filemaker.com/)}.

	(1998-02-18)

filename extension

	<filename extension> The portion of a filename, following the
	final point, which indicates the kind of data stored in the
	file - the {file type}.

	Many {operating systems} use filename extensions, e.g. {Unix},
	{VMS}, {MS-DOS}, {Microsoft Windows}.  They are usually from
	one to three letters (some sad old OSes support no more than
	three).  Examples include "c" for {C} {source code}, "ps" for
	{PostScript}, "txt" for arbitrary text.

	{NEXTSTEP} and its descendants also use extensions on
	directories for a similar purpose.

	Apart from informing the user what type of content the file
	holds, filename extensions are typically used to decide which
	program to launch when a file is "run", e.g. by
	double-clicking it in a {GUI} {file browser}.  They are also
	used by {Unix}'s {make} to determine how to build one kind of
	file from another.

	Compare: {MIME type}.

	{Tony Warr's comprehensive list
	(http://camalott.com/~rebma/filex.html)}.

	{FAQS.org Graphics formats
	(http://faqs.org/faqs/graphics/fileformats-faq/)}.

	(2002-04-19)

FileNet

	<storage> A system for storage of {images} on laser disk using
	{COLD}.

	(1995-11-09)

File Request

	1. The {FidoNet} equivalent of {FTP}, in which one {BBS}
	system automatically dials another and {snarfs} one or more
	files.  Often abbreviated "FReq"; files are often announced as
	being "available for FReq" in the same way that files are
	announced as being "available for/by {anonymous FTP}" on the
	{Internet}.

	2. The act of getting a copy of a file by using the File
	Request option of the {BBS} mailer.

	[{Jargon File}]

	(1995-01-05)

File Separator

	<character> (FS) {ASCII} character 28.

	(1996-06-28)

file server

	Hardware and software that together provide file-handling and
	storage functions for multiple users on a {local area
	network}.  The most common choices for file server software
	are {Sun Microsystems}' {Network File System} for {Unix} and
	{Novell Netware} for {IBM PC} compatibles.  There is also a
	version of NFS for PCs called {PC-NFS}.  Storing files on a
	file server saves having multiple copies stored on individual
	computers, thus economising on disk space and also makes
	administrating and updating the files easier.

File Service Protocol

	<protocol> (FSP) A {protocol}, similar to {FTP}, for copying
	{files} between computers.  It's designed for {anonymous
	archives}, and has protection against {server} and {network}
	overloading.  It doesn't use connections so it can survive
	interruptions in service.

	Until 1993-08-12, FSP didn't stand for anything.  Wen-King
	was responsible for the initials and Michael Grubb
	<mg@ac.duke.edu> for their eventual expansion.  Other
	suggestions were "File Slurping Protocol", "Flaky Stream
	Protocol" and "FTP's Sexier Partner".

	{FAQ
	(ftp://ftp.germany.eu.net/pub/networking/inet/fsp/fsp-faq/)}.

	[fsp-faq, 1993-08-12].

	(1997-12-07)

file signature

	A {magic number}.

	[{Jargon File}]

file system

	<operating system> (FS, or "filesystem") 1. A system for
	organizing {directories} and {files}, generally in terms of
	how it is implemented in the {disk operating system}.  E.g.,
	"The {Macintosh file system} is just dandy as long as you
	don't have to interface it with any other file systems".

	2. The collection of files and directories stored on a given
	drive (floppy drive, hard drive, disk {partition}, {logical}
	drive, {RAM drive}, etc.).  E.g., "mount attaches a named file
	system to the file system hierarchy at the pathname location
	directory [...]" -- {Unix manual page} for "mount(8)".

	As an extension of this sense, "file system" is sometimes used
	to refer to the representatation of the file system's
	organisation (e.g. its {file allocation table}) as opposed the
	actual content of the files in the file system.

	{Unix manual page}: fs(5), mount(8).

	(1997-04-10)

Filesystem Hierarchy Standard

	<storage, standard> (FHS) A {standard} designed to be used by
	{Unix} {distribution} developers, {package} developers, and
	system implementors.

	FHS consists of a set of {requirements} and guidelines for
	file and directory placement under {UNIX}-like {operating
	systems}.

	The {guidelines} are intended to support interoperability of
	applications, system administration tools, development tools,
	and scripts.  These systems should also be supported with
	greater documentation uniformity.

	The standard is primarily intended to be a reference and is
	not a tutorial on how to manage a Unix filesystem or directory
	hierarchy.

	{(http://pathname.com/fhs/)}.

	{RedHat deviation (http://redhat.com/corp/support/manuals/RHL-6.0-Manual/install-guide/manual/doc084.html)}.

	(2001-05-24)

file transfer

	<networking> Copying a {file} from one computer to another
	over a computer {network}.

	See also {File Transfer Protocol}, {Kermit}, {Network File
	System}, {rcp}, {uucp}, {XMODEM}, {ZMODEM}.

	(1997-04-10)

File Transfer Protocol

	(FTP) A {client-server} protocol which allows a user on one
	computer to transfer files to and from another computer over a
	{TCP/IP} network.  Also the client program the user executes
	to transfer files.  It is defined in {STD 9}, {RFC 959}.

	See also {anonymous FTP}, {FSP}, {TFTP}.

	{Unix manual page}: ftp(1).

	(1994-12-01)

file type

	<file format> The kind of data stored in a file.  Most modern
	{operating systems} use the {filename extension} to determine
	the file type though others store this information elsewhere
	in the {file system}.  The file type is used to choose an
	appropriate icon to represent the file in a {GUI} and the
	correct {application} with which to view, edit, run, or print
	the file.

	Different operating systems support different sets of file
	types though most agree on a large common set and allow
	arbitrary new types to be defined.

	See also {MIME}.

	{FileInfo.com - The File Extensions Resource
	(http://fileinfo.com/)}

	(2009-03-27)

filing system

	{file system}

filk

	/filk/ [SF fandom, where a typo for "folk" was adopted as a
	new word] A popular or folk song with lyrics revised or
	completely new lyrics, intended for humorous effect when
	read, and/or to be sung late at night at SF conventions.
	There is a flourishing subgenre of these called "computer
	filks", written by hackers and often containing rather
	sophisticated technical humour.  See {double bucky} for an
	example.  Compare {grilf}, {hing} and {newsfroup}.

	[{Jargon File}]

fill-out form

	<programming> A type of {user interface} used, for example, on
	the {World-Wide Web}, to organise a set of questions or
	options for the user so that it resembles a traditional paper
	form that is filled out.  Typical query types are:
	fill-in-the-blank (text), menu of options, select zero or
	more, or select exactly one ("{radio buttons}").

	Most {World-Wide Web} {browsers} support fill-out forms.
	{Overview
	(http://ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/fill-out-forms/overview.html)}.

	(1998-03-24)

film at 11

	<jargon> (MIT, in parody of US TV newscasters) 1. Used in
	conversation to announce ordinary events, with a sarcastic
	implication that these events are earth-shattering.  "{ITS}
	crashes; film at 11."  "Bug found in scheduler; film at 11."

	2. Also widely used outside MIT to indicate that additional
	information will be available at some future time, *without*
	the implication of anything particularly ordinary about the
	referenced event.  For example, "The mail file server died
	this morning; we found garbage all over the root directory.
	Film at 11." would indicate that a major failure had occurred
	but that the people working on it have no additional
	information about it as yet; use of the phrase in this way
	suggests gently that the problem is liable to be fixed more
	quickly if the people doing the fixing can spend time doing
	the fixing rather than responding to questions, the answers to
	which will appear on the normal "11:00 news", if people will
	just be patient.

	[{Jargon File}]

	(1998-03-24)

FILO

	{stack}

Filtabyte

	<networking, hardware> An {Ethernet controller} card made by
	{LRT} based on the {LANCE} and {SIA}.  It uses {DMA}.  Its
	{Ethernet address} can be changed by software.

	(1994-12-01)

filter

	1. (Originally {Unix}, now also {MS-DOS}) A program that
	processes an input data stream into an output data stream in
	some well-defined way, and does no I/O to anywhere else except
	possibly on error conditions; one designed to be used as a
	stage in a {pipeline} (see {plumbing}).  Compare {sponge}.

	2. ({functional programming}) A {higher-order function} which
	takes a {predicate} and a list and returns those elements of
	the list for which the predicate is true.  In {Haskell}:

		filter p []     = []
		filter p (x:xs) = if p x then x : rest else rest
				  where
				  rest = filter p xs

	See also {filter promotion}.

	[{Jargon File}]

filter promotion

	<algorithm> In a {generate and test} algorithm, combining part
	of the filter with the generator in order to reduce the number
	of potential solutions generated.  A trivial example:

		filter (< 100) [1..1000]  ==>  [1..99]

	where [1..n] generates the list of integers from 1 to n.  Here
	the filter has been combined completely with the generator.
	This is an example of {fusion}.

	(2005-03-18)

FIMS

	{Form Interface Management System}

Finagle's Law

	<humour> The generalised or "folk" version of {Murphy's Law},
	fully named "Finagle's Law of Dynamic Negatives" and usually
	rendered "Anything that can go wrong, will".  One variant
	favoured among hackers is "The perversity of the Universe
	tends toward a maximum".

	The label "Finagle's Law" was popularised by SF author Larry
	Niven in several stories depicting a frontier culture of
	asteroid miners; this "Belter" culture professed a religion
	and/or running joke involving the worship of the dread god
	Finagle and his mad prophet Murphy.

	[{Jargon File}]

	(1995-12-14)

Financial Information eXchange

	<business, protocol> (FIX) A {standard} messaging {protocol}
	for the {real-time} electronic exchange of securities
	transactions.

	[Reference?]

	(2001-05-14)

Finder

	<operating system> The part of the {Macintosh Operating
	System} and {GUI} that simulates the {desktop}.  The
	{multitasking} version of Finder was called "{MultiFinder}"
	until {multitasking} was integrated into the core of the OS
	with the introduction of System 7.0 in 1990.

	(2005-03-18)

fine adjuster

	<jargon, tool, humour> A tool used for {percussive
	maintenance}, also known as a "hammer".

	(1999-01-15)

fine grain

	{granularity}

finger

	<tool> A {Unix} program that displays information about a
	particular user or all users logged on the system, or a remote
	system.  Finger typically shows full name, last login time,
	idle time, terminal line, and terminal location (where
	applicable).  It may also display a {plan file} left by the
	user (see also {Hacking X for Y}).  Some versions take a "-l"
	(long) argument which yields more information.

	[{Jargon File}]

	(2002-10-06)

finger-pointing syndrome

	<programming> All-too-frequent result of {bugs}, especially in
	new or experimental configurations.  The hardware vendor
	points a finger at the software.  The software vendor points a
	finger at the hardware.  All the poor users get is the finger.

	[{Jargon File}]

	(1995-12-14)

finite

	{compact}

Finite Automata

	{Finite State Machine}

Finite Automaton

	{Finite State Machine}

finite differencing

	{strength reduction}

Finite Impulse Response

	<electronics, DSP> (FIR) A type of {digital signal} {filter},
	in which every {sample} of output is the weighted sum of past
	and current samples of input, using only some finite number of
	past samples.

	(2001-06-06)

Finite State Automata

	{Finite State Machine}

Finite State Automaton

	{Finite State Machine}

Finite State Machine

	<mathematics, algorithm, theory> (FSM or "Finite State
	Automaton", "transducer") An {abstract machine} consisting of
	a set of {states} (including the initial state), a set of
	input events, a set of output events, and a state transition
	function.  The function takes the current state and an input
	event and returns the new set of output events and the next
	state.  Some states may be designated as "terminal states".
	The state machine can also be viewed as a function which maps
	an ordered sequence of input events into a corresponding
	sequence of (sets of) output events.

	A {deterministic} FSM (DFA) is one where the next state is
	uniquely determinied by a single input event.  The next state
	of a {nondeterministic} FSM (NFA) depends not only on the
	current input event, but also on an arbitrary number of
	subsequent input events.  Until these subsequent events occur
	it is not possible to determine which state the machine is in.

	It is possible to automatically translate any nondeterministic
	FSM into a deterministic one which will produce the same
	output given the same input.  Each state in the DFA represents
	the set of states the NFA might be in at a given time.

	In a probabilistic FSM [proper name?], there is a
	predetermined {probability} of each next state given the
	current state and input (compare {Markov chain}).

	The terms "acceptor" and "transducer" are used particularly in
	language theory where automata are often considered as
	{abstract machines} capable of recognising a language (certain
	sequences of input events).  An acceptor has a single
	{Boolean} output and accepts or rejects the input sequence by
	outputting true or false respectively, whereas a transducer
	translates the input into a sequence of output events.

	FSMs are used in {computability theory} and in some practical
	applications such as {regular expressions} and digital logic
	design.

	See also {state transition diagram}, {Turing Machine}.

	[J.H. Conway, "regular algebra and finite machines", 1971, Eds
	Chapman & Hall].

	[S.C. Kleene, "Representation of events in nerve nets and
	finite automata", 1956, Automata Studies. Princeton].

	[Hopcroft & Ullman, 1979, "Introduction to automata theory,
	languages and computations", Addison-Wesley].

	[M. Crochemore "tranducters and repetitions",
	Theoritical. Comp. Sc. 46, 1986].

	(2001-09-22)

finn

	<jargon, chat> To pull rank on somebody based on the amount of
	time one has spent on {IRC}.  The term derives from the fact
	that IRC was originally written in Finland in 1987.

	[{Jargon File}]

	(2000-08-05)

FIPS

	{Federal Information Processing Standards}

FIR

	1. <electronics> {Finite Impulse Response} (filter).

	2. <standard> Fast Infrared.  {Infrared} standard from {IrDA},
	part of {IrDA Data}.  FIR supports {synchronous}
	communications at 4 Mbps (and 1.115 Mbps?), at a distance of
	up to 1 metre.

	(1999-10-14)

firebottle

	{electron tube}

firefighting

	1. What sysadmins have to do to correct sudden operational
	problems.  An opposite of hacking.  "Been hacking your new
	newsreader?"  "No, a power glitch hosed the network and I
	spent the whole afternoon fighting fires."

	2. The act of throwing lots of manpower and late nights at a
	project, especially to get it out before deadline.  See also
	{gang bang}, {Mongolian Hordes technique}; however, the term
	"firefighting" connotes that the effort is going into chasing
	bugs rather than adding features.

	(1994-12-01)

Firefox

	<World-Wide Web> A complete {free}, {open-source} {web
	browser} from the {Mozilla Foundation} and therefore a true
	code descendent of {Netscape Navigator}.  The first non-{beta
	release} was in late 2004.

	{Firefox Home (http://mozilla.org/products/firefox)}.

	(2005-01-26)

firehose syndrome

	<networking, jargon> An absence, failure or inadequacy of flow
	control mechanisms causing the sender to overwhelm the
	receiver.  The implication is that, like trying to drink from
	a firehose, the consequenses are worse than just loss of data,
	e.g. the receiver may {crash}.

	See {ping-flood}.

	[{Jargon File}]

	(2007-03-12)

firewall

	1. {firewall code}.

	2. {firewall machine}.

firewall code

	1. The code you put in a system (say, a telephone switch) to
	make sure that the users can't do any damage. Since users
	always want to be able to do everything but never want to
	suffer for any mistakes, the construction of a firewall is a
	question not only of defensive coding but also of interface
	presentation, so that users don't even get curious about those
	corners of a system where they can burn themselves.

	2. Any sanity check inserted to catch a {can't happen} error.
	Wise programmers often change code to fix a bug twice: once to
	fix the bug, and once to insert a firewall which would have
	arrested the bug before it did quite as much damage.

	[{Jargon File}]

firewall machine

	<networking, security> A dedicated {gateway} {server} with special
	security precautions on it, used to service external connections
	(typically from the {public Internet}).  The firewall machine
	protects servers and networks hidden behind it from {crackers}.

	The typical firewall is an inexpensive {microprocessor}-based
	{Unix} machine with no critical data, with public network ports on
	it, but just one carefully watched connection back to the rest of
	the cluster.  The special precautions may include threat
	monitoring, {call-back}, and even a complete {iron box} keyable to
	particular incoming IDs or activity patterns.

	The type of network and security environment of a firewall machine
	is often called a {De-Militarised Zone} (DMZ).  It may contain
	other servers such as e-mail servers or {proxy gateways} -
	machines that need to be publicly accessible but also need some
	access to internal systems.

	Also known as a (Venus) flytrap after the insect-eating plant.

	(2014-07-15)

FireWire

	{High Performance Serial Bus}

fireworks mode

	The mode a machine is sometimes said to be in when
	it is performing a {crash and burn} operation.

	[{Jargon File}]

Firmware

	Software stored in read-only memory (ROM) or programmable ROM
	(PROM).  Easier to change than hardware but harder than
	software stored on disk.  Firmware is often responsible for
	the behaviour of a system when it is first switched on.  A
	typical example would be a "monitor" program in a
	microcomputer which loads the full operating system from disk
	or from a network and then passes control to it.

firmy

	{stiffy}

first class module

	<programming> A {module} that is a {first class data object}
	of the {programming language}, e.g. a {record} containing
	{functions}.  In a {functional language}, it is standard to
	have first class programs, so program building blocks can have
	the same status.

	{Claus Reinke's Virtual Bookshelf
	(http://informatik.uni-kiel.de/~cr/bib/bookshelf/Modules.html)}.

	(2004-01-26)

First Fit

	<algorithm> A {resource} allocation scheme (usually for
	{memory}).  First Fit fits data into memory by scanning from
	the beginning of available memory to the end, until the first
	free space which is at least big enough to accept the data is
	found.  This space is then allocated to the data.  Any left
	over becomes a smaller, separate free space.

	If the data to be allocated is bigger than the biggest free
	space, the request cannot be met, and an error is generated.

	Compare {Best Fit}.

	(1997-06-02)

first generation

	1. <architecture> {first generation computer}.

	2. <language> {first generation language}.

first generation computer

	<architecture> A prototype computer based on {vacuum tubes}
	and other esoteric technologies.  Chronologically, any
	computer designed before the mid-1950s.  Examples include
	{Howard Aiken}'s {Mark 1} (1944), Maunchly and Eckert's
	{ENIAC} (1946), and the {IAS} computer.

	(1996-11-22)

first generation language

	Raw {machine code}.  When computers were first "programmed"
	from an input device, rather than by being rewired, they were
	fed input in the form of numbers, which they then interpreted
	as commands.  This was really low level, and a program
	fragment might look like "010307 010307".  Almost no one
	programs in machine language anymore, because translators are
	nearly trivial to write.

	(1994-12-01)

first-in first-out

	<algorithm> (FIFO, or "queue") A data structure or hardware
	buffer from which items are taken out in the same order they
	were put in.  Also known as a "shelf" from the analogy with
	pushing items onto one end of a shelf so that they fall off
	the other.  A FIFO is useful for buffering a stream of data
	between a sender and receiver which are not synchronised -
	i.e. not sending and receiving at exactly the same rate.
	Obviously if the rates differ by too much in one direction for
	too long then the FIFO will become either full ({block}ing the
	sender) or empty ({block}ing the receiver).  A {Unix} {pipe}
	is a common example of a FIFO.

	A FIFO might be (but isn't ever?) called a LILO - last-in
	last-out.  The opposite of a FIFO is a LIFO (last-in
	first-out) or "{stack}".

	(1999-12-06)

first normal form

	{database normalisation}

first-order

	Not {higher-order}.

	(1995-03-06)

first-order logic

	<language, logic> The language describing the truth of
	mathematical {formulas}.  Formulas describe properties of
	terms and have a truth value.  The following are atomic
	formulas:

	 True
	 False
	 p(t1,..tn)	where t1,..,tn are terms and p is a predicate.

	If F1, F2 and F3 are formulas and v is a variable then the
	following are compound formulas:

	 F1 ^ F2	conjunction - true if both F1 and F2 are true,

	 F1 V F2	disjunction - true if either or both are true,

	 F1 => F2	implication - true if F1 is false or F2 is
			true, F1 is the antecedent, F2 is the
			consequent (sometimes written with a thin
			arrow),

	 F1 <= F2	true if F1 is true or F2 is false,

	 F1 == F2	true if F1 and F2 are both true or both false
			(normally written with a three line
			equivalence symbol)

	 ~F1		negation - true if f1 is false (normally
			written as a dash '-' with a shorter vertical
			line hanging from its right hand end).

	 For all v . F	universal quantification - true if F is true
			for all values of v (normally written with an
			inverted A).

	 Exists v . F	existential quantification - true if there
			exists some value of v for which F is true.
			(Normally written with a reversed E).

	The operators ^ V => <= == ~ are called connectives.  "For
	all" and "Exists" are {quantifiers} whose {scope} is F.  A
	term is a mathematical expression involving numbers,
	operators, functions and variables.

	The "order" of a logic specifies what entities "For all" and
	"Exists" may quantify over.  First-order logic can only
	quantify over sets of {atomic} {propositions}.  (E.g. For all p
	. p => p).  Second-order logic can quantify over functions on
	propositions, and higher-order logic can quantify over any
	type of entity.  The sets over which quantifiers operate are
	usually implicit but can be deduced from well-formedness
	constraints.

	In first-order logic quantifiers always range over ALL the
	elements of the domain of discourse.  By contrast,
	second-order logic allows one to quantify over subsets.

	["The Realm of First-Order Logic", Jon Barwise, Handbook of
	Mathematical Logic (Barwise, ed., North Holland, NYC, 1977)].

	(2005-12-27)

First Party DMA

	{bus mastering}

fish

	(Adelaide University, Australia) 1. Another {metasyntactic
	variable}.  See {foo}.  Derived originally from the Monty
	Python skit in the middle of "The Meaning of Life" entitled
	"Find the Fish".

	2. <storage> microfiche.  A microfiche file cabinet may be
	referred to as a "fish tank".

	[{Jargon File}]

	(1994-12-01)

FISH queue

	<humour> (By analogy with {FIFO} - first-in, first-out) first
	in, still here.

	A joking way of pointing out that processing of a particular
	sequence of events or requests has stopped dead.  Also "FISH
	mode" and "FISHnet"; the latter may be applied to any network
	that is running really slowly or exhibiting extreme flakiness.

	[{Jargon File}]

	(1994-12-01)

FITNR

	({Thinking Machines, Inc.}) Fixed In the Next Release.

	A written-only notation attached to bug reports.  Often
	wishful thinking.

	[{Jargon File}]

	(1994-12-01)

FITS

	Flexible Image Transport System.  The standard data
	interchange and archive format of the astronomy community.

	(1994-12-01)

FIX

	1. <networking> {Federal Information Exchange}.

	2. <business, protocol> {Financial Information eXchange}.

	(2001-05-14)

fix

	1. <mathematics> The {fixed point} {combinator}.  Called Y in
	{combinatory logic}.  Fix is a {higher-order function} which
	returns a fixed point of its argument (which is a function).

		fix :: (a -> a) -> a
		fix f = f (fix f)

	Which satisfies the equation

		fix f = x such that f x = x.

	Somewhat surprisingly, fix can be defined as the non-recursive
	{lambda abstraction}:

		fix = \ h . (\ x . h (x x)) (\ x . h (x x))

	Since this involves self-application, it has an {infinite
	type}.  A function defined by

		f x1 .. xN = E

	can be expressed as

		f = fix (\ f . \ x1 ... \ xN . E)
		  = (\ f . \ x1 ... \xN . E)
			(fix (\ f . \ x1 ... \ xN . E))
		  = let f = (fix (\ f . \ x1 ... \ xN . E))
		    in \ x1 ... \xN . E

	If f does not occur {free} in E (i.e. it is not {recursive})
	then this reduces to simply

		f = \ x1 ... \ xN . E

	In the case where N = 0 and f is free in E, this defines an
	infinite data object, e.g.

		ones = fix (\ ones . 1 : ones)
		     = (\ ones . 1 : ones) (fix (\ ones . 1 : ones))
		     = 1 : (fix (\ ones . 1 : ones))
		     = 1 : 1 : ...

	Fix f is also sometimes written as mu f where mu is the Greek
	letter or alternatively, if f = \ x . E, written as mu x . E.

	Compare {quine}.

	[{Jargon File}]

	(1995-04-13)

	2. {bug fix}.

	(1998-06-25)

fixed disk

	<storage> A {hard disk} which is not a {removable disk}.

fixed point

	<mathematics> The fixed point of a function, f is any value, x
	for which f x = x.  A function may have any number of fixed
	points from none (e.g. f x = x+1) to infinitely many (e.g. f x
	= x).  The {fixed point combinator}, written as either "fix"
	or "Y" will return the fixed point of a function.

	See also {least fixed point}.

	(1995-04-13)

fixed-point

	<programming> A {number representation} scheme where a number,
	F is represented by an {integer} I such that F=I*R^-P, where R is
	the (assumed) {radix} of the representation and P is the (fixed)
	number of digits after the radix point.

	On computers with no {floating-point unit}, fixed-point
	calculations are significantly faster than floating-point as
	all the operations are basically integer operations.
	Fixed-point representation also has the advantage of having
	uniform density, i.e., the smallest resolvable difference of
	the representation is R^-P throughout the representable range,
	in contrast to {floating-point} representations.

	For example, in {PL/I}, FIXED data has both a {precision} and
	a scale-factor (P above).  So a number declared as 'FIXED
	DECIMAL(7,2)' has a precision of seven and a scale-factor of
	two, indicating five integer and two fractional decimal
	digits.  The smallest difference between numbers will be 0.01.

	(2006-11-15)

fixed point combinator

	<mathematics> (Y) The name used in {combinatory logic} for the
	{fixed point} function, also written as "{fix}".

	(1994-10-20)

fixed-radio access

	{Wireless Local Loop}

fixed-width

	{record}

FIXME

	<programming> A standard tag often put in {comments} near a
	piece of code that needs work.  The point of doing so is that
	a {grep} or a similar pattern-matching tool can find all such
	places quickly.  This is common in {GNU} code.  Compare {XXX}.

	[{Jargon File}]

	(2001-03-16)

fixpoint

	{fixed point}

fj

	<networking> The {country code} for Fiji.

	(1999-01-27)

Fjolnir

	<language> An Icelandic programming language for the {IBM PC}
	from the {University of Iceland}.

	[Pall Haraldsson <pallha@rhi.hi.is>].

	(1995-03-17)

fk

	<networking> The {country code} for the Falkland Islands
	(Malvinas).

	(1999-01-27)

FL

	<language> Function Level.

	John Backus's successor to {FP}, developed ca. 1985.  FL is
	{dynamically typed} and adds {higher-order functions},
	{exceptions}, {user-defined types} and other features.

	["FL Language Manual, Parts 1 & 2", J. Backus et al, IBM
	Research Report RJ 7100 (1989)].

	(1994-10-20)

F+L

	<language> Functions plus Logic.  Equational clauses within
	function definitions to solve for {logic variable} bindings.

	["Functions plus Logic in Theory and Practice", R.B.
	Kieburtz, Feb 1987, unpublished].

	(1994-10-20)

flag

	1. <programming> A variable or quantity that can take on one
	of two values; a bit, particularly one that is used to
	indicate one of two outcomes or is used to control which of
	two things is to be done.  "This flag controls whether to
	clear the screen before printing the message."  "The program
	status word contains several flag bits."  See also {hidden
	flag}, {mode bit}.

	2. {command line option}.

	[{Jargon File}]

	(1998-05-02)

flag day

	<jargon> A software change that is neither forward- nor
	backward-compatible, and which is costly to make and costly to
	reverse.  E.g. "Can we install that without causing a flag day
	for all users?"

	This term has nothing to do with the use of the word {flag} to
	mean a variable that has two values.  It came into use when a
	massive change was made to the {Multics} {time-sharing} system
	to convert from the old {ASCII} code to the new one; this was
	scheduled for Flag Day (a US holiday), June 14, 1966.

	See also {backward combatability}, {lock-in}.

	[{Jargon File}]

	(1998-01-15)

FLAIR

	<language> An early system on the {IBM 650}.

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

	(1995-03-17)

flaky

	(Or "flakey") Subject to frequent {lossage}.  This use is of
	course related to the common slang use of the word to describe
	a person as eccentric, crazy, or just unreliable.  A system
	that is flaky is working, sort of - enough that you are
	tempted to try to use it - but fails frequently enough that
	the odds in favour of finishing what you start are low.
	Commonwealth hackish prefers {dodgy}.

	[{Jargon File}]

	(1996-01-05)

flamage

	{flame}

flame

	<messaging> To rant, to speak or write incessantly and/or
	rabidly on some relatively uninteresting subject or with a
	patently ridiculous attitude or with hostility toward a
	particular person or group of people.  "Flame" is used as a
	verb ("Don't flame me for this, but..."), a flame is a single
	flaming message, and "flamage" /flay'm*j/ the content.

	Flamage may occur in any medium (e.g. spoken, {electronic
	mail}, {Usenet} news, {World-Wide Web}).  Sometimes a flame
	will be delimited in text by marks such as "<flame
	on>...<flame off>".

	The term was probably independently invented at several
	different places.

	Mark L. Levinson says, "When I joined the Harvard student
	radio station (WHRB) in 1966, the terms flame and flamer were
	already well established there to refer to impolite ranting
	and to those who performed it.  Communication among the
	students who worked at the station was by means of what today
	you might call a paper-based Usenet group.  Everyone wrote
	comments to one another in a large ledger.  Documentary
	evidence for the early use of flame/flamer is probably still
	there for anyone fanatical enough to research it."

	It is reported that "flaming" was in use to mean something
	like "interminably drawn-out semi-serious discussions"
	(late-night bull sessions) at Carleton College during
	1968-1971.

	{Usenetter} Marc Ramsey, who was at {WPI} from 1972 to 1976,
	says: "I am 99% certain that the use of "flame" originated at
	WPI.  Those who made a nuisance of themselves insisting that
	they needed to use a {TTY} for "real work" came to be known as
	"flaming asshole lusers".  Other particularly annoying people
	became "flaming asshole ravers", which shortened to "flaming
	ravers", and ultimately "flamers".  I remember someone picking
	up on the Human Torch pun, but I don't think "flame on/off"
	was ever much used at WPI."  See also {asbestos}.

	It is possible that the hackish sense of "flame" is much older
	than that.  The poet Chaucer was also what passed for a wizard
	hacker in his time; he wrote a treatise on the astrolabe, the
	most advanced computing device of the day.  In Chaucer's
	"Troilus and Cressida", Cressida laments her inability to
	grasp the proof of a particular mathematical theorem; her
	uncle Pandarus then observes that it's called "the fleminge of
	wrecches."  This phrase seems to have been intended in context
	as "that which puts the wretches to flight" but was probably
	just as ambiguous in Middle English as "the flaming of
	wretches" would be today.  One suspects that Chaucer would
	feel right at home on {Usenet}.

	[{Jargon File}]

	(2001-03-11)

flame bait

	<messaging> A {Usenet} posting or other message intended to
	trigger a {flame war}, or one that invites {flames} in reply.

	[{Jargon File}]

	(1998-05-27)

flame off

	{flame on}

flame on

	<messaging, jargon> To begin or continue to {flame}.  The
	punning reference to Marvel Comics's Human Torch is no longer
	widely recognised.

	The phrase "flame on" may actually precede the flame, in which
	case "flame off" will follow it.

	See {rave}, {burble}.

	[{Jargon File}]

	(1996-10-29)

flamer

	<jargon, person> (Or "pain in the net") One who habitually
	{flames}.  Said especially of obnoxious {Usenet}
	personalities.

	[{Jargon File}]

	(1996-08-26)

flame war

	<messaging, jargon> An acrimonious dispute conducted on a
	public electronic forum such as {Usenet}.  See {flame}.

	[{Jargon File}]

	(1998-05-27)

flaming

	{flame}

FLAP

	A {symbolic mathematics} package for {IBM 360}.

	["FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971)
	US Naval Weapons Lab].

	[Sammet 1969, p. 506].

	[{Jargon File}]

	(1994-10-17)

flap

	1. <storage, jargon> To unload a {DECtape} (so it goes flap,
	flap, flap).  Old-time {hackers} at {MIT} tell of the days
	when the disk was device 0 and {microtapes} were 1, 2,
	etc. and attempting to flap device 0 would instead start a
	motor banging inside a cabinet near the disk.

	The term is used, by extension, for unloading any magnetic
	tape.  See also {macrotape}.  Modern {cartridge tapes} no
	longer actually flap, but the usage has remained.

	The term could well be re-applied to {DEC}'s {TK50} cartridge
	tape drive, a spectacularly misengineered contraption which
	makes a loud flapping sound, almost like an old reel-type
	lawnmower, in one of its many tape-eating failure modes.

	2. <networking> See {flapping router}.

	[{Jargon File}]

	(1997-06-17)

flapping router

	<networking> A {router} that transmits routing updates
	alternately advertising a destination network first via one
	route, then via a different route.

	Flapping routers are identified on more advanced {protocol
	analysers} such as the Network General (TM) Sniffer.

	(1999-08-24)

flarp

	/flarp/ [Rutgers University] Yet another {metasyntactic
	variable} (see {foo}).  Among those who use it, it is
	associated with a legend that any program not containing the
	word "flarp" somewhere will not work.  The legend is
	discreetly silent on the reliability of programs which *do*
	contain the magic word.

	[{Jargon File}]

Flash

	<file format, World-Wide Web> (Or "Shockwave Flash") A file
	format for delivering {interactive} {vector graphics} and
	animation on the {World-Wide Web}, developed by {Macromedia}.

	{(http://macromedia.com/software/flash/)}.

	(1998-07-07)

flash

	1. <file format> {Adobe} {Flash}.

	2. <storage> {flash memory}.

	2. <chat> A program to flood a {Unix} user's {terminal} with
	{garbage} by exploiting a {security hole} in the {talk}
	{daemon}.

	(1996-09-08)

flash drive

	<storage> Any of various kinds of device using {sold-state
	memory} ("flash memory") with an interface like a {hard disk
	drive}, often a {USB} interface.

	(2009-07-28)

Flash EPROM

	{Flash Erasable Programmable Read-Only Memory}

Flash Erasable Programmable Read-Only Memory

	<storage> (FEPROM, "flash memory") A kind of {non-volatile
	storage} device similar to {EEPROM}, but where erasing can
	only be done in blocks or the entire chip.

	In 1995 this relatively new technology started to replace
	{EPROMs} because reprogramming could be done with the chip
	installed.  At that time FEPROMs could be rewritten about 1000
	times.

	Like {EAPROM} and ferro-magnetic material, FEPROMs rely on {FN
	tunnelling}.  Some flash memory supports block erase.

	(1995-04-22)

Flash Lights Impressively

	<programming, command, humour> (FLI) /FLY/ A joke {assembly
	language} instruction first documented in the late 1970s in
	"The Hackers Dictionary".

	The FLI instruction was frequently referred to by engineers
	when {minicomputers} such as the DEC {PDP-8}, {PDP-11} and
	some early {microcomputers} such as the {IMSAI} and {Altair}
	had dozens of front panel lights.

	"When the computer is about to do some long I/O operation,
	stick in a FLI so the accountants won't think the machine has
	hung again."

	(2004-08-23)

flash memory

	<storage> Originally, {Flash Erasable Programmable Read-Only
	Memory} but commonly used for various kinds of {solid-state
	memory}.

	(2009-07-28)

Flash ROM

	{Flash Erasable Programmable Read-Only Memory}

flat

	1. Lacking any complex internal structure.  "That {bitty box}
	has only a flat file system, not a hierarchical one."  The verb
	form is {flatten}.  Usually used pejoratively (at least with
	respect to file systems).

	2. Said of a memory architecture like that of the {VAX} or
	{Motorola} {680x0} that is one big linear address space
	(typically with each possible value of a processor register
	corresponding to a unique address).  This is a {Good Thing}.
	The opposite is a "{segmented}" architecture like that of the
	{Intel 80x86} in which addresses are composed from a
	base-register/offset pair.  Segmented designs are generally
	considered cretinous.

	3. A flat {domain} is one where all elements except {bottom}
	are incomparable (equally well defined).  E.g. the integers.

	[{Jargon File}]

flat address space

	<architecture> The memory architecture in which any memory
	location can be selected from a single contiguous block by a
	single integer offset.

	Almost all popular {processors} have a flat address space, but
	the {Intel x86} family has a {segmented address space}.  A
	flat address space greatly simplifies programming because of
	the simple correspondence between addresses (pointers) and
	integers.

	(1996-09-10)

flat ASCII

	<text> (Or "plain ASCII") Said of a text file that contains
	only 7-bit {ASCII} characters and uses only ASCII-standard
	{control characters} (that is, has no embedded codes specific
	to a particular text formatter {markup} language, or output
	device, and no {meta}-characters).

	Compare {flat file}.

	[{Jargon File}]

	(1996-01-26)

flat file

	<operating system, storage> A single file containing {flat
	ASCII} representing or encoding some structure, e.g. a
	{database}, tree or network.

	Flat files can be processed with general purpose tools such as
	{Perl} and {text editors} but are less efficient than {binary
	files} if they must be {parsed} repeatedly by a program.  Flat
	files are more portable between different {operating systems}
	and {application programs} than binary files, and are more
	easily transmitted in {electronic mail}.

	See also {flatten}, {sharchive}.

	[{Jargon File}]

	(1996-01-26)

flat file database

	<database> A {database} containing a single {table}, stored in
	a single {flat file}, often in a human-readable format such as
	{comma-separated values} or fixed-width columns.

	(2008-06-16)

flatten

	To remove structural information, especially to filter
	something with an implicit tree structure into a simple
	sequence of leaves; also tends to imply mapping to
	{flat ASCII}.  "This code flattens an expression with
	parentheses into an equivalent {canonical} form."

	[{Jargon File}]

flat thunk

	<programming> A software mechanism that allows a {Win32}
	application to load and call a 16-bit {DLL}, or a 16-bit
	application to load and call a Win32 DLL.

	See also {generic thunk}, {universal thunk}.

	(1999-04-05)

Flavors

	<language> A {Lisp} variant for the {LISP Machine}, with
	{object-oriented} features, developed by D. Weinreb and D.A. Moon
	<moon@cambridge.apple.com> in 1980.  "{Classes}" were called
	Flavors in the language.

	Though the Flavors design was superseded (notably by the {Common
	LISP} {CLOS} facility), the term "flavor" persisted as a general
	synonym for "class".

	["Object-Oriented Programming with Flavors", D.A. Moon, SIGPLAN
	Notices 21(11):1-8 (OOPSLA '86), Nov 1986].

	(1994-12-01)

Fleng

	A parallel logic language.

	["Massively Parallel Implementation of Flat GHC on the
	Connection Machine", M. Nilsson, Proc Intl Conf on 5th Gen
	Comp Sys, 1988, pp.1031-1040].

FLEX

	<language> 1. {Faster LEX}.

	2. A {real-time} language for dynamic environments.

	["FLEX: Towards Flexible Real-Time Programs", K. Lin et al,
	Computer Langs 16(1):65-79, Jan 1991].

	3. An early {object-oriented} language developed for the
	{FLEX} machine by {Alan Kay} in about 1967.  The FLEX language
	was a simplification of {Simula} and a predecessor of
	{Smalltalk}.

	(1995-03-29)

Flex

	<software, hardware> A system developed by Ian Currie (Iain?)
	at the (then) {Royal Signals and Radar Establishment} at
	Malvern in the late 1970s.  The hardware was custom and
	{microprogrammable}, with an {operating system}, (modular)
	{compiler}, editor, {garbage collector} and {filing system}
	all written in {Algol-68}.  Flex was also re-implemented on
	the {Perq}(?).

	[I. F. Currie and others, "Flex Firmware", Technical Report,
	RSRE, Number 81009, 1981].

	[I. F. Currie, "In Praise of Procedures", RSRE, 1982].

	(1997-11-17)

Flex++

	{GNU}'s {Flex} {scanner generator} retargeted to {C++} by
	Alain Coetmeur <coetmeur@icdc.fr>.  Version 3.0.

	{(ftp://iecc.com/pub/file/flex++.tar.gz)}.
	{(ftp://iecc.com/pub/file/misc++.tar.gz)}.
	{(ftp://ftp.th-darmstadt.de/pub/programming/languages/C++/tools/flex++-3.0.tar.gz)}.

	(1993-07-08)

Flex 2

	<language> A {preprocessor} designed to make {Fortran} look
	more like {Pascal}, developed in about 1980.

	[DECUS?]

	(2004-08-23)

FLI

	{Flash Lights Impressively}.

flib

	/flib/ ({WPI}) A meta-number, said to be an integer between 3
	and 4.

	See {grix}, {N}.

	(1995-01-31)

FLIC

	Functional Language Intermediate Code.

	An {intermediate language} used in the {Chalmers} {LML}
	compiler.

	["FLIC - A Functional Language Intermediate Code", S. Peyton
	Jones <simonpj@dcs.gla.ac.uk> et al, RR 148, U Warwick, Sep
	1989].

	(1995-01-31)

FLIP

	1. An early {assembly language} on the {G-15}.

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

	2. ["FLIP User's Manual", G. Kahn, TR 5, INRIA 1981].

	3. Formal LIst Processor.

	An early language for {pattern-matching} on {Lisp} structures,
	similar to {CONVERT}.

	["FLIP, A Format List Processor", W. Teitelman, Memo
	MAC-M-263, MIT 1966].

	(1995-01-31)

Flip Chip Pin Grid Array

	<hardware, processor> (FC-PGA) The package of certain {Intel}
	{Celeron} and {Pentium III} processors.  FC-PGA processors fit
	into {Socket 370} {motherboard} sockets.

	The Flip Chip {Pin Grid Array} is similar to {PPGA}, except
	that the {silicon} {core} is facing up and the {heat slug} is
	exposed.

	FC-PGA packaging is used by Pentium III processors, and
	Celeron 566 processors onward.  Earlier Celeron processors
	used {PPGA} packaging.

	Celeron processors are also available in {Slot 1} {SEPP}
	packaging and Pentium III processors in Slot 1 {SECC2}
	packaging.

	Adapters are available to allow a PPGA Celeron to plug into
	a Slot 1 connector.

	(2000-08-26)

flip-flop

	<hardware> A digital logic circuit that can be in one of two
	states which it switches (or "{toggles}") between under
	control of its inputs.  It can thus be considered as a one bit
	memory.  Three types of flip-flop are common: the {SR
	flip-flop}, the {JK flip-flop} and the {D-type flip-flop} (or
	{latch}).

	Early literature refers to the "Eccles-Jordan circuit" and the
	"Eccles-Jordan binary counter", using two {vacuum tubes} as
	the active (amplifying) elements for each {bit} of information
	storage.  Later implementations using {bipolar transistors}
	could operate at up to 20 million state transitions per second
	as early as 1963.

	(1995-11-11)

flippy

	<storage> /flip'ee/ A single-sided {floppy disk} altered for
	double-sided use by addition of a second write-notch, so
	called because it must be flipped over for the second side
	(the "flip side") to be accessible.  Used in the {Commodore
	1541} and elsewhere.  No longer common.

	[{Jargon File}]

	(2000-03-07)

FLIP-SPUR

	<language> An early system on the {IBM 1130}.

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

	(2004-09-14)

float

	<programming> The usual {keyword} for the {floating-point}
	{data type}, e.g. in the {C} programming language.  The
	keyword "double" usually also introduces a floating-point
	type, but with twice the {precession} of a float.

	(2008-06-13)

floater

	<programming> A report in a {bug tracking} system that
	"floats" at the top of the queue but never gets assigned to a
	developer, maybe because there is a {workaround}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-04-25)

floating head

	{hard disk}

floating-point

	<programming, mathematics> A number representation consisting
	of a {mantissa}, M, an {exponent}, E, and a {radix} (or
	"base").  The number represented is M*R^E where R is the
	radix.

	In science and engineering, {exponential notation} or
	{scientific notation} uses a radix of ten so, for example, the
	number 93,000,000 might be written 9.3 x 10^7 (where ^7 is
	superscript 7).

	In computer hardware, floating point numbers are usually
	represented with a radix of two since the mantissa and
	exponent are stored in binary, though many different
	representations could be used.  The {IEEE} specify a
	{standard} representation which is used by many hardware
	floating-point systems.  Non-zero numbers are {normalised} so
	that the {binary point} is immediately before the most
	significant bit of the mantissa.  Since the number is
	non-zero, this bit must be a one so it need not be stored.  A
	fixed "bias" is added to the exponent so that positive and
	negative exponents can be represented without a sign bit.
	Finally, extreme values of exponent (all zeros and all ones)
	are used to represent special numbers like zero and positive
	and negative {infinity}.

	In programming languages with {explicit typing},
	floating-point types are introduced with the keyword "float"
	or sometimes "double" for a higher precision type.

	See also {floating-point accelerator}, {floating-point unit}.

	Opposite: {fixed-point}.

	(2008-06-13)

floating-point accelerator

	<hardware> (FPA) Additional hardware to perform functions on
	{floating point} numbers such as addition, multiplication,
	{logarithms}, {exponentials}, {trigonometric functions} and
	various kinds of {rounding} and error detection.  A floating
	point accelerator often functions as a {co-processor} to the
	{CPU}.

	The term "floating-point accelerator" suggests a physically
	larger system, often an extra circuit board, whereas a
	"floating-point unit" is probably a single chip or even part
	of a chip.

	(1994-12-01)

Floating-Point SPECbaserate

	{SPECrate_base_fp92}

Floating-Point SPECbaseratio

	{SPECbase_fp92}

Floating-Point SPECrate

	{SPECrate_fp92}

Floating-Point SPECratio

	{SPECfp92}

floating point underflow

	{underflow}

Floating-Point Unit

	<hardware> (FPU) A {floating-point accelerator}, usually in a
	single {integrated circuit}, possible on the same IC as the
	{central processing unit}.

	(1994-10-27)

floating underflow

	{underflow}

F-Logic

	An {object-oriented} language and {deductive database} system.

	["F-Logic: A Higher-Order Language for Reasoning about
	Objects, Inheritance and Scheme", ACM SIGMOD May 1989,
	pp. 134-146].

	(1994-10-20)
flood

	<chat> On a real-time network (whether at the level of
	{TCP/IP}, or at the level of, say, {IRC}), to send a huge
	amount of data to another user (or a group of users, in a
	channel) in an attempt to annoy him, lock his terminal, or to
	overflow his network buffer and thus lose his network
	connection.

	The basic principles of flooding are that you should have
	better network {bandwidth} than the person you're trying to
	flood, and that what you do to flood them (e.g., generate ping
	requests) should be *less* resource-expensive for your machine
	to produce than for the victim's machine to deal with.  There
	is also the corrolary that you should avoid being caught.

	Failure to follow these principles regularly produces
	hilarious results, e.g., an IRC user flooding himself off the
	network while his intended victim is unharmed, the attacker's
	flood attempt being detected, and him being banned from the
	network in semi-perpetuity.

	See also {pingflood}, {clonebot} and {botwar}.

	[{Jargon File}]

	(1997-04-07)

FLOP

	1. An early system on the {IBM 701}.

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

	(1994-11-14)

	2. Erroneous singular of {FLOPS}.

	(2005-06-17)

Floppy

	<programming, tool> A {Fortran} coding convention checker.
	A later version can generate {HTML}.

	See also {Flow}.

	ffccc posted to comp.sources.misc volume 12.

	(1996-08-23)

floppy

	{floppy disk}

floppy disc

	<spelling> It's "{floppy disk}", not like "{compact disc}".

	(2004-11-08)

floppy disk

	<hardware, storage> (Or "floppy", "diskette") A small,
	portable plastic disk coated in a magnetisable substance used
	for storing computer data, readable by a computer with a
	floppy disk drive.  The physical size of disks has shrunk from
	the early 8 inch, to 5 1/4 inch ("minifloppy") to 3 1/2 inch
	("microfloppy") while the data capacity has risen.

	These disks are known as "floppy" disks (or diskettes) because
	the disk is flexible and the read/write head is in physical
	contact with the surface of the disk in contrast to "{hard
	disks}" (or winchesters) which are rigid and rely on a small
	fixed gap between the disk surface and the heads.  Floppies
	may be either single-sided or double-sided.

	3.5 inch floppies are less floppy than the larger disks
	because they come in a stiff plastic "envelope" or case, hence
	the alternative names "stiffy" or "crunchy" sometimes used to
	distinguish them from the floppier kind.

	The following formats are used on {IBM PCs} and elsewhere:

	 Capacity  Density  Width
	  360K	   double   5.25"
	  720K	   double   3.5"
	  1.2M	   high	    5.25"
	 1.44M	   high	    3.5"

	Double denisty and high density are usually abbreviated DD and
	HD.  HD 3.5 inch disks have a second hole in the envelope and
	an overlapping "HD" logo.

	(1996-08-23)

floppy disk drive

	{disk drive}

floppy drive

	{disk drive}

FLOPS

	{Floating-point} operations per second.

Flops

	<benchmark> The {MFLOPS} {benchmark}.

floptical

	<hardware, storage> (From "floppy disk" and "optical") A
	{floppy disk} which uses an optical tracking mechanism to
	improve the positioning accuracy of an ordinary magnetic head,
	thereby allowing more tracks and greater density.

	{Storage media FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/arch-storage/part1/faq.html)}.

	(1995-03-15)

Flow

	<tool> A companion utility to {Floppy} by Julian James Bunn
	<julian@vxcrna.cxern.ch>.  Flow allows the user to produce
	various reports on the structure of {Fortran 77} code, such as
	{flow diagrams} and common block tables.  It runs under {VMS},
	{Unix}, {CMS}.

	Posted to comp.sources.misc volume 31.

	(1995-03-14)

flow chart

	<programming> An archaic form of visual control-flow
	specification employing arrows and "speech balloons" of
	various shapes.

	Hackers never use flow charts, consider them extremely silly,
	and associate them with {COBOL} programmers, {card wallopers},
	and other lower forms of life.  This attitude follows from the
	observations that flow charts (at least from a hacker's point
	of view) are no easier to read than code, are less precise,
	and tend to fall out of sync with the code (so that they
	either obfuscate it rather than explaining it, or require
	extra maintenance effort that doesn't improve the code).

	See also {Program Design Language}.

	[{Jargon File}]

	(1994-12-01)

flow control

	<communications, protocol> The collection of techniques used
	in serial communications to stop the sender sending data until
	the receiver can accept it.  This may be either {software flow
	control} or {hardware flow control}.  The receiver typically
	has a fixed size {buffer} into which received data is written
	as soon as it is received.  When the amount of buffered data
	exceeds a "high water mark", the receiver will signal to the
	transmitter to stop transmitting until the process reading the
	data has read sufficient data from the buffer that it has
	reached its "low water mark", at which point the receiver
	signals to the transmitter to resume transmission.

	(1995-03-22)

flower key

	{feature key}

FLOW-MATIC or FLOWMATIC

	(Originally B-0) Possibly the first English-like {DP}
	language.  Developed at Remington Rand in 1958 for the
	{UNIVAC} I.

	[Sammet 1969, pp. 316-324].

	(1994-10-24)

flow of control

	{control flow}

FLPL

	Fortran List Processing Language.  A package of {Fortran}
	subroutines for handling lists by H. Gelernter et al, ca 1960.

	[Sammet 1969, p. 388].

	(1994-10-24)

FLUB

	<language> The {abstract machine} for {bootstrapping}
	{STAGE2}.

	[Mentioned in Machine Oriented Higher Level Languages, W. van
	der Poel, N-H 1974, p. 271].

	(1995-03-13)

Fluegelman, Andrew

	{Andrew Fluegelman}

flush

	<data> To delete something, usually superfluous, or to abort
	an operation.

	"Flush" was standard {ITS} terminology for aborting an output
	operation.  One spoke of the text that would have been
	printed, but was not, as having been flushed.  It is
	speculated that this term arose from a vivid image of flushing
	unwanted characters by hosing down the internal output buffer,
	washing the characters away before they could be printed.

	Compare {drain}.

	2. To force temporarily buffered data to be written to more
	permanent memory.  E.g. flushing buffered disk writes to disk,
	as with {C}'s {standard I/O} library "fflush(3)" call.  This
	sense was in use among {BLISS} programmers at {DEC} and on
	{Honeywell} and {IBM} machines as far back as 1965.  Another
	example of this usage is flushing a {cache} on a {context
	switch} where modified data stored in the cace which belongs
	to one processes must be written out to main memory so that
	the cache can be used by another process.

	[{Jargon File}]

	(2005-07-18)

Flynn's taxonomy

	<architecture> A classification of computer architectures
	based on the number of streams of instructions and data:

	{Single instruction/single data} stream (SISD) - a sequential
	computer.

	Multiple instruction/single data stream (MISD) - unusual.

	{Single instruction/multiple data} streams (SIMD) - e.g. an
	{array processor}.

	{Multiple instruction/multiple data} streams (MIMD) - multiple
	autonomous processors simultaneously executing different
	instructions on different data.

	[Flynn, M. J., "Some Computer Organizations and Their
	Effectiveness", IEEE Transactions on Computing C-21, No. 9,
	Sep 1972, pp 948-960].

	["A Survey of Parallel Computer Architectures", Duncan, Ralph,
	IEEE Computer, Feb 1990, pp 5-16].

	(2003-05-29)

fly page

	{banner}

Flyspeck 3

	<humour> A standard name for any {font} that is so tiny as to
	be unreadable, by analogy with names like "Helvetica 10" for
	10-point Helvetica.  Legal boilerplate is usually printed in
	Flyspeck 3.

	(1994-11-08)

flytrap

	{firewall machine}

FM

	1. <communications> {Frequency Modulation}.

	2. <jargon> Fucking Manual, a back-formation from {RTFM}.
	Used to refer to the manual itself.

	3. <jargon> Fucking Magic, in the sense of {black magic}.

	(2001-04-30)

fm

	<networking> The {country code} for the Federated States of
	Micronesia.

	Heavily used for {vanity domains} by FM radio stations.

	(1999-01-27)

FMPL

	{Frobozz Magic Programming Language}

FMQ

	A {BNF}-based {paser generator} with an error corrector
	generator, by Jon Mauney.

	{(ftp://csczar.ncsu.edu/)}.

	(1990-03-31)

FMS

	{Flexible Manufacturing System} (factory automation).

FMV

	{video}

FNAL

	Fermi National Accelerator Laboratory (Illinois, USA).

FNC

	{Federal Networking Council}

fnord

	1. <convention> A word used in {electronic mail} and {news}
	messages to tag utterances as surrealist mind-play or humour,
	especially in connection with {Discordianism} and elaborate
	conspiracy theories.  "I heard that David Koresh is sharing an
	apartment in Argentina with Hitler. (Fnord.)"  "Where can I
	fnord get the Principia Discordia from?"

	2. <programming> A {metasyntactic variable}, commonly used by
	hackers with ties to {Discordianism} or the {Church of the
	SubGenius}.

	The word "fnord" was invented in the "Illuminatus!" trilogy by
	Robert Shea and Robert Anton Wilson.

	[{Jargon File}]

	(1995-02-28)

FN tunnelling

	{Fowler-Nordheim tunnelling}

fo

	<networking> The {country code} for the Faroe Islands.

	(1999-01-27)

FOAD

	<chat> fuck off and die.

	(1998-01-18)

FOAF

	[{Usenet}] Friend Of A Friend.  The source of an unverified,
	possibly untrue story.  This term was not originated by
	hackers (it is used in Jan Brunvand's books on urban
	folklore), but is much better recognised on {Usenet} and
	elsewhere than in mainstream English.

	[{Jargon File}]

FOCAL

	1. FOrmula CALculator.

	An interactive system written by Rick Merrill of {DEC} in 1969
	for {PDP-5} and {PDP-8}.  It was a descendant of {AID}/{JOSS}.

	Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for {PDP-11} under
	{RT-11}).

	(1994-12-21)

	2. Forty-One CAlculator Language.

	The programming language of the HP-41 calculator line.

	(1994-12-21)

FOCL

	An {expert system shell} and {backward chaining} rule
	{interpreter} for the {Macintosh}.

	{(ftp://ics.uci.edu/pub/machine-learning-programs/KR-FOCL-ES.cpt.hqx)}.

	E-mail: <pazzani@ics.uci.edu>.

	(1994-12-21)

FOCUS

	<database, language> A hierarchical {database} language from
	{Information Builders, Inc.}

	(1994-12-21)

focus group

	<product> An event where market researchers meet (potential)
	users of a product to try to plan how to improve it.

	(1999-02-24)

FOD

	/fod/ [Abbreviation for "Finger of Death", originally a
	spell-name from fantasy gaming] To terminate with extreme
	prejudice and with no regard for other people.  From {MUDs}
	where the wizard command "FOD <player>" results in the
	immediate and total death of <player>, usually as punishment
	for obnoxious behaviour.  This usage migrated to other
	circumstances, such as "I'm going to fod the process that is
	burning all the cycles."  Compare {gun}.

	In aviation, FOD means Foreign Object Damage, e.g. what happens
	when a jet engine sucks up a rock on the runway or a bird in
	flight.  Finger of Death is a distressingly apt description of
	what this generally does to the engine.

	[{Jargon File}]

FOIL

	File Oriented Interpretive Language.  CAI language.

	["FOIL - A File Oriented Interpretive Language",
	J.C. Hesselbart, Proc ACM 23rd National Conf (1968)].

FoIP

	{Fax over IP}

FOIRL

	{Fiber Optic InterRepeater Link}

fold case

	{case sensitivity}

folder

	{directory}

FOLDOC

	{Free On-line Dictionary of Computing}

followup

	On {Usenet}, a {posting} generated in response to another
	posting (as opposed to a {reply}, which goes by e-mail rather
	than being broadcast).  Followups include the ID of the
	{parent message} in their headers; smart news-readers can use
	this information to present {Usenet} news in "conversation"
	sequence rather than order-of-arrival.  See {thread}.

	[{Jargon File}]

font

	<text> A set of {glyphs} ({images}) representing the
	{characters} from some particular {character set} in a
	particular size and {typeface}.  The image of each character
	may be encoded either as a {bitmap} (in a {bitmap font}) or by
	a higher-level description in terms of lines and areas (an
	{outline font}).

	There are several different computer representations for
	fonts, the most widely known are {Adobe Systems, Inc.}'s
	{PostScript} font definitions and {Apple}'s {TrueType}.
	{Window systems} can display different fonts on the screen and
	print them.

	[Other types of font?]

	(2001-04-27)

fontology

	({XEROX PARC}) The body of knowledge dealing with the
	construction and use of new {fonts} (e.g. for window systems
	and typesetting software).  It has been said that fontology
	recapitulates file-ogeny.

	Unfortunately, this reference to the embryological dictum
	that "Ontogeny recapitulates phylogeny" is not merely a joke.
	On the Macintosh, for example, System 7 has to go through
	contortions to compensate for an earlier design error that
	created a whole different set of abstractions for fonts
	parallel to "files" and "folders" - ESR

	[{Jargon File}]

	(1994-12-01)

foo

	<jargon> /foo/ A sample name for absolutely anything,
	especially programs and files (especially {scratch files}).
	First on the standard list of {metasyntactic variables} used
	in {syntax} examples.  See also {bar}, {baz}, {qux}, {quux},
	{corge}, {grault}, {garply}, {waldo}, {fred}, {plugh},
	{xyzzy}, {thud}.

	The etymology of "foo" is obscure.  When used in connection
	with "bar" it is generally traced to the WWII-era Army slang
	acronym {FUBAR}, later bowdlerised to {foobar}.

	However, the use of the word "foo" itself has more complicated
	antecedents, including a long history in comic strips and
	cartoons.

	"FOO" often appeared in the "Smokey Stover" comic strip by
	Bill Holman.  This surrealist strip about a fireman appeared
	in various American comics including "Everybody's" between
	about 1930 and 1952.  FOO was often included on licence plates
	of cars and in nonsense sayings in the background of some
	frames such as "He who foos last foos best" or "Many smoke but
	foo men chew".

	Allegedly, "FOO" and "BAR" also occurred in Walt Kelly's
	"Pogo" strips.  In the 1938 cartoon "The Daffy Doc", a very
	early version of Daffy Duck holds up a sign saying "SILENCE IS
	FOO!".  Oddly, this seems to refer to some approving or
	positive affirmative use of foo.  It has been suggested that
	this might be related to the Chinese word "fu" (sometimes
	transliterated "foo"), which can mean "happiness" when spoken
	with the proper tone (the lion-dog guardians flanking the
	steps of many Chinese restaurants are properly called "fu
	dogs").

	Earlier versions of this entry suggested the possibility that
	hacker usage actually sprang from "FOO, Lampoons and Parody",
	the title of a comic book first issued in September 1958, a
	joint project of Charles and Robert Crumb.  Though Robert
	Crumb (then in his mid-teens) later became one of the most
	important and influential artists in underground comics, this
	venture was hardly a success; indeed, the brothers later
	burned most of the existing copies in disgust.  The title FOO
	was featured in large letters on the front cover.  However,
	very few copies of this comic actually circulated, and
	students of Crumb's "oeuvre" have established that this title
	was a reference to the earlier Smokey Stover comics.

	An old-time member reports that in the 1959 "Dictionary of the
	TMRC Language", compiled at {TMRC} there was an entry that
	went something like this:

	FOO: The first syllable of the sacred chant phrase "FOO MANE
	PADME HUM."  Our first obligation is to keep the foo counters
	turning.

	For more about the legendary foo counters, see {TMRC}.  Almost
	the entire staff of what became the {MIT} {AI LAB} was
	involved with TMRC, and probably picked the word up there.

	Another correspondant cites the nautical construction
	"foo-foo" (or "poo-poo"), used to refer to something
	effeminate or some technical thing whose name has been
	forgotten, e.g. "foo-foo box", "foo-foo valve".  This was
	common on ships by the early nineteenth century.

	Very probably, hackish "foo" had no single origin and derives
	through all these channels from Yiddish "feh" and/or English
	"fooey".

	[{Jargon File}]

	(1998-04-16)

foobar

	<jargon> Another common {metasyntactic variable}; see {foo}.
	Hackers do *not* generally use this to mean {FUBAR} in either
	the slang or jargon sense.

	According to a german correspondent, the term was coined
	during WW2 by allied troops who could not pronounce the german
	word "furchtbar" (horrible, terrible, awful).

	[{Jargon File}]

	(2003-07-03)

foogol

	A tiny {ALGOL}-like language by Per Lindberg, based on the
	{VALGOL} I compiler, G.A. Edgar, DDJ May 1985.  Runs on
	{vaxen}.  Posted to comp.sources.Unix archive volume 8.

	{(ftp://ftp.wustl.edu/systems/amiga/fish/fish/ff066)}.

FOOL

	Fool's Lisp.  A small {Scheme} {interpreter}.

	{(ftp://scam.berkeley.edu/src/local/fools.tar.Z)}.

	(1994-10-04)

fool file

	<jargon> A term found on {Usenet} for a notional repository of
	all the most dramatically and abysmally stupid utterances
	ever.  An entire subgenre of {sig blocks} consists of the
	header "From the fool file:" followed by some quote the poster
	wishes to represent as an immortal gem of dimwittery; for this
	usage to be really effective, the quote has to be so obviously
	wrong as to be laughable.  More than one {Usenetter} has
	achieved an unwanted notoriety by being quoted in this way.

	(2001-01-05)

Fools' Lisp

	A small {Scheme} {interpreter} by Jonathan Lee
	<jonathan@scam.berkeley.edu>.  Version 1.3.2 is R4RS
	conformant.  It runs on {Sun-3}, {Sun-4}, {Decstation}, {VAX}
	({Ultrix}), {Sequent}, {Apollo}.

	{(ftp://scam.berkeley.edu/src/local/fools.tar.Z)}.

	(1991-10-31)

Foonly

	1. The {PDP-10} successor that was to have been built by the
	Super Foonly project at the {Stanford Artificial Intelligence
	Laboratory} along with a new operating system.  The intention
	was to leapfrog from the old DEC {time-sharing} system SAIL
	was then running to a new generation, bypassing TENEX which at
	that time was the {ARPANET} {standard}.  {ARPA} funding for
	both the Super Foonly and the new operating system was cut in
	1974.  Most of the design team went to DEC and contributed
	greatly to the design of the PDP-10 model KL10.

	2. The name of the company formed by Dave Poole, one of the
	principal Super Foonly designers, and one of hackerdom's more
	colourful personalities.  Many people remember the parrot
	which sat on Poole's shoulder and was a regular companion.

	3. Any of the machines built by Poole's company.  The first
	was the F-1 (a.k.a.  Super Foonly), which was the
	computational engine used to create the graphics in the movie
	"TRON".  The F-1 was the fastest PDP-10 ever built, but only
	one was ever made.  The effort drained Foonly of its financial
	resources, and the company turned toward building smaller,
	slower, and much less expensive machines.  Unfortunately,
	these ran not the popular {TOPS-20} but a TENEX variant called
	Foonex; this seriously limited their market.  Also, the
	machines shipped were actually wire-wrapped engineering
	prototypes requiring individual attention from more than
	usually competent site personnel, and thus had significant
	reliability problems.  Poole's legendary temper and
	unwillingness to suffer fools gladly did not help matters.  By
	the time of the Jupiter project cancellation in 1983, Foonly's
	proposal to build another F-1 was eclipsed by the {Mars}, and
	the company never quite recovered.  See the {Mars} entry for
	the continuation and moral of this story.

	[{Jargon File}]

FOOP

	OBJ2 plus object-orientation.  "Extensions and Foundations for
	Object-Oriented Programming", J. Goguen et al, in Research
	Directions in Object-Oriented Programming, B. Shriver et al
	eds, MIT Press 1987.

foot-net

	{sneakernet}

footprint

	1. <jargon, hardware> The floor or desk area taken up by a
	piece of hardware.

	2. <jargon, storage> The amount of {disk} or {RAM} taken up by
	a program or file.

	3. ({IBM}) The {audit trail} left by a crashed program (often
	"footprints").

	See also {toeprint}.

	[{Jargon File}]

	(1995-04-25)

for

	{for loop}

fora

	{forum}

FORC

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

Force

	A {dBASE} dialect for {MS-DOS}.

ForceOne

	A programming language by Andrew K. Wright.

	["Polymorphism in the Compiled Language ForceOne",
	G.V. Cormack et al, Proc 20th Annual Hawaii Intl Conf on
	System Sciences, 1987, pp.284-292].

	["Design of the Programming Language ForceOne", A.K. Wright,
	MS Thesis, U Waterloo 1987].

	(1994-10-24)

ForceTwo

	An unofficial successor to {ForceOne} by Andrew K. Wright.

foreground

	(Unix) On a {time-sharing} system, a task executing in
	foreground is one able to accept input from and return output
	to the user in contrast to one running in the {background}.
	Nowadays this term is primarily associated with {Unix}, but it
	appears first to have been used in this sense on {OS/360}.
	Normally, there is only one foreground task per terminal (or
	terminal window).  Having multiple processes simultaneously
	reading the keyboard is confusing.

	[{Jargon File}]

	(1994-10-24)

Foreign eXchange Office

	<communications> (FXO) An analog telephone plug on a handset
	that receives {POTS} service from the telephone exchange
	("central office") via a {Foreign eXchange Subscriber} socket
	and provides on-hook/off-hook indication to the exchange.

	(2008-01-17)

Foreign eXchange Subscriber

	<communications> (FXS) A socket that provides analog telephone
	service ({POTS}) from the telephone exchange ("central
	office") to a handset with an {Foreign eXchange Office} plug.
	The socket provides {dial tone}, power and a ring signal.

	(2008-01-17)

foreign key

	<database> A {column} in a database {table} containing values
	that are also found in some {primary key} column (of a
	different table).  By extension, any reference to entities of
	a different type.

	Some {RDBMSs} allow a column to be explicitly labelled as a
	foreign key and only allow values to be inserted if they
	already exist in the relevant primary key column.

	[Is it still a foreign key if the primary key is in a different
	column in the __same__ table?]

	(2005-01-14)

Foresight

	<graphics, tool> A software product from {Nu Thena} providing
	graphical modelling tools for high level system design and
	{simulation}.

	(1994-10-24)

for free

	Said of a capability of a programming language or hardware
	equipment that is available by its design without needing
	cleverness to implement: "In APL, we get the matrix operations
	for free."  "And owing to the way revisions are stored in this
	system, you get revision trees for free."  The term usually
	refers to a serendipitous feature of doing things a certain
	way (compare {big win}), but it may refer to an intentional
	but secondary feature.

	[{Jargon File}]

	(1994-12-14)

fork

	<operating system> A {Unix} {system call} used by a {process}
	(the "parent") to make a copy (the "child") of itself.  The
	child process is identical to the parent except it has a
	different {process identifier} and a zero return value from
	the fork call.  It is assumed to have used no resources.

	A fork followed by an {exec} can be used to start a different
	process but this can be inefficient and some later Unix
	variants provide {vfork} as an alternative mechanism for this.

	See also {fork bomb}.

	(1996-12-08)

fork bomb

	<programming> A particular species of {wabbit} that can be
	written in one line of {C}:

		main() {for(;;)fork();}

	or {shell}:

		$0 & $0 &

	on any {Unix} system, or occasionally created by an egregious
	coding bug.  A fork bomb process "explodes" by {recursive}ly
	spawning copies of itself using the {Unix} {system call}
	"{fork}(2)".  Eventually it eats all the process table entries
	and effectively wedges the system.  Fortunately, fork bombs
	are relatively easy to spot and kill, so creating one
	deliberately seldom accomplishes more than to bring the just
	wrath of the {gods} down upon the perpetrator.

	See also {logic bomb}.

	[{Jargon File}]

	(1994-12-14)

forked

	<jargon> (Unix; probably after "fucked") Terminally slow, or
	dead.  Originated when one system was slowed to a snail's pace
	by an inadvertent {fork bomb}.

	[{Jargon File}]

	(1994-12-14)

for loop

	<programming> A {loop} construct found in many {procedural
	languages} which repeatedly executes some instructions while a
	condition is true.

	In {C}, the for loop is written in the form;

	 for (INITIALISATION; CONDITION; AFTER)
	   STATEMENT;

	where INITIALISATION is an expression that is evaluated once
	before the loop, CONDITION is evaluated before each iteration
	and the loop exits if it is false, AFTER is evaluated after
	each iteration, and STATEMENT is any statement, including a
	{compound statement} within braces "{..}", that is executed if
	CONDITION is true.

	For example:

	 int i;
	 for (i = 0; i < 10; i++)
	 {
	     printf("Hello\n");
	 }

	prints "Hello" 10 times.

	Other languages provide a more succinct form of "for"
	statement specifically for iterating over {arrays} or {lists}.
	E.g., the {Perl} code,

	 for my $task (@tasks)
	 {
	     postpone($task);
	 }

	calls function "postpone()" repeatedly, setting $task to each
	element of the "@tasks" array in turn.  This avoids
	introducing temporary index variables like "i" in the previous
	example.

	The for loop is an alternative way of writing a {while loop}
	that is convenient because the loop control logic is collected
	in a single place.  It is also closely related to the {repeat
	loop}.

	(2009-10-07)

FORM

	<mathematics, tool> A system written by Jos Vermaseren
	<t68@nikhefh.nikhef.nl> in 1989 for fast handling of very
	large-scale {symbolic mathematics} problems.  FORM is a
	descendant of {Schoonschip} and is available for many
	{personal computers} and {workstations}.

	{(ftp://acm.princeton.edu/)}, {(ftp://nikhefh.nikhef.nl/)}.

	Mailing list: <form@can.nl>.

	(1995-04-12)

FORMAC

	FORmula MAnipulation Compiler.  J. Sammet & Tobey, IBM Boston
	APD, 1962.  An extension of {Fortran} for {symbolic
	mathematics}.  Versions: PL/I-FORMAC and FORMAC73.

	["Introduction to FORMAC", J.E. Sammet et al, IEEE Trans Elec
	Comp (Aug 1964)].

	[Sammet 1969, pp. 474-491].

FORMAL

	1. FORmula MAnipulation Language.

	An early {Fortran} extension for {symbolic mathematics}.

	["FORMAL, A Formula Manipulation Language", C.K. Mesztenyi,
	Computer Note CN-1, CS Dept, U Maryland (Jan 1971)].

	2.  A data manipulation language for nonprogrammers from {IBM}
	{LASC}.

	["FORMAL: A Forms-Oriented and Visual-Directed Application
	System", N.C. Shu, IEEE Computer 18(8):38-49 (1985)].

	(1994-12-06)

formal argument

	<programming> (Or "parameter") A name in a {function} or
	{subroutine} definition that is replaced by, or bound to, the
	corresponding {actual argument} when the function or
	subroutine is called.  In many languages formal arguments
	behave like {local variables} which get initialised on entry.

	See: {argument}.

	(2002-07-02)

Formal Description Technique

	<specification, protocol> (FDT) A {formal method} for
	developing telecomunications services and {protocols}.  FDTs
	range from abstract to implementation-oriented descriptions.
	All FDTs offer the means for producing unambiguous
	descriptions of {OSI} services and {protocols} in a more
	precise and comprehensive way than {natural language}
	descriptions.  They provide a foundation for analysis and
	verification of a description.  The target of analysis and
	verification may vary from abstract properties to concrete
	properties.  Natural language descriptions remain an essential
	adjunct to formal description, enabling an unfarmiliar reader
	to gain rapid insight into the structure and function of
	services and protocols.

	Examples of FDTs are {LOTOS}, {Z}, {SDL}, and {Estelle}.

	[ISO/IEC DTR10167: "Guidelines for the application of
	{Estelle}, {LOTOS} and {SDL}"].

	(1994-12-06)

formal methods

	<mathematics, specification> Mathematically based techniques
	for the {specification}, development and verification of
	software and hardware systems.

	{Referentially transparent} languages are amenable to symbolic
	manipulation allowing {program transformation} (e.g. changing
	a clear inefficient specification into an obscure but
	efficient program) and proof of correctness.

	{Oxford FM archive
	(http://comlab.ox.ac.uk/archive/formal-methods.html)}.

	(1996-05-15)

Formal Object Role Modeling Language

	<language> (FORML) A {CASE} language?

	(1997-04-12)

formal review

	<project> A technical review conducted with the customer
	including the types of reviews called for in DOD-STD-2167A
	(Preliminary Design Review, Critical Design Review, etc.)

	(1996-05-15)

format

	1. <storage> {disk format} - to prepare a new, blank disk for
	writing.

	2. <operating system> {file format} - how data is arranged in
	a specific type of file.

	(2007-09-04)

FORMAT-Fortran

	{Fortran Matrix Abstraction Technique Fortran}

Formatting Output Specification Instance

	<text, standard> (FOSI) An old {SGML} {DTD} {standard} for
	{document management} in the US military, to be replaced (soon
	after Oct 1996?) by the {ISO} standard {DSSSL}.

	(1996-10-07)

Formes

	<language, music> An {object-oriented} language for music
	composition and synthesis, written in {VLISP}.

	["Formes: Composition and Scheduling of Processes", X. Rodet &
	P. Cointe, Computer Music J 8(3):32-50 (Fall 1984)].

	(1996-06-24)

form factor

	<hardware> The type of packaging of a processor {integrated
	circuit}, e.g. {PPGA}, {FC-PGA}.

	More generally, a term popular among {marketroids} in 1998,
	denoting the shape of something designed.

	(2000-08-26)

form feed

	<character> (FF, Control-L, {ASCII} 12) The character used to
	start a new page on a printer.  This is done by "feeding" a
	new page (or "form") through the printer.

	(1996-06-24)

form function

	<jargon> The shape of something designed.  This term is
	currently (Feb 1998) in vogue among {marketroids}.

	(1998-02-11)

FORML

	1. <language> {Formal Object Role Modeling Language}.

	2. <event> {Forth Modification Lab}.

	(1997-04-12)

forms

	1. <programming> {fill-out form}.

	2. <library> (Xforms) A {GUI} component library for {X11}.

	(1998-03-24)

formula

	1. In logic, a sequence of symbols representing terms,
	{predicates}, {connectives} and {quantifiers} which is either
	true or false.

	2. <language, music> FORTH Music Language.  An extension of
	{FORTH} with concurrent note-playing processes.  Runs on
	{Macintosh} and {Atari ST} with {MIDI} output.

	["Formula: A Programming Language for Expressive Computer
	Music", D.P. Anderson et al Computer 24(7):12 (Jul 1991)].

	3. Preprocessor language for the {Acorn Archimedes}, allowing
	inline high-level statements to be entered in an assembly
	program.  Written in {nawk}.

Formula ALGOL

	An {ALGOL} extension for {symbolic mathematics}, strings and
	lists, developed by A.J. Perlis and R. Iturriaga at {Carnegie}
	for the {CDC G-20} in 1962.

	["An Extension of ALGOL for Manipulating Formulae",
	A.J. Perlis et al, CACM 7(2):127-130 (Feb 1964)].

	[Sammet 1969, p. 583].

	(1995-02-15)

Forsythe

	A descendent of {Algol 60}, intended to be as uniform and
	general as possible, while retaining the basic character of
	its progenitor.  Forsythe features {higher-order procedures}
	and {intersection types}.

	{(ftp://e.ergo.cs.cmu.edu/)}.

	["Preliminary Design of the Programming Language Forsythe",
	J.C. Reynolds, CMU-CS-88-159, 1988].

FORTH

	1. <language> An interactive extensible language using
	{postfix syntax} and a data stack, developed by Charles
	H. Moore in the 1960s.  FORTH is highly user-configurable and
	there are many different implementations, the following
	description is of a typical default configuration.

	Forth programs are structured as lists of "words" - FORTH's
	term which encompasses language keywords, primitives and
	user-defined {subroutines}.  Forth takes the idea of
	subroutines to an extreme - nearly everything is a subroutine.
	A word is any string of characters except the separator which
	defaults to space.  Numbers are treated specially.  Words are
	read one at a time from the input stream and either executed
	immediately ("interpretive execution") or compiled as part of
	the definition of a new word.

	The sequential nature of list execution and the implicit use
	of the data stack (numbers appearing in the lists are pushed
	to the stack as they are encountered) imply postfix syntax.
	Although postfix notation is initially difficult, experienced
	users find it simple and efficient.

	Words appearing in executable lists may be "{primitives}"
	(simple {assembly language} operations), names of previously
	compiled procedures or other special words.  A procedure
	definition is introduced by ":" and ended with ";" and is
	compiled as it is read.

	Most Forth dialects include the source language structures
	BEGIN-AGAIN, BEGIN-WHILE-REPEAT, BEGIN-UNTIL, DO-LOOP, and
	IF-ELSE-THEN, and others can be added by the user.  These are
	"compiling structures" which may only occur in a procedure
	definition.

	FORTH can include in-line {assembly language} between "CODE"
	and "ENDCODE" or similar constructs.  Forth primitives are
	written entirely in {assembly language}, secondaries contain a
	mixture.  In fact code in-lining is the basis of compilation
	in some implementations.

	Once assembled, primitives are used exactly like other words.
	A significant difference in behaviour can arise, however, from
	the fact that primitives end with a jump to "NEXT", the entry
	point of some code called the sequencer, whereas
	non-primitives end with the address of the "EXIT" primitive.
	The EXIT code includes the scheduler in some {multi-tasking}
	systems so a process can be {deschedule}d after executing a
	non-primitive, but not after a primitive.

	Forth implementations differ widely.  Implementation
	techniques include {threaded code}, dedicated Forth
	processors, {macros} at various levels, or interpreters
	written in another language such as {C}.  Some implementations
	provide {real-time} response, user-defined data structures,
	{multitasking}, {floating-point} arithmetic, and/or {virtual
	memory}.

	Some Forth systems support virtual memory without specific
	hardware support like {MMUs}.  However, Forth virtual memory
	is usually only a sort of extended data space and does not
	usually support executable code.

	FORTH does not distinguish between {operating system} calls
	and the language.  Commands relating to I/O, {file systems}
	and {virtual memory} are part of the same language as the
	words for arithmetic, memory access, loops, IF statements, and
	the user's application.

	Many Forth systems provide user-declared "vocabularies" which
	allow the same word to have different meanings in different
	contexts.  Within one vocabulary, re-defining a word causes
	the previous definition to be hidden from the interpreter (and
	therefore the compiler), but not from previous definitions.

	FORTH was first used to guide the telescope at NRAO, Kitt
	Peak.  Moore considered it to be a {fourth-generation
	language} but his {operating system} wouldn't let him use six
	letters in a program name, so FOURTH became FORTH.

	Versions include fig-FORTH, FORTH 79 and FORTH 83.

	{FAQs
	(http://complang.tuwien.ac.at/forth/faq/faq-general-2.html)}.
	{ANS Forth standard, dpANS6
	(http://taygeta.com/forth/dpans.html)}.

	FORTH Interest Group, Box 1105, San Carlos CA 94070.

	See also {51forth}, {F68K}, {cforth}, {E-Forth}, {FORML},
	{TILE Forth}.

	[Leo Brodie, "Starting Forth"].

	[Leo Brodie, "Thinking Forth"].

	[Jack Woehr, "Forth, the New Model"].

	[R.G. Loeliger, "Threaded Interpretive Languages"].

	2. {FOundation for Research and Technology - Hellas}.

	(1997-04-16)

for The Rest Of Them

	{for The Rest Of Us}

for The Rest Of Us

	<abuse> (From the {Macintosh} slogan "The computer for the
	rest of us") 1. Used to describe a {spiffy} product whose
	affordability shames other comparable products, or (more
	often) used sarcastically to describe {spiffy} but very
	overpriced products.

	2. Describes a program with a limited interface, deliberately
	limited capabilities, non-{orthogonal}ity, inability to
	compose primitives, or any other limitation designed to not
	"confuse" a naïve user.  This places an upper bound on how far
	that user can go before the program begins to get in the way
	of the task instead of helping accomplish it.

	Used in reference to {Macintosh} software which doesn't
	provide obvious capabilities because it is thought that the
	poor {luser} might not be able to handle them.  Becomes "the
	rest of *them*" when used in third-party reference; thus,
	"Yes, it is an attractive program, but it's designed for The
	Rest Of Them" means a program that superficially looks neat
	but has no depth beyond the surface flash.

	See also {point-and-drool interface}, {user-friendly}.

	[{Jargon File}]

	(2000-08-08)

Forth Modification Lab

	<event> (FORML) A {Forth} conference held every November on
	the West coast of the USA ().

	(1997-04-12)

Fortran

	<language> (Formula Translation) The first and, for a long
	time, the most widely used programming language for numerical
	and scientific applications.  The original versions lacked
	{recursive} procedures and {block structure} and had a
	line-oriented {syntax} in which certain columns had special
	significance.

	There have been a great many versions.

	The name is often written "FORTRAN", harking back to the days
	before computers were taught about lower case, but {ANSI}
	decreed, in about 1985 via the ANSI {FORTRAN} Technical
	Committee {TC}, that it should be "Fortran".

	See also: {Fortrash}.

	[Was {Fortran I} the first version?]

	(2000-07-07)

Fortran 66

	Fortran IV standardised.  ASA X3.9-1966.

Fortran 77

	A popular version of {Fortran} with Block IF, PARAMETER and
	SAVE statements added, but still no WHILE.  It has
	fixed-length character strings, format-free I/O, and {arrays}
	with lower bounds.

	[ANSI X3.9-1978].

	{GNU version (ftp://gnu.org/pub/gnu/g77)}.

	{Amiga version (ftp://ftp.cso.uiuc.edu/amiga/fish/ff470/BCF)}.

	(1994-12-16)

Fortran 90

	(Previously "Fortran 8x" and "Fortran Extended") An extensive
	enlargement of {Fortran 77}.  Fortran 90 has {derived types},
	{assumed shape arrays}, {array sections}, functions returning
	arrays, case statement, {module} subprograms and internal
	subprograms, optional and keyword subprogram arguments,
	{recursion}, and {dynamic allocation}.  It is defined in ISO
	1539:1991, soon to be adopted by {ANSI}.

	["Fortran 90 Explained", M. Metcalf et al, Oxford University
	Press 1990].

	(1994-12-16)

Fortran Automatic Symbol Translator

	<language> (FAST) An {assembly language} for the {IBM 650} by
	{MITRE Corporation}.

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

	[Sammet 1969, p.526].

	(1994-11-09)

Fortran D

	A {data-parallel} {Fortran} developed by {Ken Kennedy} at
	{Rice University}.

	["Fortran D Language Specification", G. Fox et al, TR 90079,
	Rice U, March 1991].

	E-mail: Theresa Chapman <tlc@cs.rice.edu>.

	(1994-12-16)

Fortran I

	An early version of {Fortran} designed by {John Backus} at
	{IBM} for the {IBM 704}.  The design was begun in 1954 and a
	{compiler} released in April 1957.

	[Was this the first Fortran?]

	(1995-02-15)

Fortran II

	1958.  Added subroutines.

Fortran III

	This was only distributed to ca. 20 sites.  See Wexelblat.

Fortran IV

	IBM 1962.  For the IBM 7090/94.  Many implementations went
	well beyond the original definition.

Fortran-Linda

	Scientific Computer Assocs <linda@sca.com>.

Fortran M

	Parallel extensions to Fortran with processes and channels by
	Ian Foster <fortran-m@mcs.anl.gov>.

	["Fortran M: A Language for Modular Parallel Programming",
	I. Foster et al, MCS-P327-0992, ANL, 1992].

	(1994-10-26)

Fortran Matrix Abstraction Technique Fortran

	<language> (FORMAT-Fortran) A language for manipulation,
	printing and plotting of large matrices.

	["FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)"
	AFFDL-TR-66-207, Douglas Aircraft Co.  Oct 1968].

	(1996-09-29)

Fortran-Plus

	Fortran for the DAP parallel machine, implements many
	Fortran 90 features.

FORTRANSIT

	<language> Fortran Internal Translator.

	A subset of {Fortran} translated into {IT} on the {IBM 650}.
	It was in use in the late 1950s and early 1960s.

	Compilation took place in several steps (using {punched cards}
	as the only input/output media).  FORTRANSIT was converted to
	IT {Internal Translator} which was converted into {SOAP} and
	thence to {machine code}.

	In the SOAP -> machine code step, the user had to include card
	decks for all the subroutines used in his FORTRANSIT program
	(including e.g. square root, sine, and even basic {floating
	point} routines).

	[Sammet 1969, p. 141].

	(1995-03-30)

Fortran V

	Preliminary work on adding character handling to {Fortran} by
	{IBM} ca. 1962.  This name as never really used.

	(1994-10-26)

Fortran VI

	{IBM}'s internal name for early {PL/I} work ca. 1963.

	[Sammet 1969, p. 540].

	(1994-10-25)

Fortrash

	<abuse, language> /for'trash/ Hackerism for the {Fortran}
	language, referring to its primitive design, gross and
	irregular {syntax}, limited {control constructs}, and
	slippery, exception-filled {semantics}.

	[{Jargon File}]

	(1994-10-26)

FORTRUNCIBLE

	A cross between Fortran and RUNCIBLE for the IBM 650.
	Listed in CACM 2(5):16 (May 1959).

fortune cookie

	({WAITS}, via the {Unix} "fortune" program) A quotation, item
	of trivia, joke, or maxim selected at random from a collection
	(the "{cookie file}") and printed to the user's tty at login
	time or (less commonly) at logout time.

	There was a fortune program on {TOPS-20}.

	[First program?]

	[{Jargon File}]

	(1995-02-14)

forum

	<messaging> (Plural "fora" or "forums") Any discussion group
	accessible through a dial-in {BBS} (e.g. {GEnie}, {CI$}), a
	{mailing list}, or a {Usenet} {newsgroup} (see {network,
	the}).  A forum functions much like a {bulletin board}; users
	submit {postings} for all to read and discussion ensues.

	Contrast real-time {chat} or point-to-point personal {e-mail}.

	[{Jargon File}]

	(1998-01-18)

for values of

	<jargon> A common rhetorical maneuver at {MIT} is to use any
	of the canonical {random numbers} as placeholders for
	variables.  "The max function takes 42 arguments, for
	arbitrary values of 42".  "There are 69 ways to leave your
	lover, for 69 = 50".  This is especially likely when the
	speaker has uttered a random number and realises that it was
	not recognised as such, but even "non-random" numbers are
	occasionally used in this fashion.  A related joke is that pi
	equals 3 - for small values of pi and large values of 3.

	This usage probably derives from the programming language MAD
	({Michigan Algorithm Decoder}), an {ALGOL}-like language that
	was the most common choice among mainstream (non-hacker) users
	at {MIT} in the mid-1960s.  It had a {control structure} FOR
	VALUES OF X = 3, 7, 99 DO ... that would repeat the indicated
	instructions for each value in the list (unlike the usual FOR
	that generates an {arithmetic sequence} of values).  MAD is
	long extinct, but similar for-constructs still flourish
	(e.g. in {Unix}'s {shell} languages).

	[{Jargon File}]

	(1994-12-16)

forward

	<messaging> (verb) To send (a copy of) an {electronic mail}
	message that you have received on to one or more other
	{addressees}.  Most e-mail systems can be configured to do
	this automatically to all or certain messages, e.g. {Unix}
	{sendmail} looks for a ".forward" file in the recipient's
	{home directory}.

	A {mailing list} server (or "{mail exploder}") is designed to
	forward messages automatically to lists of people.

	{Unix manual page}: aliases(5).

	(2000-03-22)

forward analysis

	An analysis which determines properties of the output of a
	program from properties of the inputs.

forward chaining

	A data-driven technique used in constructing {goals} or
	reaching {inferences} derived from a set of {facts}.  Forward
	chaining is the basis of {production systems}.  Oppose
	{backward chaining}.

	(1994-10-28)

forward compatibility

	<jargon> The ability to accept input from later versions of
	itself.

	Forward compatibility is harder to achieve than {backward
	compatibility}, since, in the backward case, the input format
	is know whereas a forward compatible system needs to cope
	gracefully with unknown future features.  An example of future
	compatibility is the stipulation that a {web browser} should
	ignore {HTML tags} it does not recognise.

	See also {extensible}.

	(2003-06-23)

forward compatible

	{forward compatibility}

forward delta

	The delta which, when combined with a version, creates a child
	version.  See change management

forward engineering

	<process> The traditional process of moving from high-level
	abstractions and logical, implementation-independent designs
	to the physical implementation of a system.

	Contrast {reverse engineering}.

	(1996-10-02)

Forward Error Correction

	<algorithm> (FEC) A class of methods for controling errors in
	a one-way {communication} system.  FEC sends extra information
	along with the data, which can be used by the receiver to
	check and correct the data.

	A {CPU} writing data to {RAM} is a kind of one-way
	communication - see {error correcting memory} and {error
	checking and correction}.

	(1996-10-02)

forwards compatibility

	{forward compatible}

forwards compatible

	{forward compatible}

FORWISS

	Bayerische Forschungszentrum fuer Wissensbasierte Systeme
	(Bavarian research centre for knowledge-based systems) in
	Passau.

For Your Information

	(FYI) A subseries of {RFCs} that are not technical {standards}
	or descriptions of {protocols}.  FYIs convey general
	information about topics related to {TCP/IP} or the
	{Internet}.

	See also {STD}.

	(1994-10-26)

FOSI

	{Formatting Output Specification Instance}

FOSIL

	{Fredette's Operating System Interface Language}

FOSS

	{free open-source software}

fossil

	1. In software, a misfeature that becomes understandable only
	in historical context, as a remnant of times past retained so
	as not to break compatibility.  Example: the retention of
	{octal} as default base for string escapes in {C}, in spite of
	the better match of {hexadecimal} to ASCII and modern
	byte-addressable architectures.  See {dusty deck}.

	2. More restrictively, a feature with past but no present
	utility.  Example: the force-all-caps (LCASE) bits in the V7
	and {BSD} Unix tty driver, designed for use with monocase
	terminals.  (In a perversion of the usual
	backward-compatibility goal, this functionality has actually
	been expanded and renamed in some later {USG Unix} releases as
	the IUCLC and OLCUC bits.)

	3. The FOSSIL (Fido/Opus/Seadog Standard Interface Level)
	driver specification for serial-port access to replace the
	{brain-dead} routines in the IBM PC ROMs.  Fossils are used by
	most {MS-DOS} {BBS} software in preference to the "supported"
	ROM routines, which do not support interrupt-driven operation
	or setting speeds above 9600; the use of a semistandard FOSSIL
	library is preferable to the {bare metal} serial port
	programming otherwise required.  Since the FOSSIL
	specification allows additional functionality to be hooked in,
	drivers that use the {hook} but do not provide serial-port
	access themselves are named with a modifier, as in "video
	fossil".

	[{Jargon File}]

foundation

	The axiom of foundation states that the membership relation is
	well founded, i.e. that any non-empty collection Y of sets has
	a member y which is disjoint from Y.  This rules out sets
	which contain themselves (directly or indirectly).

FOundation for Research and Technology - Hellas

	<company> (FORTH) A small Greek software and research company
	associated with the Institute of Computer Science,

	Address: Science and Technology Park of Crete, Vassilika
	Vouton, P.O.Box 1385 GR 711 10 Heraklion, Crete, Greece.

	Telephone: +30 (81) 39 16 00, Fax: +30 (81) 39 16 01.

	(1997-04-12)

four-colour glossies

	1. Literature created by {marketroids} that allegedly contains
	technical specs but which is in fact as superficial as
	possible without being totally {content-free}.  "Forget the
	four-colour glossies, give me the tech ref manuals."  Often
	applied as an indication of superficiality even when the
	material is printed on ordinary paper in black and white.
	Four-colour-glossy manuals are *never* useful for finding a
	problem.

	2. [rare] Applied by extension to manual pages that don't
	contain enough information to diagnose why the program doesn't
	produce the expected or desired output.

four colour map theorem

	<mathematics, application> (Or "four colour theorem") The
	theorem stating that if the plane is divided into connected
	regions which are to be coloured so that no two adjacent
	regions have the same colour (as when colouring countries on a
	map of the world), it is never necessary to use more than four
	colours.

	The proof, due to Appel and Haken, attained notoriety by using
	a computer to check tens of thousands of cases and is thus not
	humanly checkable, even in principle.  Some thought that this
	brought the philosophical status of the proof into doubt.

	There are now rumours of a simpler proof, not requiring the
	use of a computer.

	See also {chromatic number}

	(1995-03-25)

four colour theorem

	{four colour map theorem}

Fourier transform

	<mathematics> A technique for expressing a waveform as a
	weighted sum of sines and cosines.

	Computers generally rely on the version known as {discrete
	Fourier transform}.

	Named after J. B. Joseph Fourier (1768 -- 1830).

	See also {wavelet}, {discrete cosine transform}.

	(1997-03-9)

fourth generation computer

	<architecture> A computer built using {Very Large Scale
	Integration} (VLSI) {integrated circuits}, especially a
	{microcomputer} based on a {microprocesseor}, or a {parallel
	processor} containing two to thousands of {CPUs}.

	VLSI made it routine to fabricate an entire CPU, main memory,
	or similar device with a single integrated circuit that can be
	mass produced at very low cost.  This has resulted in new
	classes of machines such as {personal computers}, and high
	performance parallel processors that contains thousands of
	CPUs.

	(1996-11-22)

fourth generation language

	<language> (4GL, or "report generator language") An
	"application specific" language, one with built-in knowledge
	of an {application domain}, in the way that {SQL} has built-in
	knowledge of the {relational} database domain.

	The term was invented by Jim Martin to refer to
	{non-procedural} {high level languages} built around
	{database} systems.

	Fourth generation languages are close to {natural language}
	and were built with the concept that certain applications
	could be generalised by adding limited programming ability to
	them.

	When given a description of the data format and the report to
	generate, a 4GL system produces {COBOL} (or other 3GL) code,
	that actually reads and processes the data and formats the
	results.

	Some examples of 4GL are: {database query language} e.g.{SQL};
	{Focus}, {Metafont}, {PostScript}, {S}, {IDL-PV}, {WAVE},
	{Gauss}, {Mathematica}, and {data-stream languages} such as
	{AVS}, {APE}, {Iris Explorer}.

	(2004-04-01)

fourth normal form

	{database normalisation}

Fowler-Nordheim tunnelling

	<electronics> (US: "tunneling") The quantum mechanical effect
	exploited in {EAPROM} and {Flash Erasable Programmable Read
	Only Memory}.  It differs from {Frenkel-Pool Tunnelling} in
	that it does not rely on defects in the {semiconductor}.

	[More detail?]

	(2001-09-27)

Fox

	{Free Objects for Crystallography}

FoxBASE+

	<database> {Fox Software}'s {dBASE} III+-like product which
	later became {FoxPRO}.  It used the {Xbase} programming
	language.

	[Features?  Dates?  Status?]

	(2004-09-01)

FoxPRO

	<database> A {dBASE} IV-like product originally from {Fox
	Software} which (well before 2000) mutated into {Microsoft}
	{Visual FoxPro}.

	[Features?  Dates?]

	(2000-08-06)

Fox Software

	<company> Developers of {FoxBASE+} and {FoxPRO}.  Fox Software
	merged with {Microsoft} around 1992.

	Addresss: Perrysburg, OH, USA.

	[More details?]

	(1997-11-18)

Fox Wiki

	<application> A {wiki} for the {Fox} (Free Objects for
	Crystallography) {software}.

	{Fox Wiki (http://vincefn.net/Fox/)}.

	(2014-01-20)

FP

	1. {functional programming}.

	2. {floating-point}.

	3. Functional Programming.  A {combinator}-based {functional
	language} by John Backus stressing the use of {higher-order
	functions}.

	Implementation by Andy Valencia.
	{(ftp://apple.com/comp.sources.Unix/volume13)}.

	See also {FFP}, {FL}, {IFP}, {Berkeley FP}.

	["Can Programming be Liberated From the von Neumann Style?  A
	Functional Style and Its Algebra of Programs", John Backus,
	1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978)].

	4. <programming> {Function Point}.

	(1995-03-12)

FP2

	Functional Parallel Programming.  A {term rewriting} language
	which unifies {functional programming} and {parallel
	programming}.  Every object is a term and every computation is
	done by rewriting.  Rewrite rules are used to specify
	{algebraic data types} and parallel processes.

	["Term Rewriting as a Basis for the Design of a Functional and
	Parallel Programming Language.  A Case Study: The Language
	FP2", Ph. Jorrand in Fundamentals of Artificial Intelligence,
	LNCS 258, Springer 1986, pp. 221-276].

	(1994-10-20)

FPA

	1. <hardware> {floating-point accelerator}.

	2. <programming> {Function Point Analysis}.

fpc

	A translator from {Backus}'s {FP} to {C}.

	{(ftp://apple.com/comp.sources.Unix/Volume20)}.

FPGA

	{Field-Programmable Gate Array}

FPLMTS

	<communications> {Future Public Land Mobile
	Telecommunications System}.

FPM

	{Fast Page Mode Dynamic Random Access Memory}

FP/M

	<programming> An {abstract machine} and intermediate language
	for {functional languages}, used to implement {Hope}.  FP/M is
	an optimisation of the {SECD machine}.

	["The Compilation of FP/M Programs into Conventional Machine
	Code", A.J. Field, Imperial College, London, 1985].

	["Functional Programming", A.J. Field & P.G. Harrison, A-W
	1988].

	(1994-10-20)

FPM DRAM

	{Fast Page Mode Dynamic Random Access Memory}

fprintf

	<library> Variant of the {C} library routine {printf} which
	prints to a given {stream}.  E.g.

		fprintf(stderr, "%s: can't open file \"%s\".",
			argv[0], argv[1]);

	which prints to the "{standard error}" output stream.

	(1995-04-25)

fps

	{frames per second}

FPU

	{floating-point unit}

FQDN

	{fully qualified domain name}

FQL

	<language> A {functional database} language.

	["An Implementation Technique for Database Query Languages",
	O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June
	1982)].

	(1995-04-27)

fr

	<networking> The {country code} for France.

	(1999-01-27)

FRA

	{Wireless Local Loop}

fractal

	<mathematics, graphics> A fractal is a rough or fragmented
	geometric shape that can be subdivided in parts, each of which
	is (at least approximately) a smaller copy of the whole.
	Fractals are generally self-similar (bits look like the whole)
	and independent of scale (they look similar, no matter how
	close you zoom in).

	Many mathematical structures are fractals; e.g. {Sierpinski
	triangle}, {Koch snowflake}, {Peano curve}, {Mandelbrot set}
	and {Lorenz attractor}.  Fractals also describe many
	real-world objects that do not have simple geometric shapes,
	such as clouds, mountains, turbulence, and coastlines.

	{Benoit Mandelbrot}, the discoverer of the {Mandelbrot set},
	coined the term "fractal" in 1975 from the Latin fractus or
	"to break".  He defines a fractal as a set for which the
	{Hausdorff Besicovich dimension} strictly exceeds the
	{topological dimension}.  However, he is not satisfied with
	this definition as it excludes sets one would consider
	fractals.

	{sci.fractals FAQ
	(ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.fractals/)}.

	See also {fractal compression}, {fractal dimension}, {Iterated
	Function System}.

	{Usenet} newsgroups: {news:sci.fractals},
	{news:alt.binaries.pictures.fractals}, {news:comp.graphics}.

	["The Fractal Geometry of Nature", Benoit Mandelbrot].

	[Are there non-self-similar fractals?]

	(1997-07-02)

fractal compression

	<algorithm> A technique for encoding {images} using
	{fractals}.

	{Yuval Fisher's fractal image compression site
	(http://inls.ucsd.edu/y/Fractals/)}.

	[Summary?]

	(1998-03-27)

fractal dimension

	<mathematics> A common type of fractal dimension is the
	Hausdorff-Besicovich Dimension, but there are several
	different ways of computing fractal dimension.  Fractal
	dimension can be calculated by taking the limit of the
	quotient of the log change in object size and the log change
	in measurement scale, as the measurement scale approaches
	zero.  The differences come in what is exactly meant by
	"object size" and what is meant by "measurement scale" and how
	to get an average number out of many different parts of a
	geometrical object.  Fractal dimensions quantify the static
	*geometry* of an object.

	For example, consider a straight line.  Now blow up the line
	by a factor of two.  The line is now twice as long as before.
	Log 2 / Log 2 = 1, corresponding to dimension 1.  Consider a
	square.  Now blow up the square by a factor of two.  The
	square is now 4 times as large as before (i.e. 4 original
	squares can be placed on the original square).  Log 4 / log 2
	= 2, corresponding to dimension 2 for the square.  Consider a
	snowflake curve formed by repeatedly replacing ___ with _/\_,
	where each of the 4 new lines is 1/3 the length of the old
	line.  Blowing up the snowflake curve by a factor of 3 results
	in a snowflake curve 4 times as large (one of the old
	snowflake curves can be placed on each of the 4 segments
	_/\_).  Log 4 / log 3 = 1.261...  Since the dimension 1.261 is
	larger than the dimension 1 of the lines making up the curve,
	the snowflake curve is a fractal.  [sci.fractals FAQ].

FRAD

	<communications> {Frame Relay Access Device}.

fragile

	{brittle}

fragment

	{fragmentation}

fragmentation

	1. <networking> {segmentation}.

	2. The process, or result, of splitting a large area of free
	memory (on disk or in main memory) into smaller non-contiguous
	blocks.  This happens after many blocks have been allocated
	and freed.  For example, if there is 3 kilobytes of free space
	and two 1k blocks are allocated and then the first one (at the
	lowest address) is freed, then there will be 2k of free space
	split between the two 1k blocks.  The maximum size block that
	could then be allocated would be 1k, even though there was 2k
	free.  The solution is to "compact" the free space by moving
	the allocated blocks to one end (and thus the free space to
	the other).

	As modern file systems are used and files are deleted and
	created, the total free space becomes split into smaller
	non-contiguous blocks (composed of "{clusters}" or "{sectors}"
	or some other unit of allocation).  Eventually new files being
	created, and old files being extended, cannot be stored each
	in a single contiguous block but become scattered across the
	file system.  This degrades performance as multiple {seek}
	operations are required to access a single fragmented file.

	Defragmenting consolidates each existing file and the free
	space into a continuous group of sectors.  Access speed will
	be improved due to reduced seeking.

	The rate of fragmentation depends on the {algorithm} used to
	allocate space and the number and position of free sectors.  A
	nearly-full file system will fragment more quickly.

	{MS-DOS} and {Microsoft Windows} use the simplest algorithm to
	allocate free clusters and so fragmentation occurs quickly.  A
	disk should be defragmented before fragmentation reaches 10%.

	See {garbage collection}.

	(1997-08-29)

FRAM

	{Ferroelectric Random Access Memory}

frame

	1. <networking> A {data link layer} "packet" which contains the
	header and trailer information required by the physical
	medium.  That is, {network layer} {packets} are encapsulated
	to become frames.

	See also {datagram}, {encapsulation}, {packet}, {Maximum
	Transmission Unit}.

	2. <programming> (language implementation) See {activation
	record}.

	3. <hardware> One complete scan of the active area of a
	{display screen}.  Each frame consists of a number N of
	horizontal {scan lines}, each of which, on a computer display,
	consists of a number M of {pixels}.  N is the {vertical
	resolution} of the display and M is the {horizontal
	resolution}.  The rate at which the displayed image is updated
	is the {refresh rate} in frames per second.

	(2000-10-07)

frame buffer

	<hardware> Part of a video system in which an {image} is
	stored, {pixel} by pixel and which is used to refresh a
	{raster} image.  The term "{video memory}" suggests a fairly
	static display whereas a frame buffer holds one frame from a
	sequence of frames forming a moving image.

	Frame buffers are found in {frame grabbers} and {time base
	correction} systems, for example.

	(1997-10-03)

Frame Check Sequence

	<communications> (FCS) The extra characters added to a {frame}
	for {error detection and correction}(?).  FCS is used in
	{X.25}, {HDLC}, {Frame Relay}, and other {data link layer}
	{protocols}.

	(1998-02-27)

frame grabber

	<hardware> A device that captures a single {frame} from an
	{analog} {video} signal (from a video camera or {VCR}) and
	stores it as a digital {image} under computer control.

	(1997-07-11)

FrameKit

	<language> A {frame language}.

	["The FrameKit User's Guide", E. Nyberg, TR CMU- CMT-88-MEMO,
	CMU 1988].

	(1994-10-20)

FrameMaker

	<text> A commercial document preparation program produced by
	{Frame Technology Corporation} who were taken over by {Adobe
	Systems, Inc.}  in 1995/6.  FrameMaker is available for a wide
	variety of {workstations} and is designed for technical and
	scientific documents.  It uses a powerful system of templates
	and paragraph styles to control {WYSIWYG} formatting.  It
	supports graphics, tables, and contents pages among other
	things.

	Version: FrameMaker 6, due April 2000.

	See also {Maker Interchange Format}.

	(2000-04-04)

frame pointer

	A pointer to the current {activation record} in an
	implementation of a {block structured} language.

	(1994-10-20)

frame rate

	<graphics> The number of {frames} of an {animation} which are
	displayed every second, measured in frames per second (fps).
	The higher the frame rate, the smoother the animation will
	appear but the more processing power and system {bandwidth} is
	required.

	At less than 30 fps, the human eye can see the new pictures
	coming onto the screen.

	(2000-02-02)

Frame Relay

	<communications> A {DTE}-{DCE} interface specification based
	on {LAPD} (Q.921), the {Integrated Services Digital Network}
	version of {LAPB} ({X.25} {data link layer}).  A common
	specification was produced by a consortium of {StrataCom},
	{Cisco}, {Digital}, and Northern Telecom.

	Frame Relay is the result of {wide area network}ing
	requirements for speed; {LAN}-{WAN} and LAN-LAN
	{internetworking}; "bursty" data communications; multiplicity
	of {protocols} and {protocol transparency}.  These
	requirements can be met with technology such as {optical
	fibre} lines, allowing higher speeds and fewer transmission
	errors; intelligent network end devices ({personal computers},
	{workstations}, and {servers}); standardisation and adoption
	of ISDN protocols.  Frame Relay could connect dedicated lines
	and {X.25} to {ATM}, {SMDS}, {BISDN} and other "{fast packet}"
	technologies.

	Frame Relay uses the same basic {data link layer} {framing} and
	{Frame Check Sequence} so current {X.25} hardware still works.
	It adds addressing (a 10-bit {Data Link Connection Identifier}
	(DLCI)) and a few control bits but does not include
	retransmissions, link establishment, windows or error
	recovery.  It has none of X.25's {session layer} but adds some
	simple interface management.  Any {network layer} protocol can
	be used over the data link layer Frames.

	{Frame Relay Resource Center
	(http://alliancedatacom.com/framerelay.asp)}.

	(2000-07-14)

Frame Relay Access Device

	<communications> (FRAD) Hardware and software that turns
	{packets} from {TCP}, {SNA}, {IPX}, etc into {frames} that can
	be sent over a {Frame Relay} {wide area network}.

	FRADs are a hot topic in data comms because companies like
	{Netlink}, {Motorola}, {Stratacom} are making lots of money
	out of them.

	(1995-11-17)

frames per second

	<unit> (fps) The unit of measurement of the {frame rate} of a
	moving image.

	(2000-02-02)

Frame Technology Corporation

	<company> The company which developed {FrameMaker}, taken over
	by {Adobe Systems, Inc.} in late 1995/early 1996.

	(1995-01-30)

framework

	In {object-oriented} systems, a set of {class}es that embodies
	an abstract design for solutions to a number of related
	problems.

	(1995-01-30)

Framework 4

	A European Union funding programme, the {information
	technology} portion of which replaced {ESPRIT}.

	(1994-09-19)

framing specification

	A specification of the "{protocol} bits" that surround the
	"data bits" on a communications channel to allow the data to
	be "framed" into chunks, like start and {stop bits} in
	{EIA-232}.  It allows a receiver to synchronize at points along
	the data stream.

	(1995-01-13)

FRANK

	["Using BINS for Interprocess Communication", P.C.J. Graham,
	SIGPLAN Notices 20(2):32-41 (Feb 1985)].

	(1995-01-13)

Franz Lisp

	<language> A {MacLisp}-like dialect of {Lisp}, developed
	primarily for work in {symbolic algebra} by R. Fateman et al
	at {Ucb} in about 1980.  It was named after the Hungarian
	composer Franz Liszt (1811-1886).  Franz Lisp was written in
	{C} and includes a compiler called "{Liszt}".

	["The FRANZ LISP Manual", J.K. Foderaro et al. UC Berkeley
	1980].

	Version: Opus 38.22.  Liszt 8.08.

	{(ftp://ted.cs.uidaho.edu/pub/hol/franz.tar.Z)}.

	(2001-12-04)

Fraps

	<application, video> A {Windows} application that can be used
	with games using {DirectX} or {OpenGL} to display the current
	screen redraw rate in frames per second (FPS).  Fraps can also
	measure the frame rate between any two points and can capture
	stills, audio and video to disk.

	Latest version: 2.7.4 (2006-06-18), as of 2006-07-12.

	{Fraps Home (http://fraps.com/)}.

	(2006-07-12)

Fraunhofer Gesellschaft

	<company> (FhG, FhG IIS, Institut für Integrierte Schaltungen) A
	german company, named after the physicist.  IIS is Integrated
	Circuit Institute.

	FhG are known for their research on {audio compression},
	especially {MPEG-1 Layer-3} (MP3).

	(2001-12-04)

FRED

	Robert Carr.  Language used by Framework, Ashton-Tate.

	[{Jargon File}]

fred

	1. The personal name most frequently used as a {metasyntactic
	variable} (see {foo}).  Allegedly popular because it's easy
	for a non-touch-typist to type on a standard QWERTY keyboard.
	Unlike {J. Random Hacker} or "J. Random Loser", this name has
	no positive or negative loading (but see {Mbogo, Dr. Fred}).
	See also {barney}.

	2. An acronym for "Flipping Ridiculous Electronic Device";
	other F-verbs may be substituted for "flipping".

Fredette's Operating System Interface Language

	<language, operating system> (FOSIL) A portable {job control
	language} for {IBM} {OS360}, {UNIVAC} {EXEC 8} and {Honeywell}
	{GCOS}.

	["Fredette's Operating System Interface Language (FOSIL)",
	G.N. Baird in Command Languages, C. Unger ed, N-H 1973].

	(2000-08-06)

frednet

	/fred'net/ Used to refer to some {random} and uncommon
	{protocol} encountered on a {network}.  "We're implementing
	bridging in our {router} to solve the frednet problem."

	[{Jargon File}]

free

	See {free software}, {free variable}.

FreeBSD

	<operating system> A free {operating system} based on the {BSD
	4.4-lite} release from {Computer Systems Research Group} at
	the {University of California at Berkeley}.

	FreeBSD requires an {ISA}, {EISA}, {VESA}, or {PCI} based
	computer with an {Intel 80386SX} to {Pentium} CPU (or
	compatible {AMD} or {Cyrix} CPU) with 4 megabytes of {RAM} and
	60MB of disk space.

	Some of FreeBSD's features are: {preemptive multitasking} with
	dynamic priority adjustment to ensure smooth and fair sharing
	of the computer between applications and users.  Multiuser
	access - {peripherals} such as printers and tape drives can be
	shared between all users.  Complete {TCP/IP} networking
	including {SLIP}, {PPP}, {NFS} and {NIS}.  {Memory
	protection}, {demand-paged virtual memory} with a merged
	{VM}/{buffer cache} design.  FreeBSD was designed as a {32 bit
	operating system}.  {X Window System} (X11R6) provides a
	{graphical user interface}.  {Binary compatibility} with many
	programs built for {SCO}, {BSDI}, {NetBSD}, {386BSD}, and
	{Linux}.  Hundreds of ready-to-run applications in the FreeBSD
	ports collection.  FreeBSD is {source code compatible} with
	most popular commercial {Unix} systems and thus most
	applications require few, if any, changes to compile.  {Shared
	libraries}.  A full compliment of {C}, {C++}, {Fortran} and
	{Perl} development tools and many other languages.  {Source
	code} for the entire system is available.  Extensive on-line
	documentation.

	{(http://freebsd.org/)}.

	{(ftp://ftp.freebsd.org/pub/FreeBSD)} or try your nearest
	{mirror site} listed at the home site or buy the {CD-ROM} from
	{Walnut Creek}.

	(1998-11-24)

FreeHEP

	An organisation offering a repository of software and related
	information for high energy physics applications.

Freenet

	Community-based bulletin board system with e-mail, information
	services, interactive communications, and conferencing.
	Freenets are funded and operated by individuals and volunteers
	- in one sense, like public television.  They are part of the
	National Public Telecomputing Network (NPTN), an organisation
	based in Cleveland, Ohio, devoted to making computer
	telecommunication and networking services as freely available
	as public libraries.

Free Objects for Crystallography

	<application> (Fox) A free, {open-source} program for ab
	initio structure determination from powder diffraction.

	{Fox Wiki (http://vincefn.net/Fox/)}.

	(2014-01-21)

Free On-line Dictionary

	{Free On-line Dictionary of Computing}

free open-source software

	{free software}

FreePPP

	<networking> The latest incarnation of {MacPPP}.  FreePPP
	continues to be used by many MacOS users as an alternative to
	{Apple}'s {TCP/IP} stack.

	{(http://rockstar.com/ppp.shtml)}.

	(2000-11-25)

freerexx

	{REXX} {interpreters} for {Unix} in {C++}.

	{(ftp://rexx.uwaterloo.ca/pub/freerexx/rx102.tar.Z)}.

free software

	<software> Software that everyone is free to copy,
	redistribute and modify.  That implies free software must be
	available as {source code}, hence "free open source software"
	- "FOSS".  It is usually also free of charge, though anyone
	can sell free software so long as they don't impose any new
	restrictions on its redistribution or use.  The widespread
	acceptance of this definition and free software itself owes a
	great deal to {Richard Stallman} and the {Free Software
	Foundation}.

	There are many other kinds of "free software" in the sense of
	"free of charge".  See "{-ware}".

	{This dictionary} is free in both senses, though since it is
	documentation not {software} it is distributed under the
	{GFDL}.

	(2007-02-09)

Free Software Foundation

	<body> (FSF) An organisation devoted to the creation and
	dissemination of {free software}, i.e. software that is free
	from licensing fees or restrictions on use.  The Foundation's
	main work is supporting the {GNU} project, started by {Richard
	Stallman} (RMS), partly to proselytise for his position that
	information is community property and all software source
	should be shared.

	The GNU project has developed the GNU {Emacs} editor and a {C}
	compiler, {gcc}, replacements for many Unix utilities and many
	other tools.  A complete {Unix}-like operating system ({HURD})
	is in the works (April 1994).

	Software is distributed under the terms of the {GNU General
	Public License}, which also provides a good summary of the
	Foundation's goals and principles.  The Free Software
	Foundation raises most of its funds from distributing its
	software, although it is a charity rather than a company.
	Although the software is freely available (e.g. by {FTP} - see
	below) users are encouraged to support the work of the FSF by
	paying for their distribution service or by making donations.

	One of the slogans of the FSF is "Help stamp out software
	hoarding!"  This remains controversial because authors want to
	own, assign and sell the results of their labour.  However,
	many hackers who disagree with RMS have nevertheless
	cooperated to produce large amounts of high-quality software
	for free redistribution under the Free Software Foundation's
	imprimatur.

	See {copyleft}, {General Public Virus}, {GNU archive site}.

	{(ftp://ftp.gnu.ai.mit.edu)}.

	Unofficial WWW pages: {PDX
	(http://cs.pdx.edu/~trent/gnu/)}, {DeLorie
	(http://delorie.com/gnu/)}.

	E-mail: <gnu@gnu.org>.

	Address: Free Software Foundation, Inc., 675 Massachusetts
	Avenue, Cambridge, MA 02139, USA.

	Telephone: +1 (617) 876 3296.

	(1995-12-10)

free variable

	1. A variable referred to in a function, which is not an
	argument of the function.  In {lambda-calculus}, x is a {bound
	variable} in the term M = \ x . T, and a free variable of T.
	We say x is bound in M and free in T.  If T contains a subterm
	\ x . U then x is rebound in this term.  This nested, inner
	binding of x is said to "shadow" the outer binding.
	Occurrences of x in U are free occurrences of the new x.

	Variables bound at the top level of a program are technically
	free variables within the terms to which they are bound but
	are often treated specially because they can be compiled as
	fixed addresses.  Similarly, an identifier bound to a
	recursive function is also technically a free variable within
	its own body but is treated specially.

	A {closed term} is one containing no free variables.

	See also {closure}, {lambda lifting}, {scope}.

	2. In {logic}, a variable which is not quantified (see
	{quantifier}).

freeware

	<legal> {Software}, often written by enthusiasts and
	distributed at no charge by users' groups, or via the
	{World-Wide Web}, {electronic mail}, {bulletin boards},
	{Usenet}, or other electronic media.

	At one time, "freeware" was a trademark of {Andrew
	Fluegelman}.  It wasn't enforced after his death.

	"Freeware" should not be confused with "{free software}"
	(roughly, software with unrestricted redistribution) or
	"{shareware}" (software distributed without charge for which
	users can pay voluntarily).

	{Jim Knopf's story (http://freewarehof.org/sstory.html)}.

	[{Jargon File}]

	(2003-07-26)

freeze

	To lock an evolving software distribution or document against
	changes so it can be released with some hope of stability.
	Carries the strong implication that the item in question will
	"unfreeze" at some future date.

	There are more specific constructions on this term.  A
	"feature freeze", for example, locks out modifications
	intended to introduce new features but still allows bugfixes
	and completion of existing features; a "code freeze" connotes
	no more changes at all.  At {Sun Microsystems} and elsewhere,
	one may also hear references to "code slush" - that is, an
	almost-but-not-quite frozen state.

	[{Jargon File}]

Frege, Gottlob

	{Gottlob Frege}

frequency division multiple access

	{frequency division multiplexing}

frequency division multiplexing

	<communications> (FDM) The simultaneous transmission of
	multiple separate signals through a shared medium (such as a
	wire, {optical fibre}, or light beam) by modulating, at the
	transmitter, the separate signals into separable frequency
	bands, and adding those results linearly either before
	transmission or within the medium.  While thus combined, all
	the signals may be amplified, conducted, translated in
	frequency and routed toward a destination as a single signal,
	resulting in economies which are the motivation for
	multiplexing.  Apparatus at the receiver separates the
	multiplexed signals by means of frequency passing or rejecting
	filters, and demodulates the results individually, each in the
	manner appropriate for the modulation scheme used for that
	band or group.

	Bands are joined to form groups, and groups may then be joined
	into larger groups; this process may be considered
	recursively, but such technique is common only in large and
	sophisticated systems and is not a necessary part of FDM.

	Neither the transmitters nor the receivers need be close to
	each other; ordinary radio, television, and cable service are
	examples of FDM.  It was once the mainstay of the long
	distance telephone system.  The more recently developed {time
	division multiplexing} in its several forms lends itself to
	the handling of digital data, but the low cost and high
	quality of available FDM equipment, especially that intended
	for television signals, make it a reasonable choice for many
	purposes.

	Compare {wavelength division multiplexing}, {time division
	multiplexing}, {code division multiplexing}.

	(2001-06-28)

Frequency-Hopping Spread Spectrum

	<communications> (FH, FHSS) A variation of {spread spectrum
	communications} in which a sequence of {pseudo random numbers}
	control a {frequency synthesizer}, generating different
	carrier frequencies that "hop around" in the desired frequency
	range.  The receiver tunes to the same sequence of carrier
	frequencies in synchronisation with the transmitter.

	Frequency hopping spread spectrum was invented by Hedy Lamarr
	("the most beautiful girl in the world", Samson and Delilah
	etc.) and the composer George Antheil.  They held a patent
	filed in 1942.

	(2009-07-01)

Frequency Modulation

	<communications> (FM) A method of encoding data by varying the
	frequency of a constant amplitude {carrier signal}.

	Contrast {Amplitude Modulation}.

	(2001-04-02)

Frequency Shift Keying

	<communications> (FSK) The use of {frequency modulation} to
	transmit digital data, i.e. two different {carrier}
	frequencies are used to represent zero and one.

	FSK was originally used to transmit {teleprinter} messages by
	radio ({RTTY}) but can be used for most other types of radio
	and land-line digital telegraphy.  More than two frequencies
	can be used to increase transmission rates.

	(1997-07-14)

frequently asked question

	<convention> (FAQ, or rarely FAQL, FAQ list) A document
	provided for many {Usenet} {newsgroups} (and, more recently,
	{World-Wide Web} services) which attempts to answer questions
	which new readers often ask.  These are maintained by
	volunteers and posted regularly to the newsgroup.  You should
	always consult the FAQ list for a group before posting to it
	in case your question or point is common knowledge.

	The collection of all FAQ lists is one of the most precious
	and remarkable resources on the {Internet}.  It contains a
	huge wealth of up-to-date expert knowledge on many subjects of
	common interest.  Accuracy of the information is greatly
	assisted by its frequent exposure to criticism by an
	interested, and occasionally well-informed, audience (the
	readers of the relevant newsgroup).

	The main {FTP archive} for FAQs is on a computer called {RTFM}
	at {MIT}, where they can be accessed either {by group
	(ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/)} or {by
	hierarchy (ftp://rtfm.mit.edu/pub/usenet-by-hierarchy/)}.
	There is another archive at {Imperial College
	(ftp://src.doc.ic.ac.uk/usenet/news-info/)}, London, UK and a
	{World-Wide Web} archive in {Ohio
	(http://cis.ohio-state.edu/hypertext/faq/usenet/top.html)},
	USA.

	The FAQs are also posted to {Usenet} newsgroups:
	{news:comp.answers}, {news:news.answers} and
	{news:alt.answers}.

	(1997-12-08)

Fresco

	1. <standard, programming> An {object-oriented} {API} for
	{graphical user interfaces}, under development by the {X
	Consortium} as an open, multi-vendor {standard}.

	2. <language, specification> An {object-oriented}
	{specification language}.

	["Refinement in Fresco", in Object Oriented Specification Case
	Studies, K. Lano et al eds, P-H 1993].

	(1996-04-28)

Fresh

	<language>

	["Fresh: A Higher-Order Language Based on Unification",
	G. Smolka, in Logic Programming: Functions, Relations and
	Equations", D. DeGroot et al, P-H 1986, pp. 469-524].

	(1996-04-28)

friction feed

	<printer> A method some {printers} and {plotters} use to move
	paper by rotating one or both of a pair of spring-loaded
	rubber-coated rollers with the paper sandwiched between them.

	Friction feed printers are notorious for slipping when the
	rollers wear out, but can take standard typing paper.

	For printers with a {sheet feeder}, friction feed is more
	appropriate than {sprocket feed} which requires the holes in
	the paper to engage with the sprockets of the feed mechanism.

	(1997-07-09)

fried

	1. <hardware> Non-working due to hardware failure; burnt out.
	Especially used of hardware brought down by a "power glitch"
	(see {glitch}), {drop-outs}, a short, or some other electrical
	event.  (Sometimes this literally happens to electronic
	circuits!  In particular, resistors can burn out and
	transformers can melt down, emitting noxious smoke - see
	{friode}, {SED} and {LER}.  However, this term is also used
	metaphorically.)  Compare {frotzed}.

	2. <jargon> Of people, exhausted.  Said particularly of those
	who continue to work in such a state.  Often used as an
	explanation or excuse.  "Yeah, I know that fix destroyed the
	file system, but I was fried when I put it in."  Especially
	common in conjunction with "brain": "My brain is fried today,
	I'm very short on sleep."

	[{Jargon File}]

	(1996-04-28)

Friend

	Relationship between classes in the language C++.

FRINGE

	C. Katz, GE, 1961.  Subcomponent of GE-255 GECOM system.
	Sorting and merging of data, reports and file maintenance.

frink

	/frink/ The unknown ur-verb, fill in your own meaning.  Found
	especially on the {Usenet} newsgroup {news:alt.fan.lemurs},
	where it is said that the lemurs know what "frink" means, but
	they aren't telling.

	Compare {gorets}.

	[{Jargon File}]

	(1994-12-16)

friode

	<humour, electronics> /fri:'ohd/ (TMRC) A reversible (that is,
	fused, blown, or {fried}) {diode}.  A friode may have been a
	{SED} at some time.

	See also {LER}.

	[{Jargon File}]

	(1996-04-28)

fritterware

	An excess of capability that serves no productive end.  The
	canonical example is font-diddling software on the Mac (see
	{macdink}); the term describes anything that eats huge amounts
	of time for quite marginal gains in function but seduces
	people into using it anyway.  See also {window shopping}.

	[{Jargon File}]

FRL

	Frame Representation Language.

	MIT.

	["The FRL Manual", R. Roberts et al, AI Memo 409, MIT AI Lab,
	1977].

	(1994-12-16)

FRMT-FTRN

	Scientific language.  1976.

frob

	/frob/ 1.  [MIT] The {TMRC} definition was "FROB = a
	protruding arm or trunnion"; by metaphoric extension, a "frob"
	is any random small thing; an object that you can comfortably
	hold in one hand; something you can frob (sense 2).  See
	{frobnitz}.

	2. Abbreviated form of {frobnicate}.

	3. [{MUD}] A command on some {MUDs} that changes a player's
	experience level (this can be used to make wizards); also, to
	request {wizard} privileges on the "professional courtesy"
	grounds that one is a wizard elsewhere.  The command is
	actually "frobnicate" but is universally abbreviated to the
	shorter form.

	[{Jargon File}]

frobnicate

	/frob'ni-kayt/ (Possibly from {frobnitz}, and usually
	abbreviated to {frob}, but "frobnicate" is recognised as the
	official full form).  To manipulate or adjust, to {tweak}.
	One frequently frobs bits or other 2-state devices.  Thus:
	"Please frob the light switch" (that is, flip it), but also
	"Stop frobbing that clasp; you'll break it".  One also sees
	the construction "to frob a frob".

	Usage: frob, {twiddle}, and {tweak} sometimes connote points
	along a continuum.  "Frob" connotes aimless manipulation;
	"twiddle" connotes gross manipulation, often a coarse search
	for a proper setting; "tweak" connotes fine-tuning.  If
	someone is turning a knob on an oscilloscope, then if he's
	carefully adjusting it, he is probably tweaking it; if he is
	just turning it but looking at the screen, he is probably
	twiddling it; but if he's just doing it because turning a knob
	is fun, he's frobbing it.  The variant "frobnosticate" has
	also been reported.

	(1994-12-16)

frobnitz

	/frob'nits/, plural "frobnitzem" /frob'nit-zm/ or "frobni"
	/frob'ni:/ (TMRC) An unspecified physical object, a widget.
	Also refers to electronic {black boxes}.  This rare form is
	usually abbreviated to "frotz", or more commonly to {frob}.
	Also used are "frobnule" (/frob'n[y]ool/) and "frobule"
	(/frob'yool/).  Starting perhaps in 1979, "frobozz" /fr*-boz'/
	(plural: "frobbotzim" /fr*-bot'zm/) has also become very
	popular, largely through its exposure as a name via {Zork}.
	These variants can also be applied to nonphysical objects,
	such as data structures.

	Pete Samson, compiler of the original {TMRC} lexicon, adds,q
	"Under the TMRC (railway) layout were many storage boxes,
	managed (in 1958) by David R. Sawyer.  Several had fanciful
	designations written on them, such as "Frobnitz Coil Oil".
	Perhaps DRS intended Frobnitz to be a proper name, but the
	name was quickly taken for the thing".  This was almost
	certainly the origin of the term.

	[{Jargon File}]

	(1994-12-16)

Frobozz Magic Programming Language

	<object-oriented language, functional language> (FMPL of
	Accardi).  A {prototype-based}, {object-oriented},
	{event-driven} (mainly I/O events) interpreted language with
	{functional} features.  Developed at the {Experimental
	Computing Facility}, {University of California, Berkeley}.

	There is an {interpreter} by Jon Blow
	<blojo@xcf.berkeley.edu>.

	Latest version: 1, as of 1992-06-02.

	{(ftp://xcf.berkeley.edu/src/local/fmpl)}.

	Mailing list: <fmpl@xcf.berkeley.edu>.

	E-mail: Jack Hsu <tcl-archive@barkley.berkeley.edu>.

	(1992-06-02)

frogging

	({University of Waterloo}) 1. Partial corruption of a text
	file or input stream by some bug or consistent glitch, as
	opposed to random events like line noise or media failures.
	Might occur, for example, if one bit of each incoming
	character on a tty were stuck, so that some characters were
	correct and others were not.

	See {terminak} for a historical example.

	2. By extension, accidental display of text in a mode where
	the output device emits special symbols or {mnemonics} rather
	than conventional ASCII.  This often happens, for example,
	when using a terminal or comm program on a device like an {IBM
	PC} with a special "high-half" character set and with the
	bit-parity assumption wrong.  A hacker sufficiently familiar
	with ASCII bit patterns might be able to read the display
	anyway.

	[{Jargon File}]

Frolic

	A {Prolog} system in {Common Lisp}.

	{(ftp://ftp.cs.utah.edu/pub/frolic.tar.Z)}.

	(1991-11-23)

front end

	1. An intermediary computer that does set-up and filtering for
	another (usually more powerful but less friendly) machine (a
	"back end").

	2. Software that provides an interface to another program
	"behind" it, which may not be as {user-friendly}.  Probably
	from analogy with hardware front-ends that interfaced with
	{mainframes}.

	[{Jargon File}]

front-end processor

	(FEP) 1. A small computer necessary to enable an {IBM}
	{mainframe} using {SNA} to communicate beyond the limits of
	the {dinosaur pen}.

	2. A small computer controlling the screen and keyboard of a
	{Symbolics 3600} {LISP Machine}.

front side bus

	<hardware> (FSB) The {bus} via which a {processor}
	communicates with its {RAM} and {chipset}; one half of the
	{Dual Independent Bus} (the other half being the {backside
	bus}).  The {L2 cache} is usually on the FSB, unless it is on
	the same chip as the processor [example?].

	In {PCI} systems, the PCI bus runs at half the FSB speed.

	{Intel}'s {Pentium 60} ran the bus and processor at 60 {MHz}.
	All later processors have used multipliers to increase the
	internal {clock} speed while maintaining the same external
	clock speed, e.g. the {Pentium 90} used a 1.5x multiplier.
	Modern {Socket 370} {motherboards} support multipliers from
	4.5x to 8.0x, and FSB speeds from 50 MHz to a proposed 83 MHz
	standard.  These higher speeds may cause problems with some
	PCI hardware.

	Altering the FSB speed and the multiplier ratio are the two
	main ways of {overclocking} processors.

	{Toms Hardware - The Bus Speed Guide
	(http://www.tomshardware.com/reviews/bus-speed-guide,49.html)}.

	{Toms Hardware - The Overclocking Guide
	(http://www.tomshardware.com/reviews/overclocking-guide,15.html)}.

	(2002-02-21)

frotzed

	<jargon> /frotst/ {down} because of hardware problems.
	Compare {fried}.  A machine that is merely frotzed may be
	fixable without replacing parts, but a fried machine is more
	seriously damaged.

	(2010-05-16)

frowney

	<chat> (Or "frowney face") See {emoticon}.

	[{Jargon File}]

fry

	1. To fail.  Said especially of smoke-producing hardware
	failures.  More generally, to become non-working.  Usage:
	never said of software, only of hardware and humans.  See
	{fried}, {magic smoke}.

	2. To cause to fail; to {roach}, {toast}, or {hose} a piece of
	hardware.  Never used of software or humans, but compare
	{fried}.

FS

	1. <file system> {file system}.

	2. <character> {File Separator}.

FSB

	{front side bus}

fsck

	1. <operating system> file system check.  The {Unix} program
	that checks a {file system} for internal consistency and bad
	blocks etc. and can repair some faults.

	fsck is often used after a {crash} when the file system has
	been left in an inconsistent state, e.g. due to incomplete
	flushing of {buffers}.

	(1998-03-06)

	2. <jargon> Used on {Usenet} {newsgroup} alt.sysadmin.recovery
	as substitute for "fuck" and became more main-stream after the
	{Communications Decency Act}.

	(1998-03-06)

FSF

	{Free Software Foundation}

FSK

	{Frequency Shift Keying}

FSL

	Formal Semantics Language.

	A language for {compiler} writing.

	["A Formal Semantics for Computer Languages and its Application
	in a Compiler-Compiler", J.A. Feldman, CACM 9(1) (Jan 1966)].

	[Sammet 1969, p. 641].

	(1995-01-23)

FSM

	1. <mathematics, algorithm, theory> {Finite State Machine}.

	2. <networking> {FDDI Switching Module}.

	({3Com} implements this device on its {LAN} switches).

	[What is it?]

	(1997-05-16)

FSP

	{File Service Protocol}

fsplit

	A tool to split up monolithic {Fortran} programs.

FT

	{fault tolerant}

FTAM

	File Transfer, Access, and Management: an application layer
	protocol for file transfer and remote manipulation (ISO 8571).

FTP

	{File Transfer Protocol}

FTP archive

	{archive site}

FTP by mail

	A service offered by {DEC} to allow people without {Internet}
	access to get copies of files which are available by
	{anonymous FTP}.  Send a message with just the word "help" in
	the body to <ftpmail@decwrl.dec.com>.

FTP server

	<networking> A network {server} program or computer which
	responds to requests for files via {FTP}.

	A busy {Internet} {archive site} may have one or more
	computers dedicated to running FTP server software.  These
	will typically have {hostnames} beginning with "ftp.",
	e.g. ftp.denet.dk.

	(1998-07-02)

FTP Software, Inc.

	<company> Developers of the original {PC/TCP} {Packet Driver}
	specification.

	Address: 26 Princess St. Wakefield, MA 01880-3004.  Telephone:
	+1 (617) 246 0900.

	(1994-12-05)

FTTP

	Do you mean {FTP} or {HTTP}?

FTW

	<chat> An ambiguous acronym which might stand for any of "For
	The Win" (the thing just referred to will help you succeed),
	"Forever Two Wheels" (biker slang), {WTF} backwards, "Fuck The
	World", "Fuck This War", "Fun To Watch" or something else.

	(2008-09-12)

FTX

	<operating system> {Stratus}' {Unix operating system}.

	(1998-07-06)

FUBAR

	1. (WWII military slang) Fucked up beyond all
	recognition (or repair).

	See {foobar}.

	2. <hardware> The Failed UniBus Address Register in a
	{VAX}.  A good example of how jargon can occasionally be snuck
	past the {suits}.

	Larry Robinson <lrobins@indiana.edu> reports the following
	nonstandard use for FUBAR:

	One day somebody got mad at the {card reader} (or card eater
	that day) on our {Univac 3200}.  He taped a sign, "This thing
	is FUBAR", on the metal weight that sits on the stack of
	unread cards.  The sign stayed there for over a year.  One
	day, somebody said, "Don't forget to put the fubar on top of
	the stack".  It stuck!  We called that weight the fubar until
	they took away the machine.  The replacement card reader had
	two spring loaded card clamps, one for the feed and one for
	the return, and we called THOSE fubars until we dumped punch
	cards.

	Incidently, the way he taped the sign on the weight made up
	for the lack of a little nylon piece that was missing from it,
	and fixed the card reader.  That's why the sign stayed there.

	[{Jargon File}]

	(1997-03-18)

FUD

	<jargon> /fuhd/ An acronym invented by {Gene Amdahl}
	after he left {IBM} to found his own company: "FUD is the
	fear, uncertainty, and doubt that {IBM} sales people instill
	in the minds of potential customers who might be considering
	[Amdahl] products."  The idea, of course, was to persuade them
	to go with safe IBM gear rather than with competitors'
	equipment.  This implicit coercion was traditionally
	accomplished by promising that Good Things would happen to
	people who stuck with IBM, but Dark Shadows loomed over the
	future of competitors' equipment or software.

	[{Jargon File}]

	(1995-05-23)

fudge

	1. To perform in an incomplete but marginally acceptable way,
	particularly with respect to the writing of a program.  "I
	didn't feel like going through that pain and suffering, so I
	fudged it - I'll fix it later."

	2.  The resulting code.

	[{Jargon File}]

fudge factor

	A value or parameter that is varied in an ad hoc way to
	produce the desired result.  The terms "tolerance" and {slop}
	are also used, though these usually indicate a one-sided
	leeway, such as a buffer that is made larger than necessary
	because one isn't sure exactly how large it needs to be, and
	it is better to waste a little space than to lose completely
	for not having enough.  A fudge factor, on the other hand, can
	often be tweaked in more than one direction.  A good example
	is the "fuzz" typically allowed in {floating-point}
	calculations: two numbers being compared for equality must be
	allowed to differ by a small amount; if that amount is too
	small, a computation may never terminate, while if it is too
	large, results will be needlessly inaccurate.  Fudge factors
	are frequently adjusted incorrectly by programmers who don't
	fully understand their import.

Fudgets

	<programming> (From "functional widgets") {Graphical user
	interface} {widgets} available as The Fudget library - a
	toolkit for concurrent programming of graphical user
	interfaces, {client/servers} and more written in {Haskell} by
	Thomas Hallgren <hallgren@cs.chalmers.se> and Magnus Carlsson
	<magnus@cs.chalmers.se>.

	Version: h9 1995-07-04 (Baastad Spring School Release).

	{(http://cs.chalmers.se/Fudgets/)}.

	{(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers)}.

	(1996-03-17)

FUDGIT

	A double-precision multi-purpose fitting program by Thomas
	Koenig <ig25@rz.uni-karlsruhe.de>.  It can manipulate complete
	columns of numbers in the form of vector arithmetic.  FUDGIT
	is also an expression language {interpreter} understanding
	most of {C} {grammar} except pointers.  Morever, FUDGIT is a
	front end for any plotting program supporting commands from
	stdin, e.g. {Gnuplot}.

	Version 2.27 runs on {AIX}, {HP-UX}, {Linux}, {IRIX}, {NeXT},
	{SunOS}, {Ultrix}.

	{(ftp://tsx-11.mit.edu/pub/linux/sources/usr.bin/)}.

	(1993-03-22)

FUD wars

	/fuhd worz/ Political posturing, intended to create {FUD},
	engaged in by hardware and software vendors ostensibly
	committed to standardisation but actually willing to fragment
	the market to protect their own shares.  The {Unix
	International} vs. {OSF} conflict is but one outstanding
	example.

	[{Jargon File}]

	(1994-12-01)

Fuel-can

	A derogatory term for the {Atari Falcon}.

	(1994-12-22)

Fugue

	<language, music> A music language implemented in {Xlisp}.

	["Fugue: A Functional Language for Sound Synthesis",
	R.B. Dannenberg et al, Computer 24(7):36-41 (Jul 1991)].

	(1994-12-01)

Fujitsu

	<company> A Japanese elecronics corporation.  Fujitsu owns
	{ICL}, {Amdahl Corporation}, and {DMR}.

	Home {USA (http://fujitsu.com/)}, {Japan
	(http://fujitsu.co.jp/index-e.html)}.

	(2000-04-03)

full-custom

	Design of {integrated circuits} at the transistor or polygon
	level.  This is in contrast to the use of libraries of
	components.  Full-custom design requires considerable skill
	and experience and is usually only feasible for simple
	circuits, especially ones with much repetition, such as memory
	device, where a small saving in the size and power consumption
	of a component will yield a large overall saving.

	(1994-12-01)

full-duplex

	<communications> (fdx, from {telegraphy}) 1. A type of
	{duplex} communications channel which carries data in both
	directions at once.

	On purely {digital} connections, full-duplex communication
	requires two pairs of wires.  On {analog} networks or in
	digital networks using carriers, it is achieved by dividing
	the {bandwidth} of the line into two frequencies, one for
	sending, and the other for receiving.

	2. An obsolete term for {remote echo}.

	Compare {simplex}, {half-duplex}, {double-duplex}.

	(2001-07-21)

full-duplex Switched Ethernet

	<networking> (FDSE) A {Switched Ethernet} link which can carry
	data in both directions simultaneously, doubling transmission
	capacity from the usual 10 to 20 megabits per second.

	(1996-06-20)

full laziness

	<functional programming> A transformation, described by
	Wadsworth in 1971, which ensures that subexpressions in a
	function body which do not depend on the function's arguments
	are only evaluated once.  E.g. each time the function

		f x = x + sqrt 4

	is applied, (sqrt 4) will be evaluated.  Since (sqrt 4) does
	not depend on x, we could transform this to:

		f x = x + sqrt4
		sqrt4 = sqrt 4

	We have replaced the dynamically created (sqrt 4) with a
	single shared constant which, in a {graph reduction} system,
	will be evaluated the first time it is needed and then updated
	with its value.

	See also {fully lazy lambda lifting}, {let floating}.

	(1994-11-09)

full-motion video

	<video> (FMV) Any kind of {video} that is theoretically
	capable of changing the entire content on the screen fast
	enough that the transitions are not obvious to the human eye,
	i.e. about 24 times a second or more.  In practise most {video
	encoding} relies on the fact that in most video there is
	relatively little change from one {frame} to the next.  This
	allows for {compression} of the video data.

	The term is used, chiefly in {computer games}, in contrast to
	techniques such as the use of {sprites} that move against a
	more-or-less fixed background.

	(2011-01-04)

full outer join

	{outer join}

fully associative cache

	<memory management> A type of {cache} in which data from any
	address can be stored in any cache location.  The whole address
	must be used as the tag (the value that identifies a block of data
	in the cache).  All tags must be compared simultaneously
	(associatively) with the requested address and if one matches then
	its associated data is accessed.  This requires an {associative
	memory} to hold the tags which makes this form of cache more
	expensive.  It does however solve the problem of contention for
	cache locations ({cache conflict}) since a block need only be
	flushed when the whole cache is full and then the block to flush
	can be selected in a more efficient way.

	The alternatives are {direct mapped cache} or {set associative
	cache}.

	(2013-08-09)

Fully Automated Compiling Technique

	<language> (FACT, "Honeywell-800 Business Compiler") A
	pre-{COBOL} English-like business data processing language for
	the {Honeywell 800}, developed ca. 1959.

	[Sammet 1969, p. 327].

	(1994-12-01)

fully lazy lambda lifting

	John Hughes's optimisation of {lambda lifting} to give {full
	laziness}.  {Maximal free expressions} are shared to minimise
	the amount of recalculation.  Each inner sub-expression is
	replaced by a function of its maximal free expressions
	(expressions not containing any {bound variable}) applied to
	those expressions.  E.g.

		f = \ x . (\ y . (+) (sqrt x) y)

	((+) (sqrt x)) is a maximal free expression in
	(\ y . (+) (sqrt x) y) so this inner {abstraction} is replaced
	with

		(\ g . \ y . g y) ((+) (sqrt x))

	Now, if a {partial application} of f is shared, the result of
	evaluating (sqrt x) will also be shared rather than
	re-evaluated on each application of f.  As Chin notes, the
	same benefit could be achieved without introducing the new
	{higher-order function}, g, if we just extracted out (sqrt x).

	This is similar to the {code motion} optimisation in
	{procedural languages} where constant expressions are moved
	outside a loop or procedure.

	(1994-12-01)

fully qualified domain name

	<networking> (FQDN) The full name of a system, consisting of
	its local {hostname} and its {domain} name, including a
	{top-level domain} (tld).  For example, "venera" is a hostname
	and "venera.isi.edu" is an FQDN.  An FQDN should be sufficient
	to determine a unique {Internet address} for any host on the
	{Internet}.  This process, called "name resolution", uses the
	{Domain Name System} (DNS).

	With the explosion of interest in the {Internet} following the
	advent of the {World-Wide Web}, domain names (especially the
	most significant two components, e.g. "sun.com", and
	especially in the ".com" tld) have become a valuable part of
	many companies' "brand".  The allocation of these, overseen by
	{ICANN}, has therefore become highly political and is
	performed by a number of different registrars.  There are
	different registries for the different tlds.

	A final dot on the end of a FQDN can be used to tell the DNS
	that the name is fully qualified and so needs no extra
	suffixes added, but it is not required.

	See also {network, the}, {network address}.

	(2005-06-09)

fum

	<jargon> At {Xerox PARC}, often the third standard
	{metasyntactic variable} after {foo} and {bar}.  {baz} is more
	common outside PARC.

	[{Jargon File}]

	(2003-09-24)

Fun

	A {typed lambda-calculus}, similar to {SOL}[2].  "On
	Understanding Types, Data Abstractions and Polymorphism",
	L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985).

function

	1. <mathematics> (Or "map", "mapping") If D and C are sets
	(the domain and codomain) then a function f from D to C,
	normally written "f : D -> C" is a subset of D x C such that:

	1. For each d in D there exists some c in C such that (d,c) is
	an element of f.  I.e. the function is defined for every
	element of D.

	2. For each d in D, c1 and c2 in C, if both (d,c1) and (d,c2)
	are elements of f then c1 = c2.  I.e. the function is uniquely
	defined for every element of D.

	See also {image}, {inverse}, {partial function}.

	2. <programming> Computing usage derives from the mathematical
	term but is much less strict.  In programming (except in
	{functional programming}), a function may return different
	values each time it is called with the same argument values
	and may have {side effects}.

	A {procedure} is a function which returns no value but has
	only {side-effects}.  The {C} language, for example, has no
	procedures, only functions.  {ANSI C} even defines a {type},
	{void}, for the result of a function that has no result.

	(1996-09-01)

functional

	1. Working correctly.

	2. Pertaining to {functional programming}.

	3. {higher-order function}.

functional database

	<database, language> A {database} which uses a {functional
	language} as its {query language}.

	Databases would seem to be an inappropriate application for
	functional languages since, a {purely functional language}
	would have to return a new copy of the entire database every
	time (part of) it was updated.  To be practically {scalable},
	the update mechanism must clearly be {destructive} rather than
	functional; however it is quite feasible for the {query
	language} to be purely functional so long as the database is
	considered as an argument.

	One approach to the update problem would use a {monad} to
	encapsulate database access and ensure it was {single
	threaded}.  Alternative approaches have been suggested by
	Trinder, who suggests non-destructive updating with shared
	data structures, and Sutton who uses a variant of a Phil
	Wadler's {linear type} system.

	There are two main classes of functional database languages.
	The first is based upon {Backus}' {FP} language, of which
	{FQL} is probably the best known example.  {Adaplan} is a more
	recent language which falls into this category.

	More recently, people have been working on languages which are
	syntactically very similar to modern {functional programming
	languages}, but which also provide all of the features of a
	database language, e.g. bulk data structures which can be
	incrementally updated, type systems which can be incrementally
	updated, and all data persisting in a database.  Examples are
	{PFL} [Poulovassilis&Small, VLDB-91], and {Machiavelli} [Ohori
	et al, ACM SIGMOD Conference, 1998].

	{Query optimisation} is very important for database languages
	in general and the {referential transparency} of functional
	languages allows optimisations which would be harder to verify
	in presence of {side-effects}.

	[Trinder, P., "Referentially transparent database languages",
	1989 Glasgow Workshop on Functional programming]

	[Breazu-Tannen et al., DBPL-91].

	[Poulovassilis, VLDB-94].

	(1995-05-09)

functional dependency

	<database> Given a relation R (in a {relational database}),
	attribute Y of R is functionally dependent on attribute X of R
	and X of R functionally determines Y of R (in symbols R.X ->
	R.Y) if and only if each X in R has associated with it
	precisely one Y in R (at any one time).  Attributes X and Y
	may be {composite}.

	This is very close to a {function} in the mathematical sense.

	(1997-09-01)

functionality

	<programming> Waffle for "{features}" or "function".  The
	capabilities or behaviours of a program, part of a program, or
	system, seen as the sum of its {features}.  Roughly, "the
	things it can do".  Generally used in a comparative sense,
	e.g. "The latest update adds some useful functionality".

	(1997-07-14)

functional language

	<language> A language that supports and encourages {functional
	programming}.

	(1995-11-08)

functional program

	<language> A program employing the {functional programming}
	approach or written in a {functional language}.

	(1995-11-07)

functional programming

	<programming> (FP) A program in a functional language consists
	of a set of (possibly {recursive}) {function} definitions and
	an expression whose value is output as the program's result.
	Functional languages are one kind of {declarative language}.
	They are mostly based on the {typed lambda-calculus} with
	constants.  There are no {side-effects} to expression
	evaluation so an expression, e.g. a function applied to
	certain arguments, will always evaluate to the same value (if
	its evaluation terminates).  Furthermore, an expression can
	always be replaced by its value without changing the overall
	result ({referential transparency}).

	The order of evaluation of subexpressions is determined by the
	language's {evaluation strategy}.  In a {strict}
	({call-by-value}) language this will specify that arguments
	are evaluated before applying a function whereas in a
	non-strict ({call-by-name}) language arguments are passed
	unevaluated.

	Programs written in a functional language are generally
	compact and elegant, but have tended, until recently, to run
	slowly and require a lot of memory.

	Examples of purely functional languages are {Clean}, {FP},
	{Haskell}, {Hope}, {Joy}, {LML}, {Miranda}, and {SML}.  Many
	other languages such as {Lisp} have a subset which is purely
	functional but also contain non-functional constructs.

	See also {lazy evaluation}, {reduction}.

	{Lecture notes
	(ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.ps)}.
	or the same {in dvi-format
	(ftp://ftp.cs.olemiss.edu/pub/tech-reports/umcis-1995-01.dvi)}.

	{FAQ
	(http://cs.nott.ac.uk/Department/Staff/gmh/faq.html)}.

	{SEL-HPC Article Archive
	(http://lpac.ac.uk/SEL-HPC/Articles/)}.

	(2003-03-25)

functional programming language

	<language> A language that supports and encourages {functional
	programming}.

	(1995-11-08)

functional requirements

	<specification> What a system should be able to do, the
	functions it should perform.

	This term is used at both the {user requirements} analysis and
	{software requirements} specifications phases in the {software
	life-cycle}.

	An example of a non-functional requirement is an
	initialisation sequence incorporated into the software that is
	specific to a given customer.

	(2001-05-22)

functional specification

	<programming, project> A description of what a system (e.g. a
	piece of {software}) does or should do (but not how it should
	do it).  The functional specification is one of the inputs to
	the {design} process.

	See {IEEE}/{ANSI} Std. 610.12-1990.

	(1999-04-07)

functional testing

	<testing> (Or "black-box testing", "closed-box testing") The
	application of test data derived from {functional requirements}
	without regard to how the system is implemented.

	(1996-05-15)

functional unit

	A subsystem of the {central processing unit} of a computer.
	E.g. {arithmetic and logic unit}, {memory address register},
	{barrel shifter}, {register file}.

	(1995-02-10)

function application

	A {function} applied to (some of) its {arguments}.  If it is
	not applied to all its argument then it is a "{partial
	application}".  Application is usually written in the form
	f(x) but some languages such as command-line interpreters and
	many {functional languages} use {juxtaposition}: f x.  {Lisp}
	places the parentheses around the whole application: (f x).

function complete

	<programming> State of a {software} component or system such
	that each {function} described by the software's {functional
	specification} can be reached by at least one {functional
	path}, and attempts to operate as specified.

	(1999-04-07)

Function Graph Language

	<language> (FGL) The {machine language} for the AMPS
	({Applicative Multi-Processing System}) proposed by Robert
	Keller, Gary Lindstrom and Suhas Patil at the University of
	Utah.

	(2007-03-22)

function inlining

	<programming> Defining a {member function}'s {implementation}
	within the {class} where it was also declared.  This is
	usually reserved for small functions since the inline function
	must be re-compiled for every instance of the class.

	(2007-03-22)

function key

	<hardware> (From the {IBM 3270} terminal's Programmed Function
	Keys (PF keys)) One of a set of special keys on a computer or
	{terminal} keyboard which can be programmed so as to cause an
	{application program} to perform certain actions.

	Function keys on a terminal may either generate short fixed
	sequences of characters, often beginning with the {escape}
	character ({ASCII} 27), or the characters they generate may be
	configured by sending special character sequences to the
	terminal.

	On a {microcomputer} keyboard, the function keys may generate
	a fixed, single byte code, outside the normal {ASCII} range,
	which is translated into some other configurable sequence by
	the keyboard {device driver} or interpreted directly by the
	{application program}.

	(1995-02-07)

Function Point Analysis

	<programming> (FPA) A standard metric for the relative size
	and complexity of a software system, originally developed by
	Alan Albrecht of {IBM} in the late 1970s.

	Functon points (FPs) can be used to estimate the relative size
	and complexity of software in the early stages of development
	- analysis and design.  The size is determined by identifying
	the components of the system as seen by the end-user: the
	inputs, outputs, inquiries, interfaces to other systems, and
	logical internal files.  The components are classified as
	simple, average, or complex.  All of these values are then
	scored and the total is expressed in Unadjusted FPs (UFPs).
	Complexity factors described by 14 general systems
	characteristics, such as reusability, performance, and
	complexity of processing can be used to weight the UFP.
	Factors are also weighted on a scale of 0 - not present, 1 -
	minor influence, to 5 - strong influence.  The result of these
	computations is a number that correlates to system size.

	Although the FP metric doesn't correspond to any actual
	physical attribute of a software system (such as {lines of
	code} or the number of subroutines) it is useful as a relative
	measure for comparing projects, measuring productivity, and
	estimating the amount a development effort and time needed for
	a project.

	See also {International Function Point Users Group}.

	(1996-05-16)

functor

	In {category theory}, a functor F is an operator on types.  F
	is also considered to be a {polymorphic} operator on functions
	with the type

		F : (a -> b) -> (F a -> F b).

	Functors are a generalisation of the function "{map}".  The
	type operator in this case takes a type T and returns type
	"list of T".  The map function takes a function and applies it
	to each element of a list.

	(1995-02-07)

funky

	Said of something that functions, but in a slightly strange,
	{kluge}y way.  It does the job and would be difficult to
	change, so its obvious non-optimality is left alone.  Often
	used to describe interfaces.  The more bugs something has that
	nobody has bothered to fix because workarounds are easier, the
	funkier it is.  {TECO} and {UUCP} are funky.  The {Intel}
	{i860}'s exception handling is extraordinarily funky.  Most
	standards acquire funkiness as they age.  "The new mailer is
	installed, but is still somewhat funky; if it bounces your
	mail for no reason, try resubmitting it."  "This {UART} is
	pretty funky.  The data ready line is active-high in interrupt
	mode and active-low in {DMA} mode."

	[{Jargon File}]

FUNLOG

	Functional programming plus unification.  "Lazy" in the sense
	that expressions are reduced only if they are not unifiable.

	["FUNLOG: A Computational Model Integrating Logic Programming
	and Functional Programming", P.A. Subrahmanyam et al, in Logic
	Programming: Functions, Relations and Equations, D. DeGroot et
	al eds, P-H 1986].

FunnelWeb

	A {literate-programming} tool by Ross Williams
	<ross@spam.adelaide.edu.au>.  It emphasises simplicity and
	reliability.  It provides a {macro} facility and assists in
	the production of typeset {documentation}.  It is independent
	of the input programming language.

	Posted to comp.sources.unix volume 26 under {CopyLeft}.  Runs
	on {Sun}, {Vax}, {Macintosh} and {IBM PC}.

	(1993-04-11)

funny money

	Notional units of computing time and/or storage handed to
	students at the beginning of a computer course; also called
	"play money" or "purple money" (in implicit opposition to real
	or "green" money).

	In New Zealand and Germany the odd usage "paper money" has
	been recorded; in Germany, the particularly amusing synonym
	"transfer ruble" commemorates the funny money used for trade
	between COMECON countries back when the Soviet Bloc still
	existed.

	When your funny money ran out, your account froze and you
	needed to go to a professor to get more.  Fortunately, the
	plunging cost of {time-sharing} cycles has made this less
	common.  The amounts allocated were almost invariably too
	small, even for the non-hackers who wanted to slide by with
	minimum work.  In extreme cases, the practice led to
	small-scale black markets in bootlegged computer accounts.  By
	extension, phantom money or quantity tickets of any kind used
	as a resource-allocation hack within a system.

	[{Jargon File}]

furigana

	<human language, Japanese> (Or "rubi") Small {hiragana},
	written above {kanji} (and these days sometimes above Latin
	characters) as a phonetic comment and reading aid.  The
	singular and plural are both "furigana".

	(2000-12-30)

furrfu

	<jargon> Written-only {rot13} "Sheesh!".  "furrfu" evolved in
	mid-1992 as a response to postings repeating urban myths on
	{newsgroup} {news:alt.folklore.urban}, after some posters
	complained that "Sheesh!" as a response to {newbies} was being
	overused.

	(1995-10-25)

FUSE

	A {DEC} {software development environment} for {ULTRIX},
	offering an integrated toolkit for developing, testing,
	debugging and maintenance.

FUSION

	Software package supplied by Network Research Corporation
	claiming to connect various different configurations of LAN.

fusion

	<programming> A {program transformation} where a {composition}
	of two functions is replaced by in-lining them and combining
	their bodies.  E.g.

		f x = g (h x)	==>	f x = g (2 * x)
		g x = x + 1		f x = 2 * x + 1
		h x = 2 * x

	This has the beneficial effect of reducing the number of
	function calls.  It can be especially useful where the
	intermediate result is a large data structure which can be
	eliminated.

	See also {vertical loop combination}.

	(1994-12-05)

FutureBasic

	<language> A {BASIC} compiler for the {Macintosh}.

	{(http://stazsoftware.com/futurebasic/)}.

	[Summary?  Version?]

	(2002-08-28)

future date testing

	<testing> The process of setting a computer's date to a future
	date to test a program's (expected or unexpected) date
	sensitivity.  Future date testing only shows the effects of
	dates on the computer(s) under scrutiny, it does not take into
	account knock-on effects of dates on other connected systems.

	(2000-09-11)

futz

	<jargon> ("futzing around") To waste time on activity
	that is often experimental and may or may not be
	productive.  Not normally used for game playing.

	(2008-11-27)

fuzzball

	A {DEC} {LSI-11} running a particular suite of homebrewed
	software written by Dave Mills and assorted co-conspirators,
	used in the early 1980s for {Internet} {protocol} testbedding
	and experimentation.  These were used as {NSFnet} {backbone}
	sites in its early 56KB-line days.  A few were still active on
	the {Internet} in early 1991, doing odd jobs such as network
	time service.

	[{Jargon File}]

	(1994-12-05)

fuzzy computing

	{fuzzy logic}

fuzzy logic

	A superset of {Boolean logic} dealing with the concept of
	partial truth -- {truth values} between "completely true" and
	"completely false".  It was introduced by Dr. Lotfi Zadeh of
	{UCB} in the 1960's as a means to model the uncertainty of
	{natural language}.

	Any specific theory may be generalised from a discrete (or
	"crisp") form to a continuous (fuzzy) form, e.g. "fuzzy
	calculus", "fuzzy differential equations" etc.  Fuzzy logic
	replaces Boolean truth values with degrees of truth which are
	very similar to probabilities except that they need not sum to
	one.  Instead of an assertion pred(X), meaning that X
	definitely has the property associated with {predicate}
	"pred", we have a truth function truth(pred(X)) which gives
	the degree of truth that X has that property.  We can combine
	such values using the standard definitions of fuzzy logic:

		truth(not x)   = 1.0 - truth(x)
		truth(x and y) = minimum (truth(x), truth(y))
		truth(x or y)  = maximum (truth(x), truth(y))

	(There are other possible definitions for "and" and "or",
	e.g. using sum and product).  If truth values are restricted to
	0 and 1 then these functions behave just like their Boolean
	counterparts.  This is known as the "extension principle".

	Just as a Boolean predicate asserts that its argument
	definitely belongs to some subset of all objects, a fuzzy
	predicate gives the degree of truth with which its argument
	belongs to a {fuzzy subset}.

	{Usenet} newsgroup: {news:comp.ai.fuzzy}.

	E-mail servers: <fuzzynet@aptronix.com>,
	<rnalib@its.bldrdoc.gov>, <fuzzy-server@til.com>.

	{(ftp://ftp.hiof.no/pub/Fuzzy)},
	{(ftp://ntia.its.bldrdoc.gov/pub/fuzzy)}.

	{FAQ
	(ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/fuzzy-logic)}.

	{James Brule, "Fuzzy systems - a tutorial", 1985
	(http://life.anu.edu.au/complex_systems/fuzzy.html)}.

	{STB Software Catalog
	(http://krakatoa.jsc.nasa.gov/stb/catalog.html)}, includes a
	few fuzzy tools.

	[H.J. Zimmerman, "Fuzzy Sets, Decision Making and Expert
	Systems", Kluwer, Dordrecht, 1987].

	["Fuzzy Logic, State of the Art", Ed. R. Lowen, Marc Roubens,
	Theory and Decision Library, D: System theory, Knowledge
	Engineering and Problem Solving 12, Kluwer, Dordrecht, 1993,
	ISBN 0-7923-2324-6].

	(1995-02-21)

fuzzy subset

	In {fuzzy logic}, a fuzzy subset F of a set S is defined by a
	"membership function" which gives the degree of membership of
	each element of S belonging to F.

fweep

	({WPI}) One step below a {gweep}, a person who uses the system
	solely to play games and use {electronic mail}.

	Compare {dweeb}, {twink}, {terminal junkie}, {tourist},
	{weenie}.

	(1995-01-31)

FWIW

	For what it's worth.

fx

	<networking> The {country code} for metropolitan France.

	Apprently not widely used.

	(1999-01-27)

FX-87

	Effects.  A {polymorphic} language based on {Scheme}, allowing
	{side effects} and {first-class} functions.  It attempts to
	integrate functional and {imperative programming}.
	Expressions have types, side effects (e.g. reading, writing or
	allocating) and regions (stating where the effects may occur).

	Versions: FX-89, {FX-90}.

	{(ftp://brokaw.lcs.mit.edu/)}.

	["The FX-87 Reference Manual", D.K. Gifford
	<gifford@lcs.mit.edu> et al, MIT/LCS/TR-407, Oct 1987].

	(1995-01-31)

FX-90

	<language> A language with partial type and effect
	reconstruction and {first-class} {modules}.

	(1995-01-31)

FXO

	{Foreign eXchange Office}

FXS

	{Foreign eXchange Subscriber}

FYA

	For your amusement.

FYI

	{For Your Information}

FYI4

	[Malkin, G., and A. Marine, "FYI on Questions and Answers:
	Answers to Commonly asked "New Internet User" Questions", FYI
	4, RFC 1325, Xylogics, SRI, May 1992.]

G

	1. <unit> The abbreviated form of {giga-}.

	2. <language> ["G: A Functional Language with Generic Abstract
	Data Types", P.A.G. Bailes, Computer Langs 12(2):69-94, 1987].

	3. <language> A language developed at {Oregon State
	University} in 1988 which combines {functional programming},
	{object-oriented programming}, relational, {imperative
	programming} and {logic programming} (you name it we got it).

	["The Multiparadigm Language G", J. Placer, Computer Langs
	16:235-258, 1991].

	[{Jargon File}]

	(1996-08-12)

<g>

	<chat> grin.  An alternative to {smiley}.

	[{Jargon File}]

	(1998-01-18)

G2

	A {real-time} {expert system} from {Gensym Corporation}.

G3

	1. <protocol, compression> {Group 3} fax.

	2. <hardware, processor> {PowerPC G3}.

	(1998-09-10)

G4

	{Group 4}

GA

	{genetic algorithm}

ga

	<networking> The {country code} for Gabon.

	(1999-01-27)

Gabriel

	<language> A graphical {DSP} language for {simulation} and
	real systems.

	["A Design Tool for Hardware and Software for Multiprocessor
	DSP Systems," E.A.  Lee, E. Goei, J. Bier & S. Bhattacharya,
	DSP Systems, Proc ISCAS-89, 1989].

	[{Jargon File}]

	(1994-12-23)

gabriel

	/gay'bree-*l/ (After {Richard Gabriel}) An unnecessary (in the
	opinion of the opponent) stalling tactic, e.g. tying one's
	shoelaces or combing one's hair repeatedly, asking the time,
	etc.  Also used to refer to the perpetrator of such tactics.
	Also, "pulling a Gabriel", "Gabriel mode".

	[{Jargon File}]

	(1999-10-12)

Gabriel, Richard

	{Richard Gabriel}

GADS

	Picture retrieval language.  "Integrated Geographical
	Databases: The GADS Experience", P.E. Mantey et al, in
	Database Techniques for Pictorial Applications, A. Blaser ed,
	pp.193-198.

Gaelic

	For automated test programs.  Used in military, essentially
	replaced by ATLAS.

gag

	Equivalent to {choke}, but connotes more disgust. "Hey, this
	is Fortran code.  No wonder the C compiler gagged."  See also
	{barf}.

	[{Jargon File}]

GAIA

	GUI Application Interoperability Architecture.  An {OSF}
	project.

GAL

	<hardware> {Generic Array Logic}.

	(1995-12-09)

Galaxy

	<language> An extensible language in the vein of {EL/1} and
	{RCC}.

	["Introduction to the Galaxy Language", Anne F. Beetem et al,
	IEEE Software 6(3):55-62].

	(1995-12-09)

Galileo

	["Galileo: A Strongly Typed Interactive Conceptual Language",
	A.  Albano et al, ACM Trans Database Sys 10(2):230-260 (June
	1985)].

Gambit

	<language> A variant of {Scheme} R3.99 supporting the {future}
	construct of {Multilisp} by Marc Feeley
	<feeley@iro.umontreal.ca>.  Implementation includes optimising
	compilers for {Macintosh} (with Toolbox and built-in editor)
	and {Motorola} {680x0} {Unix} systems and {HP300}, {BBN}
	{GP100} and {NeXT}.  Version 2.0 conforms to the {IEEE}
	{Scheme} standard.

	Gambit used {PVM} as its intermediate language.

	{(ftp://acorn.cs.brandeis.edu/dist)},
	{(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f7/ff764/Gambit_Terp)}.
	{(ftp://ftp.iro.umontreal.ca/pub/parallele/gambit/)}.

	Mailing list: gambit@trex.umontreal.ca.

	(1998-02-10)

games

	<games> "The time you enjoy wasting is not time wasted." --
	{Bertrand Russell}.

	Here are some games-related pages on the {Web}: {Imperial
	Nomic (http://mit.edu:8001/people/achmed/fascist/)},
	{Thoth's games and recreations page
	(http://cis.ufl.edu/~thoth/library/recreation.html)},
	{Games Domain (http://wcl-rs.bham.ac.uk/GamesDomain)},
	{Zarf's	List of Games on the Web
	(http://leftfoot.com/games.html)},
	{Dave's list of pointers to games resources
	(http://wcl-rs.bham.ac.uk/~djh/index.html)},
	{Collaborative Fiction
	(http://asylum.cid.com/fiction/fiction.html)}.

	See also {3DO}, {ADL}, {ADVENT}, {ADVSYS}, {alpha/beta
	pruning}, {Amiga}, {CHIP-8}, {Core Wars}, {DROOL}, {empire},
	{I see no X here.}, {Infocom}, {Inglish}, {initgame}, {life},
	{minimax}, {moria}, {mudhead}, {multi-user Dimension},
	{nethack}, {ogg}, {plugh}, {rogue}, {SPACEWAR}, {virtual
	reality}, {wizard mode}, {wumpus}, {xyzzy}, {ZIL}, {zorkmid}.

	See also {game theory}.

	(1996-03-03)

game tree

	<games> A {tree} representing contingencies in a game.  Each
	{node} in a game tree represents a possible position (e.g.,
	possible configuration of pieces on a chessboard) in the game,
	and each branching ("edge" in graph terms) represents a
	possible move.

	(1998-11-14)

GAMMA

	<language> 1. A language for matrices and generation of
	mathematical programming reports.

	["GAMMA 3.3 for MPS/MPSX, IBM System:/360", Bonnor & Moore
	Assocs (Mar 1975)].

	2. A high-level parallel language.

	[Research Directions in High-Level Parallel Languages,
	LeMetayer ed, Springer 1992].

	(1994-11-29)

gamma correction

	<hardware> Adjustments applied during the display of a digital
	representation of colour on a screen in order to compensate
	for the fact that the {Cathode Ray Tubes} used in computer
	{monitors} (and televisions) produce a light intensity which
	is not proportional to the input {voltage}.  The light
	intensity is actually proportional to the input voltage raised
	to the inverse power of some constant, called gamma.  Its
	value varies from one display to another, but is usually
	around 2.5.

	Because it is more intuitive for the colour components (red,
	green and blue) to be varied linearly in the computer, the
	actual voltages sent to the monitor by the {display hardware}
	must be adjusted in order to make the colour component
	intensity on the screen proportional to the value stored in
	the computer's {display memory}.  This process is most easily
	achieved by a dedicated module in the display hardware which
	simply scales the outputs of the {display memory} before
	sending them to the {digital-to-analogue converters}.

	More expensive {graphics cards} and {workstations}
	(particularly those used for {CAD} applications) will have a
	gamma correction facility.

	In combination with the "{white-point}" gamma correction is
	used to achieve precise colour matching.

	{Robert Berger's explanation of monitor gamma
	(http://cs.cmu.edu/afs/cs.cmu.edu/user/rwb/www/gamma.html)}.

	[{"Digital Imaging in C and the World Wide Web", W. David
	Schwaderer (http://itknowledge.com/)}].

	(1999-02-01)

GAMS

	{Guide to Available Mathematical Software}

gamut

	The gamut of a {monitor} is the set of colours it can display.
	There are some colours which can't be made up of a mixture of
	red, green and blue phosphor emissions and so can't be
	displayed by any monitor.

	[Examples?]

	(1994-11-29)

GAN

	Generating and Analyzing Networks.  "GAN - A System for
	Generating and Analyzing Activity Networks", A. Schurmann,
	CACM 11(10) (Oct 1968).

GANDALF

	A software development environment from Carnegie Mellon
	University.

gang bang

	The use of large numbers of loosely coupled programmers in an
	attempt to wedge a great many features into a product in a
	short time.  Though there have been memorable gang bangs
	(e.g. that over-the-weekend assembler port mentioned in
	Steven Levy's "Hackers"), most are perpetrated by large
	companies trying to meet deadlines; the inevitable result is
	enormous buggy masses of code entirely lacking in
	{orthogonal}ity.  When market-driven managers make a list of
	all the features the competition has and assign one programmer
	to implement each, the probability of maintaining a coherent
	(or even functional) design goes infinitesimal.  See also
	{firefighting}, {Mongolian Hordes technique}, {Conway's Law}.

	[{Jargon File}]

GAP

	<mathematics, tool> Groups Algorithms and Programming.

	A system for {symbolic mathematics} for computational discrete
	algebra, especially group theory, by Johannes Meier, Alice
	Niemeyer, Werner Nickel, and Martin Schonert of Aachen.  GAP
	was designed in 1986 and implemented 1987.  Version 2.4 was
	released in 1988 and version 3.1 in 1992.

	{Sun version (ftp://ftp.math.rwth-aachen.de/pub/gap)}.

	["GAP 3.3 Manual, M. Schonert et al, Lehrstuhl D Math, RWTH
	Aachen, 1993].

	(1995-04-12)

GAPLog

	General Amalgamated Programming with Logic.  {LOGPRO} group,
	Linkoping Sweden.  A restricted version of {constraint logic
	programming}, using {S-unification} but not restricted to a
	single domain.

	[Chapter in forthcoming Springer book on ESPRIT]

garbageabetical order

	<humour> 1. The result of using an {insertion} sort to merge
	data into an unsorted list.

	2. The state of any file or list that is supposed to be
	sorted, but is not.

	(1997-02-11)

garbage collect

	{garbage collection}

garbage collection

	<programming> (GC) The process by which dynamically allocated
	storage is reclaimed during the execution of a program.  The
	term usually refers to automatic periodic storage reclamation
	by the garbage collector (part of the {run-time system}), as
	opposed to explicit code to free specific blocks of memory.

	Automatic garbage collection is usually triggered during
	memory allocation when the amount free memory falls below some
	threshold or after a certain number of allocations.  Normal
	execution is suspended and the garbage collector is run.
	There are many variations on this basic scheme.

	Languages like {Lisp} represent expressions as {graphs} built
	from {cells} which contain pointers and data.  These languages
	use automatic {dynamic storage allocation} to build
	expressions.  During the evaluation of an expression it is
	necessary to reclaim space which is used by subexpressions but
	which is no longer pointed to by anything.  This reclaimed
	memory is returned to the free memory pool for subsequent
	reallocation.

	Without garbage collection the program's memory requirements
	would increase monotonically throughout execution, possibly
	exceeding system limits on {virtual memory} size.

	The three main methods are {mark-sweep garbage collection},
	{reference counting} and {copying garbage collection}.

	See also the {AI koan} about garbage collection.

	(1997-08-25)

Garbage In, Garbage Out

	<humour> (GIGO) /gi:'goh/ {Wilf Hey}'s maxim expressing the
	fact that computers, unlike humans, will unquestioningly
	process nonsensical input data and produce nonsensical output.
	Of course a properly written program will reject input data
	that is obviously erroneous but such checking is not always
	easy to specify and is tedious to write.

	GIGO is usually said in response to {lusers} who complain that
	a program didn't "do the right thing" when given imperfect
	input or otherwise mistreated in some way.  Also commonly used
	to describe failures in human decision making due to faulty,
	incomplete, or imprecise data.

	The expansion "Garbage In, Gospel Out" is an ironic comment on
	the tendency to put excessive trust in "computerised" data.

	[{Jargon File}]

	(2004-10-03)

Gargoyle

	A language for compiler writing.

	[J.V. Garwick, CACM 7(1):16-20, (Jan 1964)].

	(1994-11-04)

Garnet

	1. A graphical object editor and {Macintosh} environment.

	2. A user interface development environment for {Common Lisp}
	and {X11} from The Garnet project team.  It helps you create
	graphical, interactive user interfaces.

	Version 2.2 includes the following: a custom {object-oriented
	programming} system which uses a {prototype-instance model}.
	automatic {constraint} maintenance allowing properties of
	objects to depend on properties of other objects and be
	automatically re-evaluated when the other objects change.  The
	constraints can be arbitrary Lisp expressions.  Built-in,
	high-level input event handling.  Support for {gesture
	recognition}.  {Widgets} for multi-font, multi-line,
	mouse-driven text editing.  Optional automatic layout of
	application data into lists, tables, trees or graphs.
	Automatic generation of {PostScript} for printing.  Support
	for large-scale applications and data {visualisation}.

	Also supplied are: two complete widget sets, one with a
	{Motif} {look and feel} implemented in {Lisp} and one with a
	custom {look and feel}.  Interactive design tools for creating
	parts of the interface without writing code: Gilt interface
	builder for creating {dialog box}es.  Lapidary interactive
	tool for creating new {widgets} and for drawing
	application-specific objects.  C32 {spreadsheet} system for
	specifying complex {constraints}.

	Not yet available: Jade automatic dialog box creation system.
	Marquise interactive tool for specifying behaviours.

	{(ftp://a.gp.cs.cmu.edu/usr/garnet/garnet)}.

	(1999-07-02)

GARP

	A graphical language for {concurrent} programming.

	["Visual Concurrent Programmint in GARP", S.K. Goering er al,
	PARLE '89 v.II, LNCS 366, pp. 165-180].

	(1994-11-03)

garply

	/gar'plee/ A {metasyntactic variable} like {foo}, once popular
	among {SAIL} hackers.

	[{Jargon File}]

	(1994-11-03)

Gartner Group

	<company> One of the biggest IT industry research firms.

	Address: Connecticut, USA.

	[URL?]

	(1997-09-30)

gas

	{GNU assembler}

GASP

	1. {Graph Algorithm and Software Package}.

	2. <simulation> {General Activities Simulation Program}.

	3. <simulation> {General Aerodynamic Simulation Program}.

	(2003-09-27)

gas plasma display

	<electronics> A type of display containing super-energised
	neon gas, used mostly in flat {monitor} and television
	{screens}.  Each {pixel} has a {transistor} that controls its
	colour and brightness.

	{Plasma
	(http://kipinet.com/mmp/mmp_apr96/dep_techwatch.html)}.
	{Flat Screen Technology
	(http://montegonet.com/plasma.html)}.  {More about Gas
	Plasma (http://advancedplasma.com/whatis.html)}.

	[How does it work?]

	(1998-04-30)

GAT

	Generalized Algebraic Translator.  Improved version of IT.  On
	IBM 650 RAMAC.

	[Sammet 1969, p. 142].

GATE

	GAT Extended?  Based on {IT}.

	[Sammet 1969, p. 139].

gate

	<hardware> A low-level {digital} logic component.  Gates
	perform {Boolean} {functions} (e.g. {AND}, {NOT}), store
	{bits} of data (e.g. a {flip-flop}), and connect and
	disconnect various parts of the overall circuit to control the
	flow of data ({tri-state} buffer).

	In a {CPU}, the term applies particularly to the buffers that
	route data between the various {functional units}.  Each gate
	allows data to flow from one unit to another or enables data
	from one output onto a certain {bus}.

	(1999-09-02)

gated

	/gayt-dee/ Gate daemon.

	A program which supports multiple routing {protocols} and
	protocol families.  It may be used for routing, and makes an
	effective {platform} for routing {protocol} research.

	{(ftp://gated.cornell.edu)}.

	See also {Exterior Gateway Protocol}, {Open Shortest Path
	First}, {Routing Information Protocol}, {routed}.

	(1994-12-07)

Gates

	{Bill Gates}

gateway

	1. <networking> A deprecated term for a device that enables
	data to flow between different networks (forming an
	{internet}).

	Preferred terms are "{protocol converter}" (connects networks
	that use different {protocols}), "{router}" (connects two
	broadcast networks at layer 3 ({network layer}).  Another
	example is a {mail gateway}, which is a layer 7 ({application
	layer}) gateway.

	2. <hypertext> An {interface} between an information source
	and a {World-Wide Web} {server}.  {Common Gateway Interface}
	is a {standard} for such interfaces.  The information source
	can be any system that can be accessed by a program running on
	the web server.  A typical example is a {relational
	database}.

	(2000-05-24)

Gateway 2000

	<company> One of the lagest US manufacturers of {IBM
	compatibles}, founded by CEO Ted Waitt in September 1985, in
	Sioux City, Iowa.  In 1990 the company moved to North Sioux
	City, South Dakota.

	In August 1994, quarterly profits were $4 million on sales of
	$617 million.  Sales for the first quarter of 1997 were $1.42
	billion.

	On 1997-05-15 Gateway bought the {Amiga} brand.

	{(http://gw2k.com/)}.

	(1998-07-30)

Gauss

	1. <person> {Carl Friedrich Gauss}.

	2. <statistics> Gaussian distribution.

	See {normal distribution}.

	3. <unit> The unit of magnetic field strength. 1 gauss = 1
	Maxwell / cm^2.

	A good loudspeaker coil magnet flux density is of the order of
	10000 gauss.

	4. <language> A powerful {matrix} programming language by
	{Aptech Systems}.  Gauss is very popular with econometricians.

	{(http://rhkoning.xs4all.nl/gauss/index.htm)}.

	(2003-10-25)

Gaussian distribution

	{normal distribution}

gawk

	<tool, language> {GNU} {awk}.  Gawk is a superset of standard
	awk and includes some {Plan 9} features.

	David Trueman and Arnold Robbins of {Georgia Institute of
	Technology} were developing it in 1993.  It has been ported to
	{Unix}, {MS-DOS}, {Macintosh}, and {Archimedes}.

	Latest version: 2.15.3, as of 1993-11-08.

	Available by {FTP} from your nearest {GNU archive site}.

	{Mac version
	(ftp://archive.umich.edu/mac/utilities/developerhelps/macgawk2.11.cpt.hqx)}.

	(2000-10-21)

GB

	<unit> {gigabytes} or {gigabits} - see {MB}.  Giga stands for
	10^9 - a US billion, or in computing for 2^30.

	The text of a thirty volume encyclopaedia would require about
	one gigabyte of {ASCII} storage.

	(1997-03-27)

Gb

	<unit> Gigabit.  10^9 {bits}.  Might also be wrongly used for
	{gigabyte} ({GB}).

	(1997-03-27)

gb

	<networking> (Great Britain) A {country code} for United
	Kingdom.  "{uk}" is generally used instead.

	(1999-01-27)

g-bell

	{bell}

GBIP

	{General Purpose Interface Bus}

GBML

	{Genetics Based Machine Learning}

gbps

	{gigabits per second}

GC

	1. {garbage collection}.

	2. A storage allocator with {garbage collection} by
	Hans-J. Boehm and Alan J. Demers.  Gc is a plug-in replacement
	for {C}'s {malloc}.  Since the collector does not require
	{pointers} to be tagged, it does not attempt to ensure that
	all inaccessible storage is reclaimed.

	Version 3.4 has been ported to {Sun-3}, {Sun-4}, {Vax}/{BSD},
	{Ultrix}, {Intel 80386}/{Unix}, {SGI}, {Alpha}/{OSF/1},
	{Sequent} (single threaded), {Encore} (single threaded),
	{RS/600}, {HP-UX}, {Sony News}, {A/UX}, {Amiga}, {NeXT}.

	{(ftp://parcftp.xerox.com/pub/russell/gc3.4.tar.Z)}.

	(2000-04-19)

GCAL

	<text, tool> The Cambridge {Phoenix} equivalent of {troff}.
	So called because all Cambridge utilities were named after
	birds, GCAL was a "run off" equivalent, and Geococcyx
	californianus is the Latin name of the roadrunner.  GCAL was
	eventually obsoleted by {TeX}.

	It is believed that even more obscure puns lurked in the
	depths of Phoenix.  Perhaps it is better they stayed there.

	(2003-12-05)

GCC

	<compiler, programming> The {GNU} {Compiler} Collection, which
	currently contains front ends for {C}, {C++}, {Objective-C},
	{Fortran}, {Java}, and {Ada}, as well as libraries for these
	languages (libstdc++, libgcj, etc).

	GCC formerly meant the GNU {C} compiler, which is a very high
	quality, very portable compiler for {C}, {C++} and {Objective
	C}.

	The compiler supports multiple {front-ends} and multiple
	{back-ends} by translating first into {Register Transfer
	Language} and from there into {assembly code} for the target
	architecture.

	{(http://gcc.gnu.org/)}.
	{Bug Reports (http://gcc.gnu.org/bugzilla/)}.
	{FTP} gcc-2.X.X.tar.gz from your nearest {GNU archive site}.
	{MS-DOS (ftp://oak.oakland.edu/pub/msdos/djgpp/)}.

	Mailing lists: gcc-help@gcc.gnu.org, gcc-announce@gcc.gnu.org
	(announcements).

	["Using and Porting GNU CC", R.M. Stallman, 1992-12-16].

	(2003-08-05)

GCL

	General Control Language.  A portable job control language.

	["A General Control Interface for Satellite Systems",
	R.J. Dakin in Command Languages, C. Unger ed, N-H 1973].

G-Code

	1. Johnsson & Augustsson, Chalmers Inst Tech.  Intermediate
	language used by the G-machine, an implementation of graph
	reduction based on supercombinators.  "Efficient Compilation
	of Lazy Evaluation", T. Johnsson, SIGPLAN Notices 19(6):58-69
	(June 1984).

	2. A machine-like language for the representation and
	interpretation of attributed grammars.  Used as an
	intermediate language by the Coco compiler generator.  "A
	Compiler Generator for Microcomputers", P. Rechenberg et al,
	P-H 1989.

GCOS

	<operating system> /jee'kohs/ An {operating system} developed
	by {General Electric} from 1962; originally called GECOS (the
	General Electric Comprehensive Operating System).

	The GECOS-II operating system was developed by {General
	Electric} for the 36-bit {GE-635} in 1962-1964.  Contrary to
	rumour, GECOS was not cloned from {System/360} [{DOS/360}?] -
	the GE-635 architecture was very different from the {IBM 360}
	and GECOS was more ambitious than DOS/360.

	GE Information Service Divsion developed a large special
	multi-computer system that was not publicised because they did
	not wish {time sharing} customers to challenge their bills.
	Although GE ISD was marketing {DTSS} - the first commercial
	time sharing system - GE Computer Division had no license from
	Dartmouth and GE-ISD to market it to external customers, so
	they designed a time-sharing system to sell as a standard part
	of GECOS-III, which replaced GECOS-II in 1967.  GECOS TSS was
	more general purpose than DTSS, it was more a programmer's
	tool (program editing, e-mail on a single system) than a BASIC
	TSS.

	The {GE-645}, a modified 635 built by the same people, was
	selected by {MIT} and {Bell} for the {Multics} project.
	Multics' infancy was as painful as any infancy.  Bell pulled
	out in 1969 and later produced {Unix}.

	After the buy-out of GE's computer division by {Honeywell},
	GECOS-III was renamed GCOS-3 (General Comprehensive Operating
	System).  Other OS groups at Honeywell began referring to it
	as "God's Chosen Operating System", allegedly in reaction to
	the GCOS crowd's uninformed and snotty attitude about the
	superiority of their product.  [Can anyone confirm this?]
	GCOS won and this led in the orphaning and eventual death of
	Honeywell {Multics}.

	Honeywell also decided to launch a new product line called
	Level64, and later DPS-7.  It was decided to mainatin, at
	least temporarily, the 36-bit machine as top of the line,
	because GCOS-3 was so successfull in the 1970s.  The plan in
	1972-1973 was that GCOS-3 and Multics should converge.  This
	plan was killed by Honeywell management in 1973 for lack of
	resources and the inability of Multics, lacking {databases}
	and {transaction processing}, to act as a business operating
	system without a substantial reinvestment.

	The name "GCOS" was extended to all Honeywell-marketed product
	lines and GCOS-64, a completely different 32-bit operating
	system, significanctly inspired by Multics, was designed in
	France and Boston.  GCOS-62, another different 32-bit low-end
	DOS level was designed in Italy.  GCOS-61 represented a new
	version of a small system made in France and the new {DPS-6}
	16-bit {minicomputer} line got GCOS-6.

	When the intended merge between GCOS-3 and Multics failed, the
	Phoenix designers had in mind a big upgrade of the
	architecture to introduce {segmentation} and {capabilities}.
	GCOS-3 was renamed GCOS-8, well before it started to use the
	new features which were introduced in next generation
	hardware.

	The GCOS licenses were sold to the Japanese companies {NEC}
	and {Toshiba} who developed the Honeywell products, including
	GCOS, much further, surpassing the {IBM 3090} and {IBM 390}.

	When Honeywell decided in 1984 to get its top of the range
	machines from NEC, they considered running Multics on them but
	the Multics market was considered too small.  Due to the
	difficulty of porting the ancient Multics code they considered
	modifying the NEC hardware to support the Multics compilers.

	GCOS3 featured a good {Codasyl} {database} called IDS
	(Integrated Data Store) that was the model for the more
	successful {IDMS}.

	Several versions of transaction processing were designed for
	GCOS-3 and GCOS-8.  An early attempt at TP for GCOS-3, not
	taken up in Europe, assumed that, as in {Unix}, a new process
	should be started to handle each transaction.  IBM customers
	required a more efficient model where multiplexed {threads}
	wait for messages and can share resources.  Those features
	were implemented as subsystems.

	GCOS-3 soon acquired a proper {TP monitor} called Transaction
	Driven System (TDS).  TDS was essentially a Honeywell
	development.  It later evolved into TP8 on GCOS-8.  TDS and
	its developments were commercially successful and predated IBM
	{CICS}, which had a very similar architecture.

	GCOS-6 and GCOS-4 (ex-GCOS-62) were superseded by {Motorola
	68000}-based {minicomputers} running {Unix} and the product
	lines were discontinued.

	In the late 1980s Bull took over Honeywell and Bull's
	management chose Unix, probably with the intent to move out of
	hardware into {middleware}.  Bull killed the Boston proposal
	to port Multics to a platform derived from DPS-6.  Very few
	customers rushed to convert from GCOS to Unix and new machines
	(of CMOS technology) were still to be introduced in 1997 with
	GCOS-8.  GCOS played a major role in keeping Honeywell a
	dismal also-ran in the {mainframe} market.

	Some early Unix systems at {Bell Labs} used GCOS machines for
	print spooling and various other services.  The field added to
	"/etc/passwd" to carry GCOS ID information was called the
	"{GECOS field}" and survives today as the "pw_gecos" member
	used for the user's full name and other human-ID information.

	[{Jargon File}]

	(1998-04-23)

GCOS Macro Assembler Program

	<language> (GMAP) The {macro assembler} for the {GCOS 8}
	{operating system} on {Honeywell}/{Bull} {DPS-8} computers.

	["GCOS8 OS GMAP User's Guide", Bull].

	(2009-01-14)

GCR

	{Group Code Recording}

GCT

	<programming, tool> A {test-coverage} tool by Brian Marick
	<marick@testing.com>, based on {GNU C}.  Version 1.4 was
	ported to {Sun-3}, {Sun-4}, {RS/6000}, {68000}, {88000},
	{HP-PA}, {IBM 3090}, {Ultrix}, {Convex}, {SCO} but not
	{Linux}, {Solaris}, or {Microsoft Windows}.

	Commercial support is available from the author (+1 217 351
	7228).

	{(ftp://cs.uiuc.edu/pub/testing/gct.file/)}.

	(1999-07-08)

gd

	<networking> The {country code} for Grenada.

	(1999-01-27)

GDA

	<application> (Genetic Data Analysis) A program by Paul
	O. Lewis and Dmitri Zaykin, designed to accompany the
	referenced book, that computes linkage and hardy-weinberg
	disequilibrium and some genetic distances, and provides
	method-of-moments estimators for hierarchical F-statistics.

	A command-line version by Chris Basten runs under Mac OS.

	["Genetic Data Analysis" by Bruce S. Weir, 1996, Sinaur
	Associates].

	(2009-10-15)

GDB

	<programming, tool> {GNU} debugger.  The {FSF}'s {source-level
	debugger} for {C}, {C++} and other languages.  Developed by
	many people but most recently Fred Fish <fnf@cygnus.com>, Stu
	Grossman <grossman@cygnus.com> and {John Gilmore}
	<gnu@cygnus.com> all of {Cygnus} Support.  GDB fills the same
	niche as {dbx}.  Programs must be compiled to include
	debugging symbols.

	Version 4.11.  Distributed under {GNU} {CopyLeft}.  It runs on
	most {Unix} variants, {VMS}, {VXWorks}, {Amiga} and {MS-DOS}.

	FTP gdb-*.tar.[zZ] from a {GNU archive site}.
	E-mail: <bug-gdb@gnu.org> (bug reports).

	(1993-10-29)

GDBPSK

	{Gaussian Differential Binary Phase-Shift Keying}

Gödel, Kurt

	{Kurt Gödel}

GDI

	{Graphic Display Interface}

GDMO

	Guidelines for the Definition of Managed Objects.

	A standard (ISO/IEC 10165-4) for defining data models on ASN.1

GDPL

	Generalized Distributed Programming Language.  "GDPL - A
	Generalized Distributed Programming Language", K. Ng et al,
	Proc 4th Intl Conf Distrib Comp Sys, IEEE 1984, pp.69-78.

GE

	{General Electric}

ge

	<networking> The {country code} for Georgia.

	(1999-01-27)

GE-645

	<computer> A computer built by {General Electric}, the
	successor to the {GE-635}, designed to provide the extra CPU
	features required by the {Multics} project.

	The GE-645 was designed in 1965 by John Couleur and Edward
	Glaser at MIT.  It had several security levels and
	instructions for handling {virtual memory}.  Addressing used
	an 18-bit segment in addition to the 18-bit address,
	dramatically increasing the theoretical memory size and making
	virtual memory easier to support.

	Design of the GE-645's successor, the {GE-655}, started in 1967.

	(2006-09-24)

GEA

	Graph Extended ALGOL.  Extension of ALGOL 60 for graph
	manipulation, on UNIVAC 1108.  "A Language for Treating
	Graphs", S. Crespi-Reghizzi et al, CACM 13(5) (May 1970).

GEANT

	A simulation, tracking and drawing package for HEP.

GECOM

	<language> A language for the {GE-255} series, like {COBOL}
	with some {ALGOL} features added, in use around 1964-5.  GECOM
	included many of the early COBOL constructs including {report
	writer} and {TABSOL} (programming by {truth table}).  Another
	(planned but unimplemented?) component was {FRINGE}.

	[Sammet 1969, p. 329].

	[Dates?]

	(1996-09-15)

GECOS

	{GCOS}

Gedanken

	John Reynolds, 1970.  "GEDANKEN - A Simple Typeless Language
	Based on the Principle of Completeness and the Reference
	Concept", J.C.  Reynolds, CACM 13(5):308-319 (May 1970).

	[{Jargon File}]

gedanken

	/g*-dahn'kn/ Ungrounded; impractical; not well-thought-out;
	untried; untested.

	"Gedanken" is a German word for "thought".  A thought
	experiment is one you carry out in your head.  In physics, the
	term "gedanken experiment" is used to refer to an experiment
	that is impractical to carry out, but useful to consider
	because it can be reasoned about theoretically.  (A classic
	gedanken experiment of relativity theory involves thinking
	about a man in an elevator accelerating through space.)
	Gedanken experiments are very useful in physics, but must be
	used with care.  It's too easy to idealise away some important
	aspect of the real world in constructing the "apparatus".

	Among hackers, accordingly, the word has a pejorative
	connotation.  It is typically used of a project, especially
	one in artificial intelligence research, that is written up in
	grand detail (typically as a Ph.D.  thesis) without ever being
	implemented to any great extent.  Such a project is usually
	perpetrated by people who aren't very good hackers or find
	programming distasteful or are just in a hurry.  A "gedanken
	thesis" is usually marked by an obvious lack of intuition
	about what is programmable and what is not, and about what
	does and does not constitute a clear specification of an
	algorithm.  See also {AI-complete}, {DWIM}.

geef

	(Ostensibly from "gefingerpoken") {mung}.

	See also {blinkenlights}.

	[{Jargon File}]

	(1995-01-18)

geek

	{computer geek}

geek out

	To temporarily enter techno-nerd mode while in a non-hackish
	context, for example at parties held near computer equipment.
	Especially used when you need to do or say something highly
	technical and don't have time to explain: "Pardon me while I
	geek out for a moment."

	See {computer geek}, {propeller head}.

	[{Jargon File}]

	(1995-01-18)

GEI

	A German software engineering company.

GE Information Services

	<networking, company> One of the leading on-line services,
	started on 1st October 1985, providing subscribers with
	hundreds of special interest areas, computer hardware and
	software support, award-winning multi-player games, the most
	software files in the industry (over 200 000), worldwide news,
	sports updates, business news, investment strategies, and
	{Internet} {electronic mail} and fax (GE Mail).  Interactive
	conversations (Chat Lines) and {bulletin boards} (Round
	Tables) with associated software archives are also provided.

	GEnie databases (through the ARTIST gateway) allow users to
	search the full text of thousands of publications, including
	Dun & Bradstreet Company Profiles; a GEnie NewsStand with more
	than 900 newspapers, magazines, and newsletters; a Reference
	Center with information ranging from Agriculture to World
	History; the latest in medical information from MEDLINE; and
	patent and trademark registrations.

	{(http://genie.com/)}.  {Shopping 2000
	(http://shopping2000.com/shopping2000/genie/)}.

	Telephone: +1 (800) 638 9636.

	TDD: +1 (800) 238 9172.

	E-mail: <info@genie.geis.com>.

	[Connection with: GE Information Services, Inc., a division of
	General Electric Company, Headquarters: Rockville, Maryland,
	USA?]

	(1995-04-13)

GEM

	<operating system> One of the first commercially available
	{GUIs}.  Borrowing heavily from the {Macintosh} {WIMP}-style
	interface it was available for both the {IBM} compatible
	market (being packaged with {Amstrad}'s original {PC} series)
	and more successfully for the {Atari} ST range.  The PC
	version was produced by {Digital Research} (more famous for
	{DR-DOS}, their {MS-DOS} clone), and was not developed very
	far.  The Atari version, however, continued to be developed
	until the early 1990s and the later versions supported 24-bit
	colour modes, full colour {icons} and a nice looking sculpted
	3D interface.

	(1997-01-10)

gen

	{generate}

gender mender

	<hardware> (Or "gender bender", "gender blender", "sex
	changer", and even "homosexual adaptor") A cable connector
	shell with either two male or two female connectors on it,
	used to correct the mismatches that result when some {loser}
	didn't understand the {EIA-232C} specification and the
	distinction between {DTE} and {DCE}.  Used especially for
	EIA-232C parts in either the original {D-25} or the {IBM PC}'s
	{D-9} connector.

	There appears to be some confusion as to whether a "male
	homosexual adaptor" has pins on both sides (is doubly male) or
	sockets on both sides (connects two males).

	[{Jargon File}]

	(1995-04-16)

Gene Amdahl

	<person> A former {IBM} engineer who founded {Amdahl
	Corporation}.

	(1995-05-23)

General Activities Simulation Program

	<simulation, library> (GASP) A set of {discrete system}
	{simulation} {subroutines} for {Fortran}.

	(2003-09-27)

General Aerodynamic Simulation Program

	<simulation> (GASP)

	{(http://aerosft.com/Gasp/References/main.php3)}.

	[Summary?]

	(2003-09-27)

General Dynamics Canada Ltd

	<company> A Canadian defence electronics company that makes direct
	and indirect fire control {systems}, vehicle electronics,
	reconnaissance vehicle surveillance systems, computerised laser
	sight for anti-tank weapons, tactical {communication systems},
	headquarters information distribution system, tactical voice and
	distribution systems, acoustic signal processing, ASW mission
	systems, sonobuoy {processors}, active sonar systems, towed array
	sonar systems, tactical acoustic trainer, {Mil-Spec}
	{electroluminiscent displays}, large multi-sensor displays,
	coastal intrusion detection systems and {fibre-optic} distribution
	systems.

	The company was founded in 1948 as "Computing Devices Canada
	Ltd.", part of the Ceridian group of companies.  It was renamed
	General Dynamics Canada Ltd. on 2002-01-01.

	{General Dynamics Canada (http://www.gdcanada.com/)}.

	(2013-01-20)

General Electric

	<company> (GE) A US company that manufactured computers from
	1956 until 1970, when it sold its computer division to
	{Honeywell} and left the computer business.  Notable GE
	computers were the {GE-265}, which supported the {Dartmouth
	Time-sharing System} (DTSS), and the {GE-645} used for
	{Multics} development.

	See also {GCOS}.

	Not to be confused with the General Electric Company (GEC) in
	the UK (where FOLDOC's first seeds were sown).

	(2002-02-27)

General Electric Comprehensive Operating System

	{GCOS}

General Magic

	A software company based in Mountain View, California.
	Products released in 1994 after four years in development
	include: {Telescript} - a communications-oriented programming
	language; {Magic Cap} - an {OOPS} designed for {PDAs}; and a
	new, third generation {GUI}.  {Motorola}'s {Envoy}, due for
	release in the third quarter of 1994, will use {Magic Cap} as
	its {OS}.

	What {PostScript} did for cross-{platform}, device-independent
	documents, Telescript aims to do for cross-{platform},
	network-independent messaging.  Telescript protects
	programmers from many of the complexities of network
	protocols.

	Competitors for Magic Cap include {Microsoft}'s {Windows for
	Pens}/{Winpad}, {PenPoint}, {Apple Computer}'s {Newton
	Intelligence} and {GEOS} by {GeoWorks}.

	{(http://genmagic.com/)}.

	(1995-02-23)

General Packet Radio Service

	<communications> (GPRS) A {GSM} data transmission technique
	that does not set up a continuous channel from a portable
	terminal for the transmission and reception of data, but
	transmits and receives data in {packets}.  It makes very
	efficient use of available radio spectrum, and users pay only
	for the volume of data sent and received.

	See also: {packet radio}.

	(1999-09-12)

General Protection Failure

	(GPF, or General Protection Fault) An addressing error, caught
	by the processor's {memory protection} hardware, that cannot
	be attributed to any expected condition such as a {page
	fault}.

	(1995-03-28)

General Protection Fault

	{General Protection Failure}

General Public Licence

	<spelling> It's spelled "{General Public License}".

	(In the UK, "licence" is a noun and "license" is a verb (like
	"advice"/"advise") but in the US both are spelled "license").

	(1995-05-12)

General Public License

	<legal> (GPL, note US spelling) The licence applied to most
	{software} from the {Free Software Foundation} and the {GNU}
	project and other authors who choose to use it.

	The licences for most software are designed to prevent users
	from sharing or changing it.  By contrast, the GNU General
	Public License is intended to guarantee the freedom to share
	and change {free software} - to make sure the software is free
	for all its users.  The GPL is designed to make sure that
	anyone can distribute copies of free software (and charge for
	this service if they wish); that they receive source code or
	can get it if they want; that they can change the software or
	use pieces of it in new free programs; and that they know they
	can do these things.  The GPL forbids anyone to deny others
	these rights or to ask them to surrender the rights.  These
	restrictions translate to certain responsibilities for those
	who distribute copies of the software or modify it.

	See also {General Public Virus}.

	(1994-10-27)

General Public Virus

	<software, legal> A pejorative name for some versions of the
	{GNU} project {copyleft} or {General Public License} (GPL),
	which requires that any tools or {application programs}
	incorporating copylefted code must be source-distributed on
	the same terms as GNU code.  Thus it is alleged that the
	copyleft "infects" software generated with GNU tools, which
	may in turn infect other software that reuses any of its code.

	{Copyright} law limits the scope of the GPL to "programs
	textually incorporating significant amounts of GNU code" so
	GPL is only passed on if actual GNU source is transmitted.
	This used to be the case with the {Bison} {parser} skeleton
	until its licence was fixed.

	{(http://org.gnu.de/manual/bison/html_chapter/bison_2.html#SEC2)}.

	[{Jargon File}]

	(1999-07-14)

General Purpose Graphic Language

	["A General Purpose Graphic Language", H.E. Kulsrud, CACM
	11(4) (Apr 1968)].

General Purpose Interface Bus

	{IEEE 488}

General Purpose Language

	(GPL) An {ALGOL 60} variant with user-definable types and
	operators.

	[Sammet 1969, p. 195].

	["The GPL Language", J.V. Garwick et al, TER-05, CDC, Palo
	Alto 1969].

General Purpose Macro-generator

	<language> (GPM) An early text-processing language similar to
	{TRAC}, implemented on the {Atlas 2} by {Christopher
	Strachey}.

	["A General Purpose Macrogenerator", C. Strachey, Computer J
	8(3):225-241, Oct 1965].

	(2006-07-21)

General Recursion Theorem

	<mathematics> {Cantor}'s {theorem}, originally stated for
	{ordinals}, which extends {inductive} proof to {recursive}
	construction.  The proof is by pasting together "attempts"
	(partial solutions).

	[Better explanation?]

	(1995-06-15)

generate

	To produce something according to an {algorithm} or program or
	set of rules, or as a (possibly unintended) {side effect} of
	the execution of an algorithm or program.

	The opposite of {parse}.

	[{Jargon File}]

	(1995-06-15)

generation

	An attempt to classify the degree of sophistication of
	programming languages.

	See {First generation language} -- {Fifth generation
	language}.

	(1995-06-15)

Generic Array Logic

	<hardware, integrated circuit> (GAL) A newer kind of
	{Programmable Array Logic} based on {EEPROM} storage cells,
	been pioneered by {Lattice}.  GALs can be erased and
	reprogrammed and usually replace a whole set of different PALs
	(hence the name).

	(1995-12-09)

Generic Expert System Tool

	<artificial intelligence> (GEST) An {expert system shell} for
	{Symbolics} {Lisp machine}, with {frames}, {forward chaining},
	{backward chaining} and {fuzzy logic}; written by {John
	Gilmore}(?) at GA Tech.

	Latest version: 4.0, as of 1995-04-16.

	{(ftp://ftp.gatech.edu/pub/ai/gest.tar.Z)}.

	(1995-04-16)

generic identifier

	<language, text> A string constituting the name of a {element}
	in an {SGML} {document}.

	(2001-01-31)

genericity

	<programming> The possibility for a language to provided
	parameterised {modules} or types.  E.g. List(of:Integer) or
	List(of:People).

	(1996-05-19)

generic markup

	<text> In computerised document preparation, a method of
	adding information to the text indicating the logical
	components of a document, such as paragraphs, headers or
	footnotes.  {SGML} is an example of such a system.  Specific
	instructions for layout of the text on the page do not appear
	in the markup.

	(1996-05-19)

generic programming

	<programming> A programming technique which aims to make
	programs more adaptable by making them more general.  Generic
	programs often embody non-traditional kinds of {polymorphism};
	ordinary programs are obtained from them by suitably
	instantiating their parameters.  In contrast with normal
	programs, the parameters of a generic programs are often quite
	rich in structure.  For example they may be other programs,
	{types} or {type constructors} or even programming
	{paradigms}.

	(1997-11-22)

Generic Routing Encapsulation

	<networking, protocol> (GRE) A {protocol} which allows an
	arbitrary network protocol A to be transmitted over any other
	arbitrary network protocol B, by encapsulating the {packets}
	of A within GRE packets, which in turn are contained within
	packets of B.

	Defined in {RFC 1701} and {RFC 1702} (GRE over IP).

	(1998-07-19)

Generic Security Service Application Programming Interface

	<security, programming> (GSS-API) An application level
	interface ({API}) to system security services.  It provides a
	generic interface to services which may be provided by a
	variety of different security mechanisms.  {Vanilla} GSS-API
	supports {security contexts} between two entities (known as
	"principals").

	GSS-API is a draft internet standard which is being developed
	in the {Common Authentication Technology Working Group}
	(cat-wg) of the {Internet Engineering Task Force} (IETF).

	Initial specifications for GSS-API appeared in {RFC 1508} and
	{RFC 1509}.  Subsequent revisions appeared in several draft
	standards documents.

	{(http://dstc.qut.edu.au/~barton/work/project.html)}.

	(1996-05-19)

generic thunk

	<programming> A software mechanism that allows a 16-bit
	{Windows} application to load and call a {Win32} {DLL} under
	{Windows NT} and {Windows 95}.

	See also {flat thunk}, {universal thunk}.

	(1999-04-05)

generic type variable

	<programming> (Also known as a "schematic type variable").
	Different occurrences of a generic type variable in a type
	expression may be instantiated to different types.  Thus, in
	the expression

		let id x = x in
		(id True, id 1)

	id's type is (for all a: a -> a).  The universal {quantifier}
	"for all a:" means that a is a generic type variable.  For the
	two uses of id, a is instantiated to Bool and Int.  Compare
	this with

		let id x = x in
		let f g = (g True, g 1) in
		f id

	This looks similar but f has no legal {Hindley-Milner type}.
	If we say

		f :: (a -> b) -> (b, b)

	this would permit g's type to be any instance of (a -> b)
	rather than requiring it to be at least as general as (a ->
	b).  Furthermore, it constrains both instances of g to have
	the same result type whereas they do not.  The type variables
	a and b in the above are implicitly quantified at the top
	level:

		f :: for all a: for all b: (a -> b) -> (b, b)

	so instantiating them (removing the {quantifiers}) can only be
	done once, at the top level.  To correctly describe the type
	of f requires that they be locally quantified:

		f :: ((for all a: a) -> (for all b: b)) -> (c, d)

	which means that each time g is applied, a and b may be
	instantiated differently.  f's actual argument must have a
	type at least as general as ((for all a: a) -> (for all b:
	b)), and may not be some less general instance of this type.
	Type variables c and d are still implicitly quantified at the
	top level and, now that g's result type is a generic type
	variable, any types chosen for c and d are guaranteed to be
	instances of it.

	This type for f does not express the fact that b only needs to
	be at least as general as the types c and d.  For example, if
	c and d were both Bool then any function of type (for all a: a
	-> Bool) would be a suitable argument to f but it would not
	match the above type for f.

Genesia

	An {expert system} developed by Electricite de France and
	commercialised by {STERIA} (Paris).

genetic algorithm

	(GA) An {evolutionary algorithm} which generates each
	individual from some encoded form known as a "chromosome" or
	"genome".  Chromosomes are combined or mutated to breed new
	individuals.  "Crossover", the kind of recombination of
	chromosomes found in sexual reproduction in nature, is often
	also used in GAs.  Here, an offspring's chromosome is created
	by joining segments choosen alternately from each of two
	parents' chromosomes which are of fixed length.

	GAs are useful for multidimensional optimisation problems in
	which the chromosome can encode the values for the different
	variables being optimised.

	{Illinois Genetic Algorithms Laboratory
	(http://GAL4.GE.UIUC.EDU/illigal.home.html)} (IlliGAL).

	(1995-02-03)

genetic algorithms

	{genetic algorithm}

genetic programming

	<programming> (GP) A programming technique which extends the
	{genetic algorithm} to the domain of whole computer programs.
	In GP, populations of programs are genetically bred to solve
	problems.  Genetic programming can solve problems of system
	identification, classification, control, robotics,
	optimisation, game playing, and {pattern recognition}.

	Starting with a primordial ooze of hundreds or thousands of
	randomly created programs composed of functions and terminals
	appropriate to the problem, the population is progressively
	evolved over a series of generations by applying the
	operations of Darwinian fitness proportionate reproduction and
	crossover (sexual recombination).

	(1995-03-31)

GEnie Services

	{GE Information Services}

Genken Programming Language

	<language> (GPL) A variant of {PL360} by K. Asai of the Japan
	Atomic Energy Research Institute.

	["Experience With GPL", K. Asai, in Machine Oriented Higher
	Level Languages, W. van der Poel, N-H 1974, pp. 371-376].

	(1995-04-13)

GENOVA

	An old statistical package still in use on some {VM}
	computers.

	(1995-11-28)

gensym

	<library> /jen'sim/ (From the {MacLISP} for "generated
	symbol") To invent a new name for something temporary, in
	such a way that the name is almost certainly not in conflict
	with one already in use.

	The canonical form of a gensym is "Gnnnn" where nnnn
	represents a number; any {LISP} {hacker} would recognise G0093
	(for example) as a gensym.  Gensymmed names are useful for
	storing or uniquely identifying crufties.

	[{Jargon File}]

	(1999-10-31)

Gensym Corporation

	<company> A company that supplies software and services for
	intelligent operations management.  Common applications
	include quality management, process optimisation, dynamic
	scheduling, network management, energy and environmental
	management, and process modelling and simulation.

	Their products include {G2}.

	{(http://gensym.com/)}.

	(1999-10-31)

Gensym Standard Interface

	<programming> (GSI) A set of {C} libraries and programming
	tools used to interface {G2} to external systems.
	Commercially available bridges are available to {SCADA}
	systems and {PLCs}.

	(1997-02-11)

Gentleman's Portable Coroutine System

	A {coroutine} package in {Fortran}.

	["A Portable Coroutine System", W.M. Gentleman, Info Proc 71,
	C.V. Freiman ed, 1972].

	(1995-02-01)

GEN-X

	An expert system developed by General Electric.

Geographical Information System

	{Geographic Information System}

	[Which is more common?]

	(1995-12-21)

Geographic Information System

	<application> (GIS) A computer system for capturing, storing,
	checking, integrating, manipulating, analysing and displaying
	data related to positions on the Earth's surface.  Typically,
	a GIS is used for handling maps of one kind or another.  These
	might be represented as several different layers where each
	layer holds data about a particular kind of feature
	(e.g. roads).  Each feature is linked to a position on the
	graphical image of a map.

	Layers of data are organised to be studied and to perform
	statistical analysis (i.e. a layer of customer locations could
	include fields for Name, Address, Contact, Number, Area).
	Uses are primarily government related, town planning, local
	authority and public utility management, environmental,
	resource management, engineering, business, marketing, and
	distribution.

	{GIS dictionary
	(http://geo.ed.ac.uk/root/agidict/html/welcome.html)}.

	{(http://ncl.ac.uk/~ngraphic/wotzagis.html)}.

	(1995-12-21)

geometric mean

	<mathematics> The Nth {root} of the {product} of N numbers.

	If each number in a list of numbers was replaced with their
	geometric mean, then multiplying them all together would still
	give the same result.  The geometric mean thus gives an
	average "factor" in a context where numbers are multiplied
	together, e.g. compound interest.

	{Wolfram (http://mathworld.wolfram.com/GeometricMean.html)}.

	(2007-03-16)

GEORGE

	<language> One of the earliest programming languages,
	developed by Charles Hamblin in 1957.  GEORGE was a {stack
	oriented language}, using {reverse Polish notation}.  It was
	implemented on the {English Electric} {DEUCE}.

	["GEORGE: A Semi-Translation Programming Scheme for the DEUCE,
	Programming and Operations Manual", C. L. Hamblin, U New S
	Wales, 1958].

	["Computer Languages", C.L. Hamblin, Aust J Sci 20(5):135-139,
	Dec 1957 and Aust Comp J 17(4):195-198, Nov 1985]

	(2007-03-18)

GEORGE 3

	<operating system> The {operating system} for the {ICL 1900}
	{mainframe}.  Lots of two-letter commands.

	(2003-09-20)

George Boole

	<person> 1815-11-02 - 2008-05-11 22:58
	best known for his contribution to symbolic logic ({Boolean
	Algebra}) but also active in other fields such as probability
	theory, {algebra}, analysis, and differential equations.  He
	lived, taught, and is buried in Cork City, Ireland.  The Boole
	library at University College Cork is named after him.

	For centuries philosophers have studied logic, which is
	orderly and precise reasoning.  George Boole argued in 1847
	that logic should be allied with mathematics rather than with
	philosophy.

	Demonstrating logical principles with mathematical symbols
	instead of words, he founded {symbolic logic}, a field of
	mathematical/philosophical study.  In the new discipline he
	developed, known as {Boolean algebra}, all objects are divided
	into separate classes, each with a given property; each class
	may be described in terms of the presence or absence of the
	same property.  An electrical circuit, for example, is either
	on or off.  Boolean algebra has been applied in the design of
	{binary} computer circuits and telephone switching equipment.
	These devices make use of Boole's two-valued (presence or
	absence of a property) system.

	Born in Lincoln, Lincolnshire, UK, George Boole was the son of
	a tradesman and was largely self-taught.  He began teaching at
	the age of 16 to help support his family.  In his spare time
	he read mathematical journals and soon began to write articles
	for them.  By the age of 29, Boole had received a gold medal
	for his work from the British Royal Society.  His
	'Mathematical Analysis of Logic', a pamphlet published in
	1847, contained his first statement of the principles of
	symbolic logic.  Two years later he was appointed professor of
	mathematics at Queen's College in Ireland, even though he had
	never studied at a university.

	He died in Ballintemple, Ireland, on 1864-12-08.

	{Compton's Encyclopedia Online
	(http://comptons2.aol.com/encyclopedia/ARTICLES/00619_A.html)}.

	(1998-11-19)

Georg Simon Ohm

	<person> (1789-1854) A German physicist who became Professor
	of Physics at Munich University, after whom the unit of
	electrical resistance was named.

	(2003-12-02)

GEOS

	A small windowing, {microkernel} (less than 64 kbytes long)
	operating system written in heavily {bum}med {assembly
	language} for {MS-DOS} computers.  It {multitasks} rather
	nicely on a 6 Mhz {Intel 80286} with at least 512K memory.

	It was adapted to {PDAs} by adding pen recognition, which
	doesn't work very well.

	{Usenet} newsgroup: {news:comp.os.geos}.

	(1995-01-21)

GEPURS

	An early system on the {IBM 701}.

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

	(1995-01-21)

Gerald

	["Gerald: An Exceptional Lazy Functional Programming
	Language", A.C. Reeves et al, in Functional Programming,
	Glasgow 1989, K. Davis et al eds, Springer 1990].

	(1995-01-10)

Gerald Sussman

	<person> (Gerald J. Sussman, Jerry) A noted {hacker} at {MIT}
	and one of the developers of {SCHEME} and {6.001}.

	{(http://martigny.ai.mit.edu/~gjs/gjs.html)}.

	(1996-11-29)

German

	<human language> \j*r'mn\ A human language written (in latin
	alphabet) and spoken in Germany, Austria and parts of
	Switzerland.

	German writing normally uses four non-{ASCII} characters: "ä", "ö"
	and "ü" have "umlauts" (two dots over the top) and "ß" is a
	double-S ("scharfes S") which looks like the Greek letter beta
	(except in capitalised words where it should be written "SS").
	These can be written in ASCII in several ways, the most common are
	ae, oe ue AE OE UE ss or sz and the {TeX} versions "a "o "u "A "O
	"U "s.

	See also {ABEND}, {blinkenlights}, {DAU}, {DIN}, {gedanken},
	{GMD}, {kluge}.

	{Usenet} newsgroup: {news:soc.culture.german}.
	{(ftp://src.doc.ic.ac.uk/usenet/news-info/soc.answers/german-faq)},
	{(ftp://alice.fmi.uni-passau.de/pub/dictionaries/german.dat.Z)}.

	(1995-03-31)

GEST

	{Generic Expert System Tool}

Get a life!

	<abuse> Standard way of suggesting that someone has succumbed
	to terminal {geek}dom.  Often heard on {Usenet}, especially as
	a way of suggesting that the target is taking some obscure
	issue of {theology} too seriously.  This exhortation was
	popularised by William Shatner on a "Saturday Night Live"
	episode in a speech that ended "Get a *life*!", but some
	respondents believe it to have been in use before then.  It
	was certainly in wide use among hackers for at least five
	years before achieving mainstream currency in early 1992.

	[{Jargon File}]

	(1995-01-18)

Get a real computer!

	<jargon> A typical {hacker} response to news that somebody is
	having trouble getting work done on a {toy} system or {bitty
	box}.

	The threshold for "real computer" rises with time.  As of
	mid-1993 it meant {multi-tasking}, with a {hard disk}, and an
	{address space} bigger than 16 {megabytes}.  At this time,
	according to {GLS}, computers with character-only displays
	were verging on "unreal".  In 2001, a real computer has a one
	{gigahertz} processor, 128 MB of {RAM}, 20 GB of hard disk,
	and runs {Linux}.

	[{Jargon File}]

	(2001-06-22)

get.com

	<operating system> A command which can be created using debug
	in {MS DOS} to set the errorlevel according to which key is
	pressed.  The errorlevel can then be interrogated from a
	{batch file} by a series of commands like this:

	 get
	 if errorlevel 118 goto E118
	 if errorlevel 117 goto E117
	 if errorlevel 116 goto E116
	 if errorlevel 115 goto E115
	 if errorlevel 114 goto E114

	where E118 etc. are labels in the batch file.

	(1996-02-01)

getty

	<operating system> A {Unix} program which sets terminal type,
	modes, speed and line discipline for a {serial port}, and is
	used in the login process.

	(1996-12-08)

gf

	<networking> The {country code} for French Guiana.

	(1999-01-27)

GFDL

	{GNU Free Documentation License}

g file

	<messaging> (General file) A mid 1980s term for text files,
	usually short and unpublished found on {BBSs}.  The g-files
	section on BBSs contain text files of general interest,
	viewable on-line; this is as opposed to files in the file
	transfer section, which are generally downloadable but not
	viewable on-line.

	When used on the {Internet}, this term generally refers to the
	types of file most often associated with old BBSs such as
	instructions on {phreak}ing or making bombs.

	(1996-06-20)

GFLOPS

	{gigaflops}

GFR

	{Grim File Reaper}

GFS

	{Grandfather, Father, Son}

gh

	<networking> The {country code} for Ghana.

	(1999-01-27)

GHC

	<language>

	1. {Guarded horn clauses}.

	2. {Glasgow Haskell Compiler}.

	(1999-01-05)

ghetto code

	<humour, programming> A particularly inelegant and obviously
	suboptimal section of {code} that still meets the original
	requirements.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-05-14)

ghost

	<chat> (Or "zombie") The image of a user's session on {IRC}
	and similar systems, left when the session has been terminated
	(properly or, often, improperly) but the server (or the
	network at large) believes the connection is still active and
	belongs to a real user.

	Compare {clonebot}.

	(1997-04-07)

Ghostscript

	<graphics, tool> The {GNU} {interpreter} for {PostScript} and
	{PDF}, with {previewers} for serval systems and many {fonts}.
	Ghostscript was originally written by L. Peter Deutsch
	<ghost@aladdin.com> of {Aladdin Enterprises}.  The first
	public release was v1.0 on 1988-08-11.

	Latest version: 8.11, as of 2003-08-29.

	{GNU Home (http://gnu.org/software/ghostscript/)}.

	{News & community (http://ghostscript.com/)}.

	(2003-09-24)

ghostview

	An {X Window System} interface to the {ghostscript}
	{PostScript} {interpreter}.

GHz

	{GigaHertz}

GI

	{generic identifier}

gi

	<networking> The {country code} for Gibraltar.

	(1999-01-27)

Gibson, William

	{William Gibson}

gid

	1. <operating system> {group identifier}.

	2. <filename extension> {global index}.

	(1997-01-30)

GIF

	{Graphics Interchange Format}

GIF89

	{Graphics Interchange Format}

GIF89a

	{animated GIF}

GIFF

	Do you mean {GIF} or is this some kind of {IFF}?

gig

	{gigabyte}

giga-

	{prefix}

gigabit

	<unit> 2^30 {bits}, 1,073,741,824 bits.

	See {prefix}.

	(1995-11-12)

gigabits per second

	<unit> (Gbps) A unit of information transfer rate equal to one
	billion {bits} per second.  Note that, while a {gigabit} is
	defined as a power of two (2^30 bits), a gigabit per second is
	defined as a power of ten (10^9 bits per second, which is
	slightly less) than 2^30).

	(2004-02-10)

gigabyte

	<unit, data> (GB or colloquially "gig") A unit of {data} equal to
	one billion {bytes} but see {binary prefix} for other definitions.
	A gigabyte is 1000^3 {bytes} or 1000 {megabytes}.

	A human gene sequence (including all the redundant codons)
	contains about 1.5 gigabytes of data.

	1000 gigabytes are one {terabyte}.

	See {prefix}.

	{Human genome data content
	(http://bitesizebio.com/articles/how-much-information-is-stored-in-the-human-genome/)}.

	(2013-11-03)

gigaflop

	{gigaflops}

gigaflops

	<unit> (GFLOPS) One thousand million (10^9) {floating point}
	operations per second.

	One of them is strictly "one gigaflops" in the same way that
	one mile per hour isn't 1 MP.

	See {prefix}.

	(1998-04-19)

GigaHertz

	<unit> (GHz) Billions of cycles per second.

	The unit of frequency used to measure the {clock rate} of
	modern {digital logic}, including {microprocessors}.

	(2001-05-14)

GIGO

	{Garbage In, Garbage Out}

gilley

	<humour> ({Usenet}) The unit of analogical bogosity.
	According to its originator, the standard for one gilley was
	"the act of bogotoficiously comparing the shutting down of
	1000 machines for a day with the killing of one person".  The
	milligilley has been found to suffice for most normal
	conversational exchanges.

	(1995-03-17)

gillion

	<unit> /gil'y*n/ or /jil'y*n/ (From {giga-} by analogy with
	mega/million and tera/trillion) 10^9.

	Same as an American billion or a British "milliard".  How one
	pronounces this depends on whether one speaks {giga-} with a
	hard or soft "g".

	[{Jargon File}]

	(1995-03-17)

Gilmore, John

	{John Gilmore}

GIM-1

	Generalized Information Management Language.  Nelson, Pick,
	Andrews.  Proc SJCC 29:169-73, AFIPS (Fall 1966).

GIN

	A special-purpose {macro assembler} used to build the {GEORGE
	3} {operating system} for {ICL1900} series computers.

	(1994-11-02)

GINA

	Generic Interactive Application.  An {application framework}
	based on {Common Lisp} and {OSF}/{Motif}, designed to simplify
	the construction of graphical interactive applications.

	GINA consists of {CLM} - a language binding for {OSF}/{Motif}
	in {Common Lisp}; the GINA application framework - a {class
	library} in {CLOS}; the GINA interface builder - an
	interactive tool implemented with GINA to design {Motif}
	windows.

	Version 2.2 requires {OSF}/{Motif} 1.1 or better, {Common
	Lisp} with {CLX}, {CLOS}, {PCL} and processes.  It runs with
	{Franz Allegro}, {Lucid}, {CMU CL} and {Symbolics} {Genera}.

	{Germany (ftp://ftp.gmd.de/gmd/gina)}.  {N. America
	(ftp://export.lcs.mit.edu/contrib/)}.  Mailing list:
	gina-users-request@gmdzi.gmd.de.

	(1994-11-02)

Ginger

	A simple {functional language} from the {University of
	Warwick} with parallel constructs.

	(1994-11-02)

GIP

	1. General Interpretive Programme.

	A 1956 interpreted language for the {English Electric}
	{DEUCE}, with {array} operations and an extensive library of
	numerical methods.

	["Interpretive and Brick Schemes, with Special Reference to
	Matrix Operations", English Electric COmpany, DEUCE News
	No. 10 (1956)].

	(1994-11-02)

	2. An erroneous singular of {GIPS}.

GIPS

	/gips/ or /jips/ [Analogy with {MIPS}] Giga-Instructions per
	Second (or possibly "Gillions of Instructions per Second"; see
	{gillion}).

	In 1991, this was used of only a handful of highly parallel
	machines and one sequential processor built with {Josephson
	devices}.  {DEC}'s {Alpha AXP 21164} processor was the first
	commercially available 1 GIPS sequential processor (7 Sep
	1994).  Compare {KIPS}.

	["A 1-GIPS Josephson Data Processor", Yuji Hatano et al, IEEE
	J Solid State Circuits, vol 26, 6, June 1991]

	[{Jargon File}]

	(1994-11-02)

GIRL

	Graph Information Retrieval Language.  A language for handling
	{directed graphs}.

	["Graph Information Retrieval Language", S. Berkowitz, Report
	76-0085, Naval Ship Res Dev Center, (Feb 1976)].

	(1994-11-02)

GIS

	{Geographical Information System}

Giuseppe Peano

	<person, mathematics, logic> (1858-08-27 - 1932-04-20) An Italian
	mathematician who wrote over 200 books and papers, was a founder
	of {mathematical logic} and {set theory} and taught at the
	University of Turin.  He contributed to mathematical {analysis},
	{logic}, the teaching of {calculus}, {differential equations},
	{vector analysis} and the axiomatization of mathematics.  The
	standard {axiomatization} of the {natural numbers} is named {Peano
	arithmetic} or the {Peano axioms} after him.  He also invented the
	{Peano curve}, an early example of a {fractal}.

	(2013-03-23)

GIYF

	<chat, WWW> Google Is Your Friend.  See {STFW}.

	(2014-05-23)

GKS

	{Graphical Kernel System}

GKS-3D

	The three-dimensional version of {GKS}, a {standard} for
	graphics I/O ({ISO} 8805).

	(1994-11-02)

GL

	Graphics Language.  A graphics package from {Silicon
	Graphics}.

gl

	<networking> The {country code} for Greenland.

	(1999-01-27)

Glammar

	A pattern transformation language for text-to-text
	translation.  Used for compiler writing and linguistics.

	{(ftp://phoibos.cs.kun.nl/pub/GLASS/glammar.tar.Z)}.

glark

	/glark/ To figure something out from context.  "The System III
	manuals are pretty poor, but you can generally glark the
	meaning from context."  Interestingly, the word was originally
	"glork"; the context was "This gubblick contains many
	nonsklarkish English flutzpahs, but the overall pluggandisp
	can be glorked [sic] from context" (David Moser, quoted by
	Douglas Hofstadter in his "Metamagical Themas" column in the
	January 1981 "Scientific American").  It is conjectured that
	hackish usage mutated the verb to "glark" because {glork} was
	already an established jargon term.

	Compare {grok}, {zen}.

	[{Jargon File}]

Glasgow Haskell Compiler

	<language> (GHC) A {Haskell} 1.2 compiler written in Haskell
	by the AQUA project at {Glasgow University}, headed by Simon
	Peyton Jones <simonpj@dcs.glasgow.ac.uk> throughout the 1990's
	[started?].  GHC can generate either {C} or {native code} for
	{SPARC}, {DEC} {Alpha} and other platforms.  It can take
	advantage of features of {gcc} such as global register
	variables and has an extensive set of optimisations.

	GHC features an extensible I/O system based on a "{monad}",
	in-line {C} code, fully fledged {unboxed} data types,
	incrementally-updatable {arrays}, {mutable reference types},
	{generational garbage collector}, {concurrent} {threads}.
	Time and space {profiling} is also supported.

	It requires {GNU} gcc 2.1+ and {Perl}.

	GHC runs on {Sun-4}, {DEC Alpha}, {Sun-3}, {NeXT}, {DECstation},
	{HP-PA} and {SGI}.

	Latest version: 4.01, as of 1998-11-30.

	{Glasgow FTP
	(ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}.  {Yale
	(ftp://nebula.cs.yale.edu/pub/haskell/glasgow/)}.  {Sweden
	(ftp://ftp.cs.chalmers.se/pub/haskell/glasgow/)}.

	{Papers (ftp://ftp.dcs.glasgow.ac.uk/pub/glasgow-fp)}.

	["Imperative functional programming", Peyton Jones & Wadler,
	POPL '93].

	["Unboxed data types as first-class citizens", Peyton Jones &
	Launchbury, FPCA '91].

	["Profiling lazy functional languages", Sansom & Peyton Jones,
	Glasgow workshop '92].

	["Implementing lazy functional languages on stock hardware",
	Peyton Jones, Journal of Functional Programming, Apr 1992].

	E-mail: <glasgow-haskell-request@dcs.glasgow.ac.uk>.

	(1999-01-05)

GLASS

	General LAnguage for System Semantics.

	An {Esprit} project at the {University of Nijmegen}.

	{(ftp://phoibos.cs.kun.nl/pub/GLASS)}.

	(1995-01-25)

glass

	(IBM) {silicon}.

	[{Jargon File}]

glass box testing

	{white box testing}

glassfet

	/glas'fet/ [Analogy with {MOSFET}] (or "{firebottle}") A
	humorous way to refer to a {vacuum tube}.

	[{Jargon File}]

glass tty

	/glas T-T-Y/ or /glas ti'tee/ A terminal that has a display
	screen but which, because of hardware or software limitations,
	behaves like a teletype or some other printing terminal,
	thereby combining the disadvantages of both: like a printing
	terminal, it can't do fancy display hacks, and like a display
	terminal, it doesn't produce hard copy.  An example is the
	early "dumb" version of Lear-Siegler ADM 3 (without cursor
	control).  See {tube}, {tty}; compare {dumb terminal}, {smart
	terminal}.  See "{TV Typewriters}" for an interesting true
	story about a glass tty.

GLB

	{greatest lower bound}

glibc

	{GNU C Library}

Glish

	Glish is an interpretive language for building loosely-coupled
	distributed systems from modular, event-oriented programs.
	Written by Vern Paxson <vern@ee.lbl.gov>.  These programs are
	written in conventional languages such as C, C++, or Fortran.

	Glish scripts can create local and remote processes and
	control their communication.  Glish also provides a full,
	array-oriented programming language (similar to {S}) for
	manipulating binary data sent between the processes.  In
	general Glish uses a centralised communication model where
	interprocess communication passes through the Glish
	{interpreter}, allowing dynamic modification and rerouting of
	data values, but Glish also supports point-to-point links
	between processes when necessary for high performance.

	Version 2.4.1 includes an {interpreter}, {C++} {class} library
	and user manual.  It requires C++ and there are ports to
	{SunOS}, {Ultrix}, an {HP/UX} (rusty).

	{(ftp://ftp.ee.lbl.gov/glish/glish-2.4.1.tar.Z)}.

	["Glish: A User-Level Software Bus for Loosely-Coupled
	Distributed Systems," Vern Paxson and Chris Saltmarsh,
	Proceedings of the 1993 Winter USENIX Conference, San Diego,
	CA, January, 1993].

	(1993-11-01)

Glisp

	Generalized LISP.  D.C. Smith, Aug 1990.  A coordinated set of
	high-level syntaxes for Common LISP.  Contains Mlisp, Plisp
	and ordinary LISP, with an extensible framework for adding
	others.  Written in Plisp.

	{(ftp://bric-a-brac.apple.com/dts/mac/lisp)}.

glitch

	/glich/ [German "glitschen" to slip, via Yiddish "glitshen",
	to slide or skid] 1. (Electronics) When the inputs of a
	circuit change, and the outputs change to some {random} value
	for some very brief time before they settle down to the
	correct value.  If another circuit inspects the output at just
	the wrong time, reading the random value, the results can be
	very wrong and very hard to debug (a glitch is one of many
	causes of electronic {heisenbugs}).

	2. A sudden interruption in electric service, sanity,
	continuity, or program function.  Sometimes recoverable.  An
	interruption in electric service is specifically called a
	"power glitch" (or {power hit}), of grave concern because it
	usually crashes all the computers.  See also {gritch}.

	2. [Stanford] To scroll a display screen, especially several
	lines at a time.  {WAITS} terminals used to do this in order
	to avoid continuous scrolling, which is distracting to the
	eye.

	4. Obsolete.  Same as {magic cookie}.

	[{Jargon File}]

glob

	/glob/, *not* /glohb/ To expand {wild card} characters in a
	{path name}.

	In {Unix} the {file name} wild cards are:

	 * = zero or more characters (E.g. {UN*X})

	 ? = any single character

	 [] any of the enclosed characters

	 {} indicate alternation of comma-separated alternatives, thus
	 foo{baz,qux} would expand to "foobaz" or "fooqux".  This
	 syntax generates a list of all possible expansions, rather
	 than matching one.

	These have become sufficiently pervasive that hackers use them
	in written English, especially in {electronic mail} or
	{Usenet} news on technical topics.  E.g. "He said his name was
	[KC]arl" (expresses ambiguity).  "I don't read
	talk.politics.*" (any of the talk.politics subgroups on
	{Usenet}).  Other examples are given under the entry for {X}.
	Note that glob patterns are similar, but not identical, to
	those used in {regexps}.

	"glob" was a subprogram that expanded wild cards in archaic
	pre-{Bourne} versions of the {Unix} {shell}.

	(1997-07-16)

global index

	<filename extension> (gid) The filename extension of a
	{Windows 95} "global index" file.  .gid files are created by
	the help {browser} internal to Windows 95 (also available for
	other Windows versions) for WinHelp files ({hlp}), as well as
	for storing user preferences, such as window position.

	(1997-01-30)

globalisation

	{internationalisation}

Global Network Navigator

	(GNN) A collection of free services provided by {O'Reilly &
	Associates}.

	The Whole Internet Catalog describes the most useful Net
	resources and services with live links to those resources.
	The GNN Business Pages list companies on the Internet.  The
	Internet Help Desk provides help in starting {Internet}q
	exploration.  NetNews is a weekly publication that reports on
	the news of the {Internet}, with weekly articles on Internet
	trends and special events, sports, weather, and comics.  There
	are also pages aobut travel and personal finance.

	{Home page (http://gnn.com/)}.

	E-mail: <support@gnn.com>.

	Telephone: (800) 998 9938 (USA), +1 (707) 829 0515 (outside
	USA).

	(1995-01-10)

Global Positioning System

	<communications> (GPS) A system for determining postion on the
	Earth's surface by comparing radio signals from several
	satellites.  When completed the system will consist of 24
	satellites equipped with radio transmitters and atomic clocks.

	Depending on your geographic location, the GPS receiver
	samples data from up to six satellites, it then calculates the
	time taken for each satellite signal to reach the GPS
	receiver, and from the difference in time of reception,
	determines your location.

	["Global Positioning by Satellite"?  Precison?  Coverage?  Web
	page?]

	(1998-02-10)

Global System for Mobile Communications

	<communications> (GSM, originally "Groupe de travail Sp?ciale
	pour les services Mobiles") One of the major {standards} for
	digital {cellular} communications, in use in over 60 countries
	and serving over one billion subscribers.  The GSM standard is
	currently used in the 900 MHz, 1800 MHz and 1900 MHz bands.

	{GPRS} allows {circuit switched} data communications over GSM,
	and is widely used for {World Wide Web} and {electronic mail}
	access from cellular devices.

	{GSM World (http://gsmworld.com/)}.

	(2005-01-26)

glork

	/glork/ 1. Used as a name for just about anything.

	See {foo}.

	2. Similar to {glitch}, but usually used reflexively.  "My
	program just glorked itself."

	See also {glark}.

	[{Jargon File}]

GLOS

	{Graphics Language Object System}.

GLOW

	<language> A POP-11 variant with {lexical scope}.

	Available from Andrew Arnblaster, Bollostraat 6, B-3140
	Keerbergen, Belgium, for Mac or {MS-DOS}.

	[Byte's UK edition, May 1992, p.84UK-8].

	(1997-02-07)

GLS

	{Guy Lewis Steele, Jr.}

GLU

	<language> A practical {coarse grain} implementation of the
	Lucid dataflow language for networks.

	(1998-03-07)

glue

	<jargon> A generic term for any interface logic or {protocol}
	that connects two component blocks.  For example, {Blue Glue}
	is IBM's SNA protocol, and hardware designers call anything
	used to connect large VLSI's or circuit blocks "glue logic".

	[{Jargon File}]

	(1999-02-22)

glue language

	<language> Any language, usually a {scripting language}, used
	to write {glue} to integrate tools and other programs to solve
	some problem.

	(1999-02-22)

glyph

	<character> An {image} used in the visual representation of
	{characters}; roughly speaking, how a character looks.  A
	{font} is a set of glyphs.

	In the simple case, for a given {font} ({typeface} and size),
	each character corresponds to a single glyph but this is not
	always the case, especially in a language with a large
	alphabet where one character may correspond to several glyphs
	or several characters to one glyph (a {character encoding}).

	Usually used in reference to {outline fonts}, in particular
	{TrueType}.

	(1998-05-31)

Glypnir

	1966.  An ALGOL-like language with parallel extensions.
	Similar to Actus.  "GLYPNIR - A Programming Language for the
	Illiac IV", D.H.  Lawrie et al, CACM 18(3) (Mar 1975).

gm

	<networking> The {country code} for Gambia.

	(1999-01-27)

GMAP

	{GCOS Macro Assembler Program}

GMD

	<company> Full name: "GMD - Forschungszentrum
	Informationstechnik GmbH" (German National Research Center for
	Information Technology).

	Before April 1995, GMD stood for "Gesellschaft für Mathematik
	und Datenverarbeitung" - National Research Center for Computer
	Science, it is retained for historical reasons.

	{(http://gmd.de/GMDHome.english.html)}.

	Address: D-53754 Sankt Augustin, Germany.

	(1995-04-10)

GMD Toolbox for Compiler Construction

	(Or Cocktail) A huge set of compiler building tools for
	{MS-DOS}, {Unix} and {OS/2}.

	parser generator (LALR -> C, Modula-2), documentation, parser
	generator (LL(1) -> C, Modula-2), tests, scanner generator (->
	C, Modula-2), tests translator (Extended BNF -> BNF),
	translator (Modula-2 -> C), translator (BNF (yacc) -> Extended
	BNF), examples abstract syntax tree generator,
	attribute-evaluator generator, code generator

	Latest version: 9209.

	The {MS-DOS} version requires DJ Delorie's DOS extender
	({go32}) and the {OS/2} version requires the {emx} programming
	environment.

	{(ftp://ftp.karlsruhe.gmd.de/pub/cocktail/dos)}.  {OS/2 FTP
	(ftp://ftp.eb.ele.tue.nl/pub/src/cocktail/dos-os2.zoo)}.

	Mailing list: listserv@eb.ele.tue.nl (subscribe to Cocktail).
	E-mail: Josef Grosch <grosch@karlsruhe.gmd.de>, Willem Jan
	Withagen <wjw@eb.ele.tue.nl> (OS/2).

	(1992-01-01)

GMT

	{Universal Time 1}

gn

	<networking> The {country code} for Guinea.

	(1999-01-27)

gnarly

	<jargon> /nar'lee/ Both obscure and {hairy}.  "{Yow}! - the
	tuned {assembler} implementation of {BitBlt} is really
	gnarly!"  From a similar but less specific usage in surfer
	slang.

	[{Jargon File}]

	(1996-09-17)

Gnat

	<language, tool> An {Ada} {compiler} written in {Ada} using
	the {gcc} {code generator} to allow easy {porting} to a
	variety of {platforms}.  Gnat is the only Ada compiler that
	completely implements the Ada standard, including all the
	annexes.

	The compiler is released under the {GNU} license and is
	currently maintained by {Ada Core Technologies} (ACT).

	{(http://gnat.com/)}.

	(1999-06-24)

GNATS

	{GNU Problem Report Management System}

GNN

	{Global Network Navigator}

GNOME

	{GNU Network Object Model Environment}

Gnome Computers

	<company> A small UK hardware and software company.  They make
	{transputer} boards for the {Acorn} {Archimedes} among other
	things.

	E-mail: Chris Stenton <chris@gnome.co.uk>.

	(1994-09-30)

GNU

	<body, project> /g*noo/ 1. A {recursive acronym}:
	"GNU's Not Unix!".  The {Free Software Foundation}'s project
	to provide a freely distributable replacement for {Unix}.  The
	GNU Manifesto was published in the March 1985 issue of
	Dr. Dobb's Journal but the GNU project started a year and a
	half earlier when {Richard Stallman} was trying to get funding
	to work on his freely distributable editor, {Emacs}.

	{Emacs} and the GNU {C} compiler, {gcc}, two tools designed
	for this project, have become very popular.  GNU software is
	available from many {GNU archive sites}.

	See also {Hurd}.

	2. <person> {John Gilmore}.

	[{Jargon File}]

	(1997-04-12)

GNU archive site

	<body> The main {GNU} {FTP archive} is on gnu.org but
	copies ("{mirrors}") of some or all of the files there are
	also held on many other computers around the world.  To avoid
	overloading gnu.org and the {Internet} you should
	{FTP} files from the machine closest to yours (you may be able
	to use {traceroute} to determine which is logically closest if
	it's not obvious from the transfer rate).  Trans-ocean
	{TCP/IP} links are very expensive and usually very slow.

	The following {hosts} mirror GNU files.  Look for a directory
	like /pub/gnu, /mirrors/gnu, /systems/gnu or /archives/gnu.
	{Electronic mail addresses} of administrators and {Internet
	address}es are given for some hosts.

	{Original list (ftp://src.doc.ic.ac.uk/gnu/GNUinfo/FTP)}.

	Australia: archie.au, archie.oz, archie.oz.au

	Brazil: ccsun.unicamp.br (143.106.1.5, <root@ccsun.unicamp.br>)

	Denmark: ftp.denet.dk

	Europe: archive.eu.net (192.16.202.1)

	Finland: ftp.funet.fi (128.214.6.100, gnu-adm)

	France: irisa.irisa.fr, ftp.univ-lyon1.fr
	(<ftpmaint@ftp.univ-lyon1.fr>)

	{Germany (ftp://ftp.informatik.tu-muenchen.de/)},
	{(ftp://ftp.informatik.rwth-aachen.de/)},
	{ftp://ftp.germany.eu.net/)}.

	Israel: ftp.technion.ac.il (<ftp-admin@ftp.technion.ac.il>)

	Japan: utsun.s.u-tokyo.ac.jp, ftp.cs.titech.ac.jp

	Korea: cair.kaist.ac.kr (143.248.11.170)

	Netherlands: hp4nl.nluug.nl, ftp.win.tue.nl (131.155.70.100)

	Norway: ugle.unit.no (129.241.1.97)

	South Africa: ftp.sun.ac.za

	Sweden: isy.liu.se, ftp.stacken.kth.se, ftp.luth.se,
	ftp.sunet.se, <archive@ftp.sunet.se>, sdi.slu.se.

	Switzerland: ftp.eunet.ch, nic.switch.ch

	Thailand: ftp.nectec.or.th (192.150.251.32,
	<ftp@nwg.nectec.or.th>)

	UK: src.doc.ic.ac.uk (146.169.3.7, <info-server@doc.ic.ac.uk>,
	<lmjm@doc.ic.ac.uk> also sun cartridge or exabyte tapes);
	info-server@cs.nott.ac.uk (<jpo@cs.nott.ac.uk>);
	I.G.Batten@fulcrum.bt.co.uk (also qic-21 and qic-24 tapes);
	ftp.mcc.ac.uk (130.88.203.12); Unix.hensa.ac.uk;
	ftp.warwick.ac.uk (137.205.192.14, <Unixhelp@warwick.ac.uk>).

	USA: louie.udel.edu, ftp.kpc.com (Silicon Valley, CA)
	ftp.hawaii.edu, f.ms.uky.edu, ftp.digex.net (Internet address
	164.109.10.23, run by <mcguire@digex.net>),
	wuarchive.wustl.edu, col.hp.com, ftp.cs.columbia.edu,
	vixen.cso.uiuc.edu, mrcnext.cso.uiuc.edu, jaguar.utah.edu,
	gatekeeper.dec.com, labrea.stanford.edu, ftp.cs.widener.edu,
	archive.cis.ohio-state.edu, and ftp.uu.net.

	Western Canada: ftp.cs.ubc.ca (<ftp-admin@cs.ubc.ca>)

	(1999-12-09)

GNU assembler

	(GAS) A {Unix} {assembler} for the {GNU} project.  Many {CPU}
	types are handled and {COFF} and {IEEE-695} formats are
	supported as well as standard {a.out}.

	Current version 2.2 ported to {Sun-3}, {Sun-4}, {i386},
	{386BSD}, {BSD/386}, {Linux}, {PS/2-AIX}, {VAX}, {Ultrix},
	{BSD}, {VMS}.

	The assembler has been merged with {GNU Binutils}.

	E-mail: <bug-gnu-utils@gnu.org>.

	(1995-04-18)

GNU awk

	{gawk}

GNU BC

	A {GNU} version of {BC} which is self-contained and internally
	executes its own compiled code rather than acting as a
	{front-end} to {DC} like the standard {Unix} bc.

	Version 1.02

	parser (yacc), interpreter, BC math library

	Philip A. Nelson <phil@cs.wwu.edu>

	FTP bc-1.02.tar.Z from a {GNU archive site}.

	requires: vsprintf and vfprintf routines

	ports: Unix (BSD, System V, MINIX, POSIX) Superset of POSIX BC
	(P10003.2/D11), with a POSIX-only mode.

GNU C

	<language> The extension of {C} compiled by {gcc}.

	(1997-09-30)

GNU C Library

	<library> (glibc) The {run-time} library for the {GNU C}
	{compiler}, {gcc}, and others.  glibc is the {source code} for
	libc.a.  It is maintained separately from the compilers and is
	a superset of {ANSI C} and {POSIX}.1 and a large subset of
	POSIX.2.

	Latest version: 2.1.3, as of 2000-04-29

	{(http://gnu.org/glibc)}.

	Mailing list: <bug-glibc@gnu.org> (bugs).

	(2000-05-31)

GNU DC

	GNU Desktop Calculator.

	An {interpreter} for a subset of the standard {Unix} {DC} that
	handles all its operations, except the (undocumented) {array}
	operations.  Integration with GNU BC is being attempted.

	Version 0.2.

	{FTP} dc-0.2.tar.Z from your nearest {GNU archive site}.

	(1993-05-21)

GNU E

	A persistent C++ variant

	Version 2.3.3

	compiler

	{(ftp://ftp.cs.wisc.edu/exodus/E/)}.

	GNU E is a persistent, object oriented programming language
	developed as part of the Exodus project.  GNU E extends C++
	with the notion of persistent data, program level data objects
	that can be transparently used across multiple executions of a
	program, or multiple programs, without explicit input and
	output operations.

	GNU E's form of {persistence} is based on extensions to the
	C++ type system to distinguish potentially persistent data
	objects from objects that are always memory resident.  An
	object is made persistent either by its declaration (via a new
	"persistent" storage class qualifier) or by its method of
	allocation (via persistent dynamic allocation using a special
	overloading of the new operator).  The underlying object
	storage system is the Exodus storage manager, which provides
	concurrency control and recovery in addition to storage for
	persistent data.

	restriction: Copyleft; not all run-time sources are available
	(yet)

	requires:	release 2.1.1 of the Exodus storage manager

	E-mail: <exodus@cs.wisc.edu>.

	(1993-01-20)

GNU Emacs

	{Emacs}

GNU Free Documentation License

	<legal> (GFDL) The {Free Software Foundation}'s license
	designed to ensure the same freedoms for {documentation} that
	the {GPL} gives to {software}.

	This dictionary is distributed under the GFDL, see the
	copyright notice in the {Free On-line Dictionary of Computing}
	section (at the start of the source file).  The full text
	follows.

	Version 1.1, March 2000

	Copyright 2000 Free Software Foundation, Inc.

	59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

	Everyone is permitted to copy and distribute verbatim copies
	of this license document, but changing it is not allowed.

	0. PREAMBLE

	The purpose of this License is to make a manual, textbook, or
	other written document "free" in the sense of freedom: to
	assure everyone the effective freedom to copy and redistribute
	it, with or without modifying it, either commercially or
	noncommercially. Secondarily, this License preserves for the
	author and publisher a way to get credit for their work, while
	not being considered responsible for modifications made by
	others.

	This License is a kind of "copyleft", which means that
	derivative works of the document must themselves be free in
	the same sense.  It complements the GNU General Public
	License, which is a copyleft license designed for free
	software.

	We have designed this License in order to use it for manuals
	for free software, because free software needs free
	documentation: a free program should come with manuals
	providing the same freedoms that the software does.  But this
	License is not limited to software manuals; it can be used for
	any textual work, regardless of subject matter or whether it
	is published as a printed book.  We recommend this License
	principally for works whose purpose is instruction or
	reference.

	1. APPLICABILITY AND DEFINITIONS

	This License applies to any manual or other work that contains
	a notice placed by the copyright holder saying it can be
	distributed under the terms of this License.  The "Document",
	below, refers to any such manual or work.  Any member of the
	public is a licensee, and is addressed as "you".

	A "Modified Version" of the Document means any work containing
	the Document or a portion of it, either copied verbatim, or
	with modifications and/or translated into another language.

	A "Secondary Section" is a named appendix or a front-matter
	section of the Document that deals exclusively with the
	relationship of the publishers or authors of the Document to
	the Document's overall subject (or to related matters) and
	contains nothing that could fall directly within that overall
	subject.  (For example, if the Document is in part a textbook
	of mathematics, a Secondary Section may not explain any
	mathematics.)  The relationship could be a matter of historical
	connection with the subject or with related matters, or of
	legal, commercial, philosophical, ethical or political
	position regarding them.

	The "Invariant Sections" are certain Secondary Sections whose
	titles are designated, as being those of Invariant Sections,
	in the notice that says that the Document is released under
	this License.

	The "Cover Texts" are certain short passages of text that are
	listed, as Front-Cover Texts or Back-Cover Texts, in the
	notice that says that the Document is released under this
	License.

	A "Transparent" copy of the Document means a machine-readable
	copy, represented in a format whose specification is available
	to the general public, whose contents can be viewed and edited
	directly and straightforwardly with generic text editors or
	(for images composed of pixels) generic paint programs or (for
	drawings) some widely available drawing editor, and that is
	suitable for input to text formatters or for automatic
	translation to a variety of formats suitable for input to text
	formatters.  A copy made in an otherwise Transparent file
	format whose markup has been designed to thwart or discourage
	subsequent modification by readers is not Transparent.  A copy
	that is not "Transparent" is called "Opaque".

	Examples of suitable formats for Transparent copies include
	plain ASCII without markup, Texinfo input format, LaTeX input
	format, SGML or XML using a publicly available DTD, and
	standard-conforming simple HTML designed for human
	modification.  Opaque formats include PostScript, PDF,
	proprietary formats that can be read and edited only by
	proprietary word processors, SGML or XML for which the DTD
	and/or processing tools are not generally available, and the
	machine-generated HTML produced by some word processors for
	output purposes only.

	The "Title Page" means, for a printed book, the title page
	itself, plus such following pages as are needed to hold,
	legibly, the material this License requires to appear in the
	title page.  For works in formats which do not have any title
	page as such, "Title Page" means the text near the most
	prominent appearance of the work's title, preceding the
	beginning of the body of the text.

	2. VERBATIM COPYING

	You may copy and distribute the Document in any medium, either
	commercially or noncommercially, provided that this License,
	the copyright notices, and the license notice saying this
	License applies to the Document are reproduced in all copies,
	and that you add no other conditions whatsoever to those of
	this License.  You may not use technical measures to obstruct
	or control the reading or further copying of the copies you
	make or distribute.  However, you may accept compensation in
	exchange for copies.  If you distribute a large enough number
	of copies you must also follow the conditions in section 3.

	You may also lend copies, under the same conditions stated
	above, and you may publicly display copies.

	3. COPYING IN QUANTITY

	If you publish printed copies of the Document numbering more
	than 100, and the Document's license notice requires Cover
	Texts, you must enclose the copies in covers that carry,
	clearly and legibly, all these Cover Texts: Front-Cover Texts
	on the front cover, and Back-Cover Texts on the back cover.
	Both covers must also clearly and legibly identify you as the
	publisher of these copies.  The front cover must present the
	full title with all words of the title equally prominent and
	visible.  You may add other material on the covers in
	addition.  Copying with changes limited to the covers, as long
	as they preserve the title of the Document and satisfy these
	conditions, can be treated as verbatim copying in other
	respects.

	If the required texts for either cover are too voluminous to
	fit legibly, you should put the first ones listed (as many as
	fit reasonably) on the actual cover, and continue the rest
	onto adjacent pages.

	If you publish or distribute Opaque copies of the Document
	numbering more than 100, you must either include a
	machine-readable Transparent copy along with each Opaque copy,
	or state in or with each Opaque copy a publicly-accessible
	computer-network location containing a complete Transparent
	copy of the Document, free of added material, which the
	general network-using public has access to download
	anonymously at no charge using public-standard network
	protocols.  If you use the latter option, you must take
	reasonably prudent steps, when you begin distribution of
	Opaque copies in quantity, to ensure that this Transparent
	copy will remain thus accessible at the stated location until
	at least one year after the last time you distribute an Opaque
	copy (directly or through your agents or retailers) of that
	edition to the public.

	It is requested, but not required, that you contact the
	authors of the Document well before redistributing any large
	number of copies, to give them a chance to provide you with an
	updated version of the Document.

	4. MODIFICATIONS

	You may copy and distribute a Modified Version of the Document
	under the conditions of sections 2 and 3 above, provided that
	you release the Modified Version under precisely this License,
	with the Modified Version filling the role of the Document,
	thus licensing distribution and modification of the Modified
	Version to whoever possesses a copy of it.  In addition, you
	must do these things in the Modified Version:

	A. Use in the Title Page (and on the covers, if any) a title
	distinct from that of the Document, and from those of previous
	versions (which should, if there were any, be listed in the
	History section of the Document).  You may use the same title
	as a previous version if the original publisher of that
	version gives permission.

	B. List on the Title Page, as authors, one or more persons or
	entities responsible for authorship of the modifications in
	the Modified Version, together with at least five of the
	principal authors of the Document (all of its principal
	authors, if it has less than five).

	C. State on the Title page the name of the publisher of the
	Modified Version, as the publisher.

	D. Preserve all the copyright notices of the Document.

	E. Add an appropriate copyright notice for your modifications
	adjacent to the other copyright notices.

	F. Include, immediately after the copyright notices, a license
	notice giving the public permission to use the Modified
	Version under the terms of this License, in the form shown in
	the Addendum below.

	G. Preserve in that license notice the full lists of Invariant
	Sections and required Cover Texts given in the Document's
	license notice.

	H. Include an unaltered copy of this License.

	I. Preserve the section entitled "History", and its title, and
	add to it an item stating at least the title, year, new
	authors, and publisher of the Modified Version as given on the
	Title Page. If there is no section entitled "History" in the
	Document, create one stating the title, year, authors, and
	publisher of the Document as given on its Title Page, then add
	an item describing the Modified Version as stated in the
	previous sentence.

	J. Preserve the network location, if any, given in the
	Document for public access to a Transparent copy of the
	Document, and likewise the network locations given in the
	Document for previous versions it was based on. These may be
	placed in the "History" section. You may omit a network
	location for a work that was published at least four years
	before the Document itself, or if the original publisher of
	the version it refers to gives permission.

	K. In any section entitled "Acknowledgements" or
	"Dedications", preserve the section's title, and preserve in
	the section all the substance and tone of each of the
	contributor acknowledgements and/or dedications given therein.

	L. Preserve all the Invariant Sections of the Document,
	unaltered in their text and in their titles. Section numbers
	or the equivalent are not considered part of the section
	titles.

	M. Delete any section entitled "Endorsements".  Such a section
	may not be included in the Modified Version.

	N. Do not retitle any existing section as "Endorsements" or to
	conflict in title with any Invariant Section.  If the Modified
	Version includes new front-matter sections or appendices that
	qualify as Secondary Sections and contain no material copied
	from the Document, you may at your option designate some or
	all of these sections as invariant.  To do this, add their
	titles to the list of Invariant Sections in the Modified
	Version's license notice.  These titles must be distinct from
	any other section titles.

	You may add a section entitled "Endorsements", provided it
	contains nothing but endorsements of your Modified Version by
	various parties--for example, statements of peer review or
	that the text has been approved by an organization as the
	authoritative definition of a standard.

	You may add a passage of up to five words as a Front-Cover
	Text, and a passage of up to 25 words as a Back-Cover Text, to
	the end of the list of Cover Texts in the Modified
	Version.  Only one passage of Front-Cover Text and one of
	Back-Cover Text may be added by (or through arrangements made
	by) any one entity.  If the Document already includes a cover
	text for the same cover, previously added by you or by
	arrangement made by the same entity you are acting on behalf
	of, you may not add another; but you may replace the old one,
	on explicit permission from the previous publisher that added
	the old one.

	The author(s) and publisher(s) of the Document do not by this
	License give permission to use their names for publicity for
	or to assert or imply endorsement of any Modified Version.

	5. COMBINING DOCUMENTS

	You may combine the Document with other documents released
	under this License, under the terms defined in section 4 above
	for modified versions, provided that you include in the
	combination all of the Invariant Sections of all of the
	original documents, unmodified, and list them all as Invariant
	Sections of your combined work in its license notice.

	The combined work need only contain one copy of this License,
	and multiple identical Invariant Sections may be replaced with
	a single copy.  If there are multiple Invariant Sections with
	the same name but different contents, make the title of each
	such section unique by adding at the end of it, in
	parentheses, the name of the original author or publisher of
	that section if known, or else a unique number. Make the same
	adjustment to the section titles in the list of Invariant
	Sections in the license notice of the combined work.

	In the combination, you must combine any sections entitled
	"History" in the various original documents, forming one
	section entitled "History"; likewise combine any sections
	entitled "Acknowledgements", and any sections entitled
	"Dedications". You must delete all sections entitled
	"Endorsements."

	6. COLLECTIONS OF DOCUMENTS

	You may make a collection consisting of the Document and other
	documents released under this License, and replace the
	individual copies of this License in the various documents
	with a single copy that is included in the collection,
	provided that you follow the rules of this License for
	verbatim copying of each of the documents in all other
	respects.

	You may extract a single document from such a collection, and
	distribute it individually under this License, provided you
	insert a copy of this License into the extracted document, and
	follow this License in all other respects regarding verbatim
	copying of that document.

	7. AGGREGATION WITH INDEPENDENT WORKS

	A compilation of the Document or its derivatives with other
	separate and independent documents or works, in or on a volume
	of a storage or distribution medium, does not as a whole count
	as a Modified Version of the Document, provided no compilation
	copyright is claimed for the compilation.  Such a compilation
	is called an "aggregate", and this License does not apply to
	the other self-contained works thus compiled with the
	Document, on account of their being thus compiled, if they are
	not themselves derivative works of the Document.

	If the Cover Text requirement of section 3 is applicable to
	these copies of the Document, then if the Document is less
	than one quarter of the entire aggregate, the Document's Cover
	Texts may be placed on covers that surround only the Document
	within the aggregate.  Otherwise they must appear on covers
	around the whole aggregate.

	8. TRANSLATION

	Translation is considered a kind of modification, so you may
	distribute translations of the Document under the terms of
	section 4.  Replacing Invariant Sections with translations
	requires special permission from their copyright holders, but
	you may include translations of some or all Invariant Sections
	in addition to the original versions of these Invariant
	Sections.  You may include a translation of this License
	provided that you also include the original English version of
	this License.  In case of a disagreement between the
	translation and the original English version of this License,
	the original English version will prevail.

	9. TERMINATION

	You may not copy, modify, sublicense, or distribute the
	Document except as expressly provided for under this
	License.  Any other attempt to copy, modify, sublicense or
	distribute the Document is void, and will automatically
	terminate your rights under this License.  However, parties who
	have received copies, or rights, from you under this License
	will not have their licenses terminated so long as such
	parties remain in full compliance.

	10. FUTURE REVISIONS OF THIS LICENSE

	The Free Software Foundation may publish new, revised versions
	of the GNU Free Documentation License from time to time.  Such
	new versions will be similar in spirit to the present version,
	but may differ in detail to address new problems or concerns.
	See {here (http://gnu.org/copyleft/)}.

	Each version of the License is given a distinguishing version
	number.  If the Document specifies that a particular numbered
	version of this License "or any later version" applies to it,
	you have the option of following the terms and conditions
	either of that specified version or of any later version that
	has been published (not as a draft) by the Free Software
	Foundation.  If the Document does not specify a version number
	of this License, you may choose any version ever published
	(not as a draft) by the Free Software Foundation.

	End of full text of GFDL.

	(2002-03-09)

GNU General Public License

	{General Public License}

GNUMACS

	/gnoo'maks/ [contraction of "GNU Emacs"] Often-heard
	abbreviated name for the {GNU} project's flagship tool,
	{Emacs}.  Used especially in contrast with {GOSMACS}.

	[{Jargon File}]

GNU mirror site

	{GNU archive site}

GNU Network Object Model Environment

	<operating system> (GNOME) A project to build a complete,
	{user-friendly} {desktop} based entirely on {free software}.
	GNOME is part of the {GNU project} and part of the
	{OpenSource} movement.  The desktop will consist of small
	{utilities} and larger {applications} which share a consistent
	{look and feel}.  GNOME uses {GTK+} as the {GUI} {toolkit} for
	applications.

	GNOME is intended to run on any modern and functional
	{Unix}-like system.  The current version runs on {Linux},
	{FreeBSD}, {IRIX} and {Solaris}.

	{(http://gnome.org/)}.

	(1998-10-17)

Gnuplot

	<tool> A command-driven interactive graphing program.  Gnuplot
	can plot two-dimensional functions and data points in many
	different styles (points, lines, error bars); and
	three-dimensional data points and surfaces in many different
	styles (contour plot, mesh).  It supports {complex} arithmetic
	and user-defined functions and can label title, axes, and data
	points.  It can output to several different graphics file
	formats and devices.  Command line editing and history are
	supported and there is extensive on-line help.

	Gnuplot is {copyright}ed, but freely distributable.  It was
	written by Thomas Williams, Colin Kelley, Russell Lang, Dave
	Kotz, John Campbell, Gershon Elber, Alexander Woo and many
	others.  Despite its name, gnuplot is not related to the {GNU}
	project or the {FSF} in any but the most peripheral sense.  It
	was designed completely independently and is not covered by
	the {General Public License}.  However, the {FSF} has decided
	to distribute gnuplot as part of the {GNU} system, because it
	is useful, redistributable software.

	Gnuplot is available for: {Unix} ({X11} and {NEXTSTEP}),
	{VAX}/{VMS}, {OS/2}, {MS-DOS}, {Amiga}, {MS-Windows},
	{OS-9}/68k, {Atari ST} and {Macintosh}.

	E-mail: <info-gnuplot@dartmouth.edu>.

	{FAQ} - {Germany
	(http://fg70.rz.uni-karlsruhe.de/~ig25/gnuplot-faq/)}, {UK
	(ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics.gnuplot)},
	{USA
	(http://cis.ohio-state.edu/hypertext/faq/usenet/graphics/gnuplot-faq/faq.html)}.

	{Usenet} newsgroup: {news:comp.graphics.gnuplot}.

	(1995-05-04)

GNU Privacy Guard

	<tool, cryptography} (GPG) {GNU}'s encryption and digital
	signature tool intended to be a free replacement for {PGP}.

	(2003-04-12)

GNU Problem Report Management System

	<programming> (GNATS) {GNU}'s {bug tracking system}.  Users
	who experience problems use electronic mail, web-based or
	other clients communicating with the GNATS network daemon
	running at the support site, or direct database submissions to
	communicate these problems to maintainers at that Support
	Site.

	{(http://gnu.org/software/gnats)}.

	(2002-06-12)

GNU public licence

	<legal> Properly known as the {General Public License}.
	Improperly known as the {General Public Virus}.

	(1995-05-04)

GNUS

	<tool, networking> GNU news.

	A {GNU} {Emacs} subsystem for reading and sending {Usenet}
	{news}, written by Masanobu Umeda <umerin@mse.kyutech.ac.jp>.
	You can use GNUS to browse through news groups, look at
	summaries of articles in a specific group, and read articles
	of interest.  You can respond to authors or write articles or
	replies to all the readers of a news group.

	GNUS can be configured to use the {NNTP} {protocol} to get
	news from a remove {server} or it can read it from local news
	{spool} files.

	{Usenet} newsgorup: {news:gnu.emacs.gnus}.

	(1995-05-04)

GNU sed

	<tool, text> A {GNU} version of the standard {Unix} {Sed}
	stream editor.  GNU sed was written by Tom Lord
	<lord+@andrew.cmu.edu>.  Version 2.03.

	FTP from your nearest {GNU archive site}.

	E-mail: <bug-gnu-utils@gnu.org> (bugs).

	(1993-08-09)

GNU Smalltalk

	<language> A {GNU} version of {Smalltalk}, by Steven Byrne
	<sbb@eng.sun.com>.

	Version 1.1.1,

	{FTP} from your nearest {GNU archive site}.

	{msgGUI} is a {graphical user interface} library for GNU
	Smalltalk.

	(1991-09-15)

GNUStep

	<operating system> A {GNU} implementation of {OpenStep}.  Work
	has started on an implementation using an existing library
	written in {Objective-C}.  Much work remains to be done to
	bring this library close to the OpenStep specifications.  Adam
	Fedor is head of the project.

	{(http://gnustep.org/)}.

	[Current status?  Newsgroup?]

	(1999-11-25)

GNU superoptimiser

	(GSO) A function sequence generator that uses an exhaustive
	generate-and-test approach to find the shortest instruction
	sequence for a given function.  Written by Torbjorn Granlund
	<tege@gnu.ai.mit.edu> and Tom Wood.  You have to tell the
	superoptimiser which function and which {CPU} you want to get
	code for.  This is useful for compiler writers.

	FTP superopt-2.2.tar.Z from a {GNU archive site}.

	Generates code for {DEC} {Alpha}, {SPARC}, {Intel 80386},
	{88000}, {RS/6000}, {68000}, {29000} and {Pyramid} (SP, AP and
	XP).

	(1993-02-16)

Go

	<games, application> A thinking game with an oriental origin
	estimated to be around 4000 years old.  Nowadays, the game is
	played by millions of people in (most notably) China, Japan,
	Korea and Taiwan.  In the Western world the game is practised
	by a yearly increasing number of players.  On the {Internet}
	Go players meet, play and talk 24 hours/day on the {Internet
	Go Server} (IGS).

	{(http://cwi.nl/~jansteen/go/go.html)}.

	{Usenet} newsgroup: {news:rec.games.go}.

	(1995-03-17)

goal

	<programming> In {logic programming}, a {predicate} applied to
	its {arguments} which the system attempts to prove by matching
	it against the {clauses} of the program.  A goal may fail or
	it may succeed in one or more ways.

	(1997-07-14)

goal seek

	{what-if analysis}

Go Back N

	<networking> A {data link layer} {protocol}.

	[Details?]

	(2010-01-19)

gobble

	<jargon>

	1. To consume, usually used with "up".  "The output spy
	gobbles characters out of a {tty} output buffer."

	2. To obtain, usually used with "down".  "I guess I'll gobble
	down a copy of the documentation tomorrow."

	See also {snarf}.

	[{Jargon File}]

	(2010-01-19)

GObject Introspection

	<programming> A {GNOME} project that defines a {syntax} for
	{introspection annotation} {pragmas} to be used in the
	{GObject library} {source code}.  Rather than actual
	{introspection}, these are intended to allow automatic
	generation of {bindings} ({API}s) to expose the library to
	higher-level languages.  The sort of information provided is
	the type and direction (in, out, inout) of function parameters
	and the responsibility for freeing memory used by data
	structures.

	{GObject Introspection Home
	(http://live.gnome.org/GObjectIntrospection/)}.

	(2010-01-19)

Godwin's Law

	<usenet, humour> "As a {Usenet} discussion grows longer, the
	probability of a comparison involving Nazis or Hitler
	approaches one."  There is a tradition in many groups that,
	once this occurs, that {thread} is over, and whoever mentioned
	the Nazis has automatically lost whatever argument was in
	progress.  Godwin's Law thus practically guarantees the
	existence of an {upper bound} on thread length in those
	groups.  However there is also a widely recognised codicil
	that any intentional triggering of Godwin's Law in order to
	invoke its thread-ending effects will be unsuccessful.

	[{Jargon}].

	(2003-10-06)

Godzillagram

	<networking> /god-zil'*-gram/ (From Japan's national hero and
	{datagram}) 1. A {network packet} that in theory is a
	{broadcast} to every machine in the universe.  The typical
	case is an {IP} {datagram} whose destination IP address is
	[255.255.255.255].  Fortunately, few {gateways} are foolish
	enough to attempt to implement this case!

	2. A network packet of maximum size.  An {IP} Godzillagram has
	65,536 {octets}.  Compare {super source quench}.

	(2003-10-07)

Goedel

	<language> (After the mathematician {Kurt Gödel}) A
	{declarative}, general-purpose language for {artificial
	intelligence} based on {logic programming}.  It can be
	regarded as a successor to {Prolog}.  The {type system} is
	based on {many-sorted logic} with {parametric polymorphism}.
	Modularity is supported, as well as {infinite precision
	arithmetic} and {finite sets}.

	Goedel has a rich collection of system {modules} and provides
	{constraint} solving in several domains.  It also offers
	{metalogical} facilities that provide significant support for
	{metaprograms} that do analysis, transformation, compilation,
	verification, and debugging.

	A significant subset of Goedel has been implemented on top of
	{SISCtus Prolog} by Jiwei Wang <jiwei@lapu.bristol.ac.uk>.

	{FTP Bristol, UK (ftp://ftp.cs.bris.ac.uk/goedel)}, {FTP K U
	Leuven (ftp://ftp.cs.kuleuven.ac.be/pub/logic-prgm/goedel)}.

	E-mail: <goedel@compsci.bristol.ac.uk>.

	(1995-05-02)

go-faster stripes

	<jargon> {chrome}.  Mainstream in some parts of UK.

	[{Jargon File}]

	(1998-07-05)

Gofer

	<language> A {lazy} {functional language} designed by Mark
	Jones <mpj@cs.nott.ac.uk> at the {Programming Research Group},
	Oxford, UK in 1991.  It is very similar to {Haskell} 1.2.  It
	has {lazy evaluation}, {higher order functions}, {pattern
	matching}, and {type class}es, lambda, case, conditional and
	let expressions, and wild card, "as" and {irrefutable
	patterns}.  It lacks {modules}, {arrays} and standard
	{classes}.

	Gofer comes with an {interpreter} (in C), a {compiler} which
	compiles to {C}, documentation and examples.  Unix Version
	2.30 (1994-06-10) Mac_Gofer version 0.16 beta.  Ported to
	{Sun}, {Acorn} {Archimedes}, {IBM PC}, {Macintosh}, {Atari},
	{Amiga}.

	Version 2.30 added support for contexts in datatype and member
	function definitions, Haskell style {arrays}, an external
	function calling mechanism for gofc, an experimental
	implementation of Launchbury/Peyton Jones style lazy
	functional state threads, an experimental implementation of
	"do" notation for {monad comprehensions}.

	Latest version: {HUGS}.

	["Introduction to Gofer 2.20", M.P. Jones.]

	[The implementation of the Gofer functional programming
	system, Mark P. Jones, Research Report YALEU/DCS/RR-1030, Yale
	University, Department of Computer Science, May 1994.  FTP:
	nebula.cs.yale.edu/pub/yale-fp/reports].

	{(http://cs.nott.ac.uk/Department/Staff/mpj/)}.

	{FTP Yale (ftp://nebula.cs.yale.edu/)}, {FTP Glasgow
	(ftp://ftp.dcs.glasgow.ac.uk/)}, {FTP Chalmers
	(ftp://ftp.cs.chalmers.se/pub/haskell/gofer/)}.

	(1995-02-14)

Goffin

	<language> A {definitional constraint language} for
	{declarative} parallel programming.  Goffin systematically
	integrates {equational constraints} and functions within a
	uniform framework of {concurrent} programming.

	Goffin is an embedding of a functional language kernel
	({Haskell}) into a layer of constraint logic, which allows
	{logical variables} inside functional expressions.  In order
	to preserve {referential transparency}, functional {reduction}
	suspends until logical variables become bound.

	Logical variables are bound by equational constraints, which
	impose relations over expressions.  Hence, constraints are the
	means to structure the concurrent reduction of functional
	expressions.

	(1995-02-21)

go flatline

	[{Cyberpunk} SF, refers to flattening of EEG traces upon
	brain-death] also "flatlined". 1. To {die}, terminate, or
	fail, especially irreversibly.  In hacker parlance, this is
	used of machines only, human death being considered somewhat
	too serious a matter to employ jargon-jokes about.

	2. To go completely quiescent; said of machines undergoing
	controlled shutdown.  "You can suffer file damage if you shut
	down Unix but power off before the system has gone flatline."

	3. Of a video tube, to fail by losing vertical scan, so all
	one sees is a bright horizontal line bisecting the screen.

	[{Jargon File}]

GO-GO

	{ALPS}

go gold

	<testing> The point in the life of a software product where it
	is declared ready to release for sale.  This may be because it
	has reached sufficiently high quality (freedom from {bugs},
	etc.), or because it is financially expedient.

	(2004-08-02)

GOL

	General Operating Language.  Subsystem of {DOCUS}.  [Sammet
	1969, p.678].

golden

	[Probabaly from folklore's "golden egg"] When used to describe
	a magnetic medium (e.g. "golden disk", "golden tape"),
	describes one containing a tested, up-to-spec, ready-to-ship
	software version.  Compare {platinum-iridium}.

	[{Jargon File}]

golf ball printer

	{IBM 2741}

GOM

	Good Old MAD.

	Don Boettner, U Mich.  MAD for the IBM 360.  Parts of the MTS
	{time-sharing} system were written in GOM.

gonk

	<jargon> /gonk/ 1. To prevaricate or to embellish the truth
	beyond any reasonable recognition.  In German the term is
	(mythically) "gonken"; in Spanish the verb becomes "gonkar".
	"You're gonking me.  That story you just told me is a bunch of
	gonk."  In German, for example, "Du gonkst mir" (You're
	pulling my leg).

	See also {gonkulator}.

	2. (British) To grab some sleep at an odd time.

	Compare {gronk out}.

	[{Jargon File}]

	(1995-03-07)

gonkulator

	/gon'kyoo-lay-tr/ (From "Hogan's Heroes", the TV series) A
	pretentious piece of equipment that actually serves no useful
	purpose.  Usually used to describe one's least favourite piece
	of computer hardware.

	See {gonk}.

	[{Jargon File}]

	(1995-03-07)

GOOD

	{Graph-Oriented Object Database}

Good Thing

	<convention> (From the 1930 Sellar and Yeatman parody "1066
	And All That") Often capitalised; always pronounced as if
	capitalised.

	1. Self-evidently wonderful to anyone in a position to notice:
	"The {Trailblazer}'s 19.2 K{baud} {PEP} mode with {on-the-fly}
	{Lempel-Ziv compression} is a Good Thing for sites relaying
	{netnews}".

	2. Something that can't possibly have any ill side-effects and
	may save considerable grief later: "Removing the
	{self-modifying code} from that {shared library} would be a
	Good Thing".

	3. When said of software tools or libraries, as in "{Yacc} is
	a Good Thing", specifically connotes that the thing has
	drastically reduced a programmer's work load.

	Opposite: {Bad Thing}, compare {big win}.

	[{Jargon File}]

	(1995-05-07)

Google

	<World-Wide Web> The {World-Wide Web} {search engine} that
	indexes the greatest number of web pages - over two billion by
	December 2001 and provides a free service that searches this
	index in less than a second.

	The site's name is apparently derived from "{googol}", but
	note the difference in spelling.

	The "Google" spelling is also used in "The Hitchhikers Guide
	to the Galaxy" by Douglas Adams, in which one of Deep
	Thought's designers asks, "And are you not," said Fook,
	leaning anxiously foward, "a greater analyst than the
	Googleplex Star Thinker in the Seventh Galaxy of Light and
	Ingenuity which can calculate the trajectory of every single
	dust particle throughout a five-week Dangrabad Beta sand
	blizzard?"

	{(http://google.com/)}.

	(2001-12-28)

googol

	<mathematics> The number represented in base-ten by a one with
	a hundred zeroes after it.

	According to Webster's Dictionary, the name was coined in 1938
	by Milton Sirotta, the nine-year-old nephew of American
	mathematician, Edward Kasner.

	See also {googolplex}.

	(2001-03-29)

googolplex

	<mathematics> The number represented in base-ten by a one with
	a {googol} zeroes after it.

	(2001-03-29)

gopher

	<networking, protocol> A {distributed} document retrieval
	system which started as a {Campus Wide Information System} at
	the {University of Minnesota}, and which was popular in the
	early 1990s.

	Gopher is defined in {RFC 1436}.  The protocol is like a
	primitive form of {HTTP} (which came later).  Gopher lacks the
	{MIME} features of HTTP, but expressed the equivalent of a
	document's {MIME type} with a one-character code for the
	"{Gopher object type}".  At time of writing (2001), all Web
	browers should be able to access gopher servers, although few
	gopher servers exist anymore.

	{Tim Berners-Lee}, in his book "Weaving The Web" (pp.72-73),
	related his opinion that it was not so much the protocol
	limitations of gopher that made people abandon it in favor of
	HTTP/{HTML}, but instead the legal missteps on the part of the
	university where it was developed:

	"It was just about this time, spring 1993, that the University
	of Minnesota decided that it would ask for a license fee from
	certain classes of users who wanted to use gopher.  Since the
	gopher software being picked up so widely, the university was
	going to charge an annual fee.  The browser, and the act of
	browsing, would be free, and the server software would remain
	free to nonprofit and educational institutions.  But any other
	users, notably companies, would have to pay to use gopher
	server software.

	"This was an act of treason in the academic community and the
	Internet community.  Even if the university never charged
	anyone a dime, the fact that the school had announced it was
	reserving the right to charge people for the use of the gopher
	protocols meant it had crossed the line.  To use the
	technology was too risky.  Industry dropped gopher like a hot
	potato."

	(2001-03-31)

Gopher client

	<networking> A program which runs on your local computer and
	provides a {user interface} to the {Gopher} {protocol} and to
	gopher servers.  {Web browsers} can act as Gopher clients and
	simple Gopher-only clients are available for ordinary
	terminals, the {X Window System}, {GNU Emacs}, and other
	systems.

	{(ftp://boombox.micro.umn.edu/)}.

	(2001-03-31)

Gopher object type

	A character specifying how to display a {Gopher} document.
	Current types are:

	 0  document
	 1  menu
	 2  CSO phone book entity
	 3  error
	 4  binhex binary
	 5  DOS binary (deprecated)
	 6  UU  binary (deprecated)
	 7  index search
	 8  telnet connection
	 9  binary
	 +  duplicate server for previous object
	 I  image
	 M  MIME document
	 T  tn3270 based telnet connection
	 c  cal
	 g  GIF image
	 h  HTML
	 s  binary
	 u  {Usenet} newsgroup

	(1999-10-14)

Gopherspace

	<networking> The sum of all files that can be reached using
	{gopher}.

	(2005-06-08)

gorets

	/gor'ets/ The unknown ur-noun, fill in your own meaning.
	Found especially on the {Usenet} newsgroup alt.gorets, which
	seems to be a running contest to redefine the word by
	implication in the funniest and most peculiar way, with the
	understanding that no definition is ever final.  [A
	correspondent from the Former Soviet Union informs me that
	"gorets" is Russian for "mountain dweller" - ESR] Compare
	{frink}.

	[{Jargon File}]

gorilla arm

	The side-effect that destroyed touch-screens as a mainstream
	input technology despite a promising start in the early 1980s.
	It seems the designers of all those {spiffy} touch-menu
	systems failed to notice that humans aren't designed to hold
	their arms in front of their faces making small motions.
	After more than a very few selections, the arm begins to feel
	sore, cramped, and oversized - the operator looks like a
	gorilla while using the touch screen and feels like one
	afterward.  This is now considered a classic cautionary tale
	to human-factors designers; "Remember the gorilla arm!" is
	shorthand for "How is this going to fly in *real* use?".

go root

	[Unix] To temporarily enter {root mode} in order to perform a
	privileged operation.  This use is deprecated in Australia,
	where the verb "root" refers to animal sex.  See {su}.

	[{Jargon File}]

gorp

	/gorp/ (CMU, perhaps from the canonical hiker's food, Good Old
	Raisins and Peanuts) Another {metasyntactic variable}, like
	{foo} and {bar}.

GOSIP

	{Government OSI Profile}

Gosling, James

	{James Gosling}

GOSMACS

	/goz'maks/ Gosling Emacs.  The first {Emacs} implementation in
	{C}, predating but now largely eclipsed by {GNU} {Emacs}.
	Originally {freeware}; a commercial version is now modestly
	popular as {UniPress Emacs}.  The author (James Gosling) went
	on to invent {NeWS}.

	[{Jargon File}]

Gosperism

	/gos'p*r-izm/ A hack, invention, or saying due to arch-hacker
	R. William (Bill) Gosper.  This notion merits its own term
	because there are so many of them.  Many of the entries in
	{HAKMEM} are Gosperisms.

	See also {life}.

GOSPL

	Graphics-Oriented Signal Processing Language.  A graphical DSP
	language for simulation.

	["Graphic Oriented Signal Processing Language - GOSPL",
	C.D. Covington et al, Proc ICASSP-87, 1987].

gotcha

	<jargon, programming> A {misfeature} of a system, especially a
	programming language or environment, that tends to breed
	{bugs} or mistakes because it both enticingly easy to invoke
	and completely unexpected and/or unreasonable in its outcome.

	For example, a classic gotcha in {C} is the fact that

		if (a=b) {code;}

	is syntactically valid and sometimes even correct.  It puts
	the value of "b" into "a" and then executes "code" if "a" is
	non-zero.  What the programmer probably meant was

		if (a==b) {code;}

	which executes "code" if "a" and "b" are equal.

	[{Jargon File}]

	(1995-04-17)

goto

	<programming> (Or "GOTO", "go to", "GO TO", "JUMP", "JMP") A
	construct and {keyword} found in several higher-level
	programming languages (e.g. {Fortran}, {COBOL}, {BASIC}, {C})
	to cause an {unconditional jump} or transfer of {control} from
	one point in a program to another.  The destination of the
	jump is usually indicated by a {label} following the GOTO
	keyword.

	In some languages, a label is a line number, in which case
	every statement may be labelled, in others a label is an
	optional alphanumeric {identifier}.

	Use of the GOTO instruction in {high level language}
	programming fell into disrepute with the development and
	general acceptance of {structured programming}, and especially
	following the famous article "GOTO statement {considered
	harmful}".  Since a GOTO is effectively an {assignment} to the
	{program counter}, it is tempting to make the generalisation
	"assignment considered harmful" and indeed, this is the basis
	of {functional programming}.

	Nearly(?) all {machine language} {instruction sets} include a
	GOTO instruction, though in this context it is usually called
	branch or jump or some {mnemonic} based on these.

	See also {COME FROM}.

	(2000-12-13)

Gottlob Frege

	<person, history, philosophy, mathematics, logic, theory>
	(1848-1925) A mathematician who put mathematics on a new and
	more solid foundation.  He purged mathematics of mistaken,
	sloppy reasoning and the influence of {Pythagoras}.
	Mathematics was shown to be a subdivision of {formal logic}.

	[Where?]

	(1997-07-14)

gov

	<networking> The {top-level domain} for US government bodies.

	(1999-01-26)

governance

	{information technology governance}

Government OSI Profile

	<networking, standard> (GOSIP) A subset of {OSI} {standards}
	specific to US Government procurements, designed to maximize
	{interoperability} in areas where plain OSI standards are
	ambiguous or allow excessive options.

	(1995-12-13)

go voice

	<communications> When two or more parties stop communicating
	digitally and resuming the conversation via voice
	communication over the telephone.

	Prototypically this is used (e.g., "Wanna go voice?") between
	two modem users to denote the action of picking up the phone
	while shutting off the modem, in order to use the same line
	for voice communication as had was being used for data
	transmission.

	Compare: {Voice-Net}.

	(1997-01-31)

GP

	Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
	1959).

gp

	<networking> The {country code} for Guadeloupe.

	(1999-01-27)

GPF

	{General Protection failure}/fault

GPIB

	{IEEE 488}

GPL

	1. {General Purpose Language}.

	2. ["A Sample Management Application Program in a Graphical
	Data-driven Programming language", A.L. Davis et al, Digest of
	Papers, Compcon Spring 81, Feb 1981, pp. 162-167].

	3. {Genken Programming Language}.

	4. {General Public License}.

	[{Jargon File}]

GPM

	{General Purpose Macro-generator}

GPRS

	{General Packet Radio Service}

GPS

	{Global Positioning System}

GPSS

	General Purpose Systems Simulator.  Geoffrey Gordon, 1960.
	Discrete simulations.  "The Application of GPSS V to Discrete
	System Simulation", G.  Gordon, P-H 1975.  Versions include
	GPSS II (1963), GPSS III (1965), GPS/360 (1967), and GPSS V
	(1970).

GPV

	{General Public Virus}

GPX

	Early system on UNIVAC II.  Listed in CACM 2(5):16 (May 1959).

gq

	<networking> The {country code} for Equatorial Guinea.

	(1999-01-27)

gr

	<networking> The {country code} for Greece.

	(1999-01-27)

GRAAL

	("Grail") General Recursive Applicative and Algorithmic
	Language.  FP with polyadic combinators.  "Graal: A Functional
	Programming System with Uncurryfied Combinators and its
	Reduction Machine", P. Bellot in ESOP 86, G. Goos ed, LNCS
	213, Springer 1986.

grabber pointer

	<operating system> A {mouse pointer} {sprite} in the shape of
	a small hand that closes when a {mouse button} is clicked,
	indicating that the object on the screen under the pointer has
	been selected.

	(2012-07-08)

Grace Hopper

	<person> US Navy Rear Admiral Grace Brewster Hopper
	(1906-12-09 to 1992-01-01), née Grace Brewster Murray.

	Hopper is believed to have concieved the concept of the
	{compiler} with the {A-0} in 1952.  She also developed the
	first commercial {high-level language}, which eventually
	evolved into {COBOL}.  She worked on the {Mark I} computer
	with Howard Aiken and with {BINAC} in 1949.

	She is credited with having coined the term "debug", and the
	adage "it is always easier to ask forgiveness than it is to
	get permission" (with various wordings), which has been the
	guiding principle in {sysadmin} decisions ever since.

	See also the entries {debug} and {bug}.

	Hopper is buried at Arlington National Cemetery.  In 1994, the
	US Navy named a new ship, the guided-missile destroyer {USS
	Hopper (http://hopper.navy.mil/)}, after her.

	(1999-06-29)

GRAF

	GRaphic Additions to Fortran.

	{Fortran} plus graphic data types.

	["GRAF: Graphic Additions to Fortran", A. Hurwitz et al, Proc
	SJCC 30 (1967)].

	[Sammet 1969, p. 674].

	(1995-01-23)

Graffiti

	Handwriting recognition software for the {Newton} and {Zoomer}
	which recognises symbols that aren't necessarily letters.
	This gives greater speed and accuracy.  It was written by
	{Berkeley Softworks}.

	(1995-01-24)

GRAIL

	Graphical Input Language.

	A {flow chart} language entered on a graphics tablet.  The
	graphical follow-on to {JOSS}.

	["The GRAIL Language and Operations", T.O. Ellis et al,
	RM-6001-ARPA, RAND, Sept 1969].

	(1995-01-23)

GRAIN

	A pictorial {query language}.

	["Pictorial Information Systems", S.K.  Chang et al eds,
	Springer 1980].

	(1995-01-23)

grain

	{granularity}

GRAM

	An extension of {BNF} used by the {SIS} compiler generator.

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

	(1995-01-23)

grammar

	<language> A formal definition of the syntactic structure (the
	{syntax}) of a language.

	A grammar is normally represented as a set of {production
	rules} which specify the order of constituents and their
	sub-constituents in a {sentence} (a well-formed string in the
	language).  Each rule has a left-hand side symbol naming a
	syntactic category (e.g. "noun-phrase" for a {natural
	language} grammar) and a right-hand side which is a sequence
	of zero or more symbols.  Each symbol may be either a
	{terminal symbol} or a non-terminal symbol.  A terminal symbol
	corresponds to one "{lexeme}" - a part of the sentence with no
	internal syntactic structure (e.g. an identifier or an
	operator in a computer language).  A non-terminal symbol is
	the left-hand side of some rule.

	One rule is normally designated as the top-level rule which
	gives the structure for a whole sentence.

	A {parser} (a kind of {recogniser}) uses a grammar to parse a
	sentence, assigning a terminal syntactic category to each
	input token and a non-terminal category to each appropriate
	group of tokens, up to the level of the whole sentence.
	Parsing is usually preceded by {lexical analysis}.  The
	opposite, generation, starts from the top-level rule and
	chooses one alternative production wherever there is a choice.

	In computing, a formal grammar, e.g. in {BNF}, can be used to
	{parse} a linear input stream, such as the {source code} of a
	program, into a data structure that expresses the (or a)
	meaning of the input in a form that is easier for the computer
	to work with.  A {compiler compiler} like {yacc} might be used
	to convert a grammar into code for the parser of a {compiler}.
	A grammar might also be used by a {transducer}, a {translator}
	or a {syntax directed editor}.

	See also {attribute grammar}.

	(2009-02-06)

grammar analysis

	<language> A program written in {ABC} for answering such
	questions as "what are the start symbols of all rules", "what
	symbols can follow this symbol", "which rules are left
	recursive", and so on.  Includes a grammar of {ISO Pascal}.

	Version 1 by Steven Pemberton <Steven.Pemberton@cwi.nl>.
	Ports to {Unix}, {MS-DOS}, {Atari}, {Macintosh}.  FTP:
	ftp.eu.net, ftp.nluug.net
	programming/languages/abc/examples/grammar/.

	(1993-07-05)

grammatical inference

	Deducing a {grammar} from given examples.  Also known as
	"inductive inference" and recently as "computational
	learning".

Grandfather, Father, Son

	<operating system> (GFS) A {backup rotation} scheme in which a
	"grandfather" backup is performed on the first Monday of each
	month, a "father" backup is performed on every other Monday
	and a "son" backup is performed on every other day of the
	week.  Grandfather tapes are kept for a year, father tapes for
	a month and son tapes for a week.  The exact schedule (and
	thus the number of tapes required) may vary, as may the choice
	of {full backup} or {incremental backup}, but the idea is that
	it should be possible to restore versions of any file of
	different ages: e.g. yesterday's, last week's or last year's
	version.

	(2004-10-11)

granularity

	<jargon, parallel> The size of the units of {code} under
	consideration in some context.  The term generally refers to
	the level of detail at which code is considered, e.g. "You can
	specify the granularity for this profiling tool".

	The most common computing use is in {parallelism} or {concurrency}
	where "fine grain parallelism" means individual tasks are
	relatively small in terms of code size and execution time, "coarse
	grain" is the opposite.  You talk about the "granularity" of the
	parallelism.

	The smaller the granularity, the greater the potential for
	parallelism and hence speed-up but the greater the overheads
	of synchronisation and communication.

	(1997-05-08)

Grapes

	A {Modula}-like system description language.

	E-mail: <peter@cadlab.cadlab.de>.

	["GRAPES Language Description.  Syntax, Semantics and Grammar
	of GRAPES-86", Siemens Nixdorf Inform, Berlin 1991, ISBN
	3-8009-4112-0].

Grapevine

	A distributed system project.

	[Who?  Where?  Why?]

graph

	1. <mathematics> A collection of {nodes} and {edges}.

	See also {connected graph}, {degree}, {directed graph}, {Moore
	bound}, {regular graph}, {tree}.

	2. <graphics> A visual representation of algebraic equations
	or data.

	(1996-09-22)

Graph Algorithm and Software Package

	<library> (GASP) A {PL/I} extension for programming graph
	{algorithms}.

	["GASP - Gprah Algorithm Software Package", S. Chase, TR CS
	Dept, U Illinois, Dec 1969].

	(1998-02-27)

graph coloring

	{graph colouring}

graph colouring

	<application> A {constraint-satisfaction} problem often used
	as a test case in research, which also turns out to be
	equivalent to certain real-world problems (e.g. {register
	allocation}).  Given a {connected graph} and a fixed number of
	colours, the problem is to assign a colour to each node,
	subject to the constraint that any two connected nodes cannot
	be assigned the same colour.  This is an example of an
	{NP-complete} problem.

	See also {four colour map theorem}.

Graphic ALGOL

	<language> A extension of {ALGOL 60} for {real-time}
	generation of shaded perspective pictures.

	["An Extended ALGOL 60 for Shaded Computer Graphics",
	B. Jones, Proc ACM Symp on Graphic Languages, Apr 1976].

	(2011-03-08)

Graphical Kernel System

	<graphics, standard> (GKS) The widely recognised standard
	{ANSI} X3.124 for graphical input/output.  GKS is worked on by
	the {ISO}/{IEC} group {JTC1/SC24}.  It provides applications
	programmers with standard methods of creating, manipulating,
	and displaying or printing computer graphics on different
	types of computer graphics output devices.  It provides an
	abstraction to save programmers from dealing with the detailed
	capabilities and interfaces of specific hardware.

	GKS defines a basic two-dimensional graphics system with:
	uniform input and output {primitives}; a uniform interface to
	and from a {GKS metafile} for storing and transferring
	graphics information.  It supports a wide range of graphics
	output devices including such as {printers}, {plotters},
	{vector graphics} devices, {storage tubes}, {refresh
	displays}, {raster displays}, and {microfilm recorders}.

	(1999-04-01)

Graphical User Interface

	<operating system> (GUI) The use of pictures rather than just
	words to represent the input and output of a program.  A
	program with a GUI runs under some {windowing system}
	(e.g. The {X Window System}, {MacOS}, {Microsoft Windows},
	{Acorn} {RISC OS}, {NEXTSTEP}).  The program displays certain
	{icons}, {buttons}, {dialogue boxes}, etc. in its {windows} on
	the screen and the user controls it mainly by moving a
	{pointer} on the screen (typically controlled by a {mouse})
	and selecting certain objects by pressing buttons on the mouse
	while the pointer is pointing at them.  This contrasts with a
	{command line interface} where communication is by exchange of
	strings of text.

	Windowing systems started with the first {real}-time graphic
	display systems for computers, namely the {SAGE} Project
	[Dates?] and {Ivan Sutherland}'s {Sketchpad} (1963).  {Douglas
	Engelbart}'s {Augmentation of Human Intellect} project at
	{SRI} in the 1960s developed the {On-Line System}, which
	incorporated a mouse-driven cursor and multiple windows.
	Several people from Engelbart's project went to Xerox PARC in
	the early 1970s, most importantly his senior engineer, {Bill
	English}.  The Xerox PARC team established the {WIMP} concept,
	which appeared commercially in the {Xerox 8010} (Star) system
	in 1981.

	Beginning in 1980(?), led by {Jef Raskin}, the {Macintosh}
	team at {Apple Computer} (which included former members of the
	Xerox PARC group) continued to develop such ideas in the first
	commercially successful product to use a GUI, the Apple
	Macintosh, released in January 1984.  In 2001 Apple introduced
	{Mac OS X}.

	{Microsoft} modeled the first version of {Windows}, released
	in 1985, on Mac OS.  Windows was a GUI for {MS-DOS} that had
	been shipped with {IBM PC} and compatible computers since
	1981.  Apple sued Microsoft over infringement of the
	look-and-feel of the MacOS.  The court case ran for many
	years.

	[Wikipedia].

	(2002-03-25)

Graphic Display Interface

	<hardware> (GDI) {graphics adaptor}.

	(1995-03-16)

Graphic Language

	For specifying graphic operations.

	["A Problem Oriented Graphic Language", P.J. Schwinn, proc ACM
	22nd Natl Conf, 1967].

	[Sammet 1969, p. 677].

graphics

	<graphics> Any kind of visible output including {text},
	{images}, {movies}, {line art} and {digital photographs};
	stored in {bitmap} or {vector graphic} form.

	Most modern computers can display non-{text} data and most use
	a {graphical user interface} (GUI) for virtually all
	interaction with the user.  Special {hardware}, typically some
	kind of {graphics adaptor}, is required to allow the computer
	to display graphics (as opposed to, say, printing text on a
	{teletype}) but since GUIs became ubiquitous this has become
	the default form of visual output.  The most demanding
	applications for computer graphics are those where the
	computer actually generates moving images in {real time},
	especially in {video games}.

	There are many kinds of {software} devoted to manipulating
	graphical data, including image editing (e.g. {Photoshop}),
	{drawing} (e.g. {Illustrator}), user interface toolkits
	(e.g. {X Window System}), {CAD}, {CGI}.

	(2009-06-24)

graphics accelerator

	<graphics, hardware> {Hardware} (often an extra circuit board)
	to perform tasks such as plotting lines and surfaces in two or
	three dimensions, filling, shading and hidden line removal.

	(1997-07-14)

graphics adapter

	{graphics adaptor}

graphics adaptor

	<hardware, graphics> (Or "graphics adapter", "graphics card",
	"video adaptor", etc.) A circuit board fitted to a computer,
	especially an {IBM PC}, containing the necessary {video
	memory} and other electronics to provide a {bitmap display}.

	Adaptors vary in the {resolution} (number of {pixels}) and
	number of colours they can display, and in the {refresh rate}
	they support.  These parameters are also limited by the
	{monitor} to which the adaptor is connected.  A number of such
	{display standards}, e.g. {SVGA}, have become common and
	different {software} requires or supports different sets.

	(1996-09-16)

graphics card

	{graphics adaptor}

Graphics Interchange Format

	<graphics, file format> /gif/, occasionally /jif/ (GIF, GIF
	89A) A standard for digitised {images} compressed with the
	{LZW} {algorithm}, defined in 1987 by {CompuServe} (CIS).

	Graphics Interchange Format and GIF are service marks of
	{CompuServe} Incorporated.  This only affects use of GIF
	within Compuserve, and pass-through licensing for software to
	access them, it doesn't affect anyone else's use of GIF.  It
	followed from a 1994 legal action by {Unisys} against CIS for
	violating Unisys's {LZW} {software patent}.  The CompuServe
	Vice President has stated that "CompuServe is committed to
	keeping the GIF 89A specification as an open, fully-supported,
	non-proprietary specification for the entire on-line community
	including the {World-Wide Web}".

	{Filename extension}: .gif.

	{File format (ftp://peipa.essex.ac.uk/ipa/info/file-formats)}.

	{GIF89a specification
	(http://asterix.seas.upenn.edu/~mayer/lzw_gif/gif89a.html)}.

	See also {progressive coding}, {animated GIF}.

	(2000-09-12)

Graphics Interface Format

	<spelling> You mean "{Graphics Interchange Format}".

	(1999-10-11)

Graphics Language Object System

	<graphics, language> (GLOS) A language with statements for
	describing graphics objects (line, circle, polygon, etc.),
	written by Michael J McLean and Brian Hicks at the University
	of Queensland, St. Lucia in 1978.  New objects are defined
	using {procedures}.  2-D transformations are context dependent
	and may be nested.

	[M.J. McLean, "The Semantics of Computer Drafting Languages",
	PhD thesis, University of Queensland, 1978].

	[Hicks, B.W., and McLean, M.J. "A Graphic Language for
	Describing Line Objects", Proceedings of the DECUS-Australia
	August 1973 Symposium, Melbourne, 1973].

	(2002-06-01)

graphic workstation

	<graphics, computer> A {workstation} specifically configured
	for graphics works such as {image manipulation}, {bitmap
	graphics} ("paint"), and {vector graphics} ("draw") type
	applications.  Such work requires a powerful {CPU} and a high
	{resolution} display.

	A graphic workstation is very similar to a {CAD} workstation
	and, given the typical specifications of personal computers
	currently available in 1999, the distinctions are very blurred
	and are more likely to depend on availability of specific
	{software} than any detailed hardware requirements.

	(1999-05-04)

Graph-Oriented Object Database

	<language, database> (GOOD) A graph manipulation language for
	use as a {database query language}.

	["A Graph-Oriented Object Database Model", M. Gyssens et al,
	Proc ACM Symp Princs of Database Sys, Mar 1990].

	(1995-03-07)

graph plotter

	{plotter}

graph reduction

	A technique invented by Chris Wadsworth where an expression is
	represented as a {directed graph} (usually drawn as an
	inverted tree).  Each node represents a function call and its
	subtrees represent the arguments to that function.  Subtrees
	are replaced by the expansion or value of the expression they
	represent.  This is repeated until the tree has been reduced
	to a value with no more function calls (a {normal form}).

	In contrast to {string reduction}, graph reduction has the
	advantage that common subexpressions are represented as
	pointers to a single instance of the expression which is only
	reduced once.  It is the most commonly used technique for
	implementing {lazy evaluation}.

graph rewriting system

	An extension of a {term rewriting system} which uses {graph
	reduction} on terms represented by {directed graphs} to avoid
	duplication of work by sharing expressions.

GRAPPLE

	GRAPh Processing LanguagE.  1968.

	["A Directed Graph Representation for Computer Simulation of
	Belief Systems", L.G. Tesler et al, Math Biosciences 2:19-40
	(1968)].

GRAS

	A {public domain} {graph-oriented database} system for
	{software engineering} applications from {RWTH Aachen}.

GRASP/Ada

	Graphical Representation of Algorithms, Structures and
	Processes.

	["A Graphically Oriented Specification Language for Automatic
	Code Generation", J.H. Cross, Auburn U, NASA CR-183212, 1989].

GRASPIN

	An Esprit project to develop a personal software engineering
	environment to support the construction and verification of
	distributed and non-sequential software systems.

grault

	/grawlt/ Yet another {metasyntactic variable}, invented by
	Mike Gallaher and propagated by the {GOSMACS} documentation.
	See {corge}.

	[{Jargon File}]

Gray

	A {parser generator} written in {Forth} by Martin Anton Ertl
	<anton@mips.complang.tuwien.ac.at>.  Gray takes grammars in an
	{extended BNF} and produces executable Forth code for
	{recursive descent parsers}.  There is no special support for
	error handling.  Version 3 runs under {Tile Forth} Release 2
	by Mikael Patel.

	(1992-05-22)

graybar land

	<jargon> The place you go while you're staring at a computer
	that's processing something very slowly (while you watch the
	grey bar creep across the screen).

	"I was in graybar land for hours, waiting for that CAD
	rendering".

	(1997-04-17)

Gray code

	<hardware> A {binary} sequence with the property that only one
	{bit} changes between any two consecutive elements (the two
	codes have a {Hamming distance} of one).

	The Gray code originated when {digital logic} circuits were
	built from {vacuum tubes} and electromechanical {relays}.
	Counters generated tremendous power demands and noise spikes
	when many bits changed at once.  E.g. when incrementing a
	register containing 11111111, the {back-EMF} from the relays'
	collapsing magnetic fields required copious noise suppression.
	Using Gray code counters, any increment or decrement changed
	only one bit, regardless of the size of the number.

	Gray code can also be used to convert the angular position of
	a disk to digital form.  A radial line of sensors reads the
	code off the surface of the disk and if the disk is half-way
	between two positions each sensor might read its bit from both
	positions at once but since only one bit differs between the
	two, the value read is guaranteed to be one of the two valid
	values rather than some third (invalid) combination (a
	{glitch}).

	One possible {algorithm} for generating a Gray code sequence
	is to toggle the lowest numbered bit that results in a new
	code each time.  Here is a four bit Gray code sequence
	generated in this way:

		0 0 0 0
		0 0 0 1
		0 0 1 1
		0 0 1 0
		0 1 1 0
		0 1 1 1
		0 1 0 1
		0 1 0 0
		1 1 0 0
		1 1 0 1
		1 1 1 1
		1 1 1 0
		1 0 1 0
		1 0 1 1
		1 0 0 1
		1 0 0 0

	The codes were patented in 1953 by Frank Gray, a {Bell Labs}
	researcher.

	{(http://nist.gov/dads/HTML/graycode.html)}.

	(2002-08-29)

gray-scale

	<spelling> US spelling of "{grey-scale}".

<gr&d>

	<chat> Grinning, running and ducking.

	See {emoticon}.

	(1995-03-17)

GRE

	{Generic Routing Encapsulation}

greater than

	<character> ">" {ASCII} character 62.

	Common names: {ITU-T}: greater than; ket ("<" = bra); right
	angle; right angle bracket; right broket.  Rare: into,
	toward; write to; blow ("<" = suck); gozinta; out; zap (all
	from {Unix} {I/O redirection}); {INTERCAL}: right angle.

	See also {less than}.

	(1995-03-17)

greatest common divisor

	<mathematics> (GCD) A function that returns the largest
	positive {integer} that both arguments are integer multiples
	of.

	See also {Euclid's Algorithm}.  Compare: {lowest common
	multiple}.

	(1999-11-02)

greatest lower bound

	<theory> (glb, meet, infimum) The greatest lower bound of two
	elements, a and b is an element c such that c <= a and c <= b
	and if there is any other lower bound c' then c' <= c.

	The greatest lower bound of a set S is the greatest element b
	such that for all s in S, b <= s.  The glb of mutually
	comparable elements is their minimum but in the presence of
	incomparable elements, if the glb exists, it will be some
	other element less than all of them.

	glb is the dual to {least upper bound}.

	(In {LaTeX} "<=" is written as {\sqsubseteq}, the glb of two
	elements a and b is written as a {\sqcap} b and the glb of set
	S as \bigsqcap S).

	(1995-02-03)

Great Renaming

	<Usenet, history> The {flag day} in 1986 on which all of the
	non-local groups on the {Usenet} had their names changed from
	the net.- format to the current multiple-hierarchies scheme.
	Used especially in discussing the history of newsgroup names.
	"The oldest sources group is comp.sources.misc; before the
	Great Renaming, it was net.sources."

	{FAQ (http://vrx.net/usenet/history/rename.html)}.

	[{Jargon File}]

	(2000-07-14)

Great Runes

	Uppercase-only text or display messages.  Some archaic
	{operating systems} still emit these.

	See also {runes}, {smash case}, {fold case}.

	Decades ago, back in the days when it was the sole supplier of
	long-distance hardcopy transmittal devices, the Teletype
	Corporation was faced with a major design choice.  To shorten
	code lengths and cut complexity in the printing mechanism, it
	had been decided that teletypes would use a monocase font,
	either ALL UPPER or all lower.  The Question Of The Day was
	therefore, which one to choose.  A study was conducted on
	readability under various conditions of bad ribbon, worn print
	hammers, etc.  Lowercase won; it is less dense and has more
	distinctive letterforms, and is thus much easier to read both
	under ideal conditions and when the letters are mangled or
	partly obscured.  The results were filtered up through
	{management}.  The chairman of Teletype killed the proposal
	because it failed one incredibly important criterion:

	  "It would be impossible to spell the name of the Deity
	  correctly."

	In this way (or so, at least, hacker folklore has it)
	superstition triumphed over utility.  Teletypes were the major
	input devices on most early computers, and terminal
	manufacturers looking for corners to cut naturally followed
	suit until well into the 1970s.  Thus, that one bad call stuck
	us with Great Runes for thirty years.

	(1994-12-02)

Great Worm

	{Internet Worm}

greek

	1. <text, graphics> To display text as abstract dots and lines
	in order to give a preview of layout without actually being
	legible.  This is faster than drawing the characters correctly
	which may require scaling or other transformations.  Greeking
	is particularly useful when displaying a reduced image of a
	document where the text would be too small to be legible on
	the display anyway.

	A related technique is {lorem ipsum}.

	(2006-09-18)

greeking

	{greek}

Green

	<language> A language proposed by Cii {Honeywell-Bull} to meet
	the DoD {Ironman} requirements which led to {Ada}.  This
	language won in 1979.

	["On the GREEN Language Submitted to the DoD", E.W. Dijkstra,
	SIGPLAN Notices 13(10):16-21 (Oct 1978)].

	(1994-12-02)

Green Book

	1.  <publication> Informal name for one of the four standard
	references on {PostScript}.  The other three official guides
	are known as the {Blue Book}, the {Red Book}, and the {White
	Book}.

	["PostScript Language Program Design", Adobe Systems,
	Addison-Wesley, 1988 (ISBN 0-201-14396-8)].

	2. <publication> Informal name for one of the three standard
	references on {SmallTalk}.  Also associated with blue and red
	books.

	["Smalltalk-80: Bits of History, Words of Advice", by Glenn
	Krasner (Addison-Wesley, 1983; QA76.8.S635S58; ISBN
	0-201-11669-3)].

	3.  <publication> The "X/Open Compatibility Guide", which
	defines an international standard {Unix} environment that is a
	proper superset of {POSIX}/SVID.  It also includes
	descriptions of a standard utility toolkit, systems
	administrations features, and the like.  This grimoire is
	taken with particular seriousness in Europe.  See {Purple
	Book}.

	4.  <publication> The {IEEE} 1003.1 {POSIX} Operating Systems
	Interface standard has been dubbed "The Ugly Green Book".

	5.  <publication> Any of the 1992 standards issued by the
	{ITU-T}'s tenth plenary assembly.  These include, among other
	things, the dreadful {X.400} {electronic mail} standard and
	the Group 1 through 4 fax standards.

	6. {Green Book CD-ROM}.

	See also {book titles}.

	[{Jargon File}]

	(1996-12-03)

Green Book CD-ROM

	A standard {CD-ROM} format developed by {Philips} for {CD-i}.
	It is {ISO 9660} compliant and uses mode 2 form 2 addressing.
	It can only be played on drives which are XA ({Extended
	Architecture}) compatible.

	Many Green Book discs contain {CD-i} applications which can
	only be played on a {CD-i} player but many others contain
	films or music videos.  Video CDs in Green Book format are
	normally labelled "Digital Video on CD"

	Green Book was obsoleted by {White book CD-ROM} in March 1994.

	(1994-11-02)

green bytes

	<jargon> (Or "green words") {Meta-information} embedded in a
	file, such as the length of the file or its name; as opposed
	to keeping such information in a separate description file or
	record.

	By extension, the non-data bits in any self-describing format.
	"A {GIF} file contains, among other things, green bytes
	describing the packing method for the image".

	At a meeting of the SHARE Systems Division, November 22, 1964,
	in Washington, DC, George Mealy of {IBM} described the new
	block tape format for {FORTRAN} in which unformatted binary
	records had a Control Word.  George used green chalk to
	describe it.  No one liked the contents of the Green Word (not
	information, wrong location, etc.) so Conrad Weisert and
	Channing Jackson made badges saying "Stamp out Green Words".
	This was the first computer badge.

	Compare {out-of-band}, {zigamorph}, {fence}.

	{Button 251 (http://mxg.com/thebuttonman/search.asp)}.

	[{Jargon File}]

	(1994-11-02)

green card

	[after the "IBM System/360 Reference Data" card] A summary of
	an assembly language, even if the colour is not green.  Less
	frequently used now because of the decrease in the use of
	assembly language.  "I'll go get my green card so I can check
	the {addressing mode} for that instruction."  Some green cards
	are actually booklets.

	The original green card became a yellow card when the
	System/370 was introduced, and later a yellow booklet.  An
	anecdote from IBM refers to a scene that took place in a
	programmers' terminal room at Yorktown in 1978.  A luser
	overheard one of the programmers ask another "Do you have a
	green card?"  The other grunted and passed the first a thick
	yellow booklet.  At this point the luser turned a delicate
	shade of olive and rapidly left the room, never to return.

	[{Jargon File}]

green lightning

	[IBM] 1. Apparently random flashing streaks on the face of
	3278-9 terminals while a new symbol set is being downloaded.
	This hardware bug was left deliberately unfixed, as some
	genius within IBM suggested it would let the user know that
	"something is happening".  That, it certainly does.  Later
	microprocessor-driven IBM colour graphics displays were
	actually *programmed* to produce green lightning!

	2. [proposed] Any bug perverted into an alleged feature by
	adroit rationalisation or marketing.  "Motorola calls the CISC
	{cruft} in the 88000 architecture "compatibility logic", but I
	call it green lightning".  See also {feature}.

green machine

	A computer or peripheral device that has been designed and
	built to military specifications for field equipment (that is,
	to withstand mechanical shock, extremes of temperature and
	humidity, and so forth).  Comes from the olive-drab "uniform"
	paint used for military equipment.

	[{Jargon File}]

green monitor

	{Advanced Power Management}

Green's Theorem

	<humour> (TMRC) For any story, in any group of people there
	will be at least one person who has not heard the story.  A
	refinement of the theorem states that there will be *exactly*
	one person (if there were more than one, it wouldn't be as bad
	to re-tell the story).  The name of this theorem is a play on
	a fundamental theorem in calculus.

	[{Jargon File}]

	(1994-12-16)

Greenwich Mean Time

	<time, standard> (GMT) The local time on the Greenwich
	meridian, based on the hypothetical mean sun (which averages
	out the effects of the Earth's elliptical orbit and its tilted
	axis).  GMT is the basis of the civil time for the UK.

	In 1925 the reference point was changed from noon to midnight
	and it was recommended that the term "{Universal Time}" should
	be used for the new GMT.

	Authorities disagreed on whether GMT equates with {UT0} or
	{UT1}, however the differences between the two are of the
	order of thousandths of a second.  GMT is no longer used for
	scientific purposes.

	(2001-08-02)

green words

	{green bytes}

Greg Olson

	<person> President and CEO of {Sendmail Inc.}.  Olson is an
	industry veteran who worked on {distributed systems} at
	{Summit Systems Inc.}  then at {Britton Lee Inc.}, {Sybase
	Inc.} and {Integrated Systems Inc.}.

	(1998-08-25)

Gregorian calendar

	<time> The system of dates used by most of the world.  The
	Gregorian calendar was proposed by the Calabrian doctor
	Aloysius Lilius and was decreed by, and named after, Pope
	Gregory XIII on 1582-02-24.  It corrected the Julian calendar
	whose years were slightly longer than the solar year.  It also
	replaced the lunar calendar which was also out of time with
	the seasons.  The correction was achieved by skipping several
	days as a one-off resynchronisation and then dropping three
	leap days every 400 hundred years.  In the revised system,
	leap years are all years divisible by 4 but excluding those
	divisible by 100 but including those divisible by 400.  This
	gives a mean calendar year of 365.2425 days = 52.1775 weeks =
	8,765.82 hours = 525,949.2 minutes = 31,556,952 seconds.
	{leap seconds} are occasionally added to this to correct for
	irregularities in the Earth's rotation.

	(2007-01-10)

grep

	<tool, information science> <tool> A {Unix} command for
	searching files for lines matching a given {regular
	expression} (RE).  Named after the {qed}/{ed} editor
	subcommand "g/re/p", where re stands for a regular expression,
	to Globally search for the Regular Expression and Print the
	lines containing matches to it.  There are two other variants,
	fgrep which searches only for fixed strings and {egrep} which
	accepts extended REs but is usually the fastest of the three.

	Used by extension to mean "to look for something by pattern".
	When browsing through a large set of files, one may speak of
	"grepping around".  "Grep the bulletin board for the system
	backup schedule, would you?"  See also {vgrep}.

	[{Jargon File}]

grey-scale

	<graphics> (US "gray-scale") 1. Composed of (discrete) shades
	of grey.  If the {pixels} of a grey-scale {image} have N
	{bits}, they may take values from zero, representing black up
	to 2^N-1, representing white with intermediate values
	representing increasingly light shades of grey.  If N=1 the
	image is not called grey-scale but could be called
	{monochrome}.

	2. A range of acurately known shades of grey printed out for
	use in calibrating those shades on a display or printer.

	(1995-03-17)

Greystone Technologies

	<company> The producers of the {GT/M} {MUMPS} compiler and
	{GT/SQL} {pre-processor} for {VAX} and {DEC Alpha}.

	[Address?]

	(1995-01-10)

GRG

	A computer algebra system for differential geometry,
	gravitation and field theory.  Version 3.1 works with
	PSL-based REDUCE 3.3 or 3.4.

	E-mail: V.V. Zhytnikov <vvzhy@phy.ncu.edu.tw>.

	(1994-12-16)

GRIB

	GRid In Binary.

	The World Meteorological Organization's data format.

	(1995-01-10)

grick

	/grik/ ({WPI}, first used by Tim Haven to describe "grick
	trigonometry", a shortcut method of determing attack angles in
	grid-based games like Star Trek) Any integral increment of
	measurement.  E.g. "Please turn the stereo up a few gricks".

	(1995-01-31)

grilf

	Girl-friend.

	Like {newsfroup} and {filk}, a typo incarnated as a new word.
	Seems to have originated sometime in 1992.

	[{Jargon File}]

	(1995-01-31)

Grim File Reaper

	<storage, operating system> (GFR) An {ITS} and {LISP Machine}
	utility to remove files according to some program-automated or
	semi-automatic manual procedure, especially one designed to
	reclaim mass storage space or reduce name-space clutter (the
	original GFR actually moved files to tape).

	See also {prowler}, {reaper}.  Compare {GC}, which discards
	only provably worthless stuff.

	(1996-06-20)

GRIND

	GRaphical INterpretive Display.

	A graphics input language for the {PDP-9}.

	["GRIND: A Language and Translator for Computer Graphics",
	A.P. Conn, Dartmouth, June 1969].

	[{Jargon File}]

	(1995-01-31)

grind

	1. (MIT and Berkeley) To prettify hardcopy of code, especially
	LISP code, by reindenting lines, printing keywords and
	comments in distinct fonts (if available), etc.  This usage
	was associated with the MacLISP community and is now rare;
	{prettyprint} was and is the generic term for such operations.

	2. (Unix) To generate the formatted version of a document from
	the {nroff}, {troff}, {TeX}, or Scribe source.

	3. To run seemingly interminably, especially (but not
	necessarily) if performing some tedious and inherently useless
	task.  Similar to {crunch} or {grovel}.  Grinding has a
	connotation of using a lot of CPU time, but it is possible to
	grind a disk, network, etc.

	See also {hog}.

	4. To make the whole system slow.  "Troff really grinds a
	PDP-11."

	5. "grind grind" excl. Roughly, "Isn't the machine slow
	today!"

	[{Jargon File}]

	(1994-12-16)

grind crank

	A mythical accessory to a {terminal}.  A crank on the side of
	a monitor, which when operated makes a zizzing noise and
	causes the computer to run faster.  Usually one does not refer
	to a grind crank out loud, but merely makes the appropriate
	gesture and noise.  See {grind}.

	Historical note: At least one real machine actually had a
	grind crank - the R1, a research machine built toward the
	end of the days of the great vacuum tube computers, in 1959.
	R1 (also known as "The Rice Institute Computer" (TRIC) and
	later as "The Rice University Computer" (TRUC)) had a
	{single-step}/free-run switch for use when debugging programs.
	Since single-stepping through a large program was rather
	tedious, there was also a crank with a cam and gear
	arrangement that repeatedly pushed the single-step button.
	This allowed one to "crank" through a lot of code, then slow
	down to single-step for a bit when you got near the code of
	interest, poke at some registers using the console typewriter,
	and then keep on cranking.

	[{Jargon File}]

GRIP

	Graph Reduction In Parallel.

	Simon Peyton Jones's GRIP machine built at {UCL}, now at the
	{University of Glasgow}.  It has many processors ({Motorola
	68020} or other) on {Futurebus} with intelligent memory units.

	(1994-12-14)

gripenet

	[IBM] A wry (and thoroughly unofficial) name for {IBM}'s
	internal {VNET} system, deriving from its common use by IBMers
	to voice pointed criticism of IBM management that would be
	taboo in more formal channels.

	[{Jargon File}]

gritch

	/grich/ 1.  A complaint (often caused by a {glitch}).

	2. To complain.  Often verb-doubled: "Gritch gritch".

	3. A synonym for {glitch} (as verb or noun).

	(1995-01-31)

grix

	/griks/ ({WPI}) A meta-number, said to be an integer between 6
	and 7.  Used either alone or with {flib} or suffixes such as
	-ty, -teen, etc. to denote an arbitrary integer (see {N}).
	"This system will {bomb} if there are grixty-flib users on
	it."

	(1995-01-31)

groff

	GNU roff.

	{GNU}'s implementation of {roff} in {C++}.

	See also {nroff}, {troff}.

	Version 1.07 by James J. Clark <jjc@jclark.com>.

	FTP groff-1.07.tar.z from a {GNU archive site}.

	(1993-03-03)

grok

	/grok/, /grohk/ (From the novel "Stranger in a Strange Land",
	by Robert A. Heinlein, where it is a Martian word meaning
	literally "to drink" and metaphorically "to be one with")

	1. To understand, usually in a global sense.  Connotes
	intimate and exhaustive knowledge.

	Contrast {zen}, which is similar supernal understanding
	experienced as a single brief flash.  See also {glark}.

	2. Used of programs, may connote merely sufficient
	understanding.  "Almost all C compilers grok the "void" type
	these days."

	[{Jargon File}]

	(1995-01-31)

gronk

	/gronk/ Popularised by Johnny Hart's comic strip "B.C." but
	the word apparently predates that.

	1. To clear the state of a {wedged} device and restart it.
	More severe than "to {frob}" (sense 2).

	2. [TMRC] To cut, sever, smash, or similarly disable.

	3. The sound made by many 3.5-inch diskette drives.  In
	particular, the microfloppies on a Commodore {Amiga} go
	"grink, gronk".

	[{Jargon File}]

gronked

	1. Broken.  "The teletype scanner was gronked, so we took the
	system down."

	2. Of people, the condition of feeling very tired or (less
	commonly) sick.  "I've been chasing that bug for 17 hours now
	and I am thoroughly gronked!"  Compare {broken}, which means
	about the same as {gronk} used of hardware, but connotes
	depression or mental/emotional problems in people.

group

	A group G is a non-empty {set} upon which a {binary} operator
	* is defined with the following properties for all a,b,c in G:

	  Closure:     G is closed under *,  a*b in G
	  Associative: * is associative on G, (a*b)*c = a*(b*c)
	  Identity:    There is an identity element  e  such that
		       a*e = e*a = a.
	  Inverse:     Every element has a unique inverse a' such that
		       a * a' = a' * a = e.  The inverse is usually
		       written with a superscript -1.

	(1998-10-03)

Group 3

	<protocol, compression> (G3) The {CCITT} fax {protocol} which
	uses data {compression} and allows a variety of file types
	(e.g. {electronic mail}, pictures, {PostScript}) to be
	transmitted over {analogue} telephone lines.

	The Group 3 protocol was published by {CCITT} in 1993.  Full
	details of the protocol are available from {ITU-T}.

	See also {Group 4}.

	(1998-10-03)

Group 4

	<protocol, compression> (G4) The {CCITT} fax {protocol} which
	uses data {compression} and allows a variety of file types
	(e-mail, pictures, {PostScript}, etc.) to be transmitted over
	digital ({ISDN}) telephone lines.

	The Group 4 protocol was published by {CCITT} in 1993.  Full
	details of the protocol are available from {ITU-T}.

	See also {Group 3}.

	(1998-09-10)

Group Code Recording

	<storage> (GCR) A recording method used for 6250 BPI {magnetic
	tapes}.

	GCR typically uses a group of five {bits} of code to represent
	four bits of data.  The encoding ensures no more than two or
	three zeros occur in a row, and no more than eight or so ones
	occur in a row, where zeros represent an absense of magnetic
	change.

	GCR is also used on {Commodore Business Machines} {diskette}
	drives; the 4040, 8050, 154x, 157x and 158x series of 5.25"
	and 3.5" low and high density diskette drives used with 8-bit
	home computers circa 1977 to 1992.  It was also supported on
	{Amiga} internal and external drives but only used for reading
	non-Amiga disks.

	Compare {NRZI}, {PE}.

	(2004-06-01)

group identifier

	<operating system> (gid) A unique number, between 0 an 32767,
	identifying a set of {users} under {Unix}.  Gids are found in
	the /etc/{passwd} and /etc/group databases (or their {NIS}
	equivalents) and one is also associated with each file,
	indicating the group to which its group {permissions} apply.

	(1996-12-01)

Group Separator

	<character> (GS) {ASCII} character 29.

	(1996-06-28)

Group-Sweeping Scheduling

	<storage, algorithm> (GSS) A disk scheduling strategy in which
	requests are served in cycles, in a round-robin manner.  To
	reduce disk arm movements ("{seek}ing"), the set of streams is
	divided into groups that are served in fixed order.  Streams
	within a group are served according to "{SCAN}".

	If all clients are assigned to one group, GSS reduces to SCAN,
	and if all clients are assigned to separate groups, GSS
	effectively becomes round-robin scheduling.  The service order
	within one group is not fixed, and a stream may in fact be
	first in one cycle while last in the next.  This variation has
	to be masked by extra buffering but whereas SCAN requires
	buffer space for all streams, GSS can reuse the buffer for
	each group and effect a trade-off between {seek optimisation}
	and buffer requirements.

	(1995-11-12)

Groupware

	{CSCW}

Groupwise

	<software, networking> A {workgroup} application suite
	offering {electronic mail} and diary scheduling from {Novell,
	Inc.}. It can operate on a number of {platforms}.

	Groupwise was previously known as {WordPerfect Office}, and is
	an extensible system suitable for {LAN} or {WAN} operation.
	{Mail gateway} software is available for a number of
	{protocols} including {SMTP}, allowing the exchange of mail
	with the {Internet}.

	(1995-09-23)

grovel

	1. To work interminably and without apparent progress.  Often
	used transitively with "over" or "through".  "The file
	scavenger has been groveling through the /usr directories for
	10 minutes now."  Compare {grind} and {crunch}.  Emphatic
	form: "grovel obscenely".

	2. To examine minutely or in complete detail.  "The compiler
	grovels over the entire source program before beginning to
	translate it."  "I grovelled through all the documentation,
	but I still couldn't find the command I wanted."

	[{Jargon File}]

grunge

	/gruhnj/ 1. That which is grungy, or that which makes it so.

	2. [Cambridge] Code which is inaccessible due to changes in
	other parts of the program.  The preferred term in North
	America is {dead code}.

gry

	<puzzle> "Angry" and "hungry" are two words that end in "gry".
	What is the third word.  Everyone knows what it means and
	everyone uses it every day.  Look closely and I have already
	given you the third word.  What is it?

	Answer: "what".

	Variants of this puzzle have circulated widely on the Internet
	for some years, usually in a corrupted form such as "Name
	three common English words ending in 'gry'", which has no
	third answer.

	{(http://www.worldwidewords.org/articles/gry.htm)}.
	{(http://word-detective.com/gry.html)}.

	(2007-04-04)

GS

	{Group Separator}

gs

	<networking> The {country code} for South Georgia and the
	South Sandwich Islands.

	(1999-01-27)

GSBL

	<language>

	["GSBL: An Algebraic Specification Language Based on
	Inheritance", S. Clerici et al in ECOOP '88, S. Gjessing et
	al eds, LNCS 322, Springer 1988, pp.78-92].

	(2003-06-02)

GSI

	{Gensym Standard Interface}

GSL

	Grenoble System Language.  M. Berthaud, IBM, Grenoble.  "GSL
	Language Reference Manual", M. Berthaud et al, March 1973.  "A
	MOL-Based Software Construction System", M. Berthaud et al, in
	Machine Oriented Higher Level Languages, W. van der Poel, N-H
	1974, pp.151-157.

GSM

	{Global System for Mobile Communications}

GSPL

	<language> {Greenberg's System Programming Language}.

	Bernard Greenberg.

	(1995-05-09)

GSS

	<storage> {Group-Sweeping Scheduling}.

	(1995-11-12)

GSS-API

	{Generic Security Service Application Programming Interface}

gt

	<networking> The {country code} for Guatemala.

	(1999-01-27)

gtg

	<chat> Got to go.  The user is about to stop chatting.

	(1999-06-07)

GTK+

	<graphics, interface, library, open source> ("The {GIMP}
	ToolKit", or incorrectly "{Gnu} ToolKit" or "Generic ToolKit")
	A {multi-platform} toolkit for creating {graphical user
	interfaces}.  Offering a complete set of {widgets}, GTK+ is
	suitable for projects ranging from small one-off projects to
	complete application suites.

	GTK+ consists of the three parts; {GLib}, providing basic data
	structures, {event handling}, {threads}, etc., {Pango}, for
	{layout} and {rendering} of text, and {ATK}, providing
	interfaces for {accessibility}.

	{GTK+ Home (http://gtk.org/)}.

	(2003-12-03)

GTL

	{Gunning Transceiver Logic}

GT/SQL

	<tool> An {SQL} {pre-processor} from {Greystone Technologies}
	which combines {MUMPS} code with {SQL} code and generates code
	that can work with a {database} from both the MUMPS and SQL
	perspectives.  This is often done when a database is to be
	made available in a {client/server} environment, where the
	MUMPS database serves one or more SQL {clients}.

	(1995-01-10)

gu

	<networking> The {country code} for Guam.

	(1999-01-27)

guaranteed scheduling

	<algorithm> A scheduling {algorithm} used in {multitasking}
	{operating systems} that guarantees fairness by monitoring the
	amount of {CPU time} spent by each user and allocating
	resources accordingly.

	[How does it allocate resources?]

	(1998-04-26)

guard

	<programming> 1. In {functional programming}, a {Boolean}
	expression attached to a function definition specifying when
	(for what arguments) that definition is appropriate.

	2. In (parallel) {logic programming}, a Boolean expression
	which is used to select a {clause} from several alternative
	matching clauses.

	See {Guarded Horn Clauses}.

	3. In {parallel} languages, a {Boolean} expression which
	specifies when an message may be sent or received.

	(1995-05-09)

Guarded Horn Clauses

	<language> (GHC) A parallel dialect of {Prolog} by K. Ueda in
	which each {clause} has a {guard}.  GHC is similar to
	{Parlog}.  When several clauses match a {goal}, their guards
	are evaluated in parallel and the first clause whose guard is
	found to be true is used and others are rejected.  It uses
	{committed-choice nondeterminism}.

	See also {FGHC}, {KL1}.

	(1995-05-09)

gubbish

	<jargon> /guhb'*sh/ (A portmanteau of "garbage" and "rubbish"
	which may have originated with SF author Philip K. Dick)
	Garbage; crap; nonsense.  "What is all this gubbish?"  The
	opposite portmanteau "rubbage" is also reported.

	[{Jargon File}]

	(1995-05-09)

guest book

	<World-Wide Web> The electronic equivalent of the physical
	notebooks found in some small hotels, in which visitors can
	write their names, comments and suggestions for the benefit of
	the proprietors and future visitors or purely for posterity.
	The electronic version is a form on a {web site} into which
	users can enter similar details for display on the site.

	(2009-01-15)

GUI

	{Graphical User Interface}

GUIDE

	{Graphical User Interface} Development Environment from {Sun}.

Guide

	A {hypertext} system from the University of Kent (GB) and
	{OWL} for displaying on-line documentation.

Guide to Available Mathematical Software

	<mathematics>

	{(http://gams.nist.gov/)}.

	(1995-04-28)

guiltware

	/gilt'weir/ 1. A piece of {freeware} decorated with a message
	telling one how long and hard the author worked on it and
	intimating that one is a no-good freeloader if one does not
	immediately send the poor suffering martyr gobs of money.

	2. {Shareware} that works.

	[{Jargon File}]

gun

	<jargon> ({ITS}, from the ":GUN" command) To forcibly
	terminate a program or job (computer, not career).  "Some
	idiot left a background process running soaking up half the
	cycles, so I gunned it."

	Compare {can}.

	(1995-02-27)

gunch

	/guhnch/ <jargon> ({TMRC}) To push, prod, or poke at a device
	that has almost (but not quite) produced the desired result.
	Implies a threat to {mung}.

	[{Jargon File}]

	(1995-02-27)

Gunning Transceiver Logic

	<electronics, hardware, integrated circuit, standard> (GTL) A
	{standard} for electrical signals in {CMOS} circuits used to
	provide higher data transfer speeds with smaller voltage
	swings [compared with what?].

	The GTL signal swings between 0.4 volts and 1.2 volts with a
	reference voltage of about 0.8 volts.  Only a small deviation
	of 0.4 volts (or thereabouts) from the reference voltage is
	required to switch between on and off states.  Therefore, a
	GTL signal is said to be a low voltage swing logic signal.

	Gunning Transceiver Logic has several advantages.  The
	{resistive termination} of a GTL signal provides a clean
	signalling environment [what?].  Moreover, the low terminating
	voltage of 1.2 volts results in reduced voltage drops across
	the resistive elements.  GTL has low power dissipation and can
	operate at high frequency and causes less {electromagnetic
	interference} (EMI).

	{GTL/BTL: A Low-Swing Solution for High-Speed Digital Logic
	(http://edtn.com/scribe/reference/appnotes/md003ecc.htm)}.

	(2000-01-16)

gunzip

	<tool, compression> The decompression utility corresponding to
	{gzip}.  In operating systems with links, gunzip is just a
	link to gzip and its function can be invoked by passing a "-d"
	flag to gzip.

	(1996-01-03)

Gupta Corporation

	<company> The vendor of {SQLWindows}.

	Gupta Corporation provides application development and
	deployment software for {client-server} {applications},
	consisting of a {relational database}, application development
	tools and transparent connectivity software.

	Gupta employs 400 people in 15 offices worldwide, including
	the United States, Europe and Asia.  Gupta's 1993 fiscal year
	income was $5.6 million and their revenue was $56.1 million.
	Gupta sells client-server system components for networks of
	{personal computers}.

	{(http://wji.com/gupta/htmls/homepage.html)}.

	Address: 1060 Marsh Road, Menlo Park, CA 94025, USA.

	Telephone: +1 (415) 321 9500.  Fax: +1 (415) 321 5471.

	(1997-04-28)

gurfle

	<exclamation> /ger'fl/ An expression of shocked disbelief.
	"He said we have to recode this thing in {Fortran} by next
	week.  Gurfle!"

	Compare {weeble}.

	[{Jargon File}]

	(1996-06-01)

guru

	<job> An expert, especially in "{Unix} guru".  Implies not
	only {wizard} skill but also a history of being a knowledge
	resource for others.  Less often, used (with a qualifier) for
	other experts on other systems, as in "VMS guru".

	See {source of all good bits}.

	[{Jargon File}]

	(1996-06-01)

guru meditation

	<operating system, exception> The {Amiga} equivalent of
	{Unix}'s {panic} (sometimes just called a "guru" or "guru
	event").  When the system crashes, a cryptic message of the
	form "GURU MEDITATION #XXXXXXXX.YYYYYYYY" may appear,
	indicating what the problem was.  An Amiga guru can figure
	things out from the numbers.

	In the earliest days of the Amiga, there was a device called a
	"Joyboard" which was basically a plastic board built onto a
	joystick-like device; it was sold with a skiing game cartridge
	for the Atari game machine.  It is said that whenever the
	prototype OS crashed, the system programmer responsible would
	concentrate on a solution while sitting cross-legged, balanced
	on a Joyboard, resembling a meditating guru.  Sadly, the joke
	was removed in AmigaOS 2.04.

	The {Jargon File} claimed that a {guru} event had to be
	followed by a {Vulcan nerve pinch} but, according to a
	correspondent, a mouse click was enough to start a reboot.

	(2002-06-25)

Guy Lewis Steele, Jr.

	<person> (GLS) A software engineer whose most notable
	contributions to the art of computing include the design of
	{Scheme} (in cooperation with {Gerald Sussman}) and the design
	of the original command set of {Emacs}.  He is also known for
	his contribution to the {Jargon File} and for being the first
	to port {TeX} (from {WAITS} to {ITS}).  He wrote the book
	"Common Lisp", which virtually defines the language.

	He was working at {Sun Microsystems, Inc.} from 1996 to the
	present (June 2001).

	(2001-06-14)

Guy Steele

	{Guy Lewis Steele, Jr.}

GVL

	Graphical View Language.  A visual language for specifying
	interactive graphical output by T.C.N. Graham & J.R. Cordy,
	Queen's University, Canada.

	["GVL: A Graphical, Functional Language for the Specification
	of Output in Programming Languages", J.R. Cordy &
	T.C.N. Graham, Proc IEEE Intl Conf on Comp Lang ICCL'90 (March
	1990)].

gw

	<networking> The {country code} for Guinea-Bissau.

	(1999-01-27)

GW-Ada

	A new version of {Ada/Ed}?

	{MS-DOS version
	(ftp://wuarchive.wustl.edu/languages/ada/compiler/adaed/gwu/9309/dos)},
	{Macintosh version
	(ftp://wuarchive.wustl.edu/languages/ada/compilers/adaed/gwu/mac)}.

	(1993-09-01)

GW-BASIC

	<language> An early version of {MS-BASIC}.

	(1995-05-12)

gweep

	/gweep/ To {hack}, usually at night, or one who does so.  At
	{WPI}, from 1977 onward, gweeps could often be found at the
	College Computing Center punching cards or crashing the
	{PDP-10} or, later, the {DEC-20}.  The term has survived the
	demise of those technologies, however, and is still alive in
	late 1991.  "I'm going to go gweep for a while.  See you in
	the morning."  "I gweep from 8 PM till 3 AM during the week."

	"Gweep" originated as an onomatopeiac term, evoking the sound
	of the (once-ubiquitous) {Hazeltine 9000} terminals' bell on
	WPI campus.

	A gweep is one step above a {fweep}.

	[{Jargon File}]

	(1995-01-31)

GWHIS

	<World-Wide Web> A commercial version of {NCSA} {Mosaic} for
	{MS Windows} 3.x and {Windows for Workgroups}.  GWHIS was
	released by {Quadralay} Corporation on 30 September 1994.

	GWHIS Viewer for {Microsoft Windows} differs from {NCSA}
	{Mosaic} for {Microsoft Windows} in several ways including:

	A {hotlist} similiar to the {X Window System} version.  Edit
	Annotation and Delete Annotation work.  All Buttons and Menu
	Items are "greyed out" while files are being retreived and
	processed.  This prevents the user from queing up requests to
	the {TCP/IP} stack which causes many crashes.  {Look and Feel}
	are similiar to the X version.  On-line help is complete.
	Functional Setup program.  Greater overall stability.

	(1994-12-16)

GWM

	Generic Window Manager.  An extensible window manager for the
	{X Window System}.  It is built on top of an {interpreter} for
	the {WOOL} language.

	{(ftp://export.lcs.mit.edu/contrib/gwm)},
	{(ftp://avahi.inria.fr/contrib/gwm)}.

gy

	<networking> The {country code} for Guyana.

	(1999-01-27)

Gypsy

	Specification and verification of {concurrent} systems
	software.  {Message} passing using named {mailbox}es.
	Separately compilable units: routine (procedure, function, or
	process), type and constant definition, each with a list of
	access rights.

	["Report on the Language Gypsy", A.L.  Ambler et al, UT Austin
	ICSCS-CMP-1976-08-1].

gz

	{gzip}

gzip

	<tool, compression> {GNU} compression utility.  Gzip reduces
	the size of the named files using {Lempel-Ziv} {LZ77
	compression}.  Whenever possible, each file is replaced by one
	with the {filename extension} ".gz".  Compressed files can be
	restored to their original form using gzip -d or gunzip or
	zcat.

	The Unix "{compress}" utility is patented (by two separate
	patents, in fact) and is thus shunned by the GNU Project since
	it is not {free software}.  They have therefore chosen gzip,
	which is free of any known {software patents} and which tends
	to compress better anyway.  All compressed files in the {GNU}
	{anonymous FTP} area (gnu.org/pub/gnu) are in gzip
	format and their names end in ".gz" (as opposed to
	"compress"-compressed files, which end in ".Z").

	Gzip can uncompress "compress"-compressed files and "pack"
	files (which end in ".z").  The decompression algorithms are
	not patented, only compression is.

	The gzip program is available from any {GNU archive site} in
	{shar}, {tar}, or gzipped tar format (for those who already
	have a prior version of gzip and want faster data
	transmission).  It works on virtually every {Unix} system,
	{MS-DOS}, {OS/2} and {VMS}.

h

	1. A simple {markup} language intended for quick conversion of
	existing text to {hypertext}.

	2. A method of marking common words to call attention to the
	fact that they are being used in a nonstandard, ironic, or
	humorous way.  Originated in the fannish catchphrase "Bheer
	is the One True Ghod!" from decades ago.  H-infix marking of
	"Ghod" and other words spread into the 1960s counterculture
	via underground comix, and into early hackerdom either from
	the counterculture or from SF fandom (the three overlapped
	heavily at the time).  More recently, the h infix has become
	an expected feature of benchmark names (Dhrystone, Rhealstone,
	etc.); this follows on from the original Whetstone (the name
	of a laboratory) but may have been influenced by the
	fannish/counterculture h infix.

	[{Jargon File}]

	(1994-11-04)

H.261

	<networking, standard> A {video compression} {standard}
	developed by {ITU-T} before 1992 to work with {integrated
	service digital network}.  Data is compressed at the rate of
	64P kilobits per second, where P can range from 1 to 30
	depending on the number of ISDN channels used.  This standard
	was developed primarily to support {video phones} and {video
	conferencing}.

	See also {ivs}.

	{(http://crs4.it/~luigi/MPEG/mpeggloss-h.html#H.261)}.

	[Date?  Details?]

	(1994-11-03)

H.264

	<video, standard> (Or Advanced Video Coding, AVC) A low {bit
	rate} visual communication {standard} used in {video
	conferencing}.  H.264 was developed by {MPEG} and {ITU-T}
	{VCEG} to replace {H.263}.

	{Video and image compression resources and research
	(http://www.vcodex.fsnet.co.uk/h264.html)}.

	(2007-03-16)

H.323

	<communications, standard> The {ITU-T standard} for sending
	{voice} ({audio}) and {video} using {IP} on a {LAN} without
	{QoS}.

	H.323 includes {Q.931} for call setup, {H.225} for call
	signalling, {H.245} for exchanging terminal capabilities,
	{RTP}/{RTCP} for packet streaming, {G.711}/{G.712} for
	{CODECs}, and several other {protcols}, many of which need to
	be negotiated to setup a simple voice call.

	The complexity of H.323 has lead to the {IETF} proposing the
	simpler alternatives {SIP} and {MGCP}/{Megaco}.

	(2003-11-30)

Habitat

	<networking, graphics> The original term for on-line graphical
	{virtual communities} or worlds.  Created at Lucasfilm in 1985
	by Randy Farmer and Chip Morningstar.

	{(http://communities.com/habitat.html)}.

	(1996-06-12)

hack

	<jargon> 1. Originally, a quick job that produces what is
	needed, but not well.

	2.  An incredibly good, and perhaps very time-consuming, piece
	of work that produces exactly what is needed.

	3. To bear emotionally or physically.  "I can't hack this
	heat!"

	4. To work on something (typically a program).  In an
	immediate sense: "What are you doing?"  "I'm hacking TECO."
	In a general (time-extended) sense: "What do you do around
	here?"  "I hack TECO."  More generally, "I hack "foo"" is
	roughly equivalent to ""foo" is my major interest (or
	project)".  "I hack solid-state physics."  See {Hacking X for
	Y}.

	5. To pull a prank on.  See {hacker}.

	6. To interact with a computer in a playful and exploratory
	rather than goal-directed way.  "Whatcha up to?"  "Oh, just
	hacking."

	7.  Short for {hacker}.

	8. See {nethack}.

	9. (MIT) To explore the basements, roof ledges, and steam
	tunnels of a large, institutional building, to the dismay of
	Physical Plant workers and (since this is usually performed at
	educational institutions) the Campus Police.  This activity
	has been found to be eerily similar to playing adventure games
	such as {Dungeons and Dragons} and {Zork}.  See also
	{vadding}.

	See also {neat hack}, {real hack}.

	[{Jargon File}]

	(1996-08-26)

hackathon

	<jargon> A planned {hacking run} that is intended to last for
	about a week with lots of {hackers}.  The term was used in
	2005 by the {Apache} Foundation and the {OpenBSD} Project,
	among others.

	(2005-01-26)

hack attack

	<jargon> (Possibly by analogy with "Big Mac Attack" from
	advertisements for the McDonald's fast-food chain; the variant
	"big hack attack" is reported) Nearly synonymous with {hacking
	run}, though the latter more strongly implies an all-nighter.

	[{Jargon File}]

	(1996-08-26)

hacked off

	<jargon> (Analogous to "pissed off") Said of {system
	administrators} who have become annoyed, upset, or touchy
	owing to suspicions that their sites have been or are going to
	be victimised by {crackers}, or used for inappropriate,
	technically illegal, or even overtly criminal activities.  For
	example, having unreadable files in your home directory called
	"worm", "lockpick", or "goroot" would probably be an effective
	(as well as impressively obvious and stupid) way to get your
	sysadmin hacked off at you.

	[{Jargon File}]

	(1996-08-26)

hacked up

	<jargon, programming> Sufficiently {patched}, {kluge}d, and
	{tweaked} that the surgical scars are beginning to crowd out
	normal tissue (compare {critical mass}).  Not all programs
	that are hacked become "hacked up"; if modifications are done
	with some eye to coherence and continued maintainability, the
	software may emerge better for the experience.

	Contrast {hack up}.

	[{Jargon File}]

	(1996-08-26)

hacker

	<person, jargon> (Originally, someone who makes furniture with
	an axe) 1. A person who enjoys exploring the details of
	programmable systems and how to stretch their capabilities, as
	opposed to most users, who prefer to learn only the minimum
	necessary.

	2. One who programs enthusiastically (even obsessively) or who
	enjoys programming rather than just theorizing about
	programming.

	3. A person capable of appreciating {hack value}.

	4. A person who is good at programming quickly.

	5. An expert at a particular program, or one who frequently
	does work using it or on it; as in "a {Unix} hacker".
	(Definitions 1 through 5 are correlated, and people who fit
	them congregate.)

	6. An expert or enthusiast of any kind.  One might be an
	astronomy hacker, for example.

	7. One who enjoys the intellectual challenge of creatively
	overcoming or circumventing limitations.

	8. (Deprecated) A malicious meddler who tries to discover
	sensitive information by poking around.  Hence "password
	hacker", "network hacker".  The correct term is {cracker}.

	The term "hacker" also tends to connote membership in the
	global community defined by the net (see {The Network} and
	{Internet address}).  It also implies that the person
	described is seen to subscribe to some version of the {hacker
	ethic}.

	It is better to be described as a hacker by others than to
	describe oneself that way.  Hackers consider themselves
	something of an elite (a meritocracy based on ability), though
	one to which new members are gladly welcome.  Thus while it is
	gratifying to be called a hacker, false claimants to the title
	are quickly labelled as "bogus" or a "{wannabee}".

	9. (University of Maryland, rare) A programmer who does not
	understand proper programming techniques and principles and
	doesn't have a Computer Science degree.  Someone who just
	bangs on the keyboard until something happens.  For example,
	"This program is nothing but {spaghetti code}.  It must have
	been written by a hacker".

	[{Jargon File}]

	(1996-08-26)

hacker ethic

	<philosophy> 1. The belief that information-sharing is a
	powerful positive good, and that it is an ethical duty of
	hackers to share their expertise by writing free software and
	facilitating access to information and to computing resources
	wherever possible.

	2. The belief that system-cracking for fun and exploration is
	ethically OK as long as the cracker commits no theft,
	vandalism, or breach of confidentiality.

	Both of these normative ethical principles are widely, but by
	no means universally, accepted among hackers. Most hackers
	subscribe to the hacker ethic in sense 1, and many act on it
	by writing and giving away free software.  A few go further
	and assert that *all* information should be free and *any*
	proprietary control of it is bad; this is the philosophy
	behind the {GNU} project.

	Sense 2 is more controversial: some people consider the act of
	cracking itself to be unethical, like breaking and entering.
	But the belief that "ethical" cracking excludes destruction at
	least moderates the behaviour of people who see themselves as
	"benign" crackers (see also {samurai}).  On this view, it may
	be one of the highest forms of hackerly courtesy to (a) break
	into a system, and then (b) explain to the sysop, preferably
	by e-mail from a {superuser} account, exactly how it was done
	and how the hole can be plugged - acting as an unpaid (and
	unsolicited) {tiger team}.

	The most reliable manifestation of either version of the
	hacker ethic is that almost all hackers are actively willing
	to share technical tricks, software, and (where possible)
	computing resources with other hackers.  Huge cooperative
	networks such as {Usenet}, {FidoNet} and Internet (see
	{Internet address}) can function without central control
	because of this trait; they both rely on and reinforce a sense
	of community that may be hackerdom's most valuable intangible
	asset.

	(1995-12-18)

hacker humour

	A distinctive style of shared intellectual humour found among
	hackers, having the following marked characteristics:

	1. Fascination with form-vs.-content jokes, paradoxes, and
	humour having to do with confusion of metalevels (see {meta}).
	One way to make a hacker laugh: hold a red index card in front
	of him/her with "GREEN" written on it, or vice-versa (note,
	however, that this is funny only the first time).

	2. Elaborate deadpan parodies of large intellectual
	constructs, such as specifications (see {write-only memory}),
	standards documents, language descriptions (see {INTERCAL}),
	and even entire scientific theories (see {quantum
	bogodynamics}, {computron}).

	3. Jokes that involve screwily precise reasoning from bizarre,
	ludicrous, or just grossly counter-intuitive premises.

	4. Fascination with puns and wordplay.

	5. A fondness for apparently mindless humour with subversive
	currents of intelligence in it - for example, old Warner
	Brothers and Rocky & Bullwinkle cartoons, the Marx brothers,
	the early B-52s, and Monty Python's Flying Circus.  Humour
	that combines this trait with elements of high camp and
	slapstick is especially favoured.

	6. References to the symbol-object antinomies and associated
	ideas in Zen Buddhism and (less often) Taoism.  See {has the X
	nature}, {Discordianism}, {zen}, {ha ha only serious}, {AI
	koan}.

	See also {filk} and {retrocomputing}.  If you have an itchy
	feeling that all 6 of these traits are really aspects of one
	thing that is incredibly difficult to talk about exactly, you
	are (a) correct and (b) responding like a hacker.  These
	traits are also recognizable (though in a less marked form)
	throughout {science-fiction fandom}.

	(1995-12-18)

hacking run

	<jargon> (Analogy with "bombing run" or "speed run") A hack
	session extended long outside normal working times, especially
	one longer than 12 hours.  May cause you to "change {phase}
	the hard way".

	[{Jargon File}]

	(1996-08-26)

Hacking X for Y

	[ITS] Ritual phrasing of part of the information which ITS
	made publicly available about each user.  This information
	(the INQUIR record) was a sort of form in which the user could
	fill out various fields.  On display, two of these fields were
	always combined into a project description of the form
	"Hacking X for Y" (e.g. ""Hacking perceptrons for Minsky"").
	This form of description became traditional and has since been
	carried over to other systems with more general facilities for
	self-advertisement (such as Unix {plan files}).

	[{Jargon File}]

Hackintosh

	1. <jargon, computer> An {Apple Lisa} that has been hacked
	into emulating a {Macintosh} (also called a "Mac XL").

	2. <jargon, computer> A {Macintosh} assembled from parts
	theoretically belonging to different models in the line.

	(1995-03-08)

hackish

	<jargon> /hak'ish/ 1. Said of something that is or involves a
	{hack}.

	2. Of or pertaining to {hackers} or the hacker subculture.

	See also {true-hacker}.

	[{Jargon File}]

	(1995-03-08)

hackishness

	<jargon> The quality of being or involving a {hack}.  This
	term is considered mildly silly.

	Synonym {hackitude}.

	[{Jargon File}]

	(1995-03-08)

hackitude

	<jargon> An even sillier word for {hackishness}.

	[{Jargon File}]

	(1995-03-08)

hack mode

	<jargon> Engaged in {hack}ing.  A Zen-like state of total
	focus on The Problem that may be achieved when one is hacking
	(this is why every good hacker is part mystic).  Ability to
	enter such concentration at will correlates strongly with
	wizardliness; it is one of the most important skills learned
	during {larval stage}.  Sometimes amplified as "deep hack
	mode".

	Being yanked out of hack mode (see {priority interrupt}) may
	be experienced as a physical shock, and the sensation of being
	in hack mode is more than a little habituating.  The intensity
	of this experience is probably by itself sufficient
	explanation for the existence of hackers, and explains why
	many resist being promoted out of positions where they can
	code.  See also {cyberspace}.

	Some aspects of hackish etiquette will appear quite odd to an
	observer unaware of the high value placed on hack mode.  For
	example, if someone appears at your door, it is perfectly okay
	to hold up a hand (without turning one's eyes away from the
	screen) to avoid being interrupted.  One may read, type, and
	interact with the computer for quite some time before further
	acknowledging the other's presence (of course, he or she is
	reciprocally free to leave without a word).  The understanding
	is that you might be in {hack mode} with a lot of delicate
	state in your head, and you dare not {swap} that context out
	until you have reached a good point to pause.  See also
	{juggling eggs}.

	[{Jargon File}]

	(1996-07-31)

hack on

	To {hack}; implies that the subject is some pre-existing hunk
	of code that one is evolving, as opposed to something one
	might {hack up}.

	[{Jargon File}]

hack together

	<jargon> To throw something together so it will work.  Unlike
	"kluge together" or "{cruft together}", this does not
	necessarily have negative connotations.

	(2003-09-02)

hack up

	<jargon> To {hack}, but generally implies that the result is a
	quick hack.  Contrast this with {hack on}.  To "hack up on"
	implies a {quick-and-dirty} modification to an existing
	system.  Contrast {hacked up}; compare {kluge up}, {monkey
	up}, {cruft together}.

	[{Jargon File}]

	(2003-09-02)

hack value

	Often adduced as the reason or motivation for expending effort
	toward a seemingly useless goal, the point being that the
	accomplished goal is a hack.  For example, MacLISP had
	features for reading and printing Roman numerals, which were
	installed purely for hack value.  See {display hack} for one
	method of computing hack value, but this cannot really be
	explained, only experienced.  As Louis Armstrong once said
	when asked to explain jazz: "Man, if you gotta ask you'll
	never know."  (Feminists please note Fats Waller's explanation
	of rhythm: "Lady, if you got to ask you ain't got it.")

ha ha only serious

	(SF fandom, originally as mutation of HHOK, "Ha Ha Only
	Kidding") A phrase (often seen abbreviated as HHOS) that aptly
	captures the flavour of much hacker discourse.  Applied
	especially to parodies, absurdities, and ironic jokes that are
	both intended and perceived to contain a possibly disquieting
	amount of truth, or truths that are constructed on in-joke and
	self-parody.

	The {Jargon File} contains many examples of ha-ha-only-serious
	in both form and content.  Indeed, the entirety of hacker
	culture is often perceived as ha-ha-only-serious by hackers
	themselves; to take it either too lightly or too seriously
	marks a person as an outsider, a {wannabee}, or in {larval
	stage}.  For further enlightenment on this subject, consult
	any Zen master.  See also {AI koan}.

	[{Jargon File}]

hair

	[back-formation from {hairy}] The complications that make
	something hairy.  "Decoding {TECO} commands requires a certain
	amount of hair."  Often seen in the phrase "infinite hair",
	which connotes extreme complexity.  Also in "hairiferous"
	(tending to promote hair growth): "GNUMACS elisp encourages
	{lusers} to write complex editing modes."  "Yeah, it's pretty
	hairiferous all right." (Or just: "Hair squared!")

hairy

	1. Annoyingly complicated.  "{DWIM} is incredibly hairy."

	2. Incomprehensible.  "{DWIM} is incredibly hairy."

	3. Of people, high-powered, authoritative, rare, expert,
	and/or incomprehensible.  Hard to explain except in context:
	"He knows this hairy lawyer who says there's nothing to worry
	about."  See also {hirsute}.

	The adjective "long-haired" is well-attested to have been in
	slang use among scientists and engineers during the early
	1950s; it was equivalent to modern "hairy" and was very likely
	ancestral to the hackish use.  In fact the noun "long-hair"
	was at the time used to describe a hairy person.  Both senses
	probably passed out of use when long hair was adopted as a
	signature trait by the 1960s counterculture, leaving hackish
	"hairy" as a sort of stunted mutant relic.

	4. <topology> {hairy ball}.

	[{Jargon File}]

	(2001-03-29)

hairy ball

	<topology> A result in {topology} stating that a continuous
	{vector field} on a sphere is always zero somewhere.  The name
	comes from the fact that you can't flatten all the hair on a
	hairy ball, like a tennis ball, there will always be a tuft
	somewhere (where the tangential projection of the hair is
	zero).  An immediate corollary to this theorem is that for any
	{continuous map} f of the sphere into itself there is a point
	x such that f(x)=x or f(x) is the {antipode} of x.  Another
	corollary is that at any moment somewhere on the Earth there
	is no wind.

	(2002-01-07)

HAKMEM

	<publication> /hak'mem/ MIT AI Memo 239 (February 1972).  A
	legendary collection of neat mathematical and programming
	hacks contributed by many people at MIT and elsewhere.  (The
	title of the memo really is "HAKMEM", which is a 6-letterism
	for "hacks memo".)  Some of them are very useful techniques,
	powerful theorems, or interesting unsolved problems, but most
	fall into the category of mathematical and computer trivia.
	Here is a sampling of the entries (with authors), slightly
	paraphrased:

	Item 41 (Gene Salamin): There are exactly 23,000 prime numbers
	less than 2^18.

	Item 46 (Rich Schroeppel): The most *probable* suit
	distribution in bridge hands is 4-4-3-2, as compared to
	4-3-3-3, which is the most *evenly* distributed.  This is
	because the world likes to have unequal numbers: a
	thermodynamic effect saying things will not be in the state of
	lowest energy, but in the state of lowest disordered energy.

	Item 81 (Rich Schroeppel): Count the magic squares of order 5
	(that is, all the 5-by-5 arrangements of the numbers from 1 to
	25 such that all rows, columns, and diagonals add up to the
	same number).  There are about 320 million, not counting those
	that differ only by rotation and reflection.

	Item 154 (Bill Gosper): The myth that any given programming
	language is machine independent is easily exploded by
	computing the sum of powers of 2.  If the result loops with
	period = 1 with sign +, you are on a sign-magnitude machine.
	If the result loops with period = 1 at -1, you are on a
	twos-complement machine.  If the result loops with period
	greater than 1, including the beginning, you are on a
	ones-complement machine.  If the result loops with period
	greater than 1, not including the beginning, your machine
	isn't binary - the pattern should tell you the base.  If you
	run out of memory, you are on a string or bignum system.  If
	arithmetic overflow is a fatal error, some fascist pig with a
	read-only mind is trying to enforce machine independence.  But
	the very ability to trap overflow is machine dependent.  By
	this strategy, consider the universe, or, more precisely,
	algebra: Let X = the sum of many powers of 2 = ...111111 (base
	2).  Now add X to itself: X + X = ...111110.  Thus, 2X = X -
	1, so X = -1.  Therefore algebra is run on a machine (the
	universe) that is two's-complement.

	Item 174 (Bill Gosper and Stuart Nelson): 21963283741 is the
	only number such that if you represent it on the {PDP-10} as
	both an integer and a {floating-point} number, the bit
	patterns of the two representations are identical.

	Item 176 (Gosper): The "banana phenomenon" was encountered
	when processing a character string by taking the last 3
	letters typed out, searching for a random occurrence of that
	sequence in the text, taking the letter following that
	occurrence, typing it out, and iterating.  This ensures that
	every 4-letter string output occurs in the original.  The
	program typed BANANANANANANANA....  We note an ambiguity in
	the phrase, "the Nth occurrence of."  In one sense, there are
	five 00's in 0000000000; in another, there are nine.  The
	editing program TECO finds five.  Thus it finds only the first
	ANA in BANANA, and is thus obligated to type N next.  By
	Murphy's Law, there is but one NAN, thus forcing A, and thus a
	loop.  An option to find overlapped instances would be useful,
	although it would require backing up N - 1 characters before
	seeking the next N-character string.

	Note: This last item refers to a {Dissociated Press}
	implementation.  See also {banana problem}.

	HAKMEM also contains some rather more complicated mathematical
	and technical items, but these examples show some of its fun
	flavour.

	HAKMEM is available from MIT Publications as a {TIFF} file.

	{(ftp://ftp.netcom.com/pub/hb/hbaker)}.

	(1996-01-19)

hakspek

	<jargon> /hak'speek/ A shorthand method of spelling found on
	many British academic bulletin boards and {chat} systems.
	Syllables and whole words in a sentence are replaced by single
	{ASCII} characters the names of which are phonetically similar
	or equivalent, while multiple letters are usually dropped.
	Hence, "for" becomes "4"; "two", "too", and "to" become "2";
	"ck" becomes "k".  "Before I see you tomorrow" becomes "b4 i c
	u 2moro".  First appeared in London about 1986, and was
	probably caused by the slowness of available {talk} systems,
	which operated on archaic machines with outdated {operating
	systems} and no standard methods of communication.  Has become
	rarer since.

	See also {chat}, {B1FF}, {ASCIIbonics}.

	[{Jargon File}]

	(1998-01-25)

HAL

	1. <computer> HAL 9000, the murdering computer on the
	spaceship in the science fiction classic "2001, A Space
	Odyssey" by Arthur C. Clark.

	"HAL" is "{IBM}" with each letter changed to the one before
	and there is an unconfirmed rumour that 9000 is the sum of the
	various IBM computer numbers that were in service at the time.
	However, in the sequel "2010", Clarke emphatically denies that
	HAL's name is supposed to be "one step ahead of IBM".  It is,
	rather, short for "heuristic algorithm".

	2. <operating system> {Hardware Abstraction Layer}.

	(1995-11-09)

half-duplex

	<communications> (hdx, from {telegraphy}) 1. A type of
	communication channel using a single circuit which can carry
	data in either direction but not both directions at once.

	Compare: {simplex}, {full-duplex}.

	2. An obsolete term for {local echo}.

	(2001-07-21)

halftone

	<graphics> The reproducion of {greyscale} {images} using dots
	of a single shade but varying size to simulate the different
	shades of grey.

	{Laser printers} that cannot print different sized dots,
	halftones are produced by varying the numbers of dots in a
	given area.

	This process is also used to produce a black and white version
	of a colour original using shades of grey in place of colours.

	See also {device independent bitmap}.

	(1996-09-20)

HALGOL

	<language> A simple language from {Hewlett-Packard} for
	communicating with devices such as {modems} and {X.25} {PADs}.

	(1995-04-12)

HALMAT

	Intermediate language used by {HAL/S}.

Hal/S

	<language> (Hal/Shuttle) A {real-time} {high-level language}
	for flight control applications.  Hal was developed for {NASA}
	by {Intermetrics, Inc.} in the 1970s for on-board {software}.
	The initial version was a {Fortran} {preprocessor}, written in
	Fortran.  In 1972, as the space shuttle project advanced, the
	language was renamed Hal/S and made more adaptable to
	{architecture} of different computers by using {XPL}.  In all,
	11 different implementations, mostly based on {IBM 360}, were
	created.  Applications also included projects by {JPL}
	(Galileo probe, Deep Space network).

	["Two-Dimensional Characteristics of HAL, A Language for
	Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10),
	Oct 1972].

	["Space Station Flight Software: Hal/S or Ada?", Allan
	R. Klumpp, "Computer", March 1985].

	(2002-07-13)

Halt and Catch Fire

	<humour, processor> (HCF) Any of several undocumented and
	semi-mythical {machine instructions} with destructive
	side-effects, supposedly included for test purposes on several
	well-known architectures going as far back as the {IBM 360}.
	The {Motorola} {6800} {microprocessor} was the first for which
	an HCF {opcode} became widely known.  This instruction caused
	the processor to {toggle} a subset of the {bus} lines as
	rapidly as it could; in some configurations this could
	actually cause lines to burn up.

	[Confirm?]

	(1995-12-14)

halting problem

	The problem of determining in advance whether a particular
	program or {algorithm} will terminate or run forever.  The
	halting problem is the {canonical} example of a {provably
	unsolvable} problem.  Obviously any attempt to answer the
	question by actually executing the algorithm or simulating
	each step of its execution will only give an answer if the
	algorithm under consideration does terminate, otherwise the
	algorithm attempting to answer the question will itself run
	forever.

	Some special cases of the halting problem are partially
	solvable given sufficient resources.  For example, if it is
	possible to record the complete state of the execution of the
	algorithm at each step and the current state is ever identical
	to some previous state then the algorithm is in a loop.  This
	might require an arbitrary amount of storage however.
	Alternatively, if there are at most N possible different
	states then the algorithm can run for at most N steps without
	looping.

	A program analysis called {termination analysis} attempts to
	answer this question for limited kinds of input algorithm.

	(1994-10-20)

Hamilton

	{William Hamilton}

Hamiltonian cycle

	{Hamiltonian problem}

Hamiltonian path

	{Hamiltonian problem}

Hamiltonian problem

	<computability> (Or "Hamilton's problem") A problem in {graph
	theory} posed by {William Hamilton}: given a {graph}, is there
	a path through the graph which visits each {vertex} precisely
	once (a "Hamiltonian path")?  Is there a Hamiltonian path
	which ends up where it started (a "Hamiltonian cycle" or
	"Hamiltonian tour")?

	Hamilton's problem is {NP-complete}.  It has numerous
	applications, sometimes completely unexpected, in computing.

	{(http://ing.unlp.edu.ar/cetad/mos/Hamilton.html)}.

	(1997-07-18)

Hamiltonian tour

	{Hamiltonian problem}

Hamilton's problem

	{Hamiltonian problem}

hammer

	Commonwealth hackish synonym for {bang on}.

	[{Jargon File}]

	(1995-02-16)

Hamming code

	<algorithm> Extra, redundant bits added to stored or
	transmitted data for the purposes of {error detection and
	correction}.

	Named after the mathematician {Richard Hamming}, Hamming codes
	greatly improve the reliability of data, e.g. from distant
	space probes, where it is impractical, because of the long
	transmission delay, to correct errors by requesting
	retransmission.

	[Detail?  Connection with {Hamming Distance}?]

	(2002-07-02)

Hamming distance

	<data> The minimum number of {bits} that must be changed in
	order to convert one {bit string} into another.

	Named after the mathematician {Richard Hamming}.

	[Connection with {Hamming code}?].

	(2002-07-02)

Hamming, Richard

	{Richard Hamming}

hamster

	1. <programming> (From {Fairchild}) A particularly slick
	little piece of code that does one thing well; a small,
	self-contained hack.  The image is of a hamster {happily}
	spinning its exercise wheel.

	2. <hardware> A tailless mouse; that is, one with an infrared
	link to a receiver on the machine, as opposed to the
	conventional cable.

	3. <product> (UK) Any item of hardware made by {Amstrad}, a
	company famous for its cheap plastic PC-almost-compatibles.

	[{Jargon File}]

	(1995-02-16)

Han character

	<character> (From the Han dynasty, 206 B.C.E to 25 C.E.)  One
	of the set of {glyphs} common to Chinese (where they are
	called "hanzi"), Japanese (where they are called {kanji}), and
	Korean (where they are called {hanja}).

	Han characters are generally described as "ideographic", i.e.,
	picture-writing; but see the reference below.

	Modern Korean, Chinese and Japanese {fonts} may represent a
	given Han character as somewhat different glyphs.  However, in
	the formulation of {Unicode}, these differences were {folded},
	in order to conserve the number of {code positions} necessary
	for all of {CJK}.  This unification is referred to as "Han
	Unification", with the resulting character repertoire
	sometimes referred to as "Unihan".

	{Unihan reference at the Unicode Consortium
	(http://charts.unicode.org/unihan.html)}.

	[John DeFrancis, "The Chinese Language: Fact and Fantasy",
	University of Hawaii Press, 1984].

	(1998-10-18)

HAND

	<chat> Have A Nice Day.  Often used sarcastically and in
	connection with {HTH}, as in:

	  > Where's the point of alt.stupidity?

	  Between the 't' and the 's'.  HTH.  HAND.

	(1998-03-06)

hand cruft

	<jargon> (After "hand craft") To write something {by hand}
	that would be better done automatically, e.g. writing
	{assembly language} instead of using a compiler (see {hand
	hacking}).

	[{Jargon File}]

	(2006-01-19)

Handel

	<language> An {imperative language} with {primitives} for
	controlling {parallel programs}.

	Used by Wayne Luk for work in compilation of programs to
	hardware ({FPGAs}).

	(1995-02-28)

hand hack

	<jargon> 1. (Or "{hand cruft}") To Translate a {hot spot} of a
	program in a {HLL} into {assembly language} {by hand}, as
	opposed to trying to coerce the {compiler} into generating
	better code.  Both the term and the practice are becoming
	uncommon.

	See {tune}, {bum}.

	2. More generally, manual construction or patching of data
	sets that would normally be generated by a translation utility
	and interpreted by another program, and aren't really designed
	to be read or modified by humans.

	[{Jargon File}]

	(1995-02-16)

Hand-held Personal Computer

	{palmtop}

handle

	1. <programming, operating system> A simple item of data that
	identifies a resource.  For example, a {Unix} file handle
	identifies an open file and associated data such as whether it
	was opened for read or write and the current read/write
	position.  On the {Macintosh}, a handle is a pointer to a
	pointer to some dynamically-allocated memory.  The extra level
	of indirection allows on-the-fly {memory compaction} or
	{garbage collection} without invalidating application program
	references to the allocated memory.

	2. <jargon> An alias used intended to conceal a user's true
	identity in an electronic message.  The term is common on
	Citizen's Band and other amateur radio but, in that context
	usually means the user's real name as {FCC} rules forbid
	concealing one's identity.

	Use of grandiose handles is characteristic of {crackers},
	{weenies}, {spods}, and other lower forms of network life;
	true hackers travel on their own reputations.

	Compare {nick}.

	[{Jargon File}]

	3. <networking> {domain handle}.

	(2004-07-20)

handoff

	{handover}

handover

	<communications> (HO, or "handoff") the mechanism by which an
	on going cellular connection between a {mobile terminal} (MT,
	typically a {mobile phone}) or {mobile host} (MH) and a
	corresponding terminal or host is transferred from one point
	of access of the fixed network to another.

	Handover may occur because the phone is leaving its current
	cell, to balance demand between cells, to reduce interference
	or to transfer a user who has stopped moving to a nearby cell
	with shorter range.

	(2010-05-07)

hand-roll

	<jargon> (From mainstream slang "hand-rolled cigarette" in
	opposition to "ready-made") To perform a normally automated
	software installation or configuration process {by hand};
	implies that the normal process failed due to bugs or was
	defeated by something exceptional in the local environment.
	"The worst thing about being a gateway between four different
	nets is having to hand-roll a new sendmail configuration every
	time any of them upgrades."

	[{Jargon File}]

	(1995-02-28)

handshake

	{handshaking}

handshaking

	1. Predetermined hardware or software activity designed to
	establish or maintain two machines or programs in
	synchronisation.  Handshaking often concerns the exchange of
	messages or {packets} of data between two systems with limited
	{buffers}.  A simple handshaking {protocol} might only involve
	the receiver sending a message meaning "I received your last
	message and I am ready for you to send me another one."  A
	more complex handshaking {protocol} might allow the sender to
	ask the receiver if he is ready to receive or for the receiver
	to reply with a negative acknowledgement meaning "I did not
	receive your last message correctly, please resend it" (e.g. if
	the data was corrupted en route).

	{Hardware handshaking} uses voltage levels or pulses on wires
	to carry the handshaking signals whereas {software
	handshaking} uses data units (e.g. {ASCII} characters) carried
	by some underlying communication medium.

	{Flow control} in bit-serial data transmission such as
	{EIA-232} may use either hardware or software handshaking.

	2. The method used by two {modems} to establish contact with
	each other and to agreee on {baud rate}, {error correction}
	and {compression} {protocols}.

	3. The exchange of predetermined signals between agents
	connected by a communications channel to assure each that it
	is connected to the other (and not to an imposter).  This may
	also include the use of passwords and codes by an operator.

	[{Jargon File}]

	(1995-01-13)

handwave

	[possibly from gestures characteristic of stage magicians] To
	gloss over a complex point; to distract a listener; to support
	a (possibly actually valid) point with blatantly faulty logic.

	If someone starts a sentence with "Clearly..." or
	"Obviously..." or "It is self-evident that...", it is a good
	bet he is about to handwave (alternatively, use of these
	constructions in a sarcastic tone before a paraphrase of
	someone else's argument suggests that it is a handwave).  The
	theory behind this term is that if you wave your hands at the
	right moment, the listener may be sufficiently distracted to
	not notice that what you have said is wrong.  Failing that, if
	a listener does object, you might try to dismiss the objection
	with a wave of your hand.

	The use of this word is often accompanied by gestures: both
	hands up, palms forward, swinging the hands in a vertical
	plane pivoting at the elbows and/or shoulders (depending on
	the magnitude of the handwave); alternatively, holding the
	forearms in one position while rotating the hands at the wrist
	to make them flutter.  In context, the gestures alone can
	suffice as a remark; if a speaker makes an outrageously
	unsupported assumption, you might simply wave your hands in
	this way, as an accusation, far more eloquent than words could
	express, that his logic is faulty.

	[{Jargon File}]

hang

	1. To wait for an event that will never occur.  "The system is
	hanging because it can't read from the crashed drive".  See
	{wedged}, {hung}.

	2. To wait for some event to occur; to hang around until
	something happens.  "The program displays a menu and then
	hangs until you type a character."  Compare {block}.

	3. To attach a peripheral device, especially in the
	construction "hang off": "We're going to hang another tape
	drive off the file server."  Implies a device attached with
	cables, rather than something that is strictly inside the
	machine's chassis.

hanja

	{Han characters}

Hanoi

	{Towers of Hanoi}

Han Unification

	{Han character}

hanzi

	{Han characters}

happily

	Of software, used to emphasise that a program is unaware of
	some important fact about its environment, either because it
	has been fooled into believing a lie, or because it doesn't
	care.  The sense of "happy" here is not that of elation, but
	rather that of blissful ignorance.  "The program continues to
	run, happily unaware that its output is going to /dev/null."

	[{Jargon File}]

Happy

	<tool> A dyslexic acronym for "A Yacc-like Haskell Parser
	generator".

	An {LALR1 grammar} {parser generator} for {Haskell}.  Happy is
	written in Haskell, uses a parser generated by itself, and can
	be compiled using {ghc}, {hbc} or {gofer}.  Happy uses an
	implementation of {monadic IO} built on top of stream IO, but
	this should change when the {Haskell 1.3} {standard} has been
	implemented.

	Version: 0.9 (1996-02-28).

	Happy is covered by the {General Public License}.

	{(http://dcs.gla.ac.uk/fp/software/happy.html)}.

	{(ftp://ftp.dcs.gla.ac.uk/pub/haskell/happy/)}.

	E-mail: <andy@dcs.gla.ac.uk>, <simonm@dcs.gla.ac.uk>.

	(1996-03-21)

haptic interface

	<interface, hardware> A touch interface to a computer that
	provides {feedback}, such as a {data glove}.

	(2003-10-17)

haptics

	<interface> The science of applying tactile sensation to human
	interaction with computers.

	{Haptics Community (http://haptic.mech.northwestern.edu/)}.

	(2003-10-17)

haque

	<spelling, jargon> /hak/ ({Usenet}) A variant spelling of
	{hack}, used only for the noun form and connoting an {elegant}
	hack.

	[{Jargon File}]

	(1995-02-22)

hard boot

	<operating system> A {boot} which resets the entire {system}.

	The phrase has connations of hostility toward, or frustration
	with, the computer being booted.  For example, "I'll have to
	hard boot this {losing} {Sun}", or "I recommend booting it
	hard".

	Hard boots are often performed with a {power cycle}.

	Contrast {soft boot}.  See also {cold boot} and {reboot}

	[{Jargon File}]

	(1995-11-27)

hard-coded

	<jargon> (By analogy with "{hard-wired}") Said of a data value
	or behaviour written directly into a program, possibly in
	multiple places, where it cannot be easily modified.  There
	are several alternatives, depending on how often the value is
	likely to change.  It may be replaced with a {compile-time}
	constant, such as a {C} "#define" {macro}, in which case a
	change will still require recompilation; or it may be read at
	{run time} from a {profile}, resource (see {de-rezz}), or
	{environment variable} that a {user} can easily modify; or it
	may be read as part of the program's input data.

	To change something hard-coded requires recompilation (if
	using a compiled language of course) but, more seriously, it
	requires sufficient understanding of the implementation to be
	sure that the change will not introduce inconsistency and
	cause the program to fail.

	For example, "The line terminator is hard-coded as newline;
	who in their right mind would use anything else?"

	See {magic number}.

	[{Jargon File}]

	(1999-10-18)

hardcopy

	<jargon> A paper printout of data displayed on a screen.

	Contrast {softcopy}.

	(1995-08-31)

hard crash

	<programming> When a program stops running completely and
	unexpectedly, often due to external events, e.g. the {CPU}
	overheating or an unrecoverable memory error.

	See also {disk crash}.

	(2009-07-01)

hard disk

	<storage> (In contrast to {floppy disk}) A {magnetic disk}
	data storage device where the disks are rigid and fixed to a
	central axle.  They are usually packaged with associated
	read/write heads and electronics.  Most hard disks are
	permanently connected to the drive (fixed disks) though there
	are also {removable hard disks}.

	See {magnetic disk}.

	(2007-06-14)

hard disk drive

	<storage> (HDD) A {disk drive} used to read and write {hard
	disks}.

	(1995-03-14)

hard drive

	{hard disk drive}

hard link

	<file system> One of several directory entries which refer to
	the same {Unix} {file}.  A hard link is created with the "ln"
	(link) command:

		ln <old name> <new name>

	where <old name> and <new name> are {pathnames} within the
	same {file system}.  Hard links to the same file are
	indistinguishable from each other except that they have
	different pathnames.  They all refer to the same {inode} and
	the inode contains all the information about a file.

	The standard ln command does not usually allow you to create a
	hard link to a directory, chiefly because the standard {rm}
	and {rmdir} commands do not allow you to delete such a link.
	Some systems provide link and {unlink} commands which give
	direct access to the {system calls} of the same name, for
	which no such restrictions apply.

	Normally all hard links to a file must be in the same {file
	system} because a directory entry just relates a pathname to
	an inode within the same file system.  The only exception is a
	{mount point}.

	The restrictions on hard links to directories and between
	file systems are very common but are not mandated by {POSIX}.
	{Symbolic links} are often used instead of hard links because
	they do not suffer from these restrictions.

	The space associated with a file is not freed until all the
	hard links to the file are deleted.  This explains why the
	system call to delete a file is called "unlink".

	{Microsoft Windows} {NTFS} supports hard links via the
	{fsutil} command.

	{Unix manual page}: ln(1).

	{(http://microsoft.com/windowsxp/home/using/productdoc/en/fsutil_hardlink.asp)}.

	(2004-02-24)

hard linking

	{hard link}

hard sector

	<storage> An archaic {floppy disk} format employing multiple
	synchronisation holes in the media to define the {sectors}.

	(1995-01-24)

hardware

	<hardware> The physical, touchable, material parts of a
	computer or other system.  The term is used to distinguish
	these fixed parts of a system from the more changeable
	{software} or {data} components which it executes, stores, or
	carries.

	Typical computer hardware consists of electronic devices
	({CPU}, {memory}, {display}) with some electromechanical parts
	(keyboard, {printer}, {disk drives}, {tape drives},
	loudspeakers) for input, output and storage.  Completely
	non-electronic (mechanical, electromechanical, hydraulic,
	biological) computers have also been conceived of and built.

	See also {firmware}, {wetware}.

	(1997-01-23)

Hardware Abstraction Layer

	<operating system> (HAL) The layer of {Microsoft} {Windows NT}
	where they have isolated their {assembly language} code.

	(1995-04-17)

hardware circular buffer

	<programming, hardware> {digital signal processors} which
	support hardware {circular buffers} automatically generate and
	increment {pointers} for {memory} accesses which wrap to the
	beginning of the {buffer} when its end is reached, thus saving
	the time and instructions otherwise needed to ensure that the
	address pointer stays within the boundary of the buffer, and
	speeding the execution of repetitive DSP algorithms.

	{Digital Signal Processor For Digital Audio Applications
	(http://analog.com/publications/documentation/21065L_Audio_Tutorial.PDF)}.

	(2000-06-17)

Hardware Description Language

	<language> (HDL) A kind of language used for the conceptual
	design of {integrated circuits}.  Examples are {VHDL} and
	{Verilog}.

	(1995-04-18)

hardware handshaking

	<communications> A technique for regulating the flow of data
	across an interface by means of signals carried on separate
	wires.

	A common example is the RTS (Request to Send) and CTS (Clear
	to Send) signals on an {EIA-232} {serial line}.

	The alternative, {software handshaking}, uses two special
	characters inserted into the data stream to carry the same
	information.

	(1995-01-23)

hardware register

	<hardware, system administration> (Or "hardware log") A list
	of all {hardware}, both internal and external, that is
	attached to a particular computer.

	(2006-09-07)

hardwarily

	/hard-weir'*-lee/ In a way pertaining to hardware.  "The
	system is hardwarily unreliable."  The adjective "hardwary" is
	*not* traditionally used, though it has recently been reported
	from the U.K.

	See {softwarily}.

	[{Jargon File}]

	(1995-01-23)

hard-wired

	1. <electronics> An aspect of an electronic circuit which is
	determined by the wiring of the hardware, as opposed to being
	programmable in software or controlled by a switch.

	2. <software, jargon> In software, a synonym for {hard-coded}.

	3. By extension, anything that is not modifiable, especially
	in the sense of customisable to one's particular needs or
	tastes.

	[{Jargon File}]

	(1999-10-18)

Harris Semiconductor Ltd.

	<company>

	Address: Riverside Way, Camberley, Surrey, CU15 3YQ, UK.

	Telephone: +44 (1276) 686 886.  Fax: +44 (1276) 682 323.

	(1995-11-21)

Harvard architecture

	<architecture> A computer {architecture} in which program
	instructions are stored in different memory from data.  Each
	type of memory is accessed via a separate {bus}, allowing
	instructions and data to be fetched in parallel.

	Contrast: {von Neumann architecture}.

	[Why Harvard?]

	(2004-01-14)

Harvard Graphics

	<graphics, tool> A presentation graphics product by {Software
	Publishing Corporation} (SPC) for creating presentations,
	speeches, slides, etc..

	(1998-07-20)

Harvard Mark II Machine

	<computer, history> A {relay}-based computer designed and
	built by {Howard Aiken}, with support from {IBM}, for the
	United States Navy's Naval Proving Ground, between 1942 -
	1947.  The Harvard Mark II was the second in a series of four
	{electro-mechanical} computers that were forerunners of the
	{ENIAC}.

	{Harvard machines
	(http://hoc.co.umist.ac.uk/storylines/compdev/electromechanical/harvardmarkmachines.html)}.

	(2003-09-13)

Harvest

	<tool, networking> A highly scalable, customisable system for
	discovering resources on the {Internet}.

	Version: 1.3.

	{(http://tardis.ed.ac.uk/harvest/)}.

	(1999-01-16)

Harvest C

	A {C} compiler, assembler and linker for the {Macintosh} by
	Eric W. Sink.  The parts of the system are integrated in a
	single application, which manages a "project" composed by
	several C source files and resource files (which contain
	data).  Version 1.3.

	{(ftp://archive.umich.edu/mac/development/languages/)}.

	(1992-05-26)

hash

	1. <character> {hash character}.

	2. <programming> {hash coding}.

	3. The preferred term for a {Perl} {associative array}.

	(1995-03-06)

hash bucket

	{hash coding}

hash character

	<character> "#", {ASCII} character 35.

	Common names: number sign; pound; pound sign; hash; sharp;
	{crunch}; hex; {INTERCAL}: mesh.  Rare: grid; crosshatch;
	octothorpe; flash; {ITU-T}: square, pig-pen; tictactoe;
	scratchmark; thud; thump; {splat}.

	The pronunciation of "#" as "pound" is common in the US but a
	bad idea; {Commonwealth Hackish} has its own, rather more
	apposite use of "pound sign" (confusingly, on British
	keyboards the pound graphic happens to replace "#"; thus
	Britishers sometimes call "#" on a US-ASCII keyboard "pound",
	compounding the American error).  The US usage derives from an
	old-fashioned commercial practice of using a "#" suffix to tag
	pound weights on bills of lading.  The character is usually
	pronounced "hash" outside the US.

	The name "octothorpe" was made up by a {Bell Labs} supervisor,
	Don Macpherson.

	{Octothorpe story
	(http://sigtel.com/tel_tech_octothorpe.html)}.

	(2003-07-05)

hash coding

	<programming, algorithm> (Or "hashing") A scheme for providing
	rapid access to data items which are distinguished by some
	{key}.  Each data item to be stored is associated with a key,
	e.g. the name of a person.  A {hash function} is applied to
	the item's key and the resulting hash value is used as an
	index to select one of a number of "hash buckets" in a hash
	table.  The table contains pointers to the original items.

	If, when adding a new item, the hash table already has an
	entry at the indicated location then that entry's key must be
	compared with the given key to see if it is the same.  If two
	items' keys hash to the same value (a "{hash collision}") then
	some alternative location is used (e.g. the next free location
	cyclically following the indicated one).  For best
	performance, the table size and {hash function} must be
	tailored to the number of entries and range of keys to be
	used.  The hash function usually depends on the table size so
	if the table needs to be enlarged it must usually be
	completely rebuilt.

	When you look up a name in the phone book (for example), you
	typically hash it by extracting its first letter; the hash
	buckets are the alphabetically ordered letter sections.

	See also: {btree}, {checksum}, {CRC}, {pseudorandom number},
	{random}, {random number}, {soundex}.

	(1997-08-03)

hash collision

	<programming> (Or "hash clash") When two different keys hash
	to the same value, i.e. to the same location in a {hash
	table}.

	{ESR} once asked a friend what he expected Berkeley to be
	like.  The friend replied, "Well, I have this mental picture
	of naked women throwing Molotov cocktails, but I think that's
	just a collision in my hash tables."

	[{Jargon File}]

	(1995-01-23)

hash function

	<programming> A {hash coding} {function} which assigns a data
	item distinguished by some "key" into one of a number of
	possible "hash buckets" in a hash table.  The hash function is
	usually combined with another more precise function.

	For example a program might take a string of letters and put
	it in one of twenty six lists depending on its first letter.
	Ideally, a hash function should distribute items evenly
	between the buckets to reduce the number of {hash collisions}.
	If, for example, the strings were names beginning with "Mr.",
	"Miss" or "Mrs." then taking the first letter would be a very
	poor hash function because all names would hash the same.

	(1997-08-03)

hashing

	{hash coding}

hash table

	{hash coding}

Haskell

	<language> (Named after the logician {Haskell Curry}) A {lazy}
	{purely functional} language largely derived from {Miranda}
	but with several extensions.  Haskell was designed by a
	committee from the {functional programming} community in April
	1990.  It features static {polymorphic} typing, {higher-order
	functions}, user-defined {algebraic data types}, and
	{pattern-matching} {list comprehensions}.  Innovations include
	a {class} system, systematic operator {overloading}, a
	{functional I/O} system, functional {arrays}, and {separate
	compilation}.

	Haskell 1.3 added many new features, including {monadic I/O},
	standard libraries, {constructor classes}, {labeled fields} in
	datatypes, {strictness} {annotations}, an improved {module}
	system, and many changes to the Prelude.

	{Gofer} is a cut-down version of Haskell with some extra
	features.

	{Filename extension}: .hs, .lhs ({literate programming}).

	{(http://haskell.org/)}.

	["Report on the Programming Language Haskell Version 1.1",
	Paul Hudak & P. Wadler eds, CS Depts, U Glasgow and Yale U.,
	Aug 1991].

	[Version 1.2: SIGPLAN Notices 27(5), Apr 1992].

	{Haskell 1.3 Report
	(http://haskell.cs.yale.edu/haskell-report/haskell-report.html)}.

	Mailing list: <haskell-request@cs.yale.edu>.

	Yale Haskell - Version 2.0.6, Haskell 1.2 built on {Common
	Lisp}.

	{(ftp://nebula.cs.yale.edu/pub/haskell/yale/)}.

	Glasgow Haskell (GHC) - Version 2.04 for {DEC Alpha}/{OSF}2;
	{HPPA1.1}/{HPUX}9,10; {SPARC}/{SunOs} 4, {Solaris} 2;
	{MIPS}/{Irix} 5,6; {Intel 80386}/{Linux},{Solaris}
	2,{FreeBSD},{CygWin} 32; {PowerPC}/{AIX}.  GHC generates {C}
	or {native code}.

	{(ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/glasgow/)}.

	E-mail: <glasgow-haskell-request@dcs.glasgow.ac.uk>.

	Haskell-B - Haskell 1.2 implemented in {LML}, generates
	{native code}.

	{(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}.

	E-mail: <hbc@cs.chalmers.se>.

	(1997-06-06)

Haskell B

	<language> An early version of {Haskell} by Lennart Augustsson
	<augustss@cs.chalmers.se> from {Chalmers}.  Haskell B evolved
	into a full-featured implementation of Haskell 1.2, with quite
	a few extensions.

	Ports exist for many {platforms} including {Sun}, {DEC},
	{Sequent}, {IBM PC}, {Symmetry} and unsupported versions for
	{NS32000}, {IBM RT/PC}, {Cray}, {Sun-3}, {Vax}, {ARM}, and
	{RS/6000}.

	Version 0.999.5 included a compiler, interpreter, library,
	documentation, and examples.

	{(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers/)}.

	Mailing list: <haskell-request@cs.yale.edu>.

	E-mail: <hbc@cs.chalmers.se>.

	(1996-08-21)

Haskell Curry

	<person> Haskell Brooks Curry (1900-09-12 - 1982-09-01).  The
	logician who re-invented and developed {combinatory logic}.

	The {functional programming} language {Haskell} was named
	after him.

	{Biography
	(http://www-groups.dcs.st-and.ac.uk/~history/Mathematicians/Curry.html)}.

	(1999-01-08)

Haskell User's Gofer System

	<language> (HUGS) An implementation of {Haskell} derived from
	{Gofer} 2.30b with an interactive development environment much
	like Gofer's.  Almost all of the features of Haskell 1.2 are
	implemented with the exception of the {module} system.  Hugs
	supports Haskell style {type class}es, a full prelude,
	{derived instances}, defaults, {overloaded} numeric {literals}
	and {pattern matching}, and {bignum} arithmetic.

	{Home
	(http://cs.nott.ac.uk/Department/Staff/mpj/hugs.html)}.

	{(ftp://ftp.cs.nott.ac.uk/pub/haskell/hugs)}.

	E-mail: Mark P. Jones <mpj@cs.nott.ac.uk>.

	(1995-02-14)

HASL

	<language> {SASL} plus {conditional unification}.

	["A Prological Definition of HASL, A Purely Functional
	Language with Unification Based Conditional Binding
	Expressions", H. Abramson in Logic Programming: Functions,
	Relations and Equations, D. DeGroot et al eds, P-H 1986].

	(1996-08-21)

HASP

	{Houston Automatic Spooling Program}

has the X nature

	(From Zen Buddhist koans of the form "Does an X have the
	Buddha-nature?") Common hacker construction for "is an X",
	used for humorous emphasis.  "Anyone who can't even use a
	program with on-screen help embedded in it truly has the
	{loser} nature!"  See also {the X that can be Y is not the
	true X}.

	[{Jargon File}]

	(1995-01-11)

hat

	A common (spoken) name for the circumflex ("^", ASCII 94)
	character.

	See {ASCII} for other synonyms.

	[{Jargon File}]

Hayes

	A {modem} manufacturer.

	{(gopher://leapfrog.almac.co.uk:70/00/business/comms/hayes/corporat.txt)}.

	Address: Atlanta, Georgia, USA.

	(1995-01-30)

Hayes-compatible

	<communications> A description of a {modem} which understands
	the same set of commands as one made by {Hayes}.

	[What are the commands?]

	(1996-12-08)

Haze

	<graphics> An {X Window System} {window manager} designed to
	be light-weight and look like {MacOS}.  Haze is based on
	{mlvwm}.  It support {virtual desktops}, configurable menu
	bar and shaded windows.

	{Haze home (http://www.escomposlinux.org/jes/description.html)}.

	(2010-05-03)

HBOOK

	A histogramming package in the CERN program library.

hc

	The compiler for the {h} {hyperbook} language.

HC-900

	<hardware> A hybrid {controller} made by {Honeywell}.

	{Honeywell
	(http://honeywell.silverw.com/docs/51-52-03-31.pdf)}.

	[Hybrid of what and what?]

	(2004-03-31)

HCF

	1. <operating system> {Host Command Facility}.

	2. <architecture> {Halt and Catch Fire}.

	[{Jargon File}]

	(1999-01-24)

HCI

	1. {Human-Computer Interaction}.

	2. {Human-Computer Interface}.

	3. {Host Control Interface}.

	(2002-06-21)

HCLP

	Hierarchical {CLP}.

	["Constraint Hierarchies and Logic Programming", A. Borning et
	al, in Proc Sixth Intl Logic Prog Conf, June 1989,
	pp. 149-164].

HCPRVR

	"HCPRVR: An Interpreter for Logic Programs", D. Chester in
	Proc First Natl Conf on AI, Stanford, 1980.

HCS

	{Heterogeneous Computer System}

	A {distributed system} project.

	[Where?  When?  What?]

	(1995-02-01)

HD

	{high density}

HD6309

	{Hitachi 6309}

HDA

	{Head Disk Assembly}

HDC

	{Disk Controller}

HDD

	{hard disk drive}

HDF

	{Hierarchical Data Format}

HDFL

	A {single assignment} language.

	["Methods for Handling Structures in Data-Flow Systems",
	J.L. Gaudiot, Proc 12th Intl Symp Comp Arch, June 1985].

HDL

	{Hardware Description Language}

HDLC

	{High-level Data Link Control}

HDM

	{Hierarchical Design Methodology}

HDMI

	{High-Definition Multimedia Interface}

HDSL

	{High bit-rate Digital Subscriber Line}

HDTV

	{High Definition Television}

hdx

	{half-duplex}

Head Disk Assembly

	<hardware, storage> (HDA) A sealed, high capacity {mainframe}
	{hard disk} with integral heads, as opposed to a {removable
	disk}.

	(1999-01-13)

header

	1. The portion of a {packet}, preceding the actual data,
	containing source and destination addresses, error checking
	and other fields.

	2. The part of an {electronic mail} message or {news} article
	that precedes the body of a message and contains, among other
	things, the sender's name and e-mail address and the date and
	time the message was sent.

Head Normal Form

	<theory, reduction> (HNF) A term describing a {lambda
	expression} whose top level is either a variable, a data
	value, a built-in function applied to too few arguments, or a
	{lambda abstraction} whose body is not reducible.  I.e. the
	top level is neither a {redex} nor a lambda abstraction with a
	reducible body.

	An expression in HNF may contain redexes in argument postions
	whereas a {normal form} may not.

	Compare {Weak Head Normal Form}.

	(2003-01-08)

head normalisation theorem

	Under the typed lambda-calculus, beta/delta reduction of the
	left-most redex (normal order reduction) is guaranteed to
	terminate with a head normal form if one exists.  See also
	Church-Rosser theorem.

heads down

	[Sun] Concentrating, usually so heavily and for so long that
	everything outside the focus area is missed.  See also {hack
	mode} and {larval stage}, although this mode is hardly
	confined to fledgling hackers.

	[{Jargon File}]

head-strict

	<theory> A head-strict function will not necessarily evaluate
	every {cons} cell of its (list) argument, but whenever it does
	evaluate a cons cell it will also evaluate the element in the
	head of that cell.  An example of a head-strict function is

		beforeZero :: [Int] -> [Int]
		beforeZero []     = []
		beforeZero (0:xs) = []
		beforeZero (x:xs) = x : beforeZero xs

	which returns a list up to the first zero.

	This pattern of evaluation is important because it is common
	in functions which operate on a list of inputs.

	See also {tail-strict}, {hyperstrict}.

	(1995-05-11)

heap

	1. <programming> An area of memory used for {dynamic memory
	allocation} where blocks of memory are allocated and freed in
	an arbitrary order and the pattern of allocation and size of
	blocks is not known until {run time}.  Typically, a program
	has one heap which it may use for several different purposes.

	Heap is required by languages in which functions can return
	arbitrary data structures or functions with {free variables}
	(see {closure}).  In {C} functions {malloc} and {free} provide
	access to the heap.

	Contrast {stack}.  See also {dangling pointer}.

	2. <programming> A data structure with its elements partially
	ordered (sorted) such that finding either the minimum or the
	maximum (but not both) of the elements is computationally
	inexpensive (independent of the number of elements), while
	both adding a new item and finding each subsequent
	smallest/largest element can be done in O(log n) time, where n
	is the number of elements.

	Formally, a heap is a {binary tree} with a key in each {node},
	such that all the {leaves} of the tree are on two adjacent
	levels; all leaves on the lowest level occur to the left and
	all levels, except possibly the lowest, are filled; and the
	key in the {root} is at least as large as the keys in its
	children (if any), and the left and right subtrees (if they
	exist) are again heaps.

	Note that the last condition assumes that the goal is finding
	the minimum quickly.

	Heaps are often implemented as one-dimensional {arrays}.
	Still assuming that the goal is finding the minimum quickly
	the {invariant} is

	   heap[i] <= heap[2*i] and heap[i] <= heap[2*i+1] for all i,

	where heap[i] denotes the i-th element, heap[1] being the
	first.  Heaps can be used to implement {priority queues} or in
	{sort} algorithms.

	(1996-02-26)

heartbeat

	1. <networking> The signal emitted by a Level 2 Ethernet
	transceiver at the end of every {packet} to show that the
	collision-detection circuit is still connected.

	2. A periodic synchronisation signal used by software or
	hardware, such as a {bus} clock or a periodic {interrupt}.

	3. The "natural" oscillation frequency of a computer's clock
	crystal, before frequency division down to the machine's clock
	rate.

	4. A signal emitted at regular intervals by software to
	demonstrate that it is still alive.  Sometimes hardware is
	designed to reboot the machine if it stops hearing a
	heartbeat.  See also {breath-of-life packet}, {watchdog}.

	[{Jargon File}]

	(1996-03-12)

heatseeker

	<person, jargon> (IBM) A customer who can be relied upon to
	buy, without fail, the latest version of an existing product
	(not quite the same as a member of the {lunatic fringe}).  A
	1993 example of a heatseeker is someone who, owning a 286 PC
	and Windows 3.0, goes out and buys {Windows 3.1} (which offers
	no worthwhile benefits unless you have a 386).  If all
	customers were heatseekers, vast amounts of money could be
	made by just fixing the bugs in each release (n) and selling
	it to them as release (n+1).

	[{Jargon File}]

	(1996-03-12)

heat sink

	<hardware> /heet sink/ (from "sink", electronics jargon for
	something which takes in current) A piece of thermally
	conductive metal attached to a {semiconductor} or other
	electronic device and designed to prevent it from overheating
	by conducting heat away from it and radiating it to the
	environment.  Heat sinks often have fins to increase their
	surface area.  They occasionally have fans attached.  Heat
	sink compound can be smeared between the device and the heat
	sink to improve thermal conduction.

	(1997-06-10)

heat slug

	<hardware, processor> A metal plate that helps dissipate heat
	away from the {silicon} {core} of a {processor} to the
	packaging or {heat-sink}.

	(2000-08-26)

heavy metal

	{big iron}

heavyweight

	High-overhead; {baroque}; code-intensive; featureful, but
	costly.  Especially used of communication protocols, language
	designs, and any sort of implementation in which maximum
	generality and/or ease of implementation has been pushed at
	the expense of mundane considerations such as speed, memory
	use and startup time.  {Emacs} is a heavyweight editor; {X} is
	an *extremely* heavyweight window system.  This term isn't
	pejorative, but one hacker's heavyweight is another's
	{elephantine} and a third's monstrosity.

	Opposite: "lightweight".  Usage: now borders on technical
	especially in the compound "heavyweight process".

	(1994-12-22)

heavy wizardry

	Code or designs that trade on a particularly intimate
	knowledge or experience of a particular operating system or
	language or complex application interface.  Distinguished from
	{deep magic}, which trades more on arcane *theoretical*
	knowledge.  Writing device drivers is heavy wizardry; so is
	interfacing to {X} (sense 2) without a toolkit.  Especially
	found in source-code comments of the form "Heavy wizardry
	begins here".

	Compare {voodoo programming}.

	[{Jargon File}]

Hebbian learning

	<artificial intelligence> The most common way to train a
	{neural network}; a kind of {unsupervised learning}; named
	after canadian neuropsychologist, Donald O. Hebb.

	The {algorithm} is based on Hebb's Postulate, which states
	that where one cell's firing repeatedly contributes to the
	firing of another cell, the magnitude of this contribution
	will tend to increase gradually with time.  This means that
	what may start as little more than a coincidental relationship
	between the firing of two nearby neurons becomes strongly
	causal.

	Despite limitations with Hebbian learning, e.g., the inability
	to learn certain patterns, variations such as {Signal Hebbian
	Learning} and {Differential Hebbian Learning} are still used.

	{(http://neuron-ai.tuke.sk/NCS/VOL1/P3_html/node14.html)}.

	(2003-11-07)

heisenbug

	<jargon> /hi:'zen-buhg/ (From Heisenberg's Uncertainty
	Principle in quantum physics) A bug that disappears or alters
	its behaviour when one attempts to probe or isolate it.  (This
	usage is not even particularly fanciful; the use of a debugger
	sometimes alters a program's operating environment enough that
	buggy code, such as that which relies on the values of
	uninitialised memory, behaves quite differently.)

	In {C}, nine out of ten heisenbugs result from uninitialised
	{auto variables}, {fandango on core} phenomena (especially
	corruption of the malloc {arena}) or errors that {smash the
	stack}.

	Opposite: {Bohr bug}.  See also {mandelbug}, {schroedinbug}.

	[{Jargon File}]

	(1995-02-28)

Helen Keller mode

	1. State of a hardware or software system that is deaf, dumb,
	and blind, i.e. accepting no input and generating no output,
	usually due to an infinite loop or some other excursion into
	{deep space}.  (Unfair to the real Helen Keller, whose success
	at learning speech was triumphant.)  See also {go flatline},
	{catatonic}.

	2. On {IBM PCs} under {MS-DOS}, refers to a specific failure
	mode in which a screen saver has kicked in over an
	{ill-behaved} application which bypasses the very interrupts
	the screen saver watches for activity.  Your choices are to
	try to get from the program's current state through a
	successful save-and-exit without being able to see what you're
	doing, or to {re-boot} the machine.  This isn't (strictly
	speaking) a crash.

	[{Jargon File}]

Helix

	A {hardware description language} from {Silvar-Lisco}.

hello

	{hello, world}

hello packet

	<networking, communications> An {OSPF} {packet} sent
	periodically on each {network interface}, real or {virtual},
	to discover and test connections to neighbours.  Hello packets
	are multicast on physical networks capable of {multicasting}
	or {broadcasting} to enable dynamic {router} discovery.  They
	include the parameters that routers connected to a common
	network must agree on.

	Hello packets increase network resilience by, e.g., allowing a
	router to establish a secondary connection when a primary
	connection fails.

	(1999-11-02)

hello, sailor!

	<jargon> Occasional West Coast equivalent of {hello, world};
	seems to have originated at SAIL, later associated with the
	game {Zork} (which also included "hello, aviator" and "hello,
	implementor").  Originally from the traditional hooker's
	greeting to a swabbie fresh off the boat, of course.

	[{Jargon File}]

	(2007-10-30)

hello, world

	<programming> The canonical, minimal, first program that a
	programmer writes in a new {programming language} or {development
	environment}.  The program just prints "hello, world" to {standard
	output} in order to verify that the programmer can successfully
	edit, compile and run a simple program before embarking on
	anything more challenging.

	Hello, world is the first example program in the {C} programming
	book, {K&R}, and the tradition has spread from there to pretty
	much every other language and many of their textbooks.

	Environments that generate an unreasonably large executable
	for this trivial test or which require a {hairy}
	compiler-linker invocation to generate it are considered bad.

	{Hello, World in over 400 programming languages
	(http://www.roesler-ac.de/wolfram/hello.htm)}.

	(2013-10-27)

HELP

	1. <language, robotics> {DEA}.  A Language for industrial
	robots.

	2. (Help Est un Lisp Paresseux - Help Is a Lazy Lisp).  A
	{lazy} version of {Scheme} with strictness {annotations}, by
	Thomas Schiex <schiex@europe.cert.fr>.

Helvetica

	<font> One of the most widely used {sans-serif} {typefaces},
	developed in 1957 by Swiss typeface designer Max Miedinger with
	Eduard Hoffmann.  Originally called Neue Haas Grotesk, it was
	renamed Helvetica for the international market.  Helvetica is very
	similar to the common {Arial} typeface.  The name is Latin for
	Swiss.

	{Linotype (http://www.linotype.com/526/helvetica-family.html)}.

	(2013-09-19)

henry

	<unit> (H) The {SI} unit of inductance: one henry is the
	inductance of a closed loop in which the induced voltage is
	one volt if the current flowing through it changes by one
	ampere each second, i.e., 1 H = 1 Vs/A.  Named after the
	American physicist Joseph Henry (1797-1878).

	(1997-03-16)

HENSA

	{Higher Education National Software Archive}

HEP

	High Energy (Particle) Physics.

HEPDB

	A {database management system} for {HEP}.

HEPiX

	A recently formed collaboration among various HEP institutes
	aiming at providing "compatible" versions of the Unix
	operating system at their sites.

HEPnet

	An association concerned with networking requirements for high
	energy physicists.

HEPVM

	A collaboration among various HEP institutes to implement
	"compatible" versions of IBM's VM-CMS operating system at
	their sites.

HEQS

	E. Derman.  Constraint language for financial modelling.  Uses
	an extension of the equation solver in IDEAL.  "A Simple
	Equation Solver and Its Application to Financial Modeling",
	E. Derman et al, Soft Prac & Exp 14(12):1169-1181 (Dec 1984).

HERA

	An electron-proton collider at DESY, W. Germany.

HERAKLIT

	<language> A distributed {object-oriented} language.

	["Definition einer objektorientierten Programmiersprache mit
	hierarchischem Typkonzept", B. Hindel, diss U
	Erlangen-Nuernberg, Dec 1987].

	(1995-03-16)

here document

	<operating system> Data included in a {Unix} {shell script} or
	{Perl} script using the "<<" syntax.

	(1995-04-19)

Herman Hollerith

	<person> The promulgator of the {punched card}.  Hollerith was
	born on 1860-02-29 and died on 1929-11-17.  He graduated from
	Columbia University, NewYork, NY, USA.  He joined the US
	Census Bureau as a statistician where he used a punched card
	device to help analyse the 1880 US census data.  This punched
	card system stored data in 80 columns.  This "80-column"
	concept has carried forward in various forms into modern
	applications.

	In 1896, Hollerith founded the {Tabulating Machine Company} to
	exploit his invention and in 1924 his firm became part of
	{IBM}.  The Hollerith system was used for the 1911 UK census.

	A correspondant writes:

	Wasn't Hollerith's original machine first used for the 1990 US
	census?  And I think I am right in saying that the physical
	layout was a 20x12 grid of round holes.  The one I have seen
	(picture only, unfortunately, not the real thing) did not use
	'columns' as such but holes were grouped into
	irregularly-shaped fields, such that each hole had a
	more-or-less independent function.

	(2001-08-30)

Hermes

	<language> An experimental, very high level, integrated
	language and system from the {IBM} {Watson Research Centre},
	produced in June 1990.  It is designed for implementation of
	large systems and distributed applications, as well as for
	general-purpose programming.  It is an {imperative language},
	{strongly typed} and is a {process-oriented} successor to
	{NIL}.

	Hermes hides distribution and heterogeneity from the
	programmer.  The programmer sees a single {abstract machine}
	containing processes that communicate using calls or sends.
	The {compiler}, not the programmer, deals with the complexity
	of data structure layout, local and remote communication, and
	interaction with the {operating system}.  As a result, Hermes
	programs are portable and easy to write.  Because the
	programming paradigm is simple and high level, there are many
	opportunities for optimisation which are not present in
	languages which give the programmer more direct control over
	the machine.

	Hermes features {threads}, {relational tables}Hermes is,
	{typestate} checking, {capability}-based access and {dynamic
	configuration}.

	Version 0.8alpha patchlevel 01 runs on {RS/6000}, {Sun-4},
	{NeXT}, {IBM-RT}/{BSD4.3} and includes a {bytecode compiler},
	a bytecode->C compiler and {run-time support}.

	{0.7alpha for Unix
	(ftp://software.watson.ibm.com/pub/hermes)}.

	E-mail: <hermes-request@watson.ibm.com>, Andy Lowry
	<lowry@watson.ibm.com>.

	{Usenet} newsgroup: {news:comp.lang.hermes}.

	["Hermes: A Language for Distributed Computing".  Strom,
	Bacon, Goldberg, Lowry, Yellin, Yemini.  Prentice-Hall,
	Englewood Cliffs, NJ.  1991.  ISBN: O-13-389537-8].

	(1992-03-22)

Hesiod

	<project> The {name server} of the {Athena} project.

	[Details?]

	(1997-10-27)

heterogeneous

	Composed of unrelated parts, different in kind.

	Often used in the context of {distributed systems} that may be
	running different {operating systems} or network {protocols}
	(a {heterogeneous network}).

	For examples see: {interoperable database}, {middleware}.

	Constrast {homogeneous}.

	(1999-05-06)

heterogeneous network

	<networking> A {network} running multiple {network layer}
	{protocols} such as {DECnet}, {IP}, {IPX}, {XNS}.

	(1997-10-27)

heterogenous

	<spelling> It's spelled {heterogeneous}.

	(1999-06-10)

heuristic

	1. <programming> A rule of thumb, simplification, or educated
	guess that reduces or limits the search for solutions in
	domains that are difficult and poorly understood.  Unlike
	{algorithms}, heuristics do not guarantee optimal, or even
	{feasible}, solutions and are often used with no theoretical
	guarantee.

	2. <algorithm> {approximation algorithm}.

	(2001-04-12)

heuristics testing

	{failure-directed testing}

Hewlett-Packard

	(HP) Hewlett-Packard designs, manufactures and services
	electronic products and systems for measurement, computation
	and communications.  The company's products and services are
	used in industry, business, engineering, science, medicine and
	education in approximately 110 countries.

	HP was founded in 1939 and employs 96600 people, 58900 in the
	USA.  They have manufacturing and R&D establishments in 54
	cities in 16 countries and approximately 600 sales and service
	offices in 110 countries.  Their revenue (in 1992/1993?) was
	$20.3 billion.  The Chief Executive Officer is Lewis E. Platt.
	HP's stock is traded on the New York Stock Exchange and the
	Pacific, Tokyo, London, Frankfurt, Zurich and Paris exchanges.

	Quarterly sales $6053M, profits $347M (Aug 1994).

	{(http://hp.com/home.html)}.

	(1994-09-26)

Hewlett-Packard Graphics Language

	<graphics, language> (HP-GL) A {vector graphics} language used
	by {HP} plotters.

	[Details?  On-line spec?]

	(1994-10-27)

Hewlett-Packard Interface Bus

	{IEEE 488}

Hewlett Packard Multi Processing Executive

	<operating system> (HP-MPE) The standard {operating system} on
	all {HP3000} {minicomputers}, in the same way that HP9000
	computers run {HP-UX}.

	Latest version: MPE/IX Version 5.5.04, as of 1998-02-17.

	(1998-02-17)

Hewlett Packard Precision Architecture

	(HP-PA) {Hewlett Packard}'s range of RISC processors.

	[Details?]

	(1995-02-22)

Hewlett-Packard Visual Engineering Environment

	(HP VEE) A package similar in intention to {LabVIEW}, running
	on {Unix} {workstations} under {OSF}/{Motif}.

	(1997-05-12)

hex

	1. {hexadecimal}.

	2. A 6-pack of anything (compare {quad}).  Neither usage has
	anything to do with {magic} or {black art}, though the pun is
	appreciated and occasionally used by hackers.  True story: As
	a joke, some hackers once offered some surplus ICs for sale to
	be worn as protective amulets against hostile magic.  The
	chips were, of course, hex inverters.

	3. <character> The {hash} character, used to introduce
	{hexadecimal} constants in some {assembly languages}.

	[{Jargon File}]

	(1995-03-06)

hexadecimal

	<mathematics> (Or "hex") {Base} 16.  A number representation
	using the digits 0-9, with their usual meaning, plus the
	letters A-F (or a-f) to represent hexadecimal digits with
	values of (decimal) 10 to 15.  The right-most digit counts
	ones, the next counts multiples of 16, then 16^2 = 256, etc.

	For example, hexadecimal BEAD is decimal 48813:

		digit    weight        value
		B = 11   16^3 = 4096   11*4096 = 45056
		E = 14   16^2 =  256   14* 256 =  3584
		A = 10   16^1 =   16   10*  16 =   160
		D = 13   16^0 =    1   13*   1 =    13
						 -----
					BEAD   = 48813

	There are many conventions for distinguishing hexadecimal
	numbers from decimal or other bases in programs.  In {C} for
	example, the prefix "0x" is used, e.g. 0x694A11.

	Hexadecimal is more succinct than {binary} for representing
	{bit-masks}, machines addresses, and other low-level constants
	but it is still reasonably easy to split a hex number into
	different bit positions, e.g. the top 16 bits of a 32-bit word
	are the first four hex digits.

	The term was coined in the early 1960s to replace earlier
	"sexadecimal", which was too racy and amusing for stuffy
	{IBM}, and later adopted by the rest of the industry.

	Actually, neither term is etymologically pure.  If we take
	"binary" to be paradigmatic, the most etymologically correct
	term for base ten, for example, is "denary", which comes from
	"deni" (ten at a time, ten each), a Latin "distributive"
	number; the corresponding term for base sixteen would be
	something like "sendenary".  "Decimal" is from an ordinal
	number; the corresponding prefix for six would imply something
	like "sextidecimal".  The "sexa-" prefix is Latin but
	incorrect in this context, and "hexa-" is Greek.  The word
	{octal} is similarly incorrect; a correct form would be
	"octaval" (to go with decimal), or "octonary" (to go with
	binary).  If anyone ever implements a base three computer,
	computer scientists will be faced with the unprecedented
	dilemma of a choice between two *correct* forms; both
	"ternary" and "trinary" have a claim to this throne.

	[{Jargon File}]

	(1996-03-09)

hexidecimal

	<spelling> Mis-spelling of "{hexadecimal}".

	(1998-03-03)

hexit

	<jargon> /hek'sit/ A {hexadecimal} digit (0-9, and A-F or
	a-f).  Used by people who claim that there are only *ten*
	digits, sixteen-fingered human beings being rather rare,
	despite what some keyboard designs might seem to imply (see
	{space-cadet keyboard}).

	[{Jargon File}]

	(1996-03-09)

HFC

	1. <networking> {Hybrid Fiber Coax}.

	2. <hardware> {hydrofluorocarbon}.

	(1999-11-02)

HHCP

	{Host Host Copy}

HHOJ

	<chat> ha ha only joking.

	Contrast {ha ha only serious}.

	(1998-01-18)

HHOK

	ha ha only kidding.  See {ha ha only serious}.

	[{Jargon File}]

HHOS

	{ha ha only serious}

hi

	{hmake interactive}

HIBOL

	<language> A variant of {DIBOL}, used in {Infotec} computers.
	HIBOL was considered to be a very high level language and
	significantly easier to maintain than {COBOL}.  It uses a
	single type of data object, called a flow, which is an indexed
	stream of data values.  Computation is expressed as operations
	acting on flows.

	{Language List
	(http://people.ku.edu/~nkinners/LangList/Langs/H/HIBOL.htm)}.

	{Translation of COBOL to HIBOL
	(http://dl.acm.org/citation.cfm?id=889862)}.

	["HIBOL: a language for fast prototyping in data processing
	environments", Roland T. Mittermeir, Technische Universitaet
	Wien, Vienna, Austria, Proceedings of the workshop on Rapid
	Prototyping, ACM New York, NY, USA 1982, ISBN:0-89791-094-X,
	{(http://dl.acm.org/citation.cfm?id=1006282)}].

	[R. T. Mittermeir, "HIBOL - A very High Level Business
	Oriented Language, User Manual", TR DA 81/04/04, Institut fuer
	Angewandte Informatik und Systemanalyse, Technische
	Universitaet Wien, Wien, 1981].

	(2012-01-08)

HID

	{Human Interface Device}

hidden flag

	(scientific computation) An extra option added to a routine
	without changing the calling sequence.  For example, instead
	of adding an explicit input variable to instruct a routine to
	give extra diagnostic output, the programmer might just add a
	test for some otherwise meaningless feature of the existing
	inputs, such as a negative mass.  The use of hidden flags can
	make a program very hard to debug and understand, but is all
	too common wherever programs are hacked in a hurry.

	[{Jargon File}]

	(1994-11-24)

hierarchical database

	<database> A kind of {database management system} that links
	records together like a family tree such that each record type
	has only one owner, e.g. an order is owned by only one
	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.

Hierarchical Data Format

	<file format, data> (HDF) A {library} and multi-object file
	format for the transfer of graphical and numerical data
	between computeres.  The freely available HDF distribution
	consists of the library, command line utilities, test suite
	source, {Java} interface, and the Java-based HDF Viewer (JHV).

	HDF supports several different {data models}, including
	multidimensional {arrays}, {raster images}, and tables.  Each
	defines a specific aggregate data type and provides an {API}
	for reading, writing, and organising the data and {metadata}.
	New data models can be added by the HDF developers or users.

	HDF is self-describing, allowing an application to interpret
	the structure and contents of a file without any outside
	information.

	One HDF file can hold a mixture of related objects which can
	be accessed as a group or as individual objects.  Users can
	create their own grouping structures called "vgroups".

	HDF files can be shared across most common {platforms},
	including many workstations and high performance computers.
	An HDF file created on one computer can be read on a different
	system without modification.

	{(http://hdf.ncsa.uiuc.edu/)}.

	(2001-07-02)

Hierarchical Design Methodology

	<programming> (HDM) A method for specifying {software} and
	systems using hierarchies of {abstract machines}, developed by
	Larry Robinson at SRI International circa 1975-1976.  The
	specifications were written in {SPECIAL}.

	(2012-07-08)

hierarchical file system

	<file system> A {file system} in which the {files} are
	organised into a {hierarchy}.  The nodes of the hierarchy are
	called {directories} while the leaves are the files
	themselves.

	See also {root directory}.  Compare {flat file system}.

	(1996-11-21)

Hierarchical Music Specification Language

	<language, music> (HMSL) A programming language for
	experimental music composition and performance.  It is a set
	of {object-oriented} extensions to {Forth}.  (Its near-total
	unintelligibility to people unfamiliar with {Forth} has led
	some to expand "HMSL" as "Her Majesty's Secret Language".)

	Phil Burk (who also later developed {pForth}), Larry Polansky,
	and David Rosenboom started developing HMSL in 1980 while
	working at the {Mills College Center for Contemporary Music
	(http://mills.edu/LIFE/CCM/CCM.homepage.html)}.  As of
	June 1998, development is ongoing.

	{(http://softsynth.com/hmsl/)}.

	(1998-09-07)

hierarchical navigation

	<World-Wide Web> On a {web page}, any type of menu whose
	hierarchical structure matches that of the site to which the
	page belongs.  A hierarchical navigation menu allows the user
	to jump ("navigate") directly to a section of the site several
	levels below the top.  The menu may present only a fixed
	number of levels rather than the whole structure.

	(2003-10-01)

Hierarchical Object Oriented Design

	<programming> (HOOD) An architectural design method, primarily
	for {Ada}, leading to automated checking, {documentation} and
	{source code} generation.

	(2009-01-14)

hierarchical routing

	The complex problem of routing on large networks can be
	simplified by breaking a network into a hierarchy of smaller
	networks, where each level is responsible for its own routing.
	The Internet has, basically, three levels: the backbones, the
	mid-levels, and the stub networks.  The backbones know how to
	route between the mid-levels, the mid-levels know how to route
	between the sites, and each site (being an autonomous system)
	knows how to route internally.  See also Exterior Gateway
	Protocol, Interior Gateway Protocol, transit network.

hierarchy

	An organisation with few things, or one thing, at the top and
	with several things below each other thing.  An inverted tree
	structure.  Examples in computing include a directory
	hierarchy where each directory may contain files or other
	directories; a hierarchical {network} (see {hierarchical
	routing}), a {class hierarchy} in {object-oriented
	programming}.

	(1994-10-11)

Higgs Bugson

	<humour> A hypothetical {bug} predicted to exist based on a
	small number of possibly related event log entries and vague
	anecdotal user reports.  The Higgs Bugson is difficult to
	reproduce because you don't really know if it's there, and if
	it is there what is causing it.  To find one you will need a
	Large Hadron Debugger.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-08-31)

high bit

	(Or "high-order bit") The most significant {bit} in a {byte}.

	See also {meta bit}, {hobbit}, {dread high bit disease}.

	[{Jargon File}]

	(2012-08-31)

High bit-rate Digital Subscriber Line

	<communications, protocol> (HDSL) A form of {Digital
	Subscriber Line}, providing {T1} or {E1} connections over two
	or three {twisted-pair} copper lines, respectively.  Unlike
	most other forms of DSL HDSL is not a typical consumer
	service, it's used mostly to replace traditional T1/E1
	connections, such as connecting {PBXes} to {telco} offices.
	The advantage of HDSL over the {Alternate Mark Inversion} line
	coding scheme traditionally used on T1/E1 lines is that it
	requires about an order of magnitude lower bandwidth to carry
	the same traffic.

	(1998-05-18)

high colour

	<hardware> A {colour depth} of 16 (or 15) {bits per pixel}.

	Compare {true colour}.

	(1999-08-01)

High-Definition Multimedia Interface

	<video, standard> (HDMI) an industry standard for connecting
	digital audio and video devices via a single cable.  HDMI can
	connect any audio/video source, such as a {set-top box}, {DVD
	player}, or {A/V receiver} to an audio and/or video output
	device such as a digital television (DTV).

	HDMI supports standard, enhanced, or high-definition video,
	plus multi-channel digital audio.  It transmits all {ATSC}
	HDTV standards and supports 8-channel, 192kHz, uncompressed
	digital audio and all currently-available compressed formats
	(such as {Dolby Digital} and {DTS}), HDMI 1.3 adds additional
	support for new lossless digital audio formats {Dolby TrueHD}
	and {DTS-HD Master Audio} with {bandwidth} to spare to
	accommodate future enhancements.  HDMI 1.4 incorporates
	connection via {Ethernet}.

	HDMI was created by {Hitachi}, {Panasonic Corporation},
	{Philips}, {Sony}, {Thomson} (RCA), {Toshiba} and {Silicon
	Image} and has the support of several major motion picture
	producers and distributors.

	Latest version: 1.4 (2009-06-08), as of 2009-06-29.

	{hdmi.org (http://hdmi.org/)}.

	(2009-06-29)

high density

	{floppy disk}

Higher Education National Software Archive

	(HENSA)

	{(http://hensa.ac.uk/)}.

	(1995-01-06)

higher-order function

	(HOF) A function that can take one or more functions as
	argument and/or return a function as its value.  E.g. map in
	(map f l) which returns the list of results of applying
	function f to each of the elements of list l.  See also
	{curried function}.

higher-order macro

	A means of expressing certain {higher-order functions} in a
	first order language.  Proposed by Phil Wadler.  Higher-order
	macros cannot be recursive at the top level but they may
	contain recursive definitions.  E.g.

		map f l = m l
			  where
			  m []	   = []
			  m (x:xs) = f x : m xs

	Expanding a call to this macro is equivalent to specialising a
	call to map in its first argument.

	See {partial evaluation}.

High-level Data Link Control

	<networking> (HDLC) A general-purpose {data link} control
	{protocol} defined by {ISO} for use on both point-to-point and
	{multipoint} (multidrop) data links.  It supports
	{full-duplex}, {transparent-mode} operation.  It is used
	extensively in both multipoint and computer networks.

	Some manufacturers and other standards bodies still use their
	own acronyms, e.g. {IBM}'s SDLC ({Synchronous Data Link
	Control}), the forerunner of HDLC and {ANSI}'s ADCCP
	({Advanced Data Communications Control Procedure}).

	[Fred Halsall, "Data Communications, Computer Networks and
	Open Systems" 4th edition, 1996, p.237, Addison-Wesley
	Publishing Co. Reading, Mass., USA].

	(1997-11-09)

high-level language

	(HLL) A programming language which provides some level of
	abstraction above {assembly language}.  These normally use
	statements consisting of English-like keywords such as "FOR",
	"PRINT" or "GOTO", where each statement corresponds to several
	{machine language} instructions.  It is much easier to program
	in a high-level language than in {assembly language} though
	the efficiency of execution depends on how good the {compiler}
	or {interpreter} is at optimising the program.

	Rarely, the variants "{VHLL}" and "{MLL}" are found.

	See also {languages of choice}, {generation}.

	(1994-12-07)

high memory area

	<storage> (HMA) The first 64 {kilobytes} (minus 16 byte) of
	the {extended memory} on an {IBM PC}.  By a strange design
	glitch the {Intel 80x86} processors can actually address 17*64
	kbyte minus 16 byte of memory (from 0000:0000 to ffff:ffff) in
	real mode.  In the {Intel 8086} and {Intel 8088} processors,
	unable to handle more than 1 {megabyte} of memory, addressing
	wrapped around, that is, address ffff:0010 was equivalent to
	0000:0000.  For compatibility reasons, later processors still
	wrapped around by default, but this feature could be switched
	off.  Special programs called {A20 handlers} can control the
	addressing mode dynamically, thereby allowing programs to load
	themselves into the 1024--1088 kbyte region and run in {real
	mode}.  From version 5.0 parts of {MS-DOS} can be loaded into
	HMA as well freeing up to 46 kbytes of {conventional memory}.

	(1995-01-10)

high moby

	/hi:' mohb'ee/ The high half of a 512K {PDP-10}'s physical
	address space; the other half was of course the low moby.
	This usage has been generalised in a way that has outlasted
	the {PDP-10}; for example, at the 1990 Washington D.C.  Area
	Science Fiction Conclave (Disclave), when a miscommunication
	resulted in two separate wakes being held in commemoration of
	the shutdown of MIT's last {ITS} machines, the one on the
	upper floor was dubbed the "high moby" and the other the "low
	moby".  All parties involved {grok}ked this instantly.  See
	{moby}.

	[{Jargon File}]

High Performance Computing and Communications

	(HPCC) High performance computing includes scientific
	workstations, supercomputer systems, high speed networks,
	special purpose and experimental systems, the new generation
	of large scale parallel systems, and application and systems
	software with all components well integrated and linked over a
	high speed network.

	["Grand Challenges 1993: High Performance Computing and
	Communications", Committee on Physical, Mathematical and
	Engineering Sciences of the Federal Coordinating Council for
	Science, Engineering and Technology.]

High Performance File System

	<file system> (HPFS) The {native} {file system} for {IBM}'s
	{OS/2}.

	(1995-03-06)

High Performance Fortran

	<language> (HPF) A {data parallel} language extension to
	{Fortran 90} which provides a portable programming interface
	for a wide variety of target {platforms}.  The original HPF
	language specification was produced by the High Performance
	Fortran Forum, a broad consortium of industry and academia,
	which met regularly throughout 1992 and early 1993.  HPF
	{compilers} are now available on most commonly-used computing
	systems, and users are beginning to gain first hand experience
	with this language.  The Forum has continued to meet in order
	to address advanced topics.

	{HPF+ at Vienna (http://par.univie.ac.at/hpf+/)}.

	["High Performance Fortran: Status Report", G.L. Steele Jr
	<gls@think.com>, SIGPLAN Notices 28(1):1-4 (Jan 1993)].

	(1996-09-09)

High Performance Parallel Interface

	<hardware, standard> (HIPPI, previously HPPI) A
	{connection-oriented}, point-to-point networking {standard}
	using {circuit-switching} technology at a speed of 800 Mbits/s
	or 1.6 Gbits/s (simplex or full-duplex).  HIPPI is often used
	for short distances (up to 10km depending on cable type) to
	connect a {supercomputer} to {routers}, {frame buffers},
	{mass-storage} peripherals and other computers.

	HIPPI was developed at {Los Alamos National Laboratory} and is
	now {ANSI} standard X3T9/88-127.  Standards for
	interconnecting with {ATM}, {SONet}, and {fibre channel} are
	in development.

	{HIPPI Networking Forum (http://esscom.com/hnf)}.

	(1997-06-29)

High Performance Routing

	<networking> (HPR) Routing designed to work in conjunction
	with {APPN} {Intermediate Session Routing} (ISR) network
	nodes.  HPR nodes perform many of the same functions as ISR
	nodes.  For example, HPR nodes use the same method of
	calculating routes based on the {Topology} Routing Service
	database and {class of service} tables.  HPR nodes also
	supports such APPN features as connection networks and support
	for parallel {transmission groups} (TGs).  In the HPR
	architecture, both partner nodes must support HPR for {RTP}
	connections to take place between the nodes.  If one node
	supports HPR and the partner node does not, then the link will
	support ISR functionality only.

	["APPN Architecture and Product Implementations Tutorial",
	IBM, GG24-3669-92].

	(1997-05-08)

High Performance Serial Bus

	<bus, standard> (Or "{IEEE} 1394", "FireWire", "I-Link") A
	1995 {Macintosh}/{IBM PC} serial bus interface standard
	offering high-speed communications and {isochronous}
	{real-time} data services.

	1394 can transfer data between a computer and its
	{peripherals} at 100, 200, or 400 {Mbps}, with a planed
	increase to 2 {Gbps}.  Cable length is limited to 4.5 m but up
	to 16 cables can be daisy-chained yielding a total length of
	72 m.

	It can {daisy-chain} together up to 63 peripherals in a
	tree-like structure (as opposed to {SCSI}'s linear structure).
	It allows peer-to-peer device communication, such as
	communication between a {scanner} and a {printer}, to take
	place without using system memory or the {CPU}.  It is
	designed to support {plug-and-play} and {hot swapping}.  Its
	six-wire cable is not only more convenient than SCSI cables
	but can supply up to 60 watts of power, allowing
	low-consumption devices to operate without a separate power
	cord.

	Some expensive camcorders have included this bus since Autumn
	1995.  It is expected to be used to carry {SCSI}, with
	possible application to {home automation} using {repeaters}.

	See also {Universal Serial Bus}, {FC-AL}.

	(2000-09-03)

High Speed Circuit Switched Data

	<communications> (HSCSD) A planned feature of {GSM Phase 2}
	defining a standard for {circuit switched} data transmission
	over a {GSM} link at up to 57.6 (78.8?) {kbps}.  This is
	achieved by concatenating up to four consecutive GSM
	{timeslots}, each of which is capable of 14.4 kbit/s.  It uses
	{multiplexing} and {compression} or filtering.

	The following services toward the fixed network are
	supported: {V.34} up to 28.8 kbps and {V.110} with rate
	adaptation up to 38.4 kbps.

	HSCSD is aimed at {mobile workstation} users.  As it is
	circuit switched, it is suited to {streaming} applications
	such as {video conferencing} and {multimedia}.  {Bursty}
	applications like {electronic mail}, are more suited to
	{packet switched} data (as in {GPRS}).

	{Ericsson
	(http://ericsson.com/wireless/products/mobsys/gsm/subpages/wise/subpages/hscsd.shtml)}.

	{(http://gsmworld.com/)}.

	(1999-12-04)

High Speed Connect

	<hardware> (HSC) A {Hewlett-Packard} bus like {EISA}.

	[HP9000 Configuration Guide, January 1996].

	[Details?]

	(1996-06-06)

High-speed Net Connect

	<hardware, communications> (HNC) A network interface unit for
	{BS2000} {mainframes} based on {Novell NetWare}, supporting
	{Ethernet} and {FDDI}.

	(2005-02-11)

high speed serial interface

	<hardware, communications> (HSSI) A {serial port} which
	supports serial transmit speeds of up to 52 megabits per
	second.  It is typically used for leased lines such as {DS3}
	(44.736 Mbps) and {E3} (34 Mbps) and for {Wide Area Network}
	devices such as {routers}.

	(1995-11-20)

High Voltage Differential

	<hardware> (HVD) {Differential SCSI} scheme that has been in
	use for years.  The {terminators} run on 5 Volts DC.

	See also {LVD}.

	(1999-02-16)

HIGZ

	High Level Interface to Graphics and Zebra.  Part of the {PAW}
	system.

hill climbing

	<algorithm> A {graph} search {algorithm} where the current
	path is extended with a successor node which is closer to the
	solution than the end of the current path.

	In simple hill climbing, the first closer node is chosen
	whereas in steepest ascent hill climbing all successors are
	compared and the closest to the solution is chosen.  Both
	forms fail if there is no closer node.  This may happen if
	there are local maxima in the {search space} which are not
	solutions.  Steepest ascent hill climbing is similar to {best
	first search} but the latter tries all possible extensions of
	the current path in order whereas steepest ascent only tries
	one.

	(1995-12-09)

HiLog

	A {higher-order logic} programming language.  An extension of
	normal {logic programming} where {predicate} symbols may be
	variable or structured.  This allows {unification} to be
	performed on the predicate symbols themselves in addition to
	their arguments.

	{(ftp://sbcs.sunysb.edu/SB-hilog)}.

	["HiLog as a Platform for Database Languages (Or Why Predicate
	Calculus is Not Enough)", W. Chen et al, Stony Brook, 2nd Intl
	Workshop on Database Prog Langs, Morgan Kaufmann, 1989].

	(1994-12-07)

HIMEM

	<software, storage> An {IBM PC} {extended memory manager},
	part of {MS-DOS} version 5.00 or higher.  HIMEM can also act
	as an {A20 handler}.

	(1996-01-10)

Hindenbug

	<humour> A catastrophic, data-destroying {bug}, after the 1937
	Hindenburg airship disaster.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-10-20)

hing

	({IRC}) Fortuitous typo for "hint", now in wide intentional
	use among players of {initgame}.

	Compare {newsfroup}, {filk}.

	[{Jargon File}]

	(1994-12-07)

HINT

	Hierarchical Information NeTs.

	A language for the {CDC 3600}.

	["HINT: A Graph Processing Language", R.D. Hart, Michigan
	State U, Apr 1970].

	(1994-12-07)

HiPAC

	An active DBMS from Xerox Advanced Information Technology.

HIPPI

	{High Performance Parallel Interface}

hiragana

	<Japanese> The cursive formed Japanese {kana} syllabary.
	Hiragana is mostly used for grammatical particles,
	verb-inflection, and Japanese words which are not written in
	{kanji} or which are too difficult for an educated person to
	read or write in {kanji}.  Hiragana are also used for
	{furigana}.

	(2001-03-18)

hirsute

	Occasionally used as a humorous synonym for {hairy}.

	[{Jargon File}]

HISTORIAN

	A {source code management} system sold by {OPCODE, Inc.}

history

	1. <history> {Virginia Tech history of computing
	(http://ei.cs.vt.edu/~history/index.html)}.  {IT Rentals computing
	timeline (http://www.itrentals.com/historyofcomputing/)}.

	2. <operating system> A record of previous user inputs (e.g. to a
	{command interpreter}) which can be re-entered without re-typing
	them.  The major improvement of the {C shell} (csh) over the
	{Bourne shell} (sh) was the addition of a command history.  This
	was still inferior to the history mechanism on {VMS} which allowed
	you to recall previous commands as the current input line.  You
	could then edit the command using cursor motion, insert and
	delete.  These sort of history editing facilities are available
	under {tcsh} and {GNU Emacs}.

	3. The history of the world was once discussed in {Usenet}
	newsgroups {news:soc.history} and {news:alt.history}.

	(2013-08-04)

hit

	1. <architecture> {cache hit}.

	2. <World-Wide Web> A request to a {web server} from a {web
	browser} or other {client} (e.g. a {robot}).

	The number of hits on a server may be important for
	determining advertising revenue.

	In the course of loading a single {web page}, a browser may
	hit a web server many times e.g. to retrieve the page itself
	and each {image} on the page.  In contrast, caching by
	browsers and {web proxies} reduces the number of hits on the
	server because some requests are satisfied from the cache.

	3. <jargon> To press and release a key on the keyboard.  Some
	prefer the less aggressive "tap".

	(2000-02-20)

Hitachi 6309

	<processor> (HD6309) {Hitachi}'s version of the {Motorola
	6809} {microprocessor}.  Compatible with the 6809, it added
	two new eight-bit {registers} that could be added to form a
	second 16-bit register, and all four eight-bit registers could
	form a 32-bit register.  It also featured division, and some
	32-bit arithmetic and was generally 30% faster in native mode.
	This information, surprisingly, was never published by
	Hitachi.

	{Technical reference
	(http://sandelman.ottawa.on.ca/People/Alan_DeKok/interests/6309.techref)}.

	(1997-03-21)

Hitachi HD64180

	<processor> A processor family which adds peripherals and an
	{MMU} to the {Zilog Z80}.

	(1995-10-06)

HITL

	{Human Interface Technology Laboratory}

hit rate

	<architecture> The fraction of all memory reads which are
	satisfied from the {cache}.

	(1997-01-21)

hk

	<networking> The {country code} for Hong Kong.

	(1999-01-27)

HL7

	<protocol> An information exchange {protocol} used in
	medicine, and possibly elsewhere.  It is different from
	{DICOM}.

	[Details?]

	(1998-12-23)

HLISP

	"Monocopy and Associative Algorithms in an Extended Lisp",
	E. Goto, U Tokyo May 1974.

HLL

	{high-level language}

HLLAPI

	{High Level Language Application Programming Interface}

hlp

	<filename extension> A {Microsoft Windows} {filename
	extension} for {hypertext} {WinHelp} files.  These are in a
	{proprietary} format, and are compiled from {source files}
	written in a dialect of {RTF}.

	See also {gid}.

	{Usenet} newsgroup:
	{news:comp.os.ms-windows.programmer.winhelp}.

	(1997-01-30)

hm

	<networking> The {country code} for the Heard and McDonald
	Islands.

	(1999-01-27)

HMA

	{High Memory Area}

HMAC

	{Keyed-Hashing Message Authentication}

hmake

	<programming> A {compilation manager} for {Haskell}.  hmake
	recompiles a given module or program by extracting
	dependencies between {source} modules and issuing appropriate
	compiler commands to rebuild only changed modules.  hmake can
	use whatever Haskell compilers and preprocessors you have
	installed.

	If an .hi interface file is unchanged then changes in the
	corresponding implementation code will not trigger
	recompilation of calling code.

	{hmake interactive} is an interactive development environment
	built on hmake.

	Malcolm Wallace of the {York Functional Programming Group}
	developed hmake in 2005 based on Thomas Hallgren's hbcmake and
	nhc13make.

	{hmake home (http://www.cs.york.ac.uk/fp/hmake/hmake.html)}.

	(2009-11-24)

HMP

	{hybrid multiprocessing}

HMSL

	{Hierarchical Music Specification Language}

HMTL

	<spelling> Do you mean {HTML}?

	(1998-06-30)

hn

	<networking> The {country code} for Honduras.

	(1999-01-27)

HNC

	{High-speed Net Connect}

HO

	{handover}

Hoare powerdomain

	{powerdomain}

Hobbit

	A {Scheme} to {C} compiler by Tanel Tammet
	<tammet@cs.chalmers.se>.  Hobbit attempts to retain most of
	the original Scheme program structure, making the output C
	program readable and modifiable.  Hobbit is written in Scheme
	and is able to self-compile.  Hobbit release 1 works together
	with the {scm} release scm4b3.  Future releases of scm and
	hobbit will be coordinated.

	Latest version: release 2.

	{(ftp://altdorf.ai.mit.edu/archive/scm/hobbit2.tar.Z)}.

	(1993-04-25)

	2. The non-{ITS} name of <vad@ai.mit.edu> (*Hobbit*), master of
	lasers.

hobbit

	High order bit.  The most significant bit (of a byte).  Also
	known as the {meta bit} or {high bit}.

	[{Jargon File}]

hog

	1. Favoured term to describe programs or hardware that seem to
	eat far more than their share of a system's resources,
	especially those which noticeably degrade interactive
	response.  *Not* used of programs that are simply extremely
	large or complex or that are merely painfully slow themselves
	(see {pig, run like a}).  More often than not encountered in
	qualified forms, e.g. "memory hog", "core hog", "hog the
	processor", "hog the disk".  "A controller that never gives up
	the I/O bus gets killed after the bus-hog timer expires."

	2. Also said of *people* who use more than their fair share of
	resources (particularly disk, where it seems that 10% of the
	people use 90% of the disk, no matter how big the disk is or
	how many people use it).  Of course, once disk hogs fill up
	one file system, they typically find some other new one to
	infect, claiming to the sysadmin that they have an important
	new project to complete.

HOL

	Higher Order Logic.  A proof-generating system for {higher
	order logic} based on {LCF}.  Implementations include {HOL-88}
	and {HOL-90}.

	{(ftp://ted.cs.uidaho.edu/pub/hol)}.  Mailing list:
	info-hol@ted.cs.uidaho.edu.

	["HOL: A Machine Oriented Formulation of Higher Order Logic",
	M.J.C. Gordon, Report 68, Comp Lab U Cambridge (1985)].

	["Introduction to HOL", M.J.C. Gordon et al, Cambridge U Press
	1993 ISBN 0-521-441897].

HOL-88

	An implementation of {HOL} built on {ML} by Mike Gordon
	<mjcg@cl.cam.ac.uk>.

HOL-90

	An implementation of {HOL} built on {SML/NJ} by Brian Graham
	<graham@cpsc.ucalgary.ca>.  Runs on {Sun-4}.

	{(ftp://fsa.cpsc.ucalgary.ca/pub/hol90.tar.Z)}.  Mailing list:
	info-hol@clover.ucdavis.edu.

hole

	<electronics> The absence of an {electron} in a
	{semiconductor} material.  In the {electron model}, a hole can
	be thought of as an incomplete outer electron shell in a
	doping substance.  Holes can also be thought of as positive
	charge carriers; while this is in a sense a fiction, it is a
	useful abstraction.

	(1995-10-06)

hole model

	<electronics> A {model} of semiconductor behaviour in which
	{donors} contribute a positive charge equal in magnitude to
	the charge of an {electron}, and {acceptors} contribute space
	for such a charge within the crystal lattice.  Honored by
	history well before electrons were discovered and described,
	much of {electronics}, especially at the engineering level,
	continues to consider {current} as flowing from positive to
	negative.

	(1995-10-05)

Hollerithabetical order

	<algorithm> Sorted into the order a standard {Hollerith} {card
	sorting machine} produces, with special characters interleaved
	within the alphabet.

	(1997-02-11)

Hollerith, Herman

	{Herman Hollerith}

Hollywired

	{Siliwood}

HOL-UNITY

	A verification tool for {UNITY}?  Version 2.1.

	E-mail: Flemming Andersen <fa@tfl.dk>?

holy wars

	[{Usenet}, but may predate it] {flame wars} over {religious
	issues}.  The paper by Danny Cohen that popularised the terms
	{big-endian} and {little-endian} was entitled "On Holy Wars
	and a Plea for Peace".  Other perennial Holy Wars have
	included {Emacs} vs. {vi}, my personal computer vs. everyone
	else's personal computer, {ITS} vs. {Unix}, {Unix} vs. {VMS},
	{BSD} Unix vs. {USG Unix}, {C} vs. {Pascal}, {C} vs. Fortran,
	etc., ad nauseam.  The characteristic that distinguishes holy
	wars from normal technical disputes is that in a holy wars
	most of the participants spend their time trying to pass off
	personal value choices and cultural attachments as objective
	technical evaluations.  See also {theology}.

	[{Jargon File}]

home

	1. <file system> {home directory}.

	2. <World-Wide Web> {home page}.

	3. <hardware> {home keys}.

home box

	<jargon, computer> A {hacker}'s personal machine, especially
	one he or she owns.  "Yeah?  Well, *my* home box runs a full
	{4.2BSD}, so there!"

	(2006-12-01)

home keys

	<hardware> The eight keys on a typewriter or computer keyboard
	on which a touch-typist positions their eight finger tips when
	starting to type or when resting between words or phrases.
	Typists learn the position of all keys on the keyboard in
	relation to the home keys.

	On a standard english keyboard layout, the home keys are ASDF
	for the left hand and JKL; for the right.  Most keyboards have
	small raised bumps on the left and right index finger keys (F
	and J) so you can find the home keys by touch without looking.

	(2006-12-01)

home machine

	1. Synonym {home box}.

	2. The machine that receives your e-mail.  These senses might
	be distinct, for example, for a hacker who owns one computer
	at home, but reads e-mail at work.

	[{Jargon File}]

	(2006-12-01)

home page

	<World-Wide Web> 1. The top-level entry point {web page}
	relating to an individual or institution, or possibly a
	subject area.  This often has a {URL} consisting of just a
	{hostname}, e.g. http://ncsa.uiuc.edu/.  All other pages
	on a {website} are usually accessible by following {links}
	from the home page.

	2. The {web page} a user's {web browser} is configured to load
	each time it is started.  This will typically default to the
	{home page} (sense 1) of the organisation that produced or
	distributed the browser.

	(1999-03-21)

Home Phoneline Networking Alliance

	<communications, networking, protocol, standard> (HomePNA) A
	non-profit association of more than 100 technology companies
	working together to ensure adoption of a phone line
	{networking} standard which should provide high-speed,
	affordable home networking.

	The Home Phoneline Networking Alliance (HomePNA) was founded
	in June 1998 by {3Com}, {AMD}, {AT&T Wireless Services},
	{Compaq}, Conexant, Epigram, {Hewlett-Packard}, {IBM},
	{Intel}, {Lucent Technologies}, Rockwell Semiconductor
	Systems, and Tut Systems.  The membership now spans the
	networking, telecommunications, {hardware}, {software}, and
	consumer electronics industries.

	The alliance was originally formed because of the increasing
	demand for home networking caused by the growing number of
	homes with multiple PCs (and other devices) to connect
	together to provide facilities such as shared {Internet}
	access, {networked gaming}, and sharing of {peripherals},
	{files} and {applications}.

	The member companies aimed to develop {open standards} to
	ensure compatibility between different manufacturers'
	products.  They also decided that this should be done using
	the phone wiring that already existed in people's homes.  The
	concept of "no new wires" networking meant installation was
	simpler.

	HomePNA's original specifications could be used to create a 1
	{Mbps} (megabits per second) {Ethernet}-compatible {LAN} with
	no {hubs}, {routers}, {splitters} or {terminations}.  Adapters
	would allow any computer (or other device) with an Ethernet
	port to be linked to the home network.  Up to 25 PCs,
	peripherals and network devices can be connected to such a
	network.

	On 1999-12-01, the HomePNA announced a new release of its
	networking technology specification, called Home PNA 2.0.
	Like the first specification, it uses existing phone lines,
	but it can operate at speeds up to 10 Mbps.  The new version
	is {backwardly compatible} with the original 1 Mbps HomePNA
	technology, and is designed to provide faster networks
	suitable for future voice, video and data applications.

	{HomePNA.org (http://homepna.org/)}.  {HomePNA.Com
	(http://HomePNA.com/)}.

	(2000-03-24)

HomePNA

	{Home Phoneline Networking Alliance}

home row keys

	{home keys}

homogeneous

	(Or "homogenous") Of uniform nature, similar in kind.

	1. In the context of {distributed systems}, {middleware} makes
	{heterogeneous} systems appear as a homogeneous entity.  For
	example see: {interoperable network}.

	Constrast {heterogeneous}.

	2. <mathematics> (Of a {polynomial}) containing terms of the
	same degree with respect to all the variables, as in x^2 + 2xy
	+ y^2.

	3. <mathematics> (Of a {function}) containing a set of
	variables such that when each is multiplied by a constant,
	this constant can be eliminated without altering the value of
	the function, as in cos x/y + x/y.

	4. <mathematics> (of an equation) containing a homogeneous
	function made equal to 0.

	(1999-05-06)

homogenous

	{homogeneous}

homomorphism

	<mathematics> A {map} f between groups A and B is a
	homomorphism of A into B if

	 f(a1 * a2) = f(a1) * f(a2)  for all a1, a2 in A.

	where the *s are the respective group operations.

	(2009-01-14)

Honeywell

	<company> A US company known for its {mainframes} and
	{operating systems}.

	The company's history is long and tortuous, with many mergers,
	acquisitions and name changes.  A company formed on 1886-04-23
	to make furnace regulators eventually merged in 1927 with
	another company formed in 1904 by a young plumbing and heating
	engineer named Mark Honeywell who was perfecting the heat
	generator.

	A 1955 joint venture with {Raytheon Corp.}, called {Datamatic
	Corporation}, marked Honeywell's entry into the computer
	business.  Their first computer was the {D-1000}.  In 1960
	Honeywell bought out Raytheon's interest and the name changed
	to {Electronic Data Processing} (EDP) then in 1963 it was
	officially renamed Honeywell Inc.

	In 1970 Honeywell merged its computer business with {General
	Electric}'s to form Honeywell Information Systems.  In 1986 a
	joint venture with the french company {Bull} and japanese {NEC
	Corporation} created Honeywell Bull.  By 1991 Honeywell had
	withdrawn from the computer business, focussing more on
	aeropspace.

	{CII Honeywell} was an important department.  Honeywell
	operating systems included {GCOS} and {Multics}.

	See also: {brain-damaged}.

	{History
	(http://www51.honeywell.com/honeywell/about-us/our-history.html)}.

	(2009-01-14)

Honeywell-800 Business Compiler

	{Fully Automated Compiling Technique}

HOOD

	{Hierarchical Object Oriented Design}

HOOK

	? Object Oriented Kernel.  Delphia.  An object-oriented
	extension of Delphia Prolog.

	[{Jargon File}]

hook

	<programming> A {software} or {hardware} feature included in
	order to simplify later additions or changes by a user.

	For example, a simple program that prints numbers might always
	print them in base 10, but a more flexible version would let a
	variable determine what base to use; setting the variable to 5
	would make the program print numbers in base 5.  The variable
	is a simple hook.  An even more flexible program might examine
	the variable and treat a value of 16 or less as the base to
	use, but treat any other number as the address of a
	user-supplied routine for printing a number.  This is a
	{hairy} but powerful hook; one can then write a routine to
	print numbers as Roman numerals, say, or as Hebrew characters,
	and plug it into the program through the hook.

	Often the difference between a good program and a superb one
	is that the latter has useful hooks in judiciously chosen
	places.  Both may do the original job about equally well, but
	the one with the hooks is much more flexible for future
	expansion of capabilities.

	{Emacs}, for example, is *all* hooks.

	The term "user exit" is synonymous but much more formal and
	less hackish.

	(1997-06-25)

hop

	1. <messaging> One point-to-point transmission in a series
	required to get a message from point A to point B on a {store
	and forward} network.  On such networks (including {UUCPNET}
	and {FidoNet}), an important inter-machine metric is the hop
	count of the shortest path between them.  This can be more
	significant than their geographical separation.

	Each {exclamation mark} in a {bang path} represents one hop.

	2. <networking> One direct host-to-host connection forming
	part of the route between two hosts in a {routed} {network}
	such as the {Internet}.  Some {protocols} place an upper limit
	on the hop count in order to detect routing loops.

	3. <jargon, networking> To {log in} to a {remote} computer,
	especially via {rlogin} or {telnet}.  "I'll hop over to foovax
	to FTP that."

	[{Jargon File}]

	(1997-06-25)

Hope

	<language> A {functional programming} language designed by
	R.M. Burstall, D.B. MacQueen and D.T. Sanella at {University
	of Edinburgh} in 1978.  It is a large language supporting
	user-defined {prefix}, {infix} or {distfix} operators.  Hope
	has {polymorphic} typing and allows {overloading} of operators
	which requires explicit type declarations.  Hope has {lazy
	lists} and was the first language to use {call-by-pattern}.

	It has been ported to {Unix}, {Macintosh}, and {IBM PC}.

	See also {Hope+}, {Hope+C}, {Massey Hope}, {Concurrent Massey
	Hope}.

	{(ftp://brolga.cc.uq.oz.au/pub/hope)}.

	[R.M.Burstall, D.B.MacQueen, D.T.Sanella, "HOPE: An
	experimental applicative language", Proc. 1980 Lisp conf.,
	Stanford, CA, p.136-143, Aug 1980].

	["A HOPE Tutorial", R. Bailey, BYTE Aug 1985, pp.235-258].

	["Functional Programming with Hope", R. Bailey, Ellis Horwood
	1990].

	(1992-11-27)

Hope+

	<language, functional programming> An extension of {Hope}
	implemented in the Alvey {Flagship} project at {Imperial
	College}.  Hope+ has vectors, real numbers, best fit {pattern
	matching}, lazy data constructors, absolute {set abstractions}
	and {constraints}.  It has a {continuation}-based I/O system
	with {referential transparency} and is capable of handling all
	common I/O tasks such as terminal and file I/O, {signal}
	handling and interprocess communications.  It has {modules}
	and {separate compilation}.

	See also {Hope+C}, {Massey Hope}, {Concurrent Massey Hope}.

	["Hope+", N. Perry, Imperial College, IC/FPR/LANG/2.5.1/7,
	1988.]

	(1999-08-24)

Hope+C

	<language> A further evolution of {Hope+} with
	{continuation-based I/O}, {coroutines}, and {RFCs}.  Hope+C
	was developed as part of the {Flagship} project at {Imperial
	College}.  It has been implemented for {Sun-3s} with
	{Motorola} {FPUs}.

	See also {Massey Hope}, {Concurrent Massey Hope}.

	E-mail: John Darlington <jd@doc.ic.ac.uk>.

	[What kind of RFCs?]

	(1999-06-23)

Hopfield model

	{Hopfield network}

Hopfield network

	<artificial intelligence> (Or "Hopfield model") A kind of
	{neural network} investigated by John Hopfield in the early
	1980s.  The Hopfield network has no special input or output
	neurons (see {McCulloch-Pitts}), but all are both input and
	output, and all are connected to all others in both directions
	(with equal weights in the two directions).  Input is applied
	simultaneously to all neurons which then output to each other
	and the process continues until a stable state is reached,
	which represents the network output.

	(1997-10-11)

horizontal application

	An {application program} common to different business
	processes, e.g. {office automation}.

	Compare {vertical application}.

	(1994-12-12)

horizontal encoding

	<processor> An {instruction set} where each field (a bit or
	group of bits) in an instruction word controls some
	{functional unit} or {gate} directly, as opposed to {vertical
	encoding} where instruction fields are decoded (by
	{hard-wired} {logic} or {microcode}) to produce the control
	signals.  Horizontal encoding allows all possible combinations
	of control signals (and therefore operations) to be expressed
	as instructions whereas vertical encoding uses a shorter
	instruction word but can only encode those combinations of
	operations built into the decoding logic.

	An {instruction set} may use a mixture of horizontal and
	vertical encoding within each instruction.  Because an
	architecture using horizontal encoding typically requires more
	instruction word bits it is sometimes known as a {very long
	instruction word} (VLIW) architecture.

	(1995-04-23)

horizontal loop combination

	{tupling}

horizontal microcode

	<processor> {Microcode} using {horizontal encoding}.

	(1995-04-23)

horizontal scan rate

	<hardware> (HSR) The measure of how many {scan lines} of
	{pixels} a {monitor} can display in one second, expressed in
	kHz (generally somewhere between 20 and 100 kHz).

	The HSR is controlled by the horizontal sync signal generated
	by the {video controller}, but is limited by the speed with
	which the monitor can scan the electron beam horizontally
	across the screen and then return it to the beginning of the
	next line.

	(1996-02-09)

horizontal tabulation

	<character> (tab, Control-I, HT, {ASCII 9}) A character which
	when displayed or printed causes the following character to be
	placed at the next "tabstop" - the column whose number is a
	multiple of the current tab width.  Commonly (especially in
	Unix(?)) the tab width is eight, so, counting from the left
	margin (column zero), the tab stops are at columns 8, 16, 24,
	up to the width of the screen or page.

	A tab width of four or two is often preferred when indenting
	program {source code} to conserve indentation.

	Represented as "\t" in {C}, {Unix}, and derivatives.

	(1999-07-05)

Horn clause

	<logic> A set of {atomic literals} with at most one {positive
	literal}.  Usually written

		L <- L1, ..., Ln
	or
		<- L1, ..., Ln

	where n>=0, "<-" means "is implied by" and comma stands for
	{conjuction} ("AND").  If L is false the clause is regarded as
	a {goal}.  Horn clauses can express a subset of statements of
	{first order logic}.

	The name "Horn Clause" comes from the logician Alfred Horn,
	who first pointed out the significance of such clauses in
	1951, in the article "On sentences which are true of direct
	unions of algebras", Journal of Symbolic Logic, 16, 14-21.

	A {definite clause} is a Horn clause that has exactly one
	positive literal.

	(2000-01-24)

hose

	1. To make non-functional or greatly degraded in performance.
	"That big ray-tracing program really hoses the system."  See
	{hosed}.

	2. A narrow channel through which data flows under pressure.
	Generally denotes data paths that represent performance
	bottlenecks.

	3. Cabling, especially {thick Ethernet cable}.  This is
	sometimes called "bit hose" or "hosery" (a play on "hosiery")
	or "etherhose".  See also {washing machine}.

	[{Jargon File}]

hosed

	<jargon> A somewhat humorous variant of "{down}", used
	primarily by {Unix} {hackers}.  "Hosed" implies a condition
	thought to be relatively easy to reverse.  It is also widely
	used of people in the mainstream sense of "in an extremely
	unfortunate situation".  The term was popularised by fighter
	pilots refering to being hosed by machine gun fire (date?).
	Usage in hackerdom dates back to {CMU} in the 1970s or
	earlier.

	{"Acronyms and Abbreviations" from UCC, Ireland
	(http://ucc.ie/cgi-bin/acronym)} expands it as "Hardware
	Or Software Error Detected", though this is probably a
	back-formation.

	The {Jargon File} version 4.1.4 1999-06-17 says that it was
	probably derived from the Canadian slang "hoser" (meaning "a
	man, esp. one who works at a job that uses physical rather
	than mental skills and whose habits are slightly offensive but
	amusing").

	One correspondant speculates about an allusion to a hose-like
	body part.

	Once upon a time, a {Cray} that had been experiencing periodic
	difficulties crashed, and it was announced to have been hosed.
	It was discovered that the crash was due to the disconnection
	of some coolant hoses.  The problem was corrected, and users
	were then assured that everything was OK because the system
	had been rehosed.  See also {dehose}.

	See also: {hose}.

	(1999-10-28)

HOS-STPL

	Hospital Operating System - STructured Programming Language.
	A {Fortran}-like language with structured extensions.

	["HOS-STPL User Manual", Health Services Research, US Public
	Health Service (Jan 1975)].

host

	1. <networking> A computer connected to a {network}.

	The term {node} includes devices such as routers and printers
	which would not normally be called "hosts".

	2. <communications> A computer to which one connects using a
	{terminal emulator}.

	(1995-02-16)

host adaptor

	{SCSI adaptor}

Host Command Facility

	<operating system> (HCF) Used to access {IBM S/36} and
	{AS/400} computers from a {mainframe}.

	[What is it?]

	(1999-01-24)

Host Control Interface

	<hardware, wireless communications> (HCI) A {network layer} in
	the {Bluetooth} {Core Protocol Stack}, lying between the
	{software} and the {hardware} stacks and serving as the
	{interface} through which the {software} controls two of
	{Bluetooth}'s four core {protocols}.

	(2002-06-28)

host-host layer

	{transport layer}

hosting

	{web hosting}

hostname

	1. (Or "sitename").  The unique name by which a computer is
	known on a {network}, used to identify it in {electronic
	mail}, {Usenet} {news}, or other forms of electronic
	information interchange.

	On the {Internet} the hostname is an {ASCII} string,
	e.g. "foldoc.doc.ic.ac.uk" which, consists of a local part
	(foldoc) and a {domain} name (doc.ic.ac.uk).  The hostname is
	translated into an {Internet address} either via the {hosts
	file}, {NIS} or by the {Domain Name System} (DNS) or
	{resolver}.  It is possible for one computer to have several
	hostnames (aliases) though one is designated as its
	{canonical} name.

	It is often possible to guess a hostname for a particular
	institution.  This is useful if you want to know if they
	operate network services like {anonymous FTP}, {World-Wide
	Web} or {finger}.  First try the institution's name or obvious
	abbreviations thereof, with the appropriate {domain} appended,
	e.g. "mit.edu".  If this fails, prepend "ftp." or "www." as
	appropriate, e.g. "www.data-io.com".  You can use the {ping}
	command as a quick way to test whether a hostname is valid.

	The folklore interest of hostnames stems from the creativity
	and humour they often display.  Interpreting a sitename is not
	unlike interpreting a vanity licence plate; one has to
	mentally unpack it, allowing for mono-case and length
	restrictions and the lack of whitespace.  Hacker tradition
	deprecates dull, institutional-sounding names in favour of
	punchy, humorous, and clever coinages (except that it is
	considered appropriate for the official public gateway machine
	of an organisation to bear the organisation's name or
	acronym).  Mythological references, cartoon characters, animal
	names, and allusions to SF or fantasy literature are probably
	the most popular sources for sitenames (in roughly descending
	order).  The obligatory comment is Harris's Lament: "All the
	good ones are taken!"

	See also {network address}.

	2. {Berkeley} {Unix} command to set and get the application
	level name used by the host.

	{Unix manual page}: hostname(1).

	(1995-02-16)

host number

	<networking> The host part of an {Internet address}.  The rest
	is the {network number}.

	(1994-10-27)

hosts file

	<networking> A {text file} on a networked computer used to
	associate {host names} with {IP addresses}.  A hosts file
	contains lines consisting of {whitespace}-separated fields
	giving an IP address followed by list of host names or
	{aliases} associated with that address.  The {name resolution}
	library software can use this file to look up the IP address
	for a host name.  The hosts file is "/etc/hosts" on {Unix} and
	"C:\Windows\System32\drivers\etc\hosts" or "lmhosts" on
	{Microsoft Windows},

	In most cases, hosts files have now been almost entirely
	replaced by {DNS}, in which distributed servers provide the
	same information.  A hosts file can still be used to override
	DNS for testing purposes or other special situations.

	(2007-05-09)

Hot Fix

	<storage> {Novell, Inc.}'s term for the feature of their
	network {file server} {operating system}, {Novell NetWare},
	which handles errors in disk write operations.  The OS
	re-reads every block it writes to disk while it holds the data
	to be written in memory.  In the case of an error, the data
	block is written to a spare area on the disk.

	The feature lost much of its importance with the widespread
	use of hard disk drives with built-in {error correction} and
	{bad block} re-mapping.

	(1997-05-27)

HotJava

	<World-Wide Web> A modular, extensible {World-Wide Web}
	{browser} from {Sun Microsystems} that can execute programs
	written in the {Java} programming language.  These programs,
	known as "{applets}", can be included (like images) in {HTML}
	pages.  Because Java programs are compiled into machine
	independent {bytecodes}, applets can run on any {platform} on
	which HotJava runs - currently (December 1995)
	{SPARC}/{Solaris} 2 and {Intel 80x86}/{Windows 95}, {Windows
	NT}.

	{(http://java.sun.com/hotjava.html)}.

	(1995-12-10)

Hotline

	1. <company> {Hotline Communications Ltd.}.

	2. <messaging> {Hotline Connect}.

	(1999-12-07)

Hotline Communications Ltd.

	<company> The company that developes and distributes {Hotline
	Connect}.

	{(http://BigRedH.com/index2.html)}.

	(1999-12-07)

Hotline Connect

	<messaging> A suite of communication products developed by
	{Hotline Communications Ltd.}  Hotline Connect is a
	{real-time}, {multi-platform Internet}/{Intranet}
	communication suite, that operates independent of the
	{World-Wide Web}.  It provides easy-to-use private and public
	{virtual community} building and live interaction with
	real-time {chat}, conferencing, {messaging}, {data
	warehousing}, {file transfer}, and viewing.

	Version: 1.7.2, as of 1999-12-07.

	(1999-12-07)

hotlink

	A mechanism for sharing data between two {application
	programs} where changes to the data made by one application
	appear instantly in the other's copy.

	Under {System 7} on the {Macintosh} the users establishes a
	hotlink by doing a "Create Publisher" on the server and
	"Subscribe" on the client.

	Under {Windows 3} it's "Cut Special"(?) and "Paste Special"
	(as opposed to the normal Cut and Paste).

	(1995-02-16)

hotlist

	<World-Wide Web> (From {hypertext} "{hot spot}") A {document}
	on the {World-Wide Web} or a user's {browser} configuration
	file containing {hypertext} {links}, often unorganised and
	undocumented, to notable pages on the Web.

	Compare the 19th century notion of a {commonplace book
	(http://c.gp.cs.cmu.edu:5103/prog/webster?commonplace+book)}.

	(1995-04-16)

Hotmail

	<messaging> A {web mail} service bought by {Microsoft}.

	{(http://hotmail.com/)}.

	(2006-10-30)

hot spot

	1. (primarily used by {C}/{Unix} programmers, but spreading)
	It is received wisdom that in most programs, less than 10% of
	the code eats 90% of the execution time; if one were to graph
	instruction visits versus code addresses, one would typically
	see a few huge spikes amidst a lot of low-level noise.  Such
	spikes are called "hot spots" and are good candidates for
	heavy optimisation or {hand-hacking}.  The term is especially
	used of tight loops and recursions in the code's central
	algorithm, as opposed to (say) initial set-up costs or large
	but infrequent I/O operations.

	See {tune}, {bum}, {hand-hacking}.

	2. The active location of a cursor on a bit-map display.  "Put
	the mouse's hot spot on the "ON" widget and click the left
	button."

	3. A screen region that is sensitive to mouse clicks, which
	trigger some action.  {Hypertext} help screens are an example,
	in which a hot spot exists in the vicinity of any word for
	which additional material is available.

	4. In a {massively parallel} computer with {shared memory},
	the one location that all 10,000 processors are trying to read
	or write at once (perhaps because they are all doing a
	{busy-wait} on the same lock).

	5. More generally, any place in a hardware design that turns
	into a performance {bottleneck} due to resource contention.

	6. {wireless hotspot}.

	[{Jargon File}]

	(1995-02-16)

Hot Standby Routing Protocol

	<protocol> (HSRP) A {CISCO} standard, defined in {RFC 2281},
	that calls for a {mirrored router} in {passive mode} to send
	{hello packets}, wait for a {lead router} to die and, without
	dropping a {packet}, take over from that router.

	Note: "standby", not "swappable" (and certainly not
	"swapable").

	(2005-01-26)

Hot Swapable Routing Protocol

	<spelling> Incorrect spelling of incorrect expansion of HSRP -
	{Hot Standby Routing Protocol}.

	(2005-01-26)

Hot Swappable Routing Protocol

	<spelling> Incorrect expansion of HSRP - {Hot Standby Routing
	Protocol}.

	(2005-01-26)

hot swapping

	<hardware> The connection and disconnection of {peripherals}
	or other components without interrupting system operation.
	This facility may have design implications for both hardware
	and software.

	[More detail?]

	(1997-03-15)

HOTT

	(Hot Off The Tree) An {Internet}-based electronic magazine
	edited by David Scott Lewis <d.s.lewis@ieee.org> and
	distributed by {electronic mail}.

	(1994-12-23)

house wizard

	(Probably from ad-agency tradetalk, "house freak") A hacker
	occupying a technical-specialist, R&D, or systems position at
	a commercial shop.  A really effective house wizard can have
	influence out of all proportion to his/her ostensible rank and
	still not have to wear a suit.  Used especially of {Unix}
	{wizards}.  The term "house guru" is equivalent.

	[{Jargon File}]

	(1995-02-16)

Houston Automatic Spooling Program

	<operating system> (HASP) A program developed by {IBM} for
	{NASA} in the 1960s to {SPOOL} output on {OS/MFT} and {OS/MVT}
	to improve job processing performance.

	(2003-05-19)

Howe, Denis

	{Denis Howe}

how many nibbles in a byte

	<data> There are two {nibbles} in a {byte}.

	(2009-09-17)

HP

	{Hewlett-Packard}

hp2ps

	<tool> An {HP-GL} {interpreter} written in {PostScript} by
	Alun Jones.  hp2ps runs on the printer itself.  Version 1.9c.

	(1999-11-23)

H/PC

	{Hand-held Personal Computer}

HPCC

	{High Performance Computing and Communications}

HPcode

	Stack-based intermediate language used by {HP} in many of its
	compilers for {RISC} and stack-based architectures.  Supports
	{Fortran}, {Ada}, {Pascal}, {COBOL} and {C++}.  Descended from
	Stanford's {U-code}.

HPCode-Plus

	A descendant of {HPcode} with {data types}, developed to be an
	{ANDF} language.

	["ANDF: Finally an UNCOL After 30 Years", M.E. Benitez, Jack
	Davidson <jwd@virginia.edu> et al, CS TR-91-05 U Virginia (Mar
	1991)].

	(1995-03-16)

HPF

	{High Performance Fortran}

HPFS

	{High Performance File System}

HP-GL

	{Hewlett-Packard Graphics Language}

HP-GL/2

	"HP-GL/2 Programmer's Guide", No. 5959-9733, HP.  (See PCL.)

HP-IB

	{IEEE 488}

HPL

	Language used in HP9825A/S/T "Desktop Calculators", 1978(?)
	and ported to the early Series 200 family (9826 and 9836,
	68000).  Fairly simple and standard, but with extensive I/O
	support for data acquisition and control (BCD, Serial, 16 bit
	custom and {IEEE 488} interfaces), including interrupt
	handling.  Currently owned by Structured Software Systems.
	"HPL Operating Manual for Series 200, Models 216, 226 and
	235\6", HP 98614-90010, Jan 1984.

HPLOT

	A graphical output facility for {HBOOK}.

	(1995-02-22)

HP-MPE

	{Hewlett Packard Multi Processing Executive}

HP-PA

	{Hewlett Packard Precision Architecture}

HPPI

	{High Performance Parallel Interface}

HPR

	{High Performance Routing}

HP-SUX

	<abuse, operating system> /H-P suhks/ An unflattering
	hackerism for {HP-UX} which features some truly unique
	bogosities in the {file system} internals and elsewhere (these
	occasionally create portability problems).  HP-UX is often
	referred to as "hockey-pux" inside HP, and one respondent
	claims that the proper pronunciation is /H-P ukkkhhhh/ as
	though one were about to spit.  Another such alternate
	spelling and pronunciation is "H-PUX" /H-puhks/.  Hackers at
	HP/Apollo (the former Apollo Computers which was swallowed by
	HP in 1989) have been heard to complain that Mr. Packard
	should have pushed to have his name first, if for no other
	reason than the greater eloquence of the resulting acronym.

	Compare {AIDX}, {buglix}, {Telerat}, {Open DeathTrap},
	{ScumOS}, {sun-stools}.

	[{Jargon File}]

	(1997-05-12)

HP-UX

	<operating system> The version of {Unix} running on
	{Hewlett-Packard} {workstations}.

	HP-UX conforms to {X/Open}'s Portability Guide Issue 4
	({XPG4}), Federal Information Processing Specification (FIPS)
	151.1, {POSIX} 1003.1, POSIX 1003.2, {AT&T}'s System V
	Interface Definition 2 ({SVID} 2).  HP-UX incorporates
	selected features from the University of California at
	Berkeley Software Distribution 4.3 ({4.3BSD}).

	It is known by some as "{HP-SUX}".

	[Features?]

	(1997-05-12)

HP VEE

	{Hewlett-Packard Visual Engineering Environment}

hqx

	{binhex}

hr

	<networking> The {country code} for Croatia.

	(1999-01-27)

href

	<World-Wide Web> ({hypertext} reference) The attribute of an
	{HTML} "a" (anchor or link) tag, whose value gives the {URL}
	of the {web page} or other resource that the link points to.
	For example,

	 <a href="http://foldoc.org/">FOLDOC href definition</a>

	would display an anchor pointing to this dictionary.

	(2008-02-22)

hs

	{Haskell}

HSB

	{hue, saturation, brightness}

HSC

	{High Speed Connect}

HSCSD

	{High Speed Circuit Switched Data}

HSL-FX

	{Hierarchical Specification Language - Function Extension}

HSM

	{Hierarchical Storage Management}

HSRP

	{Hot Standby Routing Protocol}

HSSI

	{high speed serial interface}

HSV

	{hue, saturation, value}

HT

	{horizontal tabulation}

ht

	<networking> The {country code} for Haiti.

	(1999-01-27)

HTH

	<chat> Hope This Helps.  Often used sarcastically, see {HAND}.

	(1998-03-06)

HTLM

	Do you mean {HTML}?

HTML

	{Hypertext Markup Language}

HTML+

	<hypertext, standard> A proposed successor to {HTML}.  HTML+
	was a superset of HTML designed to extend the capabilities of
	the language to incorporate better support for {multimedia}
	objects in documents.

	(1994-10-27)

htmlcommentbox.com

	<World-Wide Web> A service for adding a comment box to any web
	page, allowing visitors to leave comments and the site owner to
	review them.

	{(http://htmlcommentbox.com/)}

	(2013-03-20)

HTTL

	Do you mean {HTTP} or {HTML}?

HTTP

	{Hypertext Transfer Protocol}

HTTP/1.0

	{Hypertext Transfer Protocol} version 1.0.

HTTP cookie

	<World-Wide Web> A small string of information sent by a {web
	server} to a {web browser} that will be sent back by the browser
	each time it accesses that server.

	Cookies were invented by {Netscape} to make it easier to maintain
	{state} between {HTTP} {transactions}.  They can contain any
	arbitrary information the server chooses to put in them.

	The most common use of cookies is to identify and authenticate a
	user who has logged in to a {website}, so they don't have to sign
	in every time they visit.  Other example uses are maintaining a
	{shopping basket} of goods you have selected to purchase during a
	session at an online shop or site {personalisation} (presenting
	different pages to different users).

	The browser limits the size of each cookie and the number each
	server can store.  This prevents a malicious site consuming lots
	of disk space on the user's computer.  The only information that
	cookies can return to the server is what that server previously
	sent out.

	The main privacy concern is that it is not obvious when a site is
	using cookies or what for.  Even if you don't log in or supply any
	personal information to a site, it can still assign you a unique
	identifier and store it in a "tracking cookie".  This can then be
	used to track every page you ever visit on the site.  However,
	since it is possible to do the same thing without cookies, the UK
	law requiring sites to declare their use of cookies makes little
	sense and has been widely ignored.

	After using a shared computer, e.g. in an {Internet cafe}, you
	should remove all cookies to prevent the browser identifying
	the next user as you if they happen to visit the same sites.

	{Cookie Central (http://cookiecentral.com/c_concept.htm)}.

	{Stupid cookie law
	(http://blog.silktide.com/2013/01/the-stupid-cookie-law-is-dead-at-last/)}.

	(2013-12-05)

HTTPd

	<World-Wide Web> (Hypertext transfer protocol daemon).

	An {HTTP/1.0}-compatible {server}, written by Rob McCool
	<robm@ncsa.uiuc.edu> of {NCSA}, for making {hypertext} and
	other documents available to {World-Wide Web} {browsers}.

	HTTPd is designed to be small and fast and to work with most
	HTTP/0.9 and HTTP/1.0 {browsers}.  You can customise your
	server to execute searches and handle {HTML} {forms}.  It also
	supports {server side include} files, allowing you to include
	the output of commands or other files in {HTML} documents.

	The current (1994-08-08) version is 1.3.

	{(http://hoohoo.ncsa.uiuc.edu/docs/Overview.html)}.

	E-mail: <httpd@ncsa.uiuc.edu>.

	(1995-01-16)

HTTP proxy server

	<World-Wide Web> A {proxy server} for {HTTP} requests.
	Typically an HTTP proxy or "web proxy" accepts HTTP requests
	containing {URLs} with a special prefix.  The proxy removes
	the prefix and looks for the resulting URL in its local
	{cache} (if it is a caching proxy).  If found, it returns the
	document immediately, otherwise it fetches it from the remote
	server, saves a copy in its cache and returns it to the
	requester.  The cache will usually have an expiry {algorithm}
	which flushes documents according to their age, size and
	access history.

	The purpose is to reduce the amount of data flowing over the
	proxy's Internet connection and to speed up clients' access to
	frequently requested pages, e.g. at an {ISP} or on a large
	company's {firewall}.  The proxy may also reject requests
	where the URL or content matches certain conditions.

	The {Apache} HTTP server can be configured to act as a proxy
	server.  Another popular software proxy is {Squid}.

	(2008-07-01)

HTTPS

	{HyperText Transmission Protocol, Secure}

HTTP server

	<World-Wide Web> (Or "web server") A {server} process running
	at a {website} which sends out {web pages} in response to
	{HTTP} requests from remote {browsers}.

	If one site runs more than one server they must use different
	{port numbers}.  Alternatively, several hostnames may be
	mapped to the same computer in which case they are known as
	"{virtual servers}".

	{Apache} and {NCSA} {HTTPd} are two popular web servers.
	There are many others including some for practically every
	{platform}.  Servers differ mostly in the "server-side"
	features they offer such as {server-side include}, and in
	their {authentication} and access control mechanisms.  All
	decent servers support {CGI} and most have some binary {API}
	as well.

	(1997-02-05)

hu

	<networking> The {country code} for Hungary.

	(1999-01-27)

hub

	<networking> (By analogy with the hub of a wheel) A device
	connected to several other devices.

	In {ARCnet}, a hub is used to connect several computers
	together.  In a message handling service, a number of local
	computers might exchange messages solely with a hub computer.
	The hub would be responsible for exchanging messages with
	other hubs and non-local computers.

	(1995-01-16)

Hubnet

	<networking> A 50 Mb/s {optical fibre} {network} developed at
	{Toronto University}.  Network {topology} is a rooted tree
	with a maximum of 65536 hosts with maximum separation of 2 km.
	The {protocol} is multiple access, collision avoidance, echo
	detect and retry.

	[Computer Systems Equipment Design, Jan 85].

	(1994-11-22)

hubs

	{hub}

hue

	<graphics> (Or "tint") The coordinate in the {HSB} {colour
	model} that determines the frequency of light or the position
	in the spectrum or the relative amounts of red, green and
	blue.  Hue corresponds to the common definition of colour,
	e.g. "red", "orange", "violet" etc.  The other coordinates are
	{saturation} and {brightness}.

	(1999-07-05)

hue, saturation, brightness

	<graphics> (HSB) A {colour model} that describes colours in
	terms of {hue}, {saturation}, and {brightness}.

	In the tables below, a hue is a "pure" colour, i.e. one with
	no black or white in it.  A shade is a "dark" colour, i.e. one
	produced by mixing a hue with black.  A tint is a "light"
	colour, i.e. one produced by mixing a hue with white.  A tone
	is a colour produced by mixing a hue with a shade of grey.

	{Microsoft Windows} colour dialogs, {PagePlus}, and {Paint
	Shop Pro} use {HSB} but call the third dimension "luminosity"
	or "lightness".  It ranges from 0% (black) to 100% (white).  A
	pure hue is 50% luminosity, 100% saturation.

	 Colour type   S      L
	 Black        Any     0%
	 White        Any    100%
	 Grey          0%    1-99%
	 Hue          100%    50%
	 Shade        100%   1-49%
	 Tint         100%  51-99%
	 Tone         1-99%  1-99%

	{Quattro Pro}, {CorelDraw}, and {PhotoShop} use a variant
	(Quattro Pro calls the third parameter "brightness") in which
	a brightness of 100% can produce white, a pure hue, or
	anything in between, depending on the saturation.

	 Colour type   S      B
	 Black        Any     0%
	 White         0%    100%
	 Grey          0%    1-99%
	 Hue          100%   100%
	 Shade        100%   1-99%
	 Tint         1-99%  100%
	 Tone         1-99%  1-99%

	[Same as {HSV}?]

	(1999-07-05)

hue, saturation, value

	<graphics> (HSV) A {colour model} that describes colours in
	terms of {hue} (or "tint"), {saturation} (or "shade") and
	{value} (or "tone" or "luminance").

	[Same as {HSB}?]

	(1999-07-05)

huff

	<compression> To compress data using {Huffman coding}.
	Various programs that use such methods have been called "HUFF"
	or some variant thereof.

	Opposite: {puff}.  Compare {crunch}, {compress}.

	[{Jargon File}]

	(1994-12-23)

Huffman

	{Huffman coding}

Huffman code

	{Huffman coding}

Huffman coding

	<algorithm> A {data compression} technique which varies the
	length of the encoded symbol in proportion to its information
	content, that is the more often a symbol or token is used, the
	shorter the {binary string} used to represent it in the
	compressed stream.  Huffman codes can be properly decoded
	because they obey the prefix property, which means that no
	code can be a prefix of another code, and so the complete set
	of codes can be represented as a binary tree, known as a
	Huffman tree.  Huffman coding was first described in a seminal
	paper by D.A. Huffman in 1952.

	(1994-12-23)

Huffman encoding

	{Huffman coding}

Hugh Loebner

	<person> Dr. Hugh Gene Loebner, the instigator of the {Loebner
	Prize} in {artificial intelligence}.

	{(http://loebner.net/)}.

	E-mail address: Hugh Loebner <hugh@loebner.net>.

	(2003-11-30)

HUGO

	A {bytecode}-interpreted {transaction handler} from {Geac}.

	(1994-12-23)

HUGS

	{Haskell User's Gofer System}

Human-Computer Interaction

	<software, hardware> (HCI) The study of how humans interact
	with computers, and how to design computer systems that are
	easy, quick and productive for humans to use.

	See also {Human-Computer Interface}.

	{HCI Sites (http://acm.org/sigchi/hci-sites/)}.

	(1999-05-09)

Human-Computer Interface

	<software, hardware> (HCI) Any {software} or {hardware} that
	allows a user to interact with a computer.  Examples are
	{WIMP}, {command-line interpreter}, or {virtual reality}.

	See also {Human-Computer Interaction}.

	(1999-05-09)

Human Interface Device

	<hardware> (HID) Any device to interact directly with humans
	(mostly input) like {keyboard}, {mouse}, {joystick}, or {graphics
	tablet}.

	(2001-03-29)

Human Interface Technology Laboratory

	(HITL) The Human Interface Technology Laboratory at the
	{University of Washington} was founded in 1990.  It is a
	centre for research and development of advanced interface
	technology.  Located on the university campus, HITL forms a
	bridge between academia and industry.  It maintains its
	industrial focus via the Virtual Worlds Consortium and
	maintains contacts with academia by training students and
	teaching courses.  The lab has access to faculty and students
	throughout the State of Washington.

	Address: Human Interface Technology Laboratory, University of
	Washington, Seattle, USA.

	(1995-02-13)

humanist technology

	<philosophy> Technology centered around the interests, needs,
	and well-being of humans.

	(2002-07-16)

humma

	<chat> A filler word used on various "chat" and "talk"
	programs when you had nothing to say but felt that it was
	important to say something.

	The word apparently originated (at least with this definition)
	on the MECC Timeshare System (MTS, a now-defunct educational
	{time-sharing} system running in Minnesota during the 1970s
	and the early 1980s) but was later sighted on early Unix
	systems.

	[{Jargon File}]

	(1999-02-27)

humor

	{hacker humour}

humour

	{hacker humour}

hung

	["hung up"] Equivalent to {wedged}, but more common at Unix/C
	sites.  Not generally used of people.  Synonym with {locked
	up}, {wedged}; compare {hosed}.  See also {hang}.  A hung
	state is distinguished from {crash}ed or {down}, where the
	program or system is also unusable but because it is not
	running rather than because it is waiting for something.
	However, the recovery from both situations is often the same.

	[{Jargon File}]

Hungarian Notation

	<language, convention> A linguistic convention requiring one
	or more letters to be added to the start of {variable} names
	to denote {scope} and/or {type}.

	Hungarian Notation is mainly confined to {Microsoft Windows}
	programming environments, such as Microsoft {C}, {C++} and
	{Visual Basic}.  It was originally devised by {Charles
	Simonyi}, a Hungarian, who was a senior programmer at
	{Microsoft} for many years.  He disliked the way that names in
	C programs gave no clue as to the type, leading to frequent
	programmer errors.

	According to legend, fellow programmers at Microsoft, on
	seeing the convoluted, vowel-less variable names produced by
	his scheme, said, "This might as well be in Greek - or even
	Hungarian!".  They made up the name "Hungarian notation"
	(possibly with "{reverse Polish notation}" in mind).

	Hungarian Notation is not really necessary when using a modern
	{strongly-typed language} as the {compiler} warns the
	programmer if a variable of one type is used as if it were
	another type.  It is less useful in {object-oriented
	programming} languages such as {C++}, where many variables are
	going to be instances of {classes} and so begin with "obj".

	In addition, variable names are essentially only {comments},
	and thus are just as susceptible to becoming out-of-date and
	incorrect as any other comment.  For example, if a {signed}
	{short} {int} becomes an unsigned {long} int, the variable
	name, and every use of it, should be changed to reflect its
	new type.

	A variable's name should describe the values it holds.  Type
	and scope are aspects of this, but Hungarian Notation
	overemphasises their importance by allocating so much of the
	start of the name to them.  Furthermore, type and scope
	information can be found from the variable's declaration.
	Ironically, this is particularly easy in the development
	environments in which Hungarian Notation is typically used.

	{Simonyi's original monograph
	(http://msdn.microsoft.com/library/techart/hunganotat.htm)}.

	{Microsoft VB Naming Conventions
	(http://support.microsoft.com/support/kb/articles/Q110/2/64.asp)}.

	(2003-09-11)

Hungry Programmers

	<body> A group of programmers producing {free software}.

	{(http://hungry.com/)}.

	(1995-03-20)

hungry puppy

	Synonym {slopsucker}.

	[{Jargon File}]

Hungry ViewKit

	<operating system, library> A {C++} {class} library for
	developing {Motif} {application programs} (although this
	restriction will be lifted once {LessTif} is finished).  It
	follows the {API} of the {Iris}(tm) {ViewKit}, put out by
	{SGI}.  The Hungry ViewKit is a superset of the Iris ViewKit,
	so any code developed for the Iris version will work with the
	Hungry version, but possibly not vice versa.

	{(http://hungry.com/products/viewkit/)}.

	(1995-03-20)

hungus

	<jargon> /huhng'g*s/ (Perhaps related to slang "humongous")
	Large, unwieldy, usually unmanageable.  E.g. "{TCP} is a
	hungus piece of code."

	[{Jargon File}]

	(1999-01-26)

Hunt the Wumpus

	<games, history> (Or "Wumpus") /wuhm'p*s/ A famous fantasy
	computer game, created by {Gregory Yob} in about 1973.

	Hunt the Wumpus appeared in Creative Computing, Vol 1, No 5,
	Sep - Oct 1975, where Yob says he had come up with the game
	two years previously, after seeing the grid-based games
	Hurkle, Snark and Mugwump at {People's Computing Company}
	(PCC).  He later delivered Wumpus to PCC who published it in
	their newsletter.

	ESR says he saw a version including termites running on the
	{Dartmouth Time-Sharing System} in 1972-3.

	Magnus Olsson, in his 1992-07-07 {USENET} article
	<9207071854.AA21847@thep.lu.se>, posted the {BASIC} {source
	code} of what he believed was pretty much the version that was
	published in 1973 in David Ahl's "101 Basic Computer Games",
	by {Digital Equipment Corporation}.

	The wumpus lived somewhere in a cave with the topology of an
	dodecahedron's edge/vertex graph (later versions supported
	other topologies, including an icosahedron and M"obius
	strip). The player started somewhere at random in the cave
	with five "crooked arrows"; these could be shot through up to
	three connected rooms, and would kill the wumpus on a hit
	(later versions introduced the wounded wumpus, which got very
	angry).  Unfortunately for players, the movement necessary to
	map the maze was made hazardous not merely by the wumpus
	(which would eat you if you stepped on him) but also by
	bottomless pits and colonies of super bats that would pick you
	up and drop you at a random location (later versions added
	"anaerobic termites" that ate arrows, bat migrations and
	earthquakes that randomly changed pit locations).

	This game appears to have been the first to use a non-random
	graph-structured map (as opposed to a rectangular grid like
	the even older Star Trek games).  In this respect, as in the
	dungeon-like setting and its terse, amusing messages, it
	prefigured {ADVENT} and {Zork} and was directly ancestral to
	both (Zork acknowledged this heritage by including a super-bat
	colony).

	There have been many {ports} including one distributed with
	{SunOS}, a {freeware} one for the {Macintosh} and a {C}
	emulation by {ESR}.

	[Does "101 Basic Computer Games" give any history?]

	(2004-10-04)

Hurd

	<operating system> The {GNU} project's replacement for the
	{Unix} {kernel}.  The Hurd is a collection of {servers} that
	run on the {Mach} {microkernel} to implement {file systems},
	{network protocols}, file access control, and other features
	that are implemented by the Unix kernel or similar kernels
	such as {Linux}.  The GNU {C Library} provides the {Unix}
	{system call} interface, and calls the Hurd for services it
	can't provide itself.

	The Hurd aims to establish a framework for shared development
	and maintenance, allowing a broad range of users to share
	projects without knowing much about the internal workings of
	the system - projects that might never have been attempted
	without freely available source, a well-designed interface,
	and a multi-server-based design.

	Currently there are free ports of the {Mach} {kernel} to the
	{Intel 80386} {IBM PC}, the {DEC} {PMAX} {workstation}, the
	{Luna} {88k}, with more in progress, including the {Amiga} and
	{DEC} {Alpha}-3000 machines.

	According to Thomas Bushnell, BSG, the primary architect of
	the Hurd: 'Hurd' stands for 'Hird of Unix-Replacing Daemons'
	and 'Hird' stands for 'Hurd of Interfaces Representing Depth'.
	Possibly the first software to be named by a pair of {mutually
	recursive} acronyms.

	{The Hurd Home (http://gnu.org/software/hurd/hurd.html)}.

	[June 1994 GNU's Bulletin].

	(2004-02-24)

HVD

	{High Voltage Differential}

Hybrid

	A {concurrent} {object-oriented} language.

	["Active Objects in Hybrid", O.M. Nierstrasz, SIGPLAN Notices
	22(12):243-253 (OOPSLA '87) (Dec 1987)].

	(1994-12-07)

Hybrid Fiber Coax

	<networking> (HFC) A kind of physical connection used in
	networks for audio, video, and data.  DVB (Digital Video
	Broadcast) is used in Europe and DOCSIS is used in N America.

	[What is the relationship between HFC, DVB, DOCSIS?]

	(1999-11-02)

hybrid multiprocessing

	<parallel> (HMP) The kind of {multitasking} which {OS/2}
	supports.  HMP provides some elements of {symmetric
	multiprocessing}, using add-on {IBM} software called MP/2.
	OS/2 SMP was planned for release in late 1993.

	(1995-03-19)

hybrid testing

	<testing> A combination of {top-down testing} with {bottom-up
	testing} of prioritised or available components.

	(1996-05-22)

hydra code

	<humour, programming> {Code} that cannot be fixed because each
	time a {bug} is remove, two new bugs grow in its place.  Named
	after the many-headed Hydra of Greek mythology.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-01-04)

hydrofluorocarbon

	<hardware> (HFC) A suggested replacement for the
	chlorofluorocarbon (CFC) coolant gas used in chillers and air
	conditioners.

	(1996-11-05)

HyperBase

	<database> An experimental active multi-user {database} for
	{hypertext} systems from the {University of Aalborg}, written
	in {C++}.  It is built on the {client-server} model enabling
	distributed, {concurrent}, and shared access from
	{workstations} in a {local area network}.

	See also {EHTS}.

	(1995-03-19)

Hyper-C

	A {data parallel} extension of {C} from HyperParallel Tech,
	France, for {PVM}, {CM} and {Maspar}.  It is available from
	Fortunel Systems <fortunel@vnet.net>, +1 (919) 319 1624.

	E-mail: <hyperc-support@hyperparallel.polytechnique.fr>.

	(1994-11-17)

HyperCard

	A software package by Bill Atkinson for storage and retrieval
	of information on the {Macintosh}.  It can handle {images} and
	is designed for {browsing}.  The powerful customisable
	interactive {user interface} allows new {applications} to be
	easily constructed by manipulating objects on the screen,
	often without conventional programming, though the language
	{HyperTalk} can be used for more complex tasks.

	{Usenet} newsgroup: {news:comp.sys.mac.hypercard}.

	["Apple Macintosh HyperCard User Guide", Apple Computer 1987].

	(1995-02-10)

hypercube

	A cube of more than three dimensions.  A single (2^0 = 1)
	point (or "node") can be considered as a zero dimensional
	cube, two (2^1) nodes joined by a line (or "edge") are a one
	dimensional cube, four (2^2) nodes arranged in a square are a
	two dimensional cube and eight (2^3) nodes are an ordinary
	three dimensional cube.  Continuing this geometric
	progression, the first hypercube has 2^4 = 16 nodes and is a
	four dimensional shape (a "four-cube") and an N dimensional
	cube has 2^N nodes (an "N-cube").  To make an N+1 dimensional
	cube, take two N dimensional cubes and join each node on one
	cube to the corresponding node on the other.  A four-cube can
	be visualised as a three-cube with a smaller three-cube
	centred inside it with edges radiating diagonally out (in the
	fourth dimension) from each node on the inner cube to the
	corresponding node on the outer cube.

	Each node in an N dimensional cube is directly connected to N
	other nodes.  We can identify each node by a set of N
	{Cartesian coordinates} where each coordinate is either zero
	or one.  Two node will be directly connected if they differ in
	only one coordinate.

	The simple, regular geometrical structure and the close
	relationship between the coordinate system and binary numbers
	make the hypercube an appropriate topology for a parallel
	computer interconnection network.  The fact that the number of
	directly connected, "nearest neighbour", nodes increases with
	the total size of the network is also highly desirable for a
	{parallel computer}.

	(1994-11-17)

Hyperion

	<computer> An {MS-DOS} {personal computer} that was
	manufactured in Kanata (near Ottawa, Ontario, Canada) in the
	mid-1980s.  It received considerable government subsidies and,
	while it was considered well-designed and manufactured and a
	real threat to the {Compaq Portable}, the Ottawa firm that
	designed it was unable to beat {Compaq}.

	(1997-07-21)

hyperlink

	{hypertext link}

Hyper-Man

	A {browser} available with {Epoch} giving {hypertext} access
	to the {Unix} manual.

hypermedia

	{hypertext}

HyperNeWS

	A Hypertext system from the Turing Institute Glasgow, based on
	{NeWS}.

Hyperscript

	Informix.  The object-based programming language for Wingz,
	used for creating charts, graphs, graphics, and customised
	data entry.

hyperspace

	/hi:'per-spays/ A memory location that is *far* away from
	where the {program counter} should be pointing, often
	inaccessible because it is not even mapped in.  (Compare {jump
	off into never-never land}.)

	This usage is from the SF notion of a spaceship jumping "into
	hyperspace", that is, taking a shortcut through
	higher-dimensional space - in other words, bypassing this
	universe.  The variant "east hyperspace" is recorded among
	{CMU} and {Bliss} hackers.

	[{Jargon File}]

	(1994-11-23)

HyperSPARC

	<processor> The successor to the {SuperSPARC} processor, based
	on the {SPARC} {ISA}.  The HyperSPARC has smaller {caches}
	than the {SuperSPARC}: 8kb on-chip and 256kb off-chip
	(compared with 36kb and 1Mb).  The HyperSPARC's {memory
	management} is optimised for more efficient out-of-cache
	addressing which means quicker access to external (slower,
	cheaper) memory.

	(1994-11-23)

Hyperstrict

	A function which is hyperstrict in some argument will fully
	evaluate that argument.  To fully evaluate an object, evaluate
	it to WHNF and if it is a constructed data object (e.g. a list
	or tuple) then fully evaluate every component and so on
	recursively.  Thus a hyperstrict function will fail to
	terminate if its argument or any component or sub-component of
	its argument fails to terminate (i.e. if its argument is not
	"total").

HyperTalk

	A verbose semicompiled language by Bill Atkinson and Dan
	Winkler, with loose {syntax} and high readability.

	HyperTalk uses {HyperCard} as an object management system,
	development environment and interface builder.  Programs are
	organised into "stacks" of "cards", each of which may have
	"buttons" and "fields".  All data storage is in
	zero-terminated strings in fields, local, or global variables;
	all data references are through "chunk expressions" of the
	form:

		'last item of background field
		"Name List" of card ID 34217'.

	Flow of control is {event-driven} and uses message-passing
	among scripts that are attached to stack, background, card,
	field and button objects.

	{Apple Computer} has taken back distribution and maintenance of
	HyperCard from {Claris} Corporation

	["HyperTalk Language Reference Manual", A-W 1988].

	(1994-11-17)

hypertext

	<hypertext> A term coined by Ted Nelson around 1965 for a
	collection of documents (or "nodes") containing
	cross-references or "links" which, with the aid of an
	interactive {browser} program, allow the reader to move easily
	from one document to another.

	The extension of hypertext to include other media - {sound},
	{graphics}, and {video} - has been termed "{hypermedia}", but
	is usually just called "hypertext", especially since the
	advent of the {World-Wide Web} and {HTML}.

	(2000-09-10)

hypertext link

	<hypertext> (Or "{hyperlink}", "button", formerly "span",
	"region", "extent") A pointer from within the content of one
	{hypertext} {node} (e.g. a {web page}) to another node.  In
	{HTML} (the language used to write web pages), the source and
	destination of a {link} are known as "anchors".  A source
	anchor may be a word, phrase, image or the whole node.  A
	destination anchor may be a whole node or some position within
	the node.

	A {hypertext browser} displays source anchors in some
	distinctive way.  When the user activates the link (e.g. by
	clicking on it with the {mouse}), the browser displays the
	destination anchor to which the link refers.  Anchors should
	be recognisable at all times, not, for example, only when the
	mouse is over them.  Originally links were always underlined
	but the modern preference is to use {bold} text.

	In {HTML}, anchors are created with <a..>..</a> anchor
	elements.  The opening "a" tag of a source anchor has an
	"href" (hypertext reference) {attribute} giving the
	destination in the form of a {URL} - usually a whole "page".
	E.g.

		<a href="http://foldoc.org/">
		Free On-line Dictionary of Computing</a>

	Destination anchors can be used in HTML to name a position
	within a page using a "name" attribute.  E.g.

		<a name="chapter3">

	The name or "fragment identifier" is appended to the URL of
	the page after a "#":

		http://fairystory.com/goldilocks.html#chapter3

	(2008-12-10)

Hypertext Markup Language

	<hypertext, World-Wide Web, standard> (HTML) A {hypertext}
	document format used on the {World-Wide Web}.  HTML is built
	on top of {SGML}.  "Tags" are embedded in the text.  A tag
	consists of a "<", a "directive" (in lower case), zero or
	more parameters and a ">".  Matched pairs of directives, like
	"<title>" and "</title>" are used to delimit text which is to
	appear in a special place or style.

	Links to other documents are in the form

	 <a href="http://machine.edu/subdir/file.html">foo</a>

	where "<a>" and "</a>" delimit an "anchor", "href" introduces
	a hypertext reference, which is most often a {Uniform Resource
	Locator} (URL) (the string in double quotes in the example
	above).  The link will be represented in the browser by the
	text "foo" (typically shown underlined and in a different
	colour).

	A certain place within an HTML document can be marked with a
	named anchor, e.g.:

	 <a name="baz">

	The "fragment identifier", "baz", can be used in an href by
	appending "#baz" to the document name.

	Other common tags include <p> for a new paragraph, <b>..</b>
	for bold text, <ul> for an unnumbered list, <pre> for
	preformated text, <h1>, <h2> .. <h6> for headings.

	{HTML} supports some standard {SGML} {national characters} and
	other non-{ASCII} characters through special {escape
	sequences}, e.g. "&eacute;" for a lower case 'e' with an acute
	accent.  You can sometimes get away without the terminating
	semicolon but it's bad style.

	Most systems will ignore the case of tags and attributes but
	lower case should be used for compatibility with {XHTML}.

	The {World-Wide Web Consortium} (W3C) is the international
	{standards} body for HTML.

	Latest version: {XHTML} 1.0, as of 2000-09-10.

	{(http://w3.org/MarkUp/)}.

	{Character escape sequences
	(http://w3.org/hypertext/WWW/MarkUp/ISOlat1.html)}.

	See also {weblint}.

	(2006-01-19)

Hypertext Transfer Protocol

	<protocol> (HTTP) The {client-server} {TCP/IP} {protocol} used
	on the {World-Wide Web} for the exchange of {HTML} documents.
	It conventionally uses {port} 80.

	Latest version: HTTP 1.1, defined in {RFC 2068}, as of May
	1997.

	See also {Uniform Resource Locator}.

	(1994-10-27)

HyperText Transmission Protocol, Secure

	<protocol> (HTTPS) A variant of {HTTP} used by {Netscape} for
	handling secure transactions.

	The {Netscape Navigator} supports a {URL} {access method},
	"https", for connecting to {HTTP} {servers} using {SSL}.

	"https" is a unique protocol that is simply {SSL} underneath
	{HTTP}.  You need to use "https://" for HTTP {URLs} with
	{SSL}, whereas you continue to use "http://" for HTTP URLs
	without SSL.  The default "https" {port} number is 443, as
	assigned by the {Internet Assigned Numbers Authority}.

	{(http://netscape.com/info/security-doc.html)}.

	(1995-01-16)

hyperware

	<hypertext> {Software} that implements or uses {hypertext}.

	(2000-09-11)

hypotenuse

	<mathematics> The side of a right-angled triangle opposite the
	right angle.

	(2004-02-15)

hysterical reasons

	(Or "hysterical raisins") A variant on the stock phrase "for
	historical reasons", indicating specifically that something
	must be done in some stupid way for backward compatibility,
	and moreover that the feature it must be compatible with was
	the result of a bad design in the first place.  "All IBM PC
	video adaptors have to support MDA text mode for hysterical
	reasons."  Compare {bug-for-bug compatible}.

	[{Jargon File}]

Hytelnet

	<networking> A {hypertext} database of publicly accessible
	{Internet} sites created and maintained by Peter Scott
	<scottp@moondog.usask.ca>.  Hytelnet currently lists over 1400
	sites, including Libraries, Campus-Wide Information Systems,
	{Gopher}, {WAIS}, {WWW} and {Freenets}.

	Hytelnet software is available for the {IBM PC}, {Macintosh},
	{Unix} and {VMS} systems.

	{(ftp://ftp.usask.ca/pub/hytelnet)} (128.233.3.11).  {Telnet
	(telnet://access.usask.ca/)}, login: hytelnet.

	Mailing list: listserv@library.berkeley.edu (no subject, body:
	subscribe hytelnet FirstName LastName).

	(1995-10-18)

HyTime

	Hypermedia/Time-based Structuring Language: an emerging
	ANSI/ISO Standard from the {SGML} Users' Group's Special
	Interest Group on Hypertext and Multimedia (SIGhyper).  A
	hypermedia extension of {SGML}.

	["The HyTime Hypermedia/Time-based Document Structuring
	Language", S. Newcomb et al, CACM 34(11):67-83 (Nov 1991)].

i18n

	{internationalisation}

I2O

	{Intelligent Input/Output}

i386

	{Intel 80386}

i486

	{Intel 486}

i487

	{Intel 487SX}

i860

	<processor> A 32/64-bit {superscalar} {RISC} {microprocessor}
	from {Intel}, released in 1989.  Originally codenamed "N10".
	It has a 32-bit integer {ALU} and a 64-bit {floating-point
	unit}.  It has a 64-bit {data bus} with an initialisation mode
	which only uses eight bits of the data bus to allow the use of
	a small {boot ROM}.  It has a 32-bit wide {instruction cache}
	and a separate 64-bit wide {data cache}.  It uses {register
	scoreboarding} and {register bypassing}.  The {clock rate} is
	33 MHz with a clock-doubled version available.

	(1998-03-28)

IA

	{Information Appliance}

IA32

	<architecture> The {processor} chip architecture and
	{instruction set} used by {Intel} in its {Pentium} processors.

	(2007-06-17)

IAB

	{Internet Architecture Board}

IAD

	A dynamic analyser from {IBM} giving information on run-time
	performance and code use.

IAL

	{ALGOL 58}

IAM

	Interactive Algebraic Manipulation.  Interactive {symbolic
	mathematics} for {PDP-10}.

	["IAM, A System for Interactive Algebraic Manipulation", C.
	Christensen et al, Proc Second Symp Symb Alg Manip, ACM Mar
	1971].

IANA

	{Internet Assigned Numbers Authority}

IANAL

	<chat> I Am Not A Lawyer (but my legal opinion is...).

	(1998-07-28)

IAP

	{Internet Access Provider}

I-APL

	A version of {APL}.
	{(ftp://watserv1.waterloo.edu/languages/apl/)}.

	(1992-07-06)

IAR

	Instruction Address Register.

	The {IBM} name for {program counter}.

	(1995-03-21)

IAS

	1. <computer> The first modern computer.  It had main
	{registers}, processing circuits, information paths within the
	{central processing unit}, and used {Von Neumann}'s
	{fetch-execute cycle}.

	The IAS machine's basic unit of information was a 40-bit
	{word} and the memory had 4096 words.  A word stored in memory
	could represent either an instruction or data.  Each IAS
	instruction was twenty bits long, so that two instructions
	could be stored in each 40-bit memory location.  Each
	instruction consisted of an 8-bit {operation code} and a
	12-bit address that could identify any of 2^12 locations that
	may be used to store an {operand} of the instruction.

	The {CPU} consisted of a data processing unit and a program
	control unit.  It contained various processing and control
	circuits along with a set of high-speed {registers} for the
	temporary storage of instructions, memory addresses, and data.

	The main actions specified by instructions were performed by
	the arithmetic-logic circuits of the data processing unit.  An
	electronic clock circuit was used to generate the signals
	needed to synchronise the operation of the different parts of
	the system.

	[Who?  Where?  When?  Implemented using what?]

	2. {Immediate Access Storage}.

	(2003-10-24)

IAW

	<chat> inactive window.

	Used in {talk} systems to mean that that person will not be
	taking part in the conversation for a while.  The sadly
	mispelled alternative, "unactive window" (UAW) has also been
	reported.

	(1994-12-05)

IAYSDAH

	<chat> I acknowledge your strangely depressing attempt at
	humour.

	(2004-03-04)

IBEX

	<language> The command language for {Honeywell}'s {CP-6}
	{operating system}.

	(1994-12-06)

IBM

	{International Business Machines}

IBM 1130

	<computer> A computer introduced by {IBM} in 1965.  It was
	their cheapest computer to date, and was aimed at
	price-sensitive, computing-intensive technical markets like
	education and engineering.  It notably included inexpensive
	disk storage.  Non-IBM {clones} were produced.

	{IBM 1130 Enthusiasts (http://ibm1130.org/)}.

	(2005-01-17)

IBM 1403

	<printer> A printer used with the {IBM 360} {mainframe}, a
	successor to the 1401.

	(1999-01-11)

IBM 1620

	<computer> A computer built by {IBM} and released in late
	1959.  The 1620 cost from around $85,000(?) up to hundreds of
	thousands of dollars(?) according to the configuration.  It
	was billed as a "small scientific computer" to distinguish it
	from the business-oriented {IBM 1401}.  It was regarded as
	inexpensive, and many schools started out with one.

	It was either developed for the US Navy to teach computing, or
	as a replacement for the very successful {IBM 650} which did
	quite well in the low end scientific market.  Rumour has it
	that the Navy called this computer the CADET - Can't Add,
	Doesn't Even Try.

	The {ALU} used lookup tables to add, subtract and multiply but
	it could do address increments and the like without the
	tables.  You could change the number base by adjusting the
	tables, which were input during the boot sequence from
	{Hollerith} cards.  The divide instruction required additional
	hardware, as did {floating point} operations.

	The basic machine had 20,000 decimal digits of {ferrite core
	memory} arranged as a 100 by 100 array of 12-bit locations,
	each holding two digits.  Each digit was stored as four
	numeric bits, one flag bit and one parity bit.  The numeric
	bits stored a decimal digit (values above nine were illegal).

	Memory was logically divided into fields.  On the high-order
	digit of a field the flag bit indicated the end of the field.
	On the low-order digit it indicated a negative number.  A flag
	bit on the low order of the address indicated {indirect
	addressing} if you had that option installed.  A few "illegal"
	bit combinations were used to store things like record marks
	and "numeric blanks".

	On a {subroutine} call it stored the {return address} in the
	five digits just before the entry point to the routine, so you
	had to build your own {stack} to do {recursion}.

	The enclosure was grey, and the core was about four or five
	inches across.  The core memory was kept cool inside a
	temperature-controlled box.  The machine took a few minutes to
	warm up after power on before you could use it.  If it got too
	hot there was a thermal cut-out switch that would shut it
	down.

	Memory could be expanded up to 100,000 digits in a second
	cabinet.  The cheapest package used {paper tape} for I/O.  You
	could also get {punched cards} and later models could be
	hooked up to a 1311 {disk drive} (a two-{megabyte} {washing
	machine}), a 1627 {plotter}, and a 1443 {line printer}.

	Because the 1620 was popular with colleges, IBM ran a clearing
	house of software for a nominal cost such as {Snobol},
	{COBOL}, chess games, etc.

	The model II, released about three years later, could add and
	subtract without tables.  The {clock period} decreased from 20
	to 10 microseconds, instruction fetch sped up by a few cycles
	and it added {index registers} of some sort.  Some of the
	model I's options were standard on the model II, like
	{indirect addressing} and the {console} {teletype} changed
	from a model C to a {Selectric}.  Later still, IBM marketed
	the {IBM 1710}.

	A favorite use was to tune a FM radio to pick up the
	"interference" from the lights on the console.  With the right
	delay loops you could generate musical notes.  Hackers wrote
	{interpreters} that played music from notation like "C44".

	1620 consoles were used as props to represent {Colossus} in
	the film "The Forbin Project", though most of the machines had
	been scrapped by the time the film was made.

	{A fully configured 1620
	(http://uranus.ee.auth.gr/TMTh/exhibit.htm)}.

	{IBM 1620 console picture
	(http://foldoc.org/pub/misc/IBM1620-console.jpg)}.

	{IBM 1620 at Tuck School of Business, Dartmouth College,
	Hanover, NH, USA
	(http://foldoc.org/pub/misc/IBM1620-Tuck1960s.jpg)} (Thanks
	Victor E. McGee, pictured).

	["Basic Programming Concepts and the IBM 1620 Computer",
	Leeson and Dimitry, Holt, Rinehart and Winston, 1962].

	(1997-08-05)

IBM 1710

	<computer> An {IBM 1620} with additional features useful for
	industrial process control: {A/D convertors}, {D/A
	convertors}, general-purpose I/O lines, and {interrupts}.

	[Date?]

	(1997-07-20)

IBM 2741

	<printer> A slow, letter-quality printing device and
	{terminal} based on the {IBM Selectric} {typewriter}.  The
	print head was a little sphere resembling a golf ball, bearing
	reversed embossed images of 88 different characters arranged
	on four parallels of latitude; one could change the font by
	changing the golf ball.  The device communicated at 134.5 bits
	per second, {half duplex}.  When the computer transmitted, it
	physically locked the keyboard.

	This was the technology that enabled {APL} to use a
	non-{EBCDIC}, non-{ASCII}, and in fact completely non-standard
	{character set}.  This put it 10 years ahead of its time -
	where it stayed, firmly rooted, for the next 20, until
	{character displays} gave way to programmable {bit-mapped}
	devices with the flexibility to support other character sets.

	(2006-08-04)

IBM 3270

	<hardware> A class of {terminals} made by {IBM} known as
	"Display Devices", normally used to talk to {IBM}
	{mainframes}.  The 3270 attempts to minimise the number of
	{I/O} {interrupts} required by accepting large blocks of data,
	known as datastreams, in which both text and control (or
	formatting functions) are interspersed allowing an entire
	screen to be "painted" as a single output operation.  The
	concept of "formatting" in these devices allows the screen to
	be divided into clusters of contiguous character cells for
	which numerous attributes (color, highlighting, {character
	set}, protection from modification) can be set.  Further,
	using a technique known as 'Read Modified' the changes from
	any number of formatted fields that have been modified can be
	read as a single input without transferring any other data,
	another technique to enhance the terminal throughput of the
	CPU.

	The 3270 had twelve, and later twenty-four, special Programmed
	Function Keys, or PF keys.  When one of these keys was
	pressed, it would cause the device to generate an I/O
	{interrupt} and present a special code identifying which key
	was pressed.  {Application program} functions such as
	termination, page-up, page-down or help could be invoked by a
	single key-push, thereby reducing the load on very busy
	processors.

	A version of the {IBM PC} called the "3270 PC" was released in
	October 1983.  It included 3270 {terminal emulation}.

	{tn3270} is modified version of {Telnet} which acts as a 3270
	{terminal emulator} and can be used to connect to an IBM
	computer over a network.

	See also {broken arrow}.

	(1995-02-07)

IBM 360

	{System/360}

IBM 370

	{System/370}

IBM 370ESA

	<computer, IBM> (Enterprise System Architecture) An {IBM}
	{mainframe} {computer} introduced in 1988.  Successor to the
	{IBM 370XA} had enhanced access registers that allowed access
	to other forms of virtual memory.  This enhancement allowed
	more data storage in main and virtual memory, reducing {I/O}
	operating and improving speed and efficiency. The IBM 370ESA
	was rebranded as the IBM390, and later as the zSeries.

	(2004-06-06)

IBM 370XA

	<computer, IBM> An {IBM} {mainframe} {computer} introduced in
	1983.  Successor to the {System/370}, this machine had an
	enhanced {address space}.

	(2004-05-27)

IBM 3720

	<hardware> A {communications controller} made by {IBM},
	suitable for use in an {IBM S/390}.  Official service support
	was withdrawn in 1999 in favour of the {IBM 3745}.

	{(http://ibm.com/search?q=3720&realm=Networking)}.

	(2000-02-21)

IBM390

	{IBM 370ESA}

IBM 650

	<computer> A computer, produced ca. 1955 and in use in the
	late 1950s, with rotating {magnetic drum} storage and {punched
	card} input.  Its memory words could store 10-digit decimal
	numbers and each instruction had two addresses, one for the
	{operand} and one for address of the next instruction on the
	drum.

	{SOAP} was its (optimising) {assembler}.  Languages used on it
	included {BACAIC}, {BALITAC}, {BELL}, {CASE SOAP III}, {DRUCO
	I}, {EASE II}, {ELI}, {ESCAPE}, {FAST}, {FLAIR}, {FORTRANSIT},
	{FORTRUNCIBLE}, {GAT}, {IPL}, {Internal Translator}, {KISS},
	{MITILAC}, {MYSTIC}, {OMNICODE}, {PIT}, {RELATIVE},
	{RUNCIBLE}, {SIR}, {SOAP}, {Speedcoding}, {SPIT}, {SPUR}.

	[More details?]

	(1995-03-30)

IBM 700 series

	<computer> A family of computers made by IBM, including the
	{IBM 701}, {IBM 702}, {IBM 704}, {IBM 705} and {IBM 709}.

	(2005-06-20)

IBM 701

	<computer> ("Defense Calculator") The first of the {IBM 700
	series} of computers.

	The IBM 701 was annouced internally on 1952-04-29 as "the most
	advanced, most flexible high-speed computer in the world".
	Known as the Defense Calculator while in development at {IBM
	Poughkeepsie Laboratory}, it went public on 1953-04-07 as the
	"IBM 701 Electronic Data Processing Machines" (plural because
	it consisted of eleven connected units).

	The 701 was the first IBM large-scale electronic computer
	manufactured in quantity and their first commercial
	{scientific computer}.  It was the first IBM machine in which
	programs were stored in an internal, addressable, electronic
	memory.  It was developed and produced in less than two years
	from "first pencil on paper" to installation.  It was key to
	IBM's transition from {punched card} machines to electronic
	computers.

	It consisted of four {magnetic tape drives}, a {magnetic drum}
	memory unit, a {cathode-ray tube storage unit}, an L-shaped
	{arithmetic and control unit} with an operator's panel, a
	{punched card {reader}, a printer, a card punch and three
	power units.  It performed more than 16,000 additions or
	subtractions per second, read 12,500 digits a second from
	tape, print 180 letters or numbers a second and output 400
	digits a second from punched-cards.

	The IBM 701 ran the following languages and systems: {BACAIC},
	{BAP}, {DOUGLAS}, {DUAL-607}, {FLOP}, {GEPURS}, {JCS-13},
	{KOMPILER}, {LT-2}, {PACT I}, {QUEASY}, {QUICK}, {SEESAW},
	{SHACO}, {SO 2}, {Speedcoding}, {SPEEDEX}.

	{IBM History
	(http://www-03.ibm.com/ibm/history/exhibits/701/701_intro.html)}.

	(2005-06-20)

IBM 704

	<computer> A large, scientific computer made by {IBM} and used
	by the largest commercial, government and educational
	institutions.

	The IBM 704 had 36-bit memory words, 15-bit addresses and
	instructions with one address.  A few {index register}
	instructions had the infamous 15-bit decrement field in
	addition to the 15-bit address.

	The 704, and {IBM 709} which had the same basic architecture,
	represented a substantial step forward from the {IBM 650}'s
	{magnetic drum} storage as they provided random access at
	electronic speed to {core storage}, typically 32k words of 36
	bits each.

	[Or did the 704 actually come *before* the 650?]

	A typical 700 series installation would be in a specially
	built room of perhaps 1000 to 2000 square feet, with cables
	running under a raised floor and substantial air conditioning.
	There might be up to eight {magnetic tape} transports, each
	about 3 x 3 x 6 feet, on one or two "channels."  The 1/2 inch
	tape had seven tracks and moved at 150 inches per second,
	giving a read/write speed of 15,000 six bit characters (plus
	parity) per second.

	In the centre would be the operator's {console} consisting of
	cabinets and tables for storage of tapes and boxes of cards;
	and a {card reader}, a {card punch}, and a {line printer},
	each perhaps 4 x 4 x 5 feet in dimension.  Small {jobs} could
	be entered via {punched cards} at the console, but as a rule
	the user jobs were transferred from cards to {magnetic tape}
	by {off-line} equipment and only control information was
	entered at the console (see {SPOOL}).  Before each job, the
	{operating system} was loaded from a read-only system tape
	(because the system in {core} could have been corrupted by the
	previous user), and then the user's program, in the form of
	card images on the input tape, would be run.  Program output
	would be written to another tape (typically on another
	channel) for printing off-line.

	Well run installations would transfer the user's cards to
	tape, run the job, and print the output tape with a turnaround
	time of one to four hours.

	The processing unit typically occupied a position symmetric
	but opposite the operator's console.  Physically the largest
	of the units, it included a glass enclosure a few feet in
	dimension in which could be seen the "core" about one foot on
	each side.  The 36-bit word could hold two 18-bit addresses
	called the "Contents of the Address Register" ({CAR}) and the
	"Contents of the Decrement Register" ({CDR}).

	On the opposite side of the floor from the tape drives and
	operator's console would be a desk and bookshelves for the
	ever-present (24 hours a day) "field engineer" dressed in, you
	guessed it, a grey flannel suit and tie.  The maintenance of
	the many thousands of {vacuum tubes}, each with limited
	lifetime, and the cleaning, lubrication, and adjustment of
	mechanical equipment, was augmented by a constant flow of
	{bug} reports, change orders to both hardware and software,
	and hand-holding for worried users.

	The 704 was oriented toward scientific work and included
	{floating point} hardware and the first {Fortran}
	implementation.  Its hardware was the basis for the
	requirement in some programming languages that loops must be
	executed at least once.

	The {IBM 705} was the business counterpart of the 704.  The
	705 was a decimal machine with a circular register which could
	hold several variables (numbers, values) at the same time.

	Very few 700 series computers remained in service by 1965, but
	the {IBM 7090}, using {transistors} but similar in logical
	structure, remained an important machine until the production
	of the earliest {integrated circuits}.

	[Was the 704 scientific, business or general purpose?
	Difference between 704 and 709?]

	(1996-01-24)

IBM 7040

	<computer> A scaled down version of the {IBM 7090}.

	(1997-02-23)

IBM 705

	<computer> A business-oriented counterpart of the {IBM 704}.
	The 705 was a decimal machine with a circular {register} which
	could hold several values at the same time.

	Languages incuded {ACOM}, {Autocode}, {ELI}, {PRINT}, {PRINT
	I}, {SOHIO}, {SYMBOLIC ASSEMBLY}.

	(2000-06-01)

IBM 709

	<computer> A computer made by {IBM} oriented toward
	scientific work.  The 709 had the same basic architecture as
	the {IBM 704} but with many {I/O} and performance refinements
	over the 704.

	The IBM 709 (like the 704) had 36-bit memory words, 15-bit
	addresses and instructions with one address.  A few {index
	register} instructions had the infamous 15-bit decrement field
	in addition to the 15-bit address.

	The {IBM 7090} was a transistorised version of the 709.

	[Difference between 704 and 709?]

	(1999-01-19)

IBM 7090

	<computer> A transistorised version of the {IBM 709} which was
	a very popular high end computer in the early 1960s.  The 7090
	had 32Kbytes of 36-bit {core} memory and a hardware {floating
	point unit}.  {Fortran} was its most popular language, but it
	supported many others.  It was later upgraded to the {IBM
	7094}, and a scaled down version, the IBM 7040 was also
	introduced.

	IBM 7090s controlled the Mercury and Gemini space flights, the
	Balistic Missile Early Warning System (until well into the
	1980s), and the {CTSS} {time sharing} system at {MIT}.

	The 7090 was not good at unit record I/O, so in small
	configurations an {IBM 1401} was used for {SPOOL} I/O and in
	large configurations (such as a 7090/94) a 7040/44 would be
	directly coupled and dedicated to handling printers and {card
	readers}.  (See the film Dr Strangelove).

	(1999-01-19)

IBM 7094

	<computer> A faster version of the {IBM 7090} with more {index
	registers}.

	(1997-02-23)

IBM 801

	The original {IBM} {RISC} processor, developed as a research
	project.  It was named after the building in which it was
	designed.

	[Features?  Dates?]

	(1995-03-01)

IBM compatible

	<computer> A computer which can use hardware and software
	designed for the {IBM PC} (or, less often, IBM {mainframes}).

	This was once a key phrase in marketing a new PC {clone} but
	now in 1998 is rarely used, the non-IBM {wintel} {personal
	computer} manufacturers such as {Compaq}, {Dell} and {Gateway
	2000} and OS vendor {Microsoft} having taken control of the
	market, marginalising IBM.

	(1998-07-30)

IBM Customer Engineer

	<job> (CE) A hardware guy from {IBM}.

	[Are/were any CEs female?]

	(1998-07-08)

IBM discount

	A price increase.  Outside IBM, this derives from the common
	perception that IBM products are generally overpriced (see
	{clone}); inside, it is said to spring from a belief that
	large numbers of IBM employees living in an area cause prices
	to rise.

	[{Jargon File}]

	(1995-02-07)

IBM PC

	<computer> International Business Machines Personal Computer.

	IBM PCs and compatible models from other vendors are the most
	widely used computer systems in the world.  They are typically
	single user {personal computers}, although they have been
	adapted into multi-user models for special applications.

	Note: "IBM PC" is used in this dictionary to denote IBM and
	compatible personal computers, and to distinguish these from
	other {personal computers}, though the phrase "PC" is often
	used elsewhere, by those who know no better, to mean "IBM PC
	or compatible".

	There are hundreds of models of IBM compatible computers.
	They are based on {Intel}'s {microprocessors}: {Intel 8086},
	{Intel 8088}, {Intel 80286}, {Intel 80386}, {Intel 486} or
	{Pentium}.  The models of IBM's first-generation Personal
	Computer (PC) series have names: IBM PC, {IBM PC XT}, {IBM PC
	AT}, Convertible and Portable.  The models of its second
	generation, the Personal System/2 ({PS/2}), are known by model
	number: Model 25, Model 30.  Within each series, the models
	are also commonly referenced by their {CPU} {clock rate}.

	All IBM personal computers are software compatible with each
	other in general, but not every program will work in every
	machine.  Some programs are time sensitive to a particular
	speed class.  Older programs will not take advantage of newer
	higher-resolution {display standards}.

	The speed of the {CPU} ({microprocessor}) is the most
	significant factor in machine performance.  It is determined
	by its {clock rate} and the number of bits it can process
	internally.  It is also determined by the number of bits it
	transfers across its {data bus}.  The second major performance
	factor is the speed of the {hard disk}.

	{CAD} and other graphics-intensive {application programs} can
	be sped up with the addition of a mathematics {coprocessor}, a
	chip which plugs into a special socket available in almost all
	machines.

	{Intel 8086} and {Intel 8088}-based PCs require {EMS}
	(expanded memory) boards to work with more than one megabyte
	of memory.  All these machines run under {MS-DOS}.  The
	original {IBM PC AT} used an {Intel 80286} processor which can
	access up to 16 megabytes of memory (though standard {MS-DOS}
	applications cannot use more than one megabyte without {EMS}).
	{Intel 80286}-based computers running under {OS/2} can work
	with the maximum memory.

	Although IBM sells {printers} for PCs, most printers will work
	with them.  As with display hardware, the software vendor must
	support a wide variety of printers.  Each program must be
	installed with the appropriate {printer driver}.

	The original 1981 IBM PC's keyboard was severely criticised by
	typists for its non-standard placement of the return and left
	shift keys.  In 1984, IBM corrected this on its AT keyboard,
	but shortened the backspace key, making it harder to reach.
	In 1987, it introduced its Enhanced keyboard, which relocated
	all the function keys and placed the control key in an awkward
	location for touch typists.  The escape key was relocated to
	the opposite side of the keyboard.  By relocating the function
	keys, IBM made it impossible for software vendors to use them
	intelligently.  What's easy to reach on one keyboard is
	difficult on the other, and vice versa.  To the touch typist,
	these deficiencies are maddening.

	An "IBM PC compatible" may have a keyboard which does not
	recognize every key combination a true IBM PC does,
	e.g. shifted cursor keys.  In addition, the "compatible"
	vendors sometimes use proprietary keyboard interfaces,
	preventing you from replacing the keyboard.

	The 1981 PC had 360K {floppy disks}.  In 1984, IBM introduced
	the 1.2 megabyte floppy disk along with its AT model.
	Although often used as {backup} storage, the high density
	floppy is not often used for interchangeability.  In 1986, IBM
	introduced the 720K 3.5" microfloppy disk on its Convertible
	{laptop computer}.  It introduced the 1.44 megabyte double
	density version with the PS/2 line.  These disk drives can be
	added to existing PCs.

	Fixed, non-removable, {hard disks} for IBM compatibles are
	available with storage capacities from 20 to over 600
	megabytes.  If a hard disk is added that is not compatible
	with the existing {disk controller}, a new controller board
	must be plugged in.  However, one disk's internal standard
	does not conflict with another, since all programs and data
	must be copied onto it to begin with.  Removable hard disks
	that hold at least 20 megabytes are also available.

	When a new peripheral device, such as a {monitor} or
	{scanner}, is added to an IBM compatible, a corresponding, new
	controller board must be plugged into an {expansion slot} (in
	the bus) in order to electronically control its operation.
	The PC and XT had eight-bit busses; the AT had a 16-bit bus.
	16-bit boards will not fit into 8-bit slots, but 8-bit boards
	will fit into 16-bit slots.  {Intel 80286} and {Intel 80386}
	computers provide both 8-bit and 16-bit slots, while the 386s
	also have proprietary 32-bit memory slots.  The bus in
	high-end models of the PS/2 line is called "{Micro Channel}".
	{EISA} is a non-IBM rival to Micro Channel.

	The original IBM PC came with {BASIC} in {ROM}.  Later, Basic
	and BasicA were distributed on floppy but ran and referenced
	routines in ROM.

	IBM PC and PS/2 models

	PC range

			Intro	  CPU	  Features
	 PC		Aug 1981   8088	  Floppy disk system
	 XT		Mar 1983   8088	  Slow hard disk
	 XT/370		Oct 1983   8088	  IBM 370 mainframe emulation
	 3270 PC	Oct 1983   8088	  with 3270 terminal emulation
	 PCjr		Nov 1983   8088	  Floppy-based home computer
	 PC Portable	Feb 1984   8088	  Floppy-based portable
	 AT		Aug 1984   286	  Medium-speed hard disk
	 Convertible	Apr 1986   8088	  Microfloppy laptop portable
	 XT 286		Sep 1986   286	  Slow hard disk

	PS/2 range

			Intro	  CPU	  Features
	 Model 1987-08-25   8086	  PC bus (limited expansion)
	 Model 1987-04-30   8086	  PC bus
	 Model 30 1988-09-286   286	  PC bus
	 Model 1987-04-50   286	  Micro Channel bus
	 Model 50Z	Jun 1988   286	  Faster Model 50
	 Model 55 SX	May 1989   386SX  Micro Channel bus
	 Model 1987-04-60   286	  Micro Channel bus
	 Model 1988-06-70   386	  Desktop, Micro Channel bus
	 Model P1989-05-70   386	  Portable, Micro Channel bus
	 Model 1987-04-80   386	  Tower, Micro Channel bus

	IBM PC compatible specifications

	 CPU   CPU    Clock    Bus	    Floppy	  Hard
	       bus    speed   width  RAM    disk	  disk	   OS
	       bit    Mhz     bit   byte    inch   byte	  Mbyte

	 8088  16    4.8-9.5	8    1M*     5.25  360K	  10-40	  DOS
					     3.5   720K
					     3.5   1.44M

	 8086  16     6-12     16    1M*		  20-60

	 286   16     6-25     16   1-8M*    5.25  360K	  20-300  DOS
					     5.25  1.2M		  OS/2

	 386   32     16-33    32   1-16M**  3.5   720K		  Unix
					     3.5   1.44M  40-600

	 386SX 32     16-33    16   1-16M**		  40-600

	*Under DOS, RAM is expanded beyond 1M with EMS memory boards

	**Under DOS, RAM is expanded beyond 1M with normal "extended"
	memory and a memory management program.

	See also {BIOS}, {display standard}.

	(1995-05-12)

IBM PC AT

	<computer> ("Advanced Technology") A version of the {IBM PC},
	released in Aug 1984 with an {Intel 80286} processor, a 16-bit
	{bus}, a medium-speed {hard disk} and a 1.2 {megabyte}
	{floppy} {disk drive}.  It had a larger case than the PC,
	which allowed it to accept "{tall cards}".

	The AT keyboard corrected the PC's non-standard placement of
	the {return} and left shift keys but shortened the {backspace}
	key, making it harder to reach.

	(1995-03-01)

IBM PCjr

	<computer> ({IBM PC} Junior) A {floppy disk}-based home
	computer with an {Intel 8088} {CPU} and a {chiclet keyboard},
	released in November 1983.  The PCjr could be expanded to have
	two floppy drives and 640 kilobytes of {RAM} using {sidecars}.
	Some even had a {mouse} and could run drawing programs with
	{popup menus}.

	(1995-10-06)

IBM PC XT

	<computer> An {IBM PC} with a (slow) {hard disk}.  The XT was
	released in March 1983.  It had an {Intel 8088} {CPU}.  The
	XT/370, released in October 1983, added {IBM 370} {mainframe}
	{emulation}, and the XT 286 followed in September 1986 with an
	{Intel 80286} CPU [Why?].

	(1996-05-21)

IBM System/36

	<computer> A mid-range {computer} introduced in 1983, which
	remained popular in the 1990s because of its low cost and high
	performance.  Prices started in the $20k range for the small
	5362 to $100+k for the expanded 5360.  In 1994, IBM introduced
	the Advanced 36 for $9,000.

	The largest 5360 had 7MB of {RAM} and 1432MB of {hard disk}.
	The smallest 5362 had 256K of RAM and 30MB of hard disk.  The
	Advanced 36 had 64MB of RAM and 4300MB of hard disk, but
	design issues limit the amount of storage that can actually be
	addressed by the {operating system}; underlying {microcode}
	allowed additional RAM to cache disk reads and writes,
	allowing the Advanced 36 to outperform the S/36 by 600 to
	800%.

	There was only one operating system for the S/36: SSP ({System
	Support Product}).  SSP consumed about 7-10MB of hard drive
	space.  Computer programs on the S/36 reside in "libraries,"
	and the SSP itself resides in a special system library called
	#LIBRARY.

	Components of SSP include the {Data File Utility} (DFU), the
	{Source Entry Utility} (SEU), the largely obselete {Work
	Station Utility} (WSU), the {Screen Design Aid} (SDA) and
	{Operational Control Language} (OCL).

	Using the IBM S/36 is relatively simple.  The operator sits in
	front of a computer monitor, types on a keyboard, and
	interacts using a series of on-screen forms.  S/36 is
	command-oriented, like MS-DOS, however, S/36 additionally uses
	more than 70 menus which allow operators to type the number of
	an appropriate command or response, and application writers
	can create their own menus and commands ("procedures.")

	Programmers use SEU to create or modify a {source} program
	which is then compiled into an {object program}.  SEU uses 50
	or so {templates} to assist the operator with the {syntax} of
	different types of sources.

	By 1985, an application called {Programmer/Operator
	Productivity} was widely available and was probably the most
	popular (and pirated) S/36 software ever written.  POP
	included a {full-screen editor} called {FSEDIT} which could be
	used in place of SEU, which only allowed single-line editing.

	Data File Utility allows the programmer to quickly create a
	simple, single-record display program to add, update and
	delete {records} within a file.  Also, simple report programs
	can be created.

	Screen Design Aid allows the programmer to create menus,
	create and update simple forms which are called "display
	formats" or "prompt screens", and view existing display
	formats.

	By using Operational Control Language, the programmer can
	assign files and resources to a particular program and pass
	run-time information like a processing date, order number, or
	user name to the compiled program.  Programs can acquire up to
	8 workstations, or run in the background, but usually they run
	on only one workstation.  The largest program size is 64K.

	Whenever a program is called, SSP searches in the named user
	library and then #LIBRARY.  Therefore, a system program can be
	called from any library and all users have access to it.

	S/36 has three types of security: (1) password security, (2) a
	badge reader option that almost no-one ever bought, and (3)
	resource security.  There are five levels of users access and
	five levels of resource access.  By using password and
	resource security effectively, the administrator (who was at
	that time often called a DP Manager or Information Systems
	Manager) can restrict access to critical and secure
	applications.

	The cheapest, and therefore most popular, language {compiler}
	for the S/36 is {RPG II}, a language based on fixed logic
	cycles which arose in the days of {card readers}.  Other
	languages include {COBOL}, {FORTRAN} and {BASIC}.  Almost
	every S/36 shop with in-house design uses RPG.

	It's interesting to note that the S/36 allows the operator to
	change a program while it is being used, which can be very
	dangerous on live data.  The S/38 and the iSeries computer do
	not allow this.

	IBM has not marketed the S/36 or Advanced 36 since 2000.
	Price/performance of the {AS/400} (aka iSeries) and hardware
	technology of the present-generation {PC} makes the S/36 a
	much less attractive offering from a different era in
	computing.

	(2005-04-05)

IBM Systems Engineer

	<job> (SE) A software person from {IBM}.

	(1998-07-08)

IBM zSeries

	{IBM 370ESA}

Ibpag2

	{Icon-Based Parser Generation System 2}

Iburg

	A program by Christopher W. Fraser <cwf@research.att.com>,
	David R. Hanson <drh@princeton.edu> and Todd A. Proebsting
	<todd@cs.arizona.edu> that generates a fast tree parser.

	Iburg is compatible with {Burg}.  Both programs accept a
	cost-augmented tree {grammar} and emit a {C} program that
	discovers an optimal parse of trees in the language described
	by the grammar.  They have been used to construct fast optimal
	instruction selectors for use in code generation.  Burg uses
	{BURS}.  Iburg's matchers do {dynamic programming} at compile
	time.

	{(ftp://ftp.cs.princeton.edu/pub/iburg.tar.Z)}.

	(1993-02-10)

IC

	1. <hardware> {integrated circuit}.

	2. {Independent Carrier}.

	3. {Imperial College}.

	(1997-04-12)

ICA

	{Independent Computing Architecture}

ICAM

	{Integrated Computer Aided Manufacturing}

ICANN

	{Internet Corporation for Assigned Names and Numbers}

I-CASE

	Integrated {CASE}.  Another term for an {IPSE}.

ICBM address

	<networking, humour> (Or "missile address") The form used to
	register a site with the {Usenet} mapping project includes a
	space for longitude and latitude, preferably to seconds-of-arc
	accuracy.  This is actually used for generating
	geographically-correct maps of {Usenet} links on a plotter;
	however, it has become traditional to refer to this as one's
	"ICBM address" or "missile address", and many people include
	it in their {sig block} with that name.  (A real missile
	address would include target altitude.)

	[{Jargon File}]

	(1994-12-15)

ICE

	1. <electronics> {in-circuit emulator}.

	2. <security, jargon> {Intrusion Countermeasure Electronics}.

	(2000-03-18)

icebreaker

	<security, jargon> A program designed for cracking security on
	a system.

	See also: {ICE}.

	[{Jargon File}]

	(2000-03-18)

ICES

	Integrated Civil Engineering System.  Subsystems include COGO,
	STRUDL, BRIDGE, LEASE, PROJECT, ROADS and TRANSET.  Internal
	languages include ICETRAN and CDL.  "An Integrated Computer
	System for Engineering Problem Solving", D. Roos, Proc SJCC
	27(2), AFIPS (Spring 1965).  Sammet 1969, pp.615-620.

ICETRAN

	An extension of {Fortran IV} and a component of {ICES}.

	[Sammet 1969, p. 617].

ICI

	<language> An extensible, interpretated language by Tim Long
	with {syntax} similar to {C}.  ICI adds high-level
	garbage-collected {associative} data structures, {exception}
	handling, sets, {regular expressions}, and {dynamic arrays}.

	Libraries provide additional types and functions to support
	common needs such as I/O, simple {databases}, character based
	screen handling, direct access to {system calls}, {safe
	pointers}, and {floating-point}.

	ICI runs on {Microsoft Windows}, {MS-DOS}, {Unix}, and {Linux}
	and in {embedded} environments.

	{(http://zeta.org.au/~atrn/ici/)}.

	{(ftp://ftp.research.canon.com.au/pub/misc/ici)}.

	E-mail: Andy Newman <andy@research.canon.com.au>.

	Mailing list: ici@research.canon.com.au.

	(1999-12-07)

ICL

	{International Computers Limited}.

ICMP

	{Internet Control Message Protocol}

ICMP Router Discovery Protocol

	<protocol> (IRDP) A {routing} {protocol} used by {Microsoft
	Windows} {DHCP} clients and various {Unix} flavors.

	{Vulnerability
	(http://securiteam.com/securitynews/Most_DHCP_clients_are_vulnerable_to_an_IRDP_attack.html)}.

	[Details?  Reference?]

	(1999-10-31)

I-Comm

	<tool, World-Wide Web> A graphical {World-Wide Web} {browser}
	for {IBM PCs} with a {window system} ({Windows 95}, {Windows
	NT} or {OS/2}).  I-Comm does NOT require a {SLIP} or {PPP}
	connection, just a {modem}.  It is available as a {shareware}
	program.

	Version: 1.15 Beta1.

	{(http://talentcom.com/icomm/icomm.htm)}, {mirror
	(http://best.com:80/~icomm/icomm/icomm.htm)}.

	{FTP netcom.com (ftp://ftp.netcom.com/pub/ic/icomm/)},
	{FTP best.com (ftp://ftp.best.com/pub/icomm/icomm/)}.

	E-Mail: <icomm@talentcom.com>.

	(1996-03-22)
iCOMP

	{Intel Comparative Microprocessor Performance index}

Icon

	<language> A descendant of {SNOBOL4} with {Pascal}-like
	syntax, produced by Griswold in the 1970's.  Icon is a
	general-purpose language with special features for string
	scanning.  It has dynamic types: records, sets, lists,
	strings, tables.  If has some {object oriented} features but
	no {modules} or {exceptions}.  It has a primitive {Unix}
	interface.

	The central theme of Icon is the generator: when an expression
	is evaluated it may be suspended and later resumed, producing
	a result sequence of values until it fails.  Resumption takes
	place implicitly in two contexts: iteration which is
	syntactically loop-like ('every-do'), and goal-directed
	evaluation in which a conditional expression automatically
	attempts to produce at least one result.  Expressions that
	fail are used in lieu of Booleans.  Data {backtracking} is
	supported by a reversible {assignment}.  Icon also has
	{co-expressions}, which can be explicitly resumed at any time.

	Version 8.8 by Ralph Griswold <ralph@cs.arizona.edu> includes
	an {interpreter}, a compiler (for some {platforms}) and a
	library (v8.8).  Icon has been ported to {Amiga}, {Atari},
	{CMS}, {Macintosh}, {Macintosh/MPW}, {MS-DOS}, {MVS}, {OS/2},
	{Unix}, {VMS}, {Acorn}.

	See also {Ibpag2}.

	{(ftp://cs.arizona.edu/icon/)}, {MS-DOS FTP
	(ftp://bellcore.com norman/iconexe.zip)}.

	{Usenet} newsgroup: {news:comp.lang.icon}.

	E-mail: <icon-project@cs.arizona.edu>, <mengarini@delphi.com>.

	Mailing list: icon-group@arizona.edu.

	["The Icon Programmming Language", Ralph E. Griswold and Madge
	T. Griswold, Prentice Hall, seond edition, 1990].

	["The Implementation of the Icon Programmming Language", Ralph
	E. Griswold and Madge T. Griswold, Princeton University Press
	1986].

	(1992-08-21)

icon

	<graphics> A small picture intended to represent something (a
	file, directory, or action) in a {graphical user interface}.
	When an icon is clicked on, some action is performed such as
	opening a directory or aborting a file transfer.

	Icons are usually stored as {bitmap} images.  {Microsoft
	Windows} uses a special bitmap format with file name extension
	".ico" as well as embedding icons in executable (".exe") and
	{Dynamically Linked Library} (DLL) files.

	The term originates from {Alan Kay}'s theory for designing
	interfaces which was primarily based on the work of Jerome
	Bruner.  Bruner's second developmental stage, iconic, uses a
	system of representation that depends on visual or other
	sensory organization and upon the use of summarising images.

	{IEEE publication
	(http://ieee.org/organizations/history_center/cht_papers/Barnes.pdf)}.

	[What MS tool can create .ico files?]

	(2003-08-01)

Icon-Based Parser Generation System 2

	<language> (Ibpag2) A {parser generator} for {Icon} by Richard
	L. Goerwitz <goer@midway.uchicago.edu>.  It can handle both
	{SLR1 grammars} and even {GLR grammars} ({Tomita grammars}).
	Ibpag2 runs under {Unix}.

	Latest version: 1.0 (beta), as of 1993-07-13.

	(2004-06-06)

Iconicode

	1990-1992.  Visual dataflow language, token-based with
	hierarchical, recursive and iterative constructs.  Version:
	IDF with extensions for image processing.

	["IDF: A Graphical Data Flow Programming Language for Image
	Processing and Computer Vision", Neil Hunt, Proc IEEE Conf on
	Systems Man & Cybernetics, IEEE, Nov 1990.  Available from
	Iconicon <icon@teleos.com>].

ICONIX Software Engineering, Inc.

	<company> Makers of {ICONIX PowerTools}, software development
	tools, and the first {CD-ROM} training course in
	{object-oriented} methods.  ICONIX started operating in 1984.

	{(http://biap.com/iconix/)}.

	Address: 2800 28th Street, Suite 320, Santa Monica, CA 90405,
	USA.  Telephone: +1 (310) 458 0092

	(1995-04-30)

IC-Prolog

	Clark & McCabe, Imperial College 1979.  Logic language with
	coroutining.

	["IC-Prolog Language Features", K.L. Clark <klc@doc.ic.ac.uk>
	et al in Logic Programming, K.L. Clark et al eds, pp.253-266,
	Academic Press 1982].

IC Prolog II

	<language, Prolog> {Imperial College} Prolog.  A {Prolog} with
	{multi-threading}, {TCP} primitives for {interprocess
	communication}, {mailboxes}, and an interface to {Parlog}.

	{(ftp://doc.ic.ac.uk/computing/programming/languages)}.

	["IC Prolog II: A Language for Implementing Multi-Agent
	Systems", Y. Cosmadopoulos et al, in Tutorial and Workshop on
	Cooperating Knowledge Based Systems, Keele U 1992].

	(1994-11-01)

ICQ

	<chat> 1. Abbreviation for "I seek you".

	2. A proprietary {chat} system created by a couple of israeli
	guys, who later founded "mirabilis".  ICQ was sold to {America
	On-Line} around 1998.

	The name "ICQ" is a play on "cq", the radio signal for seeking
	conversation.

	{(http://icq.com/)}.

	[Confirm derivation?  TCP?  Summary?]

	(2000-04-03)

ICSI

	{International Computer Science Institute} at Berkeley, CA.

ICT

	1. <education> {Information and Communication Technology}.

	2. <testing> {In Circuit Test}.

	(2000-04-04)

ICW

	{Interactive CourseWare}

ICWS

	International {Core War} Society.

Id

	{Irvine Dataflow}

id

	<networking> The {country code} for Indonesia.

	(1999-01-27)

I-D

	{Internet-Draft}

ID10T

	<abuse> /I D ten T/ A grade of user problem somewhere between
	{PEBCAK} and {UBD}.  Considered friendlier than saying, "You
	called me down here to exit a modal dialog box for you?"

	(2003-06-07)

IDAMS

	A pictorial retrieval language implemented in {APL}.

	["Concept of the Diagnostic Image Workstation",
	D. Meyer-Ebrecht, Proc 2nd Conf on Picture Archiving (PACS
	II), SPIE 418, pp.180-183 (1983)].

IDD

	{international direct dialing}

IDE

	1. <storage> Integrated Drive Electronics, see {Advanced
	Technology Attachment}.

	2. <programming, tool> {integrated development environment}.

	3. <company> {Interactive Development Environments}.

	(2002-04-14)

IDEA

	1. <language> {Interactive Data Entry/Access}.

	2. <algorithm> {International Data Encryption Algorithm}.

	(1996-02-16)

IDEAL

	1. Ideal DEductive Applicative Language.  A language by Pier
	Bosco and Elio Giovannetti combining {Miranda} and {Prolog}.
	Function definitions can have a {guard} condition (introduced
	by ":-") which is a conjunction of equalities between
	arbitrary terms, including functions.  These guards are solved
	by normal {Prolog} {resolution} and {unification}.  It was
	originally compiled into {C-Prolog} but was eventually to be
	compiled to {K-leaf}.

	2. A numerical {constraint} language written by Van Wyk of
	{Stanford} in 1980 for {typesetting} graphics in documents.
	It was inspired partly by {Metafont} and is distributed as
	part of {Troff}.

	["A High-Level Language for Specifying Pictures", C.J. Van
	Wyk, ACM Trans Graphics 1(2):163-182 (Apr 1982)].

	(1994-12-15)

ideal

	<theory> In {domain theory}, a non-empty, {downward closed}
	subset which is also closed under binary {least upper bounds}.
	I.e. anything less than an element is also an element and the
	least upper bound of any two elements is also an element.

	(1997-09-26)

Idealized CSP

	<language> A programming language combining simply typed,
	{call-by-name} {procedures} with {asynchronous} communicating
	processes, assuming fair parallel execution.  Idealized CSP
	generalises {Anthony Hoare}'s original {CSP} and Kahn's
	networks of {deterministic} processes, and is closely related
	to {Parallel Algol} by Stephen Brookes of {CMU}.

	Procedures permit the encapsulation of common {protocols} and
	parallel programming idioms.  {Local variables} and local
	channel declarations provide a way to delimit the scope of
	interference between parallel agents, and allow a form of
	concurrent {object-oriented programming}.

	[Was this language also designed by Brookes?]

	(1997-09-26)

Idealized Instruction Set

	<language> (IIS) The {assembly language} for the {Flagship}
	parallel machine.

	["An Idealized Instruction Set for a Packet Rewrite Machine",
	J. Sargeant, Manchester U, 1988].

	(1994-11-07)

IDEF

	{ICAM} Definition.

IDEF0

	<modeling> A minor elaboration on {SADT}.

	{IDEF Home (http://www.idef.com/idef0.html)}.

	(2007-02-12)

idempotent

	1. A function f : D -> D is idempotent if

		f (f x) = f x  for all x in D.

	I.e. repeated applications have the same effect as one.  This
	can be extended to functions of more than one argument,
	e.g. Boolean & has x & x = x.  Any value in the {image} of an
	idempotent function is a {fixed point} of the function.

	2. This term can be used to describe {C} header files, which
	contain common definitions and declarations to be included by
	several source files.  If a header file is ever included twice
	during the same compilation (perhaps due to nested #include
	files), compilation errors can result unless the header file
	has protected itself against multiple inclusion; a header file
	so protected is said to be idempotent.

	3. The term can also be used to describe an initialisation
	subroutine that is arranged to perform some critical action
	exactly once, even if the routine is called several times.

	[{Jargon File}]

	(1995-01-11)

identifier

	1. <programming, operating system> A formal name used in
	{source code} to refer to a {variable}, {function},
	{procedure}, {package}, etc. or in an {operating system} to
	refer to a {process}, {user}, {group}, etc.

	Each different type of entity may have a different range of
	valid identifiers or "name space".  For example, an identifier
	in {C} is a series of one or more letters, digits and
	{underscores} that does not begin with a digit.  An identifier
	has a type, e.g. integer variable, {hash}, {variant} and a
	{scope}, e.g. {block}, {global}.

	(2006-05-29)

	2. <database> (id) A {primary key}.  The column containing a
	table's primary key is frequently named after the table with
	"_id" appended, e.g. "customer_id".

	(2006-05-29)

{IDF}

	<networking> {Intermediate Distribution Frame}.

I didn't change anything!

	An aggrieved cry often heard as bugs manifest during a
	regression test.  The {canonical} reply to this assertion is
	"Then it works just the same as it did before, doesn't it?"
	See also {one-line fix}.  This is also heard from applications
	programmers trying to blame an obvious applications problem on
	an unrelated systems software change, for example a
	divide-by-0 fault after terminals were added to a network.
	Usually, their statement is found to be false.  Upon close
	questioning, they will admit some major restructuring of the
	program that shouldn't have broken anything, in their opinion,
	but which actually {hosed} the code completely.

	[{Jargon File}]

idk

	<chat> I don't know.

	(2003-09-23)

IDL

	<language>

	1. {Interactive Data analysis Language} ({Xerox}).

	2. {Interface Description Language} (Snodgrass, UNC, Arizona).

	3. {Interface Definition Language} ({SunSoft}, {OMG}).

	4. {Interactive Data Language} ({Research Systems}).

	(2004-05-07)

IDMS

	1. <language, database> A pictorial {query language},
	an extension of {Sequel2}.

	["A Management System for an Integrated Database of Pictures
	and Alphanumeric Data", G.Y. Tang, Computer Graphics Image
	Processing 16:270-286 (1981)].

	2. <database> {Integrated Database Management System}.

	(2002-06-10)

IDMSX

	<database> {IDMS} extended.

	(1995-04-19)

Id Nouveau

	A {dataflow} language by Arvind <arvind@lcs.mit.edu> and
	R.S. Nikhil <nikhil@crl.dec.com>, {MIT} {LCS}, ca. 1986.

	Id Nouveau began as a {functional language}, added {streams},
	resource managers and {I-structures} ({mutable arrays}).
	Loops are {syntactic sugar} for {tail recursion}.

	See also {Id}.

	["Id Nouveau Reference Manual", R.S.  Nikhil, CS TR, MIT,
	March 1988].

	["Id (Version 90.1) Reference Manual", R.S. Nikhil, CSG Memo
	284-2, LCS MIT, July 15, 1991].

IDOL

	Icon-Derived Object Language.  An {object-oriented}
	{preprocessor} for {Icon}.

	{(ftp://src.doc.ic.ac.uk/pub/languages/icon/idol.tar.Z)}.

	["Programming in Idol: An Object Primer", C.L. Jeffery, U
	Arizona CS TR #90-10].

IDS/I

	Integrated Data Store.  An extension to {COBOL} involving
	"chains" (circular lists), for {General Electric} computers.

	["A General Purpose Programming System for Random Access
	Memories", C.W. Bachman et al, Proc FJCC 26(1), AFIPS (Fall
	1964)].

	[Sammet 1969, p. 376].

IDSN

	{ISDN}

id Software

	<games> Creators and publishers of the {DOOM} game for {IBM
	PCs}.

	E-mail: <help@idsoftware.com>.  Telephone: +1 800-ID-GAMES
	(Orders only).

IDSS

	{Intelligent Decision Support Systems}

IE

	{Internet Explorer}

ie

	<networking> The {country code} for Ireland.

	(1999-01-27)

IEC

	{International Electrotechnical Commission}

IEC 559

	{IEEE Floating Point Standard}

IEEE

	{Institute of Electrical and Electronics Engineers}

IEEE 1076

	The {IEEE} standard for {VHDL}.

IEEE 1394

	{High Performance Serial Bus}

IEEE 488

	<hardware, standard> (GPIB, General-Purpose Interface Bus,
	HP-IB, Hewlett-Packard Interface Bus) An 8-bit parallel {bus}
	common on {test equipment}.

	The IEEE-488 standard was proposed by {Hewlett-Packard} in the
	late 1970s and has undergone a couple of revisions.  HP
	documentation (including data sheets and manuals) calls it
	HP-IB, or Hewlett-Packard Interface Bus.

	It allows up to 15 intelligent devices to share a single bus,
	with the slowest device participating in the control and data
	transfer handshakes to drive the speed of the transaction.
	The maximum data rate is about one {megabit} per second.

	Other standards committees have adopted HP-IB (American
	Standards Institute with ANSI Standard MC 1.1 and
	International Electro-technical Commission with IEC
	Publication 625-1).

	To paraphrase from the HP 1989 Test & Measurement Catalog (the
	50th Anniversary version): The HP-IB has a party-line
	structure wherein all devices on the bus are connected in
	parallel.  The 16 signal lines within the passive
	interconnecting HP-IB (IEEE-488) cable are grouped into three
	clusters according to their functions (Data Bus, Data Byte
	Transfer Control Bus, General Interface Management Bus).

	In June 1987 the IEEE approved a new standard for programmable
	instruments called IEEE Std. 488.2-1987 Codes, Formats,
	Protocols, and Common Commands.  It works with the IEEE
	Standard Digital Interface for Programmable Instrumentation,
	IEEE 488-1978 (now 488.1).  HP-IB is Hewlett-Packard's
	implementation of IEEE 488.1.

	(1996-05-10)

IEEE 754

	{IEEE Floating Point Standard}

IEEE 802

	<networking, standard> The {IEEE} standards for {local area
	networks}.  The {spanning tree algorithm} is defined in {IEEE
	802.1} (under consideration), {Logical Link Control} (LLC, the
	upper portion of the {data link layer}) in {IEEE 802.2},
	{Ethernet} in {IEEE 802.3}, {Token Bus} in IEEE 802.4 and IBM
	{Token Ring} in {IEEE 802.5}.

	The equivalent {ISO} {standard} is IS 8802.

	(1995-02-15)

IEEE 802.1

	<networking, standard> An {IEEE} working group concerned with
	the {IEEE 802} family of {networking} {standards},
	specifically {bridging} and {network management}.

	The {spanning tree protocol} is standardised as 802.1D.

	(2010-09-26)

IEEE 802.2

	(Networks) The {IEEE} standard defining {Logical Link Control}
	(LLC, the upper portion of the {data link layer}) for {local
	area networks}.

	(1995-02-14)

IEEE 802.3

	<networking> The {IEEE} standard defining the {hardware layer}
	and {transport layer} of (a varient of) {Ethernet}.  The
	maximum {segment} length is 500m and the maximum total length
	is 2.5km.  The maximum number of hosts is 1024.

	The maximum {packet} size is 1518 bytes.  If the upper layer
	{protocol} submits a {PDU} less than 64 bytes, 802.3 will pad
	the {LLC Info} field to achieve the minimum 64 bytes.

	Although it is not technically correct, the terms "{packet}"
	and frame are used interchangeably.  The {ISO}/{IEC} 8802-3
	{ANSI}/{IEEE} 802.3 Standards refer to {MAC} sub-layer
	{frames} consisting of the Destination Address, Source
	Address, Length, LLC Info., and {FCS} fields.  The {Preamble}
	and {SFD} are (usually) considered a header to the {MAC}
	Frame.  This header plus the MAC Frame constitute a "Packet".

	(1995-07-09)

IEEE 802.3u

	<networking, standard> The {IEEE} committee working on
	standards for {Fast Ethernet}.

	(1998-06-30)

IEEE 802.3z

	<networking, standard> The {IEEE} committee working on
	standards for {Gigabit Ethernet}.

	(1998-06-30)

IEEE 802.4

	<networking, standard> The {IEEE} {Token Bus} {standard}.

	(1996-12-12)

IEEE 802.5

	The {IEEE} {token ring} {standard}.  The most common type of
	token ring.

	(1994-10-27)

IEEE Computer Society

	<body> The society of the {IEEE} which publishes the journal
	"Computer".

	{(http://computer.org/)}.

	(1995-03-10)

IEEE Floating Point Standard

	<standard, mathematics> (IEEE 754) "{IEEE} Standard for Binary
	{Floating-Point} Arithmetic (ANSI/IEEE Std 754-1985)" or {IEC}
	559: "Binary floating-point arithmetic for microprocessor
	systems".  A {standard}, used by many {CPUs} and {FPUs}, which
	defines formats for representing floating-point numbers;
	representations of special values (e.g. {infinity}, very small
	values, {NaN}); five {exceptions}, when they occur, and what
	happens when they do occur; four {rounding modes}; and a set
	of floating-point operations that will work identically on any
	conforming system.

	IEEE 754 specifies formats for representing floating-point
	values: single-precision (32-bit) is required,
	double-precision (64-bit) is optional.  The standard also
	mentions that some implementations may include single-extended
	precision (80-bit) and double-extended precision (128-bit)
	formats.

	[On-line document?]

	(2003-06-17)

IEEE Standard 1149.1

	{Joint Test Action Group}

IEF

	{Advantage Gen}

IEN

	{Internet Experiment Note}

IEPG

	{Internet Engineering and Planning Group}

IESG

	{Internet Engineering Steering Group}

IETF

	{Internet Engineering Task Force}

IF1

	<language> A graph language used as an intermediate language
	for {dataflow} hardware.  Used by the {OSC} {SISAL} compiler.

	["The Manchester Prototype Dataflow Computer", J.R. Gurd et
	al, CACM 28(1):34-52, Jan 1985].

	(1996-01-05)

IF2

	<language> S graph language used by the {OSC} {SISAL}
	compiler, a superset of {IF1}.

	["IF2: An Applicative Language Intermediate Form with Explicit
	Memory Management", M. L. Welcome et al, UC-LLNL, Nov 1986].

	(1996-01-05)

IFAC

	International Federation of Automatic Control, involved in
	informatics related to control systems.

IFC

	{Internet Foundation Classes}

ifdef out

	/if'def owt/ v. Synonym for {condition out}, specific
	to {C}.

	[{Jargon File}]

IFDL

	<language> Independent Form Description Language.

	{DEC}'s language for describing form-based human interfaces in
	{DECforms}.

	(1995-04-21)

IFF

	1. <file format> {Interchange File Format}.

	2. Identify friend or foe (radar).

iff

	<mathematics, logic> if and only if, i.e. necessary and
	sufficient.  For example, two figures are {congruent} iff one
	can be placed over the other so that they coincide.

	(2002-12-28)

IFIP

	1. {International Federation for Information Processing}.

	2. A subset of {ALGOL}.

	[Sammet 1969, p. 180].

IFP

	{Illinois Functional Programming}

IFS

	1. <operating system> {internal field separators}.

	2. <operating system> {Installable File System}.

	3. <graphics> {Iterated Function System}.

	(1999-04-07)

IFX

	["Type Reconstruction with First-Class Polymorphic Values",
	J. O'Toole et al, SIGPLAN Notices 24(7):207-217 (Jul 1989)].

If you want X, you know where to find it.

	<exclamation> There is a legend that {Dennis Ritchie},
	inventor of {C}, once responded to demands for features
	resembling those of what at the time was a much more popular
	language by observing "If you want {PL/I}, you know where to
	find it."  Ever since, this has been hackish standard form for
	fending off requests to alter a new design to mimic some older
	(and, by implication, inferior and {baroque}) one.  The case X
	= {Pascal} manifests semi-regularly on {Usenet}'s
	{news:comp.lang.c} {newsgroup}.  Indeed, the case X = X has
	been reported in discussions of graphics software (see {X
	Window System}).

	[{Jargon File}]

	(1995-10-25)

IGC

	{Institute for Global Communications}

IGES

	Initial Graphics Exchange Specification: an ASME/ANSI standard
	for the exchange of CAD data.

IGL

	Interactive Graphic Language.  Used primarily by Physics Dept
	at Brooklyn Poly, uses numerical methods on vectors to
	approximate continuous function problems that don't have
	closed form solutions.

	[Is this being confused with Tektronix's graphics library by
	the same name?]

IGMP

	{Internet Group Management Protocol}

IGP

	{Interior Gateway Protocol}

IGPL

	{Interest Group in Pure and Applied Logics}

IGS

	{Internet Go Server}.

IGU

	<chat> I Give Up.  Often found appended to documents, e-mail,
	programs that don't work, etc.

	(1999-09-30)

IHS

	{Integrated Home System}

IHV

	{Independent Hardware Vendor}

IIcx

	{Apple IIcx}

IIDMS/R

	{Integrated database management system}

IIL

	{Integrated Injection Logic}

IINREN

	{Interagency Interim National Research and Education Network}

IIOP

	{Internet Inter-ORB Protocol}

IIR

	{Infinite Impulse Response}

IIRC

	<chat> If I recall/remember correctly.

	(1996-11-28)

IIS

	1. <World-Wide Web> {Internet Information Server}.

	2. <language> {Idealized Instruction Set}.

	(1999-08-26)

IIT

	{Integrated Information Technology}

IITF

	{Information Infrastructure Task Force}

IITRAN

	Simple PL/I-like language for students, on IBM 360.

	["The IITRAN Programming Language", R. Dewar et al, CACM
	12(10):569-575 (Oct 1969)].

il

	<networking> The {country code} for Israel.

	(1999-01-27)

ILBM

	{interleaved bit-map}

ILF

	{Independent Logical File}

ILIAD

	<language, real-time> A {real-time} language.

	["On the Design of a Language for Programming Real-Time
	Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng
	SE-5(3):248-255, May 1979].

	(2000-09-03)

I-Link

	<bus, standard> {Sony}'s name for {High Performance Serial
	Bus}.

	(2000-09-03)

ILISP

	A somewhat {LISP Machine}-like interface to {lisp listeners}
	from {Emacs}.

	Version 5.0 Emacs interface by ? Ivan Vazquez
	<ivan@haldane.bu.edu>.

	{(ftp://haldane.bu.edu/)} (128.197.54.25).  E-mail:
	<ilisp-bug@darwin.bu.edu>, <ilisp-bugs@darwin.bu.edu>,
	<ilisp-request@darwin.bu.edu> (discussion).

	(1993-06-28)

ill-behaved

	1. [numerical analysis] Said of an {algorithm} or
	computational method that tends to blow up because of
	accumulated roundoff error or poor convergence properties.

	2. Software that bypasses the defined {operating system}
	interfaces to do things (like screen, keyboard, and disk I/O)
	itself, often in a way that depends on the hardware of the
	machine it is running on or which is nonportable or
	incompatible with other pieces of software.

	In the {IBM PC}/{mess-dos} world, there is a folk theorem
	(nearly true) to the effect that (owing to gross inadequacies
	and performance penalties in the OS interface) all interesting
	applications are ill-behaved.

	See also {bare metal}. Opposite: {well-behaved}, compare
	{PC-ism}.

	[{Jargon File}]

ILLIAC

	Assembly language for the ILLIAC computer.  Listed in CACM
	2(5):16, (May 1959) p.16.

Illiac IV

	<computer> One of the most infamous {supercomputers} ever.  It
	used early ideas on {SIMD} (single instruction stream,
	multiple data streams).  The project started in 1965, it used
	64 processors and a 13MHz clock.  In 1976 it ran its first
	sucessfull application.  It had 1MB memory (64x16KB).

	Its actual performance was 15 MFLOPS, it was estimated in
	initial predictions to be 1000 MFLOPS.  It totally failed as a
	computer, only a quarter of the fully planned machine was ever
	built, costs escalated from the $8 million estimated in 1966
	to $31 million by 1972, and the computer took three more years
	of enginering before it was operational.

	The only good it did was to push research forward a bit,
	leading way for machines such as the {Thinking Machines}
	{CM-1} and CM-2.

	(1995-04-28)

Illinois Functional Programming

	<language> (IFP) An {interpreter} written in {portable} {C} by
	Arch D. Robison for a variant of {Backus}'s {FP} with syntax
	like {ALGOL} or {Modula-2}.  IFP Runs under {Unix}, {CTSS}
	({Cray}) and {MS-DOS}.

	Version: 0.5.

	{(ftp://a.cs.uiuc.edu/pub/ifp)}.  Posted to comp.sources.unix
	volume 10.

	["The Illinois Functional Programming Interpreter",
	A.D. Robison, Proc 1987 SIGPLAN Conf on Interpreters and
	Interpretive Techniques (June 1987), pp. 64-73].

	["Illinois Functional Programming: A Tutorial", A.D. Robison,
	BYTE Feb 1987, pp. 115-125].

	(1994-10-24)

ILOC

	Rice U.  Register-oriented intermediate language targeted to
	PC/RT.  Source languages include {Fortran} and {Russell}.

Ilog Solver

	A commercial {constraint} programming system.

	(1994-11-15)

iMac

	<computer> One of the trademark/brand names that {Apple Inc}
	use for their {Mac} family of {personal computers}.

	(2009-05-05)

image

	1. <data, graphics> Data representing a two-dimensional scene.
	A digital image is composed of {pixels} arranged in a
	rectangular array with a certain height and width.  Each pixel
	may consist of one or more {bits} of information, representing
	the brightness of the image at that point and possibly
	including colour information encoded as {RGB} triples.

	{Images} are usually taken from the real world via a {digital
	camera}, {frame grabber}, or {scanner}; or they may be
	generated by computer, e.g. by {ray tracing} software.

	See also {image formats}, {image processing}.

	(1994-10-21)

	2. <mathematics> The image (or range) of a {function} is the
	set of values obtained by applying the function to all
	elements of its {domain}.  So, if f : D -> C then the set f(D)
	= \{ f(d) | d in D \} is the image of D under f.  The image is
	a subset of C, the {codomain}.

	(2000-01-19)

image formats

	<graphics, file format> There are many formats used to store
	{images} in files.  {GIF}, {TIFF} and {JPEG} are very common.
	Others are {BIFF}, {bmp}, {Clear}, {FITS}, {IFF}, {NFF},
	{OFF}, {PCX}, {PNG}, {TGA}, {XBM}.

	Some of these are documented on-line at the following sites:

	{The Graphics File Format Page
	(http://dcs.ed.ac.uk/~mxr/gfx/)}.
	{The NCSA file formats archive
	(ftp://ftp.ncsa.uiuc.edu/misc/file.formats/graphics.formats)}.
	{The Avalon repository
	(ftp://avalon.viewpoint.com/pub/format_specs)}.

	[Others?]

	(1997-08-07)

image map

	<World-Wide Web> An image in an {HTML} document with "hot
	spots" which when clicked on in a suitable {browser}, act as
	{anchors} or links to other information.  For example, an
	image of a map of the world might provide links to resources
	related to different countries.  Clicking on a country would
	take the user to the relevant information.

	[Documentation URL?]

	(1995-12-05)

image processing

	<graphics> Computer manipulation of {images}.  Some of the
	many {algorithms} used in image processing include
	{convolution} (on which many others are based), {FFT}, {DCT},
	{thinning} (or {skeletonisation}), {edge detection} and
	{contrast enhancement}.  These are usually implemented in
	{software} but may also use special purpose {hardware} for
	speed.

	Image processing contrasts with {computer graphics}, which is
	usually more concerned with the generation of artificial
	images, and {visualisation}, which attempts to understand
	(real-world) data by displaying it as an artificial image
	(e.g. a graph).  Image processing is used in {image
	recognition} and {computer vision}.

	{Silicon Graphics} manufacture {workstations} which are often
	used for image processing.  There are a few programming
	languages designed for image processing, e.g. {CELIP}, {VPL}.

	See also {Pilot European Image Processing Archive}.

	{Usenet} newsgroup: {news:sci.image.processing}.

	[Other algorithms, languages?  FAQ?]

	(1995-04-12)

image recognition

	<graphics, artificial intelligence> The identification of
	objects in an {image}.  This process would probably start with
	{image processing} techniques such as {noise removal},
	followed by (low-level) {feature extraction} to locate lines,
	regions and possibly areas with certain textures.

	The clever bit is to interpret collections of these shapes as
	single objects, e.g. cars on a road, boxes on a conveyor belt
	or cancerous cells on a microscope slide.  One reason this is
	an {AI} problem is that an object can appear very different
	when viewed from different angles or under different lighting.
	Another problem is deciding what features belong to what
	object and which are background or shadows etc.  The human
	visual system performs these tasks mostly unconsciously but a
	computer requires skillful programming and lots of processing
	power to approach human performance.

	(1997-07-20)

imaging

	<graphics> The production of graphic {images}, either from a
	video camera or from digitally generated data (see
	{visualisation}), or the recording of such images on
	microfilm, videotape or laser disk.

	See also {scanner}.

	(1997-07-20)

Imago Europe plc

	A UK {Internet} provider.  There sevice is called {Imago
	On-line}.  E-mail: <info@imago.com>.

Imago On-line

	An {Internet} {electronic mail} and {news} service in the
	United Kingdom provided by {Imago Europe} plc.

	A one year subscription to the service costs just seventy five
	pounds plus VAT and offers {dial-up} access with a {graphical
	user interface} for users of {Macintosh} and {Microsoft
	Windows} {PCs} and the {Apple Newton} {MessagePad} {PDA}
	family.

imake

	A tool which generates {Makefiles} from a template, a set of
	{cpp} {macros}, and a per-directory input file called an
	Imakefile.  This allows machine dependencies (such has
	compiler options, alternate command names, and special make
	rules) to be kept separate from the descriptions of the
	various items to be built.

	imake is distributed with, and used extensively by, the {X
	Window System}.

	(1995-02-21)

IMAO

	{IMHO}

IMAP

	{Internet Message Access Protocol}

imc

	<language> A {REXX} {interpreter} for {SunOS}.

	Current version 1.3 [?].

	{(ftp://rexx.uwaterloo.ca/pub/freerexx/imc/)}.

	(2000-11-07)

IMD

	{intermodulation distortion}

IMHO

	<chat> (From SF fandom via {Usenet}) In My Humble Opinion.
	Also seen in variant forms such as IMO, IMNSHO (In My
	Not-So-Humble Opinion) and IMAO (In My Arrogant Opinion).

	[{Jargon File}]

	(1998-09-24)

IML

	{Initial Microprogram Load}

immediate version

	{child version}

Imminent Death Of The Net Predicted!

	<messaging> Since {Usenet} first got off the ground in
	1980-81, it has grown exponentially, approximately doubling in
	size every year.  On the other hand, most people feel the
	{signal-to-noise ratio} of {Usenet} has dropped steadily.
	These trends led, as far back as mid-1983, to predictions of
	the imminent collapse (or death) of the net.  Ten years and
	numerous doublings later, enough of these gloomy
	prognostications have been confounded that the phrase
	"Imminent Death Of The Net Predicted!" has become a running
	joke, hauled out any time someone grumbles about the {S/N
	ratio} or the huge and steadily increasing volume, or the
	possible loss of a key node or link, or the potential for
	lawsuits when ignoramuses post copyrighted material etc.

	[{Jargon File}]

	(1998-09-24)

IMNSHO

	{IMHO}

IMO

	{IMHO}

IMP

	1. <language> {IMProved Mercury autocode}.

	2. <language> An extensible dialect of {ALGOL 60}, for {CDC
	1604}.

	["Experience with an Extensible Language", Edgar T. Irons,
	CACM 13(1):31-39, Jan 1970].

	3. <language> {Interpretive Menu Processor}.

	4. <language> {IMPlementation language}.

	5. <networking> {Interface Message Processor}.

	(1996-04-07)

impact printer

	<printer> The earlier, noisier kind of {printer} where part of
	the mechanism comes into contact with the paper.  The term
	would only be only used in contrast to "{non-impact printer}".
	Examples include {line printer}, {daisy wheel printer}, {golf
	ball printer}, {dot matrix printer}, {Braille printer}.

	(1998-10-13)

impedance

	<electronics, physics> Opposition to flow of alternating
	current.  Impedance consists of {resistance} plus {reactance}
	(capacitive or inductive).  Measured in {Ohms}.

	(2003-12-02)

imperative

	{imperative language}

imperative language

	<language> Any {programming language} that specifies explicit
	manipulation of the state of the computer system, not to be
	confused with a {procedural language}, which specifies an
	explicit sequence of steps to perform.

	An example of an imperative (but non-procedural) language is a
	{data manipulation language} for a {relational database
	management system}.  This specifies changes to the database
	but does not necessarily require anyone to specify a sequence
	of steps.

	Both contrast with {declarative languages}, which specify
	neither explicit state manipulation nor a sequence of steps.

	(2007-10-02)

imperative programming

	{imperative language}

Imperial College of Science, Technology and Medicine

	<education> (IC, ICST&M) One of the colleges of London
	University.  The Department of Computing is the home of
	{FOLDOC}.

	{IC Home (http://ic.ac.uk/)}.

	(2005-05-09)

Imperial Software Technology

	<company> A {software engineering} company which emerged from
	{Imperial College} in about 1982.  It enjoys a world-wide
	reputation for technical excellence as a software product and
	technology provider in the Open Systems market.  Its flagship
	product is {X-Designer}, the award-winning {graphical user
	interface builder}.  It also has considerable expertise in the
	{Z} language and {Formal Methods}.

	{(http://ist.co.uk/)}.

	(1995-11-23)

IMPlementation language

	<language> (IMP) An extension of {B} with {floating-point}
	operations, developed by W. Davidsen at {General Electric} in
	1970 for the {GE 600}.  It was also {cross-compiled} to {VAX}
	and {Intel 8080}.

	(1996-04-07)

implication

	{implies}

implicit parallelism

	<parallel> A feature of a programming language for a {parallel
	processing} system which decides automatically which parts to
	run in parallel.

	The best way of providing implicit parallelism is still (1995)
	an active research topic.  The problem is to generate the
	right number of parallel tasks of the right size (or
	"{granularity}").  Too many tasks and the system gets bogged
	down in house-keeping, or memory for waiting tasks runs out,
	too few tasks and processors are left idle.

	The best performance is usually achieved with {explicit
	parallelism} where the programmer can annotate his program to
	indicate which parts should be executed as independent
	parallel tasks.

	(1995-02-16)

implicit type conversion

	<programming> (Or "coercion") The abilty of some {compilers}
	to automatically insert {type} conversion {functions} where an
	expression of one type is used in a context where another type
	is expected.

	A common example is coercion of {integers} to {reals} so that
	an expression like sin(1) is compiled as sin(integerToReal(1))
	where sin is of type Real -> Real.

	A coercion is usually performed automatically by the compiler
	whereas a {cast} is an {explicit type conversion} inserted by
	the programmer.

	See also {subtype}.

	(1997-07-28)

implies

	<logic> (=> or a thin right arrow) A binary {Boolean} function
	and {logical connective}.  A => B is a true implication unless
	A is true and B is false.  The {truth table} is

		A B | A => B
		----+-------
		F F |   T
		F T |   T
		T F |   F
		T T |   T

	It is surprising at first that A => B is always true if A is
	false, but if X => Y then we would expect that (X & Z) => Y
	for any Z.

	If A is actually an expression X & Y then the implication is
	called a {syllogism}.

	(2009-10-28)

imply

	{implies}

import

	<data> To read data that is not in the native format of the
	application.  For example, a {web browser} will have its own
	way of storing {bookmarks} but it will usually provide a
	function to import bookmarks from {Internet Explorer}.  The
	alternative is to provide an independent external conversion
	utility but this is usually less convenient for the user.

	(2004-11-15)

imprecise probability

	<probability> A {probability} that is represented as an
	interval (as opposed to a single number) included in [0,1].

	(2001-02-21)

IMProved Mercury autocode

	<language> (IMP) A version of {Autocode} used to program the
	{Edinburgh Multi Access System} (EMAS), one of the first
	{operating systems} written in a {high-level language},
	apparently predating {Unix}.

	Luis Damas' {Prolog} {interpreter} in IMP for EMAS led to
	{C-Prolog}.

	[Papers in J. {British Computer Society}].

	(1996-04-07)

IMR

	{Internet Monthly Report}

IMS

	{Information Management System}

IMS 6100

	{Intersil 6100}

Imsai

	<company> One of the companies that made very early
	{microprocessor} systems.

	[Where?  When?  Who?  What?]

	(1995-05-12)

IMS/Data Base

	<database> (IMS/DB) A hierarchical high performance {database}
	for {IBM} {mainframes}, part of {IMS}.  IMS/DB is implemented
	on top of {VSAM} and uses its underlying data structures.

	(1999-01-11)

IMS/Data Communications

	<database> (IMS/DC) The {teleprocessing monitor}/{transaction
	processing} sytem in {IMS} from {IBM}.

	(1999-01-11)

IMSE

	{Integrated Modelling Support Environment}

IMTC

	{International Multimedia Teleconferencing Consortium}

in

	1. <networking> The {country code} for India.

	(1999-01-27)

	2. The typical type or "mode" of {function} {parameter} that
	passes information in one direction - from the caller to the
	function.  Other modes are {out} and {inout}.

	(2010-01-19)

Ina Jo

	<specification, language> [FDM?]

	["The Ina Jo Specification Language Reference Manual", J.
	Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985].

	(2000-02-24)

InARP

	{Inverse Address Resolution Protocol}

in-band signaling

	{in-band signalling}

in-band signalling

	<communications> (Or CAS, channel associated signaling)
	Transmission of control signals in the same channel as data.
	This is commonly used in the {Public Switched Telephone
	Network} where the same pair of wires carry both voice and
	control signals (e.g. dialling, ringing).  Another example is
	the use on a computer {serial line} of Control-S and Control-Q
	characters for {flow control} as opposed to {hardware flow
	control} which would be out-of-band signalling.

	In digital communications, in-band signalling often uses
	"bit-robbing" where, for example, one {bit} in each {frame} is
	used for signalling instead of data.  This is the reason why a
	{D1} channel in the T-carrier system can only carry 56 Kbps of
	usable data instead of the 64 Kbps carried by the {D0} channel
	in the E-carrier system.

	(2007-01-26)

inc

	/ink/ increment, i.e. increase by one.  Especially used by
	{assembly} programmers, as many assembly languages have an
	"inc" {mnemonic}.

	Antonym: {dec}.

	[{Jargon File}]

incantation

	Any particularly arbitrary or obscure command that one must
	mutter at a system to attain a desired result.  Not used of
	passwords or other explicit security features.  Especially
	used of tricks that are so poorly documented that they must be
	learned from a {wizard}.  "This compiler normally locates
	initialised data in the data segment, but if you {mutter} the
	right incantation they will be forced into text space."

include

	[{Usenet}] 1. To duplicate a portion (or whole) of another's
	message (typically with attribution to the source) in a reply
	or followup, for clarifying the context of one's response.
	See the discussion of inclusion styles under "Hacker Writing
	Style".

	2. [{C}] "#include <disclaimer.h>" has appeared in {sig
	blocks} to refer to a notional "standard {disclaimer} file".

	[{Jargon File}]

include war

	Excessive multi-leveled including within a discussion
	{thread}, a practice that tends to annoy readers.  In a forum
	with high-traffic newsgroups, such as {Usenet}, this can lead
	to {flames} and the urge to start a {kill file}.

inclusive

	<theory> In {domain theory}, a {predicate} P : D -> Bool is
	inclusive iff

		For any {chain} C, a subset of D, and
		for all c in C,
		P(c) => P(lub C)

	In other words, if the predicate holds for all elements of an
	increasing sequence then it holds for their {least upper
	bound}.

	("lub is written in {LaTeX} as {\sqcup}).

	(1995-02-03)

incomparable

	<mathematics> Two elements a, b of a set are incomparable
	under some relation <= if neither a <= b, nor b <= a.

	(1995-09-21)

incremental analysis

	<testing> Partial analysis of an incomplete product to allow
	early feedback on its development.

	(1996-05-22)

incremental backup

	<operating system> A kind of {backup} that copies all files
	which have changed since the date of the previous backup.  The
	first backup of a file system should include all files - a
	"{full backup}".  Call this level 0.  The next backup could
	also be a full level 0 backup but it is usually much quicker
	to do a level 1 backup which will include only those files
	which have changed since the level 0 backup.  Together the
	level 0 and level 1 backups will include the latest version of
	every file.  Level 1 backups can be made until, say, the
	backup tape is nearly full, after which we can switch to level
	2.  Each level includes those files which have changed since
	the last backup at a lower level.  The more levels you use,
	the longer it will take to restore the latest version of a
	file (or all files) if you don't know when it was last
	modified.

	Compare {differential backup}.

	(2004-03-01)

incremental constraint solver

	A system in which a {constraint solver} is given {constraints}
	one at a time by an {inference engine} (as is found in
	{Prolog}).  The solver adds the new constraint to an initially
	empty set of solved constraints.  If the new constraint is
	consistent with the solved constraints it will be added to the
	set.  If it was inconsistent, the inference engine
	{backtracks}.  This is the basis of {Constraint Logic
	Programming}.

	(1994-11-01)

Incremental Prototyping Technology for Embedded Realtime Systems

	<project> An {Esprit} project.

	[Partners?  Results?]

	(1998-11-27)

[incr Tcl]

	<language> An extension of {Tcl} that adds {classes} and
	{inheritence}.

	The name is a pun on {C++} - an {object-oriented} extension of
	{C} - [incr variable] is the Tcl {syntax} for adding one to a
	variable.

	[Origin?  Availability?]

	(1998-11-27)

indent

	{indentation}

indentation

	<document, text, programming> Space and/or {tab} characters
	added at the beginning of one or more consecutive lines to
	indicate the structure of a piece of text, e.g.  indenting a
	passage to make it stand out.

	Indentation is important in {source code} for readability.
	See {indent style}.  Some programming languages go further and
	use indentation as the main method to represent block
	structure to the {compiler} or {interpreter}, see {off-side
	rule}.

	(2008-10-23)

indent style

	<programming> Rules for formatting {code} to make it easier to
	visually match up the beginning and end of a {block} of
	statements, particularly one controlled by a {control
	statement} such as "if", "else", "for", "while", "do".  This
	becomes important with large, nested blocks of code.

	The {C} programming language's four indent styles vary in the
	placement of "{" and "}" with respect to the statement(s) they
	enclose and the controlling statement.

	"Allman style" is named after {Eric Allman}, a {Berkeley} {hacker}
	who wrote many {BSD} {utilities} in it.  It is sometimes called
	"BSD style".  It resembles normal indent style in {Pascal} and
	{ALGOL}.  Basic indent per level is eight or four spaces.  This is
	the only indent style to clearly associate the controlling
	statement and the beginning and the end of the block by aligning
	them vertically, which probably explains its widespread adoption.

	 if (cond)
	 {
		<body>
	 }

	"K&R style" is named after {Kernighan} & {Ritchie} because the
	examples in {K&R} are formatted this way.  It is also called
	"kernel style" because the {Unix} {kernel} was written in it, or
	"{One True Brace Style}" (1TBS) by its partisans, or {Egyptian
	brackets}.  The basic indent shown here is eight spaces (or one
	tab) per level; four spaces are much less common.  This style was
	popular when programmers worked on small displays (or paper!)
	becuase it saves vertical space but the opening brace is easy to
	miss at the end of a long condition in an "if" or "while"
	statement.

	 if (cond) {
		<body>
	 }

	"Whitesmiths style" - popularised by the examples that came
	with {Whitesmiths C}, an early commercial C compiler.  Basic
	indent per level shown here is eight spaces, but four spaces
	are occasionally seen.

	 if (cond)
		{
		<body>
		}

	"GNU style" - Used throughout {GNU} {Emacs} and the {Free
	Software Foundation} code, and just about nowhere else.
	Indents are always four spaces per level, with "{" and "}"
	halfway between the outer and inner indent levels.

	 if (cond)
	  {
	    <body>
	  }

	Many related languages such as {Perl} offer the same choices while
	others, following {B}, eschew braces and rely entirely on relative
	indentation to express block structure.  In {Python}, braces can
	be used to override indentation.

	[{Jargon File}]

	(2013-05-14)

Independent Computing Architecture

	<protocol> (ICA) {Citrix}'s {proprietary} {protocol} that
	allows {client} {desktop computers} to run {applications} on
	{application servers}.  Originally used between {Windows}
	systems, ICA is now also suported on {Unix} and {Macintosh}
	desktops and servers as well as some {thin client} hardware.

	(2012-07-08)

Independent Logical File

	<database> (ILF) One kind of {dynamic database management
	system}.

	Examples of ILF databases are {INQUIRE}, {ADABAS}, {NOMAD},
	{FOCUS} and {DATACOM}.

	[More details?]

	(1998-10-07)

Independent Verification and Validation

	<testing> (IV&V) The verification and validation of a software
	product by an organisation that is both technically and
	managerially separate from the organisation responsible for
	developing the product.

	(1996-12-27)

index

	(Plural "indices" or "indexes")

	1. <programming> A number used to select an element of a list,
	vector, {array} or other sequence.  Such indices are nearly
	always non-negative integers but see {associative array}.

	2. <database> See {inverted index}.  [Other kinds?]

	3. <World-Wide Web> A {search engine}.

	4. <World-Wide Web> A {subject index}.

	[{Jargon File}]

	(1997-04-09)

Index Data

	<company> A Danish company who have released a lot of {ANSI
	Z39.50} related source under {GPL}.

	{(http://130.228.5.168)}.

	(1996-07-22)

Indexed Sequential Access Method

	<database> (ISAM) An {IBM} file management system allowing
	records to be accessed either sequentially (in the order they
	were entered) or via an index.  Each index orders the records
	on a different key.

	ISAM was followed by VSAM ({Virtual Storage Access Method})
	and pre-dated {relational databases}.

	(2003-07-13)

index.htm

	{index.html}

index.html

	<World-Wide Web> The default {HTML} page served by most {web
	servers} in response to a request for a {directory}.  The name
	suggests that the page will contain some kind of index of the
	contents of the requested directory.

	For example, if the content for {web site} example.com is stored
	in the {file system} in directory /var/www/example.com, then a
	request for http://example.com/products would return the contents
	of file /var/www/example.com/products/index.html.

	A {web site}'s {home page} follows the same logic.  For the above
	example, a request for http://example.com/ would return the
	contents of /var/www/example.com/index.html.

	It is often possible, and occasionally necessary, to specify
	index.html explicitly in the URL, as in
	http://example.com/index.html, though modern practice is to omit
	it.

	If you're looking for {FOLDOC's home page (http://foldoc.org/)} at
	http://foldoc.org/index.html, then you followed an out-of-date
	link.  Please update your bookmark to http://foldoc.org/ or inform
	the owner of the site you came from.

	{Microsoft}, of course, has to be different and uses default.htm
	instead of index.html.  The variant index.htm is a throw-back to
	the days when some file systems only allowed three-character file
	name extensions.

	(2014-06-22)

index register

	<processor> A {register} found in some {CPUs}, whose contents
	can be added to the address {operand} to give the {effective
	address}.  Incrementing the index register then allows the
	program to access the next location in memory and so on,
	making it very useful for working with {arrays} or blocks of
	memory.

	Index registers first appeared around April 1949 in the
	{Manchester Mark I}.  The Mark I's index register's contents
	were simply added to the entire instruction, thus potentially
	changing the {opcode} (see {The story of Mel})!

	(2006-09-20)

indices

	<spelling> A plural of "{index}".

indirect address

	<processor> An {addressing mode} found in many processors'
	{instruction sets} where the instruction contains the address
	of a memory location which contains the address of the operand
	(the "{effective address}") or specifies a {register} which
	contains the effective address.  In the first case
	(indirection via memory), accessing the operand requires two
	memory accesses - one to fetch the effective address and
	another to read or write the actual operand.  Register
	indirect addressing requires only one memory access.

	An indirect address may be indicated in {assembly language} by
	an operand in parentheses, e.g. in {Motorola 68000} assembly

		MOV D0,(A0)

	writes the contents of register D0 to the location pointed to
	by the address in register A0.

	Indirect addressing is often combined with pre- or post-
	increment or decrement addressing, allowing the address of the
	operand to be increased or decreased by one (or some specified
	number) either before or after using it.

	(1994-11-07)

indirect addressing

	{indirect address}

indirection

	<programming> Manipulating data via its address.  Indirection
	is a powerful and general programming technique.  It can be
	used for example to process data stored in a sequence of
	consecutive memory locations by maintaining a {pointer} to the
	current item and incrementing it to point to the next item.

	Indirection is supported at the {machine language} level by
	{indirect addressing}.  Many processor and {operating system}
	architectures use {vectors} which are also an instance of
	indirection, being locations which hold the address of a
	routine to handle a particular event.  The event handler can
	be changed simply by pointing the vector at a new piece of
	code.

	{C} includes operators "&" which returns the address of a
	{variable} and its inverse "*" which returns the variable at a
	given address.

	(1997-02-06)

indirect jump

	<programming> A {jump} via an {indirect address}, i.e. the
	jump {instruction} contains the address of a memory location
	that contains the address of the next instruction to execute.

	The location containing the address to jump to is sometimes
	called a {vector}.

	Indirect jumps make normal code hard to understand because the
	jump target is a run-time property of the program that depends
	on the execution history.  They are useful for, e.g. allowing
	user code to replace operating system code or setting up
	{event handlers}.

	(2010-01-01)

induction

	<logic> A method of proving statements about {well-ordered
	sets}.  If S is a well-ordered set with ordering "<", and we
	want to show that a property P holds for every element of S,
	it is sufficient to show that, for all s in S,

		IF for all t in S, t < s => P(t) THEN P(s)

	I.e. if P holds for anything less than s then it holds for s.
	In this case we say P is proved by induction.

	The most common instance of proof by induction is induction
	over the {natural numbers} where we prove that some property
	holds for n=0 and that if it holds for n, it holds for n+1.

	(In fact it is sufficient for "<" to be a {well-founded}
	{partial order} on S, not necessarily a well-ordering of S.)

	(1999-12-09)

inductive inference

	{grammatical inference}

inductive relation

	A relation R between {domains} D and E is inductive if for all
	{chains} {d1 .. dn} in D and {e1 .. en} in E,

		For all i, di R ei  =>  lub(d) R lub(e)

Industrial Programming, Inc.

	<company> The company which developed {MTOS}.

	{(http://ipi.com)}.

	E-mail: <info@ipi.com>.

	Telephone: +1 (516) 938 6600.  Address: 100 Jericho
	Quadrangle, Jericho, NY 11753, USA.

	(1997-07-23)

Industrial Robot Language

	<language, robotics> (IRL) A {high-level language} for
	programming industrial {robots}.

	["IRL, Industrial Robot Language", DIN 66312, Beuth-Verlag
	1992].

	(1996-11-28)

Industry Standard Architecture

	<architecture, standard> (ISA) A {bus} {standard} for {IBM
	compatibles} that extends the {XT bus architecture} to 16
	bits.  It also allows for {bus mastering} although only the
	first 16 {MB} of {main memory} is available for direct access.
	In reference to the XT bus architecture it is sometimes
	referred to as "AT bus architecture".

	Compare {EISA}, {MCA}.

	(1996-06-25)

inetd

	<networking, tool> Berkeley daemon program that listens for
	connection requests or messages for certain ports and starts
	server programs to perform the services associated with those
	ports.  Sometimes known as netd.

	{Unix manual page}: inetd(8).

	(1995-03-20)

inews

	<messaging, application> A {Unix} program for posting {Usenet}
	news articles, written by Rich $alz <rsalz@uunet.uu.net> for
	{InterNetNews}.  inews reads an article (perhaps with headers)
	from a file or {standard}, adds some {headers} and possibly a
	{signature}, and, if the article passes some consistency
	checks (too much quoting, non-existent {newsgroup}) then inews
	sends the article to the local news {server} for distribution.

	If an unapproved posting is made to a {moderated} newsgroup,
	inews will try to send the article to the moderator (specified
	in a configuration file) by {electronic mail}.

	Version: 1.25, dated 1993/03/18.

	{Unix manual page}: inews(1).

	(1996-02-27)

infant mortality

	<hardware> It is common lore among hackers (and in the
	electronics industry at large) that the chances of sudden
	hardware failure drop off exponentially with a machine's time
	since first use (that is, until the relatively distant time at
	which enough mechanical wear in I/O devices and
	thermal-cycling stress in components has accumulated for the
	machine to start going senile).  Up to half of all chip and
	wire failures happen within a new system's first few weeks;
	such failures are often referred to as "infant mortality"
	problems (or, occasionally, as "sudden infant death
	syndrome").

	See {bathtub curve}, {burn-in period}.

	[{Jargon File}]

	(1995-03-20)

infeasible path

	{dead code}

inference

	<logic> The logical process by which new facts are derived
	from known facts by the application of {inference rules}.

	See also {symbolic inference}, {type inference}.

	(1995-03-20)

inference engine

	A program that infers new {facts} from known facts using
	{inference rules}.  Commonly found as part of a {Prolog}
	{interpreter}, {expert system} or {knowledge based system}.

	(1994-11-01)

inference rule

	<logic> A procedure which combines known facts to produce
	("infer") new facts.  For example, given that

		1. Socrates is a man and that
		2. all men are motal,

	we can infer that Socrates is mortal.  This uses the rule
	known as "modus ponens" which can be written in {Boolean
	algebra} as

		(A & A => B) => B

	(if {proposition} A is true, and A implies B, then B is true).

	Or given that,

		1. Either Denis is programming or Denis is sad and
		2. Denis is not sad,

	we can infer that Denis is programming.  This rule can be
	written

		((A OR B) & not B) => A

	(If either A is true or B is true (or both), and B is false,
	then A must be true).

	Compare {syllogism}.

	(1994-10-31)

infimum

	{greatest lower bound}

infinite

	<mathematics> 1. Bigger than any {natural number}.  There are
	various formal set definitions in {set theory}: a set X is
	infinite if

	(i) There is a bijection between X and a proper subset of X.

	(ii) There is an injection from the set N of natural numbers
	to X.

	(iii) There is an injection from each natural number n to X.

	These definitions are not necessarily equivalent unless we
	accept the {Axiom of Choice}.

	2. The length of a line extended indefinitely.

	See also {infinite loop}, {infinite set}.

	[{Jargon File}]

	(1995-03-29)

Infinite Impulse Response

	<electronics, DSP> A type of {digital signal} {filter}, in
	which every {sample} of output is the weighted sum of past and
	current samples of input, using all past samples, but the
	weights of past samples are an inverse function of the sample
	age, approaching zero for old samples.

	(2001-06-06)

infinite loop

	<programming> (Or "endless loop") Where a piece of program is
	executed repeatedly with no hope of stopping.  This is nearly
	always because of a {bug}, e.g. if the condition for exiting
	the loop is wrong, though it may be intentional if the program
	is controlling an {embedded system} which is supposed to run
	continuously until it is turned off.  The programmer may also
	intend the program to run until interrupted by the user.  An
	endless loop may also be used as a last-resort error handler
	when no other action is appropriate.  This is used in some
	{operating system} kernels following a {panic}.

	A program executing an infinite loop is said to {spin} or
	{buzz} forever and goes {catatonic}.  The program is "wound
	around the axle".

	A standard joke has been made about each generation's exemplar
	of the ultra-fast machine: "The Cray-3 is so fast it can
	execute an infinite loop in under 2 seconds!"

	See also {black hole}, {recursion}, {infinite loop}.

	[{Jargon File}]

	(1996-05-11)

Infinite Monkey Theorem

	<humour> "If you put an {infinite} number of monkeys at
	typewriters, eventually one will bash out the script for
	Hamlet."  (One may also hypothesise a small number of monkeys
	and a very long period of time.)  This theorem asserts nothing
	about the intelligence of the one {random} monkey that
	eventually comes up with the script (and note that the mob
	will also type out all the possible *incorrect* versions of
	Hamlet).  It may be referred to semi-seriously when justifying
	a {brute force} method; the implication is that, with enough
	resources thrown at it, any technical challenge becomes a
	{one-banana problem}.

	This theorem was first popularised by the astronomer Sir
	Arthur Eddington.  It became part of the idiom through the
	classic short story "Inflexible Logic" by Russell Maloney, and
	many younger hackers know it through a reference in Douglas
	Adams's "Hitchhiker's Guide to the Galaxy".

	See also: {RFC 2795}.

	[{Jargon File}]

	(2002-04-07)

infinite set

	<mathematics> A set with an infinite number of elements.
	There are several possible definitions, e.g.

	(i) ("Dedekind infinite") A set X is infinite if there exists
	a {bijection} (one-to-one mapping) between X and some proper
	subset of X.

	(ii) A set X is infinite if there exists an {injection} from N
	(the set of {natural numbers}) to X.

	In the presence of the {Axiom of Choice} all such definitions
	are equivalent.

	(1995-03-27)

infinity

	1. <mathematics> The size of something {infinite}.

	Using the word in the context of sets is sloppy, since
	different {infinite sets} aren't necessarily the same size
	{cardinality} as each other.

	See also {aleph 0}

	2. <programming> The largest value that can be represented in
	a particular type of variable ({register}, memory location,
	data type, whatever).

	See also {minus infinity}.

	[{Jargon File}]

	(1994-11-18)

infix notation

	<language> One of the possible orderings of {functions} and
	{operands}: in infix notation the functions are placed between
	their operands, such as "1+2".  Although infix notation is
	limited to binary functions most languages mix infix notation
	with {prefix} or {postfix} notation, as a form of {syntactic
	sugar}.

	(1997-01-17)

infix syntax

	{infix notation}

inflate

	{deflate}

INFN

	Istituto Nazionale di Fisica Nucleare: an Italian State
	research organisation.

Infobahn

	(After the German "Autobahn") {Information Superhighway}.

Info BASIC

	Variant of {Pick BASIC} used with {PRIME}'s {PRIMOS}.

infobot

	<chat> A {bot} that serves as a common database of information
	(often noteworthy {URLs}) for users on a {chat} system.
	Infobots often have a simple {chatbot interface}, responding
	to key-phrases, as well as to direct queries.

	Here, in a real conversation, the bot Purl's first response is
	triggered by the phrase "just tell me", and its second
	response is triggered by being directly asked "perlfunc?":

	 <eesh> can someone tell me what: $num9 =
	        substr($number,9,1); means

	 <Tkil> eesh -- man perlfunc, look at "substr".

	 <eesh> just tell me

	 <purl> Didn't your momma ever tell you, "Go
	        look it up in the dictionary"?!

	 <Tkil> eesh -- no.  that's all we'll tell
	        you.  read the documentation.

	 <Tkil> eesh -- if you haven't man pages or
	        perldoc, you can read them on the 'net.

	 <Tkil> purl, perlfunc?

	 <purl> well, perlfunc is Perl builtin
	        functions, at man perlfunc or
	        http://perl.com/CPAN-local/doc/manual/html/pod/perlfunc.html

	{(http://cs.cmu.edu/~lenzo/infobot.html/)}.

	(1998-10-30)

Informatics Corporation

	<company> Renamed to {Sterling Software Corp}.

	[When?]

	(1998-10-30)

information

	<data> The result of applying {data processing} to {data},
	giving it context and meaning.  Information can then be
	further processed to yeild {knowledge}.

	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.

	1234567.89 is data.

	"Your bank balance has jumped 8087% to $1234567.89" 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.

	(2007-09-10)

Information Algebra

	Theoretical formalism for DP, never resulted in a language.
	Language Structure Group of CODASYL, ca. 1962.  Sammet 1969,
	709.

Information and Communication Technology

	<education> (ICT) The study of the technology used to handle
	information and aid communication.  The phrase was coined by
	[?] Stevenson in his 1997 report to the UK government and
	promoted by the new National Curriculum documents for the UK
	in 2000.  In addition to the subjects included in {Information
	Technology} (IT), ICT emcompasses areas such as {telephony},
	{broadcast media} and all types of {audio} and {video}
	processing and transmission.

	{(http://rubble.ultralab.anglia.ac.uk/stevenson/ICTUKIndex.html)}.

	(2008-09-19)

Information Appliance

	<hardware> (IA) A consumer device that performs only a few
	targeted tasks and is controlled by a simple {touch-screen}
	interface or push buttons on the device's enclosure.

	[How does this differ from a {PDA}?]

	(1998-02-24)

Information Builders

	Distributors of {LEVEL5 OBJECT}.  Telephone +1 800 969 INFO.

Information Engineering Facility

	{COOL:Gen}

information highway

	{information superhighway}

Information Infrastructure Task Force

	<networking, body> (IITF) A US government body created in 1993 by
	President Clinton to control and oversee the {NII} project.  The
	IITF consists of representatives of the federal agencies involved
	in information technology.  They work with the private sector to
	develop policy.  Various IITF committees work on
	telecommunications, {IPR}, {privacy}, government information and
	applications.

	In 2013, the IITF does not appear to have any presence on the
	{WWW}, which strongly suggests that it no longer exists (or that
	it is pretty out of touch with modern information infrastructure).

	{(http://itlaw.wikia.com/wiki/Information_Infrastructure_Task_Force)}.

	[Did it ever achieve anything?  What happened to it?]

	(2013-11-16)

Information Innovation

	A group of companies with offices in Amsterdam and New York
	which acts as an information filter for the {World-Wide Web}.
	They analyse what happens in the Web community and organise
	the Web's information so that it is accessible and efficient
	to use.

	Information Innovation provides:

	"The Management Guide" - a guide for managers in the
	information age.  The Guide consists of 22 parts, each
	concentrating on a particular technology or issue facing
	managers.  Topics range from {Artificial Intelligence} and
	Telecommunications to Finance and Marketing.  Each part
	contains references to additional valuable information,
	including {CD ROMs}, conferences, magazines, articles and
	books.

	"The Hypergraphic Matrix" - a "hypergraphic" matrix of 250
	graphics discussing the interrelationships between technology,
	change, business functions and specific industries.

	"Dictionary" - the largest Internet dictionary on management
	and technology.

	"The Delphi Oracle" - a comprehensive guide to the latest
	management ideas and issues.  Over 500 articles and books have
	been read, analysed, rated and catalogued.

	"Management Software" - a guide to software which is useful to
	managers.  Both Web software, Internet software and commecial
	products are included in this guide.

	"The Web Word" - an information service about the Web.  It
	includes a regular newsletter and databases about Web
	resources, news, interviews with Web personalities and, of
	course, the most comprehensive guide to sites.

	"Web Bibliography" - a guide to the latest Web information
	printed.  Over 150 articles, magazines, market research
	reports and books are catalogued.

	"The Power Launch Pad" - our own list of useful sites on the
	Web.  Also includes links to our own lists of special subjects
	such as Finance, Telecommunications, Manufacturing, Technology
	and so forth.

	{(http://euro.net/innovation/WelcomeHP.html)}.  E-mail:
	<innovation@euronet.nl>.

	(1994-10-27)

information island

	<jargon> A body of information (i.e. electronic files) that
	needs to be shared but has no network connection.

	(1995-03-16)

Information Management

	The planning, budgeting, control and exploitation of the
	information resources in an organisation.  The term
	encompasses both the information itself and the related
	aspects such as personnel, finance, marketing, organisation
	and technologies and systems.  Information Managers are
	responsible for the coordination and integration of a wide
	range of information handling activities within the
	organisation.  These include the formulation of corporate
	information policy, design, evaluation and integration of
	effective information systems and services, the exploitation
	of IT for competitive advantage and the integration of
	internal and external information and data.

Information Management System

	<database> (IMS, IMS/VS, IMS/ESA) A database system from {IBM}
	consisting of {IMS/Data Base} and {IMS/Data Communications}.

	(1999-01-11)

information overload

	<jargon> When a person feels unable to read all the
	information that is presented or available to them,
	particularly where they need to make decisions based on that
	information but can't because there is just too much to take
	in in the time available.

	(2005-01-09)

Information Processing Language

	(IPL) Said to be the first list-processing language, also the
	first language to support {recursion}.  Written by Allen
	Newell, J.C. Shaw and H. Simon at Carnegie ca. 1956.  It was
	very low level.

	Versions: IPL-I (never implemented), IPL-II (1957 for
	{JOHNNIAC}), IPL-III (existed briefly), IPL-IV, IPL-V (1958,
	for {IBM 650}, {IBM 704}, {IBM 7090}, many others.  Widely
	used), IPL-VI.

	[Sammet 1969, pp. 388-400].

	["Information Processing Language-V Manual", A. Newell ed, P-H
	1965].

	(1994-11-04)

Information Resource Management

	(IRM) A philosophical and practical approach to managing
	government information.  Information is regarded as a valuable
	resource which should be managed like other resources, and
	should contribute directly to accomplishing organisational
	goals and objectives.  IRM provides an integrated view for
	managing the entire life-cycle of information, from
	generation, to dissemination, to archiving and/or destruction,
	for maximising the overall usefulness of information, and
	improving service delivery and program management.

	IRM views information and {Information Technology} as an
	integrating factor in the organisation, that is, the various
	organisational positions that manage information are
	coordinated and work together toward common ends.  Further,
	IRM looks for ways in which the management of information and
	the management of Information Technology are interrelated, and
	fosters that interrelationship and organisational integration.

	IRM includes the management of (1) the broad range of
	information resources, e.g., printed materials, electronic
	information, and microforms, (2) the various technologies and
	equipment that manipulate these resources, and (3) the people
	who generate, organise, and disseminate those resources.
	Overall the intent of IRM is to increase the usefulness of
	government information both to the government and to the
	public.

	[Gary D. Blass et al. "Finding Government Information: The
	Federal Information Locator System (FILS)", Government
	Information Quarterly, JAI Press, Inc., Greenwich,
	Connecticut. Vol. 8, No. 1, pp.  11-32. 1991].

	(1995-11-12)

information superhighway

	<communications> (Or "Infobahn", "Info Strada") The name
	coined by US Vice-president Al Gore in the early 1990s for the
	emerging high-speed global communications network capable of
	carrying voice, data, video, and other services around the
	world.  These services use satellite, copper cable, {optical
	fibre}, {cellular telecommunications}, and are accessible via
	{set-top boxes} or suitably equipped computers.

	See also {National Information Infrastructure}.

	(2001-03-31)

Information Systems Factory

	(ISF) An equivalent to an {SEE}.

	[{Simultaneous Engineering Environment} or {Software
	Engineering Environment}?]

	(2000-12-30)

information technology

	<business, jargon> (IT) Applied computer systems - both
	{hardware} and {software}, and often including {networking}
	and {telecommunications}, usually in the context of a business
	or other enterprise.  Often the name of the part of an
	enterprise that deals with all things electronic.

	The term "{computer science}" is usually reserved for the more
	theoretical, academic aspects of computing, while the vaguer
	terms "information systems" (IS) or "information services" may
	include more of the human activities and non-computerised
	business processes like {knowledge management}.  Others say
	that IT includes computer science.

	(2000-10-02)

information technology governance

	<business> The structure, oversight and management processes
	which ensure the delivery of the expected benefits of IT in a
	controlled way to help enhance the long term sustainable
	success of the enterprise.

	(2009-04-27)

Information Technology Infrastructure Library

	(ITIL) A method of organising the system and network
	management departments of large organisations.  ITIL defines
	the (work) processes involved and the interfaces between them.

	(1995-06-27)

Informix

	A {relational DBMS} vendor.

InfoSeek

	<company> A company providing InfoSeek Net Search, a free
	{World-Wide Web} search service which, in August 1995, indexed
	the full text of over 400,000 web pages.  Net Search was rated
	as the fourth most popular site on the web by Interactive Age
	magazine.

	The also sell a commercial service, InfoSeek Search, that
	offers access to all the {Usenet} {news groups}, daily
	newswires, business and computer periodicals, and more.

	{(http://www2.infoseek.com/)}.

	(1995-11-09)

InfoStreet, Inc.

	<company> An Internet consulting and development company
	dedicated to assisting companies in establishing an Internet
	presence.  InfoStreet develope Internet strategies, design and
	create web pages, and host and maintain {websites}.

	InfoStreet, has been recognized by PC/Computing as the "Best
	of the Top Home Page Services" (August 1996) and has been
	featured in Netguide magazine and the Wiley and Son's
	Electronic Marketing book.

	{(http://InfoStreet.com/)}.

	{Home page hosting service (http://instantweb.com)}.

	(1997-01-30)

infotainment

	<application> {Interactive} services or software that provides
	some combination of information and entertainment.

	(2010-03-02)

InfoWord Office

	<tool> A suite of applications for {Unix} including a {word
	processor}, {spreadsheet} and {database}.

	{Light Infocon S.A. (http://light.com.br/)}.

	(1998-07-21)

infrared

	<electronics> (IR) Electromagnetic waves in the frequency
	range just below visible light corresponding to radiated heat.
	IR waves can be generated by a kind of {LED} and are often
	used for remote controls for televisions etc. and in some
	{docking stations}.

	(1997-01-30)

Infrared Data Association

	<standard, body> (IrDA) A non-profit trade association
	providing standards to ensure the quality and interoperability
	of {infrared} (IR) hardware.

	The association currently has a membership of over 160
	companies from around the world, representing computer and
	telecommunications hardware, software, components and
	adapters.

	IrDA typically uses direct infrared i.e. {point-to-point},
	{line-of-sight}, one-to-one communications.  The standards
	include: {IrDA Data} ({SIR}, {FIR}, {VFIR}), {IrDA Control},
	and {AIR}.

	Ports built to the above standards can be found in products
	such as {PDAs}, {Palm} devices, {printers}, desktop adapters,
	{notebooks}, and {digital cameras}.

	{(http://irda.org)}.

	{IrDA Serial Infrared Interface
	(http://cesdis1.gsfc.nasa.gov/linux/misc/irda.html)}.

	{Linux-IrDA support (http://cs.uit.no/linux-irda/)}.

	(1999-10-14)

infrastructure

	<systems> Basic support services for computing, particularly
	national networks.

	See also {information superhighway}.

	(1995-06-27)

Inglish

	<games> An English-like language used for {Adventure} games
	like "The Hobbit".  Inglish could distinguish between "take
	the rope and axe" and "take the money and run".

	(1995-06-27)

INGRES

	A {relational DBMS} vendor.

inheritance

	<programming, object-oriented> In {object-oriented
	programming}, the ability to derive new {classes} from
	existing classes.  A {derived class} (or "subclass") inherits
	the {instance variables} and {methods} of the "{base class}"
	(or "superclass"), and may add new instance variables and
	methods.  New methods may be defined with the same names as
	those in the base class, in which case they override the
	original one.

	For example, bytes might belong to the class of integers for
	which an add method might be defined.  The byte class would
	inherit the add method from the integer class.

	See also {Liskov substitution principle}, {multiple
	inheritance}.

	(2000-10-10)

initgame

	<games> /in-it'gaym/ [IRC] An {IRC} version of the venerable
	trivia game "20 questions", in which one user changes his
	{nick} to the initials of a famous person or other named
	entity, and the others on the channel ask yes or no questions,
	with the one to guess the person getting to be "it" next.  As
	a courtesy, the one picking the initials starts by providing a
	4-letter hint of the form sex, nationality, life-status,
	reality-status.  For example, MAAR means "Male, American,
	Alive, Real" (as opposed to "fictional").  Initgame can be
	surprisingly addictive.  See also {hing}.

	[{Jargon File}]

initialise

	<programming> To give a {variable} its first value.  This may
	be done automatically by some languages or it may require
	explicit code by the programmer.  Some languages allow
	initialisation to be combined with variable definition,
	e.g. in {C}:

		int i = 0;

	Failing to initialise a variable before using it is a common
	programming error, but one which compilers and automatic
	checkers like {lint} can easily detect.

	(1997-06-08)

Initial Microprogram Load

	<operating system> (IML) Loading {microcode} into microcode
	memory.

	(1997-08-31)

Initial Operational Test and Evaluation

	<testing> (IOT&E) The first phase of {operational test} and
	evaluation conducted on {pre-protectional} items,
	{prototypes}, or pilot production items and normally completed
	prior to the first major production decision.  Conducted to
	provide a valid estimate of expected system operational
	effectiveness and suitability.

	(1996-12-27)

Initial Program Load

	<operating system> (IPL) The procedure used to (re-)start a
	computer system by copying the {operating system} {kernel}
	into {main memory} and running it.  Part of the {boot
	sequence}.

	(1997-08-31)

Initial Program Loader

	<operating system> (IPL) A {bootstrap loader} which loads the
	part of an {operating system} needed to load the remainder of
	the operating system.

	(1997-08-31)

initiator

	{SCSI initiator}

injection

	1. <mathematics> A {function}, f : A -> B, is injective or
	one-one, or is an injection, if and only if

		for all a,b in A, f(a) = f(b) => a = b.

	I.e. no two different inputs give the same output (contrast
	many-to-one).  This is sometimes called an embedding.  Only
	injective functions have left inverses f' where f'(f(x)) = x,
	since if f were not an injection, there would be elements of B
	for which the value of f' was not unique.  If an injective
	function is also a {surjection} then is it a {bijection}.

	2. <reduction> An injection function is one which takes
	objects of type T and returns objects of type C(T) where C is
	some {type constructor}.  An example is

		f x = (x, 0).

	The opposite of an injection function is a {projection}
	function which extracts a component of a constructed object,
	e.g.

		fst (x,y) = x.

	We say that f injects its argument into the data type and fst
	projects it out.

	(1995-03-14)

inkjet printer

	<hardware, printer> A class of printer in which small ink
	droplets are sprayed electrostatically from a nozzle onto the
	paper.

	Inkjet printers are very quiet in comparison to {impact
	printers}.

	A popular example is the {Olivetti} {BJ10}.

	(1995-03-14)

ink printer

	<printer> A {retronym} used by Blind users to refer to all
	printers which are not {Braille printers}, regardless of
	whether they actually use ink.

	(1998-10-13)

inline

	<programming> (Or "unfold") To replace a {function} call with
	an instance of the function's body.  {Actual argument}
	expressions are substituted for {formal parameters} as in
	{beta reduction}.  Inlining is usually done as a
	{compile-time} transformation.

	If done recklessly (e.g. attempting to inline a {recursive}
	function) the {compiler} will fail to terminate.  If done
	over-enthusiastically the code size may increase
	exponentially, e.g. if function f calls g twice, and g calls h
	twice and h is inlined in g which is inlined in f (in either
	order) then there will be four copies of h's body in f.

	See also {linear argument}, {unfold/fold}.

	(1994-11-03)

inline element

	<World-Wide Web> Any {HTML element} that is rendered in the
	same position as normal plain text, i.e. to the right of the
	preceding text (for left-to-right scripts).

	This contrasts with a {block-level elements} that is always
	placed below the preceding text line.

	Inline elements typically specify formatting, e.g. <B>
	({bold}), <SMALL> or the kind of content, e.g. <CODE>, <KBD>,
	though they also include things like {inline images} (<IMG>)
	and {text areas} (<TEXTAREA>).

	{(http://htmlhelp.com/reference/html40/inline.html)}

	(2011-01-04)

inline image

	<World-Wide Web> An image that appears within the body of a
	{web page}.  Most graphical {web browsers} display images
	inline (with an option to turn off inline images, to speed up
	the display of web pages).

	Other {image formats} may have to be displayed in a separate
	{window} and/or by another {application program}.

	An inline image in a web page is specified with the <IMG>
	{HTML} {tag}, which can take many {attributes}, the most
	important of which is the SRC attribute that gives the {URL}
	from which to fetch the image.  The ALT attribute gives text
	to display in place of the image for users with images
	disabled or who are using text-only browsers or text-to-speech
	convertors (e.g. blind users).

	(2011-01-04)

INMOS transputer

	{transputer}

inner class

	<Java> In {Java}, a non-{static}, {nested class}.

	(2006-11-18)

inner join

	<database> (Commonly "join", but see also "{outer join}") A
	{relational database} operation which selects rows from two
	{tables} such that the value in one {column} of the first
	table also appears in a certain column of the second table.

	An example in {SQL}:

		select * from A, B
		where A.x = B.y

	The column names (x and y in this example) are often, but not
	necessarily, the same.

	(1998-11-23)

inner product

	<mathematics> In {linear algebra}, any linear map from a
	{vector space} to its {dual} defines a product on the vector
	space: for u, v in V and linear g: V -> V' we have gu in V' so
	(gu): V -> scalars, whence (gu)(v) is a scalar, known as the
	inner product of u and v under g.  If the value of this scalar
	is unchanged under interchange of u and v (i.e. (gu)(v) =
	(gv)(u)), we say the inner product, g, is symmetric.
	Attention is seldom paid to any other kind of inner product.

	An inner product, g: V -> V', is said to be positive definite
	iff, for all non-zero v in V, (gv)v > 0; likewise negative
	definite iff all such (gv)v < 0; positive semi-definite or
	non-negative definite iff all such (gv)v >= 0; negative
	semi-definite or non-positive definite iff all such (gv)v <=
	0.  Outside relativity, attention is seldom paid to any but
	positive definite inner products.

	Where only one inner product enters into discussion, it is
	generally elided in favour of some piece of syntactic sugar,
	like a big dot between the two vectors, and practitioners
	don't take much effort to distinguish between vectors and
	their duals.

	(1997-03-16)

InnovAda

	An {object-oriented} extension to {Ada}, said to be
	{Lisp}-like.  Implemented as an {Ada} {preprocessor}.

	(1994-11-03)

	[Where?  Who?  When?]

inode

	A data structure holding information about files in a {Unix}
	{file system}.  There is an inode for each file and a file
	is uniquely identified by the file system on which it
	resides and its inode number on that system.  Each inode
	contains the following information: the device where the inode
	resides, locking information, mode and type of file, the
	number of links to the file, the owner's user and group ids,
	the number of bytes in the file, access and modification
	times, the time the inode itself was last modified and the
	addresses of the file's blocks on disk.  A {Unix} directory is
	an association between file leafnames and inode numbers.  A
	file's inode number can be found using the "-i" switch to ls.

	{Unix manual page}: fs(5).

	See also /usr/include/ufs/inode.h.

in-order traversal

	{traverse}

inout

	<programming> A type or "mode" of {function} {parameter} that
	passes information in both directions - from the caller to the
	function and back to the caller, combining the {in} and {out}
	modes.  An "inout" parameter might be used where the function
	needs to read and update some data belonging to the caller as
	a side effect of its main purpose.

	(2010-01-19)

IN point

	<unit, text> (l'Imprimerie nationale point) A variant of the
	{point} equal to 0.4 mm.

	(2002-03-11)

Inprise Corporation

	{Borland Software Corporation}.

Input

	{ALPHA}

input

	<architecture> {Data} transferred from the outside world into
	a computer system via some kind of {input device}.

	Opposite: {output}.

	(1997-04-28)

input device

	<hardware> A {peripheral} used to transfer data from the
	outside world into a computer system.  Some input devices are
	operated directly by the user, e.g. {keyboard}, {mouse},
	{touch screen}, {joystick}, {digitising tablet}, {microphone};
	others are sensors or transducers which convert external
	signals into data, e.g. using an {ananlog to digital
	converter} (this would also be true of a microphone).  Other
	kinds of inputs are really one half of a bidirectional link
	with another computer or storage device, e.g. {serial line},
	{SCSI} interface.

	(1996-11-03)

input/output

	<programming, operating system> (I/O) Communication between a
	computer and its users, its storage devices, other computers
	(via a {network}) or the outside world.  The devices the
	computer uses to do this are called "{peripherals}".  What
	actually counts as I/O depends on what level of detail you are
	considering, e.g. communication between processors would not
	be considered I/O when considering a {multiprocessor} as a
	single system.

	Important aspects of I/O are {throughput}, {latency}, and
	whether the communications is {synchronous} or {asynchronous}
	(using some kind of {buffer}).

	(2003-12-04)

input/output redirection

	<operating system> In {Unix}, to send ouput from a {process}
	to different {file} or {device} or to another process via a
	{pipe}, or to have a process read its input from a different
	file, device or pipe.  Some other {operating systems} have
	similar facilities.

	To redirect input to come from a file instead of the keyboard,
	use "<":

		myprog < myfile

	Similarly to redirect output to a file instead of the screen:

		ls > filelist

	A pipe redirects the output of one process directly into the
	input of another

		who | wc -l

	A common misuse by beginners is

		cat myfile | myprog

	Which is more or less equivalent to "myprog < myfile" except
	that it introduces an extra unnecessary cat process and buffer
	space for the pipe.  Even the "<" is unnecessary with many
	standard Unix commands since they accept input file names as
	command line arguments anyway.

	Unix's concept of {standard input/output} and I/O redirection
	make it easy to combine simple processes in powerful ways and
	to use the same commands for different purposes.

	(1998-04-24)

inquiry/response system

	<business> Any computer system in which data is entered
	{offline} and processed in {batch} form, but information can
	be retrieved on-line.  An example is the checking of credit
	cards.

	["Computer Information Systems for Business V", Thomas Dock
	and James C Wetherbe, West Publishing Company 1988].

	(1996-06-24)

INRIA

	{Institut National de Recherche en Informatique et Automatique}

insanely great

	({Macintosh} community, from {Steve Jobs}; also {BSD Unix}
	people via {Bill Joy}) Something so incredibly {elegant} that
	it is imaginable only to someone possessing the most puissant
	of {hacker}-natures.

	[{Jargon File}]

	(1994-12-06)

insertion sort

	<algorithm> A sorting {algorithm} that inserts each item in
	the proper place into an initially empty list by comparing it
	with each item in the list until it finds the new element's
	successor or the end of the list.

	Compare {bubble sort}.

	(1997-02-12)

INSIGHT

	A {simulation} and modelling language especially for health
	care problems.

	["Simulation Modeling with INSIGHT", S.D. Roberts Proc 1983
	Winter Sim Conf, S.D. Roberts et al eds, pp.7-16].

	(1995-03-03)

Insignia Solutions, Inc.

	<company> /in-sig'nee-* s*-loosh'nz/ A company that made its
	name as a provider of software that allows users to run
	{Microsoft Windows} and {MS-DOS} {application programs} on
	{Digital}, {HP}, {IBM}, {Motorola}, {NeXT}, {Silicon Graphics}
	and {Sun}/{SPARC} {workstations}, {X terminals}, {Java}
	desktops, and {Apple Computer}'s {Power Mac} and {Motorola
	68000}-based computers.

	Insignia Solutions was founded in 1986.  Their first product,
	{SoftPC} 1.0 for Sun workstations, was introduced in 1988.
	Also in 1988, Insignia shipped its first version of SoftPC for
	Apple Computer's Macintosh.  As the demand to run Windows and
	MS-DOS applications on non-Intel computers grew, Insignia
	signed {OEM} agreements with several companies including {Data
	General}, Digital, {Fujitsu}, HP, {Intergraph Corp.},
	Motorola, Silicon Graphics, and Sun Microsystems.

	Insignia Solutions sold its {SoftWindows} and {RealPC} product
	lines to {FWB Software} [when?].  Its major product in 2000 is
	the {Jeode} platform, a {Java virtual machine} for {Internet
	appliances} and {embedded} devices.

	{Home Page (http://insignia.com/)}.

	(2000-02-14)

inspection

	<testing> A formal evaluation technique in which software
	{requirements}, design, or code are examined in detail by a
	person or group other than the author to detect faults,
	violations of development standards, and other problems.

	(1996-05-22)

installable file system

	<operating system> (IFS or "File System Driver", "FSD") An
	{API} that allows you to extend {OS/2} to access files stored
	on disk in formats other than {FAT} and {HPFS}, and access
	files that are stored on a {network file server}.

	For example an IFS could provide programs running under OS/2
	(including DOS and Windows programs) with access to files
	stored under {Unix} using the {Berkeley fast file system}.

	The other variety of IFS (a "remote file system" or
	"redirector") allows file sharing over a {LAN}, e.g. using
	Unix's {Network File System} {protocol}.  In this case, the
	IFS passes a program's file access requests to a remote file
	server, possibly also translating between different file
	attributes used by OS/2 and the remote system.

	Documentation on the IFS API has been available only by
	special request from IBM.

	An IFS is structured as an ordinary 16-bit {DLL} with entry
	points for opening, closing, reading, and writing files, the
	swapper, file locking, and {Universal Naming Convention}.  The
	main part of an IFS that runs in {ring} 0 is called by the
	OS/2 {kernel} in the context of the caller's process and
	{thread}.  The other part that runs in ring 3 is a utility
	library with entry points for FORMAT, RECOVER, SYS, and
	CHKDSK.

	{EDM/2 article (http://edm2.com/0103/)}.

	(1999-04-07)

installed user base

	{user base}

installer

	<operating system> A {utility program} to ease the
	installation of another, probably larger, {application}.  It
	is also possible for {hardware} to have an installer accompany
	it, to install any low level {device drivers} required.

	The installer commonly asks the user to enter desired
	configuration options for the main program or hardware, and
	sets up various initialisation files accordingly, as well as
	copying the main program to a {hard disc}.

	Some badly designed operating systems require applications to
	provide an {uninstaller} because of the number of different
	files modified or created during the installation process.

	(1998-02-09)

instance

	<programming> An individual {object} of a certain {class}.
	While a class is just the type definition, an actual usage of
	a class is called "instance".  Each instance of a class can
	have different values for its {instance variables}, i.e. its
	{state}.

	(1998-03-06)

instance variable

	<programming> In {object-oriented programming}, one of the
	variables of a {class template} which may have a different
	value for each {object} of that {class}.  Instance variables
	hold the {state} of an object.

	(1998-01-16)

instantiate

	{instantiation}

instantiation

	<programming> Producing a more defined version of some object
	by replacing variables with values (or other variables).

	1. In {object-oriented programming}, producing a particular
	{object} from its {class template}.  This involves allocation
	of a structure with the types specified by the template, and
	initialisation of {instance variables} with either default
	values or those provided by the class's {constructor}
	function.

	2. In {unification}, (as used in {logic programming}, {type
	checking} and {type inference}), binding a {logic variable}
	({type variable}) to some value (type).

	(1995-03-28)

Institute for Global Communications

	(IGC) Provider of computer networking tools for international
	communications and information exchange.  The IGC Networks --
	PeaceNet, EcoNet, ConflictNet and LaborNet -- comprise the
	world's only computer communications system dedicated solely
	to environmental preservation, peace, and human rights.  New
	technologies are helping these worldwide communities cooperate
	more effectively and efficiently.

	Address: 18 De Boom Street, San Francisco, CA 94107 USA.  A
	division of the Tides Foundation, a 501(c)(3) tax-exempt
	organisation.  A founding member of the world-wide Association
	of Progressive Communications (APC).

	{(ftp://igc.apc.org)}.

	E-mail: <support@igc.apc.org>.

	(1996-06-24)

Institute of Electrical and Electronics Engineers, Inc.

	(IEEE) The world's largest technical professional society,
	based in the USA.  Founded in 1884 by a handful of
	practitioners of the new electrical engineering discipline,
	today's Institute has more than 320,000 members who
	participate in its activities in 147 countries.  The IEEE
	sponsors technical conferences, symposia and local meetings
	worldwide, publishes nearly 25% of the world's technical
	papers in electrical, electronics and computer engineering and
	computer science, provides educational programs for its
	members and promotes standardisation.  Areas covered include
	aerospace, computers and communications, biomedical
	technology, electric power and consumer electronics.

	{(http://ieee.org/)}.
	{Gopher (gopher://gopher.ieee.org/)}.
	{(ftp://ftp.ieee.org/)}.

	E-mail file-server: <fileserver-help@info.ieee.org>.

	{ IEEE Standards Process Automation (SPA) System
	(http://stdsbbs.ieee.org/)},
	{telnet	(telnet:stdsbbs.ieee.org)} [140.98.1.11].

	(1995-03-10)

Institut National de Recherche en Informatique et Automatique

	<body> (INRIA) A French research institute for computer
	science, {control theory}, and applied mathematics.  INRIA has
	research units in Rocquencourt (near Paris), Sophia-Antipolis
	(near Nice), Grenoble, Nancy (also known as LORIA) and Rennes
	(known as IRISA), the last two in partnership with {CNRS} and
	local universities.

	INRIA works on various projects, including the development of
	{free software} such as {SciLab}, {Objective Caml}, {Bigloo},
	and projects such as {GNU MP}.

	(2003-07-13)

instruction

	{machine instruction}

Instruction Address Register

	<architecture> (IAR) The {IBM} name for {program counter}.

	The IAR can be accessed by way of a {supervisor} call in
	{supervisor state}, but cannot be directly addressed in
	{problem state}.

	(1995-03-21)

instructional technology

	<education> Design, development, use, management and
	evaluation of process and resources for learning.

	Instructional technology aims to promote the application of
	validated, practical procedures in the design and delivery of
	instruction.  It is often defined either in terms of media and
	other technology used (e.g. {audiovisual media} and equipment
	and computers), or in terms of a systematic process which
	encompasses instructional design, development, delivery and
	evaluation.

	["Instructional Technology: The Definition and Domains of the
	Field", 1994, Barbara Seels and Rita Richey, Washington, D.C.,
	Association for Educational Communications and Technology].

	(2010-01-29)

instruction mnemonic

	<programming> A word or acronym used in {assembly language} to
	represent a {binary} machine instruction {operation code}.
	Different processors have different {instruction sets} and
	therefore use a different set of {mnemonics} to represent
	them.

	E.g. ADD, B (branch), BLT (branch if less than), {SVC}, MOVE,
	LDR (load register).

	(1997-02-18)

instruction prefetch

	<architecture> A technique which attempts to minimise the time
	a {processor} spends waiting for {instructions} to be fetched
	from memory.  Instructions following the one currently being
	executed are loaded into a prefetch queue when the processor's
	{external bus} is otherwise idle.  If the processor executes a
	{branch} instruction or receives an {interrupt} then the queue
	must be flushed and reloaded from the new address.

	Instruction prefetch is often combined with {pipelining} in
	an attempt to keep the pipeline busy.

	By 1995 most processors used prefetching, e.g. {Motorola
	680x0}, {Intel 80x86}.

	[First processors using prefetch?]

	(1998-03-29)

instruction scheduling

	The {compiler} phase that orders instructions on a
	{pipelined}, {superscalar}, or {VLIW} architecture so as to
	maximise the number of function units operating in parallel
	and to minimise the time they spend waiting for each other.

	Examples are filling a {delay slot}; interspersing
	{floating-point} instructions with integer instructions to
	keep both units operating; making adjacent instructions
	independent, e.g. one which writes a register and another which
	reads from it; separating memory writes to avoid filling the
	{write buffer}.

	Norman P. Jouppi and David W. Wall, {"Available
	Instruction-Level Parallelism for Superscalar and
	Superpipelined Processors"
	(ftp://gatekeeper.dec.com/archive/pub/DEC/WRL/research-reports/WRL-TR-89.7.ps.Z)},
	Proceedings of the Third International Conference on
	Architectural Support for Programming Languages and Operating
	Systems, pp. 272--282, 1989.

	[The SPARC Architecture Manual, v8, ISBN 0-13-825001-4]

instruction set

	<architecture> The collection of {machine language}
	{instructions} that a particular {processor} understands.

	The term is almost synonymous with "{instruction set
	architecture}" since the instructions are fairly meaningless
	in isolation from the {registers} etc. that they manipulate.

	(1999-07-05)

instruction set architecture

	<architecture> (ISA) The parts of a {processor}'s design that
	need to be understood in order to write {assembly language},
	such as the {machine language} instructions and {registers}.
	Parts of the architecture that are left to the implementation,
	such as number of {superscalar} {functional units}, {cache}
	size and {cycle} speed, are not part of the ISA.

	The definition of {SPARC}, for example, carefully
	distinguishes between an implementation and a specification.

	(1999-01-16)

Instruction Set Processor

	<language> (ISP) A family of languages for describing the
	{instruction sets} of computers.

	["Computer Structures: Readings and Examples", D.P. Siewiorek
	et al, McGraw-Hill 1982].

	(1995-10-12)

instrument

	<programming> To install devices or instructions into hardware
	or software to monitor the operation of a system or component.

	(1996-05-22)

int

	1. <programming> A common name for the {integer} data type.
	In {C} for example, it means a (signed) integer of the
	computer's native {word length}.

	2. <networking> The {top-level domain} for international
	organisations.

	(1999-01-26)

INTCODE

	A low-level interpreted language used in {bootstrapping} the
	{BCPL} compiler.  The INTCODE machine has six control
	{registers} and eight functions.  {OCODE} was used as the
	intermediate language.

	["INTCODE - An Interpretive Machine Code for BCPL",
	M. Richards, Computer Lab, U Cambridge 1972].

	["BCPL - The Language and its Compiler", Martin Richards &
	Colin Whitby-Stevens, Cambridge U Press 1979].

integer

	<mathematics> (Or "whole number") One of the {finite} numbers
	in the infinite set

		..., -3, -2, -1, 0, 1, 2, 3, ...

	An {inductive definition} of an integer is a number that is
	either zero or an integer plus or minus one.  An integer is a
	number with no fractional part.  If written as a {fixed-point}
	number, the part after the decimal (or other base) point will
	be zero.

	A {natural number} is a non-negative integer.

	(2002-04-07)

Integer SPECbaserate

	{SPECrate_base_int92}

Integer SPECbaseratio

	{SPECbase_int92}

Integer SPECrate

	{SPECrate_int92}

Integer SPECratio

	{SPECint92}

integrated circuit

	<electronics> (IC, or "chip") A microelectronic
	{semiconductor} device consisting of many interconnected
	transistors and other components.  ICs are constructed
	("fabricated") on a small rectangle (a "die") cut from a
	Silicon (or for special applications, Sapphire) wafer.  This
	is known as the "substrate".  Different areas of the substrate
	are "doped" with other elements to make them either "p-type"
	or "n-type" and polysilicon or aluminium tracks are etched in
	one to three layers deposited over the surface.  The die is
	then connected into a package using gold wires which are
	welded to "pads", usually found around the edge of the die.

	Integrated circuits can be classified into analogue, digital
	and hybrid (both analogue and digital on the same chip).
	Digital integrated circuits can contain anything from one to
	millions of {logic gates} - {inverters}, {AND}, {OR}, {NAND}
	and {NOR} gates, {flip-flops}, {multiplexors} etc. on a few
	square millimeters.  The small size of these circuits allows
	high speed, low power dissipation, and reduced manufacturing
	cost compared with board-level integration.

	The first integrated circuits contained only a few
	{transistors}.  Small Scale Integration ({SSI}) brought
	circuits containing transistors numbered in the tens.  Later,
	Medium Scale Integration ({MSI}) contained hundreds of
	transistors.  Further development lead to Large Scale
	Integration ({LSI}) (thousands), and VLSI (hundreds of
	thousands and beyond).  In 1986 the first one {megabyte} {RAM}
	was introduced which contained more than one million
	transistors.

	LSI circuits began to be produced in large quantities around
	1970 for computer main memories and pocket calculators.  For
	the first time it became possible to fabricate a {CPU} or even
	an entire {microprocesor} on a single integrated circuit.  The
	most extreme technique is {wafer-scale integration} which uses
	whole uncut wafers as components.

	[Where and when was the term "chip" introduced?]

	(1997-07-03)

Integrated Database Management System

	<database> (IDMS) A network {DBMS} written by the staff of
	B.F.Goorich (Akron, Ohio, USA) circa 1972 and sold to
	{Cullinet} (Originally Cullinane, now part of {Computer
	Associates}).

	IDMS was licensed to {ICL} in 1976 for porting to, and
	subsequent development on, their computers.  It was
	implemented on the {ICL 1900} Series ({DME} {George 2},
	{George 3}, {CME}, {TME}), {System 4}, and {ICL 2900} Series
	(later Series 39 Corporate Servers).  The latest version runs
	on Series 39 {OpenVME} as IDMSX (IDMS extended).

	[Was it a {relational database}?]

	(1995-04-19)

integrated development environment

	{interactive development environment}

Integrated Drive Electronics

	{Advanced Technology Attachment}

Integrated Information Technology

	<company> (IIT) A Santa Clara based company producing a
	programmable, single chip {H.261} and {MPEG} system.  The chip
	contains a {RISC} processor, originally based on the {MIPS}
	architecture but now called {RISCit}, and a "Pixel Processor".

	(1994-11-03)

Integrated Modelling Support Environment

	<project> (IMSE) An {Esprit} programme.

	[Details?]

	(1999-04-26)

Integrated Project Support Environment

	<software> (IPSE) A set of management and technical tools to
	support software development, usually integrated in a coherent
	framework, equivalent to a {Software Engineering Environment}.

	(1999-04-26)

Integrated Services Digital Network

	<communications> (ISDN) A set of communications {standards}
	allowing a single wire or {optical fibre} to carry voice,
	digital network services and video.  ISDN is intended to
	eventually replace the {plain old telephone system}.

	ISDN was first published as one of the 1984 {ITU-T} {Red Book}
	recommendations.  The 1988 {Blue Book} recommendations added
	many new features.  ISDN uses mostly existing {Public Switched
	Telephone Network} (PSTN) switches and wiring, upgraded so
	that the basic "call" is a 64 kilobits per second, all-digital
	end-to-end channel.  {Packet} and {frame} modes are also
	provided in some places.

	There are different kinds of ISDN connection of varying
	bandwidth (see {DS level}):

		DS0  =    1 channel  PCM at      64 kbps
	 T1  or DS1  =   24 channels PCM at   1.54  Mbps
	 T1C or DS1C =   48 channels PCM at   3.15  Mbps
	 T2  or DS2  =   96 channels PCM at   6.31  Mbps
	 T3  or DS3  =  672 channels PCM at  44.736 Mbps
	 T4  or DS4  = 4032 channels PCM at 274.1   Mbps

	Each channel here is equivalent to one voice channel.  DS0 is
	the lowest level of the circuit.  T1C, T2 and T4 are rarely
	used, except maybe for T2 over microwave links.  For some
	reason 64 kbps is never called "T0".

	A {Basic Rate Interface} (BRI) is two 64K "bearer" channels
	and a single "delta" channel ("2B+D").  A {Primary Rate
	Interface} (PRI) in North America and Japan consists of 24
	channels, usually 23 B + 1 D channel with the same physical
	interface as T1.  Elsewhere the PRI usually has 30 B + 1 D
	channel and an {E1} interface.

	A {Terminal Adaptor} (TA) can be used to connect ISDN channels
	to existing interfaces such as {EIA-232} and {V.35}.

	Different services may be requested by specifying different
	values in the "Bearer Capability" field in the call setup
	message.  One ISDN service is "telephony" (i.e. voice), which
	can be provided using less than the full 64 kbps bandwidth (64
	kbps would provide for 8192 eight-bit samples per second) but
	will require the same special processing or {bit diddling} as
	ordinary PSTN calls.  Data calls have a Bearer Capability of
	"64 kbps unrestricted".

	ISDN is offered by local telephone companies, but most readily
	in Australia, France, Japan and Singapore, with the UK
	somewhat behind and availability in the USA rather spotty.

	(In March 1994) ISDN deployment in Germany is quite
	impressive, although (or perhaps, because) they use a
	specifically German signalling specification, called {1.TR.6}.
	The French {Numeris} also uses a non-standard protocol (called
	{VN4}; the 4th version), but the popularity of ISDN in France
	is probably lower than in Germany, given the ludicrous
	pricing.  There is also a specifically-Belgian V1 experimental
	system.  The whole of Europe is now phasing in {Euro-ISDN}.

	See also {Frame Relay}, {Network Termination}, {SAPI}.

	{FAQ
	(ftp://src.doc.ic.ac.uk/usenet/news-info/comp.dcom.isdn/)}.

	{Usenet} newsgroup: {news:comp.dcom.isdn}.

	(1998-03-29)

Integrated Systems Architecture

	(ISA for {ODP}) An {Esprit} 2 project continuing the {ANSA}
	project.

	(1995-02-21)

Integrated Systems Laboratory

	<company> A joint project of {Control Data Corporation} and
	{NCR Corporation}, established in 1973 and dissolved in 1976.

	Integrated Systems Laboratory developed {Software Writer's
	Language}.

	Address: Escondidio, California, USA.

	(2003-12-31)

integration

	<programming> Combining software or hardware components or
	both into an overall system.

	(1996-05-22)

integration testing

	<testing> A type of {testing} in which {software} and/or
	{hardware} components are combined and tested to confirm that
	they interact according to their requirements.  Integration
	testing can continue progressively until the entire system has
	been integrated.

	(2003-09-24)

integrity

	1. <data> {data integrity}.

	2. <database> {referential integrity}.

integrity constraint

	<database> A {constraint} (rule) that must remain true for a
	{database} to preserve {data integrity}.  Integrity
	constraints are specified at database creation time and
	enforced by the {database management system}.

	Examples from a genealogical database would be that every
	individual must be their parent's child or that they can have
	no more than two natural parents.

	(1995-11-11)

Intel

	{Intel Corporation}

Intel 4004

	<processor> The world's first {microprocessor}, released in
	1971.  The 4004 contained 2300 transistors (compared with 5.5
	million in the 1996 {Pentium Pro}) and was intended for use in
	a calculator.  It processed data in 4 bits, but its
	instructions were 8 bits long.  Program and Data memory were
	separate, it had 1 {kilobyte} of data memory and a 12-bit {PC}
	for 4K of program memory (in the form of a 4 level {stack},
	used for CALL and RET instructions).  There were also sixteen
	4-bit (or eight 8-bit) general purpose {registers}.  The 4004
	had 46 instructions.

	(1997-03-30)

Intel 4040

	<processor> An enhanced version of the {Intel 4004}, adding 14
	instructions, larger (8 level) {stack}, 8 kbyte program memory
	and {interrupt} abilities (including shadows of the first 8
	{registers}).  The 4040 was similar to the {Intel 8008}.

	(1994-10-31)

Intel 486

	<processor> (Or "i486", "iAPX 80486", and "Intel DX4" but
	usually just "486").  A range of {Intel} {CISC}
	{microprocessors} which is part of the {Intel 80x86} family of
	processors.

	The 486s are very similar to their immediate predecessor, the
	{Intel 80386}DX.  The main differences are that the 486 has an
	optimised {instruction set}, has an on-chip unified
	instruction and data {cache}, an optional on-chip
	{floating-point unit} (FPU), and an enhanced {bus interface
	unit}.  These improvements yield a rough doubling in
	performance over an {Intel 80386} at the same {clock rate}.

	There are several suffixes and variants including:

	{Intel 486SX} - a 486DX with a faulty {FPU} that has been
	disabled in the factory.

	{Intel 486DX} - 486SX with a working {FPU}.

	486DX-2 - runs at twice the external {clock rate}.

	486SX-2 - runs at twice the external {clock rate}.

	486SL - 486DX with power conservation circuitry.

	486SL-NM - 486SX with power conservation circuitry; SL
	enhanced suffix, denotes a 486 with special power conservation
	circuitry similar to that in the 486SL processors.

	487 - 486DX with a slightly different pinout for use in 486SX
	systems.

	OverDrive - 486DX-2 with a slightly different pinout for use
	in 486SX systems.

	{RapidCAD} - 486DX in a special package with a companion {FPU}
	dummy package for use in {Intel 80386} systems.

	{Intel DX4}, {Cyrix} {Cy486SLC}.

	External {clock rates} include 16MHz, 20MHz, 25MHz, 33MHz,
	40MHz, although 16Mhz is rare now, and the 20MHz processors
	are often clock doubled.

	The 486 processor has been licensed or reverse engineered by
	other companies such as {IBM}, {AMD}, {Cyrix}, and {Chips &
	Technologies}.  Some are almost exact duplicates in
	specications and performance, some aren't.

	The successor to the 486 is the {Pentium}.

	(1995-02-21)

Intel 486DX

	<processor> One of {Intel}'s {Intel 486} family of
	{microprocessors} (one of the last before the {Pentium}).  The
	486DX has a working built-in {floating point unit} (FPU).  The
	{Intel 486SX} is effectively a DX with the FPU disabled.  The
	DX has a pin to select the external {data bus} width (16 or
	32).

	The {Intel 487SX} is a 486DX with a 486SX pinout.

	(1995-05-09)

Intel 486SX

	<processor> An {Intel 486DX} {microprocessor} with its
	{floating-point unit} disconnected.  All 486SX chips were
	fabricated with FPUs.  If testing showed that the CPU was OK
	but the FPU was defective, the FPU's power and bus connections
	were destroyed with a laser and the chip was sold cheaper as
	an SX, if the FPU worked it was sold as a DX.

	[Was this true of all 486SX chips?]

	Some systems, e.g. Aopen 486SX, allowed a DX to be plugged
	into an expansion socket.  A board jumper would disable the SX
	which was hard to remove because it was surface mounted.

	Some SX chips only had a 16-bit wide external {data bus}.  The
	DX has a pin to select the data bus width (16 or 32).  On the
	smaller SX, that line is {hard-wired} to 16 inside the
	package.  This is similar to the 286 SX, which was a 16-bit
	processor with an 8-bit external data bus.

	The {Jargon File} claimed that the SX was deliberately
	disabled {crippleware}.  The German computer magazine, "c't",
	made this same theory the basis of an {April Fools Joke}.
	They claimed that if one drilled a hole of a specified
	diameter through the right point on a SX chip, this would
	brake the circuit that disables the FPU.  Some people actually
	tried (and then bought themselves new processors).

	(1997-02-14)

Intel 487SX

	<processor> A version of the {Intel 486DX} {microprocessor}
	with an extra pin, for use in the {coprocessor} socket of an
	{Intel 486SX} system.  The 487SX provides the {FPU} which is
	missing in the 486SX.

	Although the 486SX is completely disabled when you install a
	487SX, the 487SX design requires that you leave the 486SX in
	your PC [why?], rather than use it elsewhere.  Intel admits
	that in some systems you can unplug the 486SX and fit a 487SX
	in its place but they don't guarantee that it will always
	work.

	See {Intel 486}.

	(1995-05-10)

Intel 8008

	<processor> A {microprocessor} intended for use as a terminal
	controller, and similar to the {Intel 4040}.  The 8008 had a
	14-bit {PC} and addressing and an eight level internal
	{stack}.  It was followed by the {Intel 8080}.

	[Date?]

	(1994-10-31)

Intel 80186

	<processor> A {microprocessor} developed by {Intel} circa
	1982.  The 80186 was an improvement on the {Intel 8086} and
	{Intel 8088}.  As with the 8086, it had a 16-bit {external
	bus} and was also available as the {Intel 80188}, with an
	8-bit external {data bus}.  The initial {clock rate} of the
	80186 and 80188 was 6 MHz.  They were not used in many
	computers, but one notable exception was the {Mindset}, a very
	advanced computer for the time.  They were used as {embedded
	processors}.

	One major function of the 80186/80188 series was to reduce the
	number of chips required.

	"To satisfy this market, we defined a processor with a
	significant performance increase over the 8086 that also
	included such common peripheral functions as
	software-controlled wait state and chip select logic, three
	timers, priority interrupt controller, and two channels of DMA
	(direct memory access).  This processor, the 80186, could
	replace up to 22 separate VLSI (very large scale integration)
	and TTL (transistor-transistor logic) packages and sell for
	less than the cost of the parts it replaced."

	-- Paul Wells of Intel Corporation writing in Byte (reference
	below)

	New instructions were also introduced as follows:

	 ENTER	Make stcak frame for procedure parameters
	 LEAVE	High-level procedure exit
	 PUSHA	Push all general registers
	 POPA	Pop all general registers
	 BOUND	Check array index against bounds
	 IMUL	Signed (integer) multiply
	 INS	Input from port to string
	 OUTS	Output string to port

	["The Evolution of the iAPX 286", Bob Greene, Intel
	Corporation, PC Tech Journal, December 1984, page 134].

	["The 80286 Microprocessor", Paul Wells, Intel Corporation,
	Byte, November 1984, p. 231].

	(1999-05-10)

Intel 80188

	<processor> A version of the {Intel 80186} with an 8 bit
	external data bus (instead of 16 bit).  This makes it cheaper
	to connect to peripherals.

	(1995-01-13)

Intel 80286

	<processor> (Or "286", "i286") A {microprocessor} developed by
	{Intel}.  THe 80286 processor has a 16-bit {data bus} and
	incorporates a {memory management unit} that allowed a limited
	amount of {multitasking}.  The 80286 only has a segmented MMU
	while the later processors add a {page}d MMU "behind" the
	segmented one.

	The 80286 was the processor in the {IBM PC AT} {personal
	computer}.

	(1995-02-21)

Intel 80386

	<processor> (Commonly abbreviated to "386", trademark
	"Intel386") The successor to the {Intel 80286}
	{microprocessor}.  It was the first Intel processor with
	32-bit data and address {buss}es.  It can address four
	{gigabytes} (2^32 bytes) of memory; however, 16 megabytes is a
	typical maximum in {IBM PCs}.  The 386 allows multiple
	{application programs} to run at the same time (when running
	under 386-specific {operating systems}) using "{protected
	mode}".

	The first {IBM compatible} to use the 386 was the {Compaq}
	386, before {IBM} used it in high-end models of their {PS/2}
	series.  It is also used in {HP}'s {RS} series and many
	others.

	It does not require special {EMS} memory boards to expand
	{MS-DOS} memory limits.  With the 386, the EMS standard can be
	simulated in normal {extended memory}, and many DOS add-ons
	provide this "Expanded Memory Manager" feature.

	See also {Intel 80386SX}, {BSD386}.

	(1995-02-21)

Intel 80386DX

	<processor> A version of the {Intel 80386} with a 32-bit {data
	bus} and 32-bit {address bus}, a BGA.  The 386DX was clocked
	at 16 to 33 MHz by {Intel} and up to 40 MHz by {AMD}.  It
	comes in a {BGA} package.

	(2003-07-05)

Intel 80386SX

	<processor> A lower-speed version of the {Intel 80386}.  It
	uses a 16-bit data bus instead of a 32-bit data bus.  It has a
	24-bit {address bus}.  It is faster than the 286, and more
	importantly, like the full-size 386, provides more flexibility
	in running existing DOS applications.  Intel's version runs at
	16 MHz, while {AMD}'s can run at up to 33 MHz.  It comes in a
	{PFP} package.

	(2003-07-05)

Intel 8048

	<processor> The {microcontroller} used in {IBM PC} keyboards.
	The 8048 was inspired by, and similar to, the {Fairchild F8}
	microprocessor but, being a microcontroller, was designed for
	low cost and small size.  The 8048 has a modified {Harvard
	architecture}, with program {ROM} on chip and 64 to 256 bytes
	of {RAM} also on chip.  I/O is mapped in its own {address
	space}.

	Though the 8048 was eventually replaced by the very popular
	but bizarre {Intel 8051} and {Intel 8052}, even in 2000 it is
	still very popular due to its low cost, wide availability, and
	development tools.

	[Was it really __the_first__ microcontroller?  Are the ROM and
	RAM both on-chip?]

	(2000-06-01)

Intel 80486

	{Intel 486}

Intel 8051

	<processor> A {microcontroller} developed by {Intel} in 1980
	for use in {embedded} products and still (1999) one of the
	most popular microcontrollers.

	The 8051/8031 {cores} are used in over 100 devices from 10
	independent manufacturers such as Dallas and Philips.

	[What is the difference between the 8031/8051/8052?]

	See also {CAS 8051 Assembler}, {as31} assembler, {51forth}.

	{8051 FAQ
	(http://ece.orst.edu/~pricec/8051/faq/index.html)}.

	{The 8031/51 series microcontroller
	(http://rehn.org/YAM51/)}.

	{Intel MCS51 series microcontrollers
	(http://intel.com/design/mcs51/)}.

	(1999-11-21)

Intel 8080

	<processor> The successor to the {Intel 8008}.  The 8080 had a
	16-bit {address bus} and an 8-bit {data bus}.  It had seven
	8-bit {registers} (six which could also be combined as three
	16-bit registers), a 16-bit {stack pointer} to memory which
	replaced the 8008's internal stack and a 16-bit {program
	counter}.  It also had 256 I/O ports (so I/O devices could be
	connected without needing to allocate any addressing space as
	is required for {memory mapped} devices) and a signal pin that
	allowed the {stack} to occupy a separate bank of memory.

	Shortly after the 8080, the {Motorola 6800} was introduced.

	[Date?]

	(1994-10-31)

Intel 8085

	<processor> A {microprocessor} intended to be an improved
	{Intel 8080}, as was the {Zilog Z80}.

	(1994-10-31)

Intel 8086

	<processor> A sixteen bit {microprocessor} chip used in early
	{IBM PCs}.  The {Intel 8088} was a version with an eight-bit
	external data bus.

	The Intel 8086 was based on the design of the {Intel 8080} and
	{Intel 8085} (it was {source compatible} with the 8080) with a
	similar {register set}, but was expanded to 16 bits.  The Bus
	Interface Unit fed the instruction stream to the Execution
	Unit through a 6 byte {prefetch} queue, so fetch and execution
	were concurrent - a primitive form of {pipelining} (8086
	instructions varied from 1 to 4 bytes).

	It featured four 16-bit general {registers}, which could also
	be accessed as eight 8-bit registers, and four 16-bit {index
	registers} (including the {stack pointer}).  The data
	registers were often used implicitly by instructions,
	complicating {register allocation} for temporary values.  It
	featured 64K 8-bit I/O (or 32K 16 bit) ports and fixed
	{vectored interrupts}.  There were also four {segment
	registers} that could be set from index registers.

	The segment registers allowed the CPU to access 1 meg of
	memory in an odd way.  Rather than just supplying missing
	bytes, as most segmented processors, the 8086 actually shifted
	the segment registers left 4 bits and added it to the address.
	As a result, segments overlapped, and it was possible to have
	two pointers with the same value point to two different memory
	locations, or two pointers with different values pointing to
	the same location.  Most people consider this a {brain
	damaged} design.

	Although this was largely acceptable for {assembly language},
	where control of the segments was complete (it could even be
	useful then), in higher level languages it caused constant
	confusion (e.g. near/far pointers).  Even worse, this made
	expanding the address space to more than 1 meg difficult.  A
	later version, the {Intel 80386}, expanded the design to 32
	bits, and "fixed" the segmentation, but required extra modes
	(suppressing the new features) for compatibility, and retains
	the awkward architecture.  In fact, with the right assembler,
	code written for the 8008 can still be run on the most recent
	{Intel 486}.

	The {Intel 80386} added new {op codes} in a kludgy fashion
	similar to the {Zilog Z80} and {Zilog Z280}.  The {Intel
	486} added full {pipelines}, and {clock doubling} (like the
	{Zilog Z280}).

	So why did {IBM} chose the 8086 series when most of the
	alternatives were so much better?  Apparently IBM's own
	engineers wanted to use the {Motorola 68000}, and it was used
	later in the forgotten {IBM Instruments} 9000 Laboratory
	Computer, but IBM already had rights to manufacture the 8086,
	in exchange for giving Intel the rights to its {bubble memory}
	designs.  Apparently IBM was using 8086s in the IBM
	{Displaywriter} {word processor}.

	Other factors were the 8-bit {Intel 8088} version, which could
	use existing {Intel 8085}-type components, and allowed the
	computer to be based on a modified 8085 design.  68000
	components were not widely available, though it could use
	{Motorola 6800} components to an extent.

	{Intel} {bubble memory} was on the market for a while, but
	faded away as better and cheaper memory technologies arrived.

	(1994-12-23)

Intel 8088

	<processor> An {Intel 8086} with 16-bit {registers} and an
	8-bit data bus.

	The 8088 was the processor used in the original {IBM PC}.

	(1995-02-21)

Intel 80x86

	<processor> (x86) One of the family of {Intel}
	{microprocessors} including the {Intel 80186}, {Intel 80286},
	{Intel 80386}, {Intel 486}, in a more general sense also
	{Intel 8086}, {Pentium}, {Pentium Pro}, and {Pentium II}.

	The abbreviation "x86" also includes compatible processors,
	e.g. from {Cyrix} or {AMD}.

	(2004-02-27)

Intel 8751

	<processor> A {microcontroller} from {Intel} including a
	{CPU}, two timers.  128 bytes of {RAM}, 4 kBytes of {EEPROM},
	four eight-bit biderectional I/O ports and an {EIA-232} port.

	The 8751 belongs to the Intel i51 Microcontroller family.  It
	was designed by Intel but is now manufactured by Intel,
	{Philips}, {Siemens}, {AMD} and others.  Motorola's
	microcontroller families (68HC05, 68HC08 and 68HC11) are meant
	to compete with the i51 family.

	(1995-04-22)

Intel Comparative Microprocessor Performance index

	<benchmark, unit> (iCOMP) A unit used by {Intel} to indicate
	the relative performance of their {80x86} {microprocessors}.

	{(http://134.134.214.1/procs/perf/icomp/)}.

	(1997-06-07)

Intel Corporation

	<company> A US microelectronics manufacturer.  They produced
	the {Intel 4004}, {Intel 8080}, {Intel 8086}, {Intel 80186},
	{Intel 80286}, {Intel 80386}, {Intel 486} and {Pentium}
	{microprocessor} families as well as many other {integrated
	circuits} and {personal computer} networking and
	communications products.

	Gordon Moore and Robert Noyce founded Intel in 1968 to design,
	manufacture, and market semiconductor computer memory to
	replace {magnetic core} memory, the dominant computer memory
	at that time.  Dr. Andrew S. Grove joined Intel soon after its
	incorporation.  Three years later, in 1971, Intel introduced
	the world's first {microprocessor}, the {Intel 4004}.

	Intel has design, development, production, and administration
	facilities throughout the western US, Europe and Asia.  In
	1995 nearly 75% of the world's {personal computers} use Intel
	architecture.  Annual revenues are rapidly approaching $10
	billion.  In March, 1994, "Business Week" named Intel one of
	the top ten American companies in terms of profit, one of the
	top 15 market value winners, and 16th out of the magazine's
	top 1,000 companies overall.

	Intel invested a record $2.9 billion in capital and R&D in
	1993, and expects to increase combined spending on these
	activities to $3.5 billion in 1994.  Quarterly sales were
	$2770M and profits, $640M in Aug 1994.

	{(http://intel.com/)}.

	Address: Santa Clara, CA, USA.

	(1995-03-01)

IntelDX4

	<processor> Essentially an {Intel 486DX} {microprocessor} with
	a 16 kilobyte on-chip {cache}.

	The DX4 is the fastest member of the {Intel 486} family.  75
	and 100MHz versions are available.  At an iCOMP index rating
	of 435, the 100 MHz DX4 performs up to 50% faster than the 66
	MHz {Intel DX2}.  The DX4's {clock multiplier} allows the
	processor to run three times faster than the {system clock}.
	This performance is achieved in part by a 16K on-chip {cache}
	(double that of the other 486s).  The DX4 has an integrated
	{floating point unit}.

	Like the other 486s, the DX4 achieves performance through a
	{RISC} integer core that executes frequently used instructions
	in a single {clock cycle} (the {Pentium}'s can execute
	multiple instructions in a single clock cycle).

	Low power consumption has been achieved with {SL} Technology
	and a 0.6 micron manufacturing process, giving 1.6 million
	{transistors} on a single chip operating at only 3.3 Volts.

	"IntelDX4" is the entire name, the "486" has been dropped and
	I am assured that there is no space in the same.

	(1995-04-28)

Intel i960

	<processor> A {superscalar} 32-bit {RISC} {microprocessor}
	from {Intel} intended for {embedded} applications.

	The i960 CA variant can reach 66 native MIPS peak performance
	with a sustained execution of two instructions per clock
	cycle.  The i960 CF has an on-chip, four kilobyte two-way
	{set-associative} {instruction cache} and a one kilobyte {data
	cache}.  Both the CA and CF processors have on-chip {RAM}; a
	four-channel {DMA} unit; and integrated peripherals.

	(1996-05-23)

INTELLECT

	<language> A {query language} written by Larry Harris in 1977,
	close to natural English.

	(1995-04-14)

intellectual property

	<legal> (IP) The ownership of ideas and control over the
	tangible or virtual representation of those ideas.  Use of
	another person's intellectual property may or may not involve
	royalty payments or permission, but should always include
	proper credit to the source.

	(1997-03-27)

intelligent backtracking

	<algorithm> An improved {backtracking} {algorithm} for
	{Prolog} {interpreters}, which records the point at which each
	{logic variable} becomes bound and, when a given set of
	bindings leads to failure, ignores any {choice point} which
	does not bind any of those variables.  No choice from such a
	choice point can succeed since it does not change the bindings
	which caused the failure.

	(1996-04-06)

intelligent database

	<database> A {database management system} which performs data
	validation and processing traditionally done by {application
	programs}.  Most DBMSs provide some data validation,
	e.g. rejecting invalid dates or alphabetic data entered into
	money fields, but often most processing is done by application
	programs.  There is however no limit to the amount of
	processing that can be done by an intelligent database as long
	as the process is a standard function for that data.

	Examples of techniques used to implement intelligent databases
	are {constraints}, {triggers} and {stored procedures}.

	Moving processing to the database aids {data integrity}
	because it is guaranteed to be consistent across all uses of
	the data.  {Mainframe} databases have increasingly become more
	intelligent and personal computer database systems are rapidly
	following.

	(1998-10-07)

Intelligent Input/Output

	<architecture> /i:-too-oh/ (I2O) A specification which aims to
	provide an {I/O} {device driver} architecture that is
	independent of both the specific device being controlled and
	the host {operating system}.  The Hardware Device Module (HDM)
	manages the device and the OS Services Module (OSM) interfaces
	to the host operating system.  The HDM is portable across
	multiple operating systems, processors and busses.  The HDM
	and OSM communicate via a two layer {message passing}
	{protocol}.  A Message Layer sets up a communications session
	and runs on top of a Transport Layer which defines how the two
	parties share information.

	I2O is also designed to facilitate intelligent I/O subsystems,
	with support for {message passing} between multiple
	independent processors.  By relieving the host of {interrupt}
	intensive I/O tasks required by the various layers of a driver
	architecture, the I2O intelligent I/O architecture greatly
	improves I/O performance.  I2O systems will be able to more
	efficiently deliver the I/O throughput required by a wide
	range of high bandwidth applications, such as networked
	{video}, {groupware} and {client-server} processing.  I2O does
	not restrict where the layered modules execute, providing
	support for single processor, {multiprocessor}, and
	{clustered} systems.

	I2O is not intended to replace the driver architectures
	currently in existence.  Rather, the objective is to provide
	an open, standards-based approach, which is complementary to
	existing drivers, and provides a framework for the rapid
	development of a new generation of portable, intelligent I/O.

	{(http://i2osig.org/)}.

	(1997-11-04)

Intelligent I/O

	{Intelligent Input/Output}

intelligent key

	<database> A {relational database} {key} which depends wholly
	on one or more other columns in the same table.  An
	intelligent key might be identified for implementation
	convenience, where there is no good {candidate key}.

	For example, if the three-letter initials of a group of people
	are known to be unique but only their full names are recorded,
	a three letter acronym for their names (e.g. John Doe Smith ->
	JDS) would be an intelligent key.

	Intelligent keys are a {Bad Thing} because it is hard to
	guarantee uniqueness, and if the value on which an intelligent
	key depends changes then the key must either stay the same,
	creating an inconsistency within the containing table, or
	change, requiring changes to all other tables in which it
	appears as a {foreign key}.  The correct solution is to use a
	{surrogate key}.

	(1999-12-07)

intelligent terminal

	<hardware> (or "smart terminal", "programmable terminal") A
	terminal that often contains not only a keyboard and screen,
	but also comes with a disk drive and printer, so it can
	perform limited processing tasks when not communicating
	directly with the central computer.  Some can be programmed by
	the user to perform many basic tasks, including both
	arithmetic and logic operations.  In some cases, when the user
	enters data, the {data} will be checked for errors and some
	type of report will be produced.  In addition, the valid data
	that is entered may be stored on the disk, it will be
	transmitted over communication lines to the central computer.

	An intelligent terminal may have enough computing capability
	to draw graphics or to offload some kind of front-end
	processing from the computer it talks to.

	The development of {workstations} and {personal computers} has
	made this term and the product it describes semi-obsolescent,
	but one may still hear variants of the phrase "act like a
	smart terminal" used to describe the behaviour of workstations
	or PCs with respect to programs that execute almost entirely
	out of a remote {server}'s storage, using said devices as
	displays.

	The term once meant any terminal with an {addressable cursor};
	the opposite of a {glass tty}.  Today, a terminal with merely
	an addressable cursor, but with none of the more-powerful
	features mentioned above, is called a {dumb terminal}.

	There is a classic quote from Rob Pike (inventor of the {blit}
	terminal): "A smart terminal is not a smart*ass* terminal, but
	rather a terminal you can educate".  This illustrates a common
	design problem: The attempt to make peripherals (or anything
	else) intelligent sometimes results in finicky, rigid "special
	features" that become just so much dead weight if you try to
	use the device in any way the designer didn't anticipate.
	Flexibility and programmability, on the other hand, are
	*really* smart.

	Compare {hook}.

	(1995-04-14)

IntelliMouse

	{Microsoft IntelliMouse Explorer}

Intel Literature Sales

	Address: PO Box 58130, Santa Clara, CA 95052, USA.

	Telephone: +1 800 548 4725.

	(1995-01-12)

Intelsat

	<company, communications> A private satellite communications
	company that provides telephony, corporate network, {video}
	and {Internet} solutions around the globe via capacity on 25
	geosynchronous satellites.

	(2003-05-13)

Intel x86

	{Intel 80x86}

intensional

	<philosophy> A description of properties, e.g. intensional
	equality, that relate to how an object is implemented as
	opposed to extensional properties which concern only how its
	output depends on its input.

	(1995-01-12)

Intent to Package

	<Debian> (ITP) A notice, posted to the {Debian} developer
	{mailing list}, announcing a developer's intent to make a new
	Debian package, including a brief description of the package
	and its license.

	(2000-05-31)

INTERACTIVE

	A network simulation language.

	["Design and Implementation of a Pascal Based Interactive
	Network Simulation Language", R. Lakshmanan, PhD Thesis,
	Oakland U, Rochester MI 1983].

	(1995-01-12)

interactive

	<programming> A term describing a program whose input and
	output are interleaved, like a conversation, allowing the
	user's input to depend on earlier output from the same run.

	The interaction with the user is usually conducted through
	either a text-based interface or a {graphical user interface}.
	Other kinds of interface, e.g. using {speech recognition}
	and/or {speech synthesis}, are also possible.

	This is in contrast to {batch} processing where all the input
	is prepared before the program runs and so cannot depend on
	the program's output.

	(1996-06-21)

Interactive CourseWare

	(ICW) A training program controlled by a computer that relies
	on trainee input to determine the order and pace of
	instruction delivery.  The trainee advances through the
	sequence of instructional events by making decisions and
	selections.  The instruction branches according to the
	trainee's responses.

	ICW is a US military term which includes {computer-aided
	instruction} and {computer-based training}.

	(1995-11-08)

Interactive Data analysis Language

	<language> (IDL) A language from {Xerox}, built on
	{Interlisp-D}.

	(2004-05-07)

Interactive Data Entry/Access

	<language> (IDEA) A language from {Data General} in which you
	designed the screen first, and then wrote the program around
	the predefined fields.  IDEA was a precursor to the {DG COBOL}
	{Screen Section}.

	(1996-02-16)

Interactive Data Language

	(IDL) A commercial {array}-oriented language with numerical
	analysis and display features, first released in 1977.  It
	supports interactive {reduction}, analysis, and
	{visualisation} of scientific data.  It is sold by {Research
	Systems, Inc.}

	Version: 3.6.1 runs under {Unix}, {MS-DOS}, {MS Windows},
	{VAX}/{VMS} and {Macintosh}.

	Not to be confused with any of the other {IDLs}.

	{(ftp://gateway.rs.inc.com/pub/idl)}.

	E-mail: <info@rsinc.com>.

	(1994-10-07)

interactive development environment

	<programming, tool> (IDE, integrated development environment)
	A system for supporting the process of writing software.  Such
	a system may include a {syntax-directed editor}, graphical
	tools for program entry, and integrated support for compiling
	and running the program and relating compilation errors back
	to the {source}.

	Such systems are typically both interactive and integrated,
	hence the ambiguous acronym.  They are interactive in that the
	developer can view and alter the execution of the program at
	the level of statements and variables.  They are integrated in
	that, partly to support the above interaction, the source code
	editor and the execution environment are tightly coupled,
	e.g. allowing the developer to see which line of source code
	is about to be executed and the current values of any
	variables it refers to.

	Examples include {Visual C++} and {Visual Basic}.

	(2002-09-21)

Interactive Development Environments

	<company> (IDE) A US {software engineering} company.

	(1996-03-04)

Interactive Software Engineering

	<company> (ISE) The company set up by {Bertrand Meyer}, now
	its president, to develop and distribute {Eiffel}, the
	language which he created.  ISE also organises the {TOOLS}
	conference (Technology of Object-Oriented Languages and
	Systems).

	{(http://eiffel.com/)}.

	E-mail: info@eiffel.com.

	Telephone: +1 (805) 685 1006.

	Address: Santa Barbara, Goleta CA, USA.

	(1995-12-28)

Interactive System Productivity Facility

	<operating system> (ISPF) Something to do with {IBM}'s
	{OS/390}.

	{(http://s390.ibm.com/bookmgr-cgi/bookmgr.cmd/BOOKS/ISPDGD02/COVER?SHELF=ISP5BK01)}.

	[Summary?]

	(1999-07-14)

Interactive Voice Response

	<communications> (IVR) <communications> A {telecommunications}
	system, prevelant with {PBX} and {voice mail} systems, that
	uses a prerecorded database of voice messages to present
	options to a user, typically over telephone lines.  User input
	is retrieved via {DTMF} tone key presses.

	When used in conjunction with {voice mail}, for example, these
	systems typically allow users to store, retrieve, and route
	messages, as well as interact with an underlying {database}
	server which may allow for automated transactions and {data
	processing}.

	(15 Sept 1997)

	(1997-09-21)

Interagency Interim National Research and Education Network

	(IINREN) An evolving operating network system.  Near term
	(1992-1996) research and development activities will provide
	for the smooth evolution of this networking infrastructure
	into the future gigabit {NREN}.

	(1994-12-06)

InterBase

	A commercial {active DBMS}.

INTERCAL

	<language, humour> /in't*r-kal/ (Said by the authors to stand
	for "Compiler Language With No Pronounceable Acronym").

	Possibly the most elaborate and long-lived joke in the history
	of programming languages.  It was designed on 1972-05-26 by
	Don Woods and Jim Lyons at Princeton University.

	INTERCAL is purposely different from all other computer
	languages in all ways but one; it is purely a written
	language, being totally unspeakable.  The INTERCAL Reference
	Manual, describing features of horrifying uniqueness, became
	an underground classic.  An excerpt will make the style of the
	language clear:

	It is a well-known and oft-demonstrated fact that a person
	whose work is incomprehensible is held in high esteem.  For
	example, if one were to state that the simplest way to store a
	value of 65536 in a 32-bit INTERCAL variable is:

	    DO :1 <- #0$#256

	any sensible programmer would say that that was absurd.  Since
	this is indeed the simplest method, the programmer would be
	made to look foolish in front of his boss, who would of course
	have happened to turn up, as bosses are wont to do.  The
	effect would be no less devastating for the programmer having
	been correct.

	INTERCAL has many other peculiar features designed to make it
	even more unspeakable.  The Woods-Lyons implementation was
	actually used by many (well, at least several) people at
	{Princeton}.

	Eric S. Raymond <esr@snark.thyrsus.com> wrote C-INTERCAL in
	1990 as a break from editing "The New Hacker's Dictionary",
	adding to it the first implementation of {COME FROM} under its
	own name.  The compiler has since been maintained and extended
	by an international community of technomasochists and is
	consequently enjoying an unprecedented level of unpopularity.

	The version 0.9 distribution includes the compiler, extensive
	documentation and a program library.  C-INTERCAL is actually
	an INTERCAL-to-C source translator which then calls the local
	{C} compiler to generate a binary.  The code is thus quite
	portable.

	{Intercal Resource Page
	(http://locke.ccil.org/~esr/intercal/)}.

	{Usenet} newsgroup: {news:alt.lang.intercal}.

	["The INTERCAL Programming Language Reference Manual", Donald
	R. Woods & James M. Lyon].

	[{Jargon File}]

	(1997-04-09)

Interchange File Format

	<file format> (IFF, full name "EA IFF 1985") A generic file
	format published by {Electronic Arts} as an open standard.
	IFF is {chunk}-based and hierarchical so files can include
	other files.  It is easily extensible and an all round Good
	Idea.

	An IFF file starts with one of the following "group IDs":
	'FORM', 'LIST' or 'CAT '.  This is followed by an unsigned
	32-bit number of bytes in the remainder of the file.  Then
	comes an ID that indicates which type of IFF file this is.
	The main image type is {ILBM}, {audio} is either {AIFF} or
	{8SVX}, animations are {ANIM} etc.  An IFF file will probably
	have a {filename extension} related to this file type stored
	in the file.  The rest of the file is divided into {chunks}
	each of which also has a four-byte header and byte count.

	{Microsoft} {WAV} and {AVI} are all based around an almost
	identical scheme to IFF called {RIFF}.  The main difference is
	that, in RIFF files, numbers are little-endian as on {Intel}
	processors, whereas in IFF files they are big-endian, as on
	the {Motorola 68000} processors in the {Amiga} where IFF files
	were first used.

	(1997-07-23)

INTERCOM

	<language> The {assembly language} for the {G-15}.

	Versions: INTERCOM 101, INTERCOM 1000.

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

	(1997-07-23)

Interdata

	<company> A computer manufacturer.  Interdata became
	{Perkin-Elmer}, then {Concurrent}.

	(2004-05-12)

Interest Group in Pure and Applied Logics

	(IGPL) A body of 700 researchers in various aspects of {logic}
	(symbolic, mathematical, computational, philosophical, etc.)
	from all over the world.  The group's main rôle is as a
	research and information clearing house.  The group also:
	supports exchange of information about research problems,
	references and common interest among group members; helps to
	obtain photocopies of papers; supplies review copies of books
	through the Journals on which some members are editors;
	organises exchange visits and workshops; advises on papers for
	publication; edits and distributes a Newsletter and an
	electronic Bulletin; keeps an {FTP archive} of papers,
	abstracts; obtains reductions on group purchases of logic
	books from publishers.

	{(http://theory.doc.ic.ac.uk/tfm/igpl.html)}.

	E-mail: <igpl-request@doc.ic.ac.uk>.

	(1995-02-10)

interesting

	In hacker parlance, this word has strong connotations of
	"annoying", or "difficult", or both.  Hackers relish a
	challenge, and enjoy wringing all the irony possible out of
	the ancient Chinese curse "May you live in interesting times".

	[{Jargon File}]

inter-exchange carrier

	<communications> (IXC) A company allowed to handle
	long-distance calls following the break-up of the Bell system
	in the US by anti-trust regulators.

	{Local Exchange Carriers} (LEC) are not allowed to handle
	long-distance traffic and Inter Exchange carriers are not
	allowed to handle local calls.

	(2002-08-28)

interface

	<jargon> A boundary across which two systems communicate.  An
	interface might be a hardware connector used to link to other
	devices, or it might be a convention used to allow
	communication between two software systems.  Often there is
	some intermediate component between the two systems which
	connects their interfaces together.  For example, two {EIA-232}
	interfaces connected via a serial cable.

	See also {graphical user interface}, {Application Program
	Interface}.

	(1996-05-22)

interface analysis

	<testing> A software test which checks the interfaces between
	program elements for consistency and adherence to predefined
	rules or {axioms}.

	(1996-07-09)

Interface Architect

	An interface builder for Motif distributed by Hewlett-Packard
	(see UIMX).

Interface Definition Language

	(IDL) 1. An {OSF} standard for defining {RPC} stubs.

	[Details?]

	2. Part of an effort by {Project DOE} at {SunSoft, Inc.}  to
	integrate distributed {object} technology into the {Solaris}
	{operating system}.  IDL provides the standard interface
	between objects, and is the base mechanism for object
	interaction.

	The {Object Management Group}'s {CORBA} 1.1 (Common Object
	Request Broker Architecture) specifies the interface between
	objects.  IDL (Interface Definition Language) is the base
	mechanism for object interaction.

	The SunSoft OMG IDL CFE (Compiler Front End) version 1.2
	provides a complete framework for building CORBA 1.1-compliant
	preprocessors for OMG IDL.  To use it you write a back-end.  A
	complete compiler of IDL would translate IDL into {client}
	side and {server} side routines for remote communication in
	the same manner as {Sun}'s current {RPCL} compiler.  The IDL
	compiler front end allows integration of new back ends which
	can translate IDL to various programming languages.

	Several companies including Sunsoft are building back ends to
	the CFE which translate IDL into target languages,
	e.g. {Pascal} or {C++}, in the context of planned
	CORBA-compliant products.  IDL requires C++ 2.1.

	Not to be confused with any of the other {IDLs}.

	E-mail: <idl-cfe@sun.com>.

	{(ftp://omg.org/pub/omg_idl_cfe.tar.Z)},
	{(ftp://omg.org/pub/OMG_IDL_CFE_1.2/)}.

	Telephone: Mache Creeger, SunSoft, Inc. +1 (415) 336 5884.

	(1993-05-04)

Interface Description Language

	(IDL) A language designed by Nestor, Lamb and Wulf of {CMU} in
	1981 for describing the data structures passed between parts
	of an application, to provide a language-independent
	intermediate representation.

	It forms part of Richard Snodgrass <rts@cs.arizona.edu>'s
	{Scorpion} environment development system.

	Not to be confused with any of the other {IDLs}.

	Mailing list: info-idl@sei.cmu.edu.

	["The Interface Description Language: Definition and Use," by
	Richard Snodgrass, Computer Science Press, 1989, ISBN
	0-7167-8198-0].

	[SIGPLAN Notices 22(11) (Nov 1987) special issue].

	(1994-11-11)

Interface Message Processor

	<networking> (IMP) The original {message switching node} on
	the {ARPANET}.

	[More details?]

	(1996-04-07)

Interior Gateway Protocol

	(IGP) An {Internet} {protocol} which distributes {routing}
	information to the {routers} within an {autonomous system}.
	The term "{gateway}" is historical, "router" is currently the
	preferred term.

	See also {Exterior Gateway Protocol}, {Open Shortest Path
	First}, {Routing Information Protocol}.

	(1994-11-09)

interlace

	{progressive coding}

interlaced image

	{progressive coding}

interlacing

	1. <hardware> A {video} display system which builds an {image}
	on the {VDU} in two phases, known as "fields", consisting of
	even and odd horizontal lines.

	The complete image (a "frame") is created by scanning an
	electron beam horizontally across the screen, starting at the
	top and moving down after each horizontal scan until the
	bottom of the screen is reached, at which point the scan
	starts again at the top.  On an interlaced display, even
	numbered {scan lines} are displayed in the first field and
	then odd numbered lines in the second field.

	For a given screen {resolution}, {refresh rate} (frames per
	second) and {phosphor} {persistence}, interlacing reduces
	flicker because the top and bottom of the screen are redrawn
	twice as often as if the scan simply proceded from top to
	bottom in a single vertical sweep.

	2. <graphics> {progressive coding}.

	(1998-02-25)

Interlan

	A brand of {Ethernet} card.

	(1994-11-09)

Interleaf

	A document preparation system for {Sun}, {VAX}, {Apollo} and
	other {workstations}.

	(1994-11-09)

interleave

	{interleaving}

interleaving

	{sector interleave}

INTERLINK

	A commercial product comprising hardware and software for file
	transfer between IBM and VAX computers.

Interlisp

	<language> A dialect of {Lisp} developed in 1967 by {Bolt,
	Beranek and Newman} (Cambridge, MA) as a descendant of
	{BBN-Lisp}.  It emphasises user interfaces.  It is
	currently[?] supported by {Xerox PARC}.

	Interlisp was one of two main branches of LISP (the other
	being {MACLISP}).  In 1981 {Common LISP} was begun in an
	effort to combine the best features of both.  Interlisp
	includes a Lisp programming environment.  It is {dynamically
	scoped}.  LAMBDA functions evaluate their arguments, NLAMBDA
	functions do not.  Any function could be called with optional
	arguments.

	See also {AM}, {CLISP}, {Interlisp-10}, {Interlisp-D}.

	["Interlisp Programming Manual", W. Teitelman, TR, Xerox Rec
	Ctr 1975].

	(2004-05-07)

Interlisp-10

	An {Interlisp} with {shallow binding}.

Interlisp-D

	{Xerox}'s {Interlisp} with {deep binding}.

Intermedia

	A hypertext system developed by a research group at IRIS
	(Brown University).

Intermedia Interchange Format

	A Standard {Hypertext} Interchange format from IRIS.

intermediate code

	{intermediate language}

Intermediate Distribution Frame

	<networking> (IDF) A {network closet} containing a secondary
	{hub}, fed from the main hub.

	(1995-05-05)

Intermediate Programming Language

	<language> A very early attempt by Arthur W. Burks to express
	machine language at a higher level of abstraction.  Like
	{Plankalkul}, it used a right-handed style of {assignment}, in
	which the location appears on the right.

	(1995-05-09)

Intermediate System

	<networking> (IS) An {Open Systems Interconnection} system
	which performs {network layer} forwarding.  It is analogous to
	an {IP} {router}.

	(1994-11-29)

Intermediate System-Intermediate System

	<networking> (IS-IS) The {OSI} {Interior Gateway Protocol}.

	(2003-07-12)

intermercial

	{interstitial}

Intermetrics, Inc.

	{AverStar}

intermodulation distortion

	<electronics, communications> (IMD) {Nonlinear} {distortion}
	in a system or {transducer}, characterised by the appearance
	in the output of frequencies equal to the sums and differences
	of integral multiples of the two or more component frequencies
	present in the {input} waveform.

	(2000-08-21)

internal field separators

	<operating system> ($IFS) A predefined {environment variable}
	in the {Unix} {Bourne shell} whose default value is the
	three-character string containing {space}, {tab} and {line
	feed}.  Any string of one or more of these characters
	separates the command and each of its arguments in a command
	line.

	$IFS also tells the shell's built-in read command where to
	split an input line when reading into multiple variables.
	E.g. setting IFS=: would be appropriate for reading a file
	with ':'-separated fields, such as /etc/passwd.

	(1999-04-07)

Internal Translator

	<language, mathematics> (IT) An early {compiler} for
	mathematics developed by A.J. {Perlis} et al at Carnegie Tech
	ca 1957.  IT was originally written for the {Burroughs 205},
	then the {IBM 650}.

	IT was the forerunner of RUNCIBLE, GATE, CORRELATE and GAT.
	IT source code was converted to PIT, thence to SPIT.

	IT-2 produced machine language directly, IT-3 developed at
	Carnegie added double-precision {floating-point}.

	[Sammet 1969, pp. 139-141].

	[CACM 1(5):22 1958].

	(1994-11-30)

International Algebraic Language

	{ALGOL 58}

International Atomic Time

	<time, standard> (TAI) An international standard measurement
	of time based on the comparison of many {atomic clocks}.  TAI
	is maintained by the Bureau International des Poids et Mesures
	(BIPM), the world's governing body for civil atomic time
	measurement.  TAI is the basis for {Coordinated Universal
	Time}.

	{BIPM
	(http://www.bipm.org/enus/5_Scientific/c_time/time_1.html)}.

	(2001-08-02)

International Business Machines

	<company> (IBM) The best known American computer manufacturer,
	founded by Thomas J. Watson (born 1874-02-17), known as "Big
	Blue" after the colour of its logo.  IBM makes everything from
	{mainframes} to {personal computers} (PCs) and has been
	immensely successful in selling them, chiefly to business.  It
	has often been said that "Nobody has ever been sacked for
	buying IBM".

	The {IBM PC} in its various versions has been so successful
	that unqualified reference to a "PC" almost certainly means a
	PC from IBM, or one of the many brands of {clone} produced by
	other manufacturers to cash in on IBM's original success.

	Alternative expansions of "IBM" such as Inferior But
	Marketable; It's Better Manually; Insidious Black Magic; It's
	Been Malfunctioning; Incontinent Bowel Movement, illustrate
	the considerable antipathy most hackers have long felt toward
	the "industry leader" (see {fear and loathing}).

	Quarterly sales $15351M, profits $689M (Aug 1994).

	{(http://ibm.com/)}.

	(1999-04-07)

International Computers Limited plc

	<company> (ICL) A UK hardware and software manufacturer
	specialising in systems integration in selected markets,
	supported by its service and technology businesses.  ICL
	operates in over 80 countries worldwide, with 24000 employees
	and revenues of  £2.6 billion in 1993.

	ICL produced {George 2}, {George 3}, {VME}, {OpenVME}, {Series
	39}, {DME}, {CME}, the {ICL 1900} and {ICL 2900} series.

	{(http://icl.co.uk/)}.

	{Usenet} newsgroup: {news:alt.sys.icl}.

	(1995-04-19)

International Core War Society

	<games, standard, body> (ICWS) The official standards body for
	{Core War}.

	(1996-02-16)

International Data Encryption Algorithm

	<algorithm, cryptography> (IDEA) A conventional {encryption}
	{algorithm}, written by Xuejia Lai and James Massey, in 1992.

	It is a {block cipher}, considered to be the best and most
	secure available, and operates on 64-bit blocks with a 128 bit
	{key}.

	It is used by {Pretty Good Privacy}.

	(1996-03-07)

International Electrotechnical Commission

	<standard, body> (IEC) A {standard}isation body at the same
	level as {ISO}.

	[Relationship?  Why separate?]

	(1995-04-21)

International Federation for Information Processing

	<body> A multinational federation of professional and technical
	organisations (or national groupings of such organisations)
	concerned with information processing.  From any one country,
	only one such organisation - which must be representative of
	the national activities in the field of information processing
	- can be admitted as a Full Member.  In addition, a regional
	group of developing countries can be admitted as a Full
	Member.  On 1 October 1993, 46 organisations were Full Members
	of the Federation, representing 66 countries.

	IFIP was founded under the auspices of UNESCO and advises them
	and the {ITU-T}.

	{(http://dit.upm.es/~cdk/ifip.html)}.

	(1995-03-10)

International Function Point Users Group

	<body, programming> (IFPUG) A forum for the exchange of ideas
	about {Function Point Analysis}.  IFPUG's membership now
	includes over 500 companies on four continents.

	Telephone: +1 (614) 8957130.

	(1995-03-10)

internationalisation

	<programming> (i18n, globalisation, enabling, software
	enabling) The process and philosophy of making software
	portable to other {locales}.

	For successful {localisation}, products must be technically
	and culturally neutral.  Effective internationalisation
	reduces the time and resources required for localisation,
	improving time-to-market abroad and allowing {simultaneous
	shipment}.  In orther words, internationalisation abstracts
	out local details, localisation specifies those details for a
	particular locale.

	Technically this may include allowing {double-byte character
	sets} such as {unicode} or Japanese, local numbering, date and
	currency formats, and other local format conventions.

	It also includes the separation of {user interface} text
	e.g. in {dialog boxes} and {menus}.  All the text used by an
	application may be kept in a separate file or directory, so
	that it can be translated all at once.  User interfaces may
	require more screen space for text in other languages.

	The simplest form of internationalisation may be to make use
	of {operating system} calls that format time, date and
	currency values according to the operating system's
	configuration.

	The abbreviation i18n means "I - eighteen letters - N".

	(1999-06-28)

internationalization

	{internationalisation}

International Multimedia Teleconferencing Consortium

	<body> (IMTC) A non-profit corporation formed in September
	1994 comprising more than 150 companies from around the world.
	The IMTC encourages the development and implementation of
	interoperable {multimedia} {teleconferencing} systems based on
	international {open standards}.

	{(http://imtc.org/)}.

	(1999-03-17)

International Olympiad in Informatics

	<event> (IOI) An annual competition in computing science for
	senior pupils at secondary schools all over the world.

	{(http://win.tue.nl/win/ioi/)}.

	(1996-12-07)

International Organisation for Standardisation

	{International Organization for Standardization}

International Organization for Standardization

	<standard, body> (ISO) A voluntary, nontreaty organisation
	founded in 1946, responsible for creating international
	{standards} in many areas, including computers and
	communications.  Its members are the national standards
	organisations of 89 countries, including the {American
	National Standards Institute}.

	ISO produced the {OSI} seven layer model for network
	architecture.

	The term "ISO" is not actually an acronym for anything.  It is
	a pun on the Greek prefix "iso-", meaning "same".  Some ISO
	documents say ISO is not an acronym even though it is an
	anagram of the initials of the organisation's name.

	{(http://iso.ch/)}.

	(1999-06-22)

International Phonetic Alphabet

	<text, human language> (IPA) A system of symbols for
	representing pronunciation.  There is no commonly agreed way
	to represent IPA in {ASCII} characters though it can be
	represented in {Unicode}.

	[Reference?]

	(1998-12-30)

International Programmable Airline Reservation System

	<application> (IPARS) The international version of {PARS},
	designated by {IBM} for use in all IBM World trade countries
	(i.e. outside domestic USA).

	(1999-01-18)

International Smalltalk Association

	<body> (ISA) A user group which published newsletters on
	{Smalltalk}-related issues, technical and general information.
	Its goal was to champion Smalltalk and its uses.  It was
	disbanded around 1991.

	(1995-02-16)

International Standard

	<standard> The series of {standards} from {ISO} and its
	subcommitees.

	[List?  Text?]

	(1995-04-21)

International Telecommunications Union

	<body, standard> (ITU) ITU-T, the telecommunication
	standardisation sector of ITU, is responsible for making
	technical recommendations about telephone and data (including
	fax) communications systems for {PTTs} and suppliers.  Before
	1993-03-01 ITU-T was known as CCITT.  Every four years they
	hold plenary sessions where they adopt new standards; there
	was one in 1992.

	ITU works closely with all {standards} organisations to form
	an international uniform standards system for communication.
	Study Group XVII is responsible for recommending standards for
	data communications over telephone networks.  They publish the
	V.XX standards and X.n {protocols}.  {V.21} is the same as
	{EIA}'s {EIA-232}.  {V.24} is the same as EIA's {EIA-232C}.
	{V.28} is the same as EIA's {EIA-232D}.

	Address: International Telecommunication Union, Information
	Services Department, Place des Nations, 1211 Geneva 20,
	Switzerland.

	Telephone: +41 (22) 730 5554.  Fax: +41 (22) 730 5337.

	E-mail: <helpdesk@itu.ch>, <teledoc@itu.arcom.ch> (Mail body:
	HELP).

	{(http://itu.ch/)}.

	ITU-T standards can be obtained by {FTP} from {Korea
	(ftp://kum.kaist.ac.kr/doc/STANDARDS/ccitt)}; UK - {Imperial
	(ftp://src.doc.ic.ac.uk/pub/computing/ccitt/ccitt-standards/)},
	{HENSA
	(ftp://unix.hensa.ac.uk/pub/uunet/doc/literary/obi/Standards/CCITT)};
	France - {INRIA (ftp://croton.inria.fr/ITU/ccitt)}, {IMAG
	(ftp://imag.imag.fr/doc/ccitt)}; {Israel
	(ftp://cs.huji.ac.il/pub/doc/standards/ccitt)}; FTP USA:
	{UUNET (ftp://ftp.uu.net/pub/lietrary/obi/Standards/CCITT)},
	{gatekeeper
	(ftp://gatekeeper.dec.com/pub/net/info/bruno.cs.colorado.edu/pub/standards/ccitt)},
	{world.std.com (ftp://world.std.com/obi/Standards/CCITT)};
	{Australia (ftp://metro.ucc.su.oz.au/pub/ccitt)}; {Germany
	(ftp://quepasa.cs.tu-berlin.de/pub/doc/CCITT)}; {Japan
	(ftp://sh.wide.ad.jp/CCITT)};

	(1995-01-16)

International Traffic in Arms Regulation

	<legal> (ITAR) Now called the {Defense Trade Regulations}.

Internaut

	<jargon, World-Wide Web> (From "Internet" + "astronaut") A
	person who explores the {Internet} (or "{cyberspace}"),
	normally searching for information.

	(2002-06-30)

Internet

	<networking> (Note: capital "I").  The Internet is the largest
	{internet} (with a small "i") in the world.  It is a three
	level {hierarchy} composed of {backbone networks}, {mid-level
	networks}, and {stub networks}.  These include commercial
	(.com or .co), university (.ac or .edu) and other research
	networks (.org, .net) and military (.mil) networks and span
	many different physical networks around the world with various
	{protocols}, chiefly the {Internet Protocol}.

	Until the advent of the {World-Wide Web} in 1990, the Internet
	was almost entirely unknown outside universities and corporate
	research departments and was accessed mostly via {command
	line} interfaces such as {telnet} and {FTP}.  Since then it
	has grown to become an almost-ubiquitous aspect of modern
	information systems, becoming highly commercial and a widely
	accepted medium for all sort of customer relations such as
	advertising, brand building, and online sales and services.
	Its original spirit of cooperation and freedom have, to a
	great extent, survived this explosive transformation with the
	result that the vast majority of information available on the
	Internet is free of charge.

	While the web (primarily in the form of {HTML} and {HTTP}) is
	the best known aspect of the Internet, there are many other
	{protocols} in use, supporting applications such as
	{electronic mail}, {Usenet}, {chat}, {remote login}, and {file
	transfer}.

	There were 20,242 unique commercial domains registered with
	{InterNIC} in September 1994, 10% more than in August 1994.
	In 1996 there were over 100 {Internet access providers} in the
	US and a few in the UK (e.g. the {BBC Networking Club},
	{Demon}, {PIPEX}).

	There are several bodies associated with the running of the
	Internet, including the {Internet Architecture Board}, the
	{Internet Assigned Numbers Authority}, the {Internet
	Engineering and Planning Group}, {Internet Engineering
	Steering Group}, and the {Internet Society}.

	See also {NYsernet}, {EUNet}.

	{The Internet Index (http://openmarket.com/intindex)} -
	statistics about the Internet.

	(2000-02-21)

internet

	<networking> (Note: not capitalised) Any set of networks
	interconnected with {routers}.  The {Internet} is the biggest
	example of an internet.

	(1996-09-17)

Internet Access Provider

	<networking, company> (IAP) A company or other origanisation
	which provides access to the {Internet} to businesses and/or
	consumers.  An IAP purchases an Internet link from another
	company that has a direct link to the Internet and resells
	portions of that {bandwidth} to the general public.

	For example, an IAP may purchase a {T1} link (1.544Mb/s) and
	resell that bandwidth in chunks consisting of {ISDN} (64Kb/s,
	128Kb/s) and analog {modems} (14.4Kb/s, 28.8Kb/s).  The IAP's
	customer base is likely to include both businesses and
	individuals.  Individual customers usually connect to the IAP
	via a modem and telephone line to a (preferably local) {point
	of presence}.

	An IAP may also be an {Internet Service Provider}.

	(1996-06-25)

Internet Adapter

	<networking, product> The Internet Adapter (TIA).  A program
	from {Cyberspace Development} which runs on a {Unix} shell
	account and acts as a {SLIP} {emulator}.  A TIA emulated SLIP
	account is not quite the same as a real SLIP account but TIA's
	SLIP emulation is completely standard in terms of working with
	{MacTCP}-based software on the {Macintosh} (or {WinSock} on a
	{Microsoft Windows} machine).

	You do not get your own {Internet Address} as you do with a
	real SLIP account, instead, TIA uses the IP number of the
	machine it runs on and "redirects" traffic back to you.  You
	cannot set up your machine as an {FTP} {server}, for instance,
	since there's no IP number for an {FTP} {client} elsewhere to
	connect to.

	TIA's performance is reportedly good, faster than normal SLIP
	in fact, and about as fast as {Compressed SLIP}.  Future
	releases will support {CSLIP} and even {PPP}.

	{Cyberspace Development} has ported TIA to several versions of
	{Unix} and more are on the way.

	{TERM} is a free program which performs a similar function
	between two machines both running {Unix}.

	{(http://marketplace.com/)}.

	{Setting up TIA
	(http://webcom.com/~llarrow/tiarefg.html)}.

	{Telnet (telnet://marketplace.com)}.

	{Gopher (gopher://marketplace.com/)}.

	{FTP (ftp://marketplace.com/tia/)}.

	E-mail: <tia-info@marketplace.com>.

	(1995-04-12)

Internet address

	{IP address}

internet address

	<networking> (Note lower case "i").  An {IP} address that
	uniquely identifies a node on an {internet}.

	[{Jargon File}]

	(1995-04-12)

Internet Architecture Board

	(IAB) The technical body that oversees the development of the
	{Internet} suite of {protocols}.  It has two task forces: the
	{Internet Engineering Task Force} and the {Internet Research
	Task Force}.

	"IAB" previously stood for Internet Activities Board.

	(1994-12-06)

Internet Assigned Numbers Authority

	<body, networking> (IANA) The central registry for various
	"{assigned numbers}": {Internet Protocol} parameters, such as
	{port}, {protocol}, and {enterprise} numbers; and options,
	codes, and types.  The currently assigned values are listed in
	the "Assigned Numbers" document {STD 2}.  To request a number
	assignment, e-mail <iana@isi.edu>.

	(1994-12-06)

Internet backbone

	<communications, networking> High-speed networks that carry
	{Internet} traffic.

	These {communications} {networks} are provided by companies
	such as {AT&T}, {GTE}, {IBM}, {MCI}, {Netcom}, {Sprint},
	{UUNET} and consist of high-speed links in the {T1}, {T3},
	{OC1} and {OC3} ranges.  The {backbones} carry {Internet}
	traffic around the world and meet at {Network Access Points}
	(NAPs).

	{Internet Service Providers} (ISPs) connect either directly to
	a backbone, or they connect to a larger ISP with a connection
	to a backbone.

	The {topology} of the "backbone" and its interconnections may
	once have resembled a spine with ribs connected along its
	length but is now almost certainly more like a fishing net
	wrapped around the world with many circular paths.

	[Map?]

	(1998-07-02)

Internet Chess Server

	<networking, games> An interactive meeting-place on the
	{Internet} where people can play {chess} against each other.

	{Usenet} newsgroup: {news:alt.chess.ics}.

	[Server address?]

	(1995-03-25)

Internet Control Message Protocol

	<protocol> (ICMP) An extension to the {Internet Protocol} (IP)
	that allows for the generation of error messages, test
	packets, and informational messages related to IP.  It is
	defined in STD 5, {RFC 792}.

	(1999-09-18)

Internet Corporation for Assigned Names and Numbers

	<body, networking> (ICANN) The non-profit corporation that was
	formed to assume responsibility for {IP address} allocation,
	protocol parameter assignment, {domain name system}
	management, and {root server} system management functions now
	performed under U.S. Government contract by {IANA} and other
	entities.

	{ICANN Home (http://icann.org/)}.

	(2002-01-09)

Internet-Draft

	(I-D) A draft working document of the {Internet Engineering
	Task Force}, its Areas, and its Working Groups.  As the name
	implies, Internet-Drafts are purely discussion documents with
	no formal status.  They are valid for a maximum of six months
	and may be updated, replaced, or obsoleted by other documents
	at any time.  Very often, an I-D is a precursor to a {Request
	For Comments}.

	(1994-12-08)

Internet Engineering and Planning Group

	(IEPG) {(http://iepg.org/)}.

Internet Engineering Steering Group

	(IESG) A body composed of the {Internet Engineering Task
	Force} Area Directors and the IETF Chair.  It provides the
	first technical review of {Internet} standards and is
	responsible for day-to-day "management" of the IETF.

	(1994-12-08)

Internet Engineering Task Force

	<networking, standard, body> (IETF) The IETF is a large, open
	international community of network designers, operators,
	vendors and researchers whose purpose is to coordinate the
	operation, management and evolution of the {Internet} and to
	resolve short- and mid-range {protocol} and architectural
	issues.  It is a major source of proposals for {protocol}
	{standards} which are submitted to the {Internet Architecture
	Board} (IAB) for final approval.  The IETF meets three times a
	year and extensive minutes are included in the IETF
	Proceedings.

	The IETF Secretariat, run by The {Corporation for National
	Research Initiatives} with funding from the US government,
	maintains an index of {Internet-Drafts} whereas {RFCs} are
	maintained by The {Internet Architecture Board}.

	{(http://ietf.org)}.

	(1999-01-27)

Internet Experiment Note

	(IEN) A series of reports pertinent to the {Internet}.  IENs
	were published in parallel to RFCs and are no longer active.

	See also {Internet-Draft}, {Request For Comments}.

	(1994-12-08)

Internet Explorer

	<World-Wide Web> (IE, MSIE) {Microsoft}'s free {World-Wide
	Web} {browser} for {Microsoft Windows}, {Windows 95}, {Windows
	NT}, and {Macintosh}.  Internet Explorer is the main rival to
	{Netscape Navigator} (which runs on many more {platforms}).
	Both support the same core features and offer incompatible
	extensions.

	Microsoft combined later versions of IE with their {file
	system} browser, "Explorer" and bundled it with {Windows 95}
	in an attempt to use their dominance of the {desktop}
	{operating system} market to force users to abandon Netscape's
	browser, which they perceived as a potential threat.  This,
	and other dubious business moves, became the subject of a US
	Department of Justice antitrust trial in late 1998/early 1999.

	{(http://microsoft.com/ie/)}.

	(1999-01-31)

Internet Express

	An {Internet provider} in Colorado Springs, USA.  Formerly
	called the Community News Service.  They provide {SLIP}
	accounts at no extra charge.

	(1994-12-08)

Internet Foundation Classes

	<language, library, programming, standard> (IFC) A {library}
	of {classes} used in the creation of {Java} {applets} with
	{GUIs}.

	Created by {Netscape}, the Internet Foundation Classes provide
	GUI elements, as well as classes for {Applications Services},
	{Security}, {Messaging}, and {Distributed Objects}.

	The IFC code, which is exclusively Java, is layered on top of
	the Java {Abstract Windowing Toolkit} (AWT), thus preserving
	{platform independence}.

	The AWT and IFC collectively form the {Java Foundation
	Classes}, which provide a standardised framework for
	developing powerful Java applications.

	{IFC download (http://wp.netscape.com/eng/ifc/download.html)}.

	(2003-08-17)

Internet Go Server

	<games, networking> (IGS) A place for {Go} players to meet and
	play via the {Internet}.

	{IGS Home (http://pandanet.co.jp/English/)}.

	(1995-03-17)

Internet Group Management Protocol

	<protocol> (IGMP) An extension to the {Internet Protocol},
	used by IP {hosts} to report their {host group} memberships to
	immediately-neighbouring {multicast} {routers}.

	See also {MBONE}.

	Version 1 of IGMP is defined in Appendix 1 of {RFC 1112}.

	Version 2 is proposed in {RFC 2236}.

	(1999-11-08)

Internet Information Server

	<World-Wide Web> (IIS) {Microsoft's} {web server} and {FTP
	server} for {Windows NT}.

	IIS is intended to meet the needs of a range of users: from
	workgroups and departments on a corporate {intranet} to {ISPs}
	hosting {websites} that receive millions of {hits} per day.

	Features include innovative web publishing, customisable
	tools, {wizards}, customisable management tools, flexible
	administration options, and analysis tools.

	IIS makes it easy to share documents and information across a
	company intranet or the {Internet}, and is completely
	integrated with {Windows NT Directory Services}.

	IIS 1.0 was released for {Windows NT 3.51} and had a limited
	feature set.

	IIS 2.0 was released with {Windows NT 4.0} with a similar
	feature set to IIS 1.0.

	IIS 3.0 quickly followed with many additions including
	{Active Server Pages} (ASP), {ISAPI} and {ADO} 1.0.

	IIS 4.0 is built into {Windows NT Server 4.0}.  It includes
	ASP 2.0, ISAPI and ADO 1.5.

	{(http://microsoft.com/iis)}.

	Rival servers include {Apache} and {Netscape Enterprise
	Server}.

	(1999-08-04)

Internet Inter-ORB Protocol

	<protocol, standard> (IIOP) A protocol which will be mandatory
	for all {CORBA} 2.0 compliant {platforms}.  The initial phase
	of the project is to build an infrastructure consisting of: an
	IIOP to {HTTP} {gateway} which allows CORBA {clients} to
	access {WWW} resources; an HTTP to IIOP gateway to let WWW
	clients access CORBA resources; a {web server} which makes
	resources available by both IIOP and HTTP; web browsers which
	can use IIOP as their {native} protocol.

	{(http://ansa.co.uk/ANSA/ISF/wwwCorba_1.html)}.

	(1996-04-01)

Internet Message Access Protocol

	<protocol, messaging> (IMAP) A {protocol} allowing a {client}
	to access and manipulate {electronic mail} messages on a
	{server}.  It permits manipulation of remote message folders
	({mailboxes}), in a way that is functionally equivalent to
	local mailboxes.

	IMAP includes operations for creating, deleting, and renaming
	mailboxes; checking for new messages; permanently removing
	messages; searching; and selective fetching of message
	attributes, texts, and portions thereof.  It does not specify
	a means of posting mail; this function is handled by a mail
	transfer protocol such as {SMTP}.

	Latest version: 4.

	See {RFC 2060}, {RFC 2061}, and others.

	Compare: {POP}.

	(1999-03-14)

Internet Monthly Report

	(IMR) Publication designed to communicate to the {Internet
	Research Group} the accomplishments, milestones reached, or
	problems discovered by the participating organisations.

	(1994-12-08)

Internet Network Information Center

	<networking> (InterNIC) An umbrella entity created by the
	{National Science Foundation} in Spring 1992, in cooperation
	with the Internet community, consisting of Network Information
	Service Managers who provided and/or coordinated {NSFNet}
	services.  {General Atomics} provided information services,
	{AT&T} provided directory and database services, and {Network
	Solutions, Inc.} (NSI) provided registration services.

	In 1999 Internic was replaced by {ICANN}.

	{(http://internic.net/)}.

	{(http://nic.net/)}.

	(2003-04-16)

internet number

	{internet address}

Internet Open Trading Protocol

	<protocol, business> (IOTP, Formerly "Open Trading Protocol",
	OTP) A specification that provides an interoperable framework
	for Internet commerce.  It is optimised for the case where the
	buyer and the merchant do not have a prior acquaintance and is
	payment system independent.  It will be able to encapsulate
	and support payment systems such as {SET}, {Mondex},
	CyberCash's {CyberCoin}, DigiCash's {e-cash}, GeldKarte, etc.
	IOTP is able to handle cases where such merchant roles as the
	shopping site, the payment handler, the deliverer of goods or
	services, and the provider of customer support are performed
	by different Internet sites.

	The IOTP specification is maintained by the {IETF} {Internet
	Open Trading Protocol (trade) Working Group
	(http://ietf.org/html.charters/trade-charter.html)}.

	{(http://otp.org/)}.

	(2001-09-22)

Internet Protocol

	<networking> (IP) The {network layer} for the {TCP/IP}
	{protocol} suite widely used on {Ethernet} networks, defined
	in {STD} 5, {RFC} 791.  IP is a {connectionless},
	{best-effort} {packet switching} protocol.  It provides
	{packet} {routing}, {fragmentation} and re-assembly through
	the {data link layer}.

	IPv4 is the version in widespread use and {IPv6} was just
	beginning to come into use in 2000 but is still not widespread
	by 2008.

	[Other versions?  Dates?]

	(2000-12-19)

Internet Protocol Control Protocol

	<networking> (IPCP) The {Control Protocol} for {Internet
	Protocol}.

	[Details?]

	(2002-06-29)

Internet Protocol version 4

	<networking, protocol> The version of {Internet Protocol} in
	widespread use in 2000.

	(2000-12-19)

Internet Protocol version 6

	<networking, protocol> (IPv6, IPng, IP next generation) The
	most viable candidate to replace the current {Internet
	Protocol}.  The primary purpose of IPv6 is to solve the
	problem of the shortage of {IP addresses}.

	The following features have been purposed: 16-byte addresses
	instead of the current four bytes; embedded {encryption} - a
	32-bit {Security Association ID} (SAID) plus a variable length
	initialisation vector in {packet} headers; user
	{authentication} (a 32-bit SAID plus variable length
	{authentication} data in headers); autoconfiguration
	(currently partly handled by {Dynamic Host Configuration
	Protocol}); support for {delay-sensitive traffic} - a 24 bit
	flow ID field in headers to denote voice or video, etc.

	One possible solution is based on the {TUBA} protocol (RFC
	1347, 1526, 1561) which is itself based on the {OSI}
	{Connectionless Network Protocol} (CNLP).  Another is {TP/IX}
	(RFC 1475) which changes {TCP} and {UDP} headers to give a
	64-bit {IP address}, a 32-bit {port} number, and a 64 bit
	sequence number.

	{RFC 1550} is a white paper on IPng.

	{IPv6.org (http://ipv6.org/)}.

	["Doubts About IPng could create TCP/IP chaos", Johna Till
	Johnson, Data Communications, Nov 1994].

	(2004-06-17)

Internet provider

	{Internet Service Provider}

Internet Public Library

	(IPL) A project at the {University of Michigan} School of
	Information and Library Studies to provide an on-line, 24 hour
	public library, chaired by an assemblage of librarians and
	information industry professionals.  The library aims to
	provide library services to a target audience estimated to
	number 1/4 of the entire American population by the end of the
	century.

	The Internet Public Library is scheduled to go on-line in
	March 1995.  Among the first services will be on-line
	reference; youth services; user education; and professional
	services for librarians.

	{(http://ipl.sils.umich.edu/)}.

	{(telnet://ipl.sils.umich.edu/)}.

	Mailing list: majordomo@sils.umich.edu.

	(1995-07-20)

Internet Registry

	(IR) The {Internet Assigned Numbers Authority} has the
	discretionary authority to delegate portions of its
	responsibility and, with respect to {network address} and
	{Autonomous System} identifiers, has lodged this
	responsibility with the {IR}.  The IR function is performed by
	the {Defense Data Network} {Network Information Center}.

Internet Relay Chat

	<chat, messaging> (IRC) /I-R-C/, occasionally /*rk/ A
	{client-server} {chat} system of large (often worldwide)
	networks.  IRC is structured as networks of {Internet}
	{servers}, each accepting connections from {client} programs,
	one per user.

	The IRC community and the {Usenet} and {MUD} communities
	overlap to some extent, including both {hackers} and regular
	folks who have discovered the wonders of computer networks.
	Some {Usenet} jargon has been adopted on IRC, as have some
	conventions such as {emoticons}.  There is also a vigorous
	native jargon (see the entry for "{chat}").

	The largest and first IRC network is {EFNet}, with a smaller
	breakaway network called the {Undernet} having existed since
	1992, and dozens of other networks having appeared (and
	sometimes disappeared) since.

	See also {nick}, {bot}, {op}.

	{Yahoo's IRC index
	(http://yahoo.com/Computers_and_Internet/Internet/Chat/IRC/)}.

	(1998-01-25)

Internet Research Steering Group

	<body, standard> (IRSG) The "governing body" of the {Internet
	Research Task Force}.

	(1994-12-08)

Internet Research Task Force

	(IRTF) The IRTF is chartered by the {Internet Architecture
	Board} to consider long-term {Internet} issues from a
	theoretical point of view.  It has Research Groups, similar to
	{Internet Engineering Task Force} Working Groups, which are
	each tasked to discuss different research topics.  Multi-cast
	audio/video conferencing and {privacy enhanced mail} are
	samples of IRTF output.

	(1994-12-08)

Internet Security Association and Key Management Protocol

	<networking, protocol> (ISAKMP) The definitions and procedures
	for {authenticating} communication between 2 {peers}.  This
	includes the creation and management of {Security
	Associations}, {key} generation techniques, and {threat
	mitigation}.  ISAKMP is proposed in {RFC 2408}.

	(2000-02-08)

Internet Server Application Programming Interface

	<World-Wide Web> (ISAPI) {Microsoft}'s programming interface
	between applications and their {Internet Server}.  Active
	Servers created with ISAPI extensions can be complete
	in-process applications themselves, or can "connect" to other
	services.  ISAPI is used for the same sort of functions as
	{CGI} but uses {Microsoft Windows} {dynamic link libraries}
	(DLL) for greater efficiency.  The server loads the DLL the
	first time a request is received and the DLL then stays in
	memory, ready to service other requests until the server
	decides it is no longer needed.  This minimises the overhead
	associated with executing such applications many times.

	An HTTP server can unload ISAPI application DLLs to free
	memory or preload them to speed up the first access.
	Applications can also be enhanced by {ISAPI filters}

	(1997-01-06)

Internet Service Provider

	<company, networking> (ISP) A company which provides other
	companies or individuals with access to, or presence on, the
	{Internet}.  Most ISPs are also {Internet Access Providers};
	extra services include help with design, creation and
	administration of {World-Wide Web} sites, training and
	administration of {intranets} and {domain name} registration.

	(2005-06-19)

Internet Society

	<body> (ISOC) A non-profit, professional membership
	organisation which facilitates and supports the technical
	evolution of the {Internet}, stimulates interest in and
	educates the scientific and academic communities, industry and
	the public about the technology, uses and applications of the
	Internet, and promotes the development of new applications for
	the system.  The Society provides a forum for discussion and
	collaboration in the operation and use of the global Internet
	infrastructure.

	The Internet Society publishes a quarterly newsletter, the
	Internet Society News, and holds an annual conference, INET.
	The development of Internet technical standards takes place
	under the auspices of the Internet Society with substantial
	support from the {Corporation for National Research
	Initiatives} under a cooperative agreement with the US Federal
	Government.

	{(http://info.isoc.org/)}.

	(1994-10-27)

Internet Telephony

	{IP Telephony}

Internet Telephony Service Providers

	<communications> (ITSP) Companies providing {IP Telephony}.

	(1999-04-26)

internetworking

	The interconnection of two or more {networks}, usually {local
	area networks} so that data can pass between {hosts} on the
	different networks as though they were one network.  This
	requires some kind of {router} or {gateway}.

	(1994-11-30)

Internetwork Packet eXchange

	<networking> (IPX) A {network layer} {protocol} initially
	developed at {XEROX Corporation} and made popular by {Novell,
	Inc.} as the basic protocol in its {Novell NetWare} {file
	server} {operating system}.

	A {router} with IPX routing can interconnect {Local Area
	Networks} so that Netware {clients} and {servers} can
	communicate.

	The {SPX} {transport layer} protocol runs on top of IPX.

	(1997-03-04)

Internet Worm

	<networking, security> The November 1988 {worm} perpetrated by
	{Robert T. Morris}.  The worm was a program which took
	advantage of bugs in the {Sun} {Unix} {sendmail} program,
	{Vax} programs, and other security loopholes to distribute
	itself to over 6000 computers on the {Internet}.  The worm
	itself had a bug which made it create many copies of itself on
	machines it infected, which quickly used up all available
	processor time on those systems.

	Some call it "The Great Worm" in a play on Tolkien (compare
	{elvish}, {elder days}).  In the fantasy history of his Middle
	Earth books, there were dragons powerful enough to lay waste
	to entire regions; two of these (Scatha and Glaurung) were
	known as "the Great Worms".  This usage expresses the
	connotation that the RTM hack was a sort of devastating
	watershed event in hackish history; certainly it did more to
	make non-hackers nervous about the Internet than anything
	before or since.

	(1995-01-12)

Internex On-Line

	A rather cheap {Internet} service provider in Toronto, Canada.

	{(http://io.org/)}.

	(1994-11-30)

InterNIC

	{Internet Network Information Center}

interoperability

	The ability of software and hardware on multiple machines from
	multiple vendors to communicate.

interoperable database

	A {database} {front-end} which communicates with multiple
	heterogenous databases and makes them appear as a single
	homogenous entity with {semantic calls}.

	See {ODBC}.

	(1995-02-06)

inter-packet gap

	<networking> A time delay between successive data {packets}
	mandated by the network standard for {protocol} reasons.

	In {Ethernet}, the medium has to be "silent" (i.e., no data
	transfer) for a few microseconds before a {node} can consider
	the network idle and start to transmit.  This is necessary for
	fairness reasons.  The delay time, which approximately equals
	the signal propagation time on the cable, allows the "silence"
	to reach the far end so that all nodes consider the net idle.

	(1995-11-11)

interpolation

	{extrapolation}

Interpress

	Interpreted {FORTH}-like graphics language, possibly the first
	{page description language}, predating {PostScript}.  Both are
	descendants of {JaM}.  Used on {Xerox} printers.

	["Interpress, The Source Book", Steven Harrington et al, P-H
	1988.]

interpreted

	{interpreter}

interpreter

	<programming> A program which executes other programs.  This
	is in contrast to a {compiler} which does not execute its
	input program (the "{source code}") but translates it into
	executable "{machine code}" (also called "{object code}")
	which is output to a file for later execution.  It may be
	possible to execute the same source code either directly by an
	interpreter or by compiling it and then executing the {machine
	code} produced.

	It takes longer to run a program under an interpreter than to
	run the compiled code but it can take less time to interpret
	it than the total required to compile and run it.  This is
	especially important when prototyping and testing code when an
	edit-interpret-debug cycle can often be much shorter than an
	edit-compile-run-debug cycle.

	Interpreting code is slower than running the compiled code
	because the interpreter must analyse each statement in the
	program each time it is executed and then perform the desired
	action whereas the compiled code just performs the action.
	This run-time analysis is known as "interpretive overhead".
	Access to variables is also slower in an interpreter because
	the mapping of identifiers to storage locations must be done
	repeatedly at run time rather than at compile time.

	There are various compromises between the development speed
	when using an interpreter and the execution speed when using a
	compiler.  Some systems (e.g. some {Lisps}) allow interpreted
	and compiled code to call each other and to share variables.
	This means that once a routine has been tested and debugged
	under the interpreter it can be compiled and thus benefit from
	faster execution while other routines are being developed.
	Many interpreters do not execute the source code as it stands
	but convert it into some more compact internal form.  For
	example, some {BASIC} interpreters replace {keywords} with
	single byte tokens which can be used to {index} into a {jump
	table}.  An interpreter might well use the same {lexical
	analyser} and {parser} as the compiler and then interpret the
	resulting {abstract syntax tree}.

	There is thus a spectrum of possibilities between interpreting
	and compiling, depending on the amount of analysis performed
	before the program is executed.  For example {Emacs Lisp} is
	compiled to "{byte-code}" which is a highly compressed and
	optimised representation of the Lisp source but is not machine
	code (and therefore not tied to any particular hardware).
	This "compiled" code is then executed (interpreted) by a {byte
	code interpreter} (itself written in {C}).  The compiled code
	in this case is {machine code} for a {virtual machine} which
	is implemented not in hardware but in the byte-code
	interpreter.

	See also {partial evaluation}.

	(1995-01-30)

Interpretive Menu Processor

	<language> (IMP) The language used to implement much of the
	{user interface} of the {Alis} {office automation} package
	from {Applix, Inc}.

	(1996-04-07)

Inter-process Communication

	<programming, operating system> (IPC) Exchange of data between
	one {process} and another, either within the same computer or
	over a {network}.  It implies a {protocol} that guarantees a
	response to a request.  Examples are {Unix} {sockets}, {RISC
	OS}'s messages, {OS/2}'s {Named Pipes}, {Microsoft Windows}'
	{DDE}, {Novell}'s {SPX} and {Macintosh}'s IAC.

	Although IPC is performed automatically by programs, an
	analogous function can be performed interactively when users
	cut and paste data from one process to another using a
	{clipboard}.

	(1995-12-14)

interrupt

	<programming> 1. An {asynchronous} event that suspends normal
	processing and temporarily diverts the {flow of control}
	through an "{interrupt handler}" routine.

	Interrupts may be caused by both {hardware} (I/O, timer,
	machine check) and {software} (supervisor, {system call} or
	{trap} instruction).

	In general the computer responds to an interrupt by storing
	the information about the current state of the running
	program; storing information to identify the source of the
	interrupt; and invoking a first-level {interrupt handler}.
	This is usually a {kernel} level privileged process that can
	discover the precise cause of the interrupt (e.g. if several
	devices share one interrupt) and what must be done to keep
	operating system tables (such as the process table) updated.
	This first-level handler may then call another handler,
	e.g. one associated with the particular device which generated
	the interrupt.

	2. Under {MS-DOS}, nearly synonymous with "{system call}"
	because the {OS} and {BIOS} routines are both called using the
	INT instruction (see {interrupt list}) and because programmers
	so often have to bypass the operating system (going directly
	to a BIOS interrupt) to get reasonable performance.

	[{Jargon File}]

	(1995-02-07)

interrupt handler

	<software> A routine which is executed when an {interrupt}
	occurs.  Interrupt handlers typically deal with low-level
	events in the hardware of a computer system such as a
	character arriving at a {serial port} or a tick of a
	{real-time clock}.  Special care is required when writing an
	interrupt handler to ensure that either the interrupt which
	triggered the handler's execution is masked out (inhibitted)
	until the handler exits, or the handler is {re-entrant} so
	that multiple concurrent invocations will not interfere with
	each other.

	If interrupts are masked then the handler must execute as
	quickly as possible so that important events are not missed.
	This is often arranged by splitting the processing associated
	with the event into "upper" and "lower" halves.  The lower
	part is the interrupt handler which masks out further
	interrupts as required, checks that the appropriate event has
	occurred (this may be necessary if several events share the
	same interrupt), services the interrupt, e.g. by reading a
	character from a {UART} and writing it to a {queue}, and
	re-enabling interrupts.

	The upper half executes as part of a user process.  It waits
	until the interrupt handler has run.  Normally the {operating
	system} is responsible for reactivating a process which is
	waiting for some low-level event.  It detects this by a shared
	{flag} or by inspecting a shared queue or by some other
	synchronisation mechanism.  It is important that the upper and
	lower halves do not interfere if an interrupt occurs during
	the execution of upper half code.  This is usually ensured by
	disabling interrupts during {critical sections} of code such
	as removing a character from a queue.

	(2002-07-24)

interrupt list

	[{MS-DOS}] The list of all known {software interrupt} calls
	(both documented and undocumented) for {IBM PCs} and
	compatibles, maintained and made available for free
	redistribution by Ralf Brown <ralf@cs.cmu.edu>.  As of late
	1992, it had grown to approximately two megabytes in length.

interrupt priority level

	The {Motorola 68000} family of processors can be at an
	interrupt priority level from 0 (no interrupt in progress) up
	to 7.  While the processor is handling an interrupt at one
	level, it will ignore other interrupts at that level or lower.

	(1994-11-23)

interrupt request

	(IRQ) The name of an input found on many processors which
	causes the processor to suspend normal instruction execution
	temporarily and to start executing an {interrupt handler}
	routine.  Such an input may be either "{level sensitive}" -
	the {interrupt} condition will persist as long as the input is
	active or "{edge triggered}" - an interrupt is signalled by a
	low-to-high or high-to-low transition on the input.  Some
	processors have several interrupt request inputs allowing
	different priority interrupts.

	(1994-12-08)

interrupts

	{interrupt}

Intersil 6100

	<programming> (IMS 6100) A single chip design of the {DEC}
	{PDP-8} {minicomputer}.  The old PDP-8 design was very
	strange, and if it hadn't been popular, an awkward {CPU} like
	the 6100 would never been designed.

	The 6100 was a 12-bit processor, which had three {registers}:
	the {PC}, AC (accumulator), and MQ.  All 2-operand
	instructions read AC and MQ and wrote back to AC.  It had a
	12-bit {address bus}, limiting {RAM} to only 4K.  Memory
	references were 7-bit, offset either from address 0, or from
	the PC page base address (PC AND 7600 oct).

	It had no {stack}.  Subroutines stored the {PC} in the first
	word of the subroutine code itself, so {recursion} required
	fancy programming.

	4K RAM was pretty much hopeless for general purpose use.  The
	6102 support chip (included in the 6120) added 3 address
	lines, expanding memory to 32K the same way that the PDP-8/E
	expanded the PDP-8.  Two registers, IFR and DFR, held the page
	for instructions and data respectively (IFR was always used
	until a data address was detected).  At the top of the 4K
	page, the PC wrapped back to 0, so the last instruction on a
	page had to load a new value into the IFR if execution was to
	continue.

	(2003-04-04)

Intersil 6120

	<processor> (IMS 6120) An improved version of the {Intersil
	6100}.  The 6120 was used in the {DECmate}.

	[Details?]

	(1994-11-23)

interstitial

	<World-Wide Web> A {World-Wide Web} page that appears before
	the expected content page.  Interstitials can be used for
	advertising (intermercial, transition ad) or to confirm that
	the user is old enough to view the requested page, etc..

	(2003-07-11)

Intertec

	<company> The computer manufacturer that built the {Superbrain}.

	All Intertec systems were sold, installed and serviced by dealers.
	Intertec manufactured the entire product including designing and
	producing the circuit boards and molding the cabinets.

	Intertec's first products were terminals - a {dumb terminal}
	called "Intertube" and a {smart terminal} that emulated various
	common terminals ({VT100} etc.) called "The Emulator".  The
	terminals looked similar to the Superbrain, but smaller.

	{(http://www.old-computers.com/museum/computer.asp?st=1&c=204)}.

	(2013-12-30)

interupt

	<spelling> It's spelled "{interrupt}".

	(1996-12-13)

InterViews

	An object-oriented toolkit developed at Stanford University
	for building graphical user interfaces.  It is implemented in
	C++ and provides a library of objects and a set of protocols
	for composing them.

interworking

	<standard> Systems or components, possibly from different
	origins, working together to perform some task.  Interworking
	depends crucially on {standards} to define the {interfaces}
	between the components.  The term implies that there is some
	difference between the components which, in the absence of
	common standards, would make it unlikely that they could be
	used together.  For example, {software} from different
	companies, running on different {hardware} and {operating
	systems} can interwork via standard network {protocols}.

	(1998-11-22)

intranet

	<networking> Any {network} which provides similar services
	within an organisation to those provided by the {Internet}
	outside it but which is not necessarily connected to the
	Internet.  The commonest example is the use by a company of
	one or more {World-Wide Web} servers on an internal {TCP/IP}
	network for distribution of information within the company.

	Since about 1995, intranets have become a major growth area in
	corporate computing due to the availability of cheap or free
	commercial {browser} and {web server} software which allows
	them to provide a simple, uniform {hypertext} interface to
	many kinds of information and {application programs}.

	Some companies give limited access to their intranets to other
	companies or the general public.  This is known as an
	"{extranet}".

	(1997-07-14)

Intrinsics

	<operating system, graphics> A library package on top of
	{Xlib}, extending the basic functions of the {X Window
	System}.  It provides mechanisms for building {widget sets}
	and application environments.

	(1996-08-26)

introspection

	<programming, philosophy> A feature of some {programming
	languages} that allows a running {program} to obtain
	information about its own implementation.

	For example, the {Lisp} function, "symbol-function" takes a
	Lisp symbol and returns the function definition associated
	with that symbol.  Lisp is particularly suited to
	introspection because its {source code} uses the same
	underlying representation as its data.  Another example is
	{Perl}'s "can" {method} which returns true if a given
	{object}'s {class} provides a given method.

	(2010-01-19)

introspection annotation

	<programming> A kind of {pragma} that makes information about
	the implementation of a program available to the program at
	{run-time}, allowing it to do {introspection}.

	For example, {gtk-doc} defines a {GObject Introspection}
	{syntax} for {annotations} that give {machine readable}
	information about function {parameters} and {return values},
	though these don't appear to be intended for actual
	introspection.

	(2010-01-19)

Intrusion Countermeasure Electronics

	<security, jargon> (ICE) A contrived acronym for security
	software, coined by {Usenet}ter Tom Maddox and popularised by
	{William Gibson}'s {cyberpunk} SF novels.  In Gibson's novels
	ICE software responds to intrusion by attempting to literally
	kill the intruder.

	The term is not in serious use as of 2000 apart from the
	commercial software product, {BlackICE} and a growing number
	of others.

	See also: {icebreaker}.

	[{Jargon File}]

	(2000-03-18)

Intrusive Testing

	<testing> Testing that collects timing and processing
	information during program execution that may change the
	behaviour of the software from its behavior in a real
	environment.  Intrusive testing usually involves additional
	code embedded in the software being tested or additional
	processes running concurrently with software being tested on
	the same processor.

	(1996-12-01)

Intuition

	<operating system> The {Amiga} {windowing system} (a
	shared-code library).

	(1997-08-01)

intuitionism

	{intuitionistic logic}

intuitionistic logic

	<logic, mathematics> Brouwer's foundational theory of
	mathematics which says that you should not count a proof of
	(There exists x such that P(x)) valid unless the proof
	actually gives a method of constructing such an x.  Similarly,
	a proof of (A or B) is valid only if it actually exhibits
	either a proof of A or a proof of B.

	In intuitionism, you cannot in general assert the statement (A
	or not-A) (the principle of the {excluded middle}); (A or
	not-A) is not proven unless you have a proof of A or a proof
	of not-A.  If A happens to be {undecidable} in your system
	(some things certainly will be), then there will be no proof
	of (A or not-A).

	This is pretty annoying; some kinds of perfectly
	healthy-looking examples of {proof by contradiction} just stop
	working.  Of course, excluded middle is a theorem of
	{classical logic} (i.e. non-intuitionistic logic).

	{History
	(http://britanica.com/bcom/eb/article/3/0,5716,118173+14+109826,00.html)}.

	(2001-03-18)

intuitionistic probability

	<logic> Florentin Smarandache's representation of the
	probability of an event occuring, given by T, I, F which are real
	subsets representing the truth, indeterminacy, and falsity
	percentages respectively, and

	 n_sup = sup(T) + sup(I) + sup(F) < 100

	Related to {intuitionistic logic}.

	[Florentin Smarandache, "A Unifying Field in Logics. /
	{Neutrosophy}: Neutrosophic Probability, Set, and Logic",
	American Research Press, Rehoboth 1999].

	(2001-03-18)

intuitionist logic

	<spelling> Incorrect term for "{intuitionistic logic}".

	(1999-11-24)

invariant

	<programming> A rule, such as the {ordering} of an ordered
	list or {heap}, that applies throughout the life of a data
	structure or procedure.  Each change to the data structure
	must maintain the correctness of the invariant.

	(1996-03-12)

inverse

	<mathematics> Given a {function}, f : D -> C, a function g : C
	-> D is called a left inverse for f if for all d in D, g (f d)
	= d and a right inverse if, for all c in C, f (g c) = c and an
	inverse if both conditions hold.  Only an {injection} has a
	left inverse, only a {surjection} has a right inverse and only
	a {bijection} has inverses.  The inverse of f is often written
	as f with a -1 superscript.

	(1996-03-12)

Inverse Address Resolution Protocol

	<networking, protocol> (InARP) Additions to {ARP} typically
	used for {Frame Relay}.  [Any other examples of its use?]

	{Frame Relay} stations {route} {frames} of a higher level
	protocol between {LANs}, across a {Permanent Virtual Circuit}.
	These stations are identified by their {Data Link Control
	Identifier} (DLCI), equivalent to an {Ethernet address} in a
	{LAN} itself.

	InARP allows a station to determine a protocol address (e.g.
	{IP address}) from a DLCI. This is useful if a new {virtual
	circuit} becomes available.  Signalling messages announce its
	DLCI, but without the corresponding protocol address it is
	unusable: no {frames} can be {routed} to it.

	{Reverse ARP} (RARP) performs a similar task on an {Ethernet}
	{LAN}, however RARP answers the question "What is my IP
	Address?" whereas InARP answers the question "What is your
	protocol address?".

	See {RFC 2390}.

	(2000-01-15)

inverse comment convention

	<programming> A kind of {literate programming} where the
	program code is marked to distinguish it from the text, rather
	than the other way around as in normal programs.

	(2003-09-24)

inverted index

	<database, information science> A sequence of ({key}, pointer)
	pairs where each pointer points to a {record} in a {database}
	which contains the key value in some particular field.  The
	index is sorted on the key values to allow rapid searching for
	a particular key value, using e.g. {binary search}.  The index
	is "inverted" in the sense that the key value is used to find
	the record rather than the other way round.  For databases in
	which the records may be searched based on more than one
	field, multiple indices may be created that are sorted on
	those keys.

	An index may contain gaps to allow for new entries to be added
	in the correct sort order without always requiring the
	following entries to be shifted out of the way.

	(1995-02-08)

InWorld VR

	<company, virtual reality> Manufacturers of the {CyberWand}.

	(1995-04-04)

IO

	<humor, abuse> Idiotic operator.

	(2003-05-15)

io

	<networking> The {country code} for British Indian Ocean
	territory.

	(1999-01-27)

I/O

	{Input/Output}

IOI

	{International Olympiad in Informatics}

Iomega Corporation

	<company, storage> A storage device manufacturer whose major
	products are the {Zip} and {Jaz} removable {disk drives} and
	{Ditto} {tape drives}.  They became popular with an early
	product called the {Bernoulli Box}.

	These products fall in line with their focus set in 1994 "to
	help people manage their stuff".  The company's stated aim is
	to create portable, fast, large and cheap storage solutions.
	Iomega's major competitor in the growing market for removable
	disks is {SyQuest}, who seem to always be a few weeks behind
	them.

	In general, Iomega target the {Small Office/Home Office}.
	They are also investigating the growing {digital photography}
	market which also needs large removable storage devices.

	Iomega's president and CEO is Kim Edwards.  They have nearly
	2000 employees in offices world-wide.  Revenue for the quarter
	ending Dec 1996 was $371 million and net income was $20
	million.

	Headquarters: Roy, Utah, USA.

	{(http://iomega.com/index.html)}.

	(1997-04-15)

I-OOA

	A tool, developed and sold by the Kennedy-Carter company, that
	supports the {Schlaer Mellor} design method, and that
	generates code in {C} and {C++}.  This tool can be modified to
	generate code of different styles, and also, to generate code
	in different programming languages.

	(1995-01-31)

I/O redirection

	{input/output redirection}

IOS

	{Internetworking Operating System}

Iota

	<language, specification> A specification language.

	["The Iota Programming System", R. Nakajima er al, Springer
	1983].

	(1994-12-08)

IOT&E

	{Initial Operational Test and Evaluation}

IOW

	<chat> in other words.

	(1997-05-26)

IP

	{Internet Protocol}

IPA

	{International Phonetic Alphabet}

iPad

	<computer> A {tablet computer} announced by {Apple Computer,
	Inc.} on 2010-01-27 to be released in March 2010.  The iPad
	runs {iPhone OS} 3.2, providing {multi-touch} interaction and
	{multimedia} processing.  Like {Apple}'s {iPhone} and {iPod},
	it uses a {virtual keyboard} for text input and runs most
	{iPhone apps}.  It adds the {iBooks} application for reading
	text in {ePub} format.

	It has a 1GHz {Apple A4} {SoC} processor, up to 64GB of flash
	memory, a 250mm LED-backlit colour LCD display ({resolution}
	1024x768 pixels) and a 25 {Wh} lithium-polymer battery.
	{Internet} access will be {Wi-Fi} in early models with {HSDPA}
	{3G} available soon after using a {micro-SIM}.  It weighs
	730g.  Features it lacks include a camera, the ability to
	{multitask} and an open developement environment.

	The iPad is the culmination of a series of attempts by Apple
	to produce a tablet device, starting with the {Newton
	MessagePad 100} in 1993 and including collaboration with
	{Acorn Computers} in developing the {ARM6} processor.

	{Apple iPad (http://www.apple.com/ipad)}.

	(2010-01-31)

IP address

	<networking> (Internet address) The 32-bit number uniquely
	identifying a {node} on a network using {Internet Protocol},
	as defined in {STD} 5, {RFC} 791.  An IP address is normally
	displayed in {dotted decimal notation}, e.g. 128.121.4.5.

	The address can be split into a {network number} (or network
	address) and a {host number} unique to each host on the
	network and sometimes also a {subnet address}.

	The way the address is split depends on its "class", A, B or C
	(but see also {CIDR}).  The class is determined by the high
	address bits:

	Class A - high bit 0, 7-bit network number, 24-bit host
	number.  n1.a.a.a 0 <= n1 <= 127

	Class B - high 2 bits 10, 14-bit network number, 16-bit host
	number.  n1.n2.a.a 128 <= n1 <= 191

	Class C - high 3 bits 110, 21-bit network number, 8-bit host
	number.  n1.n2.n3.a 192 <= n1 <= 223

	{DNS} translates a node's {fully qualified domain name} to an
	Internet address which {ARP} (or {constant mapping})
	translates to an {Ethernet address}.

	[{Jargon File}]

	(2006-01-27)

IPARS

	{International Programmable Airline Reservation System}

I-Pay

	<protocol> A Dutch only payment system for the {Internet}.

	[Reference?]

	(1998-04-28)

IPC

	{Inter-Process Communication}

ipconfig

	<networking> A {Microsoft Windows} program to display
	information about the the computer's {Internet Protocol}
	settings, including {IP address}, {DHCP} lease information,
	network card {Ethernet address}, and {DNS} information.

	[Was it ever "winipcfg"?]

	(2006-02-12)

IPCP

	{Internet Protocol Control Protocol}

IPE

	{Integrated Programming Environment}

Iperf

	<networking, tool> A tool to measure maximum {TCP}
	{bandwidth}, allowing the tuning of various parameters and
	{UDP} characteristics.  Iperf reports bandwidth, {delay
	jitter}, and {datagram} loss.  An {IPv6} version is also
	available.

	Latest version: 1.7.0, as of 2004-01-18.

	{Iperf Home (http://dast.nlanr.net/Projects/Iperf/)}.

	(2004-01-18)

IPL

	1. {Information Processing Language}.

	2. {Internet Public Library}.

	3. {Initial Program Load}.

	4. {Initial Program Loader}.

	(1997-08-31)

IP next generation

	{Internet Protocol Version 6}

IPng

	{Internet Protocol Version 6}

IP number

	{Internet address}

IPS

	A {thread}ed language.

	["IPS, An Unorthodox High Level Language", K. Meinzer, BYTE
	pp. 146-159 (Jan 1979)].

	(1994-11-04)

IPSE

	{Integrated Project Support Environment}

IPsec

	<networking, protocol, security> ("{IP} Secure"?) A {protocol}
	that provides {security} for transmission of sensitive
	information over unprotected {networks} such as the
	{Internet}.  IPsec acts at the {network layer}, protecting and
	authenticating {IP} {packets} between participating devices
	("peers"), such as {Cisco} {routers}.

	{IETF IPsec (http://ietf.org/ids.by.wg/ipsec.html)}.

	(2002-05-06)

IPT

	{IP Telephony}

IP Telephony

	<communications> (IPT, Internet Telephony) Use of {IP} data
	connections to exchange {voice} and {fax} data that have
	traditionally been carried over the {public switched telephone
	network}.

	During the late 1990s, an increasing number of telephone calls
	have been routed over the {Internet}.  Calls made in this way
	avoid PSTN charges.  Unlike traditional telephony, IP
	telephony is relatively unregulated.

	Companies providing these services are known as {Internet
	Telephony Service Providers} (ITSPs).  They include telephone
	companies, cable TV companies and {Internet Service Providers}
	(ISPs).

	There are still many problems with voice quality, {latency},
	{compression} {algorithms}, and {quality of service}.

	{Voice over IP} is an organised effort to standardise IP
	telephony.

	See also {Computer Telephone Integration}.

	{Internet Telephony Overview
	(http://fokus.gmd.de/research/cc/glone/projects/ipt/)}.

	(1999-03-17)

IPv4

	{Internet Protocol version 4}

IPv6

	{Internet Protocol version 6}

IPX

	{Internetwork Packet eXchange}

IPXCP

	<networking> {Internetwork Packet eXchange} {Control
	Protocol}.

	(1995-09-27)

IQ

	Pictorial query language, implemented in Ratfor.

	["Structured Implementation of an Image Query Language",
	Y.E. Lien et al, in Database Techniques for Pictorial
	Applications, A. Blaser ed, pp.416-430].

iq

	<networking> The {country code} for Iraq.

	(1999-01-27)

IQL

	An object-oriented deductive language/database system.

IR

	1. <networking> {Internet Registry}.

	2. <electronics> {infrared}.

	(1997-01-30)

ir

	<networking> The {country code} for Iran.

	(1999-01-27)

IrBUS

	{IrDA Control}

IRC

	{Internet Relay Chat}

ircop

	<messaging> /*r'-kop/ ("{IRC}" + "{op}", but with the,
	presumably intentional, alternate analysis "IRC" + "cop")
	Someone who is endowed with privileges on {IRC}, not limited
	to a particular {channel}.  These privileges include {channel
	op} privileges in any channel, but also notably include the
	ability to disconnect a user from the IRC network.

	Ircops are generally people who are in charge of the IRC
	{server} at their particular {site}.  Compare {op}.

	(1997-12-12)

IRC penis war

	{penis war}

IrDA

	{Infrared Data Association}

IrDA-C

	{IrDA Control}

IrDA Control

	<standard> (IrDA-C, formerly IrBUS) {Infrared} standard from
	{IrDA}.  IrDA Control is a low speed communication standard
	that allows cordless peripherals such as keyboards, mice,
	{game pads}, and {joysticks} to interact with intelligent host
	devices.  Host devices include {PCs}, home appliances, game
	machines, and television and web {set-top boxes}.

	IrDA Control supports data rates of 75 Kbps at up to 8 metres,
	and is designed to integrate with devices that use {USB}
	{HID}.  Parts and products featuring IrDA Control are expected
	in 1998.

	See also {IrDA Data}, {AIR}.

	(1999-10-14)

IrDA Data

	<standard> (IrDA-D) {Infrared} standards from {IrDA}.  IrDA
	Data is designed for data transfer over a distance of up to 1
	metre, acting as a point-to-point cable replacement.  Several
	IrDA Data standards exist, supporting data rates from 9600 bps
	- 50 Mbps, namely {SIR}, {FIR}, and {VFIR}.

	See also {IrDA Control}, {AIR}.

	(1999-10-14)

IRDATA

	<robotics> Industrial Robot DATA.  A standardised robot
	control code.  "IRDATA, Industrial Robot Data", DIN 66313,
	Beuth-Verlag 1991.

IRDP

	{ICMP Router Discovery Protocol}

IRDS

	Information Resource Dictionary System.  A set of ISO
	standards for CASE repositories.  It governs the definition of
	data dictionaries to be implemented on top of relational
	databases (see repository, data dictionary).

IRET

	{Return from interrupt}

IRIS

	<body> Institute for Research in Information and Scholarship
	of Brown University (Providence RI).

	(1994-11-04)

Iris

	An {object-oriented} {DBMS}.

	(1994-11-04)

IRISA

	{INRIA}

IRIS Explorer

	<mathematics, tool> {Numerical Algorithms Group} (NAG)'s tool
	for developing {visualisation} applications via a {visual
	programming environment}.  IRIS Explorer has a range of
	visualisation techniques, from simple graphs to
	multidimensional animation, that can help show trends and
	relationships in data.

	IRIS Explorer uses standard {Open Inventor}, {ImageVision} and
	{OpenGL} libraries as well as NAG's own numerical libraries.
	It is available for Windows, Unix and Linux.  It has a
	point-and-click interface and a library of "modules" (software
	routines).

	{IRIS Explorer home (http://www.nag.co.uk/Welcome_IEC.asp)}.

	(2008-09-04)

IRIX

	<operating system> /ir'iks/ The main {operating system} used
	by {Silicon Graphics} {workstations} and {servers}.  IRIX is
	{multiprocessor} and {multi-threaded}.  It incorporates
	substantial functionality from {UNIX} {System V}, Release 4.1
	and 4.2.

	(1997-06-17)

IRL

	1. <jargon, chat> In real life.  Generally synonymous with
	{f2f}.

	2. <language, robotics> {Industrial Robot Language}.

	(1997-01-31)

IRM

	{Information Resource Management}

iron

	Hardware, especially older and larger hardware of {mainframe}
	class with big metal cabinets housing relatively low-density
	electronics (but the term is also used of modern
	{supercomputers}).  Often in the phrase {big iron}.  Oppose
	{silicon}.

	See also {dinosaur}.

	[{Jargon File}]

	(1994-11-04)

Iron Age

	<history> In the history of computing, 1961-1971 - the
	formative era of commercial {mainframe} technology, when
	{ferrite core memory} {dinosaurs} ruled the earth.  The Iron
	Age began, ironically enough, with the delivery of the first
	{minicomputer} (the {PDP-1}) and ended with the introduction
	of the first commercial {microprocessor} (the {Intel 4004}) in
	1971.

	See also {Stone Age}; compare {elder days}.

	[{Jargon File}]

	(2003-09-27)

iron box

	[Unix/Internet] A special environment set up to trap a
	{cracker} logging in over remote connections long enough to be
	traced.  May include a modified {shell} restricting the
	cracker's movements in unobvious ways, and "bait" files
	designed to keep him interested and logged on.  See also {back
	door}, {firewall machine}, {Venus flytrap}, and Clifford
	Stoll's account in "{The Cuckoo's Egg}" of how he made and
	used one.  Compare {padded cell}.

	[{Jargon File}]

Ironman

	HOLWG, DoD, Jan 1977, revised Jul 1977.  Fourth of the series
	of DoD requirements that led to Ada.  "Department of Defense
	Requirements for High Order Computer Programming Languages",
	SIGPLAN Notices 12(12):39-54 (Dec 1977).  "Revised Ironman
	Requirements for High Order Computer Programming Languages",
	US Dept of Defense, Jul 1977.  (See Strawman, Woodenman,
	Tinman, Steelman).

ironmonger

	[IBM]  A hardware specialist (derogatory).  Compare
	{sandbender}, {polygon pusher}.

	[{Jargon File}]

IRQ

	{interrupt request}

irrational number

	<mathematics> A {real number} which is not a {rational
	number}, i.e. it is not the ratio of two {integers}.

	The decimal expansion of an irrational is infinite but does
	not end in an infinite repeating sequence of digits.

	Examples of irrational numbers are {pi}, {e} and the square
	root of two.

	(1995-04-12)

irrefutable

	The opposite of {refutable}.

IRSG

	{Internet Research Steering Group}

IRTF

	{Internet Research Task Force}

IRUS

	{Irvine Research Unit in Software}

Irvine Dataflow

	<language> (Always called "Id") A non-{strict}, {single
	assignment} language and {incremental compiler} developed by
	Arvind and Gostelow and used on {MIT}'s {Tagged-Token Dataflow
	Architecture} and planned to be used on {Motorola}'s
	{Monsoon}.

	See also {Id Nouveau}.

	["An Asynchronous Programming Language for a Large
	Multiprocessor Machine", Arvind et al, TR114a, Dept ISC, UC
	Irvine, Dec 1978].

	["The U-Interpreter", Arvind et al, Computer 15(2):42-50,
	1982].

	(1998-02-14)

Irvine Research Unit in Software

	<body> (IRUS) The {University of California, Irvine}.

	[Details?]

	(1995-04-18)

IS

	1. <standard> {International Standard}.

	2. {Intermediate System}.

is

	<networking> The {country code} for Iceland.

	(1999-01-27)

IS-11172

	<standard> The {International Standard} for {MPEG-1}
	{compression}.

	(1999-01-06)

IS-13818

	<standard> The {International Standard} for {MPEG-2}
	{compression}.

	(1999-01-06)

ISA

	1. <architecture> {Integrated Systems Architecture}.

	2. <body> {International Smalltalk Association}.

	3. <architecture> {instruction set architecture}.

	4. <architecture> {Industry Standard Architecture}.

	(1997-02-13)

Isabelle

	<theory, tool> A generic {theorem prover} with support for
	several {object-logics}, developed by Lawrence C. Paulson
	<Larry.Paulson@cl.cam.ac.uk> in collaboration with {Tobias
	Nipkow (http://in.tum.de/~nipkow/)} at the {Technical
	University of Munich}.

	A system of {type classes} allows {polymorphic} object-logics
	with {overloading} and automatic {type inference}.

	Isabelle supports {first-order logic} - {constructive} and
	classical versions; {higher-order logic}, similar to Gordon's
	{HOL}; {Zermelo Fränkel set theory}; an {extensional} version
	of {Martin Löf}'s {type theory}, the classical first-order
	{sequent calculus}, {LK}; the {modal logics} {T}, {S4}, and
	{S43}; and {Logic for Computable Functions}.

	An object logic's {syntax} and {inference rules} are specified
	{declaratively} allowing single-step proof construction.
	{Proof procedures} can be expressed using "tactics" and
	"tacticals".  Isabelle provides control structures for
	expressing search procedures and generic tools such as
	simplifiers and classical theorem provers which can be applied
	to object-logics.  Isabelle is built on top of {Standard ML}
	and uses its user interface.

	{(http://cl.cam.ac.uk/Research/HVG/Isabelle/)}.

	Mailing list: isabelle-users@cl.cam.ac.uk.

	["tactics"?  "tacticals"?]

	(1999-07-26)

Isabelle-92

	{Isabelle}

Isabelle-93

	{Isabelle}

ISA bus

	{Industry Standard Architecture}

ISAKMP

	{Internet Security Association and Key Management Protocol}

ISAM

	{Indexed Sequential Access Method}

ISAPI

	{Internet Server Application Programming Interface}

ISAPI filter

	<World-Wide Web> A replaceable {DLL} which the {server} calls
	whenever there is an {HTTP} request.  When the filter is first
	loaded, it communicates to the server what sort of
	notifications will be accepted.  After that, whenever a
	selected event occurs, the filter is called to process the
	event.

	Example applications of ISAPI filters include custom
	{authentication} schemes, {compression}, {encryption},
	logging, traffic analysis or other request analyses.

	(1997-01-06)

ISBL

	<language> A mathematical {query language}.

	[Stands for?  Details?]

	(1997-01-06)

ISDE

	Integrated Software Development Environment: equivalent to an
	IPSE.

ISDN

	{Integrated Services Digital Network}

ISE

	{Interactive Software Engineering}

ISEE

	Integrated {Software Engineering Environment} - equivalent to
	{SEE}.

I see no X here.

	<games> Hackers (and the interactive computer games they
	write) traditionally favour this slightly marked usage over
	other possible equivalents such as "There's no X here!" or "X
	is missing."  or "Where's the X?".  This goes back to the
	original PDP-10 {ADVENT}, which would respond in this wise if
	you asked it to do something involving an object not present
	at your location in the game.

	[{Jargon File}]

ISETL

	Interactive {SETL} by Gary Levin <gary@clutx.clarkson.edu>.

	Latest version: 3.0.

	{Binaries (ftp://sun.soe.clarkson.edu/)} and source for
	{MS-DOS}, {Macintosh}, {Unix}, {VAX}/{VMS}.

	[Clarkson U.  "An Introduction to ISETL Version 1.9",
	G.M. Levin, Dept MCS, Clarkson U].

	["Learning discrete mathematics with ISETL", Nancy Baxter.
	Ed. Gary Levin Dubinsky.  Springer-Verlag, c.1989.]

	(Apr 1994)

ISF

	{Information Systems Factory}

ISINDEX

	<World-Wide Web> An {HTML} tag which tells the {browser} to
	display a text entry box on the current page.  Any text
	entered in the box by the user is appended as a URL-encoded
	query string to the current {URL} and sent to the {server}
	using a GET method.

	This is a simple way of making a {website} searchable or
	allowing other kinds of simple user input.  It relies on the
	server mapping the query URL to an appropriate process,
	probably depending on the page in which the ISINDEX appeared.
	More complex input can be catered for using the {FORM} tag, or
	{Java}.

	(1996-12-22)

ISIS

	1. A toolkit for implementing fault-tolerant distributed
	systems, developed at Cornell and now available commercially

	2. A dialect of {JOSS}.

	[Sammet 1969, p. 217].

IS-IS

	{Intermediate System-Intermediate System}

ISL

	Interface Specification Language.  Xerox PARC.  Interface
	description language used by the ILU (Inter-Language
	Unification) system.  Includes descriptions of multiple
	inheritance, exceptions and garbage collection.

	E-mail: Bill Janssen <janssen@parc.xerox.com>.

ISLisp

	International Standard Lisp.

	An {object-oriented} Lisp intended as an international
	replacement for {Common Lisp}, {EuLisp}, {Le-Lisp} and
	{Scheme}.  The standard's goals are object orientation,
	extensibility, efficiency, and suitability for non-academic
	use.

	The standard is defined in {ISO} WG 16, draft Dec 1992.

	{(ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/islisp/)}.

	(1995-02-14)

ISMAP

	(World-Wide Web) An attribute of the {HTML} tag <IMG> (inline
	image) which specifies that if the image is selected, the
	{browser} will generate a request indicating the coordinates
	of the point which was clicked.  This request is then
	interpreted by the server by mapping certain regions of the
	image to certain actions.

	{Documentation
	(http://utirc.utoronto.ca/HTMLdocs/NewHTML/image.html)}.

	(1995-02-14)

ISO

	{International Organization for Standardization}

ISO 10646

	{Universal Character Set}

ISO 3166

	{country code}

ISO 639-1

	{language code}

ISO 639-2

	{language code}

ISO 8072

	{transport layer}

ISO 8073

	{transport layer}

ISO 8208

	{X.25}

ISO 8326

	{session layer}

ISO 8327

	{session layer}

ISO 8485

	{A Programming Language}

ISO 8613

	{Open Document Architecture}

ISO 8649

	{Association Control Service Element}

ISO 8650

	{Association Control Service Element}

ISO 8805

	{GKS-3D}

ISO 8807

	{LOTOS}

ISO 8822

	{presentation layer}

ISO 8823

	{presentation layer}

ISO 8825

	{Basic Encoding Rules}

ISO 8859

	<standard, character> {ISO}/{IEC}'s set of 8-bit coded graphic
	{character sets} for European languages.

	Part 1 (full name: "ISO 8859-1:1987 Information processing --
	8-bit single-byte coded graphic character sets -- Part 1:
	Latin alphabet No. 1") is a common extension of, and
	replacement for, {ASCII}.

	{ISO shop
	(http://iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=28245)}.

	(2001-12-28)

ISO 8859-1

	{ISO 8859}

ISO 8879

	<standard, character> The {ISO} standard defining {SGML}.

	(1995-05-03)

ISO 9000

	A set of international {standards} for both quality management
	and quality assurance that has been adopted by over 90
	countries worldwide.  The ISO 9000 standards apply to all
	types of organisations, large and small, and in many
	industries.

	The standards require: standard language for documenting
	quality processes; system to manage evidence that these
	practices are instituted throughout an organisation; and
	third-party auditing to review, certify, and maintain
	certification of organisations.  The ISO 9000 series
	classifies products into generic product categories: hardware,
	software, processed materials, and services.

	Documentation is at the core of ISO 9000 conformance. In fact,
	the standards have been paraphrased as:

	"Say what you do.  Do what you say.  Write it down."

	In Britain it is associated with BS5750 which may become
	obsolete.

	["The ISO 9000 Guide," c. 1993 Interleaf, Inc].

	(1995-01-30)

ISO 9072

	{Remote Operations Service Element}

ISO 9660

	<standard, storage> The {ISO} {standard} {file system} for
	{CD-ROMs}, later extended by the {Joliet} standard to allow
	{Unicode} characters.

	(2006-09-25)

ISO 9735

	<standard, protocol> (Or "EDIFACT") {ISO}'s 1988 {standard}
	for Electronic data interchange for administration, commerce
	and transport.  It defines {application layer} {syntax}.  It
	was amended and reprinted in 1990.

	{(http://iso.ch/cate/d17592.html)}.

	(1995-03-10)

ISOC

	{Internet Society}

ISO C

	{ANSI C}

isochronous

	<communications> /i:-sok'rn-*s/ A form of {multiplexing} that
	guarantees to provide a certain minimum {data rate}, as
	required for time-dependent data such as {video} or {audio}.

	Isochronous transmission transmits asynchronous data over a
	synchronous data link so that individual characters are only
	separated by a whole number of bit-length intervals.  This is
	in contrast to {asynchronous} transmission, in which the
	characters may be separated by arbitrary intervals, and with
	{synchronous} transmission [which does what?].

	An isochronous message protocol assigns each data source a
	fixed amount of time to transmit (its "slot") within each
	cycle through the sources.  That guarantees that each source
	will have regular opportunities to transmit the latest
	information.  If a source has no more data to transmit, then
	the rest of its time slot is wasted.  If it has more to send
	than will fit in its slot, it has to either store the excess
	data and transmit it in its next slot, or discard it.

	Note that whether messages are isochronous or asynchronous is
	independent of whether the transmision of individual bits is
	{synchronous} or {asynchronous}.

	Isochronous communication suits applications where a steady
	data stream is more important than completeness and accuracy,
	e.g. {video conferencing}.

	{Asynchronous Transfer Mode} and {High Performance Serial Bus}
	can provide isochronous service.

	Compare: {plesiochronous}.

	[ANIXTER, LAN Magazine 7.93]

	(2006-06-13)

isochronous transfer

	{isochronous}

ISODE

	{ISO Development Environment}

ISO Development Environment

	(ISODE) /eye-so-dee-eee/ Software that implements a set of
	{OSI} upper-layer services.  It supports OSI applications on
	top of OSI and {TCP/IP} networks.

	(1994-12-15)

ISO/IEC 10646-1

	{Universal Character Set}

ISO/IEC 26300

	{OpenDocument}

isolated

	{compact}

ISO Latin 1

	{ISO 8859}

isometric joystick

	<hardware> Any kind of {joystick} where the input depends on
	the force exerted rather than the position of the control,
	e.g. {TrackPoint}.

	(2003-06-26)

isometry

	<mathematics> A {mapping} of a {metric space} onto another or
	onto itself so that the distance between any two points in the
	original space is the same as the distance between their
	images in the second space.  For example, any combination of
	rotation and translation is an isometry of the plane.

	(1997-12-13)

isomorphic

	<mathematics> Two mathematical objects are isomorphic if they
	have the same structure, i.e. if there is an {isomorphism}
	between them.  For every component of one there is a
	corresponding component of the other.

	(1995-03-25)

isomorphism

	<mathematics> A {bijective} {map} between two objects which
	preserves, in both directions, any structure under
	consideration.  Thus a `group isomorphism' preserves group
	structure; an order isomorphism (between {posets}) preserves
	the order relation, and so on.  Usually it is clear from
	context what sort of isomorphism is intended.

	(1995-03-25)

isomorphism class

	<mathematics> A collection of all the objects {isomorphic} to
	a given object.  Talking about the isomorphism class (of a
	{poset}, say) ensures that we will only consider its
	properties as a poset, and will not consider other incidental
	properties it happens to have.

	(1995-03-25)

ISO Pascal

	A {Lex} {scanner} and {Yacc} {parser} are in the
	comp.sources.unix volume 13 archive.

	[More detail?]

ISO seven layer model

	{Open Systems Interconnect}

ISP

	1. {Internet Service Provider}.

	2. {Instruction Set Processor}.

ISPBX

	{Integrated Services Digital Network} {PBX}.

ISPF

	{Interactive System Productivity Facility}

ISPL

	Instruction Set Processor Language.  The original {ISP}
	language, written in {BLISS} ca 1971.

	["Computer Structures: Readings and Examples", D.P. Siewiorek
	et al, McGraw-Hill 1982].

ISPS

	Instruction Set Processor Specifications.  Operational
	hardware specification language.  Successor to ISPL.

	["Instruction Set Processor Specifications", M.R. Barbacci et
	al, IEEE Trans Computers, C-30(1):24-80 (Jan 1981)].

	[Bell, Newell, Siewiorek, Barbacci 1982?]

IST

	<company> {Imperial Software Technology}.

	(1995-10-12)

ISTAR

	<programming, tool> An experimental {IPSE} from {Imperial
	Software Technology}.

	(1995-10-12)

ISTM

	<chat> It seems to me.

	(2000-07-06)

ISV

	Independent Software Vendor (not a hardware manufacturer).

ISWIM

	<language> (If You See What I Mean) An influential but
	unimplemented computer programming language described in the
	article by {Peter J. Landin} cited below.  Landin attempted to
	capture all known programming language concepts, including
	{assignment} and control operators such as {goto} and
	{coroutines}, within a single {lambda calculus} based
	framework.

	ISWIM is an {imperative language} with a functional core,
	consisting of {sugared} {lambda calculus} plus {mutable
	variables} and {assignment}.  A powerful control mechanism,
	Landin's {J operator}, enables capture of the current
	{continuation} (the {call/cc} operator of {Scheme} is a
	simplified version).  Being based on lambda calculus ISWIM had
	{higher order functions} and {lexically scoped} variables.

	The {operational semantics} of ISWIM are defined using
	Landin's {SECD machine} and use {call-by-value} ({eager
	evaluation}).  To make ISWIM look more like mathematical
	notation, Landin replaced {ALGOL}'s semicolons and begin end
	blocks with the {off-side rule} and scoping based on
	indentation.

	An ISWIM program is a single {expression} qualified by "where"
	clauses (auxiliary definitions including equations among
	variables), conditional expressions and function definitions.
	With {CPL}, ISWIM was one of the first programming languages
	to use "where" clauses.

	New {data types} could be defined as a (possibly recursive)
	{sum of products} like the {algebraic data types} found in
	modern functional languages.  ISWIM variables were probably
	{dynamically typed} but Landin may have planned some form of
	{type inference}.

	Concepts from ISWIM appear in Art Evan's {PAL} and John
	Reynold's {Gedanken}, Milner's {ML} and purely functional
	languages with lazy evaluation like {SASL}, {Miranda} and
	{Haskell}.

	[{"The Next 700 Programming Languages"
	(http://www.cs.utah.edu/~wilson/compilers/old/papers/p157-landin.pdf)},
	P.J. Landin, CACM 9(3):157-166, Mar 1966].

	(2007-03-20)

IT

	1. <business, jargon> {Information Technology}.

	2. <language, mathematics, history> {Internal Translator}.

	(2000-10-02)

it

	<networking> The {country code} for Italy.

	(1999-01-27)

ITAR

	{International Traffic in Arms Regulation}

Iterated Function System

	<graphics> (IFS) A class of {fractals} that yield
	natural-looking forms like ferns or snowflakes.  Iterated
	Function Systems use a very easy transformation that is done
	recursively.

	(1998-04-04)

iteration

	<programming> Repetition of a sequence of instructions.  A
	fundamental part of many {algorithms}.  Iteration is
	characterised by a set of initial conditions, an iterative
	step and a termination condition.

	A well known example of iteration in mathematics is
	Newton-Raphson iteration.  Iteration in programs is expressed
	using {loops}, e.g. in {C}:

		new_x = n/2;
		do
		{
		  x = new_x;
		  new_x = 0.5 * (x + n/x);
		} while (abs(new_x-x) > epsilon);

	Iteration can be expressed in functional languages using
	recursion:

		solve x n = if abs(new_x-x) > epsilon
			    then solve new_x n
			    else new_x
			    where new_x = 0.5 * (x + n/x)

	        solve n/2 n

	(1998-04-04)

iterative deepening

	<algorithm> A {graph} search {algorithm} that will find the
	shortest path with some given property, even when the graph
	contains {cycles}.  When searching for a path through a graph,
	starting at a given initial {node}, where the path (or its end
	node) has some desired property, a {depth-first search} may
	never find a solution if it enters a cycle in the graph.
	Rather than avoiding cycles (i.e. never extend a path with a
	node it already contains), iterative deepening explores all
	paths up to length (or "depth") N, starting from N=0 and
	increasing N until a solution is found.

	(2004-01-26)

iterator

	<programming> An {object} or {routine} for accessing items
	from a {list}, {array} or {stream} one at a time.

	By extension, the term can be used for an object or routine
	for accesing items from any data structure that can be viewed
	as a list.  For example, a {traverser} is an {iterator} for
	{tree}-shaped data structures.

	(2001-10-04)

Iternet

	<spelling> It's spelled "{Internet}".

	(1997-04-07)

IT governance

	{information technology governance}

ITHACA

	<project> An {Esprit} project to put a {4th generation}
	{object-oriented} system to practical use in an industrial
	environment.  The ITHACA environment offered an application
	support system incorporating advanced technologies in the
	fields of object-oriented programming, programming languages,
	{databases}, user interfaces and software development tools.

	(2009-04-27)

ITIL

	{Information Technology Infrastructure Library}

ITP

	{Intent to Package}

ITS

	1. Incompatible {time-sharing} System

	An influential but highly idiosyncratic {operating system}
	written for the {PDP-6} and {PDP-10} at {MIT} and long used at
	the {MIT AI Lab}.  Much AI-hacker jargon derives from ITS
	folklore, and to have been "an ITS hacker" qualifies one
	instantly as an old-timer of the most venerable sort.  ITS
	pioneered many important innovations, including transparent
	file sharing between machines and terminal-independent I/O.
	After about 1982, most actual work was shifted to newer
	machines, with the remaining ITS boxes run essentially as a
	hobby and service to the hacker community.  The shutdown of
	the lab's last ITS machine in May 1990 marked the end of an
	era and sent old-time hackers into mourning nationwide (see
	{high moby}).  The Royal Institute of Technology in Sweden is
	maintaining one "live" ITS site at its computer museum (right
	next to the only {TOPS-10} system still on the {Internet}), so
	ITS is still alleged to hold the record for OS in longest
	continuous use (however, {WAITS} is a credible rival for this
	palm).

	2. A mythical image of {operating system} perfection worshiped
	by a bizarre, fervent retro-cult of old-time hackers and
	ex-users (see {troglodyte}).  ITS worshipers manage somehow to
	continue believing that an OS maintained by {assembly
	language} hand-hacking that supported only monocase
	6-character filenames in one directory per account remains
	superior to today's state of commercial art (their venom
	against {Unix} is particularly intense).

	See also {holy wars}, {Weenix}.

	[{Jargon File}]

	(1994-12-15)

it's a feature

	<jargon> From the adage "It's not a bug, it's a feature."
	Used sarcastically to describe an unpleasant experience that
	you wish to gloss over.

	(1997-04-29)

ITSP

	{Internet Telephony Service Providers}

ITU

	{International Telecommunications Union}

ITU-T

	{International Telecommunications Union}

ITU-T X.680

	{Coordinated Universal Time}

ITU X.209

	{Basic Encoding Rules}

Ivan

	A {Diana}-like language making up part of {VHDL}.

	["VHDL - The Designer Environment", A. Gilman, IEEE Design &
	Test 3, (Apr 1986)].

Ivan Sutherland

	Ivan E. Sutherland is widely known for his pioneering
	contributions.  His 1963 MIT PhD thesis, {Sketchpad}, opened
	the field of computer graphics.  His 1966 work, with Sproull,
	on a head-mounted display anticipated today's {virtual
	reality} by 25 years.  He co-founded {Evans and Sutherland},
	which manufactures the most advanced computer image generators
	now in use.  As head of Computer Science Department of
	{Caltech} he helped make {integrated circuit} design an
	acceptable field of academic study.  Dr. Sutherland is on the
	boards of several small companies and is a member of the
	National Academy of Engineering and the National Academy of
	Sciences, the {ACM} and {IEEE}.  He received the {ACM}'s
	{Turing Award} in 1988.  He is now Vice President and Fellow
	of {Sun Microsystems} Laboratories in Mountain View, CA, USA.

	(1994-11-16)

Iverson's Language

	{APL}, which went unnamed for many years.

	[Sammet 1969, p.770].

	(1994-11-16)

IVR

	{Interactive Voice Response}

ivs

	{INRIA} Videoconferencing System.

	A {video-conferencing} tool for the {Internet} based on the
	{H.261} {video compression} {standard}.

	{(http://zenon.inria.fr:8003/rodeo/personnel/Thierry.Turletti/ivs.html)}.

	(1994-11-16)

IVTRAN

	Parallel {Fortran} for the {Illiac IV}.  1966.

IV&V

	{Independent Verification and Validation}

IVY

	A language with a more pleasant syntax than {Perl}, {tcl} or
	{Lisp}.  It has nice features like low punctuation count,
	blocks indicated by indentation, and similarity to normal
	procedural languages.  This language started out as an idea
	for an extension language for the editor {JOE}.

	An experimental {interpreter} by Joseph H Allen
	<jhallen@world.std.com> was posted to {alt.sources} on 28 Sep
	1993.

IWay

	{Information Superhighway}

IWBNI

	It Would Be Nice If.

	Compare {WIBNI}.

	[{Jargon File}]

	(1994-11-24)

IXC

	{IntereXchange Carrier}

IXI Limited

	<company> A Cambridge, England company who were the leading
	supplier of {Unix} System windowing software when they were
	acquired by {SCO} in February 1993.

	(1994-12-12)

IXO

	{Telocator Alphanumeric Protocol}

IYFEG

	({Usenet}) Insert Your Favourite Ethnic Group.

	Used as a meta-name when telling ethnic jokes on the net to
	avoid offending anyone.

	See also {JEDR}.

	[{Jargon File}]

	(1994-11-24)

J

	A derivative and redesign of {APL} with added features and
	control structures.  J is {purely functional} with {lexical
	scope} and more conventional control structures, plus several
	new concepts such as {function rank} and {function arrays}.  J
	was designed and developed by Kennneth E. Iverson and Roger
	Hui <hui@yrloc.ipsa.reuter.com>.  J uses only the {ASCII}
	character set but has a spelling scheme that retains the
	advantages of {APL}'s special alphabet.  J is a conventional
	procedural programming language but can be used as a {purely
	functional} language.

	Version 4.1 for {MS-DOS}, Sun, Mac, Archimedes.  Source
	available in C from {Iverson Software}, +1 (416) 925 6096.

	Version 6 package from ISI includes an interpreter and
	tutorial.  Ported to {DEC}, {NeXT}, {SGI}, {Sun-3}, {Sun-4},
	{Vax}, {RS/6000}, {MIPS}, {Macintosh}, {Acorn Archimedes},
	{IBM PC}, {Atari}, {3b1}, {Amiga}.

	{(ftp://watserv1.waterloo.edu/languages/apl/j)}.

	J-mode {GNU Emacs} macros available by
	{(ftp://think.com/pub/j/gmacs/j-interaction-mode.el)}.

	["APL\?", Roger K.W. Hui et al, APL90 Conf Proc, Quote Quad
	20(4):192-200].

	(1992-10-31)

J2EE

	{Java 2 Platform, Enterprise Edition}

J2ME

	{Java 2 Platform, Micro Edition}

J2SE

	{Java 2 Platform, Standard Edition}

J3

	A dialect of {JOVIAL}.

	["Military Standard JOVIAL (J3)", MIL-STD-1588 (USAF), June
	1976].

	(1994-12-07)

J73

	A dialect of {JOVIAL}.

	["Military Standard JOVIAL (J73)", MIL-STD-1589 (USAF), Feb
	1977].

	(1994-12-07)

jabber

	<networking> When a network {node} transmits a {packet} longer
	than the maximum permissible length, usually due to a fault
	condition.

	(1996-05-10)

JACAL

	{JAffer's Canonical ALgebra}

jaccl

	<tool> An {LR1 grammar} {parser generator} written by Dave
	Jones at Megatest.

	(1989-09-08)

jack in

	To log on to a machine or connect to a network or {BBS},
	especially for purposes of entering a {virtual reality}
	simulation such as a {MUD} or {IRC} (leaving is "jacking
	out").  This term derives from {cyberpunk} SF, in which it was
	used for the act of plugging an electrode set into neural
	sockets in order to interface the brain directly to a virtual
	reality.  It is primarily used by MUD and IRC fans and younger
	hackers on BBS systems.

	[{Jargon File}]

Jack Kilby

	<person> (1924 - 2005-06-20) The electronics engineer who
	invented the {integrated circuit} in 1958 at {Texas
	Instruments}.

	{TI Biography
	(http://ti.com/corp/docs/kilbyctr/jackstclair.shtml)}.

	[Was the {JK flip-flop} named after him?]

	(2005-06-22)

Jackson method

	<programming> A proprietary structured method for software
	analysis, design and programming.

	(2005-06-22)

Jacquard, Joseph-Marie

	{Joseph-Marie Jacquard}

Jacquard loom

	<history> /zhah-kar'/ A mechanical loom, invented by
	{Joseph-Marie Jacquard} in 1801, which used the holes punched
	in pasteboard {punch cards} (which see) to control the weaving
	of patterns in fabric.  It was the first machine to use punch
	cards, although it did no computation based on them.

	{(http://history.rochester.edu/steam/hollerith/loom.htm)}.

	(1998-10-19)

JAD

	{Joint Application Design}

	Or "Joint Application Development".

	[What is it?]

	(1995-11-15)

JADE

	{James' DSSSL Engine}

Jade

	1. U Washington, late 80's.  A strongly-typed language,
	object-oriented but without classes.  For type research.  The
	compiler output is Smalltalk.  [Submitter claimed that Jade
	has exactly one user!]

	2. Implicit {coarse-grained concurrency}.  The constructs
	'with', 'withonly' and 'without' create tasks with specified
	side effects to shared data objects.  Implemented as a C
	preprocessor.  "Coarse-Grain Parallel Programming in Jade",
	M.S. Lam et al, SIGPLAN Notices 26(7):94-105 (Jul 1991).

jadeTeX

	<text, tool> A program which uses {TeX} as a back-end for
	producing {DVI} (or {PDF}) printable output from {James' DSSSL
	Engine}.

	{(ftp://ftp.tug.org/tex-archive/macros/jadetex/)}.

	(1997-11-20)

JAffer's Canonical ALgebra

	<mathematics, tool> (JACAL) A {symbolic mathematics} program,
	most of which was written in {Scheme} by Aubrey Jaffer.

	{(http://swissnet.ai.mit.edu/~jaffer/JACAL.html)}.

	(1999-06-27)

jaggies

	<graphics> /jag'eez/ (Or "staircase") The "staircase" effect
	observable when an edge (especially a linear edge of very
	shallow or steep slope) is rendered on a {bitmap display} (as
	opposed to a {vector display}).  The effect is even more
	pronounced when a bitmap image or text in a bitmap font is
	enlarged.  {Outline fonts} and {anti-aliasing} are two
	techniques used to solve this problem with text.

	[{Jargon File}]

	(1997-12-01)

JaM

	John and Martin.  An interpreted {FORTH}-like graphics
	language by John Warnock and Martin Newell, {Xerox PARC},
	1978.  JaM was the forerunner of both {Interpress} and
	{PostScript}.  It is mentioned in PostScript Language
	reference Manual, Adobe Systems, A-W 1985.

jam

	A condition on a network where two nodes transmitting
	simultaneously detect the collision and continue to transmit
	for a certain time (4 to 6 bytes on Ethernet) to ensure that
	the collision has been detected by all nodes involved.

	(1994-12-12)

James Clark

	{Dr. James H. Clark}

James' DSSSL Engine

	<text, tool> (JADE) A {DSSSL} tool by {James J. Clark}.  Jade
	is an implementation of the DSSSL style language for {Unix}
	and {Microsoft Windows}.  It can turn the {SGML} source of the
	DSSSL standard into an {RTF} file of about 200 pages using a
	fairly complex DSSSL specification.

	{(http://jclark.com/)}.

	(1996-10-13)

James Gosling

	<person> The software engineer who wrote {GOSMACS}, and served
	as {Sun Microsystems, Inc.} project leader for both {NeWS},
	and {Java}.  He is currently (1997) a Vice President and
	"Distinguished Engineer" at Sun.

	{(http://java.sun.com:80/people/jag/)}.

	{Biography
	(http://sun.com/sunergy/Bios/gosling_bio.html)}.

	(1997-03-12)

James H. Clark

	{Dr. James H. Clark}

JAM Programming Language

	<language> (JPL) A string-based {imperative language} from
	{JYACC Corporation}, part of the JAM tool for developing
	screen (non-window) applications.

	(2007-10-02)

JANET

	{Joint Academic NETwork}

JANET IP Service

	<networking> (JIPS) {Joint Academic NETwork} {Internet
	Protocol}.

	E-mail: <jips-nosc@nic.ja.net>.

	[Details?]

	(1994-12-12)

Janus

	1. Distributed language with an ask/tell constraint system.

	{qdjanus} is a Janus-to-{Prolog} compiler for {Sicstus Prolog}
	and {jc} is compiles to {C}.

	["Janus: A Step Towards Distributed Constraint Programming",
	V. Saraswat <saraswat@parc.xerox.com> et al in Logic
	Programming: Proc 1990 North Am Conf, S. Debray et al eds, MIT
	Press 1990].

	["Programming in Janus", Saraswat, Kahn, and Levy].

	2. W.M. Waite, U Colorado.  Intermediate language, claimed as
	an implementation of {UNCOL}.  Used on {CDC 6600}.

	["Experience with the Universal Intermediate Language Janus",
	B.K. Haddon et al, Soft Prac & Exp 8(5):601- 616 (Sep 1978)].

japh

	<programming> A {Perl} program which prints "Just another Perl
	hacker" using extremely obfuscated methods, typically ones
	based on obscure behaviours of sometimes rarely-used functions,
	in the spirit of the {Obfuscated C Contest}.

	The obfuscation can result from the code being total
	gibberish, e.g.:

	 $_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;

	or from having "Just another Perl hacker" embedded in opaque
	code:

	 $_='987;s/^(\d+)/$1-1/e;$1?eval:print"Just another Perl hacker,"';eval

	or from looking like it does something simple and completely
	unrelated to printing "Just another Perl hacker":

	 $_ = "wftedskaebjgdpjgidbsmnjgc";
	 tr/a-z/oh, turtleneck Phrase Jar!/; print;

	{Examples (http://perl.com/CPAN/misc/japh)}.

	(1997-09-14)

jar

	{Java archive}

Jargon File

	<jargon, publication, humour> The on-line hacker Jargon File
	maintained by {Eric S. Raymond}.  A large collection of
	definitions of computing terms, including much wit, wisdom,
	and history.

	Many definitions in {this dictionary} are from v3.0.0 of
	1993-07-27.

	Latest version: 4.4.2 (2003-05-22), as of 2003-06-09.

	{Jargon File Home (http://catb.org/~esr/jargon/)}.

	See also {Yellow Book, Jargon}.

	(2003-06-09)

Java

	<programming, language, portability> (After the Indonesian
	island, a source of {programming fluid}) A simple,
	{object-oriented}, {distributed}, {interpreted}, robust,
	secure, {architecture-neutral}, {portable}, {multithreaded},
	dynamic, buzzword-compliant, general-purpose programming
	language developed by {Sun Microsystems} in the early 1990s
	(initially for set-top television controllers) and released
	to the public in 1995.

	Java first became popular as the earliest portable dynamic
	client-side content for the {World-Wide Web} in the form of
	{platform}-independent {Java applets}.  In the late 1990s and
	into the 2000s it also became very popular on the server side,
	where an entire set of {APIs} defines the {J2EE}.

	Java is both a set of public specifications (controlled by
	{Sun Microsystems} through the {JCP}) and a series of
	implementations of those specifications.

	Java is syntactially similar to {C++} without user-definable
	{operator overloading}, (though it does have {method}
	overloading), without {multiple inheritance} and extensive
	automatic {coercions}.  It has automatic {garbage collection}.
	Java extends {C++}'s {object-oriented} facilities with those
	of {Objective C} for {dynamic method resolution}.

	Whereas programs in C++ and similar languages are compiled and
	linked to platform-specific binary executables, Java programs
	are typically compiled to portable {architecture-neutral}
	{bytecode} ".class" files, which are run using a {Java Virtual
	Machine}.  The JVM is also called an {interpreter}, though it
	is more correct to say that it uses {Just-In-Time Compilation}
	to convert the {bytecode} into {native} {machine code},
	yielding greater efficiency than most interpreted languages,
	rivalling C++ for many long-running, non-GUI applications.
	The run-time system is typically written in {POSIX}-compliant
	{ANSI C} or {C++}.  Some implementations allow Java class
	files to be translated into {native} {machine code} during or
	after compilation.

	The Java compiler and {linker} both enforce {strong type
	checking} - procedures must be explicitly typed.  Java
	aids in the creation of {virus}-free, tamper-free systems
	with {authentication} based on {public-key encryption}.

	Java has an extensive library of routines for all kinds of
	programming tasks, rivalling that of other languages.  For
	example, the {java.net} package supports {TCP/IP} {protocols}
	like {HTTP} and {FTP}.  Java applications can access objects
	across the {Internet} via {URLs} almost as easily as on the
	local {file system}.  There are also capabilities for several
	types of distributed applications.

	The Java {GUI} libraries provide portable interfaces.  For
	example, there is an abstract Window class and implementations
	of it for {Unix}, {Microsoft Windows} and the {Macintosh}.
	The {java.awt} and {javax.swing} classes can be used either in
	web-based {Applets} or in {client-side applications} or
	{desktop applications}.

	There are also packages for developing {XML} applications,
	{web services}, {servlets} and other web applications,
	{security}, date and time calculations and I/O formatting,
	database ({JDBC}), and many others.

	Java is not related to {JavaScript} despite the name.

	{(http://java.sun.com/)}.

	{Usenet} newsgroup: {news:comp.lang.java}.

	(2011-08-21)

Java 2

	{Java 2 Platform, Standard Edition}

Java 2 Platform

	{Java 2 Platform, Standard Edition}

Java 2 Platform, Enterprise Edition

	<language, programming> (J2EE) {Sun}'s {Java} platform for
	{multi-tier} {server}-oriented {enterprise} {applications}.

	The basis of J2EE is {Enterprise JavaBeans} (EJB).

	See also the Standard edition {J2SE} and the Micro edition
	{J2ME}.

	{(http://java.sun.com/j2ee/)}.

	(2000-04-20)

Java 2 Platform, Micro Edition

	<language, programming> (J2ME) {Sun}'s {Java} platform for
	consumer devices.

	J2ME defines Configurations and Profiles for different classes
	of small memory device, from {smart cards} to {pagers} to
	{set-top boxes}.  It can run on various {Java virtual
	machines} including {KVM}.

	Related products include {PersonalJava} and {EmbeddedJava}.

	See also the Standard edition {J2SE} and the Enterprise
	edition {J2EE}.

	(Home (http://javasoft.com/j2me/)}.

	(2000-04-20)

Java 2 Platform, Standard Edition

	<language, programming> (J2SE) {Sun}'s {Java} programming
	platform aimed at network-oriented enterprise applications.
	J2SE comprises the {Java 2 Software Development Kit} (SDK) and
	the {Java 2 Run-Time Environment}.

	See also the Micro edition {J2ME} and the Enterprise edition
	{J2EE}.

	{Java 2 Platform (http://javasoft.com/j2se/)}.

	(2000-04-20)

Java 2 SDK

	{Java 2 Software Development Kit}

Java 2 Software Development Kit

	<language, programming> (Java 2 SDK) {Sun}'s tools to develop
	{Java} applications, part of the {Java 2 Platform}.

	Latest version: Java 2 SDK version 1.2.2, as of April 2000.

	Versions prior to 1.2 were known as the {Java Development Kit}
	(JDK).

	{(http://javasoft.com/j2se/)}.

	(2000-04-20)

Java archive

	<file format, filename extension> (jar) A compressed {archive}
	file containing {Java} {class} files, filename extension:
	".jar".  The {Java Development Kit} contains a tool called
	"jar" for creating .jar files, similar to the standard {Unix}
	{tar} command.  As well as archiving and compressing the Java
	class files, it also inserts a "manifest" file which can
	contain information about the class files, such as a {digital
	signature}.  Combining class files into a single archive file
	makes it possible to download them in a single {HTTP}
	transaction.  This, and the {compression}, speeds up execution
	of Java programs delivered via the {Internet}.

	(2001}-02-03)

JavaBeans

	<programming> A {component architecture} for the {Java}
	programming language, developed initially by {Sun}, but now
	available from several other vendors.  JavaBeans components
	are called "{beans}".

	JavaBeans allows developers to create reusable software
	components that can then be assembled together using visual
	application builder tools including {Sybase}'s {PowerJ},
	{Borland}'s {JBuilder}, {IBM}'s {Visual Age for Java},
	{SunSoft}'s {Java Workshop} and {Symantec}'s {Visual Cafe}.

	JavaBeans support Introspection (a builder tool can analyze
	how a Bean works), Customisation (developers can customise the
	appearance and behaviour of a Bean), Events (Beans can
	communicate), Properties (developers can customise and program
	with Beans(?)) and Persistence (customised Beans can be stored
	and reused).

	{(http://javasoft.com/beans/)}.

	(1997-11-20)

Java Community Process

	<project> (JCP) An organization controlled by {Sun Microsystems}
	to further the growth of the {Java} language and runtime.
	The JCP produces {standards} called Java Standard Requests,
	which are "requests" in the same sense as {RFCs}.

	(2005-01-21)

Java Database Connectivity

	<database, programming> (JDBC) Part of the {Java Development
	Kit} which defines an {application programming interface} for
	{Java} for standard {SQL} access to {databases} from Java
	{programs}.

	{Home
	(http://java.sun.com/products/jdk/1.1/docs/guide/jdbc/index.html)}.

	{FAQ (http://yoyoweb.com/Javanese/JDBC/FAQ.html)}.

	See also {Open Database Connectivity}.

	(1997-09-04)

Java Development Kit

	<language, compiler> (JDK) A free {Sun Microsystems} product
	which provides the {environment} required for programming in
	{Java}.  The JDK is available for a variety of {platforms},
	but most notably {Sun Solaris} and {Microsoft Windows}.

	{(http://java.sun.com/products/jdk/1.1/index.html)}.

	[Version?]

	(1997-09-04)

Java Message Service

	<programming, messaging> (JMS) An {API} for accessing
	enterprise messaging systems from {Java} programs.  Java
	Message Service, part of the {J2EE} suite, provides standard
	APIs that Java developers can use to access the common
	features of enterprise message systems.  JMS supports the
	{publish/subscribe} and {point-to-point} models and allows the
	creation of message types consisting of arbitrary Java
	objects.  JMS provides support for administration, security,
	error handling, and recovery, optimisation, distributed
	transactions, message ordering, message acknowledgment, and
	more.

	{(http://java.sun.com/products/jms)}.

	{Overview
	(http://developer.java.sun.com/developer/technicalArticles/Networking/messaging/)}.

	(2001-06-22)

Java Native Interface

	<programming> (JNI) A {native} programming interface for
	{Java} that allows Java code running inside a {Java Virtual
	Machine} to interoperate with {applications} and {libraries}
	written in other programming languages such as {C}, {C++} and
	{assembly language}.

	(1997-12-07)

Java Open Language Toolkit

	<project> (JOLT) A project aimed at providing a freely
	available and redistributale implementation of {Sun
	Microsystems}'s {Java} language and tools.

	{(http://redhat.com/linux-info/jolt/)}.

	(1996-12-17)

Java Remote Method Protocol

	<protocol> (JRMP) A proprietary {wire-level protocol} designed
	by {Sun Microsystems} to transport {Java} {RMI}.

	JRMP serves the same function as {IIOP}, but also supports
	object passing.  {Sun} plans to offer {IIOP} as an alternative
	to JRMP.

	Sun do not appear to use this term any longer, simply
	referring to the "RMI transport protocol".

	{(http://java.sun.com/j2se/1.3.0/docs/guide/rmi/spec/rmi-protocol3.html)}.

	{Comparison (http://execpc.com/~gopalan/misc/compare.html)}.

	(2001-07-21)

Java Run-Time Environment

	<language> (JRE) The part of the {Java Development Kit}
	required to run Java programs.  The JRE consists of the {Java
	Virtual Machine}, the {Java} platform core {classes} and
	supporting files.  It does not include the compiler, debugger
	or other tools present in the JDK.  The JRE is the smallest
	set of executables and files that constitute the standard Java
	platform.

	(1998-11-30)

JavaScript

	<language> (Formerly "LiveScript") {Netscape}'s simple,
	cross-{platform}, {World-Wide Web} {scripting language}, only
	very vaguely related to {Java} (which is a {Sun} trademark).
	JavaScript is intimately tied to the {World-Wide Web}, and
	currently runs in only three environments - as a {server}-side
	{scripting} language, as an embedded language in
	{server-parsed HTML}, and as an embedded language run in web
	{browsers} where it is the most important part of {DHTML}.

	JavaScript has a simplified {C}-like {syntax} and is tightly
	integrated with the browser {Document Object Model}.  It is
	useful for implementing enhanced {forms}, simple web
	{database} {front-ends}, and navigation enhancements.  It is
	unusual in that the {scope} of {variables} extends throughout
	the function in which they are declared rather than the
	smallest enclosing block as in C.

	JavaScript originated from {Netscape} and, for a time, only
	their products supported it.  {Microsoft} now supports a
	work-alike which they call JScript.  The resulting
	inconsistencies make it difficult to write JavaScript that
	behaves the same in all browsers.  This could be attributed to
	the slow progress of JavaScript through the standards bodies.

	JavaScript runs "100x" slower than {C}, as it is purely
	interpreted ({Java} runs "10x" slower than C code).
	{Netscape} and allies say JavaScript is an "open standard" in
	an effort to keep {Microsoft} from monopolising web software
	as they have desktop software.  {Netscape} and {Sun} have
	co-operated to enable {Java} and JavaScript to exchange
	messages and data.

	See also {VBScript}.

	{Usenet} newsgroup: {news:comp.lang.javascript}.

	Mailing List: <majordomo@obscure.org> ("subscribe javascript"
	in body).

	(2003-04-28)

JavaScript Object Notation

	<programming> (JSON) {Syntax} for serialising {JavaScript}
	objects, often used as a data carrier format.  JSON is based
	on a subset of the JavaScript programming language.  It uses a
	file extension of .json and is considered a
	language-independent data format.

	(2008-05-28)

Java servelet

	{Java servlet}

JavaServer Faces

	<programming, Java> (JSF) A system for building {web
	applications} by assembling reusable {user interface}
	components in a web page, connecting these components to a
	data source and passing client events to server handlers.

	{(http://java.sun.com/j2ee/javaserverfaces/overview.html)}.

	(2006-07-21)

JavaServer Pages

	<programming, World-Wide Web> (JSP) A freely available
	specification for extending the {Java Servlet} {API} to
	generate dynamic {web pages} on a {web server}.  The JSP
	specification was written by industry leaders as part of the
	Java development program.

	JSP assists developers in creating {HTML} or {XML} pages that
	combine static (fixed) page templates with dynamic content.
	Separating the {user interface} from content generation allows
	page designers to change the page layout without having to
	rewrite program code.  JSP was designed to be simpler than
	pure servlets or {CGI} {scripting}.

	JSP uses XML-like tags and scripts written in Java to generate
	the page content.  HTML or XML formatting {tags} are passed
	back to the client.  Application logic can live on the server,
	e.g. in {JavaBeans}.

	JSP is a {cross-platform} alternative to {Microsoft's} {Active
	Server Pages}, which only runs in {IIS} on {Windows NT}.

	Applications written to the JSP specification can be run on
	compliant web servers, and web servers such as {Apache},
	{Netscape Enterprise Server}, and Microsoft {IIS} that have
	had Java support added.  JSP should soon be available on
	{Unix}, {AS/400}, and {mainframe} platforms.

	{JavaServer Pages (http://java.sun.com/products/jsp/)}.

	{Infoworld Article
	(http://infoworld.com/cgi-bin/displayStory.pl?99063.ecjsp.htm)}.

	(1999-11-28)

Java servlet

	<World-Wide Web> (By analogy with "{applet}") A {Java} program
	that runs as part of a {network} service, typically an {HTTP
	server} and responds to requests from {clients}.

	The most common use for a servlet is to extend a {web server}
	by generating {web content} dynamically.  For example, a
	{client} may need {information} from a {database}; a servlet
	can be written that receives the request, gets and processes
	the data as needed by the {client} and then returns the result
	to the {client}.

	{Applets} are also written in {Java} but run inside the {JVM}
	of a {HTML} {browser} on the {client}.  Servlets and applets
	allow the server and client to be extended in a modular way by
	dynamically loading code which communicates with the main
	program via a standard programming interface.

	Servlets are more flexible than {CGI scripts} and, being
	written in {Java}, more portable.

	The spelling "servelet" is occasionally seen but {JavaSoft}
	spell it "servlet".  There is no such thing as a "serverlet".

	{(http://java.sun.com/products/servlet/)}.

	(2002-10-06)

Java Servlet Development Kit

	<World-Wide Web> (JSDK) A suite of software for easing the
	development of {Java servlets}.

	{JavaSoft Servlet Development Kit
	(http://javasoft.com/products/jdk/1.2/docs/ext/servlet/)}.

	(1998-05-26)

Java Virtual Machine

	<language, architecture> (JVM) A specification for software
	which interprets {Java} programs that have been compiled into
	{byte-codes}, and usually stored in a ".class" file.  The JVM
	{instruction set} is {stack}-oriented, with variable
	instruction length.  Unlike some other instruction sets, the
	JVM's supports {object-oriented} programming directly by
	including instructions for object {method} invocation (similar
	to {subroutine} call in other instruction sets).

	The JVM itself is written in {C} and so can be {ported} to run
	on most {platforms}.  It needs {thread} support and {I/O} (for
	{dynamic class loading}).  The Java byte-code is independent
	of the platform.

	There are also some hardware implementations of the JVM.

	{Specification
	(http://javasoft.com/docs/books/vmspec/html/VMSpecTOC.doc.html)}.

	{Sun's Java chip
	(http://news.com/News/Item/0,4,9328,00.html)}.

	[Documentation?  Versions?]

	(2000-01-03)

Java VM

	{Java Virtual Machine}

JAZ

	<language> An early system on the {LGP-30}.

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

	(1997-05-16)

Jaz

	{Jaz Drive}

Jaz Drive

	<hardware, storage> {Iomega Corporation}'s drive which takes
	removable one or two {gigabyte} disk cartridges which contain
	conventional {hard disks}.

	Internal and external drives are available claiming an average
	transfer rate of 330 {megabytes} per minute - though that is
	dependant on the {SCSI} adapter, the parallel port adapter is
	unlikely to reach anything like this speed.  The Jaz drive was
	the successor to the company's more establistablished {Zip
	Drive}.

	(1998-08-28)

JAZELLE

	<database> A data management system for High Energy Physics
	from Stanford Linear Accelerator.

	(1995-02-22)

JBIG

	{Joint Bi-level Image Experts Group}

JBOD

	{Just a Bunch Of Disks}

JBOPS

	<business, jargon> A nickname for the major {ERP} and
	enterprise software application companies: {JD Edwards},
	{Baan}, {Oracle}, {PeopleSoft}, and {SAP}.

	(1999-07-27)

jc

	<language> Version 1.50 alpha

	compiler(->C)

	David Gudeman <gudeman@cs.arizona.edu>

	{(ftp://cs.arizona.edu/janus/jc/)}.

	A janus-to-C compiler (considerably faster than qdjanus).  jc
	is a {sequential} implementation of a {concurrent} language.

	bugs: <jc-bugs@cs.arizona.edu>

	ports: sun-4, sun-3, Sequent Symmetry

	jc is an experimental system, undergoing rapid development.

	Mailing list: janusinterest-request@parc.xerox.com

	(1992-06-09)

JCL

	{Job Control Language}

JCOOL

	<language> A version of the {COOL} {C++} {class library} that
	uses real C++ {templates}.

	(2007-10-14)

JCP

	{Java Community Process}

JCS-13

	<language> An early system on the {IBM 701}.

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

	(1997-06-16)

JDBC

	{Java Database Connectivity}

JDK

	{Java Development Kit}

JEAN

	<language> A dialect of {JOSS}.

	[Details?]

	(1997-09-14)

Jean E. Sammet

	<person> Author of several surveys of early programming
	languages, refererred to in many entries in this dictionary.

	E-mail: sammet@vtvm1.cc.vt.edu

	Relevant publications include:

	[Sammet, Jean E., "Programming Languages: History and
	Fundamentals", P-H 1969.  QA76.5 .S213].  The definitive work
	on early computer language development.

	[Sammet, Jean E., "Programming Languages: History and Future",
	CACM 15(7):601-610, Jul 1972].

	[Sammet, Jean E., "Roster of Programming Languages"
	Computers & Automation 16(6):80-82, June 1967;
	Computers & Automation 17(6):120-123, June 1968;
	Computers & Automation 18(7):153-158, June 1969;
	Computers & Automation 19(6B):6-11, 30 Nov 1970;
	Computers & Automation 20(6B):6-13, 30 Jun, 1971;
	Computers & Automation 21(6B), 30 Aug 1972;
	Computing Reviews 15(4): 147-160, April 1974;
	CACM 19(12):655-669, Dec 1976;
	SIGPLAN Notices 13(11):56, Nov 1978].

	(1998-10-03)

Jean-Maurice-Émile Baudot

	<person> (1845-1903) The inventor of the {Baudot code}.  Baudot
	joined the French Post & Telegraph Administration in 1869 as a
	telegraph operator.  In his own time he developed a code for
	sending several messages at once.  In 1874 Baudot patented his
	first printing telegraph where signals were translated onto paper
	tape.  The {Baudot code} was adopted first in France and then by
	other nations for <telegraph> and <teletype> transmissions.

	The unit of transmission speed, {baud}, is named after him.

	(2013-01-12)

JEDR

	<person, abuse, humour> Synonymous with {IYFEG}.  At one time,
	people in the {Usenet} {newsgroup} {news:rec.humor.funny}
	tended to use "JEDR" instead of {IYFEG} or "<ethnic>"; this
	stemmed from a public attempt to suppress the group once made
	by a loser with initials JEDR after he was offended by an
	ethnic joke posted there.  (The practice was {retcon}ned by
	expanding these initials as "Joke Ethnic/Denomination/Race".)
	After much sound and fury JEDR faded away; this term appears
	to be doing likewise.  JEDR's only permanent effect on the
	net.culture was to discredit "sensitivity" arguments for
	censorship so thoroughly that more recent attempts to raise
	them have met with immediate and near-universal rejection.

	[{Jargon File}]

	(1994-11-22)

Jef Raskin

	<person> The person who started the {Macintosh} project at
	{Apple Computer, Inc.} but left the company before the product
	was launched.

	(1999-08-24)

Jenga Code

	<humour, programming> A style of programming which results in the
	whole thing collapsing when you touch a single block of code.
	Named after the game where players try to remove wooden blocks
	from a tower without it falling down.

	Also known as Crispy Noodle Code.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	[Why crispy noodle?]

	(2013-12-25)

Jerry Sussman

	{Gerald Sussman}

JES

	{job entry system}

JES2

	<operating system> One of {IBM}'s {job entry systems} for
	{MVS}.

	(1995-08-16)

JES3

	<operating system> One of {IBM}'s {job entry systems} for
	{MVS}.

	(1995-08-16)

JFCL

	/jif'kl/, /jaf'kl/, /j*-fi'kl/ (obsolete) To cancel or annul
	something.  "Why don't you jfcl that out?"  The fastest
	do-nothing instruction on older models of the {PDP-10}
	happened to be JFCL, which stands for "Jump if Flag set and
	then CLear the flag"; this does something useful, but is a
	very fast no-operation if no flag is specified.  Geoff
	Goodfellow, one of the jargon-1 co-authors, had JFCL on the
	licence plate of his BMW for years.  Usage: rare except among
	old-time PDP-10 hackers.

	[{Jargon File}]

	(1994-11-22)

JFDI

	<chat> Just fucking do it.

	(2008-04-18)

JFET

	{Junction Field Effect Transistor}

JFGI

	<chat, WWW> Just Fucking Google It.  See {STFW}.

	(2014-05-23)

JFIF

	{JPEG File Interchange Format}

jiffy

	1. The duration of one {tick} of the computer's {system
	clock}.  Often one AC cycle time (1/60 second in the US and
	Canada, 1/50 most other places), but more recently 1/100 sec
	has become common.

	2. Confusingly, the term is sometimes also used for a
	1-millisecond {wall time} interval.  Even more confusingly,
	physicists semi-jokingly use "jiffy" to mean the time required
	for light to travel one foot in a vacuum, which turns out to
	be close to one *nanosecond*.

	[{Jargon File}]

	(2002-03-02)

Jim Clark

	{Dr. James H. Clark}

Jini

	<networking> /jee'nee/ {Sun}'s {Java}-based system for
	networking home appliances, {desktop computers} and other
	kinds of consumer electronics.

	{(http://java.sun.com/products/jini/)}.

	[Details?]

	(1998-11-14)

JIPS

	{JANET IP Service}

JIT

	{dynamic translation}

jitter

	Random variation in the timing of a signal, especially a
	clock.

	(1995-01-16)

JK flip-flop

	<hardware> An {edge triggered} {SR flip-flop} with extra logic
	such that only one of the R and S inputs is enabled at any
	time.  This prevents a {race condition} which can occur when
	both inputs of an RS flip-flop are active at the same time.
	In a JK flip-flop the R and S inputs are renamed J and K.  The
	set input (J) is only enabled when the flip-flop is reset and
	K when it is set.

	If both J and K inputs are held active then the outputs will
	change ("togle") on each falling edge of the clock.  JK
	flip-flops can be used to build a {binary counter} with a
	reset input.

	{(http://play-hookey.com/digital/logic7.html)}.

	[Was it named after {Jack Kilby}?]

	(2004-07-17)

jm

	<networking> The {country code} for Jamaica.

	(1999-01-27)

J.M.E. Baudot

	{Jean-Maurice-Émile Baudot}

JMHO

	<chat> Just My Humble Opinion.

	(1999-02-18)

JMS

	{Java Message Service}

JNI

	{Java Native Interface}

jo

	<networking> The {country code} for Jordan.

	(1999-01-27)

job

	<operating system> All activities involved in completing any
	project on a computer from start to finish.  A job may involve
	several {processes} and several {programs}.

	This term originates from a time when a user would manually
	submit a job as a deck of {punched cards} which would
	typically include {source code} interspersed with {job control
	language} instructions to guide phases of the job such as
	{compilation}, {linking}, {execution} and printing.

	(2005-03-16)

Job Control Language

	<language, operating system> (JCL) {IBM}'s supremely {rude}
	{script} language, used to control the execution of programs
	in IBM {OS/360}'s {batch} systems.  JCL has a very {fascist}
	{syntax}, and some versions will, for example, {barf} if two
	spaces appear where it expects one.

	Most programmers confronted with JCL simply copy a working
	file (or {card deck}), changing the file names.  Someone who
	actually understands and generates unique JCL is regarded with
	the mixed respect one gives to someone who memorises the phone
	book.  It is reported that hackers at IBM itself sometimes
	sing "Who's the breeder of the crud that mangles you and me?
	I-B-M, J-C-L, M-o-u-s-e" to the tune of the "Mickey Mouse
	Club" theme to express their opinion of the beast.

	As with {COBOL}, JCL is often used as an archetype of ugliness
	even by those who haven't experienced it.  However, no
	self-respecting {mainframe} {MVS} programmer would admit
	ignorance of JCL.

	See also {fear and loathing}.

	(1999-03-03)

Job Entry System

	<operating system> (JES) An {IBM} {mainframe} term.  There are
	really two JESs.  JES2 is smaller and simpler, and can handle
	99.99% of most jobs that run on IBM's {MVS} {operating
	system}.  JES3 is much bigger and requires really {big iron}
	to run.

	(1996-03-23)

Jobs

	{Stephen Jobs}

job security

	<jargon> When some piece of code is written in a particularly
	obscure fashion, and no good reason (such as time or space
	optimisation) can be discovered, it is often said that the
	programmer was attempting to increase his job security (i.e.
	by making himself indispensable for maintenance).  This sour
	joke seldom has to be said in full; if two hackers are looking
	over some code together and one points at a section and says
	"job security", the other one may just nod.

	[{Jargon File}]

	(1996-09-17)

jock

	1. A programmer who is characterised by large and somewhat
	{brute-force} programs.

	2. When modified by another noun, describes a specialist in
	some particular computing area.  The compounds "compiler jock"
	and "systems jock" seem to be the best-established examples.

	[{Jargon File}]

	(1995-01-19)

joe

	<jargon, security> A computer account whose user name and
	password are the same.  Joes are {considered harmful}, as are
	any passwords which are easy to guess.

	(1995-06-21)

joe code

	/joh' kohd"/ 1. Code that is overly {tense} and
	unmaintainable.  "{Perl} may be a handy program, but if you
	look at the source, it's complete joe code."

	2. Badly written, possibly buggy code.

	Correspondents wishing to remain anonymous have fingered a
	particular Joe at the Lawrence Berkeley Laboratory and
	observed that usage has drifted slightly; the original
	sobriquet "Joe code" was intended in sense 1.

	[{Jargon File}]

John Atanasoff

	{John Vincent Atanasoff}

John Gilmore

	<person> A noted {Unix} {hacker} who cofounded {Usenet}'s
	anarchic alt.* {newsgroup} {hierarchy} with {Brian Reid}.  He
	also worked on {GDB}.

	E-mail: John Gilmore <gnu@toad.com>.

	(1995-04-18)

John Mauchly

	<person> /jon W mok'*-lee/ (rhymes with "broccoli") Dr. John
	W. Mauchly, one of the developers of {ENIAC}.

	(2002-10-06)

John McCarthy

	<person, artificial intelligence> A pioneer of {artificial
	intelligence} (he coined ther term).  He invented {Lisp} at
	{MIT} in the late 1950s and later worked at {SAIL}.

	{(ftp://www-formal.stanford.edu/jmc)}.

	E-mail: <jmc@cs.stanford.edu>.

	(2003-08-06)

Johnniac

	<computer> A {mainframe} computer based on a design by {John
	von Neuman} built at the {Institute for Advanced Study}, USA.
	The Johnniac went live in 1953 and was decommissioned in 1966.
	Its memory consisted of 80 special "{Selectron}" {vacuum
	tubes}, each of which held 256 bits of data.

	(2003-06-07)

JOHNNIAC Open Shop System

	<language> (JOSS) An early, simple, {interactive} calculator
	language developed by Charles L. Baker at Rand in 1964.  There
	were two versions: JOSS I and JOSS II.

	[Connection with {Johnniac}?]

	["JOSS Users' Reference Manual", R.L. Clark, Report F-1535/9,
	RAND Corp (Jan 1975)].

	[Sammet 1969, pp. 217-226].

	(2004-07-11)

John Ousterhout

	<person> /oh'st*r-howt/ John K. Ousterhout, the designer of
	{Tcl} and {Tk}, and founder of {Scriptics}.

	See also: {Ousterhout's dichotomy}.

	E-mail: john.ousterhout@scriptics.com.

	(1999-02-21)

John Tukey

	<person> The eminent statistician credited with coining the
	term "{bit}" in 1949.

	{(http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Tukey.html)}.

	(2003-02-28)

John Vincent Atanasoff

	<person> John Vincent Atanasoff, 1903-10-04 - 1995-06-15.  An
	American mathemetical physicist, and the inventor of the
	electronic {digital computer}.  Between 1937 and 1942 he built
	the {Atanasoff-Berry Computer} with {Clifford Berry}, at the
	{Iowa State University}.

	Atanasoff was born on 1903-10-04 in Hamilton, New York.  In
	1925, he got a Bachelor of Science degree in Electrical
	Engineering from the University of Florida.  In 1926 he
	received a Master's degree in Maths from Iowa State
	University.  He received a PhD as a theoretical physicist from
	the University of Wisconsin in 1930.

	While an associate professor of mathematics and physics at
	Iowa State University, Atanasoff began to envision a {digital}
	computational device, believing {analogue} devices to be too
	restrictive.  Whilst working on his electronic {digital
	computer}, Atanasoff was introduced to a graduate student
	named {Clifford Berry}, who helped him build the {computer}.

	The first prototype of the {Atanasoff-Berry Computer} was
	demonstrated in December 1939.  Although no patent was awarded
	for the new {computer}, in 1973 US District Judge Earl R.
	Larson declared Atanasoff the inventor of the digital computer
	(declaring the {ENIAC} patent invalid).

	Atanasoff was awarded the National Medal of {Technology} by US
	President Bush on 1990-11-13.  He died following a stroke on
	1995-06-15.

	{John Vincent Atanasoff and the Birth of the Digital Computer
	(http://cs.iastate.edu/jva/jva-archive.shtml)}.

	["Atanasoff Forgotten Father of the Computer", C. R.
	Mollenhoff, Iowa State University Press 1988].

	(2001-10-03)

John von Neumann

	<person> /jon von noy'mahn/ Born 1903-12-28, died 1957-02-08.

	A Hungarian-born mathematician who did pioneering work in
	quantum physics, game theory, and {computer science}.  He
	contributed to the USA's Manhattan Project that built the
	first atomic bomb.

	von Neumann was invited to Princeton University in 1930, and
	was a mathematics professor at the {Institute for Advanced
	Studies} from its formation in 1933 until his death.

	From 1936 to 1938 {Alan Turing} was a visitor at the Institute
	and completed a Ph.D. dissertation under von Neumann's
	supervision.  This visit occurred shortly after Turing's
	publication of his 1934 paper "On Computable Numbers with an
	Application to the Entscheidungs-problem" which involved the
	concepts of logical design and the universal machine.  von
	Neumann must have known of Turing's ideas but it is not clear
	whether he applied them to the design of the IAS Machine ten
	years later.

	While serving on the BRL Scientific Advisory Committee, von
	Neumann joined the developers of {ENIAC} and made some
	critical contributions.  In 1947, while working on the design
	for the successor machine, {EDVAC}, von Neumann realized that
	ENIAC's lack of a centralized control unit could be overcome
	to obtain a rudimentary stored program computer.  He also
	proposed the {fetch-execute cycle}.  His ideas led to what is
	now often called the {von Neumann architecture}.

	{(http://sis.pitt.edu/~mbsclass/is2000/hall_of_fame/vonneuma.htm)}.

	{(http://ei.cs.vt.edu/~history/VonNeumann.html)}.

	{(http://ftp.arl.mil/~mike/comphist/54nord/)}.

	(2004-01-14)

join

	1. <database> {inner join} (common) or {outer join} (less
	common).

	2. <theory> {least upper bound}.

	(1998-11-23)

Joint Academic NETwork

	(JANET) The {wide area network} which links UK academic and
	research institutes.  JANET is controlled by the {Joint
	Network Team} (JNT) and Network Executive (NE).  It is an
	{internet} (a large number of interconnected sub-networks)
	that provides connectivity within the community as well as
	access to external services and other communities.  The {hub}
	is the JANET subnetwork, a private {X.25} {packet-switched}
	network that interconnects over 100 sites.  At the majority of
	sites, {local area networks} (LANs) are connected to JANET
	allowing off-site access for the computers and terminals
	connected to these networks.  The {Coloured Book} {protocol}
	architecture is used to support interactive terminal access to
	computers (for both character terminals and screen terminals),
	inter-host file transfers, {electronic mail} and remote
	{batch} job submission.

	{(http://nic.ja.net/)}.

	See also {JIPS}, {SuperJanet}.

	(1995-02-07)

Joint Bi-level Image Experts Group

	<algorithm> (JBIG) An experts group of {ISO}, {IEC} and
	{ITU-T} (JTC1/SC2/WG9 and SGVIII) working to define a
	{compression} {standard} for {lossless} {image} coding.  Their
	proposed {algorithm} features compatible {progressive coding}
	and {sequential coding} and is lossless - the image is
	unaltered after compression and decompression.

	JBIG can handle images with from one to 255 bits per {pixel}.
	Better compression algorithms exist for more than about eight
	bits per pixel.  With multiple bits per pixel, {Gray code} can
	be used to reduce the number of bit changes between adjacent
	decimal values (e.g. 127 and 128), and thus improve the
	compression which JBIG does on each {bitplane}.

	JBIG uses discrete steps of detail by successively doubling
	the {resolution}.  The sender computes a number of resolution
	layers and transmits these starting at the lowest resolution.
	Resolution reduction uses pixels in the high resolution layer
	and some already computed low resolution pixels as an index
	into a lookup table. The contents of this table can be
	specified by the user.

	Compatibility between progressive and sequential coding is
	achieved by dividing an image into stripes.  Each stripe is a
	horizontal bar with a user definable height.  Each stripe is
	separately coded and transmitted, and the user can define in
	which order stripes, resolutions and bitplanes are intermixed
	in the coded data.  A progressively coded image can be decoded
	sequentially by decoding each stripe, beginning by the one at
	the top of the image, to its full resolution, and then
	proceeding to the next stripe.  Progressive decoding can be
	done by decoding only a specific resolution layer from all
	stripes.

	After dividing an image into {bitplanes}, {resolution layers}
	and stripes, eventually a number of small bi-level {bitmaps}
	are left to compress.  Compression is done using a {Q-coder}.

	The Q-coder codes bi-level pixels as symbols using the
	probability of occurrence of these symbols in a certain
	context.  JBIG defines two kinds of context, one for the
	lowest resolution layer (the base layer), and one for all
	other layers (differential layers).  Differential layer
	contexts contain pixels in the layer to be coded, and in the
	corresponding lower resolution layer.

	For each combination of pixel values in a context, the
	probability distribution of black and white pixels can be
	different.  In an all white context, the probability of coding
	a white pixel will be much greater than that of coding a black
	pixel.  The Q-coder, like {Huffman coding}, achieves
	{compression} by assigning more bits to less probable symbols.
	The Q-coder can, unlike a Huffman coder, assign one output
	code bit to more than one input symbol, and thus is able to
	compress bi-level pixels without explicit {clustering}, as
	would be necessary using a Huffman coder.

	[What is "clustering"?]

	Maximum compression will be achieved when all probabilities
	(one set for each combination of pixel values in the context)
	follow the probabilities of the pixels.  The Q-coder therefore
	continuously adapts these probabilities to the symbols it
	sees.

	JBIG can be regarded as two combined algorithms:

	(1) Sending or storing multiple representations of images at
	different resolutions with no extra storage cost.
	Differential layer contexts contain pixels in two resolution
	layers, and so enable the Q-coder to effectively code the
	difference in information between the two layers, instead of
	the information contained in every layer.  This means that,
	within a margin of approximately 5%, the number of resolution
	layers doesn't effect the compression ratio.

	(2) A very efficient compression algorithm, mainly for use
	with bi-level images.  Compared to {CCITT Group 4}, JBIG is
	approximately 10% to 50% better on text and line art, and even
	better on {halftones}.  JBIG, just like Group 4, gives worse
	compression in the presence of noise in images.

	An example application would be browsing through an image
	database.

	["An overview of the basic principles of the Q-coder adaptive
	binary arithmetic coder", W.B. Pennebaker, J.L. Mitchell,
	G.G. Langdon, R.B. Arps, IBM Journal of research and
	development, Vol.32, No.6, November 1988, pp. 771-726].

	{(http://crs4.it/~luigi/MPEG/jbig.html)}.

	(1998-03-29)

Joint Photographic Experts Group

	<image, body, file format, standard> (JPEG) The original name
	of the committee that designed the standard {image}
	{compression} {algorithm}.  JPEG is designed for compressing
	either {full-colour} or {grey-scale} {digital} images of
	"natural", real-world scenes.  It does not work so well on
	non-realistic images, such as cartoons or line drawings.  JPEG
	does not handle compression of black-and-white (1
	bit-per-pixel) images or {moving pictures}.  Standards for
	compressing those types of images are being worked on by other
	committees, named {JBIG} and {MPEG}.

	{(http://jpeg.org/)}.

	{Filename extension}: .jpg, .jpeg.

	See also {PJPEG}.

	(2000-09-11)

Joint Technical Committee

	<standard, body> (JTC) A {standards} body straddling {ISO} and
	{IEC}.

	(1995-04-21)

Joint Test Action Group

	<architecture, body, electronics, integrated circuit,
	standards, testing> (JTAG, or "IEEE Standard 1149.1") A
	{standard} specifying how to control and monitor the pins of
	compliant devices on a {printed circuit board}.

	Each device has four JTAG control lines.  There is a common
	reset (TRST) and clock (TCLK).  The data line {daisy chains}
	one device's TDO pin to the TDI pin on the next device.

	The {protocol} contains commands to read and set the values of
	the pins (and, optionally {internal registers}) of devices.
	This is called "{boundary scanning}".  The protocol makes
	board testing easier as signals that are not visible at the
	board connector may be read and set.

	The protocol also allows the testing of equipment, connected
	to the JTAG port, to identify components on the board (by
	reading the device identification register) and to control and
	monitor the device's outputs.

	JTAG is not used during normal operation of a board.

	{JTAG Technologies B.V. (http://jtag.com/)}.

	{Boundary Scan/JTAG Technical Information - Xilinx, Inc.
	(http://xilinx.com/support/techsup/journals/jtag/)}.

	{Java API for Boundary Scan FAQs - Xilinx Inc.
	(http://xilinx.com/products/software/sx/sxfaqs.htm)}.

	{JTAG Boundary-Scan Test Products - Corelis, Inc.
	(http://corelis.com/products/scanovrv.html)}.

	{"Logic analyzers stamping out bugs at the cutting edge", EDN
	Access, 1997-04-10
	(http://ednmag.com/ednmag/reg/1997/041097/08df_02.htm)}.

	{IEEE 1149.1 Device Architecture - Boundary-Scan Tutorial from
	ASSET InterTech, Inc.
	(http://asset-intertech.com/tutorial/arch.htm)}.

	{"Application-Specific Integrated Circuits", Michael John
	Sebatian Smith, published Addison-Wesley - Design Automation
	Cafe
	(http://dacafe.com/DACafe/EDATools/EDAbooks/ASIC/Book/CH14/CH14.2.htm)}.

	{Software Debug options on ASIC cores - Embedded Systems
	Programming Archive (http://embedded.com/97/feat9701.htm)}.

	{Designing for On-Board Programming Using the IEEE 1149.1
	(JTAG) Access Port - Intel
	(http://developer.intel.com/design/flcomp/applnots/292186.htm)}.

	{Built-In Self-Test Using Boundary Scan by Texas Instruments -
	EDTN Network
	(http://edtn.com/scribe/reference/appnotes/md003e9a.htm)}.

	(1999-11-15)

Joliet

	<standard, storage> An extension of the {ISO 9660:1988} {ISO}
	{standard} {file system} for {CD-ROMs} that allows {Unicode}
	characters in file names and other enhancements.  Version 1 of
	Joliet was released on 1995-05-22.

	Joiliet supports file and directory names up to 128 bytes (64
	unicode characters) long, directory names with file name
	extensions, a directory hierarchy deeper than 8 levels and the
	{volume recognition sequence} supports {multisession}.

	Joliet uses ISO 9660's "supplementary volume descriptor" (SVD)
	to specify Unicode files.  Use of the previously unused escape
	sequence ISO 2022 means that Joliet is {backward compatible}
	with ISO 9660..

	{(http://www-plateau.cs.berkeley.edu/people/chaffee/jolspec.html)}.

	(2006-09-25)

jolix

	{386BSD}

JOLT

	{Java Open Language Toolkit}

Jonathan's Own Version Of Emacs

	<editor> (jove) A version of the {GNU} {Emacs} editor.
	Similar to {MicroGnuEmacs}.

	(2008-05-29)

Jon Postel

	<person> (Jonathan Bruce Postel, 1943 - 1998-10-16) /p*-stel'/
	One of the {Internet}'s founding fathers.  Jon's name is
	prominent on many of the fundamental {standards} on which the
	Internet is built, such as {UDP}.  He ran {IANA} for as long
	as anybody could remember, in fact for most of the time he
	*was* IANA.

	He wrote {STD 1}, {STD 2} and several dozen other {RFCs}.  His
	friend {Vinton Cerf} noted his passing in {RFC 2468}.

	(1998-10-21)

JOOP

	{Journal of Object-Oriented Programming}

Joseph-Marie Jacquard

	<person> /zhoh-zef' mah-ree' zhah-kar'/ (1752-07-07 to
	1834-08-07) The inventor of the {Jacquard loom}.

	(1998-10-19)

Josephson Junction

	<electronics> A type of {electronic} {circuit} capable of
	switching at very high speeds when operated at temperatures
	approaching {absolute zero}.  The low power dissipation of a
	Josepshson Junction makes it useful in {high density computer
	circuits}.

	(2004-06-28)

JOSS

	{JOHNNIAC Open Shop System}.

Jossle

	<language> A type checked language with {separate compilation}
	using a program library.

	Mentioned in ["Rationale for the Design of Ada", J.  Ichbiah,
	Cambridge U Press, 1986, p.192].

	(2005-02-19)

journal

	<operating system> An on-going record of transactions, such as
	{database} updates, {file system} writes, procedure calls or
	message transmissions.  A journal differs from a simple {log}
	in that the contents of the journal can be used to reconstruct
	the state of the system after a failure by re-applying the
	transactions in the journal to a snapshot of the system
	previous state.

	(2008-05-29)

journalling

	{journal}

jove

	{Jonathan's Own Version Of Emacs}.

JOVIAL

	<language> (Jule's Own Version of IAL) A version of {IAL}
	produced by Jules I. Schwartz in 1959-1960.  JOVIAL was based
	on {ALGOL 58}, with extensions for large scale {real-time}
	programming.  It saw extensive use by the US Air Force.  The
	data elements were items, entries ({records}) and tables.

	Versions include JOVIAL I ({IBM 709}, 1960), JOVIAL II ({IBM
	7090}, 1961) and JOVIAL 3 (1965).  Dialects: {J3}, {JOVIAL
	J73}, {JS}, {JTS}.

	Ada/Jovial Newsletter, Dale Lange +1 (513) 255-4472.

	[CACM 6(12):721, Dec 1960].

	(1996-07-19)

Joy

	<language> A {functional programming} language by Manfred von
	Thun.  Joy is unusual because it is not based on {lambda
	calculus}, but on the {composition} of {functions}.  Functions
	take a stack as argument, consume any number of parameters
	from it, and return it with any number of results on it.  The
	concatenation of programs denotes the composition of
	functions.  One of the datatypes of Joy is that of quoted
	programs, of which lists are a special case.

	{Joy Home
	(http://latrobe.edu.au/philosophy/phimvt/joy.html)}.

	(2003-06-13)

Joyce

	A distributed language based on {Pascal} and {CSP}, by Per
	Brinch Hansen.

	["Joyce - A Programming Language for Distributed Systems", Per
	Brinch Hansen, Soft Prac & Exp 17(1):29-50 (Jan 1987)].

	(1994-12-06)

joystick

	<hardware, games> A device consisting of a hand held stick that
	pivots about one end and transmits its angle in two dimensions
	to a computer.  Joysticks are often used to control games, and
	usually have one or more push-buttons whose state can also be
	read by the computer.  Most I/O interface cards for {IBM PCs}
	have a joystick (game control) port.

	(1995-03-08)

Joy, William

	{William Joy}

jp

	<networking> The {country code} for Japan.

	(1999-01-27)

JPEG

	{Joint Photographic Experts Group}

JPEG-2000

	<image, file format> A potential successor to {JPEG} with
	better compression and {multiresolution} {images}.  JPEG-2000
	gives reasonable quality down to 0.1 bits/pixel (JPEG quality
	drops dramatically below about 0.4 bits/pixel).

	(2001-12-02)

JPEG File Interchange Format

	<graphics, file format> (JFIF) The technical name for the file
	format better known as {JPEG}.  This term is used only when
	the difference between the JPEG file format and the JPEG image
	{compression} {algorithm} is crucial.

	(1998-02-10)

jpg

	{JPEG}

JPL

	<language> {JAM Programming Language}.

JPLDIS

	{Jet Propulsion Laboratory} Display Information System.  Query
	system for {UNIVAC 1108} [or PDP's?] written in {Fortran},
	based on {Tymshare}'s "Retrieve".  Indirectly led to {Vulcan}
	which led to {dBASE II}.  Jack Hatfield, George Masters,
	W. Van Snyder, Jeb Long et al, JPL.

J. Presper Eckert

	<person> One of the developers of {ENIAC}.

	{Biography
	(http://www-groups.dcs.st-and.ac.uk/~history/ShortBiogs/E.html)}.

	[Summary?]

	(1995-11-14)

J. Random

	<jargon> /J rand'm/ (Generalised from {J. Random Hacker})
	Arbitrary; ordinary; any one; any old.  "J. Random" is often
	prefixed to a noun to make a name out of it.  It means roughly
	"some particular" or "any specific one".  "Would you let
	J. Random Loser marry your daughter?"  The most common uses
	are "J. Random Hacker", "J. Random Loser", and "J. Random
	Nerd" ("Should J. Random Loser be allowed to {gun} down other
	people?"), but it can be used simply as an elaborate version
	of {random} in any sense.

	[{Jargon File}]

J. Random Hacker

	<jargon> /J rand'm hak'r/ {MIT} jargon for a mythical figure;
	the archetypal {hacker} {nerd}.

	This may originally have been inspired by "J. Fred Muggs", a
	show-biz chimpanzee whose name was a household word back in
	the early days of {TMRC}, and was probably influenced by
	{J. Presper Eckert} (one of the co-inventors of the electronic
	computer).

	See {random}, {Suzie COBOL}.

	(1996-10-16)

JRE

	{Java Run-Time Environment}

JRL

	{J. Random} Loser.  The names JRL and JRN were sometimes used
	as example names when discussing a kind of user ID used under
	{TOPS-10} and {WAITS}.  They were understood to be the
	initials of (fictitious) programmers named "J. Random Loser"
	and "J. Random Nerd".  For example, if one said "To log in,
	type log one comma jay are en" (that is, "log 1,JRN"), the
	listener would have understood that he should use his own
	computer ID in place of "JRN".

JRMP

	{Java Remote Method Protocol}

JRN

	{J. Random} Nerd.  See {JRL}.

JRST

	/jerst/ [based on the {PDP-10} jump instruction, obsolete] To
	suddenly change subjects, with no intention of returning to
	the previous topic.  Usage: rather rare except among PDP-10
	diehards, and considered silly.  See also {AOS}.

	[{Jargon File}]

JS

	Dialect of {JOVIAL}.  [Sammet 1969, p.639].

JSA

	Japanese Standards Association.

JSDK

	{Java Servlet Development Kit}

JSF

	{JavaServer Faces}

JSON

	{JavaScript Object Notation}

JSP

	{JavaServer Pages}

JTAG

	{Joint Test Action Group}

JTB

	{jump trace buffer}

JTC

	<standard, body> {Joint Technical Committee}.

JTC1/SC24

	The {ISO}/{IEC} group which has worked on {standards} like
	{GKS}, {PHIGS}, {CGM}, and is now also involved in the area of
	standardisation in {Multimedia Presentation}.

	{(http://cwi.nl/JTC1SC24/)}.

	(1995-01-04)

JTS

	A simple dialect of {JOVIAL}.

	[Sammet 1969, p. 528].

	(1995-01-04)

juggling eggs

	Keeping a lot of {state} in your head while modifying a
	program.  "Don't bother me now, I'm juggling eggs", means that
	an interrupt is likely to result in the program's being
	scrambled.  In the classic first-contact SF novel "The Mote in
	God's Eye", by Larry Niven and Jerry Pournelle, an alien
	describes a very difficult task by saying "We juggle priceless
	eggs in variable gravity."  See also {hack mode}.

	[{Jargon File}]

Jughead

	Jughead is a tool for Gopher administrators to get menu
	information from various gopher servers, and is an acronym
	for: Jonzy's Universal Gopher Hierarchy Excavation And
	Display.  Jughead was written in ANSI C.  Gopher:
	gopher.cc.utah.edu, About U of U Gopher/Gopher Tools/jughead.

	{(ftp://ftp.cc.utah.edu/pub/gopher/GopherTools)}.  Mailing
	list: jughead-news@lists.utah.edu.

jukebox

	<hardware, storage> A hardware mechanism for allowing access
	to one of a group of discs, especially CD-ROMs or other
	optical media.

	[Or magnetic tapes?]

	(1996-12-10)

jump

	<programming> (Or "branch") The term for a {goto} instruction,
	usually in a context of {machine languages}.  "Branch" may be
	synonymous with "jump", or may refer to jumps that depend on a
	condition.

	(1998-11-14)

jumper

	<hardware> A removable wire or small plug whose presence or
	absence is used to determine some aspect of hardware
	configuration.

	(1995-03-14)

jump off into never-never land

	[J. M. Barrie's "Peter Pan"] Same as {branch to Fishkill}, but
	more common in technical cultures associated with non-{IBM}
	computers that use the term "jump" rather than "branch".

	Compare {hyperspace}.

	[{Jargon File}]

	(1994-12-15)

jump trace buffer

	(JTB) A feature of some {pipelined} processors (e.g. {Amulet},
	{Pentium}?) which stores the source and destination addresses
	of the last few branch instuctions executed.  When a branch
	instruction is fetched, its source is looked for in the JTB.
	If found, the next instuction fetch will be from the previous
	destination of that branch.  If it turns out that the branch
	shouldn't have been taken this time, then the {pipeline} is
	flushed.  This means that in a {tight loop} it is not
	necessary to flush the {pipeline} every time you jump back to
	the start.

	(1994-12-15)

Junction FET

	{Junction Field Effect Transistor}

Junction Field Effect Transistor

	<electronics> (JFET, Junction FET) A {Field Effect Transistor}
	in which the conducting channel lies between pn junctions in
	the silicon material.  A pn junction acts as a {diode}, so it
	becomes conductive if the gate voltage gets reversed.

	(1997-02-24)

Juno

	A numerical {constraint}-oriented language for graphics
	applications.  It solves its constraints using
	{Newton-Raphson} {relaxation}.  It was inspired partly by
	{Metafont}.

	["Juno, a Constraint-Based Graphics System", G. Nelson in
	SIGGRAPH '85 Conf Readings, B.A. Barsky ed, Jul 1985,
	pp. 235-243].

	(1994-11-23)

jupiter

	To kill an {IRC} {robot} or user and then take its place by
	adopting its {nick} so that it cannot reconnect.  Named after
	a particular IRC user who did this to {NickServ}, the robot in
	charge of preventing people from inadvertently using a nick
	claimed by another user.

	[{Jargon File}]

	(1994-11-23)

Just a Bunch Of Disks

	<jargon, storage> (JBOD, or "Just a Bunch of Drives") A
	storage subsystems using multiple independent {disk drives},
	as opposed to one form of {RAID} or another.

	For example, {Unisys} open storage provides JBOD in both
	{SCSI} and {fibre channel} interfaces.

	{Unisys JBOD
	(http://marketplace.unisys.com/storage/jbod.html)}.

	(1998-12-21)

just-in-time

	{dynamic translation}

JVM

	{Java Virtual Machine}

Jym

	A predecessor to {Graal} by Patrick Bellot, France.

K

	<unit> {kilo-}, a {kilobyte}.  Used both as a spoken word and
	a written suffix, like {meg} and {gig} for {megabyte} and
	{gigabyte}.

	See {prefix}.

	[{Jargon File}]

	(1995-09-29)

K5

	An early system on the {Larc} computer.

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

	(1994-11-23)

K56flex

	<protocol> A modem standard developed by {Rockwell} for 56
	{kbps} communications.  K56flex Became more popular than the
	rival {X2} but will be superseded by the official {V.90}
	standard.

	[Already superseded?]

	(1998-09-08)

K6

	<processor> A {Pentium II} class {microprocessor},
	manufactured by {AMD}.

	[100% Compatible?  Speed?]

	(1998-02-27)

K7

	{Athlon}

KA9Q

	<networking> A popular implementation of {TCP/IP} and
	associated {protocols} for amateur {packet radio} systems and
	{personal computers} connected via {serial lines}.  It was
	named after the call-sign of Phil Karn - the radio ham who
	first wrote it for {MS-DOS} on the {IBM PC}.

	KA9Q is currently maintained by Anthony Frost
	<vulch@kernow.demon.co.uk> (call-sign G8UDV) and Adam
	Goodfellow <tcpip2@comptech.demon.co.uk>.  It has been ported
	to the {Archimedes} by Jonathan Naylor (G4KLX).

	[FTP?]

	(1994-11-08)

KADS

	{Knowledge Analysis and Design System}

kahuna

	<person> /k*-hoo'n*/ (From the Hawaiian title for a shaman) An
	{IBM} synonym for {wizard} or {guru}.

	[{Jargon File}]

	(1994-11-09)

Kaleidoscope

	<language> An {object-oriented} language which mixes
	{imperative programming} and {constraint}-oriented features.
	Kaleidoscope was written by Freeman-Benson of the {University
	of Washington}, {Universite de Nantes}, 1989; {University of
	Victoria}, 1992.  It is similar to {Siri} and vaguely related
	to {Prose}.

	Versions: Kaleidoscope '90 and Kaleidoscope '91.

	["Kaleidoscope: Mixing Objects, Constraints and Imperative
	Programming", B.N. Freeman-Benson, SIGPLAN Notices
	25(10):77-88 (OOPSLA/ECOOP '90) (Oct 1990)].

	["Constraint Imperative Programming", B.N. Freeman-Benson,
	Ph.D. Thesis, TR 91-07-02, U Wash (1991)].

	["Constraint Imperative Programming", Freeman-Benson et al,
	IEEE Conf on Comp Lang, Apr 1992].

	(1994-11-09)

Kali

	A {data parallel} language.

	["Supporting Shared Data Structures on Distributed Memory
	Architectures", C. Koelbel et al in Second ACM SIGPLAN Symp on
	Princ and Prac of Parallel Programming, pp.177-186, Mar 1990].

	(1994-11-09)

kamikaze packet

	{Christmas tree packet}

Kamin's interpreters

	<language, tool> A set of {interpreters} for {Pascal}, {Lisp},
	{APL}, {Scheme}, {SASL}, {CLU}, {Smalltalk}, and {Prolog}.
	Tim Budd <budd@cs.orst.edu> implemented them as {subclasses}
	in {C++} sometime before 1991-09-12.

	{(ftp://cs.orst.edu/pub/budd/kamin/)}.

	["Programming Languages, An Interpreter-Based Approach",
	Samuel Kamin].

	(2002-03-14)

kana

	<Japanese> The two Japanese syllabaries, {hiragana} and
	{katakana}.

	(2001-03-18)

kangaroo code

	{spaghetti code}

kanji

	<human language, character> /kahn'jee/ (From the Japanese
	"kan" - the Chinese Han dynasty, and "ji" - {glyph} or letter
	of the alphabet.  Not capitalised.  Plural "kanji") The
	Japanese word for a {Han character} used in Japanese.  Kanji
	constitute a part of the {writing system} used to represent
	the Japanese language in written, printed and displayed form.
	The term is also used for the collection of all kanji
	{letters}.

	{US-ASCII} doesn't include kanji characters, but some
	{character encodings}, including {Unicode}, do.

	The Japanese writing system also uses hiragana, katakana, and
	sometimes romaji ({Roman alphabet} letters).  These characters
	are distinct from, though commonly used in combination with,
	kanji.  {Furigana} are also added sometimes.

	(2000-12-30)

KAOS

	{Kent Applicative Operating System}

KAP

	Kernel Andorra Prolog.  The predecessor of {AKL}.

	["Kernel Andorra Prolog and its Computation Model", S. Haridi
	<seif@sics.se> et al, in Logic Programming: Proc 7th Intl
	Conf, MIT Press 1990].

	(1994-11-02)

Karel

	Language featured in Karel the Robot: A Gentle Introduction to
	Computer Programming, Richard E. Pattis, Wiley 1981.

	{(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/pascal/karel.tar-z)}.

katakana

	<Japanese> The square-formed Japanese {kana} syllabary.
	Katakana is mostly used to write foreign names, foreign words,
	and loan words as well as many onomatopeia, plant and animal
	names.

	(2001-03-18)

Katmai New Instructions

	{Streaming SIMD Extensions}

KB

	{kilobyte}

KBMS

	An {expert system}.

kbps

	{kilobits per second}

KBS

	{Knowledge-Based System}

KC-85/1

	<computer> A commercial {home computer} from East Germany.
	The KC-85/1 runs at 2.45 {MHz} and uses a {Z80} {clone}
	{CPU}. The computer allows for only semigraphics.

	(2004-03-31)

KC85/2

	<computer> A commercial {home computer} introduced in East
	Germany in 1984. The KC85/2 has 32 {KB} of {RAM} and uses a
	{Z80} {clone} {CPU}.

	(2004-03-31)

KC85/3

	<computer> A commercial {home computer} introduced in East
	Germany in 1986.  The KC85/3 has 32 {KB} of {RAM} and uses a
	{Z80} {clone} {CPU}.

	(2004-03-31)

KC85/4

	<computer> The last commercial home computer from East Germany
	in the KC series.  The KC85/4 was introduced in 1988.  It runs
	at 1.77 {MHz}, has 64 {KB} of {RAM} and uses a {Z80} {clone}
	{CPU}.  It displays graphics at a {resolution} of 320x256.

	(2004-03-31)

KCL

	{Kyoto Common Lisp}

ke

	<networking> The {country code} for Kenya.

	(1999-01-27)

KEE

	Knowledge Engineering Environment.  Frame-based expert system.
	Supports dynamic inheritance, {multiple inheritance},
	polymorphism.  Classes, meta-classes and objects are all
	treated alike.  A class is an instance of a meta-class.  Can
	control rules for merging of each field when multiple
	inheritance takes place.  Methods are written in LISP.
	Actions may be triggered when fields are accessed or modified.
	Extensive GUI integrates with objects.  Can easily make object
	updates to be reflected on display or display selections to
	update fields.  This can in turn trigger other methods or
	inference rules which may then update other parts of the
	display.  Intellicorp, for TI Explorer.  "The Role of
	Frame-Based Representation in Reasoning", R. Fikes et al, CACM
	28(9):904- 920 (Sept 1985).

keep-alive

	<communications> A short message sent periodically on a
	communication channel that would otherwise {time out} and
	close due to inactivity.

	(2012-07-18)

Keldysh Institute of Applied Mathematics

	Address: Russian Academy of Sciences Miusskaya Pl. 4, 125047
	Moscow, Russia.

	(1994-12-12)

ken

	/ken/ 1. {Ken Thompson}

	2. A flaming user.  This was originated by the Software
	Support group at {Symbolics} because the two greatest flamers
	in the user community were both named Ken.

	[{Jargon File}]

Ken Thompson

	<person> The principal inventor of the {Unix} {operating
	system} and author of the {B} language, the predecessor of
	{C}.

	In the early days Ken used to hand-cut {Unix} distribution
	tapes, often with a note that read "Love, ken".  Old-timers
	still use his first name (sometimes uncapitalised, because
	it's a login name and mail address) in third-person reference;
	it is widely understood (on {Usenet} in particular) that
	without a last name "Ken" refers only to Ken Thompson.
	Similarly, Dennis without last name means {Dennis Ritchie}
	(and he is often known as dmr).

	Ken was first hired to work on the {Multics} project, which
	was a huge production with many people working on it.  Multics
	was supposed to support hundreds of on-line logins but could
	barely handle three.

	In 1969, when Bell Labs withdrew from the project, Ken got fed
	up with Multics and went off to write his own operating
	system.  People said "well, if zillions of people wrote
	Multics, then an OS written by one guy must be Unix!".  There
	was some joking about eunichs as well.

	Ken's wife Bonnie and son Corey (then 18 months old) went to
	visit family in San Diego.  Ken spent one week each on the
	{kernel}, {file system}, etc., and finished UNIX in one month
	along with developing {SPACEWAR} (or was it "Space Travel"?).

	See also {back door}, {brute force}, {demigod}, {wumpus}.

	(1999-01-26)

Kent Recursive Calculator

	<language> (KRC) A {lazy} {functional language} developed by
	{David Turner} in 1981, based on {SASL}, with {pattern
	matching} and {ZF expressions}.

	["Functional Programming and its Applications", David
	A. Turner, Cambridge U Press 1982].

	See also {continental drift}.

	(2011-11-30)

Kerberos

	<security> The {authentication} system of {MIT}'s Project
	{Athena}.  It is based on {symmetric key cryptography}.
	Adopted by {OSF} as the basis of security for {DME}.

	(1997-02-04)

Kermit

	<communications> A popular {packet-oriented} {protocol} from
	{Columbia University} for transferring {text files} and
	{binary files} on both {full-duplex} and {half-duplex} 8 bit
	and 7-bit serial connections in a system- and
	medium-independent fashion, and implemented on hundreds of
	different computer and {operating system} {platforms}.  On
	full-duplex connections a {sliding window} protocol with
	selective retransmission provides excellent performance and
	error recovery characteristics.  On 7-bit connections, locking
	shifts provide efficient transfer of 8-bit data.

	When properly implemented, as in the Columbia University
	Kermit Software collection, performance is equal to or better
	than other protocols such as {ZMODEM}, {YMODEM}, and {XMODEM},
	especially on poor connections.

	Kermit is an open protocol - anybody can base their own
	program on it, but some Kermit software and {source code} is
	{copyright} by Columbia University.

	{(http://columbia.edu/kermit/)}.

	(1996-01-29)

kernal

	{kernel}

kernel

	(Note: NOT "kernal").

	1. <operating system> The essential part of {Unix} or other
	{operating systems}, responsible for resource allocation,
	low-level hardware interfaces, security etc.  See also
	{microkernel}.

	2. <language> An essential subset of a programming language,
	in terms of which other constructs are (or could be) defined.
	Also known as a {core} language.

	(1996-06-07)

Kernel Parlog

	<language> A {modeless} {intermediate language} for {Parlog}
	compilation.

	["Notes on the Implementation of Parlog", K.L. Clark et al, J
	Logic Prog 2(1):17-42 1985].

	(1996-06-07)

Kernel User Interface Package

	<tool> (KUIP) The human interface to {Physics Analysis
	Workbench} (PAW).

	(1994-11-11)

kerning

	<text> In {typography}, the process of adjusting the spacing
	between certain pairs of {characters} to improve the appearance of
	the text.  Roughly speaking, this can be thought of as equalising
	the area of space between adjacent characters.  Each {character}
	of a {proportional font} has a width that includes some space on
	either side so that adjacent letters don't touch.  Some pairs of
	characters such as A and V, look better if the spaces overlap
	slightly, bringing the characters closer together (but still not
	touching).  In most cases, kerning reduces the spacing ("negative
	kerning") but some pairs like "r" and "y" look better with extra
	space ("positive kerning").

	See also {tracking}, {leading}.

	(2014-01-14)

Kevo

	<language> A {prototype}-based {object-oriented} language
	written for {Macintosh} by Antero Taivalsaari at UTA, Finland.
	Kevo is built around a {threaded code} {interpreter} and
	features a unique prototype-based {object} model (which is
	based neither on {classes} nor {Self}-style {delegation}),
	{pre-emptive multitasking}, {cooperative multitasking},
	dynamic {memory management}, an icon-based {object browser}
	and editor modelled loosely after Mac {Finder}.  Kevo's
	{syntax} is close to {Forth} and its {semantics} resembles
	{Self} and {Omega}.

	Latest version: 0.9b6.

	{(ftp://cs.uta.fi/pub/kevo/)}.

	E-mail: <kevo-interest@ursamajor.uvic.ca>.

	[TR DCS-197-19, U Victoria, June 1992].

	(1993-05-18)

key

	1. <database> A value used to identify a {record} in a
	database, derived by applying some fixed function to the
	record.  The key is often simply one of the {fields} (a
	{column} if the database is considered as a table with records
	being rows, see "{key field}").  Alternatively the key may be
	obtained by applying some function, e.g. a {hash function}, to
	one or more of the fields.  The set of keys for all records
	forms an {index}.  Multiple indexes may be built for one
	database depending on how it is to be searched.

	2. <cryptography> A value which must be fed into the
	{algorithm} used to decode an encrypted message in order to
	reproduce the original {plain text}.  Some encryption schemes
	use the same (secret) key to encrypt and decrypt a message,
	but {public key encryption} uses a "private" (secret) key and
	a "public" key which is known by all parties.

	3. <hardware> An electromechanical {keyboard} button.

	(2003-07-04)

keyboard

	<hardware> A {hardware} device consisting of a number of
	mechanical buttons (keys) which the user presses to input
	characters to a computer.

	Keyboards were originally part of {terminals} which were
	separate {peripheral} devices that performed both input and
	output and communicated with the computer via a {serial line}.
	Today a keyboard is more likely to be connected more directly
	to the processor, allowing the processor to scan it and detect
	which key or keys are currently pressed.  Pressing a key sends
	a low-level {key code} to the keyboard input driver routine
	which translates this to one or more {characters} or special
	actions.

	Keyboards vary in the keys they have, most have keys to
	generate the {ASCII} {character set} as well as various
	{function keys} and special purpose keys, e.g. reset or volume
	control.

	(2003-07-04)

Keyboard Commando

	<messaging> A {bulletin board} user who posts authoritatively
	on military or combat topics, but who has never served in
	uniform or heard a shot fired in anger.  A poseur.

	(1997-04-25)

keyboard plaque

	<jargon> The disgusting buildup of dirt and crud found on
	computer keyboards.  "Are there any other terminals I can use?
	This one has a bad case of keyboard plaque."

	(1997-04-30)

Keyboard Send Receive

	<hardware> (KSR) Part of a designation for a hard-copy
	{terminal}, manufactured by {Teletype Corporation}.  The KSR
	range were lower cost versions of the {ASR} models.

	(1995-11-23)

Keyboard Video Mouse

	<hardware> (KVM) Used to describe a "KVM switch" that allows
	one keyboard, one video display and one mouse to be switched
	between two or more computers.

	(2007-03-22)

Keyed-Hashing Message Authentication

	<messaging, cryptography> (HMAC) A mechanism for message
	{authentication} using cryptographic {hash functions}.  HMAC
	can be used with any iterative cryptographic hash function,
	e.g., {MD5}, {SHA-1}, in combination with a secret shared key.
	The cryptographic strength of HMAC depends on the properties
	of the underlying hash function.

	[RFC 2104].

	(1997-05-10)

Keyed Sequenced Data Set

	<database> (KSDS) One of the access methods used by {VSAM}.
	KSDS has indexes and data split into CI (Control Interval) in
	CA (Control Area) and multi index levelled.  Forward and
	backward compression is applied to key values.

	(1999-01-11)

key escrow

	<security> A controversial arrangement where the {keys} needed
	to decrypt encrypted data must be held in {escrow} by a third
	party so that government agencies can obtain them to decrypt
	messages which they suspect to be relevant to national
	security.

	(1999-12-14)

key field

	<database> A field of a {database} (typically a {relational
	database}) {table} which together form a unique identifier for
	a record (a table entry).  The aggregate of these fields is
	usually referred to simply as "the {key}".

	(1997-08-03)

key frame

	<graphics> A frame in an animated sequence of frames which was
	drawn or otherwise constructed directly by the user rather
	than generated automatically, e.g. by {tweening}.

	(1995-04-06)

KeyNote Software

	A company which offers {software}-based business contact
	directories for people who develop, manufacture, market, or
	distribute {software} or {multimedia} products.

	E-mail: <server@netmail.com> (Subject: SEND INDEX).

keypad

	<hardware> An input device with a small array of {push
	buttons} labeled with numbers or other symbols, designed to
	allow rapid entry of characters from a small set, e.g. decimal
	digits 0-9 or, historically, hexadecimal digits.

	The most common form of keypad is the {numeric keypad} found
	on a standard {PC} {keyboard}.

	(2008-10-10)

keypal

	The {electronic mail} equivalent of a pen pal - someone with
	whom to exchange electronic mail for the simple joy of
	communicating.

	{Request for keypals
	(gopher://wealaka.okgeosurvey1.gov/11/K12/keypals)}.

	[Is there some kind of central clearing-house for requests on
	the net?]

KeySpell

	<text, tool, education> A spell checker and teaching aid from
	UK company KeySpell Limited for {Microsoft Windows}.  KeySpell
	offers a selection of phonetically similar words, phrases,
	confusable terms, and examples in context.  Even correctly
	spelt homophones can be checked.

	KeySpell can be run with {Microsoft Word} 97 or stand-alone.
	It includes 225,000 words and phrases and can use subsets of
	these.

	{(http://keyspell.com)}.

	(1999-05-21)

keyword

	1. One of a fixed set of symbols built into the syntax of a
	language.  Typical keywords would be if, then, else, print,
	goto, while, switch.  There are usually restrictions about
	reusing keywords as names for user-defined objects such as
	variables or procedures.  Languages vary as to what is
	provided as a keyword and what is a library routine, for
	example some languages provide keywords for input/output
	operations whereas in others these are library routines.

	2. A small set of words designed to convey the subject of a
	technical article.  Some publications specify a fixed set of
	keywords from which those for a particular article should be
	chosen.

keyword in context

	<algorithm, information science> (KWIC) A document search
	method that creates indexes of document text or titles.  Each
	keyword is stored in the resulting index along with some
	surrounding text, usually the word or phrase that precedes or
	follows the keyword in the text or title.

	(2004-02-17)

KFX

	<language> The {kernel} language of {FX-87}.

	["Polymorphic Effect Systems", J.M. Lucassen et al, Proc 15th
	Ann ACM Conf POPL, ACM 1988, pp.47-57].

	(1995-02-15)

kg

	<networking> The {country code} for Kyrgyzstan.

	(1999-01-27)

kgbvax

	{kremvax}

kh

	<networking> The {country code} for Cambodia (formerly
	Kampuchea).

	(1999-01-27)

Khornerstone

	A multipurpose {benchmark} from {Workstation Labs} used in
	various periodicals.  The source is not free.  Results are
	published in "UNIX Review".

	(1993-04-15)

Khwarizmi

	{Muhammad ibn Musa al-Khwarizmi}

ki

	<networking> The {country code} for Kiribati.

	(1999-01-27)

kibibyte

	<unit> The official ISO[?] name for 1024 {bytes}, to
	distinguish it from 1000 bytes which they call a kilobyte.
	"Mebibyte", "Gibibyte", etc, are prefixes for other powers of
	1024.  Although this new naming standard has been widely
	reported in 2003, it seems unlikely to catch on.

	(2003-09-27)

KIBO

	/ki:'boh/ 1. [acronym] Knowledge In, Bullshit Out.  A summary
	of what happens whenever valid data is passed through an
	organisation (or person) that deliberately or accidentally
	disregards or ignores its significance.  Consider, for
	example, what an advertising campaign can do with a product's
	actual specifications.  Compare {GIGO}; see also {SNAFU
	principle}.

	2. James Parry <kibo@world.std.com>, a {Usenet}ter infamous
	for various surrealist net.pranks and an uncanny,
	machine-assisted knack for joining any thread in which his nom
	de guerre is mentioned.

	{(http://kibo.com/)}.

	[{Jargon File}]

	(2003-05-20)

kiboze

	[{Usenet}] To {grep} the {Usenet} news for a string,
	especially with the intention of posting a follow-up.  This
	activity was popularised by {Kibo}.

kick

	[IRC] To cause somebody to be removed from a {IRC} channel, an
	option only available to {CHOPs}.  This is an extreme measure,
	often used to combat extreme {flamage} or {flood}ing, but
	sometimes used at the chop's whim.  Compare {gun}.

	[{Jargon File}]

kicking dead whales down the beach

	<jargon, humour> A simile for a slow, difficult, and
	disgusting process.  First popularised by a famous quote about
	the difficulty of getting work done under one of {IBM}'s
	{mainframe} {OS}es.  "Well, you *could* write a C compiler in
	COBOL, but it would be like kicking dead whales down the
	beach."

	[{Jargon File}]

	(2012-09-21)

Kid

	{Kernel} language for {Id}.  A refinement of {P-TAC}, used as
	an intermediate language for Id.  {Lambda-calculus} with
	first-class {let}-blocks and {I-structures}.

	["A Syntactic Approach to Program Transformations", Z. Ariola
	et al, SIGPLAN Notices 26(9):116-129 (Sept 1991)].

	(1996-07-22)

KIDASA Software

	<company> A company which develops project management software
	for {Microsoft Windows}.

	{(http://kidasa.com)}.

	(1996-07-22)

killer micro

	[Popularised by Eugene Brooks] A {microprocessor}-based
	machine that infringes on mini, mainframe, or supercomputer
	performance turf.  Often heard in "No one will survive the
	attack of the killer micros!", the battle cry of the
	downsizers.  Used especially of {RISC} architectures.

	The popularity of the phrase "attack of the killer micros" is
	doubtless reinforced by the movie title "Attack Of The Killer
	Tomatoes" (one of the {canonical} examples of
	so-bad-it's-wonderful among hackers).  This has even more
	flavour now that killer micros have gone on the offensive not
	just individually (in workstations) but in hordes (within
	{massively parallel computers}).

	[{Jargon File}]

killer poke

	A recipe for inducing hardware damage on a machine via
	insertion of invalid values (see {poke}) into a
	{memory-mapped} control {register}; used especially of various
	fairly well-known tricks on {bitty box}es without hardware
	memory management (such as the {IBM PC} and {Commodore} {PET})
	that can overload analog electronics in the monitor.

	See also {HCF}.

	(1994-11-04)

kill file

	[{Usenet}] Per-user file(s) used by some {Usenet} reading
	programs (originally {Larry Wall}'s {rn}) to discard summarily
	(without presenting for reading) articles matching some
	particularly uninteresting (or unwanted) patterns of subject,
	author, or other header lines.  Thus to add a person (or
	subject) to one's kill file is to arrange for that person to
	be ignored by one's newsreader in future.  By extension, it
	may be used for a decision to ignore the person or subject in
	other media.  See also {plonk}.

	[{Jargon File}]

kilo-

	{prefix}

kilobaud

	<unit> 1000 {baud}.

	(1996-02-12)

kilobit

	<unit> 2^10 = 1024 {bits} of storage (1 Kb).

	Compare {kilobits per second}.

	(2002-03-23)

kilobits per second

	<unit> (kbps, kb/s) A unit of {data rate} where 1 kb/s = 1000
	bits per second.  This contrasts with units of storage where 1
	Kb = 1024 bits (note upper case K).

	(2002-03-23)

kilobyte

	<unit, data> (KB) A unit of {data} equal to 1000 {bytes} but see
	{binary prefix} for other definitions.

	One kilobyte is the amount of data in 1000 {ASCII} (or {UTF-8})
	characters or about 250 English words (whose average length is
	about four characters).

	1000 kilobytes are one {megabyte}.

	See {prefix}.

	(2013-11-03)

kiloflops

	<unit> 1000 {FLOPS}.

	See {prefix}.

	(1998-09-07)

kiosk

	A stall set up in a public place where one can obtain
	information, e.g. tourist information.  The information may be
	provided by a human or by a computer.  In the latter case, the
	data may be stored locally (e.g. on {CD-ROM}) or accessed via
	a network using some kind of distributed information retreival
	system such as {Gopher} or {World-Wide Web}.

	(1998-09-07)

KIPS

	/kips/ [by analogy with {MIPS}] Thousands (*not* 1024s) of
	instructions per second.  Usage: rare.

	[{Jargon File}]

KIS

	{Knowbot Information Service}

KISS

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

KISS Principle

	/kis' prin'si-pl/ Keep It Simple, Stupid.

	A maxim often invoked when discussing design to fend off
	{creeping featurism} and control complexity of development.
	Possibly related to the {marketroid} maxim on sales
	presentations, "Keep It Short and Simple".

	See also {Occam's Razor}.

	[{Jargon File}]

	(1994-11-18)

kit

	<jargon> ({Usenet}, possibly from {DEC}) Slang for a full
	software distribution, as opposed to a {patch} or upgrade.  A
	source software distribution that has been packaged in such a
	way that it can (theoretically) be unpacked and installed
	according to a series of steps using only standard {Unix}
	tools, and entirely documented by some reasonable chain of
	references from the top-level {README file}.  The more general
	term {distribution} may imply that special tools or more
	stringent conditions on the host environment are required.

	[{Jargon File}]

	(1994-11-18)

KL0

	Kernel Language 0.

	A sequential {logic language} based on {Prolog}, used in the
	Japanese {ICOT} project.

	(1994-11-18)

KL1

	Kernel Language 1.

	An experimental {AND-parallel} version of {KL0} for the {ICOT}
	project in Japan.  KL1 is an implementation of {FGHC}.

	Not to be confused with {KL-ONE}.

	["Design of the Kernel Language for the Parallel Inference
	Machine", U. Kazunori et al, Computer J (Dec 1990)].

	(1994-10-24)

Klamath

	<processor> The pre-release "code name" for {Intel}'s {Pentium
	II} {microprocessor}.

	(1998-09-07)

KLB

	{Known Lazy Bastard}

Kleene closure

	{Kleene star}

Kleene star

	<text> (Or "Kleene closure", named after {Stephen Kleene}) The
	{postfix} "*" operator used in {regular expressions},
	{Extended Backus-Naur Form}, and similar formalisms to specify
	a match for zero or more occurrences of the preceding
	expression.  For example, the regular expression "be*t" would
	match the string "bt", "bet", "beet", "beeeeet", and so on.

	(2000-07-26)

Kleene, Stephen Cole

	{Stephen Kleene}

Klerer-May System

	Early system from {Columbia University} with special
	mathematics symbols.  Its reference manual was two pages long!

	["Further Advances in Two-Dimensional Input-Output by
	Typewriter Terminals", M. Klerer et al, Proc FJCC 31 (1967)].

	[Sammet 1969, pp. 284-294].

	(1994-10-24)

KLOC

	<unit, programming> Thousand (kilo-) {Lines of code}.

	(1995-03-12)

klone

	/klohn/ {clone}.

	[{Jargon File}]

KL-ONE

	A {frame language}.

	Not to be confused with {KL1}.

	["An Overview of the KL-ONE Knowledge Representation System",
	R.J. Brachman and J. Schmolze, Cognitive Sci 9(2), 1985].

	(1994-11-18)

kludge

	<jargon> /kluhj/ (From the old Scots "kludgie" meaning an
	outside toilet) A Scottish engineering term for anything added
	in an ad hoc (and possibly unhygenic!) manner.  At some point
	during the Second World War, Scottish engineers met Americans
	and the meaning, spelling and pronunciation of kludge became
	confused with that of "{kluge}".

	The spelling "kludge" was apparently popularised by the
	"Datamation" cited below which defined it as "An ill-assorted
	collection of poorly matching parts, forming a distressing
	whole."

	The result of this tangled history is a mess; in 1993, many
	(perhaps even most) hackers pronounce the word /klooj/ but
	spell it "kludge" (compare the pronunciation drift of {mung}).
	Some observers consider this appropriate in view of its
	meaning.

	["How to Design a Kludge", Jackson Granholme, Datamation,
	February 1962, pp. 30-31].

	[{Jargon File}]

	(1998-12-09)

kluge

	<jargon> /klooj/, /kluhj/ (From German "klug" /kloog/ - clever
	and Scottish "{kludge}") 1. A Rube Goldberg (or Heath
	Robinson) device, whether in {hardware} or {software}.

	The spelling "kluge" (as opposed to "kludge") was used in
	connection with computers as far back as the mid-1950s and, at
	that time, was used exclusively of *hardware* kluges.

	2. <programming> A clever programming trick intended to solve
	a particular nasty case in an expedient, if not clear, manner.
	Often used to repair bugs.  Often involves {ad-hockery} and
	verges on being a {crock}.  In fact, the TMRC Dictionary
	defined "kludge" as "a crock that works".

	3. Something that works for the wrong reason.

	4. ({WPI}) A {feature} that is implemented in a {rude} manner.

	In 1947, the "New York Folklore Quarterly" reported a classic
	shaggy-dog story "Murgatroyd the Kluge Maker" then current in
	the Armed Forces, in which a "kluge" was a complex and
	puzzling artifact with a trivial function.  Other sources
	report that "kluge" was common Navy slang in the WWII era for
	any piece of electronics that worked well on shore but
	consistently failed at sea.

	However, there is reason to believe this slang use may be a
	decade older.  Several respondents have connected it to the
	brand name of a device called a "Kluge paper feeder" dating
	back at least to 1935, an adjunct to mechanical printing
	presses.  The Kluge feeder was designed before small, cheap
	electric motors and control electronics; it relied on a
	fiendishly complex assortment of cams, belts, and linkages to
	both power and synchronise all its operations from one motive
	driveshaft.  It was accordingly tempermental, subject to
	frequent breakdowns, and devilishly difficult to repair - but
	oh, so clever!  One traditional folk etymology of "klugen"
	makes it the name of a design engineer; in fact, "Kluge" is a
	surname in German, and the designer of the Kluge feeder may
	well have been the man behind this myth.

	{TMRC} and the MIT hacker culture of the early 1960s seems to
	have developed in a milieu that remembered and still used some
	WWII military slang (see also {foobar}).  It seems likely that
	"kluge" came to MIT via alumni of the many military
	electronics projects run in Cambridge during the war (many in
	MIT's venerable Building 20, which housed {TMRC} until the
	building was demolished in 1999).

	[{Jargon File}]

	(2002-10-02)

kluge around

	<jargon> To avoid a bug or difficult condition by inserting a
	{kluge}.

	Compare {workaround}.

	[{Jargon File}]

	(1995-03-10)

km

	<networking> The {country code} for Comoros.

	(1999-01-27)

KMODEL

	An ancestor of Model-K.  "Preliminary Results on the BEHAVIOUR
	Specifications Language KMODEL-0", BEHAVIOUR Memo 5-91, 1991,
	GMD, Sankt Augustin, Germany

KMS

	{Knowledge Management System}

kn

	<networking> The {country code} for Saint Kitts and Nevis.

	(1999-01-27)

knapsack problem

	<application, mathematics> Given a {set} of items, each with a
	cost and a value, determine the number of each item to include
	in a collection so that the total cost is less than some given
	cost and the total value is as large as possible.

	The 0/1 knapsack problem restricts the number of each items to
	zero or one.

	Such {constraint satisfaction} problems are often solved using
	{dynamic programming}.

	The general knapsack problem is {NP-hard}, and this has led to
	attempts to use it as the basis for {public-key encryption}
	systems.  Several such attempts failed because the knapsack
	problems they produced were in fact solvable by
	{polynomial-time algorithms}.

	[Are there any trusted knapsack-based public-key
	cryptosystems?].

	(1995-04-10)

KNI

	{Streaming SIMD Extensions}

Knights of the Lambda-Calculus

	A semi-mythical organisation of wizardly LISP and Scheme
	hackers.  The name refers to a mathematical formalism invented
	by Alonzo Church, with which LISP is intimately connected.
	There is no enrollment list and the criteria for induction are
	unclear, but one well-known LISPer has been known to give out
	buttons and, in general, the *members* know who they are.

	[{Jargon File}]

knowbot

	<World-Wide Web> A kind of {bot} that collects information by
	automatically gathering certain specified information from
	{websites}.

	(1999-06-19)

Knowbot Information Service

	<networking, information science> (KIS) Also known as
	netaddress.  The Knowbot Information Service (KIS) provides a
	uniform user interface to a variety of {remote directory
	services} such as {whois}, {finger}, {X.500}, {MCIMail}.  By
	submitting a single query to KIS, a user can search a set of
	remote {white pages} services and see the results of the
	search in a uniform format.

	There are several interfaces to the KIS service including
	{electronic mail} and {telnet}.  Another KIS interface
	imitates the Berkeley {whois} command.

	KIS consists of two distinct types of modules which interact
	with each other (typically across a network) to provide the
	service.  One module is a user agent module that runs on the
	KIS mail host machine.  The second module is a remote server
	module (possibly on a different machine) that interrogates
	various database services across the network and provides the
	results to the user agent module in a uniform fashion.
	Interactions between the two modules can be via messages
	between Knowbots or by actual movement of Knowbots.

	There are electronic mail interfaces for KIS at the hosts
	cnri.reston.va.us and sol.bucknell.edu.  Send a message
	containing just the word "man" to <kis@cnri.reston.va.us> or
	<netaddress@sol.bucknell.edu>.  Telnet: info.cnri.reston.va.us
	port 185.

knowledge

	<artificial intelligence, information science> The objects,
	concepts and relationships that are assumed to exist in some
	area of interest.  A collection of {knowledge}, represented
	using some {knowledge representation} language is known as a
	{knowledge base} and a program for extending and/or querying a
	knowledge base is a {knowledge-based system}.

	Knowledge differs from {data} or {information} in that new
	knowledge may be created from existing knowledge using logical
	{inference}.  If information is data plus meaning then
	knowledge is information plus processing.

	A common form of knowledge, e.g. in a {Prolog} program, is a
	collection of {facts} and {rules} about some subject.

	For example, a {knowledge base} about a family might contain
	the facts that John is David's son and Tom is John's son and
	the rule that the son of someone's son is their grandson.
	From this knowledge it could infer the new fact that Tom is
	David's grandson.

	See also {Knowledge Level}.

	(1994-10-19)

Knowledge Analysis and Design System

	<process> (KADS) A structured way of developing
	{knowledge-based systems} ({expert systems}).  KADS was
	developed as an alternative to an evolutionary approach and is
	now accepted as the European standard for knowledge based
	systems.

	{(http://cse.unsw.edu.au/~timm/pub/slides/kltut/index.html)}.

	["Knowledge Based Systems Analysis and Design: A KADS
	Developers Handbook", Tansley and Hayball]

	(1998-03-12)

knowledge base

	<artificial intelligence> A collection of {knowledge}
	expressed using some formal {knowledge representation}
	language.  A knowledge base forms part of a {knowledge-based
	system} (KBS).

	(1994-10-19)

knowledge-based system

	<artificial intelligence> (KBS) A program for extending and/or
	querying a {knowledge base}.

	The related term {expert system} is normally used to refer to
	a highly domain-specific type of KBS used for a specialised
	purpose such as medical diagnosis.

	The {Cyc} project is an example of a large KBS.

	(1999-09-07)

knowledge level

	<artificial intelligence> A level of description of the
	{knowledge} of an {agent} that is independent of the agent's
	internal {symbol-level} representation.  Knowledge can be
	attributed to agents by observing their actions.  An agent
	"knows" something if it acts as if it had the information and
	is acting rationally to achieve its goals.  The "actions" of
	agents, including knowledge base servers and {knowledge-based
	systems}, can be seen through a "tell and ask" functional
	interface, where a client interacts with an agent by making
	{logical assertions} (tell), and posing queries (ask).

	(1994-10-19)

Knowledge Management System

	(KMS) A distributed {hypermedia} system for managing knowledge
	in organisations.  KMS is a commercial system from {Knowledge
	Systems, Inc.} running on {workstations}, based on previous
	research with {ZOG} at {Carnegie Mellon University}.

	(1994-10-28)

Knowledge Query and Manipulation Language

	<language, protocol, artificial intelligence> (KQML) A
	language and {protocol}, based on {SGML}, for exchanging
	{information} and {knowledge}, proposed in 1993(?).

	Work on KQML is led(?) by Tim Finin <finin@umbc.edu> of the
	University of Maryland Baltimore County, Lab for Advanced
	Information Technology.  It is part of the {ARPA} {Knowledge
	Sharing Effort}.

	The KQML message format and protocol can be used to interact
	with an intelligent system, either by an {application
	program}, or by another intelligent system.  KQML's
	"performatives" are operations that agents perform on each
	other's knowledge and {goal} stores.  Higher-level
	interactions such as {contract nets} and negotiation are built
	using these.  KQML's "communication facilitators" coordinate
	the interactions of other agents to support knowledge sharing.

	Experimental prototype systems support concurrent engineering,
	intelligent design, intelligent planning, and scheduling.

	{(http://cs.umbc.edu/kqml/)}.

	(1999-09-28)

knowledge representation

	The subfield of {artificial intelligence} concerned with
	designing and using systems for storing knowledge - {facts}
	and {rules} about some subject.

	A body of formally represented knowledge is based on a
	{conceptualisation} - an {abstract} view of the world that we
	wish to represent.  In order to manipulate this knowledge we
	must specify how the abstract conceptualisation is represented
	as a {concrete} data structure.  An {ontology} is an explicit
	specification of a conceptualisation.

	(1994-10-19)

Knowledge Sharing Effort

	<project> An {ARPA} project developing techniques and methods
	for building large-scale {knowledge bases} which are sharable
	and reusable.

	{KQML} is part of it.

	(1999-09-28)

Knowledge Systems Laboratory

	(KSL) An {artificial intelligence} research laboratory within
	the Department of Computer Science at {Stanford University}.
	Current work focuses on {knowledge representation} for
	sharable engineering knowledge bases and systems,
	computational environments for modelling physical devices,
	architectures for adaptive intelligent systems, and {expert
	systems} for science and engineering.

	(1994-12-06)

Known Lazy Bastard

	<abuse> (KLB) A term, used among technical support staff, for
	a user who repeatedly asks for help with problems whose
	solutions are clearly explained in the documentation, and
	persists in doing so after having been told to {RTFM}.

	KLBs are singled out for special treatment (i.e. ridicule),
	especially if they have been heard to say "It's so boring to
	read the manual!  Why don't you just tell me?".  The deepest
	pit in Hell is reserved for KLBs whose questions reveal total
	ignorance of the basic concepts (e.g., "How do I make a font
	in {Excel}?", "Where do I turn on my {RAM}?"), and who refuse
	to accept that their questions are neither simple nor
	well-formed.

	(1998-09-07)

Knuth

	/knooth/ 1. {Donald Knuth}.

	2. ["The Art of Computer Programming", Donald E. Knuth]
	Mythically, the reference that answers all questions about
	data structures or algorithms.  A safe answer when you do not
	know: "I think you can find that in Knuth."

	Contrast {literature}.  See also {bible}.

	[{Jargon File}]

Kodak

	<company> The photographic company responsible for {Photo CD}.

	{(http://kodak.com/)}.

	(1995-12-13)

Kohonen

	{T. Kohonen}

KOMPILER

	<language> An early system on the {IBM 701}.

	Versions: KOMPILER 2 for IBM 701, KOMPILER 3 for IBM 704.

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

	(2005-06-20)

Konrad Zuse

	<person> The designer of the first programming language,
	{Plankalkül}, and the first fully functional
	program-controlled electromechanical {digital computer} in the
	world, the {Z3}.  He died on 1995-12-18 in Huenfeld, Germany.

	{Biography (http://ei.cs.vt.edu/~history/Zuse.html)}.

	["Konrad Zuse: Mein Leben" (My Life), published 1956].

	["Konrad Zuse: The Computer my Life, Springer, 1993].

	(1999-02-18)

Korf, Richard

	{Richard Korf}

Korn Shell

	(ksh) A {command interpreter} for {Unix}.

	{SKsh} is an {AmigaDos}-specific version and {pdksh} is a free
	{Unix} version.

	[More details?]

kp

	<networking> The {country code} for North Korea.

	(1999-01-27)

KQML

	{Knowledge Query and Manipulation Language}

KR

	{knowledge representation}

kr

	<networking> The {country code} for South Korea.

	[{Jargon File}]

	(1999-01-27)

K&R

	<publication> Kernighan and Ritchie.  {Brian Kernighan} and
	{Dennis Ritchie}'s book, cited below, describing the basis of
	{K&R C}, especially the classic and influential first edition.

	Synonyms: {White Book}, {Old Testament}.  See also {New
	Testament}.

	[{Jargon File}]

	[Brian Kernighan, Dennis Ritchie, "The C Programming
	Language", Prentice-Hall 1978; ISBN 0-113-110163-3].

	(2011-11-30)

KRC

	{Kent Recursive Calculator}

K&R C

	<language> (C Classic) The {C} programming language as defined
	in the first edition of {K&R}, with some small additions.  The
	name "C Classic", a play on "Coke Classic", came into use
	while {ANSI C} was being standardised by the {ANSI X3J11}
	committee.

	See also {classic}.

	[{Jargon File}]

	(2006-09-26)

kremvax

	/krem-vaks/ (Or kgbvax) Originally, a fictitious {Usenet} site
	at the Kremlin, named like the then large number of {Usenet}
	{VAXen} with names of the form foovax.  Kremvax was announced
	on April 1, 1984 in a posting ostensibly originated there by
	Soviet leader Konstantin Chernenko.  The posting was actually
	forged by Piet Beertema as an April Fool's joke.  Other
	fictitious sites mentioned in the hoax were moskvax and
	{kgbvax}.  This was probably the funniest of the many April
	Fool's forgeries perpetrated on {Usenet} (which has negligible
	security against them), because the notion that {Usenet} might
	ever penetrate the Iron Curtain seemed so totally absurd at
	the time.

	In fact, it was only six years later that the first genuine
	site in Moscow, demos.su, joined {Usenet}.  Some readers
	needed convincing that the postings from it weren't just
	another prank.  Vadim Antonov, senior programmer at Demos and
	the major poster from there up to mid-1991, was quite aware of
	all this, referred to it frequently in his own postings, and
	at one point twitted some credulous readers by blandly
	asserting that he *was* a hoax!

	Eventually he even arranged to have the domain's gateway site
	*named* kremvax, thus neatly turning fiction into truth and
	demonstrating that the hackish sense of humour transcends
	cultural barriers.  Mr. Antonov also contributed some
	Russian-language material for the {Jargon File}.

	In an even more ironic historical footnote, kremvax became an
	electronic centre of the anti-communist resistance during the
	bungled hard-line coup of August 1991.  During those three
	days the Soviet UUCP network centreed on kremvax became the
	only trustworthy news source for many places within the USSR.
	Though the sysops were concentrating on internal
	communications, cross-border postings included immediate
	transliterations of Boris Yeltsin's decrees condemning the
	coup and eyewitness reports of the demonstrations in Moscow's
	streets.  In those hours, years of speculation that
	totalitarianism would prove unable to maintain its grip on
	politically-loaded information in the age of computer
	networking were proved devastatingly accurate - and the
	original kremvax joke became a reality as Yeltsin and the new
	Russian revolutionaries of "glasnost" and "perestroika" made
	kremvax one of the timeliest means of their outreach to the
	West.

	[{Jargon File}]

KRL

	{Knowledge Representation} Language.  A {frame}-based
	language.

	["An Overview of KRL, a Knowledge Representation Language",
	D.G. Bobrow and T. Winograd, Cognitive Sci 1:1 (1977)].

KRS

	<language> A {frame-based language} built on {Common LISP}.

	(2011-12-05)

K&R stlye

	<programming> The ugly and hard-to-read {indent style} used in
	{K&R}.

	(2011-11-30)

KRYPTON

	<language> A {frame language}.

	["An Essential Hybrid Reasoning System: Knowledge and Symbol
	Level Accounts of KRYPTON", R.J. Brachman et al, Proc
	IJCAI-85, 1985].

	(2011-12-05)

ksh

	{Korn Shell}

KSL

	{Knowledge Systems Laboratory}

KSR

	1. {Keyboard Send Receive}.

	2. <company> {Kendall Square Research}.

	(1995-11-23)

KTH

	{Kungliga Tekniska Högskolan}

kthx

	<chat> OK, thanks.  Can be used as a (sarcastic) prefix, as in
	"plz2stfukthx".

	(2008-03-14)

KUIP

	{Kernel User Interface Package}

Kungliga Tekniska Högskolan

	<body, education> (KTH, Royal Institute of Art and Technology)
	A Swedish university founded in 1827 that is strong in
	engineering and computing (e.g. {AI}, {Virtual Reality}).  In
	1998 KTH had nearly 11,000 undergraduate students, 1,300
	postgraduate students, and 2,900 staff, making it the largest
	of Sweden's six universitites of technology.

	{(http://kth.se/index-eng.html)}.

	Address: Stockholm, Sweden.

	(2001-03-18)

KUTGW

	<chat> Keep up the good work.

	(1999-03-08)

Kvatro Telecom AS

	<company> The company that maintains {Mary}.

	Address: Trondheim, Norway.

	{(http://kvatro.no/)}.

	(1998-11-10)

Kvikkalkul

	<language> /kveek`kahl-kool'/ A deliberately cryptic
	programming language said to have been devised by the Swedish
	Navy in the 1950s as part of their abortive attempt at a
	nuclear weapons program.  What little is known about it comes
	from a series of an anonymous posts to {Usenet} in 1994.  The
	poster described the language, saying that he had programmed
	in Kvikkalkul when he worked for the Swedish Navy in the
	1950s.  It is an open question whether the posts were a
	{troll}, a subtle parody or truth stranger than fiction could
	ever be.

	Assuming it existed, Kvikkalkul is so much a
	{bondage-and-discipline language} that it is, in its own ways,
	even more bizarre than the deliberate parody language
	{INTERCAL}.  Among its notable "features", all symbols in
	Kvikkalkul, including variable names and program labels, can
	consist only of digits.  Operators consist entirely of the
	punctuation symbols (, ), -, and :.  Kvikkalkul allows no
	{comments} - they might not correspond with the code.
	Kvikkalkul's only data type is the signed fixed-point
	fractional number, i.e. a number between (but not including)
	-1 and 1.  Dealings with the {Real World} that require numbers
	outside that range are done with functions that notionally map
	that range to a larger range (e.g., -16383 to -16383) and
	back.  Kvikkalkul had a probabilistic jump operator which, if
	given a negative probability, would act like a {COME FROM}.
	This was, sadly, deleted in later versions of the language.

	{(http://prefect.com/home24/kvikkalkul/)}.

	(1998-11-14)

KVM

	{Keyboard Video Mouse}

kw

	<networking> The {country code} for Kuwait.

	(1999-01-27)

KWIC

	{keyword in context}

ky

	<networking> The {country code} for the Cayman Islands.

	(1999-01-27)

Kyoto Common Lisp

	<language> (KCL) An implementation of {Common Lisp} by
	T. Yuasa <yuasa@tutics.tut.ac.jp> and M. Hagiya
	<hagiya@is.s.u-tokyo.ac.jp>, written in {C} to run under
	{Unix}-like {operating systems}.  KCL is compiled to {ANSI C}.
	It conforms to {Common Lisp} as described in {Guy Steele}'s
	book and is available under a licence agreement.

	{(ftp://rascal.ics.utexas.edu/pub/kcl.tar.Z)}.

	E-mail: <kcl@cli.com> (bug reports).

	Mailing list: kcl-request@cli.com, kcl@rascal.ics.utexas.edu.

	["Design and Implementation of Kyoto Common Lisp", T. Yuasa
	<yuasa@tutics.tut.ac.jp>, J Info Proc 13(3):284-295 (1990)].

	["Kyoto Common Lisp Report", T. Yuasa & M. Hagiya].

	(1987-06-01)

kyrka

	{feature key}

kz

	<networking> The {country code} for Kazakhstan.

	(1999-01-27)

L0

	<language> A low-level language developed at the {Technical
	University of Munich}.  L0 was typed and had the usual {flow
	control}, but only 3-address expressions.  Higher level
	languages, L1 and L2 were planned.

	["Brief Survey of L0", H. Scheidig, in Machine Oriented Higher
	Level Languages, W. van der Poel ed, N-H 1974, pp. 239-247].

	(2003-06-12)

L0pht

	<security> /loft/ An Internet security organisation that
	merged with {@stake} in January 2000.

	(2003-06-12)

l10n

	{localisation}

L1 cache

	{primary cache}

L2 cache

	{secondary cache}

L2CAP

	{Logical Link Control and Adaptation Protocol}

L2TP

	{Layer Two Tunneling Protocol}

L6

	Bell Telephone Laboratories Low-Level Linked List Language.
	Ken Knowlton, 1965.  List processing language, typeless.

	["A Programmer's Description of L6, Bell Telephone
	Laboratories' Low-Level Linked List Language", K. Knowlton
	CACM 9(8):616-625 (Aug 1966).  Sammet 1969, pp.400- 405].

la

	<networking> The {country code} for Laos.

	(1999-01-27)

label

	1. <programming> An identifier used to mark a position in a
	program so that it can be the destination of a {goto}
	statement.

	2. <networking> The identifier assigned to a {datagram} for
	{label switching}.

	(2007-10-17)

label edge router

	<networking> (LER) A device that sits at the edge of an {MPLS
	domain}, that uses {routing} information to assign labels to
	{datagrams} and then forwards them into the MPLS domain.

	(1999-06-14)

Label Forwarding Information Base

	<networking> (LFIB) A {label switching} scheme used in
	{MultiProtocol Label Switching} (MPLS).

	[Details?]

	(2007-06-25)

label switched path

	<networking> (LSP) The specific path through a network that a
	{datagram} follows, based on its {MPLS} labels.

	(1999-06-14)

label switching

	<networking> A routing technique that uses information from
	existing IP routing protocols to identify {IP} {datagrams}
	with labels and forwards them to a modified {switch} or
	{router}, which then uses the labels to switch the datagrams
	through the network.

	Label switching combines the best attributes of {data link
	layer} (layer two) {switching} (as in {ATM} and {Frame Relay})
	with the best attributes of {network layer} (layer three)
	{routing} (as in {IP}).

	Prior to the formation of the {MPLS} Working Group in 1997, a
	number of vendors had announced and/or implemented proprietary
	label switching.

	(2007-10-17)

Label Switching Router

	<networking> (LSR) A device that typically resides somewhere
	in the middle of a {network} and is capable of forwarding
	{datagrams} by {label switching}.  In many cases, especially
	early versions of {MPLS} networks, a LSR will typically be a
	modified {ATM} {switch} that forwards datagrams based upon a
	label in the {VPI}/{VCI} field.

	(1999-06-14)

Lab for Computer Science

	{MIT}.  {(http://lcs.mit.edu/)}.

Laboratoire lorrain de recherche en informatique et ses applications

	<body> (LORIA) A French research institute associated with
	{INRIA}.

	(2007-06-01)

Laboratory INstrument Computer

	<computer> (LINC) A computer which was originally designed in
	1962 by {Wesley Clark}, {Charles Molnar}, Severo Ornstein and
	others at the {Lincoln Laboratory Group}, to facilitate
	scientific research.  With its {digital logic} and {stored
	programs}, the LINC is accepted by the {IEEE Computer Society}
	to be the World's first {interactive} {personal computer}.

	The machine was developed to fulfil a need for better
	laboratory tools by doctors and medical researchers.  It would
	supplant the 1958 {Average Response Computer}, and was
	designed for individual use.

	Led by William N. Papian and mainly funded by the {National
	Institute of Health}, Wesley Clark designed the logic while
	Charles Molnar did the engineering.  The first LINC was
	finished in March 1962.

	In January 1963, the project moved to {MIT}, and then to
	{Washington University} (in St. Louis) in 1964.

	The LINC had a simple {operating system}, four "knobs" (which
	was used like a {mouse}), a {Soroban keyboard} (for
	alpha-numeric data entry), two {LINCtape} drives and a small
	{CRT} display.  It originally had one {kilobit} of {core
	memory}, but this was expanded to 2 Kb later.  The computer
	was made out of {Digital Equipment Corporation} (DEC) hardware
	modules.

	Over 24 LINC systems had been built before late 1964 when
	DEC began to sell the LINC commercially.

	After the introduction of the {PDP-8}, {Dick Clayton} at
	DEC produced a rather frightening hybrid of the LINC and
	PDP-8 called a LINC-8.  This really was not a very
	satisfactory machine, but it used the new PDP-8 style DEC
	cards and was cheaper and easier to produce.  It still
	didn't sell that well.

	In the late 1960s, Clayton brought the design to its pinnacle
	with the PDP-12, an amazing tour de force of the LINC concept;
	along with about as seamless a merger as could be done with
	the PDP-8.  This attempted to incorporate {TTL logic} into the
	machine.  The end of the LINC line had been reached.

	Due to the success of the LINC-8, {Spear, Inc.} produced a
	LINC clone (since the design was in the {public domain}).
	The interesting thing about the Spear {micro-LINC 300} was
	that it used {MECL} II logic.  MECL logic was known for its
	blazing speed (at the time!), but the Spear computer ran at
	very modest rates.

	In 1995 the last of the classic LINCs was turned off for
	the final time after 28 years of service.  This LINC had
	been in use in the Eaton-Peabody Laboratory of Auditory
	Physiology (EPL) of the Massachusetts Eye and Ear
	Infirmary.

	On 15 August 1995, it was transferred to the MIT {Computer
	Museum} where it was put on display.

	{LINC/8, PDP-12
	(http://faqs.org/faqs/dec-faq/pdp8/section-7.html)}.

	{Lights out for last LINC
	(http://rleweb.mit.edu/publications/currents/6-1linc.HTM)}.

	["Computers and Automation", Nov. 1964, page 43].

	(1999-05-20)

Laboratory Virtual Instrument Engineering Workbench

	<tool> (LabVIEW) A package from National Instruments Corp
	originally developed to provide a {graphical user interface}
	to instruments connected by the {IEEE 488} (GPIB) bus.  It has
	powerful graphical editing facilities for defining and
	interconnecting "virtual instruments".

	(1996-04-24)

LaborNet

	An {IGC} network serving groups, unions and labour advocates
	interested in information sharing and collaboration with the
	intent of enhancing the human rights and economic justice of
	workers.  Issues covered include workplace and community
	health and safety issues, trade issues and international union
	solidarity and collaboration.

Labtech Notebook

	<tool, product> Commercial {data aquisition} software.

	(1995-03-08)

LabVIEW

	{Laboratory Virtual Instrument Engineering Workbench}

Lace

	Language for Assembling Classes in Eiffel.  Specifies how to
	assemble an Eiffel system : in which directories to find the
	clusters, which class to use as the root, permits class
	renaming to avoid name clashes.  "Eiffel: The Language",
	Bertrand Meyer, P-H 1992.

lace card

	(Obsolete) A {punched card} with all holes punched (also
	called a "whoopee card" or "ventilator card").  Card readers
	tended to jam when they got to one of these, as the resulting
	card had too little structural strength to avoid buckling
	inside the mechanism.  Card punches could also jam trying to
	produce these things owing to power-supply problems.  When
	some practical joker fed a lace card through the reader, you
	needed to clear the jam with a "card knife" - which you used
	on the joker first.

	[{Jargon File}]

ladder logic

	<programming> {Source code} formatted in two columns with
	conditions on the left that lead to outputs on the right:

	  if (c1)     s1 else
	  if (c2)     s2 else
	  if (c3)     s3 ...

	(2007-03-15)

LADY

	<language> ["Key Concepts in the INCAS Multicomputer Project",
	J. Nehmer et al IEEE Trans Soft Eng SE-13(8):913-923 (Aug
	1987)].

	(1996-06-21)

lag

	{netlag}

Lakota

	Scripting language, extends existing OS commands.
	E-mail: Richard Harter <rh@smds.UUCP>, SMDS, Inc.

LALR

	{Look Ahead Left-to-right parse, Rightmost-derivation}

lalr.ss

	<tool> An {LALR1 grammar} {parser generator} written in, and
	outputting, {Scheme} by Mark Johnson <mj@cs.brown.edu>.

	Version 0.9 (before 1995-10-30).

	FTP new/lalr.shar from the {Scheme Repository}.

	(1993-05-24)

Lambada-Calculus

	<humour, logic> (A pun on "{lambda-calculus}") Teaching logic
	thru spanish dance steps.  Invented by P. van der Linden
	<linden@eng.sun.com>.

	(1996-08-10)

LAMBDA

	A version of {typed lambda-calculus}, used to describe
	semantic {domains}.

	["Outline of a Mathematical Theory of Computation",
	D.S. Scott, TM PRG-2, PRG, Oxford U, 1971].

lambda abstraction

	A term in {lambda-calculus} denoting a function.  A lambda
	abstraction begins with a lower-case lambda (represented as
	"\" in this document), followed by a variable name (the "bound
	variable"), a full stop and a {lambda expression} (the body).
	The body is taken to extend as far to the right as possible
	so, for example an expression,

		\ x . \ y . x+y

	is read as

		\ x . (\ y . x+y).

	A nested abstraction such as this is often abbreviated to:

		\ x y . x + y

	The lambda expression (\ v . E) denotes a function which takes
	an argument and returns the term E with all {free} occurrences
	of v replaced by the {actual argument}.  Application is
	represented by {juxtaposition} so

		(\ x . x) 42

	represents the identity function applied to the constant 42.

	A {lambda abstraction} in {Lisp} is written as the symbol
	lambda, a list of zero or more variable names and a list of
	zero or more terms, e.g.

		(lambda (x y) (plus x y))

	Lambda expressions in {Haskell} are written as a backslash,
	"\", one or more patterns (e.g. variable names), "->" and an
	expression, e.g. \ x -> x.

	(1995-01-24)

lambda-calculus

	<mathematics> (Normally written with a Greek letter lambda).
	A branch of mathematical logic developed by {Alonzo Church} in
	the late 1930s and early 1940s, dealing with the application
	of {functions} to their arguments.  The {pure lambda-calculus}
	contains no constants - neither numbers nor mathematical
	functions such as plus - and is untyped.  It consists only of
	{lambda abstractions} (functions), variables and applications
	of one function to another.  All entities must therefore be
	represented as functions.  For example, the natural number N
	can be represented as the function which applies its first
	argument to its second N times ({Church integer} N).

	Church invented lambda-calculus in order to set up a
	foundational project restricting mathematics to quantities
	with "{effective procedures}".  Unfortunately, the resulting
	system admits {Russell's paradox} in a particularly nasty way;
	Church couldn't see any way to get rid of it, and gave the
	project up.

	Most {functional programming} languages are equivalent to
	lambda-calculus extended with constants and types.  {Lisp}
	uses a variant of lambda notation for defining functions but
	only its {purely functional} subset is really equivalent to
	lambda-calculus.

	See {reduction}.

	(1995-04-13)

lambda expression

	<mathematics> A term in the {lambda-calculus} denoting an
	unnamed function (a "{lambda abstraction}"), a variable or a
	constant.  The {pure lambda-calculus} has only functions and
	no constants.

	(1995-04-13)

lambda lifting

	A program transformation to remove free variables.  An
	expression containing a free variable is replaced by a
	function applied to that variable.  E.g.

		f x = g 3  where g y = y + x

	x is a free variable of g so it is added as an extra argument:

		f x = g 3 x  where g y x = y + x

	Functions like this with no free variables are known as
	supercombinators and are traditionally given upper-case names
	beginning with "$".  This transformation tends to produce many
	supercombinators of the form f x = g x which can be eliminated
	by {eta reduction} and substitution.  Changing the order of
	the parameters may also allow more optimisations.  References
	to global (top-level) constants and functions are not
	transformed to function parameters though they are technically
	free variables.

	A closely related technique is closure conversion.  See also
	Full laziness.

LambdaMOO

	<games> The most frequently used {server} {software} for
	running a {MOO} and also the nerve-center (of sorts) of the
	MOO community.

	{(ftp://ftp.lambda.moo.mud.org/pub/MOO/)}.

	{Telnet (telnet://lambda.moo.mud.org:8888)}.

	(1999-05-25)

Lambda Prolog

	<language> An extension of standard {Prolog} defined by Dale
	A. Miller and Gopalan Nadathur in 1986, in which terms are
	{strongly typed} lambda terms.  {Clauses} are {higher order}
	{hereditary Harrop formulas}.  The main novelties are
	{universal quantification} on {goals} and {implication}.

	The {Prolog/Mali} compiler compiles Lambda Prolog for the
	{MALI} abstract memory system.

	{Teyjus (http://teyjus.cs.umn.edu/)} is an implementation of
	Lambda Prolog.

	{Lambda Prolog home (http://cse.psu.edu/~dale/lProlog/)}.

	Mailing list: lprolog@cs.umn.edu.

	["Higher-order logic programming", Miller D.A. and Nadathur
	G., 3rd International Conference on Logic Programming, pp
	448-462, London 1986].

	[Nadathur G. "A Higher-Order Logic as a Basis for Logic
	Programming", Thesis, University of Pennsylvania, 1987].

	(2002-10-15)

lamer

	<jargon> A hopelessly clueless {luser}.

	(1997-01-31)

LAMINA

	A {concurrent} {object-oriented} language.

	["Experiments with a Knowledge-based System on a
	Multiprocessor", Third Intl Conf Supercomputing Proc, 1988].

	["ELINT in LAMINA, Application of a Concurrent Object
	language", Delagi et al, KSL-88-3, Knowledge Sys Labs,
	Stanford U].

lamp-post error

	{fencepost error}

LAN

	{local area network}

LAN administrator

	<job> A person who installs and maintains {LAN} {hardware} and
	{software}.  A LAN administrator troubleshoots network usage
	and computer peripherals.  He installs new users, performs
	system {backups} and data recovery, and resolves LAN
	communications problems.

	(2004-03-12)

LANCE

	Local Area Network Controller for Ethernet.

	The alternative name for the Am7990 {integrated circuit} used
	in a {Filtabyte} {Ethernet} controller card.

	(1995-02-15)

language

	1. <language, programming> {programming language}.

	2. <human language> {natural language}.

	(1998-09-07)

language-based editor

	{language-sensitive editor}

language code

	<human language, standard> A set of standard names and
	abbreviations maintained by {ISO} for identifying human
	languages, natural and invented, past and present.  Each
	language has a list of English and French names and an ISO
	639-2 three-letter code.  Some also have an ISO 639-1
	two-letter code.

	The list even includes the Klingon language from the Star Trek
	science fiction series.

	{Latest list
	(http://www.loc.gov/standards/iso639-2/php/English_list.php)}.

	There are also {country codes}.

	(2006-12-11)

Language for Communicating Systems

	<language> (LCS) A {concurrent} {SML} by Bernard Berthomieu
	with {behaviours} and processes, based upon {higher order
	CCS}.  LCS is implemented as a {bytecode interpreter} and runs
	on {Sun} {SPARC}, {SGI} {MIPS}, and {Linux}.

	Latest version: 5.1, as of 2000-03-17.

	{(http://laas.fr/~bernard/lcs.html)}.

	E-mail: Bernard Berthomieu <Bernard.Berthomieu@laas.fr>.

	Mailing list: lcs@laas.fr

	(2000-03-28)

Language for the On-Line Investigation and Transformation of Abstractions

	<language> (LOLITA) An extension of the {Culler-Fried System}
	for {symbolic mathematics}.

	["An On- line Symbol Manipulation System", F.W. Blackwell, Proc
	ACM 22nd Natl Conf, 1967].

	[Sammet 1969, p. 464].

	(2003-07-29)

Language H

	An early business-oriented language from {NCR}.

language lawyer

	A person, usually an experienced or senior software engineer,
	who is intimately familiar with many or most of the numerous
	restrictions and features (both useful and esoteric)
	applicable to one or more computer programming languages.  A
	language lawyer is distinguished by the ability to show you
	the five sentences scattered through a 200-page manual that
	together imply the answer to your question "if only you had
	thought to look there".

	Compare {wizard}, {legal}, {legalese}.

	[{Jargon File}]

	(1995-02-15)

Language Of Temporal Ordering Specification

	<language> (LOTOS) A formal {specification language} based on
	temporal ordering used for {protocol} specfication in {ISO}
	{OSI} {standards}.  It is published as ISO 8807 in 1990 and
	describes the order in which events occur.

	["The Formal Description Technique LOTOS", P.H.J. van Eijk et
	al eds, N-H 1989].

	(1995-03-18)

Language Sensitive Editor

	(LSE) A {language-sensitive editor} from {DEC}.

	(1995-02-15)

language-sensitive editor

	An editor that is aware of the syntactic, semantic and in some
	cases the structural rules of a specific programming language
	and provides a framework for the user to enter {source code}.
	Programs or changes to previously stored programs are
	incrementally parsed into an {abstract syntax tree} and
	automatically checked for correctness.

	(1995-02-15)

languages of choice

	{C} and {Lisp}.  Nearly every hacker knows one of these, and
	most good ones are fluent in both.  Smalltalk and Prolog are
	also popular in small but influential communities.

	There is also a rapidly dwindling category of older hackers
	with Fortran, or even assembler, as their language of choice.
	They often prefer to be known as {Real Programmers}, and other
	hackers consider them a bit odd (see "{The Story of Mel}").
	Assembler is generally no longer considered interesting or
	appropriate for anything but {HLL} implementation, {glue}, and
	a few time-critical and hardware-specific uses in systems
	programs.  Fortran occupies a shrinking niche in scientific
	programming.

	Most hackers tend to frown on languages like {Pascal} and
	{Ada}, which don't give them the near-total freedom considered
	necessary for hacking (see {bondage-and-discipline language}),
	and to regard everything even remotely connected with {COBOL}
	or other traditional {card walloper} languages as a total and
	unmitigated {loss}.

	[{Jargon File}]

Laning and Zierler

	<language> Possibly the first true working algebraic
	{compiler}.  Written by J.H. Laning Jr and N. Zierler in
	1953-1954 to run on {MIT}'s {Whirlwind} computer.

	[Sammet 1969, pp. 131-132].

	[Did the language have a name?]

	(1994-11-01)

Lan Kanal Adapter

	<networking> (LKA) A sort of external {LAN} interface for a
	{BS200} computer.

	(2005-02-11)

LANL

	Los Alamos National Laboratory, Los Alamos, NM, USA.

Lan Manager

	<operating system> {Microsoft}'s {OS/2}-based {network
	operating system}.  Developed in conjunction with {3Com}, Lan
	Manager runs as a task under OS/2.  Because of this, a {file
	server} may concurrently be used for other tasks, such as
	{database} services.  It offers good {mulitasking}.

	(1997-03-19)

LANtastic

	<networking, product> A trademarked name for numerous products
	of {Artisoft, Inc.}.

	(1995-04-16)

LAP

	LISP Assembly Program.  The {assembly language} embedded into
	early {Lisp}.  LAP was also used by the {Liar} compiler for
	{MIT Scheme} and {MACLISP}.

	[Sammet 1969, p. 597].

	(1994-11-01)

LAP4

	Early assembly language for Linc-8 machine.

LAPB

	{Link Access Protocol Balanced}

LAPD

	1. {Link Access Procedure on the D channel}.

	2. Los Angeles Police Department.

LAPM

	{Link Access Protocol for Modems}

LAPSE

	<language> A {single assignment} language for the {Manchester
	dataflow machine}.

	["A Single Assignment Language for Data Flow Computing",
	J.R.W. Glauert, M.Sc Diss, Victoria U Manchester, 1978].

	(1994-12-21)

laptop

	{portable computer}

laptop computer

	{portable computer}

LaQuey

	<networking> [LaQuey, T. (with J. Ryer), "The Internet
	Companion: A Beginner's Guide to Global Networking",
	Addison-Wesley, Reading, MA, 1992]

	(2007-09-27)

Larch

	The Larch Project develops aids for formal specifications.
	Each Larch specification has two components: an interface
	containing predicates written in the LIL ({Larch Interface
	Language}) designed for the target language and a 'trait'
	containing assertions about the {predicates} written in LSL,
	the {Larch Shared Language} common to all.

	["The Larch Family of Specification Languages", J. Guttag et
	al, IEEE Trans Soft Eng 2(5):24-365 (Sep 1985)].

Larch/C++

	An interface specification language which can be used to
	formally specify {C++} program {modules}.

LARCH/CLU

	<language, specification> The {Larch} specification language
	for {CLU}.  Used in "Abstraction and Specification in Program
	Development", B. Liskov & J. Guttag, MIT Press 1986.

	(1996-01-02)

Large Installation Systems Administration

	(LISA) The {USENIX} systems administration conference.  It is
	now more general that its title suggests.  It is sponsored and
	organised by {SAGE}, the USENIX Systems Administrators Guild.

	{(ftp://ftp.sage.usenix.org/pub/sage/)}.

	(1996-01-02)

Larry Wall

	<person> A {demigod}, the author of {Perl}, {patch}, and {rn}.

	In the Perl {README}, he says, "I want you to know that I
	create nice things like this because it pleases the Author of
	my story.  If this bothers you, then your notion of Authorship
	needs some revision.  But you can use Perl anyway."

	E-mail: Larry Wall <lwall@sems.com>.

	(1996-06-04)

LART

	{Luser Attitude Re-adjustment Tool}

larval stage

	Describes a period of monomaniacal concentration on coding
	apparently passed through by all fledgling hackers.  Common
	symptoms include the perpetration of more than one 36-hour
	{hacking run} in a given week; neglect of all other activities
	including usual basics like food, sleep, and personal hygiene;
	and a chronic case of advanced bleary-eye.  Can last from 6
	months to 2 years, the apparent median being around 18 months.
	A few so afflicted never resume a more "normal" life, but the
	ordeal seems to be necessary to produce really wizardly (as
	opposed to merely competent) programmers.  See also
	{wannabee}.  A less protracted and intense version of larval
	stage (typically lasting about a month) may recur when one is
	learning a new {OS} or programming language.

	[{Jargon File}]

lase

	/layz/ To print a given document via a laser printer.  "OK,
	let's lase that sucker and see if all those graphics-macro
	calls did the right things."

laser

	<hardware> (Light Amplification by Stimulated Emission of
	Radiation) The type of light source used in a {laser
	printer}.

	(2003-05-08)

laser printer

	<printer> A non-impact high-resolution printer which uses a
	rotating disk to reflect laser beams to form an electrostatic
	image on a selenium imaging drum.  The developer drum
	transfers toner from the toner bin to the charged areas of the
	imaging drum, which then transfers it onto the paper into
	which it is fused by heat.  Toner is dry ink powder, generally
	a plastic heat-sensitive polymer.

	Print resolution currently (2001) ranges between 300 and 2400
	dots per inch (DPI).  Laser printers using chemical
	photoreproduction techniques can produce resolutions of up to
	2400 DPI.

	Print speed is limited by whichever is slower - the printer
	hardware (the "engine speed"), or the software {rendering}
	process that converts the data to be printed into a {bit map}.

	The print speed may exceed 21,000 lines per minute, though
	printing speed is more often given in pages per minute.  If a
	laser printer is rated at 12 pages per minute (PPM), this
	figure would be true only if the printer is printing the same
	data on each of the twelve pages, so that the bit map is
	identical.  This speed however, is rarely reached if each page
	contains different codes, text, and graphics.

	In 2001, Xerox's Phaser 1235 and 2135 (with Okidata engines)
	could print up to 21 colour ppm at 1200x1200 DPI using a
	single-pass process.

	Colour laser printers can reach 2400 DPI easily (e.g. an HP
	LaserJet 8550).  Some printers with large amounts of RAM can
	print at engine speed with different text pages and some of
	the larger lasers intended for graphics design work can print
	graphics at full engine speed.

	Although there are dozens of retail brands of laser printers,
	only a few {original equipment manufacturers} make {print
	engines}, e.g. {Canon}, {Ricoh}, {Toshiba}, and {Xerox}.

	(2002-01-06)

Lasherism

	<jargon, algorithm> (Harvard) A program that solves a standard
	problem (such as the {Eight Queens Puzzle} or implementing the
	{life} {algorithm}) in a deliberately nonstandard way.
	Distinguished from a {crock} or {kluge} by the fact that the
	programmer did it on purpose as a mental exercise.  Such
	constructions are quite popular in exercises such as the
	{Obfuscated C contest}, and occasionally in {retrocomputing}.
	Lew Lasher was a student at Harvard around 1980 who became
	notorious for such behaviour.

	[{Jargon File}]

	(1994-12-07)

last call optimisation

	<programming> (Or "tail call optimisation") Discarding the
	immediate calling context ({call stack} {frame}) when the last
	action of a function or procedure, A, is to call another
	function or procedure, B.  B will then return directly to A's
	caller, or possibly further up the call stack if the
	optimisation has been applied to several consecutive calls.

	Last call optimisation allows arbitrarily deep nesting of
	procedure calls without consuming memory to store useless
	environments.  This is particularly useful in the special case
	of {tail recursion optimisation}, where a procedure's last
	action is to call itself (possibly indirectly).

	(2007-03-16)

last-in first-out

	{stack}

LAT

	{Local Area Transport}

latch

	A digital logic circuit used to store one or more bits.  A
	latch has a data input, a clock input and an output.  When the
	clock input is active, data on the input is "latched" or
	stored and transfered to the output either immediately or when
	the clock input goes inactive.  The output will then retain
	its value until the clock goes active again.

	See also {flip-flop}.

	(1995-02-03)

latency

	<communications> 1. The time it takes for a {packet} to cross
	a network connection, from sender to receiver.

	2. The period of time that a frame is held by a network device
	before it is forwarded.

	Two of the most important parameters of a communications
	channel are its latency, which should be low, and its
	{bandwidth}, which should be high.  Latency is particularly
	important for a {synchronous} {protocol} where each packet
	must be acknowledged before the next can be transmitted.

	(2000-02-27)

LaTeX

	<language, text, tool> (Lamport TeX) Leslie Lamport
	<lamport@pa.dec.com>'s document preparation system built on
	top of {TeX}.  LaTeX was developed at {SRI International}'s
	Computer Science Laboratory and was built to resemble
	{Scribe}.

	LaTeX adds commands to simplify typesetting and lets the user
	concentrate on the structure of the text rather than on
	formatting commands.

	{BibTeX} is a LaTeX package for bibliographic citations.

	Lamport's LaTeX book has an exemplary index listing every
	symbol, concept and example in the book.  The index in the,
	now obsolete, first edition includes (on page 221) the
	mysterious entry "Gilkerson, Ellen, 221".  The second edition
	(1994) has an entry for "infinite loop" instead.

	["LaTeX, A Document Preparation System", Leslie Lamport, A-W
	1986, ISBN 0-201-15790-X (first edition, now obsolete)].

	(1997-11-17)

Latin 1

	{ISO 8859}

lattice

	<theory> A {partially ordered set} in which all finite subsets
	have a {least upper bound} and {greatest lower bound}.

	This definition has been standard at least since the 1930s and
	probably since Dedekind worked on lattice theory in the 19th
	century; though he may not have used that name.

	See also {complete lattice}, {domain theory}.

	(1999-12-09)

LAU

	Langage a Assignation Unique.  A {single assignment} language
	for the LAU {dataflow} machine, Toulouse.

	["Pipelining, Parallelism and Asynchronism in the LAU System",
	J.C. Syre et al, Proc 1977 Intl Conf Parallel Proc,
	pp. 87-92].

laundromat

	<jargon, storage> Synonym {disk farm}; see {washing machine}.

	[{Jargon File}]

	(1998-02-01)

LAURE

	<language> A language for {knowledge representation} combining
	{object-oriented} features and {logic programming}.  It has
	set operations, object-oriented {exception} handling and a
	{polymorphic} type system.

	["An Object-Oriented Language for Advanced Applications", in
	Proc TOOLS 5, Santa Barbara 1991, P-H].

	(1998-02-01)

LAVA

	A language for {VLSI} that deals with "sticks", i.e. wires
	represented as lines with thickness.

	["A Target Language for Silicon Compilers", R.J. Matthews et
	al, IEEE COMPCON, 1982, pp. 349-353].

	(1994-12-07)

law

	{software law}

LAWN

	{wireless local area network}

Lawrence Livermore Labs

	{Lawrence Livermore National Laboratory}

Lawrence Livermore National Laboratory

	<body> (LLNL) A research organaisatin operated by the
	{University of California} under a contract with the US
	Department of Energy.  LLNL was founded on 2 September 1952 at
	the site of an old World War II naval air station.

	The Lab employs researchers from many scientific and
	engineering disciplines.  Some of its departments are the
	National Ignition Facility, the Human Genome Center, the ASCI
	Tera-Scale Computing partnership, the Computer Security
	Technology Center, and the Site 300 Experimental Test
	Facility.  Other research areas are Astronomy and
	Astrophysics, Atmospheric Science, Automation and Robotics,
	Biology, Chemistry, Computing, Energy Research, Engineering,
	Environmental Science, Fusion, Geology and Geophysics, Health,
	Lasers and Optics, Materials Science, National Security,
	Physics, Sensors and Instrumentation, Space Science.

	LLNL also works with industry in research and licensing
	projects.  At the end of fiscal year 1995, the lab had signed
	agreements for 193 cost-shared research projects involving 201
	companies and worth nearly $600m.

	{(http://llnl.gov/)}.

	Address: Fremont, California, USA.

	(1996-10-30)

LAX

	LAnguage eXample.

	A {toy language} used to illustrate {compiler} design.

	["Compiler Construction", W.M. Waite et al, Springer 1984].

	(1994-12-07)

layer

	{protocol layer}

layer 1

	{physical layer}

layer 2

	{data link layer}

layer 3

	{network layer}

layer 4

	{transport layer}

layer 5

	{session layer}

layer 6

	{presentation layer}

layer 7

	{application layer}

Layer Two Tunneling Protocol

	<protocol> (L2TP) An {IETF} standard {protocol} for creating
	{Virtual Private Networks}.  L2TP is an {open standard} with
	mutlivendor {interoperability} and acceptance.

	Compare: {PPTP}.

	[Sponsored by {Cisco Systems, Inc.}?]

	(1998-09-24)

laziness

	{lazy evaluation}

lazy evaluation

	<reduction> An {evaluation strategy} combining {normal order
	evaluation} with updating.  Under normal order evaluation
	(outermost or call-by-name evaluation) an expression is
	evaluated only when its value is needed in order for the
	program to return (the next part of) its result.  Updating
	means that if an expression's value is needed more than once
	(i.e. it is shared), the result of the first evaluation is
	remembered and subsequent requests for it will return the
	remembered value immediately without further evaluation.  This
	is often implemented by graph reduction.  An unevaluated
	expression is represented as a {closure} - a data structure
	containing all the information required to evaluate the
	expression.

	Lazy evaluation is one {evaluation strategy} used to implement
	non-{strict} functions.  Function arguments may be infinite
	data structures (especially lists) of values, the components
	of which are evaluated as needed.

	According to Phil Wadler the term was invented by Jim Morris.

	Opposite: {eager evaluation}.

	A partial kind of lazy evaluation implements lazy data
	structures or especially {lazy lists} where function arguments
	are passed evaluated but the arguments of data constructors
	are not evaluated.

	{Full laziness} is a {program transformation} which aims to
	optimise lazy evaluation by ensuring that all subexpressions
	in a function body which do not depend on the function's
	arguments are only evaluated once.

	(1994-12-14)

lazy list

	A list which is built using a non-strict constructor.  Any
	head or tail of the list may be an unevaluated closure.  Also
	known as streams since they may be used to carry a sequence of
	values from the output of one function to an input of another.
	See also Lazy evaluation.

Lazy SML

	{Lazy Standard ML}

lazy sml2c

	A {lazy} version {sml2c}.  Portable, written in {SML}.
	Language extensions include {first-class continuations},
	{asynchronous signal} handling.

	E-mail: <david.tarditi@cs.cmu.edu>.
	{(ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c)}.

Lazy Standard ML

	<language> (LSML) A {lazy} varient of {SML}, allowing cyclic
	val definitions, by Prateek Mishra <mishra@sbcs.sunysb.edu>.

	Latest version: 0.43-1, as of 1993-11-15.

	Not to be confused with {LML}.

	{(ftp://sbcs.sunysb.edu/pub/lsml)}.

	(1999-08-30)

lb

	<networking> The {country code} for Lebanon.

	(1999-01-27)

LBA

	{Logical Block Addressing}

LBE

	{Language-Based Editor}

LBL

	Lawrence Berkeley Laboratory, Berkeley, CA, USA.

LBX

	{Low Bandwidth X}.

lc

	<networking> The {country code} for Saint Lucia.

	(1999-01-27)

LCC

	Language for Conversational Computing.  Written at {CMU} in
	the 1960's.  Similar to {JOSS}, with declarations, pointers
	and block structure from {ALGOL 60}.  Implemented for {IBM
	360}/{IBM 370} under {TSS}.

	["LCC Reference Manual", H.R. Van Zoeren, CMU 196]9.

lcc

	<programming, tool> A hand-coded, {retargetable} compiler for
	{ANSI C} written by Dave Hanson <drh@cs.princeton.edu>.  lcc's
	{parser} is faster than {yacc} and the code it generates is
	"as good as {GCC}".

	Version 1.8 includes a {compiler}, test suite and
	documentation.  lcc has been ported to {Vax}, commercial
	backends for {MIPS}, {SPARC}, {68000} are cheap for
	universities.  {Chop} is a {code generator} for use with lcc.

	{(http://cs.princeton.edu/software/lcc/)}.

	E-mail: <lcc-requests@princeton.edu>.

	["A Retargetable C Compiler: Design and Implementation",
	Addison-Wesley, 1995, ISBN 0-8053-1670-1].

	(1998-03-20)

LCD

	{liquid crystal display}

LCF

	{Logic for Computable Functions}

LCL

	1. The Larch interface language for ANSI standard C.

	[J.V. Guttag et al, TR 74, DEC SRC, Palo Alto CA, 1991].

	2. Liga Control Language.

	Controls the attribute evaluator generator LIGA, part of the
	{Eli} {compiler-compiler}.

	["LCL: Liga Control Language", U. Kastens
	<uwe@uni-paderborn.de>, U Paderborn].

	(1995-01-23)

lclint

	<tool, programming> A lint-like {ANSI C} source checker from
	{MIT}.  If formal specifications are supplied (in a separate
	file), lclint can do more powerful checking to detect
	inconsistencies between specifications and code.  Adding
	specifications enables further checking, types can be defined
	as {abstract} and lclint can detect inconsistent use of
	{global variables}; undocumented modification of
	client-visible state; inconsistent use of an uninitialised
	{formal parameter}; or failure to initialise an actual
	parameter.

	{(http://larch-www.lcs.mit.edu:8001/larch/lclint.html)}.

	(1995-05-11)

LCP

	{Link Control Protocol}

LCS

	{Language for Communicating Systems}

ld

	1. <programming, tool> (Load) {Unix}'s {linker}.

	2. <mathematics> {logarithmus dualis}.

	(1999-03-19)

LDAP

	{Lightweight Directory Access Protocol}

LDB

	/l*'d*b/ [PDP-10 instruction] To extract from the middle.
	"LDB me a slice of cake, please."  This usage has been kept
	alive by Common LISP's function of the same name.  Considered
	silly.  See also {DPB}.

	[{Jargon File}]

LDL

	["LDL: A Logic-Based Data-Language", S. Tsur et al, Proc VLDB
	1986, Kyoto Japan, Aug 1986, pp.33-41].

LDL1

	Successor of LDL.  "Sets and Negation in a Logic Database
	Language", C. Beeri et al, in Proc 6th Ann ACM Symp Princs
	Database Sys (1987), pp.21- 37.

LDP

	{Linux Documentation Project}

LDT

	Logic Design Translator.

	Computer system design analysis.

	[Sammet 1969, p. 621].

	(1994-12-01)

LE/1

	Langage External.

	["An Evaluation of the LE/1 Network Command Language Designed
	for the SOC Network", J. du Masle, in Command Languages,
	C. Unger ed, N-H 1973].

	(1994-12-01)

leading

	<text> /ledding/ The spacing between lines of {text}.  This is
	defined when a {font} is designed but can often be altered in
	order to change the appearance of the text or for special
	effects.  It is measured in {points} and is normally 120% of
	the height of the text.

	See also {kerning}, {tracking}.

	(1996-06-07)

LEAF

	<language> 1. {LISP Extended Algebraic Facility}.

	2. "LEAF: A Language which Integrates Logic, Equations and
	Functions", R.  Barbuti et al in Logic Programming, Functions
	Relations and Equations, D.  DeGroot et al eds, P-H 1986,
	pp.201-238.

leaf

	<mathematics, data> (Or "terminal node") In a {tree}, a node
	which has no {daughter}.

	(1998-11-14)

Leaf Distribution Limited

	A UK connectivity software supplier which also provides
	SERVELAN, a country-wide {Internet} access service.

	E-mail: <sales@leaf.co.uk>.

	Address: 7 Elmwood, Chineham Business Park, Crockford Lane,
	BASINGSTOKE RG24 0WG.  Telephone: +44 (1256) 707 777.  Fax:
	+44 (1256) 707 555.

	(1995-01-04)

leaf site

	A machine that merely originates and reads {Usenet} news or
	mail, and does not relay any third-party traffic.  Often
	uttered in a critical tone; when the ratio of leaf sites to
	backbone, rib, and other relay sites gets too high, the
	network tends to develop bottlenecks.  Compare {backbone
	site}, {rib site}.

	[{Jargon File}]

League for Programming Freedom

	<body, legal> (LPF) A grass-roots organisation of professors,
	students, businessmen, programmers and users dedicated to
	bringing back the freedom to write programs.  Once programmers
	were allowed to write programs using all the techniques they
	knew, and providing whatever features they felt were useful.
	Monopolies, {software patents} and {interface copyrights} have
	taken away freedom of expression and the ability to do a good
	job.

	"{Look and feel}" lawsuits attempt to monopolise well-known
	command languages; some have succeeded.  Copyrights on command
	languages enforce gratuitous incompatibility, close
	opportunities for competition and stifle incremental
	improvements.

	{Software patents} are even more dangerous; they make every
	design decision in the development of a program carry a risk
	of a lawsuit, with draconian pre-trial seizure.  It is
	difficult and expensive to find out whether the techniques you
	consider using are patented; it is impossible to find out
	whether they will be patented in the future.

	The League is not opposed to the legal system that Congress
	intended -- {copyright} on individual programs.  They aim to
	reverse the changes made by judges in response to special
	interests, often explicitly rejecting the public interest
	principles of the Constitution.

	The League works to abolish the monopolies by publishing
	articles, talking with public officials, boycotting egregious
	offenders and in the future may intervene in court cases.  On
	1989-05-24, the League picketed {Lotus} headquarters on
	account of their lawsuits, and then again on 1990-08-02.
	These marches stimulated widespread media coverage for the
	issue.

	The League's funds are used for filing briefs; printing
	handouts, buttons and signs and whatever will persuade the
	courts, the legislators and the people.  The League is a
	non-profit corporation, but not considered a tax-exempt
	charity.

	{LPF Home (http://progfree.org/)}.

	(2007-02-28)

leak

	<programming> With a qualifier, one of a class of
	resource-management bugs that occur when resources are not
	freed properly after operations on them are finished, so they
	effectively disappear (leak out).  This leads to eventual
	exhaustion as new allocation requests come in.

	One might refer to, say, a "window handle leak" in a {window
	system}.

	See {memory leak}, {fd leak}.

	[{Jargon File}]

	(1995-04-18)

leaky heap

	{memory leak}

Lean

	An experimental language from the {University of Nijmegen} and
	{University of East Anglia}, based on graph rewriting and
	useful as an intermediate language.  Lean is descended from
	{Dactl0}.

	{Clean} is a subset of Lean.

	["Towards an Intermediate Language Based on Graph Rewriting",
	H.P.  Barendregt et al in PARLE: Parallel Architectures and
	Languages Europe, G. Goos ed, LNCS 259, Springer 1987,
	pp.159-175].

	(1995-01-25)

LEAP

	Language for the Expression of Associative Procedures.

	ALGOL-based formalism for sets and associative retrieval, for
	TX-2.  Became part of SAIL.

	"An ALGOL-based Associative Language", J.A. Feldman et al,
	CACM 12(8):439-449 (Aug 1969).

leapfrog attack

	Use of userid and password information obtained illicitly from
	one {host} (e.g. {download}ing a file of account IDs and
	passwords, tapping {TELNET}, etc.) to compromise another host.
	Also, the act of TELNETting through one or more hosts in order
	to confuse a trace (a standard {cracker} procedure).

	[{Jargon File}]

leap second

	{Coordinated Universal Time}

learning curve

	<jargon> A graph showing some measure of the cost of
	performing some action against the number of times it has been
	performed.  The term probably entered engineering via the
	aircraft industry in the 1930s, where it was used to describe
	plots showing the cost of making some particular design of
	aeroplane against the number of units made.

	The term is also used in psychology to mean a graph showing
	some measure of something learned against the number of
	trials.  The psychology graphs normally slope upward whereas
	the manufacturing ones normally slope downward but they are
	both usually steep to start with and then level out.

	{Marketroids} often misuse the term to mean the amount of time
	it takes to learn to use something ("reduce the learning
	curve") or the ease of learning it ("easy learning curve").
	The phrase "steep learning curve" is sometimes used
	incorrectly to mean "hard to learn" whereas of course it
	implies rapid learning.

	{Engineering
	(http://computerworld.com/cwi/story/0,1199,NAV47-68-85-1942_STO61762,00.html)}.

	{Psychology
	(http://sun.science.wayne.edu/~wpoff/cor/mem/opereinf.html)}.

	(2002-01-22)

leased line

	<communications, networking> A private telephone circuit
	permanently connecting two points, normally provided on a
	lease by a local {PTT}.

	(1998-03-24)

least fixed point

	<mathematics> A {function} f may have many {fixed points} (x
	such that f x = x).  For example, any value is a fixed point
	of the identity function, (\ x . x).

	If f is {recursive}, we can represent it as

		f = fix F

	where F is some {higher-order function} and

		fix F = F (fix F).

	The standard {denotational semantics} of f is then given by
	the least fixed point of F.  This is the {least upper bound}
	of the infinite sequence (the {ascending Kleene chain})
	obtained by repeatedly applying F to the totally undefined
	value, bottom.  I.e.

		fix F = LUB {bottom, F bottom, F (F bottom), ...}.

	The least fixed point is guaranteed to exist for a
	{continuous} function over a {cpo}.

	(2005-04-12)

least recently used

	(operating systems) (LRU) A rule used in a {paging} system
	which selects a page to be {paged out} if it has been used
	(read or written) less recently than any other page.  The same
	rule may also be used in a {cache} to select which cache entry
	to {flush}.

	This rule is based on {temporal locality} - the observation
	that, in general, the page (or cache entry) which has not been
	accessed for longest is least likely to be accessed in the
	near future.

	(1995-02-15)

least significant bit

	<data> (LSB) {Bit} zero, the bit of a {binary} number giving
	the number of ones, the last or rightmost bit when the number
	is written in the usual way.

	(1995-07-13)

least upper bound

	<theory> (lub or "join", "supremum") The least upper bound of
	two elements a and b is an upper bound c such that a <= c and
	b <= c and if there is any other upper bound c' then c <= c'.
	The least upper bound of a set S is the smallest b such that
	for all s in S, s <= b.  The lub of mutually comparable
	elements is their maximum but in the presence of incomparable
	elements, if the lub exists, it will be some other element
	greater than all of them.

	Lub is the dual to {greatest lower bound}.

	(In {LaTeX}, "<=" is written as {\sqsubseteq}, the lub of two
	elements a and b is written a {\sqcup} b, and the lub of set S
	is written as \bigsqcup S).

	(1995-02-03)

leaves

	{leaf}

LEC

	{Local Exchange Carrier}

LECOM

	Version of COMIT on GE 225 ca. 1966.  Sammet 1969, p.419.

LED

	<electronics> {Light-Emitting Diode}.

LEDA

	{Library of Efficient Data types and Algorithms}

Leda

	<language> A multi-paradigm language supporting {imperative
	programming}, {declarative programming}, {procedural
	programming}, {functional programming}, {logic programming}
	and {object-oriented programming} developed by Tim Budd
	<budd@cs.orst.edu> at Oregon State University in 1990-1993.

	["Blending Imperative and Relational Programming", Tim Budd,
	IEEE Software 8(1):58-65 (Jan 1991)].  Forthcoming book.

	{(ftp://cs.orst.edu/pub/budd/leda/)}.

	(2007-10-02)

LED page printer

	{LED printer}

LED printer

	<printer> (Or "LED page printer") A printer which is similar
	in operation to a {laser printer}, but where an array of
	{LEDs} is used in place of the laser.

	(1996-12-08)

leech

	<networking> Someone who {downloads} files but provides
	nothing for others to download.  The term is common on
	{BitTorrent}, which relies on having multiple sources for
	files to improve download speed.

	(2007-03-27)

leet

	{elite}

left arrow

	<character> The graphic which the 1963 version of {ASCII} had
	in place of the {underscore} character, {ASCII} 95.

	(1995-03-06)

left brace

	<character> "{".  {ASCII} character 123.

	Common names: open brace; left brace; left squiggly; left
	squiggly bracket/brace; left curly bracket/brace; {ITU-T}:
	opening brace.  Rare: brace ("}" = unbrace); curly ("}" =
	uncurly); leftit ("}" = rytit); left squirrelly; {INTERCAL}:
	embrace ("}" = bracelet).

	Paired with {right brace} ("}").

	(1995-03-16)

left bracket

	<character> "[".  {ASCII} character 91.

	Common: left square bracket; {ITU-T}: opening bracket;
	bracket.  Rare: square; {INTERCAL}: U turn.

	Paired with {right bracket} ("]").

	(1995-03-16)

left join

	{outer join}

left outer join

	{outer join}

left parenthesis

	<character> "(".  {ASCII} character 40.

	Common names: left paren; left parenthesis; left; {open};
	paren (")" = thesis); open paren; open parenthesis; left
	parenthesis; left banana.  Rare: so (")" = already); lparen;
	{ITU-T}: opening parenthesis; open round bracket, left round
	bracket, {INTERCAL}: wax (")" = wane); parenthisey (")" =
	unparenthisey); left ear.

	Paired with {right parenthesis} (")").

	(1995-03-06)

LeFun

	Logic, Equations and Functions.  An integration of {logic
	programming} and {functional programming} by H. Ait-Kaci et al
	of {MCC}, Austin TX.

	["LeFun: Logic, Equations and Functions", H. Ait-Kaci et al,
	Proc 1987 Symp on Logic Programming, San Francisco].

	(1994-10-21)

legacy

	{legacy system}

legacy code

	{legacy system}

legacy software

	{legacy system}

legacy system

	<jargon> A computer system or {application program} which
	continues to be used because of the cost of replacing or
	redesigning it and often despite its poor competitiveness and
	compatibility with modern equivalents.  The implication is
	that the system is large, monolithic and difficult to modify.

	If legacy software only runs on antiquated {hardware} the cost
	of maintaining this may eventually outweigh the cost of
	replacing both the software and hardware unless some form of
	{emulation} or {backward compatibility} allows the software to
	run on new hardware.

	(1998-08-09)

legal

	Loosely used to mean "in accordance with all the relevant
	rules", especially in connection with some set of constraints
	defined by software.  "The older =+ alternate for += is no
	longer legal syntax in ANSI C."  "This parser processes each
	line of legal input the moment it sees the trailing linefeed."
	Hackers often model their work as a sort of game played with
	the environment in which the objective is to maneuver through
	the thicket of "natural laws" to achieve a desired objective.
	Their use of "legal" is flavoured as much by this game-playing
	sense as by the more conventional one having to do with courts
	and lawyers.  Compare {language lawyer}, {legalese}.

	[{Jargon File}]

legalese

	Dense, pedantic verbiage in a language description, product
	specification, or interface standard; text that seems designed
	to obfuscate and requires a {language lawyer} to {parse} it.
	Though hackers are not afraid of high information density and
	complexity in language (indeed, they rather enjoy both), they
	share a deep and abiding loathing for legalese; they associate
	it with deception, {suits}, and situations in which hackers
	generally get the short end of the stick.

LEGOL

	"Application of MP/3 to the Design and Implementation of
	LEGOL, A Legally Oriented Language", S.H. Mandil et al, Intl
	Symp Programming, Paris 1974.

Le-Lisp

	Jerome Chailloux and Emmanuel St James, INRIA, France.  A LISP
	dialect close to Common Lisp, lexically scoped, with a
	CLOS-like object system.  Uses both packages and modules.
	"le-lisp: A Portable and Efficient Lisp System", J. Chailloux
	et al, Proc 1984 ACM Symp on Lisp and Functional Programming,
	ACM.  Version v.16, available from ILOG, France.

lemma

	<logic> A result already proved, which is needed in the proof
	of some further result.

	(1995-03-25)

Lempel-Ziv compression

	{Substitutional compression} schemes proposed by Jakob Ziv and
	Abraham Lempel in 1977 and 1978.  There are two main schemes,
	{LZ77} and {LZ78}.  {Lempel-Ziv Welch compression} is a
	variant of {LZ78}.

Lempel-Ziv Welch compression

	(LZW) The {algorithm} used by the {Unix} {compress} command to
	reduce the size of files, e.g. for archival or transmission.
	LZW was designed by Terry Welch in 1984 for implementation in
	hardware for high-performance disk controllers.  It is a
	variant of {LZ78}, one of the two {Lempel-Ziv compression}
	schemes.

	The LZW algorithm relies on reoccurrence of byte sequences
	(strings) in its input.  It maintains a table mapping input
	strings to their associated output codes.  The table initially
	contains mappings for all possible strings of length one.
	Input is taken one byte at a time to find the longest initial
	string present in the table.  The code for that string is
	output and then the string is extended with one more input
	byte, b.  A new entry is added to the table mapping the
	extended string to the next unused code (obtained by
	incrementing a counter).  The process repeats, starting from
	byte b.  The number of bits in an output code, and hence the
	maximum number of entries in the table is usually fixed and
	once this limit is reached, no more entries are added.

	LZW compression and decompression are licensed under {Unisys}
	Corporation's 1984 U.S. Patent 4,558,302 and equivalent
	foreign patents.  This kind of patent isn't legal in most
	coutries of the world (including the UK) except the USA.
	Patents in the UK can't describe {algorithms} or mathematical
	methods.

	[A Technique for High Performance Data Compression, Terry A.
	Welch, IEEE Computer, 17(6), June 1984, pp. 8-19]

	[J. Ziv and A. Lempel, "A Universal Algorithm for Sequential
	Data Compression," IEEE Transactions on Information Theory,
	Vol. IT-23, No. 3, May 1977, pp. 337-343].

Lenat, Doug

	{Doug Lenat}

lenient evaluation

	<reduction> An {evaluation strategy}, described in [Traub,
	FPCA 89], under which all {redex}es are evaluated in parallel
	except inside the arms of conditionals and inside {lambda
	abstractions}.  Lenient evaluation is an example of an {eager}
	evaluation strategy.

	(2004-01-22)

LEO

	{Low Earth Orbit}

Leo

	1. <language> A general-purpose {systems language},
	syntactically like {Pascal} and {Y}, semantically like {C}.

	["The Leo Programming Language", G. Townsend, CS TR 84-7, U
	Arizona 1984].

	(1996-02-06)

	2. <application> A general data management environment which
	can show user-created relationships among any kind data.  It
	can also be used as an {outlining editor} as it embeds the
	{noweb} and {CWEB} markup languages in an outline context.

	Leo is written in pure {Python} using {Tk/tcl} and so runs on
	{Windows}, {Linux} and {MacOS X}.  It isdistributed under the
	{Python License}.

	(2006-07-12)

LER

	1. <networking> {Label Edge Router}.

	2. <electronics, humour> {Light-Emitting Resistor}.

	[{Jargon File}]

	(1999-06-30)

LERP

	/lerp/ vi., Quasi-acronym for Linear Interpolation, used as a
	verb or noun for the operation. "Bresenham's algorithm lerps
	incrementally between the two endpoints of the line."

	[{Jargon File}]

less than

	<character> "<" {ASCII} character 60.

	Common names: {ITU-T}: less than; bra (">" = ket); left angle;
	left angle bracket; left broket.  Rare: from; read from; suck
	(">" = blow); comes-from; in; crunch (all from Unix);
	{INTERCAL}: angle.

	See also {greater than}.

	(1995-03-20)

LessTif

	<library> The {Hungry Programmers}' version of {OSF}/{Motif}.
	It will be source code compatible with Motif, meaning that the
	same source will compile with both libraries and work exactly
	the same.  All the programming is being done with no reference
	to the header files for the motif widgets, so that LessTif can
	be distributed as {free software}.

	{(http://hungry.com/products/lesstif)}.

	(1995-03-20)

let floating

	<programming> A {program transformation} used in {functional
	programming} to implement {full laziness}.  E.g. the function

		f x = x + sqrt 4

	can be expressed as

		f x = let t = sqrt 4 in x + t

	but note that t does not depend on the argument x so we can
	automatically transform this to

		t = sqrt 4
		f x = x + t

	Making t into a global constant which need only be evaluated
	at most once, rather than every time f is called.  The general
	idea is to float each subexpression as far out (toward the
	top level) as possible to maximise sharing.

	(1997-07-09)

letterbomb

	<messaging> 1. An {e-mail} message containing {live data}
	intended to do nefarious things to the recipient's computer or
	terminal.  It is possible, for example, to send letterbombs
	that will lock up some specific kinds of terminals when they
	are viewed, so thoroughly that the user must turn the terminal
	off to unwedge it.  Under {Unix}, a letterbomb can also try to
	get part of its contents interpreted as a shell command.  The
	results of this could range from silly to tragic.

	See also {Trojan horse}; compare {nastygram}, {talk bomb}.

	2. Loosely, a {mailbomb}.

	[{Jargon File}]

	(1998-01-16)

level 1 cache

	{primary cache}

level 2 cache

	{secondary cache}

LEVEL5 OBJECT

	From {Information Builders}.

	[What is it?]

level one cache

	{primary cache}

level-sensitive scan design

	(circuit design) (LSSD) A kind of {scan design} which uses
	separate system and scan clocks to distinguish between normal
	and test mode.  Latches are used in pairs, each has a normal
	data input, data output and clock for system operation.  For
	test operation, the two latches form a master/slave pair with
	one scan input, one scan output and non-overlapping scan
	clocks A and B which are held low during system operation but
	cause the scan data to be latched when pulsed high during
	scan.

		  ____
		 |    |
	 Sin ----|S   |
	 A ------|>   |
		 |   Q|---+--------------- Q1
	 D1 -----|D   |   |
	 CLK1 ---|>   |	  |
		 |____|	  |    ____
			  |   |	   |
			  +---|S   |
	 B -------------------|>   |
			      |	  Q|------ Q2 / SOut
	 D2 ------------------|D   |
	 CLK2 ----------------|>   |
			      |____|

	In a single latch LSSD configuration, the second latch is used
	only for scan operation.  Allowing it to be use as a second
	system latch reduces the silicon overhead.

	(1995-02-15)

level two cache

	{secondary cache}

Lex

	1. <tool> A {lexical analyser} generator for {Unix} and its
	input language.  There is a {GNU} version called {flex} and a
	version written in, and outputting, {SML/NJ} called {ML-lex}.
	A version, by David Poole at Montana has been retargeted to
	{Turbo Pascal}, {(ftp://iecc.com/pub/file/lyprg.zip)}.

	["Lex - A Lexical Analyzer Generator", M.E. Lesk, CS TR 39,
	Bell Labs, Oct 1975].

	2. <language, specification> The lexical specification
	language for {COPS}.

	["Metalanguages of the Compiler Production System COPS",
	J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
	W. Henhapl, Tech Hochs Darmstadt 1978, pp.122-159].

	(2000-11-15)

lexeme

	<grammar> A minimal lexical unit of a language.  {Lexical
	analysis} converts strings in a language into a list of
	lexemes.  For a programming language these word-like pieces
	would include {keywords}, {identifiers}, {literals} and
	punctutation.  The lexemes are then passed to the {parser} for
	syntactic analysis.

	(1996-04-06)

lexer

	{lexical analyser}

lexical analyser

	<language> (Or "scanner") The initial input stage of a
	language processor (e.g. a {compiler}), the part that performs
	{lexical analysis}.

	(1995-04-05)

lexical analysis

	<programming> (Or "linear analysis", "scanning") The first
	stage of processing a language.  The stream of characters
	making up the source program or other input is read one at a
	time and grouped into {lexemes} (or "tokens") - word-like
	pieces such as keywords, identifiers, {literals} and
	punctutation.  The lexemes are then passed to the {parser}.

	["Compilers - Principles, Techniques and Tools", by Alfred
	V. Aho, Ravi Sethi and Jeffrey D. Ullman, pp. 4-5]

	(1995-04-05)

lexical scope

	<programming> (Or "static scope") When the {scope} of an
	{identifier} is fixed at {compile time} to some region in the
	{source code} containing the identifier's declaration.  This
	means that an identifier is only accessible within that region
	(including procedures declared within it).

	This contrasts with {dynamic scope} where the scope depends on
	the nesting of {procedure} and {function} calls at {run time}.

	Statically scoped languages differ as to whether the scope is
	limited to the smallest {block} (including {begin}/end blocks)
	containing the identifier's declaration (e.g. {C}, {Perl}) or
	to whole function and procedure bodies (e.g. {ECMAScript}), or
	some larger unit of code (e.g. ?).  The former is known as
	{static nested scope}.

	(2005-07-28)

lexical scoping

	{lexical scope}

lexiphage

	<graphics> /lek'si-fayj"/ A notorious word {chomper},
	implemented and named by John Doty in late 1972 on and {HP}
	calculator and later on {ITS}.  The lexiphage program would
	draw on a selected victim's {bitmapped} terminal the words
	"THE BAG" in ornate letters, followed a pair of jaws biting
	pieces of it off.

	{http://lexiphage.com/)}.

	[{Jargon File}]

	(2002-06-12)

LF

	{Line Feed}

LFIB

	{Label Forwarding Information Base}

LG

	Simple language for analytic geometry, with graphic output.
	"LG: A Language for Analytic Geometry", J. Reymond, CACM 12(8)
	(Aug 1969).

LGDF

	Large-Grain DataFlow.

	["A Large-grain Data Flow Scheduler for Parallel Processing on
	Cyberplus", R.G. Babb et al, Proc 1986 Intl Conf on Parallel
	Proc, Aug 1986].

	(2000-07-07)

LGEN

	A {logic language} for {VLSI} implementation by {S.C. Johnson}
	of {Bell Labs}.

	[S.C. Johnson, "Code Generation for Silicon", Proc 10th POPL,
	1983].

	(1995-02-15)

LGN

	{Linear Graph Notation}

lha

	1. <filename extension> The {filename extension} for a file
	produced by the {shareware} {compression} and {archive}
	software {LHARC}.

	2. <tool> A {compression} program for {MS-DOS}.  Output files
	have the extension ".lzh".

	[Does it use {LZH} compression?]

	(2002-07-28)

LHARC

	<compression, algorithm> A {compression} program developed by
	Rahul Dhesi.  LHARC was later replaced with {LHA}, which
	produces files with extension ".lzh".

	(2002-07-28)

lhs

	<filename extension> The {filename extension} for {literate}
	{Haskell} source files.

	(1995-02-15)

li

	<networking> The {country code} for Liechtenstein.

	(1999-01-27)

Liana

	<language> A {C}-like, interpretive, {object-oriented
	programming} language, {class} library, and integrated
	development environment designed specifically for development
	of {application programs} for {Microsoft Windows} and {Windows
	NT}.  Designed by Jack Krupansky <Jack@BaseTechnology.com> of
	{Base Technology}, Liana was first released as a commercial
	product in August 1991.  The language is designed to be as
	easy to use as {BASIC}, as concise as {C}, and as flexible as
	{Smalltalk}.

	The {OOP} {syntax} of {C++} was chosen over the less familiar
	syntax of {Smalltalk} and {Objective-C} to appeal to {C}
	programmers and in recognition of C++ being the leading OOP
	language.  The syntax is a simplified subset of {C/C++}.  The
	{semantics} are also a simplified subset of C/C++, but
	extended to achieve the flexibility of Smalltalk.

	Liana is a typeless language (like {Lisp}, {Snobol} and
	{Smalltalk}), which means that the datatypes of variables,
	function parameters, and function return values are not needed
	since values carry the type information.  Hence, variables are
	simply containers for values and function parameters are
	simply pipes through which any type of value can flow.
	{Single inheritance}, but not {multiple inheritance}, is
	supported.  {Memory management} is automatic using {reference
	counting}.

	The library includes over 150 {classes}, for {dynamic arrays},
	{associative lookup} tables, windows, menus, dialogs,
	controls, bitmaps, cursors, icons, mouse movement, keyboard
	input, fonts, text and graphics display, {DDE}, and {MDI}.

	Liana provides flexible OOP support for Windows programming.
	For example, a {list box} automatically fills itself from an
	associated {object}.  That object is not some sort of special
	object, but is merely any object that "behaves like" an array
	(i.e., has a "size" member function that returns the number of
	elements, a "get" function that returns the ith element, and
	the text for each element is returned by calling the "text"
	member function for the element).

	A related product, C-odeScript, is an embeddable application
	scripting language.  It is an implementation of Liana which
	can be called from C/C++ applications to dynamically evaluate
	expressions and statement sequences.  This can be used to
	offer the end-user a macro/scripting capability or to allow
	the C/C++ application to be customized without changing the
	C/C++ source code.

	Here's a complete Liana program which illustrates the
	flexibility of the language semantics and the power of the
	class library:

	 main
	 {
	   // Prompt user for a string.
	   // No declaration needed for "x" (becomes a global variable.)
	   x = ask ("Enter a String");

	   // Use "+" operator to concatenate strings. Memory
	   // management for string temporaries is automatic.  The
	   // "message" function displays a Windows message box.
	   message ("You entered: " + x);

	   // Now x will take on a different type.  The "ask_number"
	   // function will return a "real" if the user's input
	   // contains a decimal point or an "int" if no decimal
	   // point.
	   x = ask_number ("Enter a Number");

	   // The "+" operator with a string operand will
	   // automatically convert the other operand to a string.

	   message ("You entered: " + x);

	   // Prompt user for a Liana expression.  Store it in a
	   // local variable (the type, string, is merely for
	   // documentation.)
	   string expr = ask ("Enter an Expression");

	   // Evaluate the expression. The return value of "eval"
	   // could be any type.  The "source_format" member function
	   // converts any value to its source format (e.g., add
	   // quotes for a string.)  The "class_name" member function
	   // return the name of the class of an object/value.
	   // Empty parens can be left off for member function calls.
	   x = eval (expr);
	   message ("The value of " + expr + " is " + x.source_format +
	       " its type is " + x.class_name);
	 }

	The author explained that the "Li" of Liana stands for
	"Language interpreter" and liana are vines that grow up trees
	in tropical forests, which seemed quite appropriate for a tool
	to deal with the complexity of MS Windows!  It is also a
	woman's name.

	["Liana for Windows", Aitken, P., PC TECHNIQUES, Dec/Jan
	1993].

	["Liana: A Language For Writing Windows Programs", Burk, R.,
	Tech Specialist (R&D Publications), Sep 1991].

	["Liana v. 1.0." Hildebrand, J.D., Computer Language, Dec
	1992].

	["Liana: A Windows Programming Language Based on C and C++",
	Krupansky, J., The C Users Journal, Jul 1992].

	["Writing a Multimedia App in Liana", Krupansky, J.,
	Dr. Dobb's Journal, Winter Multimedia Sourcebook 1994].

	["The Liana Programming Language", R. Valdes, Dr Dobbs J Oct
	1993, pp.50-52].

	(1999-06-29)

Liar

	{MIT Scheme}

liar paradox

	<philosophy> A sentence which asserts its own falsity,
	e.g. "This sentence is false" or "I am lying".  These
	paradoxical assertions are meaningless in the sense that there
	is nothing in the world which could serve to either support or
	refute them.  Philosophers, of course, have a great deal more
	to say on the subject.

	["The Liar: an Essay on Truth and Circularity", Jon Barwise
	and John Etchemendy, Oxford University Press (1987). ISBN
	0-19-505944-1 (PBK), Library of Congress BC199.P2B37].

	(1995-02-22)

lib

	<operating system> Library.  In {Unix}, the directories /lib
	and /usr/lib traditionally contain files with {filename
	extension} ".lib" that are special {archives} containing
	modules of standard {object code}.  In modern Unixes the same
	directories contain ".so" (shared object) files, which are
	similar except that the object code they contain is designed
	to be loaded once and shared by all application code that
	needs it, thus saving memory.

	(2008-11-25)

libg++

	<library> The {run-time library} for the {GNU} {C++} compiler,
	{g++}.  Version: 2.5.1 is a superset of {ANSI} and {POSIX.1}.

	libg++ is no longer maintained, use libstd++ instead if
	possible.

	Available by {FTP} from a {GNU archive site}.

	Bug reports: <bug-lib-g++@gnu.org>.

	(2000-04-24)

library

	<programming, library> A collection of {subroutines} and
	{functions} stored in one or more files, usually in compiled
	form, for linking with other programs.  Libraries are one of
	the earliest forms of organised {code reuse}.  They are often
	supplied by the {operating system} or {software development
	environment} developer to be used in many different programs.
	The routines in a library may be general purpose or designed
	for some specific function such as three dimensional animated
	graphics.

	Libraries are linked with the user's program to form a
	complete {executable}.  The linking may be {static linking}
	or, in some systems, {dynamic linking}.

	(1998-11-21)

Library of Efficient Data types and Algorithms

	<library> (LEDA) A {class library} for {C++} of efficient data
	types (e.g. {graph} {classes}) and {algorithms} by Stefan
	N"aher <stefan@mpi-sb.mpg.de> of the {University of
	Saarbruecken}.  Version 3.0 includes both {template} and
	non-template versions.

	{(ftp://ftp.mpi-sb.mpg.de/pub/LEDA)}.

	(1996-04-15)

librery

	<spelling> It's spelled "{library}".

	(1996-12-13)

LIDO

	An input language for the attribute evaluator generator {LIGA}
	(a successor of {GAG} and a subsystem of the {Eli}
	compiler-compiler).  LIDO is derived from GAG's input language
	{ALADIN}.

	["LIDO: A Specification Language for Attribute Grammars",
	U. Kastens <uwe@uni-paderborn.de>, Fab Math-Inf, U Paderborn
	(Oct 1989)].

	(1994-10-20)

LiE

	A {symbolic mathematics} package aimed at {Lie groups}.

	["LiE, a Package for Lie Group Computations", M.A.A. van
	Leeuwen et al, in Computer Algebra Nederland, 1992 (ISBN
	90-741160-02-7)].

	(1994-10-20)

LIF

	1. <hardware> {Low Insertion Force}.

	2. <file format> {Logical Interchange Format}.

	(2003-10-15)

LIFE

	<language> Logic of Inheritance, Functions and Equations.

	An {object-oriented}, {functional}, {constraint}-based
	language by Hassan Ait-Kacy <hak@prl.dec.com> et al of {MCC},
	Austin TX, 1987.  LIFE integrates ideas from {LOGIN} and
	{LeFun}.

	Mailing list: life-users@prl.dec.com.

	See also {Wild_LIFE}.

	["Is There a Meaning to LIFE?", H. Ait-Kacy et al, Intl Conf
	on Logic Prog, 1991].

	[{Jargon File}]

	(1995-04-21)

Life

	<games> The first popular {cellular automata} based
	{artificial life} "game".  Life was invented by British
	mathematician {John Horton Conway} in 1970 and was first
	introduced publicly in "Scientific American" later that year.

	Conway first devised what he called "The Game of Life" and
	"ran" it using plates placed on floor tiles in his house.
	Because of he ran out of floor space and kept stepping on the
	plates, he later moved to doing it on paper or on a
	checkerboard, and then moved to running Life as a computer
	program on a {PDP-7}.  That first implementation of Life as a
	computer program was written by M. J. T. Guy and
	{S. R. Bourne} (the author of {Unix}'s {Bourne shell}).

	Life uses a rectangular grid of binary (live or dead) cells
	each of which is updated at each step according to the
	previous state of its eight neighbours as follows: a live cell
	with less than two, or more than three, live neighbours dies.
	A dead cell with exactly three neighbours becomes alive.
	Other cells do not change.

	While the rules are fairly simple, the patterns that can arise
	are of a complexity resembling that of organic systems -- hence
	the name "Life".

	Many hackers pass through a stage of fascination with Life,
	and hackers at various places contributed heavily to the
	mathematical analysis of this game (most notably {Bill Gosper}
	at {MIT}, who even implemented Life in {TECO}!; see
	{Gosperism}).  When a hacker mentions "life", he is more
	likely to mean this game than the magazine, the breakfast
	cereal, the 1950s-era board game or the human state of
	existence.

	{Yahoo!
	(http://yahoo.com/Science/Artificial_Life/Conway_s_Game_of_Life/)}.

	{Demonstration
	(http://research.digital.com/nsl/projects/life/)}.

	["Scientific American" 223, October 1970, p120-123, 224;
	February 1971 p121-117, Martin Gardner].

	["The Garden in The Machine: the Emerging Science of
	Artificial Life", Claus Emmeche, 1994].

	["Winning Ways, For Your Mathematical Plays", Elwyn
	R. Berlekamp, John Horton Conway and Richard K. Guy, 1982].

	["The Recursive Universe: Cosmic Complexity and the Limits of
	Scientific Knowledge", William Poundstone, 1985].

	[{Jargon File}]

	(1997-09-07)

life

	<jargon> The opposite of {Usenet}.  As in "{Get a life!}"

	[{Jargon File}]

	(1995-04-21)

life-cycle

	{software life-cycle}

Life is hard

	[XEROX PARC] This phrase has two possible interpretations: (1)
	"While your suggestion may have some merit, I will behave as
	though I hadn't heard it."  (2) "While your suggestion has
	obvious merit, equally obvious circumstances prevent it from
	being seriously considered."  The charm of the phrase lies
	precisely in this subtle but important ambiguity.

	[{Jargon File}]

LIFIA

	Laboratoire d'Informatique Fondamentale et d'Intelligence
	Artificielle.

LIFO

	{stack}

lifted domain

	<theory> In {domain theory}, a {domain} with a new {bottom}
	element added.  Given a domain D, the lifted domain, lift D
	contains an element lift d corresponding to each element d in
	D with the same ordering as in D and a new element bottom
	which is less than every other element in lift D.

	In {functional languages}, a lifted domain can be used to
	model a {constructed type}, e.g. the type

		data LiftedInt = K Int

	contains the values K minint .. K maxint and K bottom,
	corresponding to the values in Int, and a new value bottom.
	This denotes the fact that when computing a value v = (K n)
	the computation of either n or v may fail to terminate
	yielding the values (K bottom) or bottom respectively.

	(In LaTeX, a lifted domain or element is indicated by a
	subscript {\perp}).

	See also {tuple}.

LIGHT

	LIfecycle Global HyperText.

	A project in the CERN ECP/TP group whereby documents resulting
	from the {software life cycle} are available as {hypertext}.

	(1995-02-03)

light client

	{thin client}

light-emitting diode

	<electronics> (LED) a type of {diode} that emits light when
	current passes through it.  Depending on the material used the
	colour can be visible or infrared.  LEDs have many uses,
	visible LEDs are used as indicator lights on all sorts of
	electronic devices and in moving-message panels, while
	infrared LEDs are the heart of remote control devices.

	See also {smoke-emitting diode}.

	(1996-01-05)

light-emitting resistor

	<electronics, humour> (LER, from "{light-emitting diode}") A
	{resistor} in the final stages of burning up.

	(Though intended as purely humorous, the term could sensibly
	describe the filament of a common incandescent electric light
	bulb).

	See also {SED}.

	(1996-02-06)

light pen

	<hardware> An early {pointing device} which the user pointed
	at a {raster}-scanned display screen.  A {photocell} in the
	pen detected the flying spot of the raster scan.  The position
	of the spot at that instant, obtained from the scanning
	electronics, was made available to software as (x, y)
	co-ordinates.

	(2003-12-02)

light pipe

	{optical fibre}

light-weight

	<jargon> Opposite of {heavy-weight}; usually found in
	combining forms such as "{light-weight process}".

	[{Jargon File}]

	(1996-02-22)

Lightweight Directory Access Protocol

	<protocol> (LDAP) A {protocol} for accessing on-line
	{directory services}.

	LDAP was defined by the {IETF} in order to encourage adoption
	of {X.500} directories.  The {Directory Access Protocol} (DAP)
	was seen as too complex for simple {internet clients} to use.
	LDAP defines a relatively simple protocol for updating and
	searching directories running over {TCP/IP}.

	LDAP is gaining support from vendors such as {Netscape},
	{Novell}, {Sun}, {HP}, {IBM}/Lotus, {SGI}, {AT&T}, and
	{Banyan}

	An LDAP directory entry is a collection of attributes with a
	name, called a distinguished name (DN).  The DN refers to the
	entry unambiguously.  Each of the entry's attributes has a
	{type} and one or more values.  The types are typically
	mnemonic strings, like "cn" for common name, or "mail" for
	{e-mail address}.  The values depend on the type.  For
	example, a mail attribute might contain the value
	"donald.duck@disney.com".  A jpegPhoto attribute would contain
	a photograph in binary {JPEG}/{JFIF} format.

	LDAP directory entries are arranged in a {hierarchical}
	structure that reflects political, geographic, and/or
	organisational boundaries.  Entries representing countries
	appear at the top of the tree.  Below them are entries
	representing states or national organisations.  Below them
	might be entries representing people, organisational units,
	printers, documents, or just about anything else.

	{RFC 1777}, {RFC 1778}, {RFC 1959}, {RFC 1960}, {RFC 1823}.

	{LDAP v3
	(http://kingsmountain.com/LDAPRoadmap/CurrentState.html)}.

	[Difference v1, v2, v3?]

	(2003-09-27)

light-weight process

	<operating system, parallel> (LWP) A single-threaded
	sub-process which, unlike a {thread}, has its own {process
	identifier} and may also differ in its inheritance and
	controlling features.

	Several {operating systems}, e.g. {SunOS} 5.x, provide {system
	calls} for creating and controlling LWPs.

	(1996-02-22)

like kicking dead whales down the beach

	{kicking dead whales down the beach}

like nailing jelly to a tree

	<jargon, humour> Used to describe a task thought to be
	impossible, especially one in which the difficulty arises from
	poor specification or inherent slipperiness in the problem
	domain.  "Trying to display the "prettiest" arrangement of
	nodes and arcs that diagrams a given graph is like nailing
	jelly to a tree, because nobody's sure what "prettiest" means
	algorithmically."

	[{Jargon File}]

	(1997-12-23)

like this

	You weren't supposed to follow that link, it was just an
	example of what a link looks like.

Lila

	Patrick Salle'<salle@geocub.greco-prog.fr>.  A small
	assembly-like language used for implementation of Actor
	languages.  [Plasma perhaps?].

Lilith

	<computer> The {workstation} for which {Modula-2} was
	developed as the system language.

	[Details?]

	(1995-10-25)

LILLIAC IV

	<computer> A {supercomputer} designed in the late 1960s at the
	{University of Illinois} which had 64 separate {CPUs} all
	supervised by a common control unit and all capable of
	operating simultaneously.

	(1996-11-25)

lilo

	1. <operating system> {Linux Loader}.

	2. {first-in first-out}.

	(2001-03-26)

Lily

	(LIsp LibrarY) A {C++} {class} library by Roger Sheldon
	<sheldon@kong.gsfc.nasa.gov> which gives C++ programmers the
	capability to write {Lisp}-style code.  Lily's {garbage
	collection} mechanism is not sufficient for commercial use
	however and the documentation is incomplete.  It is
	distributed under the {GNU} Library {General Public License}.

	Version: 0.1.

	{(ftp://sunsite.unc.edu/uploads/lily-0.1.tar.gz)}.

	(1993-11-08)

LIMDEP

	A {linear programming} language used by economists.

LIM EMS

	{Expanded Memory Specification}

LIMP

	["Messages in Typed Languages", J. Hunt et al, SIGPLAN Notices
	14(1):27-45 (Jan 1979)].

Linc

	1. <language> A {Burroughs}/{Unisys} {4GL} designed in New
	Zealand.

	2. {Laboratory Instrument Computer}.

	(1999-03-29)

Lincoln Reckoner

	An interactive mathematics program including matrix
	operations, written about 1965.  It ran on the {TX-2}.

	["The Lincoln Reckonere: An Operation-Oriented On-line
	Facility with Distributed Control", A.N. Stowe et al, Proc
	FJCC 29 (1966)].

	[Sammet 1969, pp. 245-247].

LINCtape

	<storage> A formatted, block-oriented, high-reliability,
	{random access} tape system used on the {Laboratory Instrument
	Computer}.  The tape was 3/4" wide.

	The funny {DECtape} is actually a variant of the original
	LINCtape.  According to {Wesley Clark}, DEC tried to "improve"
	the LINCtape system, which mechanically, was wonderfully
	simple and elegant.  The DEC version had pressure fingers and
	tape guides to force alignment as well as huge {DC} servo
	motors and complex control circuitry.  These literally
	shredded the tape to bits if not carefully adjusted, and
	required frequent cleaning to remove all the shedded tape
	oxide.  That was amazing, because the tape had a micro-thin
	plastic layer OVER the oxide to protect it.  What happened was
	that all the forced alignment stuff caused shredding at the
	edge.

	An independent company, Computer Operations[?], built LINCtape
	drives for use in nuclear submarines.  This was based on the
	tape system's high reliability.  Correspondent Brian Converse
	has a picture of himself holding a LINCtape punched full of
	1/4" holes.  It still worked!

	(1999-03-29)

Linda

	<language> A "coordination language" from {Yale}, providing a
	model for {concurrency} with communication via a shared
	{tuple} space.  Linda is usually implemented as a subroutine
	library for a specific base language, as in {C-Linda},
	{Fortran-Linda}, {LindaLISP} and {Prolog-Linda}.  It is
	available from {Scientific Computing Associates, Inc.}  [What
	is?]

	{(http://cs.yale.edu/HTML/YALE/CS/Linda/linda.html)}.

	There is a {Multi-BinProlog} Linda implementation available by
	{(ftp://clement.info.umoncton.ca/)}.

	["Generative Communication in Linda", D. Gelernter
	<gelernter@cs.yale.edu>, ACM TOPLAS 7(1):80-112 (1985)].

	["Linda in Context", N. Carreiro et al, Yale U., CACM
	32(4):444-458, Apr 1989].

	See also {Ease}, {Lucinda}, {Melinda}.

	(2000-07-07)

LindaLISP

	{Linda} for {Lisp}.

line

	1. <hardware> An electrical conductor.  For distances larger
	than a breadbox, a single line may consist of two electrical
	conductors in twisted, parallel, or concentric arrangement
	used to transport one logical signal.

	By extension, a (usually physical) medium such as an {optical
	fibre} which carries a signal.

	(1995-09-29)

line 666

	<jargon> (Christian eschatological myth) The notional line of
	source at which a program fails for obscure reasons, implying
	either that *somebody* is out to get it (when you are the
	programmer), or that it richly deserves to be got (when you
	are not).

	E.g. "It works when I trace through it, but seems to crash on
	line 666 when I run it."  "What happens is that whenever a
	large batch comes through, mmdf dies on the Line of the Beast.
	Probably some twit {hard-coded} a buffer size."

	[{Jargon File}]

	(1999-03-01)

linear address space

	A memory addressing scheme used in processors where the whole
	memory can be accessed using a single address that fits in a
	single register or instruction.  This contrasts with a
	{segmented memory} architecture, such as that used on the
	{Intel 8086}, where an address is given by an offset from a
	base address held in one of the "segment registers".  Linear
	addressing greatly simplifies programming at the {assembly
	language} level but requires more instruction word bits to be
	allocated for an address.

	(1995-02-16)

linear argument

	<theory> A function argument which is used exactly once by the
	function.

	If the argument is used at most once then it is safe to
	{inline} the function and replace the single occurrence of the
	formal parameter with the actual argument expression.  If the
	argument was used more than once this transformation would
	duplicate the argument expression, causing it to be evaluated
	more than once.

	If the argument is sure to be used at least once then it is
	safe to evaluate it in advance (see {strictness analysis})
	whereas if the argument was not used then this would waste
	work and might prevent the program from terminating.

	(1994-11-03)

linear assignment

	{assignment problem}

linear function

	A {recursive} function is linear if it is of the form

		f x = if p x then q x else h f x

	where h is a "linear functional" which means that

	(1) for all functions, a, b c and some function ht

		h (if a then b else c) = if ht a then h b else h c

	Function ht is known as the "predicate transformer" of h.

	(2) If for some x,

		h (\ y . bottom) x  /=  bottom

	then

		for all g,  ht g x  =  True.

	I.e. if h g x terminates despite g x not terminating then ht g
	x doesn't depend on g.

	See also {linear argument}.

	(1995-02-15)

Linear Graph Notation

	(LGN) A linearised representation of {TCOL} trees.

	[B.W. Leverett et al, "An Overview of the Production Quality
	Compiler-Compiler Projects", TR CMU-CS-79-105, Carnegie Mellon
	1979].

	(1995-01-23)

linear logic

	<theory> A {logic} invented by Girard in 1987 that can be used
	in proofs related to resource usage.

	{(http://brics.dk/LS/96/6/BRICS-LS-96-6/BRICS-LS-96-6.html)}.

	[Wadler, P., "Is there a use for linear logic", ACM/IFIP PEPM
	Conference, 1991].

	[Summary?]

	(2003-05-02)

linear map

	<mathematics> (Or "linear transformation") A {function} from a
	{vector space} to a vector space which respects the {additive}
	and {multiplicative} structures of the two: that is, for any
	two {vectors}, u, v, in the source vector space and any
	scalar, k, in the {field} over which it is a vector space, a
	linear map f satisfies f(u+kv) = f(u) + kf(v).

	(1996-09-30)

linear programming

	<application> A procedure for finding the maximum or minimum
	of a {linear function} where the arguments are subject to
	linear {constraints}.  The {simplex method} is one well known
	{algorithm}.

	(1995-04-06)

linear space

	<mathematics> A {vector space} where all {linear combinations}
	of elements are also elements of the space.  This is easy for
	spaces of numbers but not for a space of functions.  Roughly,
	this is to say that multiplication by numbers, and addition of
	elements is defined in the space.

	(2000-03-10)

linear topology

	<algebra> A linear topology on a {left A-module} M is a {topology}
	on M that is invariant under translations and admits a
	{fundamental system of neighborhood} of 0 that consists of
	{submodules} of M.  If there is such a topology, M is said to be
	linearly topologized.  If A is given a {discrete topology}, then M
	becomes a topological A-module with respect to a linear topology.

	[Wikipedia]

	(2014-06-30)

linear transformation

	{linear map}

linear type

	1. <theory, programming> An attribute of values which are used
	exactly once: they are neither duplicated nor destroyed.  Such
	values require no {garbage collection}, and can safely be
	updated in place, even if they form part of a data structure.

	Linear types are related to the {linear logic} of J.-Y Girard.
	They extend Schmidt's notion of {single threading}, provide an
	alternative to Hudak and Bloss' {update analysis}, and offer a
	practical complement to Lafont and Holmström's elegant {linear
	languages}.

	['Use-Once' Variables and Linear Objects - Storage Management,
	Reflection and Multi-Threading, Henry Baker.
	{(http://home.pipeline.com/~hbaker1/Use1Var.html)}].

	["Linear types can change the world!", Philip Wadler,
	"Programming Concepts and Methods", April 1990, eds. M. Broy,
	C. Jones, pub. North-Holland, IFIP TC2 Working Conference on
	Programming Concepts and Methods, Sea of Galilee, Israel].

	(1995-03-03)

line conditioning

	<communications> The adjustment of electrical characteristics
	of, e.g., {twisted pair} telephone lines by insertion of
	components such as resistors, capacitors, transformers or
	(commonly) inductors.  Lines intended for analogue voice
	signals usually have inductors inserted every few miles; such
	a line is said to be "loaded".

	The special purpose lines which have neither inductors nor the
	DC voltage which powers ordinary telephones are said to be
	"dry," and are much better for data transmission.

	(1996-04-07)

line eater

	<messaging> 1. A {bug} in some now-obsolete versions of the
	{Usenet} software that used to eat up to {BUFSIZ} bytes of the
	article text.  The bug was triggered by having the text of the
	article start with a space or tab.  This bug was quickly
	personified as a mythical creature called the "line eater",
	and postings often included a dummy line of "line eater food".
	Ironically, line eater "food" not beginning with a space or
	tab wasn't actually eaten, since the bug was avoided; but if
	there *was* a space or tab before it, then the line eater
	would eat the food *and* the beginning of the text it was
	supposed to be protecting.  The practice of "sacrificing to
	the line eater" continued for some time after the bug had been
	{nailed to the wall}, and is still humorously referred to.
	The bug itself is still (in mid-1991) occasionally reported to
	be lurking in some mail-to-netnews {gateways}.

	2. {NSA line eater}.

	(1996-04-09)

line editor

	<tool, text> An early kind of {text editor} suited to use on a
	{teletype}.  The user enters editing commands which apply to
	the current line or some given range of lines.  These include
	moving forward and backward through the buffer, inserting and
	deleting lines, substituting a string for a pattern match, and
	printing lines.  Visual feedback is restricted to explicitly
	requesting the display of one or more lines, in contrast to a
	{screen editor}.

	{ed} is {Unix}'s line editor.

	(1999-03-01)

line feed

	<character> (LF, control-J, {ASCII} 10) The {ASCII} character
	meaning move the {cursor} down to the same column on the next
	line.  Originally this would have been done by "feeding" paper
	through the printer.

	{Unix} uses line feed as its text line terminator ({newline}
	character).

	(1997-07-14)

line noise

	<communications> 1. Spurious characters due to electrical
	{noise} in a communications link, especially an {EIA-232}
	serial connection.  Line noise may be induced by poor
	connections, interference or {crosstalk} from other circuits,
	electrical storms, {cosmic rays}, or (notionally) birds
	crapping on the phone wires.

	2. Any chunk of data in a file or elsewhere that looks like
	the results of electrical line noise.

	3. Text that is theoretically a readable text or program
	source but employs {syntax} so bizarre that it looks like line
	noise.  Yes, there are languages this ugly.  The canonical
	example is {TECO}, whose input syntax is often said to be
	indistinguishable from line noise.  Other non-{WYSIWYG}
	editors, such as {Multics} "{qed}" and {Unix} "{ed}", in the
	hands of a real hacker, also qualify easily, as do
	deliberately {obfuscate}d languages such as {INTERCAL}.

	[{Jargon File}]

	(1994-12-22)

line printer

	<printer> A {printer} that prints one entire line at a time.
	Print quality is low compared with a {laser printer}.  Line
	printers typically use {sprocket feed} and wide fanfold paper.

	Line printer speed is usually measured in lines per minute
	(lpm).  1200 lpm is a good rate for a line printer like a 3205
	m5.  66 lines per page is typical, giving 18 pages per minute
	(ppm).  This assumes all upper case, if a mixed case print
	train is used, throughput is halved.  By comparison, a fast
	{laser printer} can output 100+ ppm

	(1999-01-13)

line probing

	A feature of some {V.34} {modems} that will allow them to
	identify the capacity and quality of the phone line and adjust
	themselves to allow, for each individual connection, for
	maximum throughput using the highest possible data
	transmission rate.

	(1994-06-09)

lines of code

	<programming, unit> (LOC) A common measure of the size or
	progress of a programming project.  For example, one can
	describe a completed project as consisting of 100,000 LOC; or
	one can characterise a week's progress as 5000 LOC.

	Using LOC as a metric of progress encourages programmers to
	{reinvent the wheel} or split their code into lots of short
	lines.

	(2001-05-28)

lines per minute

	<unit> (lpm) A unit used to measure {line printer} throughput.

	(1999-01-13)

line starve

	(MIT, opposite of {line feed}) 1. To feed paper through a
	printer the wrong way by one line (most printers can't do
	this).  On a display terminal, to move the cursor up to the
	previous line of the screen.  "To print "X squared", you just
	output "X", line starve, "2", line feed."  (The line starve
	causes the "2" to appear on the line above the "X", and the
	line feed gets back to the original line.)

	2. A character (or character sequence) that causes a terminal
	to perform this action.  ASCII 26, also called SUB or
	control-Z, was one common line-starve character in the days
	before {microcomputers} and the {X3.64} terminal standard.
	Unlike "line feed", "line starve" is *not* standard {ASCII}
	terminology.  Even among hackers it is considered silly.

	3. (Proposed) A sequence such as \c (used in {System V}
	{echo}, as well as {nroff} and {troff}) that suppresses a
	{newline} or other character(s) that would normally be
	emitted.

	[{Jargon File}]

	(1995-02-03)

Lingo

	An animation scripting language.

	[MacroMind Director V3.0 Interactivity Manual, MacroMind
	1991].

LINGOL

	LINguistics Oriented Language.  Natural language processing.

	["A Linguistics Oriented Programming Language", V.R. Pratt,
	Third Intl Joint Conf on AI, 1973].

link

	1. <file system> {hard link} or {symbolic link}.

	2. <hypertext> {hypertext link}.

	(1997-10-22)

Link Access Procedure on the D channel

	(LAPD) (Q.921).  An {Integrated Services Digital Network}
	{data link layer} protocol.

Link Access Protocol Balanced

	<protocol> (LAPB) {X.25} layer 2 ({data link layer})
	{protocol}.

	[Details?]

	(1996-01-22)

Link Access Protocol for Modems

	(LAPM) The {Automatic Repeat Request} system used in the
	{V.42} {protocol}.

linkage editor

	{linker}

Link Control Protocol

	<protocol> A {protocol} used to automatically agree upon
	{encapsulation} format options, handle varying packet size
	limits, authenticate the identity of its {peer} on the link,
	determine when a link is functioning properly and when it is
	defunct, detect a looped-back link and other common
	misconfiguration errors, and terminate the link.

	[RFC 1570].

	(1997-05-10)

link-dead

	Said of a {MUD} character who has frozen in place because of a
	dropped network connection.

	[{Jargon File}]

	(1995-01-24)

link editor

	{linker}

linked list

	<programming> A data structure in which each element contains
	a pointer to the next element, thus forming a linear list.

	A doubly linked list contains pointers to both the next and
	previous elements.

	(1995-03-28)

linker

	<programming, tool> (link editor, linkage editor, link loader)
	A program that combines one or more files containing {object
	code} from separately compiled program {modules} into a single
	file containing loadable or executable code

	This process involves resolving references between the
	{modules} and fixing the {relocation} information used by the
	operating system {kernel} when loading the file into memory to
	run it.

	Under {Unix}, the linker is called "ld" and {object files}
	have filename extension .o (object), .so (shared object), or
	.lib ({library}), and the resulting {executable} is called
	"a.out" by default.

	(2001-10-13)

link farm

	<file system, Unix> A directory tree that contains mostly
	{symbolic links} to files in a master directory tree of files.
	Link farms save space when one is maintaining several nearly
	identical copies of the same source tree - for example, when
	the only difference is architecture-dependent object files.
	They also mean that changes to the master tree are instantly
	visible in the link farm.  Good {text editors} provide the
	option to replace a link with a new version of the target file
	when saving thus allowing the farm to have its own versions of
	just those files that differ from the master tree.

	E.g. "Let's freeze the source and then rebuild the FROBOZZ-3
	and FROBOZZ-4 link farms."

	Link farms may also be used to get around restrictions on the
	number of "-I" (include-file directory) arguments on older C
	preprocessors.  However, they can also get completely out of
	hand, becoming the file system equivalent of {spaghetti code}.

	[{Jargon File}]

	(2001-02-08)

link loader

	{linker}

link rot

	<World-Wide Web> The process by which links on a {web page}
	became unusable as the pages they point to change location or
	are removed.

	(1997-03-29)

links

	{link}

Link State Routing Protocol

	<networking, communications> A {routing} {protocol} such as
	{OSPF} which permits routers to exchange information with one
	another about the reachability of other networks and the cost
	or metric to reach the other networks.

	The cost/metric is based on number of {hops}, link speeds,
	traffic congestion, and other factors as determined by the
	network designer.  Link state routers use {Dijkstra's
	algorithm} to calculate shortest (lowest cost) paths, and
	normally update other routers with whom they are connected
	only when their own routing tables change.

	Link state routing is an improvement over {distance-vector
	routing} protocols such as {RIP} which normally use only a
	single metric (such as hop count) and which exchange all of
	their table information with all other routers on a regular
	schedule.  Link state routing normally requires more
	processing but less transmission overhead.

	(2000-03-14)

LINPACK

	1. A package of {linear algebra} routines.

	2. The kernel {benchmark} developed from the "LINPACK" package
	of linear algebra routines.  It was written by Jack Dongarra
	<dongarra@cs.utk.edu> in {Fortran} and is commonly used in
	that language but there is also a {C} version.

	Source Code by FTP: {single precision Fortran
	(ftp://netlib.att.com/netlib/benchmark/linpacks.Z)},
	{double precision Fortran
	(ftp://netlib.att.com/netlib/benchmark/linpackd.Z)},
	{C (ftp://netlib.att.com:/netlib/benchmark/linpackc.Z)}.

	{Results
	(http://performance.netlib.org/performance/html/linpack.data.col0.html)}.

	(1994-11-14)

lint

	A {Unix} {C} language processor which carries out more
	thorough checks on the code than is usual with C {compilers}.

	Lint is named after the bits of fluff it supposedly picks from
	programs.  Judging by references on {Usenet} this term has
	become a shorthand for {desk check} at some non-Unix shops,
	even in languages other than {C}.  Also used as {delint}.

	[{Jargon File}]

	(1994-11-14)

Linux

	<operating system> ("Linus Unix") /li'nuks/ (but see below)
	An implementation of the {Unix} {kernel} originally written
	from scratch with no proprietary code.

	The kernel runs on {Intel} and {Alpha} hardware in the general
	release, with {SPARC}, {PowerPC}, {MIPS}, {ARM}, {Amiga},
	{Atari}, and {SGI} in active development.  The SPARC, PowerPC,
	ARM, {PowerMAC} - {OSF}, and 68k ports all support {shells},
	{X} and {networking}.  The Intel and SPARC versions have
	reliable {symmetric multiprocessing}.

	Work on the kernel is coordinated by Linus Torvalds, who holds
	the copyright on a large part of it.  The rest of the
	copyright is held by a large number of other contributors (or
	their employers).  Regardless of the copyright ownerships, the
	kernel as a whole is available under the {GNU} {General Public
	License}.  The GNU project supports Linux as its kernel until
	the research {Hurd} kernel is completed.

	This kernel would be no use without {application programs}.
	The GNU project has provided large numbers of quality tools,
	and together with other {public domain} software it is a rich
	Unix environment.  A compilation of the Linux kernel and these
	tools is known as a Linux distribution.  Compatibility modules
	and/or {emulators} exist for dozens of other computing
	environments.

	The kernel version numbers are significant: the odd numbered
	series (e.g. 1.3.xx) is the development (or beta) kernel which
	evolves very quickly.  Stable (or release) kernels have even
	major version numbers (e.g. 1.2.xx).

	There is a lot of commercial support for and use of Linux,
	both by hardware companies such as {Digital}, {IBM}, and
	{Apple} and numerous smaller network and integration
	specialists.  There are many commercially supported
	distributions which are generally entirely under the GPL.  At
	least one distribution vendor guarantees {Posix} compliance.
	Linux is particularly popular for {Internet Service
	Providers}, and there are ports to both parallel
	supercomputers and {embedded} {microcontrollers}.  {Debian} is
	one popular {open source} distribution.

	The pronunciation of "Linux" has been a matter of much debate.
	Many, including Torvalds, insist on the short I pronunciation
	/li'nuks/ because "Linus" has an /ee/ sound in Swedish
	(Linus's family is part of Finland's 6% ethnic-Swedish
	minority) and Linus considers English short /i/ to be closer
	to /ee/ than English long /i:/ dipthong.  This is consistent
	with the short I in words like "linen".  This doesn't stop
	others demanding a long I /li:'nuks/ following the english
	pronunciation of "Linus" and "minus".  Others say /li'niks/
	following {Minix}, which Torvalds was working on before Linux.

	{More on pronunciation
	(http://foldoc.org/pub/misc/linux-pronunciation)}.

	{LinuxHQ (http://linuxhq.com/)}.  {slashdot
	(http://slashdot.org/)}.  {freshmeat (http://freshmeat.net/)}.
	{Woven Goods (http://fokus.gmd.de/linux/)}.  {Linux
	Gazette (http://ssc.com/lg)}.

	{funet Linux Archive (ftp://ftp.funet.fi/pub/Linux)}, {US
	mirror (ftp://sunsite.unc.edu/pub/Linux/)}, {UK Mirror
	(ftp://sunsite.doc.ic.ac.uk/packages/Linux/)}.

	(2000-06-09)

Linux Documentation Project

	<project> (LDP) A team of volunteers developing documentation
	for the {Linux} {operating system}.  The LDP aims to handle
	all of the issues of Linux documentation, ranging from on-line
	documentation to printed manuals, covering topics such as
	installing, using, and running Linux.  The LDP has no central
	organisation; anyone can join in.

	{(http://metalab.unc.edu/LDP/)}.

	(1999-06-10)

Linux Loader

	<operating system> (LILO) A {boot loader} for {Linux}.  LILO
	does not depend on a specific {file system}, it can boot Linux
	{kernel images} from {floppy disks} and {hard disks} and can
	even boot other {operating systems}.  One of up to sixteen
	differernt images can be selected at {boot time}.  Various
	{parameters}, such as the {root device}, can be set
	independantly for each kernel.  LILO can even be used as the
	{master boot record}.

	(2006-09-12)

Linux Network Administrators' Guide

	(NAG) A book on setting up and running {Unix} networks.  NAG
	is freely available in electronic form.  It was produced by
	Olaf Kirch, <okir@monad.swb.de> and others as part of the
	{Linux Documentation Project} with help from {O'Reilly and
	Associates}.

	It includes the following sections: Introduction to
	Networking, Issues of {TCP/IP} Networking, Configuring the
	Networking Hardware, Setting up the Serial Hardware,
	Configuring TCP/IP Networking, {Name Service} and {Resolver}
	Configuraton, {Serial Line IP}, The {Point-to-Point Protocol},
	Various Network Applications, The {Network Information
	System}, The {Network File System}, Managing {Taylor UUCP},
	{Electronic Mail}, Getting {smail} Up and Running,
	{Sendmail+IDA}, {Netnews}, {C} News, A Description of NNTP,
	Newsreader Configuration, Glossary, Annotated Bibliography.

	{FTP from UNC (ftp://sunsite.unc.edu/pub/Linux/docs/LDP)}.
	{FTP from MIT (ftp://tsx-11.mit.edu/pub/linux/docs/LDP)}.

	(1994-12-01)

Linux User Group

	<body, Linux> (LUG) Any organisation of {Linux} users in a
	local area, university, etc., that offers mutual technical
	support, companionship with people of similar interests, and
	promotes the use of Linux among computer users generally.

	LUGs often hold Install Fests for the general public, in which
	experienced Linux users explain and supervise the installation
	of Linux on new users' systems.

	(2003-09-14)

lion food

	<humour> (IBM) Middle management or HQ staff, or, by
	extension, administrative drones in general.  The term derives
	from an old joke:

	Two lions escape from the zoo and split up to increase their
	chances.  When they finally meet after two months, one is
	skinny and the other overweight.  The thin one says, "How did
	you manage?  I ate a human just once and they turned out a
	small army to chase me with guns and nets, it was terrible.
	Since then I've been reduced to eating mice, insects, even
	grass."  The fat one replies: "Well, *I* hid near an IBM
	office and ate a manager every day.  Nobody even noticed!"

	[{Jargon File}]

	(1994-12-01)

Lions Book

	<publication> "Source Code and Commentary on Unix level 6", by
	John Lions.

	The two parts of this book contained the entire source listing
	of the {Unix} Version 6 {kernel}, and a commentary on the
	source discussing the {algorithms}.  These were circulated
	internally at the {University of New South Wales} beginning
	1976-77, and were, for years after, the *only* detailed kernel
	documentation available to anyone outside {Bell Labs}.
	Because {Western Electric} wished to maintain trade secret
	status on the kernel, the Lions book was never formally
	published and was only supposed to be distributed to
	affiliates of source licensees (it is still possible to get a
	Bell Labs reprint of the book by sending a copy of a V6 {source
	licence} to the right person at {Bellcore}, but *real* insiders
	have the UNSW edition).  In spite of this, it soon spread by
	{samizdat} to a good many of the early Unix hackers.

	{(http://peer-to-peer.com/catalog/history/lions.html)}.

	In 1996 it was reprinted as a "classic":

	[John Lions, "Lions' Comentary on UNIX 6th Edition with Source
	Code", Computer Classics Revisited Series, Peer-to-Peer
	Communications, 1996, ISBN 1-57398-013-7].

	[{Jargon File}]

	(1997-06-25)

LIPL

	Linear IPL.

	A linearised (i.e. horizontal format) version of IPL-V.

	[Sammet 1969, p. 394].

	[R. Dupchak, "LIPL - Linear Information Processing Language",
	Rand Memo RM-4320-PR, Feb 1965].

	(1994-12-01)

liquid crystal display

	<hardware> (LCD) An electro-optical device used to display
	digits, characters or images, commonly used in digital
	watches, calculators, and portable computers.

	The heart of the liquid crystal display is a piece of {liquid
	crystal} material placed between a pair of transparent
	{electrodes}.  The liquid crystal changes the phase of the
	light passing through it and this phase change can be
	controlled by the {voltage} applied between the electrodes.
	If such a unit is placed between a pair of {plane polariser}
	plates then light can pass through it only if the correct
	voltage is applied.  Liquid crystal displays are formed by
	integrating a number of such cells, or more usually, by using
	a single liquid crystal plate and a pattern of electrodes.

	The simplest kind of liquid crystal displays, those used in
	digital watches and calculators, contain a common electrode
	plane covering one side and a pattern of electrodes on the
	other.  These electrodes can be individually controlled to
	produce the appropriate display.  Computer displays, however,
	require far too many pixels (typically between 50,000 and
	several millions) to make this scheme, in particular its
	wiring, feasible.  The electrodes are therefore replaced by a
	number of row electrodes on one side and column electrodes on
	the other.  By applying voltage to one row and several columns
	the {pixels} at the intersections are set.

	The pixels being set one row after the other, in {passive
	matrix} displays the number of rows is limited by the ratio of
	the setting and fading times.  In the setup described above
	(known as "{twisted nematic}") the number of rows is limited
	to about 20.  Using an alternative "{supertwisted nematic}"
	setup {VGA} quality displays (480 rows) can be easily built.
	As of 1995 most {notebook computers} used this technique.

	Fading can be slowed by putting an active element, such as a
	{transistor}, on the top of each pixel.  This "remembers" the
	setting of that pixel.  These {active matrix} displays are of
	much better quality (as good as {CRTs}) but are much more
	expensive than the passive matrix displays.

	LCDs are slimmer, lighter and consume less power than the
	previous dominant display type, the {cathode ray tube}, hence
	their importance for {portable computers}.

	(1995-12-09)

LIS

	Langage Implementation Systeme.

	A predecessor of {Ada} developed by Ichbiah in 1973.  It was
	influenced by {Pascal}'s data structures and {Sue}'s control
	structures.  A type declaration can have a low-level
	implementation specification.

	["The System Implementation Language LIS", J.D. Ichbiah et al,
	CII Honeywell-Bull, TR 4549 E/EN, Louveciennes France (Dec
	1974)].

	["The Two-Level Approach to Data Independent Programming in
	LIS", J.D. Ichbiah et al, in Machine Oriented Higher Level
	Languages, W. van der Poel ed, N-H 1974, pp.161-169].

	(1994-12-01)

LISA

	1. <computer> Local Integrated Software Architecture.

	A {personal computer} introduced by {Apple Computer, Inc.} in
	1983.  The LISA was a predecessor of the {Macintosh} and was
	the first personal computer on the market with a {graphical
	user interface}.

	It was origionally named after {Steve Jobs}'s daughter.  The
	acronym was applied later.

	[Spec?]

	2. <tool> A system for statistical data analysis, similar to
	{S}.

	{FTP MIT (ftp://dolphin.mit.edu/)}.

	3. <event> {Large Installation Systems Administration}.

	(2001-10-16)

Liskov, Barbara

	{Barbara Liskov}

Liskov substitution principle

	<programming, theory> (LSP) The principle that
	{object-oriented} {functions} that use {pointers} or
	references to a {base class} must be able to use {objects} of
	a {derived class} without knowing it.

	{Barbara Liskov} first wrote it as follows: If for each object
	o1 of type S there is an object o2 of type T such that for all
	programs P defined in terms of T, the behaviour of P is
	unchanged when o1 is substituted for o2 then S is a {subtype}
	of T.

	A function that violates the LSP uses a reference to a base
	class and must know about all the derivatives of that base
	class.  Such a function violates the {open/closed principle}
	because it must be modified whenever a new derivative of the
	base class is created.

	[Liskov, B. Data Abstraction and Hierarchy, SIGPLAN
	Notices. 23(5), May 1988].

	(2001-09-14)

Lisp

	<language> LISt Processing language.

	(Or mythically "Lots of Irritating Superfluous Parentheses").
	{Artificial Intelligence}'s mother tongue, a symbolic,
	{functional}, {recursive} language based on the ideas of
	{lambda-calculus}, variable-length lists and trees as
	fundamental data types and the interpretation of code as data
	and vice-versa.

	Data objects in Lisp are lists and {atoms}.  Lists may contain
	lists and atoms.  Atoms are either numbers or symbols.
	Programs in Lisp are themselves lists of symbols which can be
	treated as data.  Most implementations of Lisp allow functions
	with {side-effects} but there is a core of Lisp which is
	{purely functional}.

	All Lisp functions and programs are expressions that return
	values; this, together with the high memory use of Lisp, gave
	rise to {Alan Perlis}'s famous quip (itself a take on an Oscar
	Wilde quote) that "Lisp programmers know the value of
	everything and the cost of nothing".

	The original version was {LISP 1}, invented by {John McCarthy}
	<jmc@sail.stanford.edu> at {MIT} in the late 1950s.  Lisp is
	actually older than any other {high level language} still in
	use except {Fortran}.  Accordingly, it has undergone
	considerable change over the years.  Modern variants are quite
	different in detail.  The dominant {HLL} among hackers until
	the early 1980s, Lisp now shares the throne with {C}.  See
	{languages of choice}.

	One significant application for Lisp has been as a proof by
	example that most newer languages, such as {COBOL} and {Ada},
	are full of unnecessary {crocks}.  When the {Right Thing} has
	already been done once, there is no justification for
	{bogosity} in newer languages.

	See also {Association of Lisp Users}, {Common Lisp}, {Franz
	Lisp}, {MacLisp}, {Portable Standard Lisp}, {Interlisp},
	{Scheme}, {ELisp}, {Kamin's interpreters}.

	[{Jargon File}]

	(1995-04-16)

*LISP

	(StarLISP) A {data-parallel} extension of {Common LISP} for
	the {Connection Machine}, uses "{pvars}".

	{A *LISP simulator
	(ftp://think.com/public/starsim-f19-sharfile)}.

	E-mail: <customer-support@think.com>,
	<documentation-order@think.com>.

	[Cliff Lasser, Jeff Mincy, J.P. Massar, Thinking Machines
	Corporation  "The Essential *LISP Manual", TM Corp 1986].

	[{Jargon File}]

LISP 1

	The original {Lisp}.  Invented by John McCarthy et al at {MIT}
	in the late 50's.  Followed by {LISP 1.5}.

LISP 1.5

	The second version of {Lisp}, successor to {LISP 1}.
	Developed at {MIT} in 1959.  Followed by LISP 1.75, LISP 1.9,
	{Lisp 2} and many other versions.

LISP 2

	{LISP 1.5} with an {ALGOL 60}-like surface syntax.  Also
	optional type declarations, new data types including
	integer-indexed {arrays} and character strings, partial-word
	extraction/insertion operators and {macros}.  A
	{pattern-matching} facility similar to {COMIT} was proposed.
	Implemented for the {Q-32} computer.

	["The LISP 2 Programming Language and System", P.W.  Abrahams
	et al, Proc FJCC 29:661-676, AFIPS (Fall 1966).]

LISP70

	A {Lisp} dialect descended from {MLISP} and {MLISP2}.  Also
	known as PLISP and VEL.  Useful for parsing.  Only the
	pattern-matching system was published and fully implemented.
	According to Alan Kay, LISP70 had an influence on
	{Smalltalk-72}.  "The LISP70 Pattern Matching System, Larry
	Tesler et al, IJCAI 73.

LISP A

	"LISP A: A LISP-like System for Incremental Computing", E.J.
	Sandewall, Proc SJCC 32 (1968).

LISP Extended Algebraic Facility

	<language> (LEAF)

	["An Algebraic Extension to LISP", P.H. Knowlton, Proc FJCC 35
	1969].

	(1996-06-07)

Lispkit

	<language> A {functional programming} language designed by
	Peter Henderson with Lisp syntax. Designed for portability.
	The Lispkit implementation is an extension to Landin's SECD
	machine that supports lazy evaluation.  See also Stack
	environment control dump machine.

Lispkit Lisp

	Purely functional version of LISP.  "Functional Programming,
	Application and Implementation", P. Henderson, P-H 1980.

Lisp-Linda

	P. Dourish, U Edinburgh 1988.

Lisp Machine

	1. <architecture> Any {machine} (whether notional or actual)
	whose instruction set is {Lisp}.

	2. <hardware, operating system> A line of {workstations} made
	by {Symbolics, Inc.} from the mid-1970s (having grown out of
	the {MIT AI Lab}) to late 1980s.  All system code for
	Symbolics Lisp Machines was written in {Lisp Machine Lisp}.
	Symbolics Lisp Machines were also notable for having had
	{space-cadet keyboards}.

	[More details and historical background?]

	{Lisp Machine Museum
	(http://kogs-www.informatik.uni-hamburg.de/~moeller/symbolics-info/symbolics.html)}.

	(2003-07-03)

LISP Machine LISP

	<language> An extension of {Maclisp}, now called {Zetalisp}.

	(1998-12-13)

Lisp Object-Oriented Programming System

	(LOOPS) An {object-oriented} extension of {Lisp} from the
	{Intelligent Systems Laboratory} at {Xerox} {Palo Alto
	Research Center}.  It is used in the development of
	{knowledge-based systems}.

	See also {CommonLoops}.

	["The LOOPS Manual", D.G. Bobrow & M. Stefik, Xerox Corp
	1983].

LISP, Objects, and Symbolic Programming

	A book with compiler included by Robert R. Kessler and Amy
	R. Petajan, published by Scott, Foresman and Company,
	Glenview, IL, USA.  (1988).

Lisptalk

	"Concurrent Programming Language Lisptalk", C. Li, SIGPLAN
	Notices 23(4):71-80 (Apr 1988).

LispView

	CLOS based windowing system on OpenWindows.

list

	<data> A data structure holding many values, possibly of
	different types, which is usually accessed sequentially,
	working from the head to the end of the tail - an "ordered
	list".  This contrasts with a (one-dimensional) {array}, any
	element of which can be accessed equally quickly.

	Lists are often stored using a cell and pointer arrangement
	where each value is stored in a cell along with an associated
	pointer to the next cell.  A special pointer, e.g. zero, marks
	the end of the list.  This is known as a (singly) "linked
	list".  A doubly linked list has pointers from each cell to
	both next and previous cells.

	An unordered list is a {set}.

	(1998-11-12)

list comprehension

	<functional programming> An expression in a {functional
	language} denoting the results of some operation on (selected)
	elements of one or more lists.  An example in {Haskell}:

	[ (x,y) | x <- [1 .. 6], y <- [1 .. x], x+y < 10]

	This returns all pairs of numbers (x,y) where x and y are
	elements of the list 1, 2, ..., 10, y <= x and their sum is
	less than 10.

	A list comprehension is simply "{syntactic sugar}" for a
	combination of applications of the functions, concat, map and
	filter.  For instance the above example could be written:

		filter p (concat (map (\ x -> map (\ y -> (x,y))
				 [1..x]) [1..6]))
		where
		p (x,y) = x+y < 10

	According to a note by Rishiyur Nikhil <nikhil@crl.dec.com>,
	(August 1992), the term itself seems to have been coined by
	Phil Wadler circa 1983-5, although the programming construct
	itself goes back much further (most likely Jack Schwartz and
	the SETL language).

	The term "list comprehension" appears in the references below.

	The earliest reference to the notation is in Rod Burstall and
	John Darlington's description of their language, NPL.

	David Turner subsequently adopted this notation in his
	languages SASL, KRC and Miranda, where he has called them "{ZF
	expressions}", set abstractions and list abstractions (in his
	1985 FPCA paper [Miranda: A Non-Strict Functional Language
	with Polymorphic Types]).

	["The OL Manual" Philip Wadler, Quentin Miller and Martin
	Raskovsky, probably 1983-1985].

	["How to Replace Failure by a List of Successes" FPCA
	September 1985, Nancy, France, pp. 113-146].

	(1995-02-22)

List Enhanced

	<operating system, tool> An {MS-DOS} file browsing utility
	written by Vern Buerg in 1983.  A former {mainframe} systems
	programmer, Buerg wrote DOS utilities when he began using an
	{IBM PC} and missed the file-scanning ability he had on
	mainframes.  The software became an instant success, and his
	list utility was in use on an estimated 5 million PCs.

	{shareware version (http://buerg.com/ftp.html)}.

	(1997-05-16)

listless

	<programming> In {functional programming}, a property of a
	{function} which allows it to be combined with other functions
	in a way that eliminates intermediate data structures,
	especially lists.

	{Phil Wadler}'s thesis gives the conditions for a function to
	be in listless form: each input list is traversed only once,
	one element at a time, from left to right.  Each output list
	is generated once, one element at a time, from left to right.
	No other lists are generated or traversed.

	Not all functions can be expressed in listless form
	(e.g. reverse).

	(1995-02-22)

Listproc

	A {mailing list} processor owned and developed by {BITNET}
	which runs under {Unix}.

	See also {Listserv}, {Majordomo}.

	[Details?]

	(1995-02-22)

lists

	{list}

Listserv

	<messaging> An automatic {mailing list} server, initially
	written to run under {IBM}'s {VM} {operating system} by Eric
	Thomas.

	Listserv is a {user name} on some computers on {BITNET}/{EARN}
	which processes {electronic mail} requests for addition to or
	deletion from mailing lists.  Examples are listserv@ucsd.edu,
	listserver@nysernet.org.

	Some listservs provide other facilities such as retrieving
	files from {archives} and {database} search.  Full details of
	available services can usually be obtained by sending a
	message with the word HELP in the subject and body to the
	listserv address.

	Eric Thomas, has recently formed an international corporation,
	L-Soft, and has ported Listserv to a number of other
	{platforms} including {Unix}.  Listserv has simultaneously
	been enhanced to use both the {Internet} and {BITNET}.

	Two other major {mailing list} processors, both of which run
	under {Unix}, are {Majordomo}, a {freeware} system, and
	{Listproc}, currently owned and developed by {BITNET}.

	(1995-02-22)

Liszt

	A {Franz Lisp} compiler in {C} which emits {C}, by Jeff
	W. Dalton <jeff@festival.ed.ac.uk>.

	Mailing list: franz-friends-request@berkeley.edu.

	(1994-10-20)

lite

	<spelling> (Misspelling of "light", when used to mean
	"lightweight") A suffix denoting a scaled-down or crippled
	product, often designed to be distributed without charge,
	e.g. on a magazine {coverdisk}.  An example is {pklite}.

	(1995-10-06)

literal

	<programming> A constant made available to a process, by
	inclusion in the executable text.  Most modern systems do not
	allow texts to modify themselves during execution, so literals
	are indeed constant; their value is written at compile-time
	and is read-only at run time.

	In contrast, values placed in variables or files and accessed
	by the process via a symbolic name, can be changed during
	execution.  This may be an asset.  For example, messages can
	be given in a choice of languages by placing the translation
	in a file.

	Literals are used when such modification is not desired.  The
	name of the file mentioned above (not its content), or a
	physical constant such as 3.14159, might be coded as a
	literal.  Literals can be accessed quickly, a potential
	advantage of their use.

	(1996-01-23)

literate programming

	<programming, text> Combining the use of a {text formatting}
	language such as {TeX} and a conventional programming language
	so as to maintain {documentation} and {source code} together.

	Literate programming may use the {inverse comment convention}.

	{Perl}'s literate programming system is called {pod}.

	(2003-09-24)

literature

	The literature.  Computer-science journals and other
	publications, vaguely gestured at to answer a question that
	the speaker believes is trivial.  Thus, one might answer an
	annoying question by saying "It's in the literature."  Oppose
	{Knuth}, which has no connotation of triviality.

	(1994-11-04)

LITHE

	Object-oriented with extensible syntax.

	"LITHE: A Language Combining a Flexible Syntax and Classes",
	D. Sandberg, Conf Rec 9th Ann ACM Sym POPL, ACM 1982,
	pp.142-145.

lithium lick

	{NeXT} employees who have had too much attention from their
	esteemed founder, {Steve Jobs}, are said to have "lithium
	lick" when they begin to show signs of Jobsian fervour and
	repeat the most recent catch phrases in normal conversation,
	e.g. "It just works, right out of the box!"

	[{Jargon File}]

LitProg

	{literate programming}

LITTLE

	A typeless language used to produce machine-independent
	software.  LITTLE has been used to implement SETL.

	"Guide to the LITTLE Language", D. Shields, LITTLE Newsletter
	33, Courant Inst (Aug 1977).

little-endian

	<data, architecture> A computer architecture in which, within
	a given 16- or 32-bit {word}, bytes at lower addresses have
	lower significance (the word is stored "little-end-first").
	The {PDP-11} and {VAX} families of computers and {Intel}
	{microprocessors} and a lot of communications and networking
	hardware are little-endian.

	The term is sometimes used to describe the ordering of units
	other than bytes; most often, bits within a byte.

	Compare {big-endian}, {middle-endian}.  See {NUXI problem}.

	[{Jargon File}]

	(1995-08-16)

Little Smalltalk

	A line-oriented near-subset of {Smalltalk-80} written in {C}
	by Tim Budd <budd@cs.orst.edu>.  Version 3 runs on {Unix},
	{IBM PC}, {Atari} and {VMS}.

	{(ftp://cs.orst.edu/pub/budd/)}.

	["A Little Smalltalk", Timothy Budd, A-W 1987].

live data

	1. Data that is written to be interpreted and takes over
	program flow when triggered by some un-obvious operation, such
	as viewing it.  One use of such hacks is to break security.
	For example, some smart terminals have commands that allow one
	to download strings to program keys; this can be used to write
	live data that, when listed to the terminal, infects it with a
	security-breaking {virus} that is triggered the next time a
	hapless user strikes that key.  For another, there are some
	well-known bugs in {vi} that allow certain texts to send
	arbitrary commands back to the machine when they are simply
	viewed.

	2. In {C}, data that includes pointers to functions
	(executable code).

	3. An object, such as a {trampoline}, that is constructed on
	the fly by a program and intended to be executed as code.

	4. Actual real-world data, as opposed to "test data".  For
	example, "I think I have the record deletion module finished."
	"Have you tried it out on live data?"  This usage usually
	carries the connotation that live data is more fragile and
	must not be corrupted, or bad things will happen.  So a more
	appropriate response to the above claim might be: "Well, make
	sure it works perfectly before we throw live data at it."  The
	implication here is that record deletion is something pretty
	significant, and a haywire record-deletion module running amok
	on live data would probably cause great harm.

	[{Jargon File}]

Live Free Or Die!

	1. The state motto of New Hampshire, which appears on that
	state's automobile licence plates.

	2. A slogan associated with Unix in the romantic days when
	Unix aficionados saw themselves as a tiny, beleaguered
	underground tilting against the windmills of industry.  The
	"free" referred specifically to freedom from the {fascist}
	design philosophies and {crufty} misfeatures common on
	commercial operating systems.  Armando Stettner, one of the
	early Unix developers, used to give out fake licence plates
	bearing this motto under a large Unix, all in New Hampshire
	colours of green and white.  These are now valued collector's
	items.

livelock

	<parallel> /li:v'lok/ When two or more processes continuously
	change their state in response to changes in the other
	process(es) without doing any useful work.

	This is similar to {deadlock} in that no progress is made but
	differs in that neither process is blocked or waiting for
	anything.

	A human example of livelock would be two people who meet
	face-to-face in a corridor and each moves 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.

	[{Jargon File}]

	(1998-07-05)

LiveScript

	{JavaScript}

liveware

	/li:v'weir/ 1. A less common synonym for {wetware}

	2. (Cambridge) Vermin.  "Waiter, there's some liveware in my
	salad."

	[{Jargon File}]

	(1995-10-30)

lk

	<networking> The {country code} for Sri Lanka.

	(1999-01-27)

LKA

	{Lan Kanal Adapter}

LL

	<grammar> A class of language {grammars}, which can
	be {parse}d without {backtrack}ing.  The first L stands for
	Left-to-right scan, the second for Leftmost derivation.

	Often found in the form LL(k) where k is the number of
	{tokens} of {look-ahead} required when parsing a sentence of
	the language.  In particular, LL(1) is a fairly restrictive
	class of grammar, but allows simple {top-down} parsing
	(e.g. {recursive-descent}) to be used without wasteful
	{backtracking}.  A number of programming languages are LL(1)
	(or close).

	(1995-10-30)

LLC

	{Logical Link Control}

LLGen

	<tool> A {BNF}-based {LL1} {parser generator} by Fischer and
	LeBlanc.  It conforms to a subset of {FMQ}.

	{(ftp://csczar.ncsu.edu/)}.

	["Crafting A Compiler", Fischer and LeBlanc].

	(1990-03-31)

LLM3

	/el el em trwa/ The {assembly language} for a {virtual
	machine} used as the implementation language for {Le-Lisp}.
	Developed by J. Chailloux of {INRIA}.

LLNL

	{Lawrence Livermore National Laboratory}

LLP

	{Lower Layer Protocol}

LM3

	The {Larch} interface language for {Modula-3}.

	["LM3: A Larch/Modula-3 Interface Language", Kevin D. Jones,
	TR 72, DEC SRC, Palo Alto CA].

LMAO

	<chat> laughed my ass off.  Seen on {Compuserve}.

	(1996-02-04)

LMDS

	{Local Multipoint Distribution System}

lmgtfy.com

	<humour, WWW> A somewhat sarcastic {World-Wide Web} service that
	animates the action of searching on {Google}.

	Instead of displaying the search results, the site creates a
	self-referential URL like

	{(http://lmgtfy.com/?q=GIYF)}

	that takes you to a page showing an animation of the actions of
	clicking in the Google search box, entering some text and clicking
	the submit button.  It then takes you to the results on Google.

	The link is intended be sent to in answer to a question that could
	easily have been answered by Google.  It is a more polite, if
	long-winded, way of saying {JFGI} or {STFW}.

	In the belief that it is better to teach a man to fish than to
	give him a fish, the service helps the recipient to help himself
	while succinctly conveying the message that he is too stupid to
	use Google.

	(2014-05-23)

LML

	1. Lazy ML.

	A {lazy}, {purely functional} variant of {ML} designed by
	Thomas Johnson and Lennart Augustsson at the Chalmers
	University of Technology, Gothenburg, Sweden in 1984.  LML is
	implemented on the {G-machine}, and was used to implement the
	first {Haskell B compiler}.  There is a compiler (lmlc) and
	interpreter.

	{(ftp://ftp.cs.chalmers.se/pub/haskell/chalmers)}.

	(1994-12-14)

	2. Logical ML.

	Adds to {Lazy ML} a data type of "theories" whose objects
	represent {logic programs}.

	["Logic Programming within a Functional Framework", A. Brogi
	et al, in Programming Language Implementation and Logic
	Programming, P. Deransart et al eds, LNCS 456, Springer 1990].

	(1994-12-14)

LM-Prolog

	Lisp Machine Prolog.

	A {Prolog} {interpreter} in {Zetalisp} for the {Lisp Machine}
	developed by Ken Kahn and Mats Carlsson in 1983.

	{(ftp://sics.se/archive/lm-prolog.tar.Z)}.

	["LM-Prolog User Manual", M. Carlsson et al, Uppsala Dec
	1983].

	(1994-12-14)

LMTP

	{Local Mail Transfer Protocol}

LNF

	["A Fully Lazy Higher Order Purely Functional Programming
	Language With Reduction Semantics", K.L. Greene, CASE Center
	TR 8503, Syracuse U 1985].

LO

	Linear Objects.  A {concurrent} {logic programming} language
	based on {linear logic}, an extension of {Horn logic} with a
	new kind of {OR-concurrency}.

	["LO and Behold! Concurrent Structured Processes", J. Andreoli
	et al, SIGPLAN Notices 25(10):44-56 (OOPSLA/ECOOP '90) (Oct
	1990)].

L&O

	Logic and Objects.  A front end for {IC Prolog}.

	{(ftp://src.doc.ic.ac.uk/computing/programming/languages/pd-ICP-0,90.tar.Z)}.
	E-mail: Zacharias Bobolakis <zb@doc.ic.ac.uk>.

	["Logic and Objects", Frank McCabe, Prentice-Hall].

load

	1. To copy {data} (often {program} {code} to be {run}) into
	{memory}, possibly {parsing} it somehow in the process.
	E.g. "{WordPerfect} can't load this {RTF} file - are you sure
	it didn't get corrupted in the {download}?"  Opposite of
	{save}.

	2. The degree to which a computer, {network}, or other
	resource is used, sometimes expressed as a percentage of the
	maximum available.  E.g. "What kind of CPU load does that
	program give?", "The network's constantly running at 100%
	load".  Sometimes used, by extension, to mean "to increase the
	level of use of a resource".  E.g. "Loading a spreadsheet
	really loads the CPU".  See also: {load balancing}.

	3. To {install} a piece of {software} onto a system.
	E.g. "The computer guy is gonna come load Excel on my laptop
	for me".  This usage is widely considered to be incorrect.

	(2002-07-02)

load balancing

	<operating system, parallel> Techniques which aim to spread
	tasks among the processors in a {parallel processor} to avoid
	some processors being idle while others have tasks queueing
	for execution.  Load balancing may be performed either by
	heavily loaded processors (with many tasks in their queues)
	sending tasks to other processors; by idle processors
	requesting work from others; by some centralised task
	distribution mechanism; or some combination of these.  Some
	systems allow tasks to be moved after they have started
	executing ("{task migration}") others do not.  It is important
	that the {overhead} of executing the load balancing
	{algorithm} does not contribute significantly to the overall
	processing or communications load.

	Distributed scheduling {algorithms} may be static, dynamic or
	preemptive.  Static algorithms allocate processes to
	processors at run time while taking no account of current
	network load.  Dynamic algorithms are more flexible, though
	more computationally expensive, and give some consideration to
	the network load before allocating the new process to a
	processor.  Preemptive algorithms are more expensive and
	flexible still, and may migrate running processes from one
	host to another if deemed beneficial.  Research to date
	indicates that dynamic algorithms yield significant
	performance benefits, but that further (though lesser) gains
	may be had through the addition of process migration
	facilities.

	(1995-03-13)

load-bearing printf

	<programming, humour> The kind of {bug} present in a {program}
	which works correctly when producing debug output but fails when
	the {debugging} is turned off.

	The expression combines {load-bearing wall
	(http://en.wikipedia.org/wiki/The_Builders)} and {printf} as used
	in {debugging by printf}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-05-10)

lobotomy

	1. What a hacker subjected to formal management training is
	said to have undergone.  At {IBM} and elsewhere this term is
	used by both hackers and low-level management; the latter
	doubtless intend it as a joke.

	2. The act of removing the processor from a {microcomputer} in
	order to replace or upgrade it.  Some very cheap {clone}
	systems are sold in "lobotomised" form - everything but the
	brain.

	[{Jargon File}]

LOC

	{lines of code}

local area network

	<networking> (LAN) A data communications network which is
	geographically limited (typically to a 1 km radius) allowing
	easy interconnection of terminals, {microprocessors} and
	computers within adjacent buildings.  {Ethernet} and {FDDI}
	are examples of standard LANs.

	Because the network is known to cover only a small area,
	optimisations can be made in the network signal protocols that
	permit data rates up to 100Mb/s.

	See also {token ring}, {wide area network}, {metropolitan area
	network}..

	{Usenet} newsgroup: {news:comp.dcom.lans.misc}.

	(1995-03-13)

Local Area Terminal

	<protocol> (LAT) A {DECnet}-related, non-routable network
	{protocol}.

	[Details?]

	(1999-01-14)

local bus

	<hardware> A {bus} connecting a {processor} to {memory},
	usually on the same {circuit board} as opposed to a
	{backplane} and therefore faster.

	Various proprietary local busses for {personal computers} are
	still in use.  The most common are {Vesa local bus} (VLB or
	VL), and {Peripheral Component Interconnect} (PCI).  Some
	computers, e.g. {notebook computers}, use a local bus with no
	expansion slots.  Previous non-local bus standards include
	{ISA}, {EISA} and {MCA}.

	(1997-08-25)

locale

	<programming> A geopolitical place or area, especially in the
	context of configuring an {operating system} or {application
	program} with its {character sets}, date and time formats,
	currency formats etc.

	Locales are significant for {internationalisation} and
	{localisation}.

	(1999-06-09)

local echo

	<communications> (Obsolete: "{half-duplex}") A mode of
	operation of a communications program or device in which it
	displays the characters the user enters at the same time as it
	sends them to the remote system.

	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,
	printed all input characters as they were typed (i.e. they did
	local echo).  Local echo was typically optional on the {video
	terminals} that replaced them, and usually disabled in favour
	of {remote echo}.  A disadvantage of local echo is that it
	will continue, even when the communication circuit has failed,
	which can be misleading.

	(2000-03-30)

local exchange carrier

	<communications> (LEC) A company allowed to handle local calls
	following the break-up of the Bell system in the US by
	anti-trust regulators.  These vary from Regional Bell
	Operating Companies (RBOC) through to small independents such
	as Farmers Cooperative.

	Local exchange carriers are not allowed to handle
	long-distance traffic.  This is handled by inter-exchange
	carriers (IXC) who are not allowed to handle local calls.

	(2002-08-28)

localisation

	<programming> (l10n) Adapting a product to meet the language,
	cultural and other requirements of a specific target market
	"{locale}".

	Localisation includes the translation of the {user interface},
	{on-line help} and {documentation}, and ensuring the images
	and concepts are culturally appropriate and sensitive.  There
	may be subtle cross-cultural considerations, e.g. do the icons
	make sense in other parts of the world?

	{Internationalisation} is the process that occurs during
	application development that makes localisation easier by
	separating the details that differ between locales from the
	rest of the program that stays the same.  If
	internationalisation is thorough, localisation will require no
	programming.

	The abbreviation l10n means "L - 10 letters - N".

	(1999-06-09)

localised

	{localisation}

locality

	1. In sequential architectures programs tend to access data
	that has been accessed recently (temporal locality) or that is
	at an address near recently referenced data (spatial
	locality).  This is the basis for the speed-up obtained with a
	{cache} memory.

	2. In a multi-processor architecture with distributed memory
	it takes longer to access the memory attached to a different
	processor.  This overhead increases with the number of
	communicating processors. Thus to efficiently employ many
	processors on a problem we must increase the proportion of
	references which are to local memory.

	(1995-02-28)

local loop

	<communications> The circuits between a telephone subscriber's
	residence or business and the switching equipment at the local
	{central office}.

	(1995-03-17)

local loopback addresses

	The special {Internet address}, 127.0.0.1, defined by the
	{Internet Protocol}.  A {host} can use local the loopback
	address to send messages to itself.

	(1995-03-21)

Local Mail Transfer Protocol

	<messaging, protocol> (LMTP) A {protocol} designed as an
	alternative to {ESMTP} for cases where the mail receiver does
	not manage a queue.  LMTP is an {application level} {protocol}
	that runs on top of {TCP/IP}.  It was initially defined in
	{RFC 2033}, and uses (with a few changes) the syntax and
	semantics of {ESMTP}.  It should be used only by specific
	prior arrangement and configuration, and it must not be used
	on TCP {port} 25 (the {SMTP} port).

	(2002-03-09)

Local Multipoint Distribution System

	<wireless> (LMDS) A {broadband wireless} technology.

	[Details?]

locals

	The users on one's local network (as opposed, say, to people
	one reaches via public {Internet} or {UUCP} connections).  The
	marked thing about this usage is how little it has to do with
	real-space distance. "I have to do some tweaking on this mail
	utility before releasing it to the locals."

	(1994-11-29)

Local Shared Resources

	<operating system> (LSR) A way of controlling {VSAM} buffers
	in {OS/390}.

	(2002-02-17)

LocalTalk

	<networking> An {Apple Computer} {network} {standard} using
	{Apple Computer}'s own networking hardware.

	Compare {EtherTalk}.

	(1994-11-29)

local variable

	<programming> A {variable} with {lexical scope}, i.e. one
	which only exists in some particular part of the {source
	code}, typically within a {block} or a {function} or
	{procedure} body.  This contrasts with a {global variable},
	which is defined throughout the whole program.

	Code is easier to understand and modify when the scope of
	variables is as small as possible because it is easier to see
	how the variable is set and used.  Code containing global
	variables is harder to modify because its behaviour may depend
	on and affect other sections of code that refer to that
	variable.

	(2009-12-14)

location

	{memory location}

Loch Ness Monster Bug

	<humour> (Or "Bugfoot") A {bug} which cannot be reproduced or has
	only been sighted by one person.  Named after the mythical
	creature claimed to inhabit Loch Ness in Scotland.

	(2012-12-29)

locked and loaded

	[Military slang for an M-16 rifle with magazine inserted and
	prepared for firing] Said of a removable disk volume properly
	prepared for use - that is, locked into the drive and with
	the heads loaded.  Ironically, because their heads are
	"loaded" whenever the power is up, this description is never
	used of {Winchester} drives (which are named after a rifle).

	[{Jargon File}]

locked up

	Synonym for {hung}, {wedged}.

lock-in

	<standard> When an existing standard becomes almost impossible
	to supersede because of the cost or logistical difficulties
	involved in convincing all its users to switch something
	different and, typically, {incompatible}.

	The common implication is that the existing standard is
	notably inferior to other comparable standards developed
	before or since.

	Things which have been accused of benefiting from lock-in in
	the absence of being truly worthwhile include: the {QWERTY}
	keyboard; any well-known {operating system} or programming
	language you don't like (e.g., see "{Unix conspiracy}"); every
	product ever made by {Microsoft Corporation}; and most
	currently deployed formats for transmitting or storing data of
	any kind (especially the {Internet Protocol}, 7-bit (or even
	8-bit) {character sets}, analog video or audio broadcast
	formats and nearly any file format).

	Because of {network effects} outside of just computer
	networks, {Real World} examples of lock-in include the current
	spelling conventions for writing English (or French, Japanese,
	Hebrew, Arabic, etc.); the design of American money; the
	imperial (feet, inches, ounces, etc.) system of measurement;
	and the various and anachronistic aspects of the internal
	organisation of any government (e.g., the American Electoral
	College).

	(1998-01-15)

Locus

	A distributed system project supporting transparent access to
	data through a network-wide file system.

Loebner Prize

	<artificial intelligence> An annual competition in {artificial
	intelligence} started by Dr. {Hugh Loebner} of New York City
	in 1991.  A $100,000 prize is offered to the author of the
	first computer program to pass an unrestricted {Turing test}.
	Annual competitions are held each year with a $2000 prize for
	the best program on a restricted {Turing test}.

	Sponsors of previous competitions include: {Apple Computer},
	{Computerland}, Crown Industries, GDE Systems, {IBM} Personal
	Computer Company's {Center for Natural Computing}, Greenwich
	Capital Markets, {Motorola}, the {National Science
	Foundation}, The Alfred P. Sloan Foundation, and The Weingart
	Foundation.

	The 1995 and 1996 events were unrestricted Turing Tests,
	requiring computer entries to converse indefinitely with no
	topic restrictions.  So far, even the best programs give
	themselves away almost immediately, either by simple
	grammatical mistakes or by repetition.

	Complete transcripts and {IBM compatible} diskettes that play
	the 1991, 1992, and 1993 conversations in real-time are
	available for purchase from the Cambridge Center for
	Behavioral Studies (telephone: +1 (617) 491 9020, Fax: 1072).
	Sponsorship opportunities are available.

	{Loebner Prize Home (http://loebner.net/)}.

	(2003-11-30)

log

	1. <mathematics, programming> {logarithm}.

	2. <operating system, programming> A record of the activity of
	some system, often stored in a particular file.

	Different {operating systems} have different conventions and
	support for storing logs.  {Unix} has the {syslog} system and
	the /var/log directory hierarchy, {Microsoft Windows} has
	{event logs}.  {Web servers}, for example, typically record
	information about every page accessed in one or more "web
	logs".

	(2009-05-29)

{log}

	["{log}: A Logic Programming Language with Finite Sets", A
	Dovier et al, Proc 8th Intl Conf Logic Prog, June 1991,
	pp.111-124].

logarithmus dualis

	<mathematics> (ld) Latin for {logarithm} base two.  More
	commonly written as "log" with a subscript "2".

	Roughly the number of {bits} required to represent an
	{integer}.

	(1999-03-19)

LogC

	A {C} extension incorporating {rule-oriented programming}, for
	{AI} {application programs}.  {Production rules} are
	encapsulated into functional components called rulesets.  LogC
	uses a {search network algorithm} similar to {RETE}.

	Version 1.6.

	["LogC: A Language and Environment for Embedded Rule Based
	Systems", F. Yulin et al, SIGPLAN Notices 27(11):27-32 (Nov
	1992)].

logic

	1. <philosophy, logic> A branch of philosophy and mathematics
	that deals with the formal principles, methods and criteria of
	validity of {inference}, reasoning and {knowledge}.

	Logic is concerned with what is true and how we can know
	whether something is true.  This involves the formalisation of
	logical arguments and {proofs} in terms of symbols
	representing {propositions} and {logical connectives}.  The
	meanings of these logical connectives are expressed by a set
	of rules which are assumed to be self-evident.

	{Boolean algebra} deals with the basic operations of truth
	values: AND, OR, NOT and combinations thereof.  {Predicate
	logic} extends this with existential and universal
	{quantifiers} and symbols standing for {predicates} which may
	depend on variables.  The rules of {natural deduction}
	describe how we may proceed from valid premises to valid
	conclusions, where the premises and conclusions are
	expressions in {predicate logic}.

	Symbolic logic uses a {meta-language} concerned with truth,
	which may or may not have a corresponding expression in the
	world of objects called existance.  In symbolic logic,
	arguments and {proofs} are made in terms of symbols
	representing {propositions} and {logical connectives}.  The
	meanings of these begin with a set of rules or {primitives}
	which are assumed to be self-evident.  Fortunately, even from
	vague primitives, functions can be defined with precise
	meaning.

	{Boolean logic} deals with the basic operations of {truth
	values}: AND, OR, NOT and combinations thereof.  {Predicate
	logic} extends this with {existential quantifiers} and
	{universal quantifiers} which introduce {bound variables}
	ranging over {finite} sets; the {predicate} itself takes on
	only the values true and false.  Deduction describes how we
	may proceed from valid {premises} to valid conclusions, where
	these are expressions in {predicate logic}.

	Carnap used the phrase "rational reconstruction" to describe
	the logical analysis of thought.  Thus logic is less concerned
	with how thought does proceed, which is considered the realm
	of psychology, and more with how it should proceed to discover
	truth.  It is the touchstone of the results of thinking, but
	neither its regulator nor a motive for its practice.

	See also fuzzy logic, logic programming, arithmetic and logic unit,
	first-order logic,

	See also {Boolean logic}, {fuzzy logic}, {logic programming},
	{first-order logic}, {logic bomb}, {combinatory logic},
	{higher-order logic}, {intuitionistic logic}, {equational
	logic}, {modal logic}, {linear logic}, {paradox}.

	2. <electronics> {Boolean} logic circuits.

	See also {arithmetic and logic unit}, {asynchronous logic},
	{TTL}.

	(1995-03-17)

logical

	(From the technical term "logical device", wherein a physical
	device is referred to by an arbitrary "logical" name) Having
	the role of.  If a person (say, Les Earnest at SAIL) who had
	long held a certain post left and were replaced, the
	replacement would for a while be known as the "logical" Les
	Earnest.  (This does not imply any judgment on the
	replacement).

	Compare {virtual}.

	At Stanford, "logical" compass directions denote a coordinate
	system in which "logical north" is toward San Francisco,
	"logical west" is toward the ocean, etc., even though logical
	north varies between physical (true) north near San Francisco
	and physical west near San Jose.  (The best rule of thumb here
	is that, by definition, El Camino Real always runs logical
	north-and-south.)  In giving directions, one might say: "To
	get to Rincon Tarasco restaurant, get onto {El Camino Bignum}
	going logical north."  Using the word "logical" helps to
	prevent the recipient from worrying about that the fact that
	the sun is setting almost directly in front of him.  The
	concept is reinforced by North American highways which are
	almost, but not quite, consistently labelled with logical
	rather than physical directions.

	A similar situation exists at MIT: Route 128 (famous for the
	electronics industry that has grown up along it) is a
	3-quarters circle surrounding Boston at a radius of 10 miles,
	terminating near the coastline at each end.  It would be most
	precise to describe the two directions along this highway as
	"clockwise" and "counterclockwise", but the road signs all say
	"north" and "south", respectively.  A hacker might describe
	these directions as "logical north" and "logical south", to
	indicate that they are conventional directions not
	corresponding to the usual denotation for those words.  (If
	you went logical south along the entire length of route 128,
	you would start out going northwest, curve around to the
	south, and finish headed due east, passing along one infamous
	stretch of pavement that is simultaneously route 128 south and
	Interstate 93 north, and is signed as such!)

	[{Jargon File}]

	(1995-01-24)

logical address

	{virtual address}

Logical Block Addressing

	<storage> (LBA) A {hard disk} {sector} addressing scheme used
	on all {SCSI} hard disks, and on {ATA-2} conforming {IDE} hard
	disks.  The addressing conversion is performed by the hard
	disk firmware.

	Prior to LBA, combined limitations of {IBM PC} {BIOS} and
	{ATA} restricted the useful capacity of IDE hard disks on IBM
	PCs and compatibles to 1024 cylinders * 63 sectors per track *
	16 heads * 512 bytes per sector = 528 million bytes = 504
	megabytes.  Modern BIOSes select LBA mode automatically, and
	work around the 1024-cylinder BIOS limit by representing a
	hard disk to the OS as having e.g. half as many cylinders and
	twice as many heads.  However, there is still an unbreakable
	BIOS disk size limit of 1024 cylinders * 63 sectors per track
	* 256 heads * 512 bytes per sector = 8 gigabytes, but modern
	OSes (including {Windows 9x}, {Windows NT} and {Linux}) are
	not affected by it, since they issue direct LBA-based calls,
	bypassing the BIOS hard disk services completely.

	(2000-04-30)

logical complement

	<logic> In {Boolean algebra}, the logical complement or
	negation of a Boolean value is the opposite value, given by
	the following {truth table}:

		A | -A
		--+---
		T | F
		F | T

	-A is also written as A with a bar over it or with a small
	vertical line hanging from the right-hand end of the "-"
	({LaTeX} \neg) or as A'.  In the {C} programming language, it
	is !A and in digital circuit design, /A.

	(1995-01-24)

Logical Interchange Format

	<file format, file system> (LIF) A {Hewlett-Packard} simple
	{file system} format used to {boot} {HP-PA} machines and to
	interchange files between older HP machines.  A LIF file
	system is a header, containing a single directory, with
	10-character {case sensitive} filenames and 2-byte {file
	types}, followed by the files.

	{LIF Utilities for linux
	(http://hpcc.org/hpil/lif_utils.html)}.

	(2003-10-09)

Logical Link Control

	<networking> (LLC) The upper portion of the {data link layer},
	as defined in {IEEE 802.2}.  The LLC sublayer presents a
	uniform interface to the user of the data link service, usually
	the {network layer}.  Beneath the LLC sublayer is the {Media
	Access Control} (MAC) sublayer.

	(1995-02-14)

Logical Link Control and Adaptation Protocol

	<protocol> (L2CAP) A {Bluetooth} {protocol} in the {Core
	Protocol Stack} providing data services to higher layer
	Bluetooth protocols.

	{L2CAP Layer Tutorial
	(http://palowireless.com/infotooth/tutorial/l2cap.asp)}.

	(2002-06-28)

logical relation

	A {relation} R satisfying

	f R g  <=>  For all a, b,  a R b => f a R g b

	This definition, by Plotkin, can be used to extend the
	definition of a relation on the types of a and b to a relation
	on functions.

logical shift

	<programming> (Either shift left logical or shift right
	logical) Machine-level operations available on nearly all
	processors which move each bit in a word one or more bit
	positions in the given direction.  A left shift moves the bits
	to more significant positions (like multiplying by two), a
	right shift moves them to less significant positions (like
	dividing by two).  The comparison with multiplication and
	division breaks down in certain circumstances - a logical
	shift may discard bits that are shifted off either end of the
	word and does not preserve the sign of the word (positive or
	negative).

	Logical shift is approriate when treating the word as a {bit
	string} or a sequence of {bit fields}, whereas {arithmetic
	shift} is appropriate when treating it as a binary number.
	The word to be shifted is usually stored in a {register}, or
	possibly in memory.

	(1996-07-02)

logical shift left

	{logical shift}

logical shift right

	{logical shift}

Logical Unit

	<networking> (LU) A primary component of {SNA}, an {LU} is a
	type of {NAU} that enables end users to communicate with each
	other and gain access to SNA network resources.

	(1997-04-30)

Logical Unit 6.2

	<networking> (LU6.2) A type of {logical unit} that governs
	peer-to-peer {SNA} communications.  LU6.2 supports general
	communication between programs in a distributed processing
	environment.

	LU6.2 is characterised by a {peer} relationship between
	{session partners}, efficient use of a session for multiple
	{transactions}, comprehensive end-to-end error processing and
	a generic {application program interface} consisting of
	{structured verbs} that are mapped into a product
	inplementation.

	LU6.2 is used by {IBM}'s {TPF} {operating system}.

	[IBM Dictionary of Computing, McGraw-Hill 1993].

	(1996-08-26)

Logical Unit Number

	<storage> (LUN) A 3-bit identifier used on a {SCSI} bus to
	distinguish between up to eight devices ({logical units}) with
	the same {SCSI ID}.

	(1999-02-11)

logic bomb

	<programming, security> Code surreptitiously inserted into an
	application or {operating system} that causes it to perform
	some destructive or security-compromising activity whenever
	specified conditions are met.

	Compare {back door}.

	[{Jargon File}]

	(1996-07-02)

Logic Design Language

	<language> A language for computer design.

	["A System Description Language Using Parametric Text
	Generation", R.H. Williams, TR 02.487, IBM San Jose, Aug
	1970].

	(1994-11-29)

logic emulator

	A system of {FPGAs}, programmable interconnect and software
	which automatically configures itself into an operating
	prototype of a large-scale logic design, such as a
	{microprocessor}.  An emulated design can be connected into
	the target system and really operated and tested before the
	design is made into an {integrated circuit}.

	{Quickturn} is the leading logic emulation system.

	(1994-11-29)

Logic for Computable Functions

	<language> (LCF) Part of the {Edinburgh proof assistant}.

	[What is it?  Address?]

	(1995-01-06)

logic gate

	An {integrated circuit} or other device whose inputs and
	outputs represent {Boolean} or binary values as voltages
	({TTL} uses 0V for False or 0, +5V for True or 1).  Different
	gates implement different Boolean functions: {AND}, {OR},
	{NAND}, {NOR} (these may take two or more inputs) {NOT} (one
	input), {XOR} (two inputs).  NOT, NAND and NOR are often
	constructed from single {transistors} and the other gates made
	from combinations of these basic ones.  These functions are
	all {combinatorial logic} functions, i.e. their outputs depend
	only on their inputs and there is no internal state.  Gates
	with state, such as {latches} and {flip-flops}, are
	constructed by feeding some of their outputs back to their
	inputs.

	(1995-02-08)

logic programming

	<artificial intelligence, programming, language> A
	{declarative}, {relational} style of programming based on
	{first-order logic}.  The original logic programming language
	was {Prolog}.  The concept is based on {Horn clauses}.

	The programmer writes a "database" of "{facts}", e.g.

		wet(water).

	("water is wet") and "{rules}", e.g.

		mortal(X) :- human(X).

	("X is mortal is implied by X is human").  Facts and rules are
	collectively known as "{clauses}".

	The user supplies a "{goal}" which the system attempts to
	prove using "{resolution}" or "{backward chaining}".  This
	involves matching the current goal against each fact or the
	left hand side of each rule using "{unification}".  If the
	goal matches a fact, the goal succeeds; if it matches a rule
	then the process recurses, taking each sub-goal on the right
	hand side of the rule as the current goal.  If all sub-goals
	succeed then the rule succeeds.

	Each time a possible clause is chosen, a "{choice point}" is
	created on a {stack}.  If subsequent {resolution} fails then
	control eventually returns to the choice point and subsequent
	clauses are tried.  This is known as "{backtracking}".

	Clauses may contain {logic variables} which take on any value
	necessary to make the fact or the left hand side of the rule
	match a goal.  Unification binds these variables to the
	corresponding subterms of the goal.  Such bindings are
	associated with the {choice point} at which the clause was
	chosen and are undone when backtracking reaches that choice
	point.

	The user is informed of the success or failure of his first
	goal and if it succeeds and contains variables he is told what
	values of those variables caused it to succeed.  He can then
	ask for alternative solutions.

	(1997-07-14)

Logic Replacement Technology

	(LRT) Reading, BERKS. Tel: (0734) 751087.  Marketing Director
	Bob Barrett.  Manufacturers of the Ethernet hardware including
	the Filtabyte Ethernet controller card and EtherGate open
	access gateway.

logic variable

	<programming> A variable in a {logic programming} language
	which is initially undefined ("unbound") but may get bound to
	a value or another logic variable during {unification} of the
	containing clause with the current {goal}.  The value to which
	it is bound may contain other variables which may themselves
	be bound or unbound.

	For example, when unifying the clause

		sad(X) :- computer(X, ibmpc).

	with the goal

		sad(billgates).

	the variable X will become bound to the atom "billgates"
	yielding the new subgoal "computer(billgates, ibmpc)".

	(1995-03-14)

LOGIN

	1. An {object-oriented} {deductive language} and {database}
	system integrating {logic programming} and {inheritance}.

	["LOGIN: A Logic Programming Language with Built-In
	Inheritance", H. Ait-Kaci et al, J Logic Programming
	3(3):185-215 (1986)].

log in

	<security> (Or "login", "log on", "logon") To start a
	{session} with a system, usually by giving a {user name} and
	{password} as a means of user {authentication}.  The term is
	also used to mean the ability to access a service (also called
	an account), e.g. "Have you been given a login yet?"

	"Log in/on" is occasionally misused to refer to starting a
	session where no authorisation is involved, or to access where
	there is no session involved.  E.g. "Log on to our {Web
	site}!"

	"login" is also the {Unix} program which reads and verifies a
	user's user name and password and starts an {interactive}
	session.

	The noun forms are usually written as a single word whereas
	the verb forms are often written as two words.

	To end a session is to "{log out}" or "off".

	(2006-07-10)

LOGISCOPE

	Software quality analysis tools from {Verilog} SA, used to
	evaluate the quality of software, both statically (based on
	{software metrics}) and dynamically.

Loglan

	<human language> An artificial human language designed by
	James Cooke Brown in the late 1950s.

	Most artificial human languages devised in the 19th and 20th
	centuries (e.g. Esperanto) were designed to be easy to learn.
	Loglan, however, is unique in that its chief design goal was
	to avoid synactic ambiguity -- the kind that arises when
	trying to {parse} sentences like "The blind man picked up the
	hammer and saw".

	Loglan is thus the only human language unambiguously parseable
	by a formal grammar (assuming you count Loglan as a human
	language; its grammar is not at all like that of any natural
	human language).

	Most later development on Loglan continued under the name
	"Lojban".

	The Loglan Institute, Inc. is a non-profit research
	corporation.

	Loglan is unrelated to the programming languages {Loglan'82}
	or {Loglan-88}.

	{Halcyon Loglan (http://halcyon.com/loglan/welcome.html)}.

	E-mail: loglan@compuserve.com

	Telephone: +1 (619) 270 1691.

	Address: The Loglan Institute, Inc., 3009 Peters Way, San
	Diego, CA, 92117-4313 U.S.A.

	["Scientific American", June 1960].

	(1999-01-14)

Loglan'82

	<language> A teaching language including all the programming
	tools used in {object-oriented programming}, {modular
	programming}, and {structured programming} as well as
	programming by rules and {functional programming}.

	Supported {object-oriented programming} features include
	{classes}, {objects}, {coroutines}, processes (in Loglan'82
	{processes} are {objects} which are able to act in parallel),
	{inheritance}, {exception handling}, and {dynamic arrays}.

	Loglan'82 is apparently unrelated to {Loglan}.

	{(http://univ-pau.fr/~salwicki/loghome.html)}.

	A {cross-compiler} to {C} is {here
	(ftp://infpc1.univ-pau.fr/pub/Loglan82)}.

	[Related to {Loglan-88}?]

	(1999-07-02)

Loglan-88

	<language> An {object-oriented} language from the Institute of
	Informatics at {Warsaw University}.

	Loglan-88 is apparently unrelated to {Loglan}.

	[Loglan-88, "Report on the Programming Language, LNCS 414,
	Springer-Verlag, 1990, ISBN 3-540-52325-1].

	[Related to {Loglan'82}?]

	(1997-08-01)

LOGLISP

	A version of {Prolog} implemented by Robinson in {Lisp} which
	allows Prolog programs to call Lisp and vice versa.

	["LOGLISP: An Alternative to Prolog", J. Alan Robinson et al
	in Machine Intelligence 10, D. Michie ed, Ellis Horwood 1982].

LOGO

	<language, education> A {Lisp}-like language for teaching
	programming, noted for its "turtle graphics" used to draw
	geometric shapes.  LOGO was developed in 1966-1968 by a group
	at Bolt, Beranek & Newman (now "{BBN Technologies}") headed
	by Wally Fuerzeig <fuerzeig@bbn.com> (who still works there in
	2003) and including Seymour Papert <seymour@media.mit.edu>.

	There are Logo {interpreters} for {Macintosh}, {Unix}, {IBM
	PC}, {X Window System}, and many PCs.  Implmentations include
	{Berkeley Logo}, {MswLogo}.

	(2000-03-28)

log off

	{log out}

LOGOL

	Strings are stored on cyclic lists or 'tapes', which are
	operated upon by finite automata.  J. Mysior et al, "LOGOL, A
	String manipulation Language", in Symbol Manipulations
	Languages and Techniques, D.G. Bobrow ed, N-H 1968,
	pp.166-177.

logon

	1. <jargon> {login}.

	2. <networking> In {ACF}/{VTAM}, an unformatted
	session-initiation request for a session between two {logical
	units}.

	(1996-03-07)

log out

	<security> (Or "log off") To end an authenticated session,
	undoing what happens when you {log in}.  This is primarily to
	prevent other users gaining access to your logged in session,
	e.g. at an unattended computer, but typically also terminates
	any processes and network connections started as part of your
	session.

	(2004-11-16)

Lojban

	<human language> /lozh'bahn/ A language for humans developed
	by former members of the {Loglan} project.

	{Helsinki Lojban (http://xiron.pc.helsinki.fi/lojban/)}.

	(2007-02-18)

LOL

	<chat> "laughing out loud", or "lots of love" or "luck".

	(2003-07-29)

LOLITA

	{Language for the On-Line Investigation and Transformation of Abstractions}

Lolli

	<language> (Named after the "lollipop" operator "-o") An
	{interpreter} for {logic programming} based on {linear logic},
	written by Josh Hodas <hodas@saul.cis.upenn.edu>.

	Lolli can be viewed as a refinement of the {Hereditary Harrop
	formulas} of {Lambda-Prolog}.  All the operators (though not
	the {higher order unification}) of Lambda-Prolog are
	supported, but with the addition of linear variations.  Thus a
	Lolli program distinguishes between clauses which can be used
	as many, or as few, times as desired, and those that must be
	used exactly once.  Lolli is implemented in {SML/NJ}.

	{(ftp://ftp.cis.upenn.edu/pub/Lolli/Lolli-0.7.tar.Z)}.

	[Josh Hodas et al, "Logic Programming in a Fragment of
	Intuitionistic Linear Logic", Information and Computation, to
	appear].

	(1992-11-18)

LOM

	<language> A programming language developed in Toulouse in the
	early 1980s for {data processing}.

	(1996-03-01)

longitudinal parity

	<storage, communications> An extra {byte} (or word) appended
	to a block of data in order to reveal corruption of the data.
	Bit n of this byte indicates whether there was an even or odd
	number of "1" bits in bit position n of the bytes in the
	block.  The parity byte is computed by {XOR}ing the data bytes
	in the block.  Longitudinal parity allows single bit errors to
	be detected.

	(1996-03-01)

Longitudinal Redundancy Check

	<storage, communications> (LRC, Block Redundancy Check) An
	{error checking} method that generates a {longitudinal parity}
	{byte} from a specified {string} or block of {bytes} on a
	longitudinal track.

	The longitudinal parity byte is created by placing individual
	bytes of a string in a two-dimensional {array} and performing
	a {Vertical Redundancy Check} vertically and horizontally on
	the array, creating an extra byte.  This is an improvement
	over the VRC because it will catch two errors in the
	individual characters of the string, beyond the odd errors.

	(2004-01-26)

LOOK

	A specification language.

	["A Look at Algebraic Specifications", S.N. Zilles et al, IBM
	RR, 1982].

	(1994-11-16)

Look Ahead Left-to-right parse, Rightmost-derivation

	<parsing, algorithm> (LALR, Look ahead LR) A type of {LR
	parser} that can deal with more {context-free grammars} than
	{SLR parsers} but less than {LR[1]} parsers.  LALR parsers are
	popular because they give a good trade-off between the number
	of grammars they can deal with and the size of the parsing
	table required.  Compiler compilers like {yacc} and {Bison}
	generate LALR parsers.

	{Wikipedia (http://wikipedia.org/wiki/LALR_parser)}.

	(2003-05-13)

Look ahead LR

	{Look Ahead Left-to-right parse, Rightmost-derivation}

look and feel

	<operating system> The appearance and function of a program's
	{user interface}.  The term is most often applied to
	{graphical user interfaces} (GUI) but might also be used by
	extension for a textual command language used to control a
	program.

	Look and feel includes such things as the {icons} used to
	represent certain functions such as opening and closing files,
	directories and {application programs} and changing the size
	and position of windows; conventions for the meaning of
	different buttons on a {mouse} and keys on the keyboard; and
	the appearance and operation of menus.

	A {user interface} with a consistent look and feel is
	considered by many to be an important factor in the ease of
	use of a computer system.  The success of the {Macintosh user
	interface} was partly due to its consistency.

	Because of the perceived importance of look and feel, there
	have been several legal actions claiming breech of {copyright}
	on the look and feel of user interfaces, most notably by
	{Apple Computer} against {Microsoft} and {Hewlett-Packard} (which Apple
	lost) and, later, by {Xerox} against {Apple Computer}.  Such legal
	action attempts to force suppliers to make their interfaces
	inconsistent with those of other vendors' products.  This can
	only be bad for users and the industry as a whole.

	(1995-03-03)

Looking Glass

	A {desktop} manager for {Unix} from {Visix}.

LOOKS

	["LOOKS: Knowledge-Representation System for Designing Expert
	Systems in a Logical Programming Framework", F. Mizoguchi,
	Proc Intl Conf 5th Gen Comp Sys, ICOT 1984].

loop

	<programming> A sequence of {instructions} that the
	{processor} repeats, either until some condition is met, or
	indefinitely.

	In an {structured language} (e.g. {C}, {Pascal}, {BASIC}, or
	{Fortran}), a loop is usually achieved with {for loop}, {while
	loop} or {repeat loop} constructs.

	In other languages these constructs may be synthesised with a
	{jump} ({assembly language}) or a {GOTO} (early Fortran or
	BASIC).

	(1999-05-06)

loop combination

	A {program transformation} where the bodies of two loops are
	merged into one thus reducing the overhead of manipulating and
	testing the control variable and branching.  Further
	optimisation of the merged code may then become possible.

	In {horizontal loop combination} the bodies of the loops are
	largely independent so only the loop overhead is saved.
	{Vertical loop combination} applies where the results of the
	first loop are used by the second.  Combining the two allows
	the intermediate results to be used immediately (in
	{registers}) rather than requiring them to be stored in an
	{array}.

	The functional equivalent of horizontal and vertical loop
	combination are {tupling} and {fusion}.

loop fusion

	{loop combination}

LOOPN

	<language, simulation, Petri net> A {compiler}, {simulator},
	and associated {source} control for an {object-oriented}
	{Petri net} language developed by Charles Lakos
	<Charles.Lakos@adelaide.edu.au> at the {University of
	Tasmania}.  In LOOPN, a Petri net is an extension of a
	{coloured timed Petri net}.  The extension means firstly that
	token types are {class}es.  In other words, they consist of
	both data fields and functions, they can be declared by
	inheriting from other token types, and they can be used
	{polymorphic}ally.  The object-oriented extensions also mean
	that module or subnet types are classes.

	LOOPN has been developed over a period of about five years at
	the University of Tasmania, where it has been used in teaching
	computer simulation and the modelling of {network}
	{protocols}.

	{(ftp://ftp.cs.adelaide.edu.au/pub/OPN/loopn/)}.

	(2000-09-02)

LOOPS

	{Lisp Object-oriented Programming System}

loop through

	To process each element of a list of things.  "Hold on, I've
	got to loop through my paper mail."  Derives from the
	computer-language notion of an iterative loop; compare "cdr
	down" (under {cdr}), which is less common among C and Unix
	programmers.  ITS hackers used to say "IRP over" after an
	obscure pseudo-op in the MIDAS PDP-10 assembler.

	[{Jargon File}]

loose bytes

	Commonwealth hackish term for the padding bytes or {shims}
	many compilers insert between members of a {record} or
	{structure} to cope with alignment requirements imposed by the
	machine architecture.

LOP

	A language based on {first-order logic}.

	["SETHEO - A High-Perormance Theorem Prover for First-Order
	Logic", Reinhold Letz et al, J Automated Reasoning
	8(2):183-212 (1992)].

lord high fixer

	[Primarily British, from Gilbert & Sullivan's "Lord High
	Executioner"] The person in an organisation who knows the most
	about some aspect of a system.  See {wizard}.

	[{Jargon File}]

Lore

	1. Object-oriented language for knowledge representation.
	"Etude et Realisation d'un Language Objet: LORE", Y. Caseau,
	These, Paris-Sud, Nov 1987.

	2. CGE, Marcoussis, France.  Set-based language [same as 1?]
	E-mail: Christophe Dony <chd.ibp.fr>

Lorem ipsum

	<text> A common piece of text used as mock-{content} when
	testing a given page layout or {font}.

	The following text is often used:

	"Lorem ipsum dolor sit amet, consectetaur adipisicing elit,
	sed do eiusmod tempor incididunt ut labore et dolore magna
	aliqua. Ut enim ad minim veniam, quis nostrud exercitation
	ullamco laboris nisi ut aliquip ex ea commodo consequat.  Duis
	aute irure dolor in reprehenderit in voluptate velit esse
	cillum dolore eu fugiat nulla pariatur. Excepteur sint
	occaecat cupidatat non proident, sunt in culpa qui officia
	deserunt mollit anim id est laborum."

	This continues at length and variously.  The text is not
	really Greek, but badly garbled Latin.  It started life as
	extracted phrases from sections 1.10.32 and 1.10.33 of
	Cicero's "De Finibus Bonorum et Malorum" ("The Extremes of
	Good and Evil"), which read:

	Sed ut perspiciatis unde omnis iste natus error sit voluptatem
	accusantium doloremque laudantium, totam rem aperiam, eaque
	ipsa quae ab illo inventore veritatis et quasi architecto
	beatae vitae dicta sunt explicabo.  Nemo enim ipsam voluptatem
	quia voluptas sit aspernatur aut odit aut fugit, sed quia
	consequuntur magni dolores eos qui ratione voluptatem sequi
	nesciunt.  Neque porro quisquam est, qui dolorem ipsum quia
	dolor sit amet, consectetur, adipisci velit, sed quia non
	numquam eius modi tempora incidunt ut labore et dolore magnam
	aliquam quaerat voluptatem.  Ut enim ad minima veniam, quis
	nostrum exercitationem ullam corporis suscipit laboriosam,
	nisi ut aliquid ex ea commodi consequatur?  Quis autem vel eum
	iure reprehenderit qui in ea voluptate velit esse quam nihil
	molestiae consequatur, vel illum qui dolorem eum fugiat quo
	voluptas nulla pariatur?

	At vero eos et accusamus et iusto odio dignissimos ducimus qui
	blanditiis praesentium voluptatum deleniti atque corrupti quos
	dolores et quas molestias excepturi sint occaecati cupiditate
	non provident, similique sunt in culpa qui officia deserunt
	mollitia animi, id est laborum et dolorum fuga.  Et harum
	quidem rerum facilis est et expedita distinctio.  Nam libero
	tempore, cum soluta nobis est eligendi optio cumque nihil
	impedit quo minus id quod maxime placeat facere possimus,
	omnis voluptas assumenda est, omnis dolor repellendus.
	Temporibus autem quibusdam et aut officiis debitis aut rerum
	necessitatibus saepe eveniet ut et voluptates repudiandae sint
	et molestiae non recusandae.  Itaque earum rerum hic tenetur a
	sapiente delectus, ut aut reiciendis voluptatibus maiores
	alias consequatur aut perferendis doloribus asperiores
	repellat.

	Translation:

	But I must explain to you how all this mistaken idea of
	denouncing pleasure and praising pain was born and I will give
	you a complete account of the system, and expound the actual
	teachings of the great explorer of the truth, the
	master-builder of human happiness.  No one rejects, dislikes,
	or avoids pleasure itself, because it is pleasure, but because
	those who do not know how to pursue pleasure rationally
	encounter consequences that are extremely painful.  Nor again
	is there anyone who loves or pursues or desires to obtain pain
	of itself, because it is pain, but because occasionally
	circumstances occur in which toil and pain can procure him
	some great pleasure.  To take a trivial example, which of us
	ever undertakes laborious physical exercise, except to obtain
	some advantage from it?  But who has any right to find fault
	with a man who chooses to enjoy a pleasure that has no
	annoying consequences, or one who avoids a pain that produces
	no resultant pleasure?

	On the other hand, we denounce with righteous indignation and
	dislike men who are so beguiled and demoralized by the charms
	of pleasure of the moment, so blinded by desire, that they
	cannot foresee the pain and trouble that are bound to ensue;
	and equal blame belongs to those who fail in their duty
	through weakness of will, which is the same as saying through
	shrinking from toil and pain.  These cases are perfectly
	simple and easy to distinguish.  In a free hour, when our
	power of choice is untrammelled and when nothing prevents our
	being able to do what we like best, every pleasure is to be
	welcomed and every pain avoided.  But in certain circumstances
	and owing to the claims of duty or the obligations of business
	it will frequently occur that pleasures have to be repudiated
	and annoyances accepted.  The wise man therefore always holds
	in these matters to this principle of selection: he rejects
	pleasures to secure other greater pleasures, or else he
	endures pains to avoid worse pains.

	-- Translation by H. Rackham, from his 1914 edition of De
	Finibus.

	However, since textual fidelity was unimportant to the goal of
	having {random} text to fill a page, it has degraded over the
	centuries, into "Lorem ipsum...".

	The point of using this text, or some other text of incidental
	intelligibility, is that it has a more-or-less normal (for
	English and Latin, at least) distribution of ascenders,
	descenders, and word-lengths, as opposed to just using "abc
	123 abc 123", "Content here content here", or the like.

	The text is often used when previewing the layout of a
	document, as the use of more understandable text would
	distract the user from the layout being examined.  A related
	technique is {greeking}.

	{Lorem Ipsum - All the facts (http://lipsum.com/)}.

	(2006-09-18)

Lorenz attractor

	<mathematics> (After {Edward Lorenz}, its discoverer) A region
	in the {phase space} of the solution to certain systems of
	(non-linear) {differential equations}.  Under certain
	conditions, the motion of a particle described by such as
	system will neither converge to a steady state nor diverge to
	infinity, but will stay in a bounded but chaotically defined
	region.  By {chaotic}, we mean that the particle's location,
	while definitely in the attractor, might as well be randomly
	placed there.  That is, the particle appears to move randomly,
	and yet obeys a deeper order, since is never leaves the
	attractor.

	Lorenz modelled the location of a particle moving subject to
	atmospheric forces and obtained a certain system of {ordinary
	differential equations}.  When he solved the system
	numerically, he found that his particle moved wildly and
	apparently randomly.  After a while, though, he found that
	while the momentary behaviour of the particle was chaotic, the
	general pattern of an attractor appeared.  In his case, the
	pattern was the butterfly shaped attractor now known as the
	{Lorenz attractor}.

	(1996-01-13)

LORIA

	{Laboratoire lorrain de recherche en informatique et ses applications}

lose

	<jargon> ({MIT}) 1. To fail.  A program loses when it
	encounters an exceptional condition or fails to work in the
	expected manner.

	2. To be exceptionally unesthetic or crocky.

	3. Of people, to be obnoxious or unusually stupid (as opposed
	to ignorant).

	4. Refers to something that is {losing}, especially in the
	phrases "That's a lose!" and "What a lose!"

	[{Jargon File}]

	(1995-04-19)

loser

	<jargon> An unexpectedly bad situation, program, programmer,
	or person.  Someone who habitually loses.  (Even winners can
	lose occasionally).  Someone who knows not and knows not that
	he knows not.  Emphatic forms are "real loser", "total loser",
	and "complete loser" (but not **"moby loser", which would be a
	contradiction in terms).

	See {luser}.

	[{Jargon File}]

	(1995-04-19)

losing

	<jargon> Said of anything that is or causes a {lose} or
	{lossage}.

	[{Jargon File}]

loss

	<jargon> Something (not a person) that loses; a situation in
	which something is losing.  Emphatic forms include "moby
	loss", and "total loss", "complete loss".  Common
	interjections are "What a loss!"  and "What a moby loss!"
	Note that "moby loss" is OK even though **"moby loser" is not
	used; applied to an abstract noun, moby is simply a magnifier,
	whereas when applied to a person it implies substance and has
	positive connotations.

	Compare {lossage}.

	(1995-04-19)

lossage

	<jargon> /los'*j/ The result of a {bug} or malfunction.  This
	is a mass or collective noun.  "What a loss!" and "What
	lossage!"  are nearly synonymous.  The former is slightly more
	particular to the speaker's present circumstances; the latter
	implies a continuing {lose} of which the speaker is currently
	a victim.  Thus (for example) a temporary hardware failure is
	a loss, but bugs in an important tool (like a compiler) are
	serious lossage.

	[{Jargon File}]

	(1995-04-19)

lossless

	<algorithm, compression> A term describing a data
	{compression} {algorithm} which retains all the information in
	the data, allowing it to be recovered perfectly by
	decompression.

	{Unix} {compress} and {GNU} {gzip} perform lossless
	compression.

	Opposite: {lossy}.

	(1995-03-29)

lossless audio compression

	<audio, compression> Any kind of {audio compression} in which
	the original signal and the decoded signal are bitwise
	identical.  Lossless audio compression algorithms are usually
	based on a data compression algorithm like {PKzip} or {gzip}
	but specialized for {PCM} audio data.  The signal is divided
	into predictable {tonal} components and unpredictable noisy
	components.  Tonal components are stored as coefficients of a
	predictor, the remaining signal is coded by {Rice coding},
	{Huffman coding} or {arithmetic coding}.

	(2001-12-24)

Lossless Predictive Audio Compression

	<audio, compression> (LPAC) A {lossless} {audio} {compression}
	{algorithm} with compression ratios from 1.5 to 4, depending
	on the input.  Software is available for {Microsoft Windows},
	{Linux} and {Solaris}.  LPAC files (*.pac) can be played with
	a {Winamp} {plug-in}.

	{(http://www-ft.ee.tu-berlin.de/~liebchen/lpac.html)}.

	(2001-12-17)

lossy

	<algorithm> A term describing a data {compression} {algorithm}
	which actually reduces the amount of information in the data,
	rather than just the number of bits used to represent that
	information.  The lost information is usually removed because
	it is subjectively less important to the quality of the data
	(usually an {image} or {sound}) or because it can be recovered
	reasonably by {interpolation} from the remaining data.

	{MPEG} and {JPEG} are examples of lossy compression
	techniques.

	Opposite: {lossless}.

	(1995-03-29)

lossy audio compression

	<audio, compression> Any audio compression algorithm which
	does not retain every bit of data but only reproduces a signal
	that sounds more or less like the original.  Examples are
	{MP1}, {MP2}, {MP3}, {AAC}.

	(2001-12-24)

lost in the noise

	Synonym {lost in the underflow}.  This term is from signal
	processing, where signals of very small amplitude cannot be
	separated from low-intensity noise in the system.  Though
	popular among hackers, it is not confined to hackerdom;
	physicists, engineers, astronomers, and statisticians all use
	it.

	[{Jargon File}]

lost in the underflow

	<jargon> Too small to be worth considering; more specifically,
	small beyond the limits of accuracy or measurement.  This is a
	reference to "{floating point underflow}".

	The {Hacker's Jargon File} claimed that it is also a pun on
	"undertow" (a kind of fast, cold current that sometimes runs
	just offshore and can be dangerous to swimmers).

	"Well, sure, photon pressure from the stadium lights alters
	the path of a thrown baseball, but that effect gets lost in
	the underflow".

	Compare {epsilon}, {epsilon squared}; see also {overflow bit}.

	(1997-09-05)

LOTIS

	LOgic, TIming, Sequencing.  A language which describes a
	computer via its data flow.

	[Sammet 1969, p. 620].

LOTOS

	{Language Of Temporal Ordering Specification}

lots of MIPS but no I/O

	Used to describe a person who is technically brilliant but
	can't seem to communicate with human beings effectively.
	Technically it describes a machine that has lots of processing
	power but is bottlenecked on input-output (in 1991, the IBM
	Rios, a.k.a. RS/6000, is a notorious recent example).

	[{Jargon File}]

Lotus 1-2-3

	<tool, product> A {spreadsheet} for {MS-DOS} from {Lotus
	Development Corporation}.  It can be programmed using
	"{macros}" and comes with a separate program to produce graphs
	and charts but this cannot be run at the same time as the
	spreadsheet.  It has keyboard-driven {pop-up menus} as well as
	one-key commands, making it fast to operate.  Lotus 1-2-3
	supported {EGA} and later {VGA} graphics.  Early versions used
	the {filename extension} "WK1".

	Version: 4.

	Lotus 1-2-3 has been the subject of several {user interface
	copyright} court cases in the US.

	{(http://nyweb.com/lotus/123.html)}.

	1-2-3's successor, {Symphony}, had simultaneous update of
	spreadsheet, graph and {word processor} windows.

	(1995-11-28)

Lotus Development Corporation

	<company> A software company who produced {Lotus 1-2-3}, the
	{Symphony} {spreadsheet} and {Lotus Notes} for the {IBM PC}.

	Disliked by the {League for Programming Freedom} on account of
	their lawsuits.

	Quarterly sales $224M, profits $10M (Aug 1994).

	Telephone: +1 (617) 225 1284.

	[Where are they?  Founded when?  Other products?  E-mail?
	Internet?]

	(1994-11-16)

Lotus Notes

	A group of {application programs} from {Lotus Development
	Corporation} which allows organisations to share documents and
	exchange {electronic mail} messages.  Notes supports
	{replication}.

	(1994-10-27)

Lotus Notes Formula Language

	<language> A {macro} language for {Lotus Notes} that uses
	commands starting with @, e.g. @If, @Left, @Right, @Username.
	Many Notes applications are built with just this language.

	(2003-10-06)

LotusScript

	<language> A {Visual BASIC}-like {scripting language} for
	{Lotus Notes} and {Lotus SmartSuite}.  LotusScript is
	{object-oriented} and can be used for complex Notes
	programming, although {Java} is also available.

	{LotusScript Documentation
	(http://lotus.com/products/lotusscript.nsf)}.

	(2003-10-06)

loudspeaker

	<audio, hardware> An electromechanical device for converting
	an electrical signal into sound.

	(2008-10-09)

Lout

	Lout is a batch text formatting system and an embedded
	language by Jeffrey H. Kingston <jeff@cs.su.oz.au>.  The
	language is procedural, with {Scribe}-like {syntax}.

	Lout features equation formatting, tables, diagrams, rotation
	and scaling, sorted indexes, bibliographic databases, running
	headers and odd-even pages and automatic cross-referencing.
	Lout is easily extended with definitions which are very much
	easier to write than {troff} of {TeX} {macros} because Lout is
	a {high-level language}, the outcome of an eight-year research
	project that went back to the beginning.

	Version 2.05 includes a translator from Lout to {PostScript}
	and documentation. and runs under {Unix} and on the {Amiga}.

	{Author's site (ftp://ftp.cs.su.oz.au/jeff/lout.2.03.tar.Z)},
	{(ftp://ftp.uu.net/tmp/lout.tar.Z)}.  {Amiga
	(ftp://ftp.wustl.edu/pub/aminet/text/dtp/loutBin203.lha)}.

	(1993-07-30)

love

	<humour> What some users feel for computers.

	"There is no truth in the rumour that I love computers, it's
	just what I tell them to get them to bed."

		-- Terry Pratchett

	[What did you expect in a computing dictionary?]

	(2007-05-11)

low-bandwidth

	[communication theory] Used to indicate a talk that, although
	not {content-free}, was not terribly informative.  "That was a
	low-bandwidth talk, but what can you expect for an audience of
	{suits}!"  Compare {zero-content}, {bandwidth}, {math-out}.

	[{Jargon File}]

Low Bandwidth X

	<networking> (LBX) An implementation of the {X Window System}
	designed to improve performance over {ISDN}, {WAN}, and
	{serial lines}.

	[Details?]

	(2003-07-09)

low earth orbit

	<communications> (LEO) The kind of orbit used by
	communications satellites that will offer high {bandwidth} for
	{video on demand}, television, and {Internet} communications.
	A satellite in LEO, in contrast to one in a {geostationary
	orbit}, is not in a fixed position relative to the Earth's
	surface so several satellites are required to provide
	continuous service.

	[Ovum report, "Applications for the superhighway", John
	Moroney].

	(1996-02-06)

Lower Layer Protocol

	<networking, protocol> (LLP, or lower-layer protocol)
	Any {protocol} residing in {OSI} layers one to four.

	These protocols package, {route}, verify and transmit
	{datagrams}.  A prime example would be {TCP/IP}.  Lower layer
	protocols support the {upper layer protocols}.

	(1999-02-17)

lower set

	<mathematics> A {finite} non-empty {downward closed} subset of
	a {partial order}.

	(1999-03-17)

Low Insertion Force

	<hardware> (LIF) {PGA}/{SPGA} sockets with no handle.  The
	{integrated circuit} is simply pushed into the socket, and
	levered out to remove.  Most {motherboard} {processor} sockets
	are now {ZIF} rather than LIF.

	(1999-08-05)

LOWL

	<language> The {abstract machine} for {bootstrapping} {ML/1},
	developed by P.J. Brown of the {University of Kent at
	Canterbury}.

	["Macro Processors and Techniques for Portable Software",
	P.J. Brown, published by Wiley, ISBN 0.471.11005.1].

	[Mentioned in "Machine Oriented Higher Level Languages",
	W. van der Poel, N-H 1974, p. 271].

	[What does LOWL stand for?]

	(1997-11-04)

low-level language

	<language> Any {programming language} which either is
	{assembly language}, or which is meant to be closely related
	to, and easily translated into, {machine language}.  Low-level
	languages lack the amenities of {high-level languages} but it
	may be possible to write more efficient code in them.

	(2000-08-10)

low pass filter

	<electronics, graphics> A filter that attenuates high
	frequency components of a signal.

	In {image processing}, a low pass filter might be used to
	remove {noise} from an {image}.

	(2000-04-19)

Low Voltage Differential

	<hardware> (LVD) A method of driving {SCSI} cables that will
	be formalised in the {SCSI-3} specifications.  LVD uses less
	power than the current differential drive ({HVD}), is less
	expensive and will allow the higher speeds of {Ultra-2 SCSI}.
	LVD requires 3.3 Volts DC instead of 5 Volts DC for HVD.

	(1999-02-16)

LPAC

	1. <audio, compression> {Lossless Predictive Audio Compression}.

	2. {London Parallel Applications Centre}.

	(2001-12-17)

LPC

	<language> A variant of {C} designed ca 1988 to program
	{LP MUDs}.

	(1995-04-18)

LPF

	{League for Programming Freedom}

LPG

	1. Linguaggio Procedure Grafiche (Italian for "Graphical
	Procedures Language").  dott. Gabriele Selmi.  Roughly a cross
	between Fortran and APL, with graphical-oriented extensions
	and several peculiarities.  Underlies the products of CAD.LAB
	Spa.  "Graphical Procedure Language User's Guide and Reference
	Manual", CAD.LAB, Bologna, Italy, 1989, order code GO89/9.

	2. Langage de Programmation Generique.  An applicative
	language, both specification and functional.  Special emphasis
	on parametrised declarations.  "Design and Implementation of a
	Generic, Logic and Functional Programming Language", D. Bert
	et al, ESOP 86, LNCS 213, Springer 1986.

LPI

	<language> A {PL/I} {interpreter} for {IBM PCs} and
	{workstations}.

	{(ftp://ftp.wustl.edu/mirrors/msdos/pli/runpli1a.arc)}.

	E-mail: <rcg@lpi.liant.com>.

	(1999-09-03)

LPL

	List Programming Language.  LISP-like language with ALGOL-like
	syntax, for IBM 360.  "LPL - LISP Programming Language",
	F.W. Blair et al, RC 3062, IBM TJWRC, Sep 1970.

lpm

	{lines per minute}

LP MUD

	<games> A kind of player-programmable multi-user adventure
	game.

	[More details?]

	See {MUD}.

lpr

	Line printer.  The {Unix} print command.  This does not
	actually print files but rather copies (or links) them to a
	{spool} area from where a {daemon} copies them to the printer.

LPS

	Sets with restricted {universal quantifiers}.

	["Logic Programming with Sets", G. Kuper, J Computer Sys Sci
	41:44-64 (1990)].

lp spooler

	<printer> A {line printer} {spooler}.

	(2000-04-03)

LPT

	/L-P-T/ or /lip'it/ or /lip-it'/ Line printer.  Rare under
	{Unix}, more common among hackers who grew up with {ITS},
	{MS-DOS}, {CP/M} and other {operating systems} that were
	strongly influenced by early {DEC} conventions.

	[{Jargon File}]

lr

	<networking> The {country code} for Liberia.

	(1999-01-27)

LRC

	{Longitudinal Redundancy Check}

LRLTRAN

	Lawrence Radiation Laboratory TRANslator.

	A {Fortran} extension with vector arithmetic and {dynamic
	storage}, used for scientific work and systems programming,
	including the {LTSS} {operating system}.

	["The LRLTRAN Compiler", S.F. Mendicino, CACM 11(11):747-775
	(Nov 1969)].

LRU

	{Least Recently Used}

ls

	1. <file system, tool> The {Unix} command for listing a
	{directory}.

	{Unix manual page}: ls(1).

	2. <networking> The {country code} for Lesotho.

	(2000-03-18)

LSA

	{Link State Advertisement}

LSB

	1. {Least Significant Bit}.

	2. (Rarely) Least Significant Byte.

LSE

	{Language Sensitive Editor}

LSL

	1. Larch Shared Language.  An assertion language.  (See
	Larch).

	2. Link and Selector Language.  Graphic query language.  "LSL:
	A Link and Selector Language", D.C. Tsichritzis, Proc Intl
	Conf Management of Data, ACM 1976, pp.123-134.

LSML

	{Lazy Standard ML}

L-Soft

	An international corporation formed by Eric Thomas, the author
	of {Listserv}, to develop it and port it to platforms other
	than the {IBM} {VM} {operating system}, including {Unix}.
	Listserv has been enhanced to use both the {Internet} and
	{BITNET}.

	(1995-02-22)

LSP

	{Label Switched Path}

LSR

	1. <networking> {Label Switching Router}.

	2. <operating system> {Local Shared Resources}.

	(2002-02-17)

LSSD

	{level-sensitive scan design}

LSYD

	Language for SYstems Development.

	A {PL/I}-like language with data structure and character
	extensions.

	["Systems Programming Languages", R.D. Bergeron et al, in
	Advances in Computers 1971, A-P].

	(1995-01-31)

lt

	<networking> The {country code} for Lithuania.

	(1999-01-27)

LT-2

	An early system on the {IBM 701}.

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

	(1995-01-31)

LTL

	{Linear Temporal Logic}

LTPS

	{Low Temperature Polysilicon}

LTR

	Langage Temps-Réel.

	(French for "real-time language") A French predecessor to
	{Ada}, LTR is {Modula}-like with a set of special-purpose
	{real-time} constructs based on an event model.  It was
	mentioned in the reference below.

	["An Overview of Ada", J.G.P. Barnes, Soft Prac & Exp
	10:851-887 (1980)].

	(1995-01-31)

LTR3

	Version three of {LTR}, by A. Parayre of Delegation Generale
	pour l'Armement, France.  LTR3 was widely used by the French
	military and avionics companies.

	["The LTR3 Reference Manual", A. Parayre, Delegation Generale
	pour l'Armement, France].

	(1995-01-31)

lu

	<networking> The {country code} for Luxembourg.

	(1999-01-27)

LU6.2

	{Logical Unit 6.2}

lub

	{least upper bound}

Lubarsky's Law of Cybernetic Entomology

	<humour> There is always one more {bug}.

	[{Jargon File}]

	(2001-07-12)

Lucent Technologies

	<company, telecommunications, Unix> The former systems and
	equipment portion of {AT&T} (including {Bell Laboratories}),
	split off in 1996.

	{Lucent Home (http://lucent.com/)}.

	(2002-06-23)

LUCID

	1. Early query language, ca. 1965, System Development Corp,
	Santa Monica, CA.  [Sammet 1969, p.701].

	2. A family of dataflow languages descended from {ISWIM},
	{lazy} but {first-order}.

	Ashcroft & Wadge <wwadge@csr.uvic.ca>, 1981.

	They use a dynamic {demand driven} model.  Statements are
	regarded as equations defining a network of processors and
	communication lines, through which the data flows.  Every data
	object is thought of as an infinite {stream} of simple values,
	every function as a {filter}.  Lucid has no {data
	constructors} such as {arrays} or {records}.  {Iteration} is
	simulated with 'is current' and 'fby' (concatenation of
	sequences).  Higher-order functions are implemented using pure
	dataflow and no closures or heaps.

	["Lucid: The Dataflow Language" by Bill Wadge
	<wwadge@csr.UVic.CA> and Ed Ashcroft, c. 1985].  ["Lucid, the
	Dataflow Programming Language", W. Wadge, Academic Press
	1985].

	(1995-02-16)

Lucid Emacs

	{Xemacs}

Lucinda

	<language> A language which combines {Russell}-like
	{polymorphism} with {Linda}-like {concurrency}.  Lucinda is
	implemented as a {threaded interpreter} written in {C}, for a
	{Sun} network and a {Meiko Computing Surface}.

	["Lucinda - An Overview", P. Butcher, U York et al, SIGPLAN
	Notices 26(8):90-100, Aug 1991].

	E-mail: Alan Wood <wood@cs.york.ac.uk>.

	(1996-08-20)

Lucy

	<language> A {distributed} {constraint programming} language,
	which is an {actor} subset of {Janus}.

	["Actors as a Special Case of Concurrent Constraint
	Programming", K.  Kahn <kahn@parc.xerox.com> et al, SIGPLAN
	Notices 25(10):57-66 (OOPSLA/ ECOOP '90), Oct 1990].

	(2001-03-04)

LUG

	{Linux User Group}

luminance

	{brightness}

lump uncurrying

	Chin's generalisation of {uncurrying}.  A curried function
	taking several {tuples} as arguments can be transformed to
	take a single tuple containing all the components of the
	original tuples.

LUN

	{Logical Unit Number}

lunatic fringe

	[IBM] Customers who can be relied upon to accept release 1
	versions of software.

	[{Jargon File}]

Lund Simula

	<language> A version of {SIMULA} from {Lund Software House}.

	Version 4.07.

	(FTP: rascal.ics.utexas.edu/misc/mac/programming/ no longer
	exists).

	(1995-03-29)

Lund Software House AB

	<company> The company who produced {Lund Simula}.

	Address: Box 7056, S-22007 Lund, Sweden.

	(1995-03-29)

lurk

	{lurking}

lurker

	{lurking}

lurking

	<messaging, jargon> The activity of one of the "silent
	majority" in a electronic forum such as {Usenet}; posting
	occasionally or not at all but reading the group's postings
	regularly.  This term is not pejorative and indeed is casually
	used reflexively: "Oh, I'm just lurking".  Often used in "the
	lurkers", the hypothetical audience for the group's
	{flamage}-emitting regulars.

	Lurking and reading the {FAQ} are recommended {netiquette} for
	beginners who need to learn the history and practises of the
	group before posting.

	(1997-06-14)

luser

	<jargon, abuse> /loo'zr/ A {user}; especially one who is also
	a {loser}.  ({luser} and {loser} are pronounced identically.)
	This word was coined around 1975 at {MIT}.

	Under {ITS}, when you first walked up to a terminal at MIT and
	typed Control-Z to get the computer's attention, it printed
	out some status information, including how many people were
	already using the computer; it might print "14 users", for
	example.  Someone thought it would be a great joke to patch
	the system to print "14 losers" instead.  There ensued a great
	controversy, as some of the users didn't particularly want to
	be called losers to their faces every time they used the
	computer.  For a while several hackers struggled covertly,
	each changing the message behind the back of the others; any
	time you logged into the computer it was even money whether it
	would say "users" or "losers".  Finally, someone tried the
	compromise "lusers", and it stuck.

	Later one of the ITS machines supported "luser" as a
	request-for-help command.  ITS died the death in mid-1990,
	except as a museum piece; the usage lives on, however, and the
	term "luser" is often seen in program comments.

	See: also {LART}.  Compare: {tourist}, {weenie}.

	[{Jargon File}]

	(1998-07-01)

Luser Attitude Re-adjustment Tool

	<jargon> (LART) Something large, heavy and painful, used to
	respond appropriately to particularly annoying {lusers}.

	The alt.sysadmin.recovery {FAQ} recommends the following
	LARTs.  A 2x4 works fine, but a real professional needs
	something a little more effective.  Unfortunately, this is a
	very personal thing, and no consensus has yet been reached on
	the group.  Everything from a simple, 7.65mm Walther (for the
	Bond fans only, it's not a very good gun) to a 155mm with
	depleted Uranium rounds has been suggested, some even going
	for exotic things like Thermite, nukes or flamethrowers.  For
	further info, look at the rec.guns home page.

	{alt.sysadmin.recovery FAQ
	(http://ctrl-c.liu.se/~ingvar/asr/overview.html)}.

	(1998-12-09)

LUSTRE

	(A French acronym for Synchronous real-time Lucid).  Real-time
	dataflow language for synchronous systems, especially
	automatic control and signal processing.  A {Lucid} subset,
	plus timing operators and user-defined clocks.

	Designed for automatic control applications.  It is based on
	the idea that automatic control engineers use to analyse, and
	specify their systems in terms of functions over sequences
	(sampled signals).  It thus seems both safe and cost effective
	to try to compile directly those descriptions into executable
	code.  A lot of work has been done, so as to get efficient
	compilation, and also in formal verification.  The language
	has been used in nuclear plant control, and will be used in
	aircraft control.

	["Outline of a Real-Time Data-Flow Language", J.-L. Bergerand
	et al, Proc IEE-CS Real Time Systems Symp, San Diego, IEEE Dec
	1985, pp. 33-42].

	["LUSTRE: A Declarative Language for Programming Synchronous
	Systems", P. Caspi et al, Conf Rec 14th Ann ACM Symp on Princ
	Prog Langs, 1987].

	(1994-10-12)

lv

	<networking> The {country code} for Latvia.

	(1999-01-27)

lvalue

	<programming> A reference to a location, an expression which
	can appear as the destination of an {assignment} operator
	indicating where a value should be stored.  For example, a
	variable or an array element are lvalues but the constant 42
	and the expression i+1 are not.  A constant string may or may
	not be an lvalue (it usually is in {C}).

	(1995-04-28)

LVD

	{Low Voltage Differential}

LWP

	<programming> {light-weight process}.

	(1996-02-22)

ly

	<networking> The {country code} for Libya.

	(1999-01-27)

LYaPAS

	(Russian acronym for "Logical Language for the Representation
	of Synthesis Algorithms")

	A language for the {URAL-1} computer.  It was coded in
	{octal}!

	["LYaPAS: A Programming Language for Logic and Coding
	Algorithms", M.A. Gavrilov et al eds, Academic Press 1969].

	(1995-02-16)

Lycos

	<World-Wide Web> A {World-Wide Web} index, served by {Carnegie
	Mellon University}.  It allows you to search on document title
	and content for a list of keywords.  Lycos is probably the
	biggest such index on the web.  By April 1995, the Lycos
	database contained 2.95 million unique documents.

	The Lycos database is built by a {Web crawler} that can bring
	in 5000 documents per day.  The index searches document title,
	headings, links, and keywords it locates in these documents.

	The Lycos servers are efficient but overloaded.  Failure to
	connect or "please try later" messages are common.

	{(http://lycos.cs.cmu.edu/)}.

	(1995-04-06)

lylafklc

	<chat> Love you like a fat kid loves cake.

	(2006-12-12)

lynix

	<spelling> Misspelling of "{Linux}" (the {Unix} {clone}), or
	possibly "{lynx}" (the {World-Wide Web} {browser}).

	(1995-04-06)

LYNX

	A language for large distributed {networks}, using {remote
	procedure calls}, developed by the {University of Wisconsin}
	in 1984.

	["The Lynx Distributed Programming Language: Motivation,
	Design and Experience", M.L. Scott, Computer Langs 16:209-233
	(1991)].

	(1994-10-12)

Lynx

	1. A {WWW} {browser} from the {University of Kansas} for use
	on {cursor-addressable}, {character cell} {terminals} or
	{terminals emulators} under {Unix} or {VMS}.  Lynx is a
	product of the Distributed Computing Group within Academic
	Computing Services of The {University of Kansas}.  Lynx was
	originally developed by Lou Montulli, Michael Grobe and
	Charles Rezac.  Garrett Blythe created {DosLynx} and later
	joined the Lynx effort as well.  Foteos Macrides ported much
	of Lynx to VMS and is now maintaining it.

	Version: 2.4-FM (1995-10-25).

	{(http://cc.ukans.edu/about_lynx/about_lynx.html)}.

	Mailing list: lynx-dev@ukanaix.cc.ukans.edu (send "subscribe
	lynx-dev <your-name>" in the message body to
	listserv@ukanaix.cc.ukans.edu).

	(1994-12-07)

	2. {Lynx Real-Time Systems}.

	(1996-03-25)

LynxOS

	A {POSIX} compliant {real-time} {operating system} from {Lynx
	Real-Time Systems}.  It has a {Unix}-like interface to
	{application programs}.

	(1994-10-12)

Lynx Real-Time Systems

	A company in Los Gatos, California who distribute {LynxOS}.

	{(http://lynx.com/)}.

	E-mail: <sales@lynx.com>, <support@lynx.com>.

	Address: 16780 Lark Avenue, Los Gatos, CA 95030, USA.

	Telephone:: +1 (408) 354 7770, +1 (800) 255 LYNX. Fax: +1
	(408) 354 7085.

	(1995-01-18)

LYRIC

	Language for Your Remote Instruction by Computer.  A {CAI}
	language implemented as a {Fortran} {preprocessor}.

	["Computer Assisted Instruction: Specification of Attributes
	for CAI Programs and Programmers", G.M. Silvern et al, Proc
	ACM 21st Natl Conf (1966)].

	(1994-10-12)

LZ77 compression

	The first {algorithm} to use the {Lempel-Ziv} {substitutional
	compression} schemes, proposed in 1977.  LZ77 compression
	keeps track of the last n bytes of data seen, and when a
	phrase is encountered that has already been seen, it outputs a
	pair of values corresponding to the position of the phrase in
	the previously-seen buffer of data, and the length of the
	phrase.  In effect the compressor moves a fixed-size "window"
	over the data (generally referred to as a "sliding window"),
	with the position part of the (position, length) pair
	referring to the position of the phrase within the window.

	The most commonly used {algorithms} are derived from the
	{LZSS} scheme described by James Storer and Thomas Szymanski
	in 1982.  In this the compressor maintains a window of size N
	bytes and a "lookahead buffer", the contents of which it tries
	to find a match for in the window:

	 while (lookAheadBuffer not empty)
	 {
	     get a pointer (position, match) to the longest match in
	     the window for the lookahead buffer;

	     if (length > MINIMUM_MATCH_LENGTH)
	     {
	       output a (position, length) pair;
	       shift the window length characters along;
	     }
	     else
	     {
	       output the first character in the lookahead buffer;
	       shift the window 1 character along;
	     }
	  }

	Decompression is simple and fast: whenever a (POSITION,
	LENGTH) pair is encountered, go to that POSITION in the window
	and copy LENGTH bytes to the output.

	Sliding-window-based schemes can be simplified by numbering
	the input text characters mod N, in effect creating a circular
	buffer.  The sliding window approach automatically creates the
	{LRU} effect which must be done explicitly in {LZ78} schemes.
	Variants of this method apply additional compression to the
	output of the LZSS compressor, which include a simple
	variable-length code ({LZB}), dynamic {Huffman coding}
	({LZH}), and {Shannon-Fano} coding ({ZIP} 1.x), all of which
	result in a certain degree of improvement over the basic
	scheme, especially when the data are rather random and the
	LZSS compressor has little effect.  An algorithm was developed
	which combines the ideas behind LZ77 and LZ78 to produce a
	hybrid called {LZFG}.  LZFG uses the standard sliding window,
	but stores the data in a modified {trie} data structure and
	produces as output the position of the text in the trie.
	Since LZFG only inserts complete *phrases* into the
	dictionary, it should run faster than other LZ77-based
	compressors.

	All popular archivers ({arj}, {lha}, {zip}, {zoo}) are
	variations on LZ77.

	[comp.compression {FAQ}].

	(1995-04-07)

LZ78 compression

	A {substitutional compression} scheme which works by entering
	phrases into a dictionary and then, when a reoccurrence of
	that particular phrase is found, outputting the dictionary
	index instead of the phrase.  Several {algorithms} are based
	on this principle, differing mainly in the manner in which
	they manage the dictionary.

	The most well-known Lempel-Ziv scheme is Terry Welch's
	{Lempel-Ziv Welch} variant of LZ78.

	[comp.compression {FAQ}].

LZ compression

	{Lempel-Ziv compression}

lzexe

	An executable file {compression} utility for {MS-DOS}.  It
	adds a minimal header to the executable to decompress it when
	it is executed.  See also {pklite}.

lzh

	<filename extension> The {filename extension} for a file
	produced by the {LHA} program.

	(1995-04-03)

LZH compression

	<algorithm> (After Lempel-Ziv and Haruyasu, the inventors) A
	{compression} {algorithm} derived from the {LZSS} scheme with
	a sliding window and additional compression applied to the
	output of the LZSS compressor by {dynamic Huffman coding}.

	(1995-04-07)

LZW compression

	{Lempel-Ziv Welch compression}

M

	1. Alternative name for {MUMPS}.

	2. A {C}-like language from {Silicon Compiler Systems} for
	multilevel {hardware description}.  It is currently available
	in the {GDT} package from {Mentor Graphics}.

	[{Jargon File}]

	(1994-10-26)

	3. <unit> The abbreviated for of {mega-}.

	(1995-01-10)

m2

	A {Modula-2} {compiler} for {VAX} and {MIPS}.  A {Pascal}
	compiler for VAX is also included.  The Pascal compiler
	accepts a language that is almost identical to {Berkeley
	Pascal}.  It was originally designed and built by Michael L.
	Powell in 1984.  Joel McCormack made it faster, fixed lots of
	bugs, and swiped/wrote a User's Manual.  Len Lattanzi ported
	it to the MIPS.

	It has the following extensions: {foreign function} and data
	interface, {dynamic array} variables, {subarray parameters},
	multi-dimensional {open array parameters}, {inline
	procedures}, longfloat type, type-checked interface to {C}
	library I/O routines.

	It runs on {VAX} ({Ultrix}, {BSD}) and {MIPS} ({Ultrix}).

	{(ftp://gatekeeper.dec.com/pub/DEC/Modula-2/m2.tar.Z)}.

	E-mail: <modula-2@decwrl.pa.dec.com>.

	(1992-07-06)

M2toM3

	A simple {Modula-2} to {Modula-3} translator by Peter Klein
	<pk@i3.informatik.rwth-aachen.de> which covers most of the
	syntactic differences between those languages.  No context
	sensitive analysis is done, so WITH statements, local
	{modules}, {enumeration type} literals and {variant RECORDs}
	have to be dealt with by hand.  Part of the {Sun} Modula 2
	library is emulated by the Modula 3 library.

	Version 1.01.

	{(ftp://martha.informatik.rwth-aachen.de/pub/Modula3)}.

	(1992-12-01)

M3

	A {macro} processor, forerunner of {M4}, for the {AP-3}
	{minicomputer}.

m4

	A {macro} processor for {Unix} and {GCOS} which is more
	flexible than {cpp}.  m4 copies its input to the output,
	expanding macros which can be either built-in or user-defined.
	m4 has built-in functions for including files, running {Unix}
	commands, doing integer arithmetic, manipulating text in
	various ways and recursing.  m4 can be used either as a
	{front-end} to a compiler or as a stand-alone tool.

	{sendmail}'s configuration file (/etc/sendmail.cf) is writen
	in m4 macros.

	There is a {GNU m4 v1.1
	(ftp://gnu.org/pub/gnu/m4-1.0.tar.Z)} by Francois
	Pinard <pinard@iro.umontreal.ca> and a {public domain} version
	by Ozan Yigit <oz@sis.yorku.ca> and Richard A. O'Keefe
	<ok@goanna.cs.rmit.OZ.AU> (FTP from any {386BSD}, {NetBSD} or
	{FreeBSD} archive).  A {Macintosh} version is {here
	(ftp://nic.switch.ch/pub/software/mac/src/mpw-c/)}.

	See also {m3}, {m5}.

	["The M4 Macro Processor",
	Kernighan & Ritchie, Jul 1977].

M5

	Macro processor, a generalisation of {M4} by A. Dain, U
	Cincinnati, 1992.  For Unix and DOS.

	{(ftp://thor.exe.u.edu/pub/dain/m5)}.

ma

	<networking> The {country code} for Morocco.

	(1999-01-27)

MAC

	1. {Media Access Control}.

	2. Early system on {Ferranti} {Mercury}.  Listed in CACM
	2(5):16 (May 1959).

Mac

	<computer> The line of computers manufactured by {Apple Inc}.
	"Mac" is not primarily a nickname or an abbreviation, but a
	brand name and trademark in its own right.  Apple currently
	(2009) refer to the brand as any of "Mac", "iMac" or
	"Macintosh" (all registered trademarks).

	The Mac was Apple's successor to the {Lisa}.  The project was
	proposed by {Jef Raskin} some time before {Steve Jobs}'s
	famous visit to {Xerox PARC}.  Jobs tried to scuttle the
	Macintosh project and only joined it later because he wasn't
	trusted to manage the {Lisa} project.

	The {Macintosh user interface} was notable for popularising
	the {graphical user interface}, with its easy to learn and
	easy to use {desktop} metaphor.

	The first Macintosh, introduced in January 1984, had a
	{Motorola 68000} {CPU}, 128K of {RAM}, a small {monochrome}
	screen, and one built-in {floppy disk} drive with an external
	slot for one more, two {serial ports} and a four-voice sound
	generator.  This was all housed in one small plastic case,
	including the screen.  When more memory was available later in
	the year, a 512K Macintosh was nicknamed the "Fat Mac."

	The Mac Plus (January 1986) added expandability by providing
	an external {SCSI} port for connecting {hard disks}, {magnetic
	tape}, and other high-speed devices.

	The Mac SE (March 1987) had up to four megabytes of {RAM}, an
	optional built-in 20 megabyte hard disk and one internal
	expansion slot for connecting a third-party device.

	The Mac II (March 1987) used the faster {Motorola 68020} {CPU}
	with a 32-bit {bus}.

	In 1994 the {Power Mac} was launched, and in 1999 the {iMac}
	was introduced.  The {SuperDrive} appeared in the iMac in 2002.

	The {Macintosh Operating System} is now officially called "Mac
	OS".  Mac OS X is the successor to Mac OS 9, although its
	technological parent is the {NEXTSTEP} OS from {Next, Inc.},
	founded by Steve Jobs after he left Apple the first time.  OS
	X is based largely on the {BSD} UNIX system.  The core of the
	OS X operating system is released as free {source code} under
	the project name {Darwin}.

	The standard Macintosh screen {resolution} is 72 {dpi} (making
	one {point} = one {pixel}), exactly half the 144 dpi
	resolution of the ancient {Apple Imagewriter} {dot matrix}
	printer.

	If "Macintosh" were an acronym, some say it would stand for
	"Many Applications Crash, If Not, The Operating System Hangs".
	While this was true for pre Mac OS 9 systems, it is less true
	for Mac OS 9, and totally incorrect for Mac OS X, which has
	protected memory, so even if one application crashes, the
	system and other applications are unaffected.

	See also {Macintosh file system}, {Macintosh user interface}.

	{Apple Home (http://apple.com/mac)}.

	(2009-05-05)

Mac-1

	<language> The {assembly language} used in the book cited
	below.

	See {Mic-1}.

	["Structured Computer Organization", A.S. Tanenbaum, 3rd
	Edition, P-H 1989, Sect. 4.3].

	(1996-04-07)

MAC-360

	A system for solving numerical problems using equation-like
	input.  Developed around 1967.

	["User's Guide to MAC-360", Charles Stark Draper Lab,
	Cambridge MA (Aug 1973)].

	[Sammet 1969, p. 264].

MACA

	{Multiple Access with Colision Avoidance}

MAC address

	The hardware address of a device connected to a shared
	{network} medium.  See also {Media Access Control}.

MACAnalyst

	An analysis {CASE} tool for the {Macintosh} from {Excel
	Software, Inc.}

Macaulay

	A {symbolic mathematics} package for {commutative algebra},
	{algebraic geometry} and {cohomology}, written in {C} by Mike
	Stillman <mike@mssun7.msi.cornell.edu> and Dave Bayer
	<bayer@cUnixa.columbia.edu> in 1977.  Version 3 runs on {Sun},
	{Macintosh} and {Amiga}.

	{(ftp://zariski.harvard.edu/)}.

	(1994-10-12)

MacBinary

	<file format> An eight-bit wide representation of the data and
	{resource forks} of an {Macintosh} file and of relevant
	{Finder} information.  MacBinary files are recognised as
	"special" by several MacIntosh {terminal emulators}.  These
	emulators, using {Kermit} or {XMODEM} or any other file
	transfer protocol, can separate the incoming file into {forks}
	and appropriately modify the {Desktop} to display {icons},
	types, creation dates, and the like.

	(1995-03-08)

MACDesigner

	A design CASE tool for the Mac from {Excel Software, Inc.}

macdink

	/mak'dink/ To make many incremental and unnecessary cosmetic
	changes to a program or file.  Often the subject of the
	macdinking would be better off without them.  The {Macintosh}
	is said to encourage such behaviour.

	See also {fritterware}, {window shopping}.

	[{Jargon File}]

	(1994-11-22)

MACE

	A concurrent {object-oriented} language.

Mach

	An operating system kernel under development at
	Carnegie-Mellon University to support distributed and parallel
	computation.  Mach is designed to support computing
	environments consisting of networks of uniprocessors and
	multiprocessors.  Mach is the kernel of the {OSF}/1.

Machiavelli

	An extension of {Standard ML} developed by Peter Buneman &
	Atsushi Ohori of the {University of Pennsylvania} in 1989,
	based on {orthogonal persistence}.

	["Database Programming in Machiavelli: A Polymorphic Language
	with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM,
	June 1989].

	(1995-02-21)

machinable

	{Machine-readable}.  Having the {softcopy} nature.

	[{Jargon File}]

machine

	Common term for "computer", usually when considered at the
	hardware level.  The {Turing Machine}, an early example of
	this usage, was however neither hardware nor software, but
	only an idea.

	[Earlier use?]

	(1995-02-15)

machine code

	<language> The representation of a {computer program} that is
	read and interpreted by the computer hardware (rather than by
	some other machine code program).  A program in machine code
	consists of a sequence of "instructions" (possibly
	interspersed with data).  An instruction is a {binary string},
	(often written as one or more {octal}, {decimal} or
	{hexadecimal} numbers).  Instructions may be all the same size
	(e.g. one 32-bit word for many modern {RISC}
	{microprocessors}) or of different sizes, in which case the
	size of the instruction is determined from the first {word}
	(e.g. {Motorola} {68000}) or {byte} (e.g. {Inmos}
	{transputer}).  The collection of all possible instructions
	for a particular computer is known as its "{instruction set}".

	Each instruction typically causes the {Central Processing
	Unit} to perform some fairly simple operation like loading a
	value from memory into a {register} or adding the numbers in
	two registers.  An instruction consists of an {op code} and
	zero or more {operands}.  Different processors have different
	{instruction sets} - the collection of possible operations
	they can perform.

	Execution of machine code may either be {hard-wired} into the
	{central processing unit} or it may be controlled by
	{microcode}.  The basic execution cycle consists of fetching
	the next instruction from {main memory}, decoding it
	(determining which action the {operation code} specifies and
	the location of any {arguments}) and executing it by opening
	various {gates} (e.g. to allow data to flow from main memory
	into a CPU {register}) and enabling {functional units}
	(e.g. signalling to the {ALU} to perform an addition).

	Humans almost never write programs directly in machine code.
	Instead, they use {programming languages}.  The simplest kind
	of programming language is {assembly language} which usually
	has a one-to-one correspondence with the resulting machine
	code instructions but allows the use of {mnemonics} (ASCII
	strings) for the "{op codes}" (the part of the instruction
	which encodes the basic type of operation to perform) and
	names for locations in the program (branch labels) and for
	{variables} and {constants}.  Other languages are either
	translated by a {compiler} into machine code or executed by an
	{interpreter}

	(2009-06-16)

machine cycle

	<processor> The four steps which the {CPU} carries out for
	each {machine language} instruction: fetch, decode, execute,
	and store.  These steps are performed by the {control unit},
	and may be fixed in the logic of the CPU or may be programmed
	as {microcode} which is itself usually fixed (in {ROM}) but
	may be (partially) modifiable (stored in {RAM}).

	The fetch cycle places the current {program counter} contents
	(the address of the next instruction to execute) on the
	{address bus} and reads in the word at that location into the
	{instruction register} (IR).  In {RISC} CPUs instructions are
	usually a single word but in other architectures an
	instruction may be several words long, necessitating several
	fetches.

	The decode cycle uses the contents of the IR to determine
	which {gates} should be opened between the CPU's various
	{functional units} and busses and what operation the {ALU}(s)
	should perform (e.g. add, {bitwise and}).  Each gate allows
	data to flow from one unit to another (e.g. from {register} 0
	to ALU input 1) or enables data from one output onto a certain
	{bus}.  In the simplest case ("{horizontal encoding}") each
	bit of the instruction register controls a single gate or
	several bits may control the ALU operation.  This is rarely
	used because it requires long instruction words (such an
	architecture is sometimes called a {very long instruction
	word} architecture).  Commonly, groups of bits from the IR are
	fed through {decoders} to control higher level aspects of the
	CPU's operation, e.g. source and destination registers,
	{addressing mode} and {ALU} operation.  This is known as
	{vertical encoding}.  One way {RISC} processors gain their
	advantage in speed is by having simple instruction decoding
	which can be performed quickly.

	The execute cycle occurs when the decoding logic has settled
	and entails the passing of values between the various function
	units and busses and the operation of the ALU.  A simple
	instruction will require only a single execute cycle whereas a
	complex instruction (e.g. subroutine call or one using memory
	{indirect addressing}) may require three or four.
	Instructions in a RISC typically (but not invariably) take
	only a single cycle.

	The store cycle is when the result of the instruction is
	written to its destination, either a {register} or a memory
	location.  This is really part of the execute cycle because
	some instructions may write to multiple destinations as part
	of their execution.

	(1995-04-13)

MAchine INdependent SAIL

	(MAINSAIL) From {XIDAK}, Palo Alto CA, +1 (415) 855 9271.

	(2006-12-06)

machine instruction

	<programming> The smallest element of a {machine code} program.

	(2009-06-23)

machine language

	{machine code}

machine learning

	The ability of a machine to improve its performance based on
	previous results.

	{Neural networks} are one kind of machine learning.

	[More examples?  Net resources?  Web page?]

	(1995-02-15)

Mach Interface Generator

	<tool, programming> (MIG) An implementation of a subset of
	{Matchmaker} that generates {C} and {C++} {remote procedure
	call} interfaces for {interprocess communication} between
	{Mach} tasks.

	["MIG - The Mach Interface Generator", R.P. Draves et al, CS
	CMU, (1989-08-4)].

	(1994-11-22)

machoflops

	/mach'oh-flops/ A pun on "{megaflops}" referring to the
	inflated performance figures often quoted by computer
	manufacturers.  Real {application programs} are lucky to get
	half the quoted speed.

	See {Your mileage may vary}, {benchmark}.

	[{Jargon File}]

	(1995-02-15)

Mac II

	{Macintosh II}

Mac IIcx

	{Macintosh IIcx}

Macintosh

	<computer> One of the trademark/brand names that {Apple Inc}
	use for their {Mac} family of {personal computers}.

	(2009-05-05)

Macintosh Common Lisp

	<language> (MCL) {Common Lisp} for the {Apple Macintosh}.

	Guillaume Cartier, of the Mathematics Department at UQAM,
	Canada, has written some libraries.

	Latest version: 1.2.

	{(ftp://cambridge.apple.com/pub/mcl2/contrib/)}.

	(1992-11-30)

Macintosh file system

	<file system> A file on the {Macintosh} consists of two parts,
	called forks.  The "data fork" contains the data which would
	normally be stored in the file on other operating systems.
	The "resource fork" contains a collection of arbitrary
	attribute/value pairs, including program segments, {icon}
	{bitmaps}, and parametric values.  Yet more information
	regarding Macintosh files is stored by the {Finder} in a
	hidden file, called the "Desktop Database".

	Because of the complications in storing different parts of a
	Macintosh file in non-Macintosh file systems that only handle
	consecutive data in one part, it is common to only send the
	Data fork or to convert the Macintosh file into some other
	format before transferring it.

	(1996-03-03)

Macintosh II

	<computer> (Mac II) A version of {Apple}'s {Macintosh}
	{personal computer}, released in March 1987, using the
	{Motorola 68020} {CPU}, which runs at a higher {clock rate}
	than the {Motorola 68000} used in the original Mac.  The Mac
	II has a full 32-bit data bus instead of a 16-bit bus.  Mac II
	models have built-in 40 to 160 megabyte {hard disks} and can
	take up to eight megabytes of {RAM} (and more as denser memory
	chips arive).

	The Mac II was the first Macintosh to provide a colour
	graphics option, with up to 256 colours on screen at a 640x480
	resolution.  Mac II models are designed for expandability with
	three ({Macintosh IIcx}) or six (II & IIx) built-in {NuBus}
	{expansion slots} for additional {peripheral} and
	{coprocessor} boards.

	(1996-05-25)

Macintosh IIcx

	<computer> (Mac IIcx) A version of {Apple}'s {Macintosh II}
	{personal computer}, introduced in 1989, with a {Motorola
	68030} processor running at 16 MHz and up to 128 MB of {RAM}
	(120 ns, 30-pin {DRAM} chips).  The IIcx requires System 6.0.3
	or later and requires "Mode 32" or "32-bit Enabler" to use
	more than 8MB of RAM.  It was discontinued 1991, and in 1996
	is still considered one of the best-designed Macs ever.

	(1996-05-25)

Macintosh Operating System

	<operating system> (Mac OS) {Apple Computer, Inc.}'s
	proprietary {operating system} for their {Macintosh} family of
	{personal computers}.

	The part of the operating system that simulates the desktop is
	called "{Finder}."  The {multitasking} version of Finder was
	called "{MultiFinder}" until {multitasking} was integrated
	into the core of the OS with the introduction of System 7.0 in
	1990.

	The Macintosh series provides a built-in graphics language,
	called "{QuickDraw}", which provides a {standard} for software
	developers.

	Mac OS 8, scheduled for delivery in July 1997, included new
	human-interface features, increased system stability and
	performance, a {PowerPC} processor-native Finder, tighter
	integration of {Internet} access through panel-based
	"assistants," Personal Web Sharing and the ability to run
	{Java applets} and programs through Mac OS Run Time for
	{Java}.  Version 9.2 was the last version of the bespoke Mac
	OS.  The next version, {Mac OS X} is quite different, being
	based on {Unix}.

	See also {Macintosh file system}, {Macintosh user interface}.

	(2007-03-15)

Macintosh user interface

	<operating system> The {graphical user interface} used by
	{Apple Computer}'s {Macintosh} family of {personal computers},
	based on graphical representations of familiar office objects
	(sheets of paper, files, wastepaper bin, etc.) positioned on a
	two-dimensional "{desktop}" workspace.

	Programs and data files are represented on screen by small
	pictures ({icons}).  An object is selected by moving a {mouse}
	over the real desktop which correspondingly moves the
	{pointer} on screen.  When the pointer is over an icon on
	screen, the icon is selected by pressing the button on the
	mouse.

	A {hierarchical file system} is provided that lets a user
	"{drag}" a document (a file) icon into and out of a {folder}
	(directory) icon.  Folders can also contain other folders and
	so on.  To delete a document, its icon is dragged into a
	{trash can} icon.  For people that are not computer
	enthusiasts, managing files on the Macintosh is easier than
	using the {MS-DOS} or {Unix} {command-line interpreter}.

	The Macintosh always displays a row of menu titles at the top
	of the screen.  When a mouse button is pressed over a title, a
	{pull-down menu} appears below it.  With the mouse button held
	down, the option within the menu is selected by pointing to it
	and then releasing the button.

	Unlike the {IBM PC}, which, prior to {Microsoft Windows} had
	no standard {graphical user interface}, Macintosh developers
	almost always conform to the Macintosh interface.  As a
	result, users are comfortable with the interface of a new
	program from the start even if it takes a while to learn all
	the rest of it.  They know there will be a row of menu options
	at the top of the screen, and basic tasks are always performed
	in the same way.  Apple also keeps technical jargon down to a
	minimum.

	Although the Macintosh user interface provides consistency; it
	does not make up for an {application program} that is not
	designed well.  Not only must the application's menus be clear
	and understandable, but the locations on screen that a user
	points to must be considered.  Since the mouse is the major
	selecting method on a Macintosh, mouse movement should be kept
	to a minimum.  In addition, for experienced typists, the mouse
	is a cumbersome substitute for well-designed keyboard
	commands, especially for intensive text editing.

	{Urban legned} has it that the Mac user interface was copied
	from {Xerox}'s {Palo Alto Research Center}.  Although it is
	true that Xerox's {smalltalk} had a GUI and Xerox introduced
	some GUI concepts commercially on the {Xerox Star} computer in
	1981, and that {Steve Jobs} and members of the Mac and {Lisa}
	project teams visited PARC, Jef Raskin, who created the Mac
	project, points out that many GUI concepts which are now
	considered fundamental, such as dragging objects and pull-down
	menus with the mouse, were actually invented at Apple.

	{Pull-down menus} have become common on {IBM}, {Commodore} and
	{Amiga} computers.  {Microsoft Windows} and {OS/2}
	{Presentation Manager}, {Digital Research}'s {GEM},
	{Hewlett-Packard}'s {New Wave}, the {X Window System}, {RISC
	OS} and many other programs and operating environments also
	incorporate some or all of the desktop/mouse/icon features.

	{Apple Computer} have tried to prevent other companies from
	using some {GUI} concepts by taking legal action against them.
	It is because of such restrictive practises that organisations
	such as the {Free Software Foundation} previously refused to
	support ports of their software to Apple machines, though this
	ban has now been lifted.  [Why?  When?]

	(1996-07-19)

Macintoy

	/mak'in-toy/ The Apple {Macintosh}, considered as a {toy}.
	Less pejorative than {Macintrash}.

	[{Jargon File}]

Macintrash

	/mak'in-trash"/ The Apple {Macintosh}, as described by a
	hacker who doesn"t appreciate being kept away from the *real
	computer* by the interface.  The term {maggotbox} has been
	reported in regular use in the Research Triangle area of North
	Carolina.  Compare {Macintoy}.

	See also {beige toaster}, {WIMP environment}, {point-and-drool
	interface}, {drool-proof paper}, {user-friendly}.

	(1995-05-02)

MACL

	{Macintosh} {Allegro CL}.

	E-mail: <info-macl@cambridge.apple.com>.

MacLisp

	<language> A dialect of {Lisp} developed at {MIT} AI Lab in
	1966, known for its efficiency and programming facilities.
	MacLisp was later used by {Project MAC}, {Mathlab} and
	{Macsyma}.  It ran on the {PDP-10}.  It introduced the {LEXPR}
	(a function with variable {arity}), {macros}, {arrays}, and
	{CATCH/THROW}.

	MacLisp was one of two main branches of LISP (the other being
	{Interlisp}).  In 1981 {Common LISP} was begun in an effort to
	combine the best features of both.

	["MACLISP Reference Manual", D.A. Moon
	<moon@cambridge.apple.com>, TR Project MAC, MIT 1974].

	(2004-05-07)

MacMinix

	<operating system> The {Macintosh} version of {MINIX}.

	[Details?  URL?]

	(1997-06-17)

Mac OS

	{Macintosh Operating System}

Mac OS X

	<operating system> /mak oss ten/ Version 10 of the {Macintosh
	Operating System}, based on {FreeBSD} unlike prevoius
	versions.  Apple released the {kernel} of Mac OS X Server as
	"{darwin}", under an {open source} license.  Mac OS X incldues
	a code {framework} called the "Core Foundation" and an
	"Application Kit" framework for {GUI} and {widgets} strongly
	derived from {NEXTSTEP}.

	(2007-03-15)

Mac Playmate

	<games> An early (~1985) example of a pornographic computer
	game.  Mac Playmate runs on the {Macintosh} and involves
	trying to stimulate a simulated woman to orgasm by applying
	various implements to her erogenous zones.

	(2002-03-08)

MacPPP

	<networking> An implementation of {PPP} for the {Macintosh}
	developed by Larry J. Blunk and others at Merit Network, Inc.
	MacPPP was revised in 1993 with the release of MacPPP 2.0.1.
	The latest incarnation of MacPPP is {FreePPP}.

	(2000-11-25)

MACRO

	1. Assembly language for {VAX/VMS}.

	2. {PL/I}-like language with extensions for string processing.
	"MACRO: A Programming Language", S.R. Greenwood, SIGPLAN
	Notices 14(9):80-91 (Sep 1979).

	[{Jargon File}]

macro

	A name (possibly followed by a {formal argument} list) that is
	equated to a text or symbolic expression to which it is to be
	expanded (possibly with the substitution of {actual
	arguments}) by a macro expander.

	The term "macro" originated in early {assemblers}, which
	encouraged the use of macros as a structuring and
	information-hiding device.  During the early 1970s, macro
	assemblers became ubiquitous, and sometimes quite as powerful
	and expensive as {HLLs}, only to fall from favour as improving
	{compiler} technology marginalised {assembly language}
	programming (see {languages of choice}).  Nowadays the term is
	most often used in connection with the {C preprocessor},
	{Lisp}, or one of several special-purpose languages built
	around a macro-expansion facility (such as {TeX} or {Unix}'s
	{troff} suite).

	Indeed, the meaning has drifted enough that the collective
	"macros" is now sometimes used for code in any special-purpose
	application control language (whether or not the language is
	actually translated by text expansion), and for macro-like
	entities such as the "keyboard macros" supported in some text
	editors (and {PC} {TSRs} or {Macintosh} INIT/CDEV keyboard
	enhancers).

	(1994-12-06)

macro-

	Prefix large.  Opposite of {micro-}.  In the mainstream and
	among other technical cultures (for example, medical people)
	this competes with the prefix {mega-}, but hackers tend to
	restrict the latter to quantification.

	[{Jargon File}]

macrology

	/mak-rol'*-jee/ 1. Set of usually complex or {crufty} {macros},
	e.g. as part of a large system written in {Lisp}, {TECO}, or
	(less commonly) {assembler}.

	2. The art and science involved in comprehending a macrology.
	Sometimes studying the macrology of a system is not unlike
	archaeology, ecology, or {theology}, hence the sound-alike
	construction.  See also {boxology}.

	(2003-09-02)

Macromedia

	<company> A company supplying {multimedia} and interactive
	television services and digital arts software tools in the US
	and worldwide.  They produce products for {Microsoft Windows}
	and the {Macintosh} including: Macromedia FreeHand, a tool for
	design and illustration; Macromedia Director, an animation and
	authoring tool for multimedia production; Authorware
	Professional, a multiplatform authoring tool for interactive
	learning; MacroModel, a 3D modelling tool for multimedia,
	graphics and product design; SoundEdit 16, a digital sound
	recording and editing system; Fontographer, a typeface editing
	programme; and Action!, a multimedia presentation application.

	Chief Executive Officer: Bud Colligan.

	(1995-01-10)

macro preprocessor

	{preprocessor}

Macro SAP

	Macro processing modification of SAP.  D.E. Eastwood and D.M.
	McIlroy, unpublished memorandum, Bell Labs 1959.  Led to TRAC.

macrotape

	<storage> /mak'roh-tayp/ An industry-standard reel of
	{magnetic tape}, as opposed to a {microtape}.

	See also {round tape}.

	[{Jargon File}]

	(1994-10-20)

MACSYMA

	{Project MAC}'s SYmbolic MAnipulator.  The first comprehensive
	{symbolic mathematics} system, written in {Lisp} by Joel Moses
	<moses@larch.lcs.mit.edu> of {MIT} in 1969, later {Symbolics},
	Inc.

	Versions include {Symbolics Macsyma}, {DOE Maxima} (ANL, in
	Common LISP) and {Vaxima}.

	{(ftp://rascal.ics.utexas.edu/pub/maxima-4-155.tar.Z)}.
	E-mail: <macsyma-service@symbolics.com>.

	["MACSYMA - The Fifth Year", J. Moses, SIGSAM Bulletin 8(3)
	(Aug 1974)].

	(1994-11-01)

MacTCP

	<networking> Part of earlier versions of {MacOS} that provided
	access to {TCP/IP} services.  {Apple} removed MacTCP from
	MacOS in revision 7.5.3 in favor of the new {OpenTransport}
	(OT) TCP/IP stack.  However, MacTCP lives on as a community
	development effort.

	See also {MacPPP}.

	[How did it work?  Where was it from?]

	(2000-06-25)

MacX

	A package allowing the {Macintosh} to be used as an {X}
	server.

MAD

	<language> 1. {Michigan Algorithm Decoder}.

	2. A {data flow} language.

	["Implementation of Data Structures on a Data Flow Computer",
	D.L. Bowen, Ph.D. Thesis, Victoria U Manchester, Apr 1981].

	(1999-12-10)

Mad/1

	<language> A later, much enhanced version of {Michigan
	Algorithm Decoder} (MAD), for the {IBM 360}.  Mad/1 was
	University of Michigan's answer to {PL/I}.

	(1999-12-10)

Madaline

	A structure of many ADALINE units.

MADCAP

	Math and set problems, for the Maniac II and CDC 6600.
	"MADCAP - A Scientific Compiler for a Displayed Formula
	Texbook Language", M.B.  Wells, CACM 4(1):31-36 (Jan 1961).
	Sammet 1969, pp.271-281.  Versions: Madcap 5 (1964), Madcap 6.
	"The Unified Data Structure Capability in Madcap 6",
	M.B. Wells et al, Intl J Comp Info Sci 1(3) (sep 1972).

MADTRAN

	Early preprocessor that translated Fortran to MAD, for gain in
	speed.

maggotbox

	<abuse> /mag'*t-boks/ An even more derogatory term than
	{Macintrash}.

	[{Jargon File}]

	(1995-01-25)

MAGIC

	An early system on the {Midac} computer.

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

	[{Jargon File}]

	(1995-01-25)

magic

	1. As yet unexplained, or too complicated to explain; compare
	{automagically} and (Arthur C.) Clarke's Third Law:

		Any sufficiently advanced technology is
		indistinguishable from magic.

	"TTY echoing is controlled by a large number of magic bits."
	"This routine magically computes the parity of an 8-bit byte
	in three instructions."

	2. Characteristic of something that works although no one
	really understands why (this is especially called {black
	magic}).

	3. (Stanford) A feature not generally publicised that allows
	something otherwise impossible or a feature formerly in that
	category but now unveiled.

	Compare {wizardly}, {deep magic}, {heavy wizardry}.

	For more about hackish "magic" see {Magic Switch Story}.

	4. {magic number}.

	[{Jargon File}]

	(2001-03-19)

magic bullet

	<jargon> (Or "silver bullet" from vampire legends) A term
	widely used in software engineering for a supposed quick,
	simple cure for some problem.  E.g. "There's no silver bullet
	for this problem".

	(1999-01-13)

magic cookie

	1. Something passed between routines or programs that enables
	the receiver to perform some operation; a {capability} ticket
	or {opaque identifier}.  Especially used of small data objects
	that contain data encoded in a strange or intrinsically
	machine-dependent way.  E.g. on non-{Unix} {operating systems}
	with a non-byte-stream model of files, the result of "{ftell}"
	may be a magic cookie rather than a byte offset; it can be
	passed to "{fseek}", but not operated on in any meaningful
	way.  The phrase "it hands you a magic cookie" means it
	returns a result whose contents are not defined but which can
	be passed back to the same or some other program later.

	2. An in-band code for changing graphic rendition (e.g. inverse
	video or underlining) or performing other control functions.
	Some older terminals would leave a blank on the screen
	corresponding to mode-change magic cookies; this was also
	called a {glitch} (or occasionally a "turd"; compare {mouse
	droppings}).

	See also {cookie}.

	[{Jargon File}]

	(1995-01-25)

magic number

	<jargon, programming> 1. In {source code}, some non-obvious
	constant whose value is significant to the operation of a
	program and that is inserted inconspicuously in-line
	({hard-coded}), rather than expanded in by a symbol set by a
	commented "#define".  Magic numbers in this sense are bad
	style.

	2. A number that encodes critical information used in an
	{algorithm} in some opaque way.  The classic examples of these
	are the numbers used in {hash} or {CRC} functions or the
	coefficients in a {linear congruential generator} for
	{pseudorandom} numbers.  This sense actually predates, and
	was ancestral to, the more common sense 1.

	3. Special data located at the beginning of a {binary} data
	file to indicate its type to a utility.  Under {Unix}, the
	system and various {applications programs} (especially the
	{linker}) distinguish between types of executable file by
	looking for a magic number.  Once upon a time, these magic
	numbers were {PDP-11} branch instructions that skipped over
	header data to the start of executable code; 0407, for
	example, was {octal} for "branch 16 bytes relative".  Nowadays
	only a {wizard} knows the spells to create magic numbers.  {MS
	DOS} executables begin with the magic string "MZ".

	*The* magic number, on the other hand, is 7+/-2.  The paper
	cited below established the number of distinct items (such as
	numeric digits) that humans can hold in short-term memory.
	Among other things, this strongly influenced the interface
	design of the phone system.

	["The magical number seven, plus or minus two: some limits on
	our capacity for processing information", George Miller, in
	the "Psychological Review" 63:81-97, 1956].

	[{Jargon File}]

	(2003-07-02)

Magic Paper

	An early interactive {symbolic mathematics} system.

	[Sammet 1969, p. 510].

	(1995-01-25)

magic smoke

	<electronics, humour> A substance trapped inside {integrated
	circuit} packages that enables them to function (also called
	"blue smoke"; this is similar to the archaic "phlogiston"
	hypothesis about combustion).  Its existence is demonstrated
	by what happens when a chip burns up - the magic smoke gets
	let out, so it doesn't work any more.

	See {Electing a Pope}, {smoke test}.

	{Usenet}ter Jay Maynard tells the following story:

	"Once, while hacking on a dedicated {Zilog Z80} system, I was
	testing code by blowing {EPROMs} and plugging them in the
	system then seeing what happened.  One time, I plugged one in
	backward.  I only discovered that *after* I realised that
	{Intel} didn't put power-on lights under the quartz windows on
	the tops of their EPROMs - the die was glowing white-hot.
	Amazingly, the EPROM worked fine after I erased it, filled it
	full of zeros, then erased it again.  For all I know, it's
	still in service.  Of course, this is because the magic smoke
	didn't get let out."

	Compare the original phrasing of {Murphy's Law}.

	[{Jargon File}]

	(1995-01-25)

Magic Switch Story

	Some years ago, I was snooping around in the cabinets that
	housed the {MIT AI Lab}'s {PDP-10}, and noticed a little
	switch glued to the frame of one cabinet.  It was obviously a
	homebrew job, added by one of the lab's hardware hackers
	(no-one knows who).

	You don't touch an unknown switch on a computer without
	knowing what it does, because you might crash the computer.
	The switch was labelled in a most unhelpful way.  It had two
	positions, and scrawled in pencil on the metal switch body
	were the words "magic" and "more magic".  The switch was in
	the "more magic" position.

	I called another hacker over to look at it.  He had never seen
	the switch before either.  Closer examination revealed that
	the switch had only one wire running to it!  The other end of
	the wire did disappear into the maze of wires inside the
	computer, but it's a basic fact of electricity that a switch
	can't do anything unless there are two wires connected to it.
	This switch had a wire connected on one side and no wire on
	its other side.

	It was clear that this switch was someone's idea of a silly
	joke.  Convinced by our reasoning that the switch was
	inoperative, we flipped it.  The computer instantly crashed.

	Imagine our utter astonishment.  We wrote it off as
	coincidence, but nevertheless restored the switch to the "more
	magic" position before reviving the computer.

	A year later, I told this story to yet another hacker, {David
	Moon} as I recall.  He clearly doubted my sanity, or suspected
	me of a supernatural belief in the power of this switch, or
	perhaps thought I was fooling him with a bogus saga.  To prove
	it to him, I showed him the very switch, still glued to the
	cabinet frame with only one wire connected to it, still in the
	"more magic" position.  We scrutinized the switch and its lone
	connection, and found that the other end of the wire, though
	connected to the computer wiring, was connected to a ground
	pin.  That clearly made the switch doubly useless: not only
	was it electrically nonoperative, but it was connected to a
	place that couldn't affect anything anyway.  So we flipped the
	switch.

	The computer promptly crashed.

	This time we ran for Richard Greenblatt, a long-time {MIT}
	hacker, who was close at hand.  He had never noticed the
	switch before, either.  He inspected it, concluded it was
	useless, got some diagonal cutters and {dike}d it out.  We
	then revived the computer and it has run fine ever since.

	We still don't know how the switch crashed the machine.  There
	is a theory that some circuit near the ground pin was
	marginal, and flipping the switch changed the electrical
	capacitance enough to upset the circuit as
	millionth-of-a-second pulses went through it.  But we'll never
	know for sure; all we can really say is that the switch was
	{magic}.

	I still have that switch in my basement.  Maybe I'm silly, but
	I usually keep it set on "more magic".

	{GLS}

	(1995-02-22)

Magma

	<symbolic mathematics, tool> A program used for heavy duty
	algebraic computation in many branches of mathematics.  Magma,
	developed by John Cannon and associates at the University of
	Sydney, succeeded {Cayley}.  It runs at several hundred sites.

	E-mail: <magma@maths.usyd.edu.au>.

	{(http://maths.usyd.edu.au:8000/u/magma/)}.

	[W. Bosma, J. Cannon and C. Playoust, The Magma algebra system
	I: The user language, J. Symb. Comp., 24, 3/4, 1997, 235-265].

	(2000-12-21)

Magma2

	<language> A language that allows programmability of the
	control environment, e.g. {recursion}, {backtracking},
	{coroutines}, {nondeterminism}, etc.  Magma2 was the successor
	to {MagmaLISP}.

	["Magma2: A Language Oriented Toward Experiments in Control",
	Franco Turini, ACM TOPLAS 6(4):468-486 (Oct 1984)].

	(1995-07-30)

MagmaLISP

	<language> The predecessor of {Magma2}.

	["MagmaLISP: A Machine Language for Artificial Intelligence",
	C. Mantagero et al, Proc 4th Intl Joint Conf Artif Intell,
	1975, pp. 556-561].

	(1995-07-30)

magnetic disk

	<storage> A flat rotating disc covered on one or both sides
	with magnetisable material.  The two main types are the {hard
	disk} and the {floppy disk}.

	Data is stored on either or both surfaces of discs in
	concentric rings called "{tracks}".  Each track is divided
	into a whole number of "{sectors}".  Where multiple (rigid)
	discs are mounted on the same axle the set of tracks at the
	same radius on all their surfaces is known as a "{cylinder}".

	Data is read and written by a {disk drive} which rotates the
	discs and positions the {read/write heads} over the desired
	track(s).  The latter radial movement is known as "{seeking}".
	There is usually one head for each surface that stores data.
	To reduce {rotational latency} it is possible, though
	expensive, to have multiple heads at different angles.

	The head writes binary data by magnetising small areas or
	"zones" of the disk in one of two opposing orientations.  It
	reads data by detecting current pulses induced in a coil as
	zones with different magnetic alignment pass underneath it.

	In theory, bits could be read back as a time sequence of pulse
	(one) or no pulse (zero).  However, a run of zeros would give
	a prolonged absence of signal, making it hard to accurately
	divide the signal into individual bits due to the variability
	of motor speed.  {Run Length Limited} is one common solution
	to this {clock recovery} problem.

	High speed disks have an {access time} of 28 {milliseconds} or
	less, and low-speed disks, 65 milliseconds or more.  The
	higher speed disks also transfer their data faster than the
	slower speed units.

	The disks are usually aluminium with a magnetic coating.  The
	heads "float" just above the disk's surface on a current of
	air, sometimes at lower than atmospheric pressure in an
	air-tight enclosure.  The head has an aerodynamic shape so the
	current pushes it away from the disk.  A small spring pushes
	the head towards the disk at the same time keeping the head at
	a constant distance from the disk (about two microns).

	Disk drives are commonly characterised by the kind of
	interface used to connect to the computer, e.g. {ATA}, {IDE},
	{SCSI}.

	See also {winchester}.  Compare {magnetic drum}, {compact
	disc}, {optical disk}, {magneto-optical disk}.

	{Suchanka's PC-DISK library (http://pc-disk.de/)}.

	(2007-06-14)

Magnetic Ink Character Recognition

	<business, printer> (MICR) A {character recognition} system
	using special ink and characters which can be magnetised and
	read automatically.

	MICR is used almost exclusively in the banking industry where
	it is used to print details on cheques to enable automatic
	processing.

	(1995-04-13)

magnetic stripe

	<storage> A black stripe, printed on the back of a credit card
	or similar, that stores a {machine-readable} copy of the
	information on the card.  The stripe contains iron particles
	about 500 nanometers long that can be magnetised like
	{magnetic tape}.  The data can be read by swiping the card
	through a {card reader}.

	(2007-06-04)

magnetic tape

	<storage> (Or "magtape", "tape" - {paper tape} is now
	obsolete) A data storage medium consisting of a magnetisable
	oxide coating on a thin plastic strip, commonly used for
	{backup} and {archiving}.

	Early industry-standard magnetic tape was half an inch wide
	and wound on removable reels 10.5 inches in diameter.
	Different lengths were available with 2400 feet and 4800 feet
	being common.  {DECtape} was a variation on this "{round
	tape}".

	In modern magnetic tape systems the reels are much smaller and
	are fixed inside a {cartridge} to protect the tape and for
	ease of handling ("{square tape}" - though it's really
	rectangular).  Cartridge formats include {QIC}, {DAT}, and
	{Exabyte}.

	Tape is read and written on a tape drive (or "deck") which
	winds the tape from one reel to the other causing it to move
	past a read/write head.  Early tape had seven parallel tracks
	of data along the length of the tape allowing six bit
	characters plus {parity} written across the tape.  A typical
	recording density was 556 characters per inch.  The tape had
	reflective marks near its end which signaled beginning of tape
	(BOT) and end of tape (EOT) to the hardware.

	Data is written to tape in {blocks} with {inter-block gaps}
	between them.  Each block is typically written in a single
	operation with the tape running continuously during the write.
	The larger the block the larger the data {buffer} required in
	order to supply or receive the data written to or read from
	the tape.  The smaller the block the more tape is wasted as
	inter-block gaps.  Several logical {records} may be combined
	into one physical block to reduce wastage ("{blocked
	records}").  Finding a certain block on the tape generally
	involved reading sequentially from the beginning, in contrast
	to {magnetic disks}.  Tape is not suitable for {random
	access}.  The exception to this is that some systems allow
	{tape marks} to be written which can be detected while winding
	the tape forward or rewinding it at high speed.  These are
	typically used to separate logical files on a tape.

	Most tape drives now include some kind of {data compression}.
	There are several {algorithms} which provide similar results:
	{LZ} (most), {IDRC} ({Exabyte}), {ALDC} ({IBM}, {QIC}) and
	{DLZ1} ({DLT}).

	See also {cut a tape}, {flap}, {Group Code Recording},
	{spool}, {macrotape}, {microtape}, {Non Return to Zero
	Inverted}, {Phase Encoded}.

	(1997-04-05)

magnetic tape drive

	<storage> (Or "tape drive") A {peripheral} device that reads
	and writes {magnetic tape}.

	(1996-05-25)

magneto-optical disk

	<hardware, storage> (MO) A plastic or glass disk coated with a
	compound (often TbFeCo) with special optical, magnetic and
	thermal properties.  The disk is read by bouncing a
	low-intensity {laser} off the disk.  Originally the laser was
	infrared, but frequencies up to blue may be possible giving
	higher {storage density}.  The polarisation of the reflected
	light depends on the polarity of the stored magnetic field.

	To write, a higher intensity laser heats the coating up to its
	Curie point, allowing its magnetisation to be altered in a way
	that is retained when it has cooled.

	Although optical, they appear as hard drives to the {operating
	system} and do not require a special {filesystem} (they can be
	formatted as {FAT}, {HPFS}, {NTFS}, etc.).

	The initial 5.25" MO drives, introduced at the end of the
	1980s, were the size of a full-height 5.25" {hard drive} (like
	in {IBM PC XT}) and the disks looked like a {CD-ROM} enclosed
	in an old-style cartridge

	In 2006, a 3.5" drive has the size of 1.44 {megabyte}
	{diskette drive} with disks about the size of a regular 1.44MB
	{floppy disc} but twice the thickness.

	{Storage FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/arch-storage/part1/faq.html)}.

	(2006-07-25)

magneto-optical drive

	{magneto-optical disk}

magnetostrictive delay line

	<storage, history> An early storage device that used tensioned
	wires of nickel alloy carrying longitudinal waves produced and
	detected electromagnetically.

	They had better storage behaviour than {mercury delay lines}.

	[H. Epstein and O.B. Stram, "A High Performance
	Magnetostriction-Sonic Delay Line," Transactions, Institute of
	Radio Engineers, Professional Group on Ultrasonic Engineering,
	1957, pp. 1-24].

	(2002-11-08)

MAGNUM

	A {database} language for {DEC-10}'s, used internally by
	{Tymshare, Inc.}.  MAGNUM was designed in the late 1970's by
	Dale Jordan, Rich Strauss and Dave McQuoid originally, and was
	written in {BLISS-10}.  It was the world's first commercial
	{relational database}.  It was in the process of being written
	in 1976.

	(1995-01-25)

Magritte

	A {constraint} language for interactive graphical layout by
	J. Gosling.  It solves constraints using algebraic
	transformations.

	["Algebraic Constraints", J. Gosling, PhD Thesis, TR
	CS-83-132, CMU, May 1983].

	(1994-10-20)

mail

	<messaging> 1. {electronic mail}.

	2. The {Berkeley Unix} program for composing and reading
	{electronic mail}.  It normally uses {sendmail} to handle
	delivery.

	{Unix manual page}: mail(1)

	(1997-12-03)

Mail Application Programming Interface

	{Messaging Application Programming Interface}

mail bomb

	<messaging> To send, or urge others to send, massive amounts
	of {electronic mail} to a single system or person, with intent
	to crash or {spam} the recipient's system.  A successful mail
	bomb may cause the victim's {disk quota} to be exhausted, the
	disk holding his mailbox to fill up, or his computer to spend
	a large proportion of its time processing mail.

	Mail-bombing is sometimes done in retaliation against someone
	persistently abusing {Usenet} and violating {netiquette}.
	While it may inconvenience the intended victim (if they gave
	their real address), it will probably also inconvenience other
	users and administrators of the computers and networks
	involved.  Mailbombing is thus a serious offense itself.

	See {netiquette} for the correct way to respond to perceived
	violations.

	Compare {letterbomb}, {nastygram}.

	[{Jargon File}]

	(1995-04-04)

mailbox

	1. <messaging> A file belonging to a particular user on a
	particular computer in which received {electronic mail}
	messages are stored ready for the user to read them.  A
	mailbox may be just an {electronic mail address} to which
	messages are sent and may not actually correspond to a file if
	the messages are processed automatically, e.g. a {mail server}
	or {mailing list}.

	2. <programming> A destination for interprocess messages in a
	{message passing} system.  A mailbox is a {message} queue,
	usually stored in the memory of the processor on which the
	receiving process is running.  {Primitives} are provided for
	sending a message to a named mailbox and for reading messages
	from a mailbox.

	(1994-10-20)

mail bridge

	<messaging> A {mail gateway} that {forwards} {electronic mail}
	messages between two or more networks if they meet certain
	administrative criteria.

	(1996-02-26)

mail exchanger

	<messaging> A {server} running {SMTP} {Message Transfer Agent}
	{software} that accepts incoming {electronic mail} and either
	delivers it locally or forwards it to another server.  The
	mail exchanger to use for a given domain can be discovered by
	querying {DNS} for {Mail Exchange Records}.

	(2007-01-29)

Mail Exchange Record

	<messaging> (MX Record) A {DNS} resource record type that says
	which {SMTP} server handles {electronic mail} for a particular
	{domain}.  E.g. the MX record

	 foo.co.uk. 1054 IN MX 10 mail.foo.co.uk.

	means that mail for an address like "denis@foo.co.uk" should
	be sent to "mail.foo.co.uk".

	There can be several servers for a domain.  The "10" is a
	priority - the server with the lowest number will be tried
	first.

	(2007-01-29)

mail exploder

	<messaging> Part of an {electronic mail} delivery system which
	allows a message to be delivered to a list of addresses.  Mail
	exploders are used to implement {mailing lists}.  Users send
	messages to a single address and the mail exploder takes care
	of delivery to the individual {mailboxes} in the list.

	(1996-02-26)

mail filter

	<messaging> A program which sorts and processes incoming
	{mail} based on patterns found in the mail {headers}.

	{procmail} is an example for {Unix}.

	(1996-12-09)

mail gateway

	<messaging> A machine that connects two or more {electronic
	mail} systems (including dissimilar mail systems) and
	transfers messages between them.  Sometimes the mapping and
	translation can be quite complex, and it generally requires a
	{store and forward} scheme whereby the message is received
	from one system completely before it is transmitted to the
	next system, after suitable translations.

	(1996-02-26)

mail hub

	{mail server}

mailing list

	<messaging> (Often shortened in context to "list") An
	{electronic mail address} that is an alias (or {macro}, though
	that word is never used in this connection) which is expanded
	by a {mail exploder} to yield many other e-mail addresses.
	Some mailing lists are simple "reflectors", redirecting mail
	sent to them to the list of recipients.  Others are filtered
	by humans or programs of varying degrees of sophistication;
	lists filtered by humans are said to be "moderated".

	The term is sometimes used, by extension, for the people who
	receive e-mail sent to such an address.

	Mailing lists are one of the primary forms of hacker
	interaction, along with {Usenet}.  They predate {Usenet},
	having originated with the first {UUCP} and {ARPANET}
	connections.  They are often used for private
	information-sharing on topics that would be too specialised
	for or inappropriate to public {Usenet} groups.  Though some
	of these maintain almost purely technical content (such as the
	{Internet Engineering Task Force} mailing list), others (like
	the "sf-lovers" list maintained for many years by Saul Jaffe)
	are recreational, and many are purely social.  Perhaps the
	most infamous of the social lists was the eccentric bandykin
	distribution; its latter-day progeny, {lectroids} and
	{tanstaafl}, still include a number of the oddest and most
	interesting people in hackerdom.

	Mailing lists are easy to create and (unlike {Usenet}) don't
	tie up a significant amount of machine resources (until they
	get very large, at which point they can become interesting
	torture tests for mail software).  Thus, they are often
	created temporarily by working groups, the members of which
	can then collaborate on a project without ever needing to meet
	face-to-face.

	There are several programs to automate mailing list
	maintenance, e.g. {Listserv}, {Listproc}, {Majordomo}.

	Requests to subscribe to, or leave, a mailing list should
	ALWAYS be sent to the list's "-request" address (e.g.
	ietf-request@cnri.reston.va.us for the IETF mailing list).
	This prevents them being sent to all recipients of the list
	and ensures that they reach the maintainer of the list, who
	may not actually read the list.

	[{Jargon File}]

	(2001-04-27)

mail merge

	<messaging> A function of some {word processing} software
	(e.g. {Microsoft Word}) that produces multiple instances of a
	document by substituting different text strings from a
	{database} in place of certain field markers.  This is often
	done with envelopes, resumes, spam, and various other mass
	mailings.

	{(http://mtroyal.ab.ca/programs/academserv/ADC/workshops/staff/mail_merge/mail_merge_tutorial.html)}.

	(2002-07-26)

mail path

	{source route}

.mailrc

	<messaging> (mail run commands) The configuration file for the
	standard {Unix} {mail} program.  This file is found in a
	user's {home directory} and can contain special commands to
	set options and define mail aliases.

	See also {rc}.

	(1996-04-09)

mail server

	1. <tool, messaging> A program that distributes files or
	information in response to requests sent via {electronic
	mail}.  Examples on the {Internet} include {Almanac} and
	{netlib}.  Mail servers are also used on {Bitnet}.

	In the days before {Internet} access was widespread and {UUCP}
	mail links were common, mail servers could be used to provide
	remote services which might now be provided via {FTP} or
	{WWW}.

	2. <messaging> (Or "mail hub") A computer used to store and/or
	forward {electronic mail}.

	(1995-05-05)

Mail Transfer Agent

	{Message Transfer Agent}

Mail Transport Agent

	{Message Transfer Agent}

mail user agent

	<messaging> (MUA) The program that allows the user to compose
	and read {electronic mail} messages.  The MUA provides the
	interface between the user and the {Message Transfer Agent}.
	Outgoing mail is eventually handed over to an MTA for delivery
	while the incoming messages are picked up from where the MTA
	left it (although MUA's running on single-user machines may
	pick up mail using {POP}).

	Popular MUAs for {Unix} include {elm}, {mush}, {pine}, and
	{RMAIL}.

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/mail/setup/unix/part2/faq-doc-3.html)}.

	(1996-03-21)

Mail Users' Shell

	<messaging> (mush) A {MUA} for {Unix} and {MS-DOS}.  It has both
	{line-mode} and {full-screen} interfaces as well as a
	{SunView} interface.

	mush provides a very powerful shell interface with a
	{csh}-like {scripting language}, plenty of {environment
	variables}, command-line {aliases}, filename {completion},
	{conditionals}, and command {piping}.

	{z-mail} is a more recent commercial version of mush.

	{Usenet} newsgroup: {news:comp.mail.mush}.

	(1996-02-26)

main

	<programming> The name of the {subroutine} called by the
	{run-time system} (RTS) when it executes a {C} program.  The
	RTS passes the program's {command-line arguments} to main as a
	count and an {array} of {pointers} to strings.  If the main
	subroutine returns then the program exits.

	{Java} has inheritted the name "main" from C but in Java it's
	more complicated of course.  The main routine must have a
	signature of exactly

	 public static void main(String [])

	And it must be inside a public class with the same name as the
	{source} file where it is defined.

	(2008-11-12)

MAINBOL

	<language> MAcro ImplementatioN of {SNOBOL4}.

	(1997-09-14)

Main Distribution Frame

	<networking> (MDF) The {network closet} containing the main
	{hub}.

	(1995-05-05)

mainframe

	<computer> A term originally referring to the cabinet
	containing the central processor unit or "main frame" of a
	room-filling {Stone Age} batch machine.  After the emergence
	of smaller "{minicomputer}" designs in the early 1970s, the
	traditional {big iron} machines were described as "mainframe
	computers" and eventually just as mainframes.  The term
	carries the connotation of a machine designed for batch rather
	than interactive use, though possibly with an interactive
	{time-sharing} operating system retrofitted onto it; it is
	especially used of machines built by {IBM}, {Unisys} and the
	other great {dinosaurs} surviving from computing's {Stone
	Age}.

	It has been common wisdom among hackers since the late 1980s
	that the mainframe architectural tradition is essentially dead
	(outside of the tiny market for {number crunching}
	{supercomputers} (see {Cray})), having been swamped by the
	recent huge advances in {integrated circuit} technology and
	low-cost personal computing.  As of 1993, corporate America is
	just beginning to figure this out - the wave of failures,
	takeovers, and mergers among traditional mainframe makers have
	certainly provided sufficient omens (see {dinosaurs mating}).

	Supporters claim that mainframes still house 90% of the data
	major businesses rely on for mission-critical applications,
	attributing this to their superior performance, reliability,
	scalability, and security compared to microprocessors.

	[{Jargon File}]

	(1996-07-22)

mainframe programmer/analyst

	<job> A peson who writes and maintains business applications.
	He develops and supports large-scale batch or high-volume
	transaction environments that require {IBM/MVS} {mainframe}
	processing power or equivalent.  He programs in
	business-oriented languages such as {COBOL}, {CICS}, or
	{fourth-generation languages}.

	(2004-03-12)

main loop

	<programming> The top-level {control flow} construct in an
	input- or {event-driven} program, the one which receives and
	acts or dispatches on the program's input {events}.

	See also {driver}.

	[{Jargon File}]

	(2004-03-12)

main memory

	<storage, architecture> The {storage device} used by a
	{computer} to hold the currently executing {program} and its
	{working data}.  A modern computer's main memory is built from
	{random-access memory} {integrated circuits}.  In the old days
	{ferrite core memory} was one popular form of main memory,
	leading to the use of the term "{core}" for main memory.

	Computers have several other sorts of memory, distinguished by
	their access time, storage capicity, cost, and the typical
	lifetime or rate of change of the data they hold.  {Registers}
	in the {CPU} are fast, few, expensive and typically change
	every few {machine instructions}.  Other kinds are {cache},
	{PROM}, {magnetic disk} (which may be used for {virtual
	memory}) and {magnetic tape}.

	(1996-11-04)

MAINSAIL

	{MAchine INdependent SAIL}.

main store

	{main memory}

maintainer

	<software> The person responsible for coordinating changes to
	a package of {software} and arranging the distribution of
	updates.  The term usually applies only to {free software}
	where the maintainer (often the author) is doing it as a free
	public service.

	(2001-01-27)

maintainer script

	<Debian> One of the scripts (preinst, prerm, postinst, postrm)
	that may be included in a {Debian} {binary package}.  These
	scripts may create and/or remove {symlinks}, files or
	directories that, for some reason, could not be done directly
	by {dpkg}.  Maintainer scripts frequently create or update the
	symlinks in the /etc/rc?.d directories and start, stop, or
	restart {daemons}.

	(2000-05-31)

maintenance

	<programming> The modification of a software product, after
	delivery, to correct faults, to improve performance or other
	attributes, or to adapt the product to a changed environment.

	Maintenance is an important part of the {software life-cycle}.
	It is expensive in manpower and resources, and one of the aims
	of {software engineering} is to reduce its cost.

	(1996-12-27)

Maisie

	A {C}-based parallel programming language by Wen-Toh Liao
	<wentoh@may.CS.UCLA.EDU>.  Maisie extends C with
	{asynchronous} typed {message passing} and {lightweight
	process}es.  Programs can define, create and destroy
	processes, send and receive messages and manipulate the system
	clock.

	Maisie has been ported to {PVM}/3.1, {Cosmic} Environment and
	{SUN} {sockets}.

	{Version 2.1.1.3 (ftp://cs.ucla.edu/pub/maisie.2.1.1.3.tar.Z)}.

	(1993-06-14)

major delivery

	<programming> A (chiefly British) synonym for {major release}.
	E.g, the ninth major release of a piece of software might be
	called MD9.  The {release} notation would be "v9.0".

	(1996-08-04)

Majordomo

	<messaging, tool> A popular {freeware} {mailing list}
	processor written in {Perl} which runs under {Unix}.
	Majordomo is a "groupware" project which evolved from code by
	Brent Chapman <brent@greatcircle.com>, with maintenance by
	John Rouillard <rouilj@cs.umb.edu>.  The current Majordomo
	maintainer is Chan Wilson <cwilson@sgi.com>.

	A majordomo is a person who speaks, makes arrangements, or
	takes charge for another; from Latin "major domus" - "master
	of the house".

	{(http://greatcircle.com/majordomo/)}.

	(2001-04-27)

major release

	<programming> A {release} of a piece of software which is not
	merely a {revision} or a {bug fix release} but which contains
	substantial changes (e.g., an overhaul of the {interface},
	change in compatibility).

	Traditionally, major releases are numbered as X.0; for
	example, WordPerfect 6.0 is a major release, significantly
	different from any previous version; whereas WordPerfect 6.1
	has only minor changes, and is, thus, only a {revision}.

	See also {major delivery}.

	(1996-08-04)

Make

	<programming, tool> The {Unix} tool to automate the
	recompilation, linking etc. of programs, taking account of the
	interdependencies of {modules} and their modification times.
	Make reads instructions from a "makefile" which specifies a
	set of targets to be built, the files they depend on and the
	commands to execute in order to produce them.

	Most {C} systems come with a make. There is also one produce
	by {GNU}.

	["Make - A Program for Maintaining Computer Programs",
	A.I. Feldman, TR No 57, Bell Labs Apr 1977].

	(1995-01-05)

Makedoc

	A program from Carleton University, Ottawa that generates
	documentation for Objective C programs.  It will also generate
	a class hierarchy diagram.  The output format is similar to
	that used by StepStone.

makefile

	A script which tells the Unix program "{make}" how to build a
	particular computer program or set of programs.  A makefile
	contains variable assignments and rules of the form

		target: inputs
			commands

	which say if any of the files in "inputs" has been modified
	more recently than file "target" (or if the target does not
	exist) then execute "commands", which will normally bulid
	"target" from "inputs".

	If make is run with no arguments, it looks for a makefile
	called "Makefile" or "makefile".

	(1995-01-05)

Maker Interchange Format

	(MIF) A language used to describe a {FrameMaker} document in a
	text file.  MIF is used to exchange information between
	FrameMaker and other applications.

	["Using FrameMaker 4," Windows and Macintosh Version,
	c. 1986-1993 Frame Technology Corporation].

	(1995-01-30)

MAL

	{Micro Assembly Language}

Malamud

	<publication> The book:

	[Malamud, C., "Analyzing Sun Networks", Van Nostrand Reinhold,
	New York, NY, 1992.]

	(1995-04-10)

MALI

	A hardware memory device for {logic programming} computers
	with {real time} {garbage collection}.

mall

	<World-Wide Web> A collection of {World-Wide Web} documents
	featuring commercial products and services, usually served by
	one particualr {Internet} {access provider}.

	(1995-04-10)

malloc

	{C}'s standard library routine for storage allocation.  It
	takes the number of bytes required and returns a pointer to a
	block of that size.  Storage is allocated from a heap which
	lies after the end of the program and data areas.  Memory
	allocated with malloc must be freed explicitly using the
	"free" routine before it can be re-used.

	{gc} is a storage allocator with {garbage collection} that is
	intended to be used as a plug-in replacement for malloc.

malware

	<security> Any {software} designed to do something that the
	user would not wish it to do, hasn't asked it to do, and often
	has no knowledge of until it's too late.  Types of malware
	include {backdoor}, {virus}, {worm}, {Trojan horse}.

	Malware typically affects the system on which it is run,
	e.g. by deleting or corrupting files on the local disks.
	Since Internet connections became common, malware has
	increasingly targeted remote systems.  An early example was
	malware consisting of a malicious e-mail attachment that
	targeted security flaws in {Microsoft Outlook} (the most
	common {e-mail client}) to send itself to all the user's
	contacts.  A more recent kind of malware "recruits" the
	infected computer to become part of a {botnet} consisting of
	thousands of infected computers that can then be remotely
	controlled and used to launch {DDoS} attacks.

	(2007-11-15)

MAN

	{Metropolitan Area Network}

man

	{Unix manual page}

managed code

	<operating system> Code that is executed by the {.NET} {common
	language runtime} (CLR).  {VB.NET} code is always managed code
	but {C++ .NET} can optionally use unmanaged code.  Managed
	code provides {metadata} allowing the CLR to manage security
	(role-based as well as new approaches to code access
	security).  The CLR also handles errors, manages the program
	{stack} and finds {methods} in assembly modules.  Managed data
	is memory that's subject to {garbage collection}.  There are
	additional restrictions to permit interoperability of
	different languages, for example, {Visual Basic} {arrays} must
	be zero-based.

	(2007-07-13)

management

	1. Corporate power elites distinguished primarily by their
	distance from actual productive work and their chronic failure
	to manage (see also {suit}).  Spoken derisively, as in
	"*Management* decided that ...".

	2. Mythically, a vast bureaucracy responsible for all the
	world's minor irritations.  Hackers' satirical public notices
	are often signed "The Mgt"; this derives from the
	"Illuminatus!" novels.

	[{Jargon File}]

	(1995-02-28)

Management Information Base

	<networking> (MIB) A {database} of managed objects acessed by
	{network management} {protocols}.  An {SNMP} MIB is a set of
	parameters which an {SNMP} {management station} can query or
	set in the {SNMP agent} of a network device (e.g. {router}).

	{SNMP} has two {standard} MIBs.  The first, MIB I, was
	established in {RFC 1156}, was defined to manage
	{TCP/IP}-based {internets}.  MIB II, defined in {RFC 1213}, is
	an update.

	Standard minimal MIBs have been defined, and many hardware
	(and certain software, e.g. {DBMS}) providers have developed
	private MIBs in {ASN.1} format allowing them to be compiled
	for use in a {Network Management System}.  In theory, any
	{SNMP manager} can talk to any {SNMP agent} with a properly
	defined MIB.

	See also {client-server model}.

	(2004-07-22)

Management Information System

	<application> (MIS) A computer system, usually based on a
	{mainframe} or {minicomputer}, designed to provide management
	personnel with up-to-date information on an organisation's
	performance, e.g. inventory and sales.  These systems output
	information in a form that is useable by managers at all
	levels of the organisation: strategic, tactical, and
	operational.  A good example of an MIS report is an annual
	report for a stockholder (a scheduled report).

	[Que's Computer User's Dictionary Second Edition, 1992].

	(2001-04-01)

Manager of Business Applications

	<job> A person who plans and oversees multiple projects and
	project managers.  He works with the {CIO} and senior
	management to determine systems development strategy and
	standards.  He administers the department budget and reviews
	project managers.

	(2004-03-18)

Manchester Autocode

	<language, history> The predecessor of {Mercury Autocode}.

	["The Programming Strategy Used with the Manchester University
	Mark I Computer", R.A.  Brooker, Proc IEE 103B Suppl:151-157,
	1956].

	(2000-10-02)

Manchester encoding

	<communications, protocol> A method of transmitting bits which
	enables the receiver to easily synchronise with the sender.

	A simple way of signalling bits might be to transmit a high
	voltage for some period for a 1-bit and a low voltage for a 0
	bit:

	 Bits Sent:             1     1     0     0

	 Signal:      High    ___________
		      Low                |___________

	 Time: ->            .     .     .     .     .

	However, when several identical bits are sent in succession,
	this provides no information to the receiver about when each
	bit starts and stops.

	Manchester encoding splits each bit period into two, and
	ensures that there is always a transition between the signal
	levels in the middle of each bit.  This allows the receiver to
	synchronise with the sender.

	In normal Manchester encoding, a 1-bit is transmitted with a
	high voltage in the first period, and a low voltage in the
	second, and vice verse for the 0 bit:

	 Bits Sent:             1     1     0     0

	 Signal:      High    __    __       __    __
		      Low       |__|  |_____|  |__|

	 Time: ->            .  '  .  '  .  '  .  '  .

	In Differential Manchester encoding, a 1-bit is indicated by
	making the first half of the signal equal to the last half of
	the previous bit's signal and a 0-bit is indicated by making
	the first half of the signal opposite to the last half of the
	previous bit's signal.  That is, a zero bit is indicated by a
	transition at the beginning of the bit.

	Like normal Manchester encoding, there is always a transition
	in the middle of the transmission of the bit.

	       Differential Manchester Encoding

	 Bits Sent:            1     1    0     0

	 Signal:      High  ____       __    __    __
		      Low       |_____|  |__|  |__|

	 Time: ->            .  '  .  '  .  '  .  '  .

	With each bit period half as long, twice as much {bandwidth}
	is required when using either of the Manchester encoding
	schemes.

	(1995-11-23)

Mandala

	<language> A system based on {Concurrent Prolog}, developed at
	{ICOT}, Japan.

	["Mandala: A Logic Based Knowledge Programming System",
	K. Furukawa et al, Intl Conf 5th Gen Comp Sys 1984].

	(1995-11-23)

Mandelbrot, Benoit

	{Benoit Mandelbrot}

Mandelbrot set

	<mathematics, graphics> (After its discoverer, {Benoit
	Mandelbrot}) The set of all {complex numbers} c such that

		| z[N] | < 2

	for arbitrarily large values of N, where

		z[0] = 0
		z[n+1] = z[n]^2 + c

	The Mandelbrot set is usually displayed as an {Argand
	diagram}, giving each point a colour which depends on the
	largest N for which | z[N] | < 2, up to some maximum N which
	is used for the points in the set (for which N is infinite).
	These points are traditionally coloured black.

	The Mandelbrot set is the best known example of a {fractal} -
	it includes smaller versions of itself which can be explored
	to arbitrary levels of detail.

	{The Fractal Microscope
	(http://ncsa.uiuc.edu/Edu/Fractal/Fractal_Home.html/)}.

	(1995-02-08)

mandelbug

	<jargon, programming> /man'del-buhg/ (From the {Mandelbrot
	set}) A {bug} whose underlying causes are so complex and
	obscure as to make its behaviour appear chaotic or even
	{nondeterministic}.  This term implies that the speaker thinks
	it is a {Bohr bug}, rather than a {heisenbug}.

	See also {schroedinbug}.

	[{Jargon File}]

	(1995-02-08)

Mandy Rice-Davis Applies

	<chat> (MRDA) An acronym used to imply that someone is lying
	to protect their own interests.

	During the trial of Stephen Ward (who was charged with living
	off the immoral earnings of Christine Keeler and Rice-Davies),
	the prosecuting counsel pointed out that Lord Astor denied any
	involvement with her and Rice-Davies replied, "Well, he would,
	wouldn't he?"

	(2010-01-01)

manged

	/mahnjd/ [probably from the French "manger" or Italian
	"mangiare", to eat; perhaps influenced by English "mange",
	"mangy"] Refers to anything that is mangled or damaged,
	usually beyond repair.  "The disk was manged after the
	electrical storm."  Compare {mung}.

	[{Jargon File}]

mangle

	Used similarly to {mung} or {scribble}, but more violent
	in its connotations; something that is mangled has been
	irreversibly and totally trashed.

mangler

	[DEC] A manager.  Compare {mango}; see also {management}.
	Note that {system mangler} is somewhat different in
	connotation.

	[{Jargon File}]

mango

	<jargon> /mang'go/ (Originally in-house jargon at {Symbolics})
	A manager.

	Compare {mangler}.  See also {devo} and {doco}.

	(1995-03-21)

MANIAC

	{Mathematical Analyzer, Numerical Integrator and Computer}

man page

	{Unix manual page}

MANTIS

	<language> A structured, full-function procedural {4GL} and
	application development system from {Cincom}.  MANTIS enables
	the developer to design prototypes, create transaction screens
	and reports, define logical data views, write structured
	procedures, and dynamically test, correct, document, secure,
	and release applications for production in a single,
	integrated, interactive session.

	MANTIS applications can be enhanced with gOOi, the graphical
	object-oriented interface, which creates graphical Windows
	representations of existing MANTIS screens.

	{(http://cincom.com/products/mantis/)}.

	(2003-08-08)

mantissa

	1. <programming> The part of a {floating point} number which,
	when multiplied by its {radix} raised to the power of its
	{exponent}, gives its value.  The mantissa may include the
	number's sign or this may be considered to be a separate part.

	2. <mathematics> The fractional part of a {logarithm}.

	(1996-06-15)

manual testing

	<testing> That part of software testing that requires human
	input, analysis, or evaluation.

	(1996-12-27)

Manufacturer Resource Planning

	<application> (MRP II) A system based on {MRP} which allows
	manufacturers to optimise materials, procurement,
	manufacturing processes, etc., and provide financial and
	planning reports.

	In the late 1970s and early 1980s, manufacturers integrated
	MRP and other manufacturing and business functions.  This
	renaissance is commonly known as Manufacturing Resource
	Planning (MRP II).  According to the American Production and
	Inventory Control Society, Inc. (APICS), MRP II is a method
	for the effective planning of all resources of a manufacturing
	company.  Ideally, it addresses operational planning in units,
	financial planning in dollars, and has a simulation capability
	to answer "what if" questions.  It includes business planning,
	sales and operations planning, production scheduling, material
	requirements planning (MRP), capacity requirements planning,
	and the execution support systems for capacity and material.
	Output from these systems is integrated with financial reports
	such as the business plan, purchase commitment report,
	shipping budget, and inventory projections in dollars.
	Manufacturing resource planning is a direct outgrowth and
	extension of closed-loop MRP.

	See also {Enterprise Resource Planning}, {SAP} R/2, R/3, and
	{Baan}.

	(1999-02-16)

Manufacturers Automation Protocol

	{Manufacturing Automation Protocol}

Manufacturing Automation Protocol

	<protocol> (MAP) A set of {protocols} developed by General
	Motors based on {Token Bus} ({IEEE 802.4}) and giving
	predictable {real-time} response.

	(1994-10-21)

manularity

	/man"yoo-la"ri-tee/ ("manual" + "granularity") A notional
	measure of the manual labor required for some task,
	particularly one of the sort that {automation} is supposed to
	eliminate.  "Composing English on paper has much higher
	manularity than using a text editor, especially in the
	revising stage."  Hackers tend to consider manularity a
	symptom of primitive methods; in fact, a true hacker
	confronted with an apparent requirement to do a computing task
	{by hand} will inevitably seize the opportunity to build
	another tool (see {toolsmith}).

	[{Jargon File}]

	(1994-10-26)

MAO

	An early {symbolic mathematics} system.

	[A. Rom, Celest Mech 1:309-319 (1969)].

	(1995-02-10)

MAP

	1. <protocol> {Manufacturing Automation Protocol}.

	2. {Mathematical Analysis without Programming}.

	(1996-12-01)

map

	1. <mathematics> {function}.

	2. <programming> In {functional programming}, the most common
	{higher-order function} over lists.  Map applies its first
	argument to each element of its second argument (a list) and
	returns the list of results.

		map :: (a -> b) -> [a] -> [b]
		map f []     = []
		map f (x:xs) = f x : map f xs

	This can be generalised to types other than lists.

	(1997-11-05)

MAPI

	{Messaging Application Programming Interface}

Maple

	A {symbolic mathematics} package by B. Char, K. Geddes,
	G. Gonnet, M. Monagan and S. Watt of the {University of
	Waterloo}, Canada and {ETH} Zurich, Switzerland in 1980.
	Version: Maple V.

	E-mail: <wmsi@daisy.waterloo.edu>.  Mailing list:
	glabahn@daisy.waterloo.edu.

	(1994-10-21)

mapping

	{function}

marbles

	<jargon> (From the mainstream "lost his marbles") The minimum
	needed to build your way further up some hierarchy of tools or
	abstractions.  After a bad system {crash}, you need to
	determine if the machine has enough marbles to come up on its
	own, or enough marbles to allow a rebuild from {backups}, or
	if you need to rebuild from scratch.  "This {compiler} doesn't
	even have enough marbles to compile {hello, world}."

	[{Jargon File}]

	(1998-05-21)

Marc Andreessen

	<person> The man who founded {Netscape Communications
	Corporation} in April 1994 with {Dr. James H. Clark}.
	Andreessen has been a director since September 1994.

	As an undergraduate at the {University of Illinois} in
	Champaign, Andreessen created the {Mosaic} {web browser}
	prototype with a team of students and staff at the
	university's {National Center for Supercomputing Applications}
	(NCSA).  With a friendly, {point-and-click} method for
	{navigating} the {Internet} and free distribution to network
	users, NCSA Mosaic gained an estimated two million users
	worldwide in just over one year.  Andreessen earned his
	Bachelor of Science degree in Computer Science at the
	University of Illinois in 1993.

	{Home
	(http://netscape.com/columns/techvision/index.html)}.

	(1999-04-12)

marginal

	<jargon> 1. Extremely small.  "A marginal increase in {core}
	can decrease {GC} time drastically."  In everyday terms, this
	means that it is a lot easier to clean off your desk if you
	have a spare place to put some of the junk while you sort
	through it.

	2. Of extremely small merit.  "This proposed new feature seems
	rather marginal to me."

	3. Of extremely small probability of {win}ning.  "The power
	supply was rather marginal anyway; no wonder it fried."

	[{Jargon File}]

	(1994-10-21)

Marginal Hacks

	<humour> Margaret Jacks Hall, a building into which the
	{Stanford AI Lab} was moved near the beginning of the 1980s
	(from the {D.C. Power Lab}).

	[{Jargon File}]

	(1998-05-21)

Maril

	Machine description language used by the {Marion} code
	generator.

	["The Marion System for Retargetable Instruction Scheduling",
	D.G. Bradlee et al, SIGPLAN Notices 26(6):229-240 (June
	1991)].

Mark 1

	<computer> (Or "Automatic Sequence Controlled Calculator") A
	{first generation computer} developed in 1944 by {Howard
	Aiken} of {Harvard University}.  The Mark 1 is seen as the
	first full-sized digital computer.  It weighed 5 tons, had 500
	miles of wiring, was used only for numeric calculations, and
	took three seconds to carry out one multiplication.

	[Mechanism?  Capacity?  Programmability?]

	(1996-11-24)

marketroid

	/mar'k*-troyd/ (Or "marketing slime", "marketeer", "marketing
	droid", "marketdroid") A member of a company's marketing
	department, especially one who promises users that the next
	version of a product will have features that are not actually
	scheduled for inclusion, are extremely difficult to implement,
	and/or are in violation of the laws of physics; and/or one who
	describes existing features (and misfeatures) in ebullient,
	buzzword-laden adspeak.  Derogatory.

	[{Jargon File}]

	(1995-02-23)

Markov

	See {Andrei Markov}, {Markov chain}, {Markov model}, {Markov
	process}.

	(1995-02-23)

Markov chain

	<probability> (Named after {Andrei Markov}) A model of
	sequences of events where the probability of an event
	occurring depends upon the fact that a preceding event
	occurred.

	A {Markov process} is governed by a Markov chain.

	In {simulation}, the principle of the Markov chain is applied
	to the selection of samples from a probability density
	function to be applied to the model.  {Simscript} II.5 uses
	this approach for some modelling functions.

	[Better explanation?]

	(1995-02-23)

Markov model

	<probability, simulation> A model or {simulation} based on
	{Markov chains}.

	(2000-10-29)

Markov process

	<probability, simulation> A process in which the sequence of
	events can be described by a {Markov chain}.

	(1995-02-23)

Markowitz

	The author of the original {Simscript} language.

mark-sweep garbage collection

	Each cell has a bit reserved for marking which is clear
	initially.  During garbage collection all active cells are
	traced from the root and marked.  Then all cells are examined.
	Unmarked cells are freed.

markup

	<text> In computerised document preparation, a method of adding
	information to the text to indicate the logical components of a
	document, instructions for layout of the text on the page or other
	information which can be interpreted by some automatic system.

	For example, {HTML} (Hypertext Markup Language) adds tags to the
	text to indicate the appearance and behaviour it should have when
	displayed by a {web browser}.  E.g.:

	 <b>This is bold text.</b>

	 <a href="http://foldoc.org/">This is a link to FOLDOC</a>.

	Other examples of markup languages are {troff}, {SGML} (on which
	HTML was based) and {XML}.

	(2012-12-14)

Marlais

	<language> A simple-minded {interpreter} by Brent Benson at
	Harris for a programming language strongly resembling {Dylan}.
	Marlais version 0.2a is a "hackers release" for education,
	experimentation, porting, extension, and bug fixing.

	It has been ported to {Sun-3}, {Sun-4}, {VAX}/{BSD}, {OS/2},
	{Linux}, {Sequent Symmetry}, {Encore}, {HP-UX}, {Ultrix},
	{SGI}, {Sony News}, and {A/UX}.

	{(ftp://travis.csd.harris.com/pub/marlais-0.2a.tar.gz)}.

	(1993-09-23)

Mars

	A legendary tragic failure, the archetypal Hacker Dream Gone
	Wrong.  Mars was the code name for a family of PDP-10
	compatible computers built by Systems Concepts (now, The SC
	Group): the multi-processor SC-30M, the small uniprocessor
	SC-25M, and the never-built superprocessor SC-40M.  These
	machines were marvels of engineering design; although not much
	slower than the unique {Foonly} F-1, they were physically
	smaller and consumed less power than the much slower DEC KS10
	or Foonly F-2, F-3, or F-4 machines.  They were also
	completely compatible with the DEC KL10, and ran all KL10
	binaries (including the operating system) with no
	modifications at about 2--3 times faster than a KL10.

	When DEC cancelled the Jupiter project in 1983, Systems
	Concepts should have made a bundle selling their machine into
	shops with a lot of software investment in PDP-10s, and in
	fact their spring 1984 announcement generated a great deal of
	excitement in the PDP-10 world.  {TOPS-10} was running on the
	Mars by the summer of 1984, and {TOPS-20} by early fall.

	Unfortunately, the hackers running Systems Concepts were much
	better at designing machines than at mass producing or selling
	them; the company allowed itself to be sidetracked by a bout
	of perfectionism into continually improving the design, and
	lost credibility as delivery dates continued to slip.  They
	also overpriced the product ridiculously; they believed they
	were competing with the KL10 and VAX 8600 and failed to reckon
	with the likes of Sun Microsystems and other hungry startups
	building workstations with power comparable to the KL10 at a
	fraction of the price.

	By the time SC shipped the first SC-30M to Stanford in late
	1985, most customers had already made the traumatic decision
	to abandon the PDP-10, usually for VMS or Unix boxes.  Most of
	the Mars computers built ended up being purchased by
	{CompuServe}.

	This tale and the related saga of {Foonly} hold a lesson for
	hackers: if you want to play in the {Real World}, you need to
	learn Real World moves.

	[{Jargon File}]

Marseille Prolog

	<language> One of the two main dialects of {Prolog}, the other
	being {Edinburgh Prolog}.  The difference is largely {syntax}.
	The original Marseille Interpreter (1973) was written in
	{Fortran}.

	[Developed by?]

	(1998-03-16)

marshaling

	<spelling> Alternative US spelling of "{marshalling}".

	(1998-03-16)

marshalling

	<communications> (US -ll- or -l-) The process of packing one
	or more items of data into a message {buffer}, prior to
	transmitting that message buffer over a communication channel.
	The packing process not only collects together values which
	may be stored in non-consecutive memory locations but also
	converts data of different types into a standard
	representation agreed with the recipient of the message.

	(2000-06-09)

MARSYAS

	MARshall SYstem for Aerospace Simulation.

	A software system for digital simulation of large physical
	systems.

	["MARSYAS - A Software System for the Digital Simulation of
	Physical Systems", H. Trauboth et al, Proc SJCC, 36 (1970)].

	(1994-12-02)

Martian

	{Packets} that turn up unexpectedly on the wrong {network}
	because of bogus {routing} entries.  Also a packet which has
	an altogether bogus (non-registered or ill-formed) {internet
	address}, such as the test loopback interface [127.0.0.1].
	Such a packet will come back labelled with a source address
	that is clearly not of this earth.  "The domain server is
	getting lots of packets from Mars.  Does that gateway have a
	martian filter?"

	[{Jargon File}]

Martin Marietta Laboratories Moorestown

	{(http://atlgw.atl.ge.com/)}.

	Address: Building 145, Moorestown Corporate Center,
	Moorestown, NJ 08057, USA.

	(1995-02-06)

MARVIN

	U Dortmund, 1984.  Applicative language based on Modula-2,
	enhanced by signatures (grammars) terms (trees) and attribute
	couplings (functions on trees).  Used for specification of
	language translators.

	["MARVIN - A Tool for Applicative and Modular Compiler
	Specification", H.  Ganziger et al, Forsch 220, U Dortmund,
	Jul 1986].

Mary

	<language> An extensible, machine-oriented superset of
	{ALGOL68} developed by Mark Rain.

	Mary is maintained (and used) by {Kvatro Telecom AS}.
	Although dated, it still offers a nice strongly typed {3GL}
	with {macros} but without most of {C}'s flaws.

	It runs on {SPARC} and {x86} computers.

	Hidden on the back cover of the manual: MARY HAD A LITTLE LAMB
	- COERCION IMPOSSIBLE.

	["Mary Programmer's Reference Manual", M. Rain et al, R Unit,
	Trondheim Norway, 1974].

	["Operator Expressions in Mary", M. Rain, SIGPLAN Notices
	8(1), Jan 1973].

	(1998-11-10)

MAS

	Modula-2 Algebra System.  Runs on {IBM PC}, {Atari}, {Amiga}.

	{(ftp://alice.fmi.uni-passau.de)}.

	["Modula-2 Algebra System", H. Kredel, Proc DISCO 90 Capri,
	LNCS 429, Springer 1990, pp270-271].

MASCOT

	Modular Approach to Software Construction Operation and Test:
	a method for software design aimed at real-time embedded
	systems from the Royal Signals and Research Establishment, UK.

Mask Read-Only Memory

	<storage> (MROM) A kind of {ROM} in which the memory contents
	are determined by one of the masks used to manufacture the
	{integrated circuit}.  MROM can give high storage density
	(bits per millimeter squared) making it a cheap solution for
	high volume applications.

	[Other ROM types?]

	(1995-04-22)

MASM

	{Microsoft} {Assembler} for {MS-DOS}.

	(1995-04-22)

MasPar Unity

	A translator from {UNITY} to {MPL} by Martin Huber, University
	of Karlsruhe, Germany.  Version 1.0.

	{(ftp://SanFrancisco.ira.uka.de/pub/maspar/maspar_unity.tar.Z)}.
	E-mail: Lutz Prechelt <prechelt@ira.uka.de>.

masquerading

	1. <networking> "{NAT}" ({Linux} {kernel} name).

	2. <messaging> Hiding the names of internal e-mail {client}
	and {gateway} machines from the outside world by rewriting the
	"From" address and other {headers} as the message leaves the
	organisation.

	This is good practise because external users do not need to
	know about internal changes in message routing.  The external
	mail gateway needs to know how to route incoming replies back
	to the original sender.

	(1998-03-03)

Massachusetts Institute of Technology

	(MIT) An independent, coeducational university located in
	Cambridge, MA, USA.  Its best-known computer-related labs are
	the {Artificial Intelligence Lab}, the {Lab for Computer
	Science} and the Media Lab.  It is also known for its {hacks}
	or practical jokes, such as {The Great Dome Police Car Hack
	(http://the-tech.mit.edu/Bulletins/hack.html)}.  Resident
	computer {hackers} include {Richard Stallman}, {Gerald
	Sussman} and {Tom Knight}.

	See also {6.001}.

	{(http://web.mit.edu/)}.

massage

	Vague term used to describe "smooth" transformations of a data
	set into a different form, especially transformations that do
	not lose information.  Connotes less pain than {munch} or
	{crunch}.  "He wrote a program that massages {X bitmap} files
	into {GIF} format."  Compare {slurp}.

	[{Jargon File}]

Massey Hope

	<language, functional programming> A refinement of {Hope+C} by
	Nigel Perry <N.Perry@massey.ac.nz> of {Massey University}, NZ,
	with improved {syntax}.

	{Concurrent Massey Hope} is derived directly from Massey
	Hope.

	(1999-08-04)

Massively Multiplayer Online Game

	(MMOG, MMO) Any game that allows dozens, hundreds or even
	thousands of players to interact with a game via the
	{Internet}.  Typically the game runs on a central {server
	farm} and players access it via a {personal computer}, {game
	console} or mobile phone.  The most popular genre is the
	Massively Multiplayer Online Role Playing Game (MMORPG), of
	which {World of Warcraft} is probably the most popular
	example.

	Note that an MMOG is not necessarily a _massive_ game (though
	often they are based in large, complex worlds), their
	distinguishing characteristic is the number of players.

	(2012-05-30)

Massively Multiplayer Online Role-Playing Game

	{Massively Multiplayer Online Game}

master

	{botmaster}

master boot record

	<operating system, storage> A special area on a computer's
	main {hard disk} that gives the location of the disk's {boot
	block} or bootable {partition} where the {operating system} is
	installed.

	(2009-05-19)

Matchmaker

	A language for specifying and automating the generation of
	multi-lingual interprocess communication interfaces.  {MIG} is
	an implementation of a subset of Matchmaker.

	(1994-11-22)

Material Requirements Planning

	<application> (MRP) A system for effectively managing material
	requirements in a manufacturing process.

	Information systems have long been an important part of the
	manufacturing environment.  In the 1960s, manufacturers
	developed Material Requirements Planning (MRP).  According to
	the American Production and Inventory Control Society,
	Inc. (APICS), MRP is a set of techniques that uses bill of
	material data, inventory data, and the master production
	schedule to calculate requirements for materials.  It makes
	recommendations to reorder materials.  Furthermore, because it
	is time-phased, it makes recommendations to reschedule open
	orders when due dates and need dates are not in phase.
	Time-phased MRP begins with the items listed on the Master
	Production Schedule and determines the quantity of all
	components and materials required to fabricate those items and
	the date that the components and material are required.
	Time-phased MRP is accomplished by exploding the bill of
	material, adjusting for inventory quantities on hand or on
	order and offsetting the net requirements by the appropriate
	lead times.

	See also {Manufacturer Resource Planning}.

	(1999-02-16)

Mathcad

	A {symbolic mathematics} environment.

Mathematica

	<tool, mathematics> A popular {symbolic mathematics} and
	graphics system, developed in 1988 by Stephen Wolfram and sold
	by {Wolfram Research}.  The language emphasises rules and
	{pattern-matching}.  The name was suggested by {Steve Jobs}.

	{(http://wri.com/mathematica/)}.

	{Stanford FTP (ftp://otter.stanford.edu/)}, {NCSA FTP
	(ftp://ftp.ncsa.uiuc.edu/)}.

	Mailing list: mathgroup-request@yoda.ncsa.uiuc.edu.

	{Usenet} newsgroup: {news:comp.soft-sys.math.mathematica}.

	["Mathematica: A System for Doing Mathematics by Computer",
	Stephen Wolfram, A-W 1988].

	(1995-05-01)

Mathematical Analysis without Programming

	(MAP) An On-line system for mathematics under {CTSS}.

	[Sammet 1969, p. 240].

	(1995-02-10)

Mathematical Analyzer, Numerical Integrator and Computer

	<computer, history> (MANIAC, Or "Mathematical Analyzer, Numerator,
	Integrator, and Computer") An early computer, built for the {Los
	Alamos Scientific Laboratory}.  MANIAC began operation in March
	1952.  Typical of early computers, it ran its own propriatery
	language.  It was succeeded by MANIAC II in 1957.  A MANIAC III
	was built at the University of Chicago in 1964.

	Contrary to legend, MANIAC did not run {MAD} ({Michigan Algorithm
	Decoder}), which was not invented until 1959.

	(2013-05-05)

Mathematics in Recognizable Form Automatically Compiled

	<language> (MIRFAC) An early interactive system resembling
	{BASIC} using typewriter output with special mathematical
	symbols.

	[Sammet 1969, pp. 281-284].

	(1997-08-01)

MATHLAB

	Symbolic math system, MITRE, 1964.  Later version: MATHLAB 68
	(PDP-6, 1967).

	["The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on
	Symbolic and Algebraic Manip, ACM (Mar 1971)].

	[Sammet 1969, p. 498].

MATH-MATIC or MATHMATIC

	Alternate name for AT-3.  Early, pre-Fortran
	language for UNIVAC I or II.  Sammet 1969.

math-out

	(Possibly from "white-out", the blizzard variety) A paper or
	presentation so encrusted with mathematical or other formal
	notation as to be incomprehensible.  This may be a device for
	concealing the fact that it is actually {content-free}.

	See also {numbers}, {social science number}.

	[{Jargon File}]

	(1994-12-14)

MathWorks

	{The MathWorks, Inc.}

MATLAB

	<mathematics, language, application> A {high-level language}
	and {interactive} program from {The MathWorks} for {numeric
	computation} and {visualisation}.  MATLAB supports {numerical
	analysis}, {matrix} computation, {signal processing}, {linear
	algebra}, {statistics}, {Fourier analysis}, filtering,
	optimisation and {numerical integration}.  It can output two
	and three dimensional graphics and can be integrated with {C},
	{C++}, {Fortran}, {Java}, {COM} and {Microsoft Excel}.

	{(http://mathworks.com/products/matlab/)}.

	Latest version: 7.0.4, as of 2005-08-13.

	(2005-08-13)

Matrix

	[FidoNet]  1. What the Opus BBS software and sysops call
	{FidoNet}.

	2. Fanciful term for a {cyberspace} expected to emerge from
	current networking experiments (see {network, the}).

	3. The totality of present-day computer networks.

	[{Jargon File}]

Matrix Compiler

	Early matrix computations on UNIVAC.  Sammet 1969, p.642.

MATRIX MATH

	<language> An early system on the {UNIVAC I} or II.

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

	(1997-02-27)

Matrix Math eXtensions

	<processor> (MMX) (NOT an acronym for "MultiMedia eXtension",
	according to Intel, but an Intel brand name) A set of 57 extra
	instructions built into some versions of {Intel}'s {Pentium}
	{microprocessors} for supporting {SIMD} operations on
	{multimedia} and communications data types.

	MMX-enhanced processors are due to be released early in 1997.
	They will be fully compatible with previous Intel processors
	and software but software will only benefit if it is written
	to use the new instructions.  They can handle many common
	multimedia operations, such as {digital signal processing},
	normally handled by a separate {sound card} or {video card}.

	(1996-12-21)

MAU

	{Media Access Unit}

Mauchly, John W.

	{John Mauchly}

mawk

	<language, tool> An faster implementation of {nawk} written by
	Mike Brennan at Boeing in 1991 and distributed under {GPL} but
	distinct from {GNU}'s {gawk}.

	Interpreter version 1.1.3 has been ported to {Sun-3},
	{Sun-4}/{SunOS} 4.0.3; {Vax}/{BSD} 4.3, {ULTRIX} 4.1;
	{Stardent} 3000/{SYSV}R3; {DECStation}/{ULTRIX} 4.1,
	{MS-DOS}/{Turbo C++}.

	{(ftp://oxy.edu/public/mawk)}.

	(2000-05-04)

maximal free expression

	(MFE) A {free expression} is sub-expression of a {lambda
	abstraction} not containing the {bound variable}.  A maximal
	free expression is a free expression not contained within any
	other free expression.  See {full laziness}.

maximin

	{minimax}

MAXIMOP

	"Job Control Languages: MAXIMOP and CAFE", J. Brandon, Proc
	BCS Symp on Job Control Languages--Past Present and Future,
	NCC, Manchester, ENgland 1974.

maximum Maytag mode

	<storage, humour> (From the US brand of washing machine) What
	a {washing machine} or, by extension, any {hard disk} is in
	when it's being used so heavily that it's shaking like an old
	Maytag with an unbalanced load.  If prolonged for any length
	of time, can lead to disks becoming {walking drives}.

	[{Jargon File}]

	(1997-07-22)

maximum seek time

	<storage> (Or full stroke seek time) The time it takes to
	{seek} over all {tracks}, i.e., from the innermost to the
	outermost or vice versa.  The maximum seek time gives a
	worst-case measure of the speed of the drive which is useful
	in some {real-time} applications where it is important that
	data flows continuously (such as video editing or CD
	recording).

	(1997-07-15)

maximum segment size

	<networking> (MSS) The maximum amount of {TCP} data that a
	{node} can send in one {segment}.  This should be the size of
	the receiver's reassembly buffer to try to avoid
	{fragmentation}.

	The equivalent at the {physical layer} is "{Maximum
	Transmission Unit}".

	(1998-03-06)

Maximum Transmission Unit

	<networking> (MTU) The largest number of bytes of "payload"
	{data} a {frame} can carry, not counting the frame's header
	and trailer.

	A frame is a single unit of transportation on the {data link
	layer}.  It consists of header data plus data which was passed
	down from the {network layer} (e.g. an {IP} {datagram}) plus
	sometimes trailer data.

	An Ethernet (V2) frame has a MTU of 1500 bytes but the size of
	the frame can be up to 1526 bytes (22 byte header, 4 byte CRC
	trailer).

	See also {fragmentation}.

	(2000-10-07)

Maxis Software

	The developers of {SimCity} and {SimCity 2000}.

	{(http://maxis.com/)}.

	Address: 2 Theatre Square, Suite 230, Orinda, CA 94563-3346,
	USA.

	Telephone: +1 (800) 33-MAXIS.

	(1995-02-08)

MB

	<unit> (Or "Mb") {megabytes} or {megabits}.  When referring to
	the size or data transfer rate of a storage device which is
	accessed in multiples of eight bits (e.g. {RAM}, {hard disk})
	this almost certainly means megabytes, but when referring to
	the data transfer rate of a communications system it probably
	means {megabits}.  Some years ago, it is claimed, "MB" always
	meant megabytes and "Mb" meant megabits but recently this
	useful distinction has been lost.

	(1996-09-22)

MBASIC

	{Microsoft} BASIC.

Mbogo, Dr. Fred

	/*m-boh'goh, dok'tr fred/ [Stanford] The archetypal man you
	don't want to see about a problem, especially an incompetent
	professional; a shyster.  "Do you know a good eye doctor?"
	"Sure, try Mbogo Eye Care and Professional Dry Cleaning."  The
	name comes from synergy between "bogus" and the original
	Dr. Mbogo, a witch doctor who was Gomez Addams' physician on
	the old "Addams Family" TV show.  Compare {Bloggs Family,
	the}, see also {fred}.

	[{Jargon File}]

	(2002-04-14)

MBONE

	Virtual Internet Backbone for Multicast IP.

	{IP-Multicast} is the {class-D} addressing scheme in {IP}
	implemented by Steve Deering at {Xerox PARC}.  It was adopted
	at the {IETF} March 1992 meeting and acquired the name MBONE
	after the July 1992 IETF meeting.

	IP Multicast-based routing allows distributed applications to
	achieve {real-time} communication over {IP} {wide area
	networks} through a lightweight, highly {thread}ed model of
	communication.

	Each network-provider participant in the MBONE provides one or
	more IP multicast routers to connect with tunnels to other
	participants and to customers.  The multicast routers are
	typically separate from a network's production routers since
	most production routers don't yet support IP multicast.  Most
	sites use workstations running the mrouted program, but the
	experimental MOSPF software for Proteon routers is an
	alternative.

	Ideally, the machines running mrouted should be dedicated to
	this task, for reasons of real-time performance and ease of
	installing kernel patches.  Since most intermediate nodes have
	at least three tunnels, each carrying a separate ({unicast})
	copy of each packet, it is also useful to have multiple
	network interfaces so it can be installed parallel to the
	unicast router for those sites with configurations like this:

			+----------+
			| Backbone |
			|   Node   |
			+----------+
			     |
	 ------------------------------------------ External DMZ Ethernet
		  |               |
	     +----------+    +----------+
	     |  Router  |    |  mrouted |
	     +----------+    +----------+
		  |               |
	 ------------------------------------------ Internal DMZ Ethernet

	This configuration allows the mrouted machine to connect with
	tunnels to other regional networks over the external {DMZ} and
	the physical backbone network, and connect with tunnels to the
	lower-level mrouted machines over the internal {DMZ}, thereby
	splitting the load of the replicated packets.  The mrouted
	machine would not do any unicast forwarding.

	Note that end-user sites may participate with as little as one
	workstation that runs the packet audio and video software and
	has a tunnel to a network-provider node.

	{RFC 1112} gives the details.

	{FAQ (http://eit.com/techinfo/mbone/mbone.html)}.

	(1994-11-11)

MBps

	{megabytes per second}

mbps

	{megabits per second}

MBS

	{mobile broadband services}

MC

	<language> An extension of {C} with {modules}.  Symbols in
	other modules can be referenced using a dot notation.

	["Design and Implementation of a C-Based Language for
	Distributed Real-Time Systems", A. Rizk et al, SIGPLAN Notices
	22(6):83-96 (June 1987)].

	(1995-10-06)

mc

	<networking> The {country code} for Monaco.

	(1999-01-27)

MC68000

	{Motorola 68000}

MC68010

	{Motorola 68010}

MC68020

	{Motorola 68020}

MC68030

	{Motorola 68030}

MC68040

	{Motorola 68040}

MC6809

	{Motorola 6809}

MCA

	{Micro Channel Architecture}

MCAD

	{Microsoft Certified Application Developer}

MCC

	1. {Mosaic Communications Corporation}.

	2. The {Microelectronics and Computer Technology Corporation}.

McCulloch-Pitts neuron

	<artificial intelligence> The basic building block of
	{artificial neural networks}.  It receives one or more inputs
	and produces one or more identical outputs, each of which is a
	simple non-linear function of the sum of the inputs to the
	neuron.  The non-linear function is typically a threshhold or
	step function which is usually smoothed (i.e. a {sigmoid}) to
	facilitate {learning}.

	(1997-10-11)

MCDBA

	{Microsoft Certified Database Administrator}

MCDST

	{Microsoft Certified Desktop Support Technician}

McG360

	Interactive, similar to PAL[5], for IBM 360.

	"McG360 Programmer's Guide", RC 2693, IBM TJWRC, Nov 1969.

MCGA

	{Multi-Color Graphics Array}

MCI

	<company> A United States long-distance telecommunications
	company.  Recently bought from {British Telecom} [by ?].

	(1998-05-18)

MCI Mail

	<messaging> The first commercial Internet {electronic mail}
	service, launched by {MCI} in about 1981.  {Vint Cerf} was the
	chief engineer.

	Reading mail was free but you had to pay to send.  Users
	discovered you could communicate for free by sharing an
	account.  One user would save a message as a draft and the
	other would read it and replace it with his response.

	(2004-08-25)

MCL

	{Macintosh Common LISP}

M-Code

	<language> 1. {Intermediate language} produced by some
	{Modula-2} compilers.

	[Which compilers?]

	2. The {intermediate language} for an {SECD}-like machine,
	used by the {Concert} implementation of {MultiLISP}.

	(1996-01-22)

MCP

	{motion compensated prediction}

MCP-1600

	A processor made by {Western Digital}, consisting of at least
	four separate {integrated circuits}, including the control
	circuitry unit, the {ALU}, two or four {ROM} chips with
	{microcode}, and timing circuitry.

	The ALU chip contained twenty-six 8-bit {registers} and an
	8-bit {ALU}, while the control unit supervised the moving of
	data, memory access, and other control functions.  The {ROM}
	allowed the chip to function as either an 8- or 16-bit chip,
	with clever use of the 8-bit {ALU}.  Further, {microcode}
	allowed the addition of {floating-point} routines (40 + 8 bit
	format), simplifying programming (and possibly producing a
	floating-point coprocessor).

	Two standard {microcode} {ROMs} were available.  This
	flexibility was one reason it was also used to implement the
	{DEC} {LSI-11} processor as well as the {WD} {Pascal
	Microengine}.

	(1994-11-18)

MCPD

	{Microsoft Certified Professional Developer}

MCS

	{Meta Class System}

MCSA

	<education> 1. {Microsoft Certified Systems Administrator}.

	2. {Microsoft Certified Solutions Associate}.

	(2013-09-02)

MCSD

	{Microsoft Certified Solution Developer}

MCSE

	1. <education> {Microsoft Certified System Engineer}.

	2. <humour> {Minesweeper, Chess, Solitaire Expert}.

	(2013-03-16)

mcvax

	mcvax.cwi.nl used to be the international {backbone} node of
	{EUnet}, the European Unix network.  It was located in
	Amsterdam, Netherlands and belonged to "Centrum voor Wiskunde
	en Informatica" (Centre for Mathematics and Computer Science)
	which is an institute belonging to a foundation called
	"Mathematisch Centrum".  Since the first mcvax was on of the
	first {VAXen} in Europe and one of it's first {uucp}
	connections was to a machine called decvax it was quickly
	christened mcvax.  Some also say this was done to give Jim
	McKie a nice mail address: mcvax!mckie.  But this is certainly
	not true at all.  The function of EUnet international backbone
	moved to another VAX later but the name moved with it, because
	in those days of mainly uucp based mail and before widespread
	use of {pathalias} it was simply not feasible to rename the
	machine to "europa" as was suggested at one stage.

	Mcsun (or relay.eu.net or net.eu.relay in some parts of
	Europe) replaced the international backbone host of EUnet
	around 1990.  This machine was donated by {Sun Microsystems}
	owned by the {European Unix Systems User Group} (EUUG).  It
	was located about 5m from where mcvax used to be and operated
	by the same people.

	Mcvax has finally ceased to exist in the {domain} and {uucp}
	{namespaces}.  It still exists in the {EARN}/{BITNET}
	namespace.

	[Posting by Daniel Karrenberg <dfk@eu.net> to eunet.general].

	(1990-03-02)

mcvert

	<tool> A {Unix} program for reading and writing {Apple Computer}
	{Macintosh} {binary files}.  It was written by Doug Moore, now
	at {Rice University} (Jan 1990).

	See {BinHex}, {HQX}, {MacBinary}.

	(1995-04-22)

MD

	1. <audio, storage> {Mini Disk}.

	2. <programming> {major delivery}.

	3. {message digest function}.

	(2001-12-02)

md

	<networking> The {country code} for Moldova.

	(1999-01-27)

MD5

	{Message Digest 5}

MDA

	{Monochrome Display Adapter}

MDAC

	{Microsoft Data Access Components}

MDCT

	{Modified Discrete Cosine Transform}

MDF

	{Main Distribution Frame}

MDI

	{Multiple Document Interface}

MDL

	(Originally "Muddle").  C. Reeve, {Carl Hewitt} and {Gerald
	Sussman}, Dynamic Modeling Group, MIT ca. 1971.  Intended as a
	successor to Lisp, and a possible base for Planner-70.
	Basically LISP 1.5 with data types and arrays.  Many of its
	features were advanced at the time (I/O, interrupt handling
	and coroutining), and were incorporated into later LISP
	dialects ("optional", "rest" and "aux" markers).  In the mid
	80's there was an effort to use bytecoding to make the
	language portable.  CLU was first implemented in MDL.  Infocom
	wrote Zork in MDL, and used it as the basis for the ZIL
	interpreter.

	Implementations exist for ITS, {TOPS-20}, BSD 4.3, Apollo
	Domain, SunOS and A/UX.

	["The MDL Programming Language", S.W. Galley et al, Doc
	SYS.11.01, Project MAC, MIT (Nov 1975)].

Mean Time Between Failures

	<specification> (MTBF, or "Mean Time Between Faults") The
	{average} time (usually expressed in hours) that a {component}
	works without failure.  It is calculated by dividing the total
	number of failures into the total number of operating hours
	observed.  The term can also mean the length of time a user
	may reasonably expect a device or system to work before an
	incapacitating fault occurs.

	See also {Mean Time To Recovery}.

	(1998-05-01)

Mean Time Between Faults

	{Mean Time Between Failures}

Mean Time To Recovery

	<specification> (MTTR) The average time that a device will
	take to recover from a non-terminal failure.  Examples of such
	devices range from self-resetting fuses (where the MTTR would
	be very short, probably seconds), up to whole systems which
	have to be replaced.

	The MTTR would usually be part of a maintenance contract,
	where the user would pay more for a system whose MTTR was 24
	hours, than for one of, say, 7 days.  This means the supplier
	is guaranteeing to have the system up and running again within
	24 hours (or 7 days) of being notified of the failure.

	Some devices have a MTTR of zero, which means that they have
	redundant components which can take over the instant the
	primary one fails, see {RAID} for example.

	See also {Mean Time Between Failures}.

	(1998-05-01)

measure

	<testing> To ascertain or appraise by comparing to a
	{standard}; to apply a {metric}.

	(1996-12-27)

measurement

	<testing> The act or process of measuring; a figure, extent,
	or amount obtained by measuring.

	(1996-12-27)

meatspace

	<jargon> The physical world (as opposed {virtual reality})
	where you might spend {facetime} with the {carbon community}.

	(1999-01-15)

meatware

	Less common synonym for {wetware}.

	[Was it Marvin Minsky who described brains as
	"machines?/computers? made of meat"?]

	[{Jargon File}]

	(1994-10-21)

media

	1. <data> Any kind of {data} including {graphics}, {images},
	{audio} and {video}, though typically excluding {raw text} or
	{executable code}.

	The term {multimedia} suggests a collection of different types
	of media or the ability to handle such collections.

	2. <storage> The physical object on which {data} is stored, as
	opposed to the device used to read and write it.

	3. <networking> The object at the {physical layer} that
	carries data, typically an electrical or optical cable,
	though, in a {wireless network}, the term refers to the space
	through which radio waves propagate.  Most often used in the
	context of {Media Access Control} (MAC).

	(2010-01-07)

Media Access Control

	<networking> (MAC) The lower sublayer of the {OSI} {data link
	layer}.  The interface between a {node}'s {Logical Link
	Control} and the network's {physical layer}.  The MAC differs
	for various physical media.

	See also {MAC Address}, {Ethernet}, {IEEE 802.3}, {token ring}.

	[What does it do?  Examples?]

	(1996-01-29)

Media Access Unit

	<networking> (MAU or Multistation Access Unit, MSAU) In a
	{Token Ring} network, a device to attach multiple network
	stations in a star topology, internally wired to connect the
	stations into a logical ring.  The MAU contains relays to
	short out nonoperating stations.  Multiple MAUs can be
	connected into a larger ring through their Ring In/Ring Out
	connectors.

	(1997-05-27)

Media Converter

	<networking> A component used in {Ethernet}, although it is
	not part of the {IEEE} standard.  The IEEE standard states
	that all {segments} must be linked with {repeaters}.  Media
	converters were developed as a simpler, cheaper alternative to
	repeaters.  However, in the 1990s the cost difference between
	the two is negligible.

	(1996-12-09)

Media Gateway Control Protocol

	<communications, protocol> (MGCP) A {protocol} used within a
	{Voice over IP} system.  MGCP is an {IETF} work in progress,
	it superseded {SGCP}.

	MGCP is an internal protocol used within a {distributed}
	system that appears to the outside world as a single VoIP
	{gateway}.

	This system is composed of a {Call Agent}, and a set of
	gateways, including at least one "media gateway" that performs
	the conversion of media signals between {circuits} and
	{packets}, and at least one "signalling gateway" when
	connected to an {SS7} controlled network.

	{IETF MGCP draft
	(http://ietf.org/internet-drafts/draft-huitema-megaco-mgcp-v0r1-05.txt)}.

	(1999-03-17)

Medium Access Control

	{Media Access Control}

meeces

	<jargon> /mees'*z/ ({TMRC}) Occasional furry visitors who are
	not {urchins}; that is, mice.  This may no longer be in live
	use.  According to {ESR} it derives from the refrain of the
	early-1960s cartoon character Mr. Jinx: "I hate meeces to
	*pieces*!"

	[{Jargon File}]

	(1996-12-09)

Meet

	{greatest lower bound}

meg

	{megabyte}

mega-

	{prefix}

megabits per second

	<unit> (Mbps, Mb/s) Millions of {bits} per second.  A unit of
	{data rate}.  1 Mb/s = 1,000,000 bits per second (not
	1,048,576).

	E.g. {Ethernet} can carry 10 Mbps.

	(2002-03-23)

megabyte

	<unit, data> (MB, colloquially "meg") A Unit of {data} equal to
	one million {bytes} but see {binary prefix} for other definitions.
	A megabyte is 1000^2 bytes or 1000 {kilobytes}.

	The text of a six hundred page paperback book stored as {ASCII}
	{characters} contains about a megabyte of data.

	1000 megabytes are one {gigabyte}.

	See {prefix}.

	(2013-11-04)

megabytes per second

	<unit> (MBps, MB/s) Millions of {bytes} per second.  A unit of
	{data rate}.  1 MB/s = 1,000,000 bytes per second (not
	1,048,576).

	(2007-02-20)

megaflop

	<unit> Etymologically incorrect singular of "{megaflops}".

	(1995-02-28)

megaflops

	<unit> One million {floating-point} operations per second.  A
	common unit of measurement of performance of computers used
	for numerical work.

	(2000-08-03)

MegaHertz

	(MHz) Millions of cycles per second.  The unit of frequency
	used to measure the {clock rate} of modern digital logic,
	including {microprocessors}.

	(1994-10-27)

megapenny

	/meg'*-pen"ee/ $10,000 (1 cent * 10^6).  Used semi-humorously
	as a unit in comparing computer cost and performance figures.

	[{Jargon File}]

MEGO

	/me"goh/ or /mee'goh/ ["My Eyes Glaze Over", often "Mine Eyes
	Glazeth (sic) Over", attributed to the futurologist Herman
	Kahn] Also "MEGO factor".  1.  A {handwave} intended to
	confuse the listener and hopefully induce agreement because
	the listener does not want to admit to not understanding what
	is going on.  MEGO is usually directed at senior management by
	engineers and contains a high proportion of {TLAs}.
	2. excl. An appropriate response to MEGO tactics.  3. Among
	non-hackers, often refers not to behaviour that causes the
	eyes to glaze, but to the eye-glazing reaction itself, which
	may be triggered by the mere threat of technical detail as
	effectively as by an actual excess of it.

Mei

	<library> A set of {class libraries} by Atsushi Aoki
	<aoki@sra.co.jp> and others for {Objectworks Smalltalk}
	Release 4.1.  Mei includes: Grapher Library for drawing
	diagrams; Meta Grapher Library (grapher to develop grapher);
	Drawing tools and painting tools (structured diagram editors
	and drawing editors); {GUI builder}; {Lisp} {interpreter};
	{Prolog} interpreter; Pluggable gauges; Extended browser;
	(package, history, recover, etc.)

	Mei is available under {General Public License} and requires
	Objectworks Smalltalk Release 4.1.

	Latest version: 0.50, as of 1993-01-20.

	{Home
	(http://sra.co.jp/people/aoki/htmls/FreeSoftwareForSmalltalk.html)}.

	E-mail: Watanabe Katsuhiro <katsu@sran14.sra.co.jp>

	(1999-12-08)

Mel

	{The story of Mel}

MELD

	A {concurrent}, {object-oriented}, {dataflow}, {modular} and
	{fault-tolerant} language!  MELD is comparable to {SR}.

	["MELDing Multiple Granularities of Parallelism", G. Kaiser et
	al, ECOOP '89, pp. 147-166, Cambridge U Press 1989].

	(1994-11-11)

MELDC

	A {reflective} {object-oriented} {concurrent} programming
	language developed in 1990 by the MELD Project of the
	Programming Systems Laboratory at {Columbia University}.
	MELDC is a redesign of {MELD} based on {C}.

	The core of the architecture is a {micro-kernel} (the MELDC
	kernel), which encapsulates a minimum set of entities that
	cannot be modelled as objects.  All components outside of the
	kernel are implemented as objects in MELDC itself and are
	modularised in the MELDC libraries.  MELDC is reflective in
	three dimensions: structural, computational and architectural.
	The structural reflection indicates that classes and
	meta-classes are objects, which are written in MELDC.  The
	computational reflection means that object behaviours can be
	computed and extended at run time.  The architectural
	reflection indicates that new features/properties
	(e.g. persistency and remoteness) can be constructed in MELDC.

	Version 2.0 runs on {Sun-4}/{SunOS} 4.1 and {DECstation} and
	{MIPS}/{Ultrix} 4.2.

	E-mail: Gail Kaiser <meldc@cs.columbia.edu>.

	MELDC is available under licence from <MeldC@cs.columbia.edu>
	and may not be used for commercial purposes.

	(1992-12-15)

Melinda

	["Melinda: Linda with Multiple Tuple Spaces", S. Hupfer,
	<hupfer-susanne@yale.edu> YALEU/DCS/RR-766, Yale U Feb 1990].

	(1994-11-11)

Mel Kaye

	<person> The hero of {The Story of Mel, a Real Programmer}.
	The preface to the manuals for the {Royal McBee} {LGP-30} ACT
	1 ({Algebraic Compiler and Translator}) {compiler} (dated
	1959) contain the following attribution from Clay S. Boswell,
	Jr. (apparently ACT 1's designer):

	 I wish to acknowledge my appreciation to the many people who
	 offered suggestions and criticisms of the ACT 1 System.  In
	 particular, Mel Kaye of Royal McBee who did the bulk of the
	 programming.

	(2008-08-04)

Mellor

	{Schlaer-Mellor}

meltdown

	{network meltdown}

member function

	A {method} in {C++}.

membership function

	{fuzzy subset}

meme

	<philosophy> /meem/ [By analogy with "gene"] Richard Dawkins's
	term for an idea considered as a {replicator}, especially with
	the connotation that memes parasitise people into propagating
	them much as viruses do.

	Memes can be considered the unit of cultural evolution.  Ideas
	can evolve in a way analogous to biological evolution.  Some
	ideas survive better than others; ideas can mutate through,
	for example, misunderstandings; and two ideas can recombine to
	produce a new idea involving elements of each parent idea.

	The term is used especially in the phrase "meme complex"
	denoting a group of mutually supporting memes that form an
	organised belief system, such as a religion.  However, "meme"
	is often misused to mean "meme complex".

	Use of the term connotes acceptance of the idea that in humans
	(and presumably other tool- and language-using sophonts)
	cultural evolution by selection of adaptive ideas has become
	more important than biological evolution by selection of
	hereditary traits.  Hackers find this idea congenial for
	tolerably obvious reasons.

	See also {memetic algorithm}.

	[{Jargon File}]

	(1996-08-11)

meme plague

	<philosophy> The spread of a successful but pernicious {meme},
	especially one that parasitises the victims into giving their
	all to propagate it.  Astrology, BASIC, and the other guy's
	religion are often considered to be examples.  This usage is
	given point by the historical fact that "joiner" ideologies
	like Naziism or various forms of millennarian Christianity
	have exhibited plague-like cycles of exponential growth
	followed by collapses to small reservoir populations.

	[{Jargon File}]

	(1996-08-11)

memetic algorithm

	<algorithm> A {genetic algorithm} or {evolutionary algorithm}
	which includes a non-genetic local search to improve
	genotypes.  The term comes from the Richard Dawkin's term
	"{meme}".

	One big difference between memes and genes is that memes are
	processed and possibly improved by the people that hold them -
	something that cannot happen to genes.  It is this advantage
	that the memetic algorithm has over simple genetic or
	evolutionary algorithms.

	These algorithms are useful in solving complex problems, such
	as the "{Travelling Salesman Problem}," which involves finding
	the shortest path through a large number of nodes, or in
	creating {artificial life} to test evolutionary theories.

	Memetic algorithms are one kind of {metaheuristic}.

	{UNLP memetic algorithms home page
	(http://ing.unlp.edu.ar/cetad/mos/memetic_home.html)}.

	(07 July 1997)

memetics

	<philosophy> /me-met'iks/ The study of {memes}.

	As of mid-1993, this is still an extremely informal and
	speculative endeavor, though the first steps toward at least
	statistical rigor have been made by H. Keith Henson and
	others.  Memetics is a popular topic for speculation among
	hackers, who like to see themselves as the architects of the
	new information ecologies in which memes live and replicate.

	[{Jargon File}]

	(2000-01-09)

Memex

	<hypertext> {Vannevar Bush}'s original name for {hypertext},
	which he invented in the 1930s.

	{Fantastic article
	(http://jefferson.village.virginia.edu/elab/hfl0051.html)}.

	(2000-01-09)

memo function

	<programming> (Or "memoised function") A {function} that
	remembers which {arguments} it has been called with and the
	result returned and, if called with the same arguments again,
	returns the result from its memory rather than recalculating
	it.

	Memo functions were invented by Professor {Donald Michie} of
	{Edinburgh University}.  The idea was further developed by
	{Robin Popplestone} in his {Pop2} language long before it was
	ever worked into LISP.

	This same principle is found at the hardware level in computer
	architectures which use a {cache} to store recently accessed
	memory locations.

	A {Common Lisp} package by Marty Hall
	<hall@aplcenmp.apl.jhu.edu>
	{(ftp://archive.cs.umbc.edu/pub/Memoization)}.

	["'Memo' functions: and machine learning", Donald Michie,
	Nature, 218, 19-22, 1968].

	(2002-07-02)

memoisation

	{memo function}

memoised function

	{memo function}

memoization

	{memo function}

memoized function

	{memo function}

memory

	<storage> These days, usually used synonymously with {Random
	Access Memory} or {Read-Only Memory}, but in the general sense
	it can be any device that can hold {data} in
	{machine-readable} format.

	(1996-05-25)

memory address space

	<architecture> 1. Any part of a {processor}'s {address space}
	that is occupied by {memory}.

	2. The range of addresses seen by a memory device relative to
	the base address at which it is mapped into the processor's
	address space.

	(1999-11-01)

memory dump

	<programming, operating system, jargon> (Or "core dump") A
	{file} on {hard disk} (traditionally called "core") containing
	a copy of the contents of a {process}'s memory, produced when
	a process is aborted by certain kinds of internal error or
	{signal}.

	{Debuggers} like {adb} and {gdb} can load the dump file and
	display the information it contains about the state of the
	running program.  This can be related to the program code,
	both {object code} and, in a {source-level debugger}, the
	{source code}.  Information includes the contents of
	{registers}, the {call stack} and all other program data.

	(2007-05-09)

memory farts

	<jargon, humour> The flatulent sounds that some {MS-DOS} box
	{BIOS}es (most notably {AMI}'s) make when checking memory at
	{boot} time.

	[{Jargon File}]

	(1994-11-02)

memory leak

	<programming> A {leak} in a program's {dynamic store}
	allocation logic that causes it to fail to reclaim memory in
	the {heap} after it has finished using it, eventually causing
	the program to fail due to lack of memory.

	These problems were severe on older machines with small,
	fixed-size address spaces, and special "leak detection" tools
	were written to diagnose them.

	The introduction of {virtual memory} made memory leaks a less
	serious problem, although if you run out of {virtual
	memory}, it means you've got a *real* leak!

	See {aliasing bug}.

	[{Jargon File}]

	(2003-10-07)

memory location

	<storage> A {byte}, {word} or other small unit of storage
	space in a computer's {main memory} that is identified by its
	starting {address} (and size).

	(1999-04-19)

memory management

	<memory management, storage> A collection of techniques for
	providing sufficient memory to one or more processes in a
	computer system, especially when the system does not have
	enough memory to satisfy all processes' requirements
	simultaneously.  Techniques include {swapping}, {paging} and
	{virtual memory}.  Memory management is usually performed
	mostly by a {hardware} {memory management unit}.

	(1995-01-23)

Memory Management Unit

	<hardware, memory management> (MMU, "Paged Memory Management
	Unit", PMMU) A {hardware} device or circuit that supports
	{virtual memory} and {paging} by translating {virtual
	addresses} into {physical addresses}.

	The virtual {address space} (the range of addresses used by
	the processor) is divided into {pages}, whose size is 2^N,
	usually a few {kilobytes}.  The bottom N {bits} of the address
	(the offset within a page) are left unchanged.  The upper
	address bits are the (virtual) {page number}.  The MMU
	contains a {page table} which is indexed (possibly
	associatively) by the page number.  Each page table entry
	(PTE) gives the physical page number corresponding to the
	virtual one.  This is combined with the page offset to give
	the complete physical address.

	A PTE may also include information about whether the page has
	been written to, when it was last used (for a {least recently
	used} {replacement algorithm}), what kind of processes ({user
	mode}, {supervisor mode}) may read and write it, and whether
	it should be {cache}d.

	It is possible that no physical memory ({RAM}) has been
	allocated to a given virtual page, in which case the MMU will
	signal a "{page fault}" to the {CPU}.  The {operating system}
	will then try to find a spare page of RAM and set up a new PTE
	to map it to the requested virtual address.  If no RAM is free
	it may be necessary to choose an existing page, using some
	{replacement algorithm}, and save it to disk (this is known as
	"{paging}").  There may also be a shortage of PTEs, in which
	case the OS will have to free one for the new mapping.

	In a {multitasking} system all processes compete for the use
	of memory and of the MMU.  Some {memory management}
	architectures allow each process to have its own area or
	configuration of the page table, with a mechanism to switch
	between different mappings on a process switch.  This means
	that all processes can have the same virtual address space
	rather than require load-time relocation.

	An MMU also solves the problem of {fragmentation} of memory.
	After blocks of memory have been allocated and freed, the free
	memory may become fragmented (discontinuous) so that the
	largest contiguous block of free memory may be much smaller
	than the total amount.  With {virtual memory}, a contiguous
	range of virtual addresses can be mapped to several
	non-contiguous blocks of physical memory.

	In early designs memory management was performed by a separate
	{integrated circuit} such as the {MC 68851} used with the
	{Motorola 68020} {CPU} in the {Macintosh II} or the {Z8015}
	used with the {Zilog Z80} family of processors.  Later CPUs
	such as the {Motorola 68030} and the {ZILOG Z280} have MMUs on
	the same IC as the CPU.

	(1999-05-24)

memory mapped I/O

	<architecture> The use of the same instructions and {bus} to
	communicate with both {main memory} and {input/output}
	devices.  This is in contrast to processors that have a
	separate I/O {bus} and special instructions to access it.

	The I/O devices are addressed at certain reserved address
	ranges on the main memory bus.  These addresses cannot
	therefore be used for {RAM}.  {Motorola} and {Mostec}
	architectures, among others, use memory mapped I/O.

	{Video cards} and other cards with on-board memory might be
	accessed in this way though the term applies not just to
	devices containing memory but to any device connected to the
	memory bus.  Accessing the devices usually consists of reading
	and writing certain built-in {registers} though sometimes the
	mere presence of a particular address can trigger the device.

	(1997-04-14)

memory protection

	<memory management> A system to prevent one {process}
	corrupting the memory (or other resources) of any other,
	including the {operating system}.  Memory protection usually
	relies on a combination of hardware (a {memory management
	unit}) and software to allocate memory to processes and handle
	{exceptions}.

	The effectiveness of memory protection varies from one
	operating system to another.  In most versions of {Unix} it is
	almost impossible to corrupt another process' memory, except
	in some archaic implementations and {Lunix} (not {Linux}!).
	Under {Microsoft Windows} (version?  hardware?) any {16 bit
	application}(?) can circumvent the memory protection, often
	leading to one or more {GPFs}.  Currently (April 1996) neither
	{Microsoft Windows} 3.1, {Windows 95}, nor {Mac OS} offer
	memory protection.  {Windows NT} has it, and Mac OS System 8
	will offer a form of memory protection.

	[MS DOS {EMM386} relevant?]

	(1996-09-10)

memory smash

	<jargon> A {Xerox PARC} term for writing to the location
	addressed by a {dangling pointer}.

	[{Jargon File}]

	(1994-11-02)

Memory Type Range Registers

	<architecture, video> (MTRR) Registers in the {Pentium Pro}
	and {Pentium II} processors that can be used to specify a
	strategy for communication with the external memory and
	{caches} for a number of {physical address} ranges.

	Strategies include {write-through}, {write-back}, or
	uncached(?).  Such control is useful where the memory is
	located on a device and is accessed via some kind of device
	bus, e.g. a {PCI} or {AGP} {graphics card}, where caching
	would be of no benefit.

	(1999-07-02)

MEMS

	{microelectromechanical system}

Mentat

	<language> (After the human computers in Frank Herbert's SF
	classic, "Dune") An {object-oriented} distributed language
	developed at the {University of Virginia} some time before Dec
	1987.  Mentat is an extension of {C++} and is portable to a
	variety of {MIMD} architectures.

	By 1994 Mentat was available for {Sun-3}, {Sun-4}, {iPSC}/2
	with plans for {Mach}, {iPSC860}, {RS/6000} and {Iris}.  The
	language is now (May 1998) supported in a new project,
	{Legion}.

	E-mail: <mentat@uvacs.cs.virginia.edu>.

	["Mentat: An Object-Oriented Macro Data Flow System",
	A. Grimshaw <grimshaw@cs.virginia.edu> et al, SIGPLAN Notices
	22(12):35-47, Dec 1987, OOPSLA '87].

	(1998-05-15)

MENTOR

	CAI language.  "Computer Systems for Teaching Complex
	Concepts", Report 1742, BBN, Mar 1969.

menu

	<operating system> A list from which the user may select an
	operation to be performed.  This is often done with a {mouse}
	or other pointing device under a {graphical user interface}
	but may also be controlled from the keyboard.

	Menus are very convenient for beginners because they show what
	commands are available and make experimentating with a new
	program easy, often reducing the need for user documentation.
	Experienced users however, often prefer keyboard commands,
	especially for frequently user operations, because they are
	faster to use.  In situations such as text entry where the
	keyboard must be used anyway, having to move your hand to the
	mouse to invoke a menu operation is slow.

	There are many different ways of presenting menus but the most
	common are the {menu bar} (with {pull-down menus}) and the
	{context-sensitive menu}.

	The term "menu" tends to be reserved for a list of actions or
	global options, whereas a "{list box}" or other graphical
	{widget} might present any kind of choice.

	See also {menuitis}.

	(1994-12-02)

menu bar

	<operating system> A permanently displayed {menu} spread
	horizontally across the top of the screen or window.  When the
	mouse is pressed over an item on the menu bar, a {pull-down
	menu} appears.

	(1999-09-22)

menuitis

	/men"yoo-i:"tis/ A notional disease suffered by software with
	an obsessively simple-minded {menu} interface and no escape.
	Hackers find this intensely irritating and much prefer the
	flexibility of command-line or language-style interfaces,
	especially those customisable via {macros} or a
	special-purpose language in which one can encode useful hacks.

	See {user-obsequious}, {drool-proof paper}, {WIMP}, {for the
	rest of us}.

	[{Jargon File}]

	(1994-12-02)

MENYMA/S

	["A Message Oriented Language for System Applications",
	A. Koch et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE 1982,
	pp. 824-832].

	(1994-12-02)

Mercury Autocode

	{Autocode} for the {Ferranti} {Mercury} machine.

mercury delay line

	<storage, history> An archaic {first-in first-out} fixed time
	period data storage device using {acoustic transducers} to
	transmit data as waves in a trough or tube of mercury.

	EDSAC (Cambridge) and UNIVAC I used delay lines.

	(2002-06-12)

MERISE

	Methode d'Etude et de Realisation Informatique pour les
	Systemes d'Enteprise.

	A software engineering method popular in France; many {IPSEs}
	are based on it.

	(1995-01-24)

Merlin

	{OS/2}

MEROON

	<language> An {object-oriented} system built on {Scheme}.

	[What kind of system?]

	{(ftp://nexus.yorku.ca/pub/scheme/new/)}.

	(1997-05-05)

Mesa

	Xerox PARC, 1977.  System and application programming for
	proprietary hardware: Alto, Dolphin, Dorado and Dandelion.
	Pascal-like syntax, ALGOL68-like semantics.  An early version
	was weakly typed.  Mesa's modules with separately compilable
	definition and implementation parts directly led to Wirth's
	design for Modula.  Threads, coroutines (fork/join),
	exceptions, and monitors.  Type checking may be disabled.
	Mesa was used internally by Xerox to develop ViewPoint, the
	Xerox Star, MDE, and the controller of a high-end copier.  It
	was released to a few universitites in 1985.  Succeeded by
	Cedar.

	["Mesa Language Manual", J.G.  Mitchell et al, Xerox PARC,
	CSL-79-3 (Apr 1979)].

	["Early Experience with Mesa", Geschke et al, CACM
	20(8):540-552 (Aug 1977)].

mesh

	<character> The {INTERCAL} name for {hash}.

MESI protocol

	<processor> Modified, Exclusive, Shared, Invalid.

	A {cache coherency} {protocol} where each {cache line} is
	marked with one of the four states.

	The MESI protocol is used by the {Pentium} processor.

	(1995-05-05)

message

	In {object-oriented programming} sending a message to an
	{object} (to invoke a {method}) is equivalent to calling a
	{procedure} in traditional programming languages, except that
	the actual code executed may only be selected at run time
	depending on the {class} of the object.  Thus, in response to
	the message "drawSelf", the method code invoked would be
	different if the target object were a circle or a square.

	(1995-02-16)

message board

	{bulletin board system}

Message Digest 5

	<messaging> The {message digest function} defined in {RFC
	1321}.

	(1996-08-04)

message digest function

	{one-way hash function}

Message Handling System

	<messaging, standard> (MHS) The {standard} defined by {ITU-T}
	as {X.400} and by {ISO} as {Message-Oriented Text Interchange
	Standard} (MOTIS).  MHS is the X.400 family of services and
	{protocols} that provides the functions for global {electronic
	mail} transfer among local mail systems and {MTAs}.

	It is used by {CompuServe}, among others.

	(1996-09-25)

message passing

	One of the two techniques for communicating between parallel
	processes (the other being {shared memory}).

	A common use of message passing is for communication in a
	{parallel computer}.  A process running on one processor may
	send a message to a process running on the same processor or
	another.  The actual transmission of the message is usually
	handled by the {run-time support} of the language in which the
	processes are written, or by the {operating system}.

	Message passing scales better than {shared memory}, which is
	generally used in computers with relatively few processors.
	This is because the total communications {bandwidth} usually
	increases with the number of processors.

	A message passing system provides primitives for sending and
	receiving messages.  These primitives may by either
	{synchronous} or {asynchronous} or both.  A synchronous send
	will not complete (will not allow the sender to proceed) until
	the receiving process has received the message.  This allows
	the sender to know whether the message was received
	successfully or not (like when you speak to someone on the
	telephone).  An asynchronous send simply queues the message
	for transmission without waiting for it to be received (like
	posting a letter).  A synchronous receive primitive will wait
	until there is a message to read whereas an asynchronous
	receive will return immediately, either with a message or to
	say that no message has arrived.

	Messages may be sent to a named process or to a named
	{mailbox} which may be readable by one or many processes.

	Transmission involves determining the location of the
	recipient and then choosing a route to reach that location.
	The message may be transmitted in one go or may be split into
	{packets} which are transmitted independently (e.g. using
	{wormhole routing}) and reassembled at the receiver.  The
	message passing system must ensure that sufficient memory is
	available to buffer the message at its destination and at
	intermediate nodes.

	Messages may be typed or untyped at the programming language
	level.  They may have a priority, allowing the receiver to
	read the highest priority messages first.

	Some message passing computers are the {MIT J-Machine
	(http://ai.mit.edu/projects/cva/cva_j_machine.html)}, the
	{Illinois Concert Project
	(http://www-csag.cs.uiuc.edu/projects/concert.html)} and
	{transputer}-based systems.

	{Object-oriented programming} uses message passing between
	{objects} as a metaphor for procedure call.

	(1994-11-11)

Message Passing Interface

	<communications, protocol> A {de facto standard} for
	communication among the {nodes} running a {parallel program}
	on a {distributed memory system}.  MPI is a {library} of
	{routines} that can be called from {Fortran} and{ C} programs.
	MPI's advantage over older message passing libraries is that
	it is both {portable} (because MPI has been implemented for
	almost every distributed memory {architecture}) and fast
	(because each implementation is {optimised} for the {hardware}
	it runs on).

	[Address?]

	(1997-06-09)

message switching

	{store and forward}

Message Transfer Agent

	<messaging> (MTA, Mail Transfer Agent) Any program responsible
	for delivering {e-mail} messages.  Upon receiving a message
	from a {Mail User Agent} or another MTA, often by {SMTP} over
	the {Internet}, it stores it temporarily locally and analyses
	the recipients and delivers it to any local addressees and/or
	forwards it to other remote MTAs ({routing}) for delivery to
	remote recipients.  In either case it may edit and/or add to
	the message {headers}.

	The most widely used MTA for {Unix} is {sendmail}, which
	communicates using {SMTP}.

	[Other OSes?]

	{RFC 2821} (SMTP) expands MTA as "Mail Transfer Agent" though
	this is less common.  Alternatives with "Transport" are also
	seen but less correct.

	(2007-06-01)

Message Transport Agent

	{Message Transfer Agent}

Messaging Application Programming Interface

	<messaging> (MAPI) A messaging architecture and a {client}
	interface component for applications such as {electronic
	mail}, scheduling, calendaring and document management.  As a
	messaging architecture, MAPI provides a consistent interface
	for multiple {application programs} to interact with multiple
	messaging systems across a variety of {hardware} {platforms}.

	MAPI provides better performance and control than {Simple
	MAPI}, {Common Messaging Calls} (CMC) or the {Active Messaging
	Library}.  It has a comprehensive, open, dual-purpose
	interface, integrated with {Microsoft Windows}.  MAPI can be
	used by all levels and types of client application and
	"service providers" - driver-like components that provide a
	MAPI interface to a specific messaging system.  For example, a
	{word processor} can send documents and a {workgroup}
	application can share and store different types of data using
	MAPI.

	MAPI separates the programming interfaces used by the client
	applications and the service providers.  Every component works
	with a common, {Microsoft Windows}-based user interface.  For
	example, a single messaging client application can be used to
	receive messages from {fax}, a {bulletin board} system, a
	host-based messaging system and a {LAN}-based system.
	Messages from all of these systems can be delivered to a
	single "universal Inbox".

	MAPI is aimed at the powerful, new market of workgroup
	applications that communicate with such different messaging
	systems as fax, {DEC} {All-In-1}, {voice mail} and public
	communications services such as {AT&T} Easylink Services,
	{CompuServe} and {MCI} MAIL.  Because workgroup applications
	demand more of their messaging systems, MAPI offers much more
	than basic messaging in the programming interface and supports
	more than {local area network} (LAN)-based messaging systems.
	Applications can, for example, format text for a single
	message with a variety of fonts and present to their users a
	customised view of messages that have been filtered, sorted or
	preprocessed.

	MAPI is built into {Windows 95} and {Windows NT} and can be
	used by 16-bit and 32-bit Windows applications.  The
	programming interface and subsystem contained in the MAPI
	{DLL} provide objects which conform to the {Component Object
	Model}.  MAPI includes standard messaging client applications
	that demonstrate different levels of messaging support.

	MAPI provides cross platform support through such industry
	standards as {SMTP}, {X.400} and Common Messaging Calls.  MAPI
	is the messaging component of {Windows Open Services
	Architecture} (WOSA).

	[Correct expansion?  Relatonship with Microsoft?]

	(1997-12-03)

Messaging Applications Programming Interface

	{Messaging Application Programming Interface}

mess-dos

	/mes-dos/ (Or MS-DOG, Messy-DOS, mess-dross, mess-loss,
	mush-dos) Derisory term for {MS-DOS}.  Often followed by the
	ritual banishing "Just say No!"

	Most hackers (even many {MS-DOS} hackers) loathe {MS-DOS} for
	its single-tasking nature, its limits on application size, its
	nasty primitive interface, and its ties to {IBM}ness (see
	{fear and loathing}).

	In Ireland and the UK it is sometimes called "Domestos" after
	a brand of toilet cleanser.

	[{Jargon File}]

	(1994-11-16)

META

	<language> The {assembly language} for the {CYBER 200},
	developed at {CDC} ca 1977.

	[CDC Pub 60256020].

	[{Jargon File}]

	(1994-11-16)

meta

	<philosophy> /me't*/ or /may't*/ or (Commonwealth) /mee't*/ A
	prefix meaning one level of description higher.  If X is some
	concept then meta-X is data about, or processes operating on,
	X.

	For example, a {metasyntax} is {syntax} for specifying syntax,
	{metalanguage} is a language used to discuss language,
	{metadata} is data about data, and {meta-reasoning} is
	reasoning about reasoning.

	This is difficult to explain briefly, but much hacker humour
	turns on deliberate confusion between meta-levels.

	[{Jargon File}]

	(1999-04-06)

META 5

	Early syntax-directed {compiler-compiler}, used for
	translating one {high-level language} to another.

	Versions: META II, META-3.

	["META 5: A Tool to Manipulate Strings of Data",
	D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966].

	[Sammet 1969, p. 638].

	(1995-01-23)

meta bit

	The top bit of an 8-bit character, which is on in character
	values 128--255.  Also called {high bit}, {alt bit}, or
	{hobbit}.  Some terminals and consoles (see {space-cadet
	keyboard}) have a META shift key.  Others (including,
	*mirabile dictu*, keyboards on IBM PC-class machines) have an
	ALT key.  See also {bucky bits}.

	Historical note: although in modern usage shaped by a universe
	of 8-bit bytes the meta bit is invariably {hex} 80 ({octal}
	0200), things were different on earlier machines with 36 bit
	words and 9-bit bytes.  The MIT and Stanford keyboards (see
	{space-cadet keyboard}) generated hex 100 (octal 400) from
	their meta keys.

	[{Jargon File}]

MetaCard

	A commercial human interface and {hypertext} system for {Unix}
	and the {X Window System}, similar to {Hypercard}.

	(1994-11-17)

Meta-CASE tool

	A term sometimes used for software packages (like TBK or VSF)
	which allow users to develop or customise their own CASE
	tools.

metaclass

	<programming> The {class} of a class in an {object-oriented
	programming} language.  A metaclass is a class whose {instances}
	are themselves classes.  Typically there will only be one
	metaclass, called "Class" or similar, which is the class of all
	classes including itself.  In some languages there will be no
	metaclass.

	The idea of a metaclass is closely associated with {introspection}
	- the ability of a program to access the structure and logic of
	itself or other programs.

	(2013-09-02)

Meta Class System

	<language> (MCS) A portable {object-oriented} extension of {Common
	Lisp} from {GMD}.  It integrates the functionality of {CLOS} and
	{TELOS}.

	{(ftp://gmdzi.gmd.de/pub/lisp/mcs)}.

	(1994-10-21)

Meta-Crystal

	A language for transformations of Crystal programs.
	Implemented in T.  "Meta-Crystal- A Metalanguage for
	Parallel-Program Optimisation", J.A. Yang et al, TR
	YALEU/DCS/TR-786, Yale Apr 1990.  (See Crystal).

metadata

	<data> /me't*-day`t*/, or combinations of /may'-/ or
	(Commonwealth) /mee'-/; /-dah`t*/ (Or "meta-data") Data about
	{data}.  In {data processing}, metadata is definitional data
	that provides information about or documentation of other data
	managed within an application or environment.

	For example, metadata would document data about {data
	elements} or {attributes}, (name, size, data type, etc) and
	data about {records} or {data structures} (length, fields,
	columns, etc) and data about data (where it is located, how it
	is associated, ownership, etc.).  Metadata may include
	descriptive information about the context, quality and
	condition, or characteristics of the data.

	A collection of metadata, e.g. in a {database}, is called a
	{data dictionary}.

	Myers of {The Metadata Company} claims to have coined the term
	in 1969 though it appears in the book, "Extension of
	programming language concepts" published in 1968, by {Philip
	R. Bagley}.  Bagley was a pioneer of computer document
	retrieval.  "A survey of extensible programming languages" by
	Solntsseff and Yezerski (Annual Review in Automatic
	Programming, 1974, pp267-307) cites "the notion of 'metadata'
	introduced by Bagley".

	(2010-05-15)

Metadata Information Partners

	{The Metadata Company}

META element

	<World-Wide Web> An {element}, with tag name of "META",
	expressing {meta-data} about a given {HTML} document.  HTML
	standards do not require that documents have META elements;
	but if META elements occur, they must be inside the document's
	HEAD element.

	The META element can be used to identify properties of a
	document (e.g., author, expiration date, a list of key words,
	etc.) and assign values to those properties, typically by
	specifying a NAME {attribute} (to name the property) and a
	CONTENT attribute (to assign a value for that property).  The
	HTML 4 specification doesn't standardise particular NAME
	properties or CONTENT values; but it is conventional to use a
	"Description" property to convey a short summary of the
	document, and a "Keywords" property to provide a list of
	{keywords} relevant to the document, as in:

	 <META NAME="Description" CONTENT="Information from around the
	 world on kumquat farming techniques and current kumquat
	 production and consumption data">
	 <META NAME="Keywords" CONTENT="kumquat, Fortunella">

	META elements with HTTP-EQUIV and CONTENT attributes can
	simulate the effect of {HTTP} header lines, as in:

	 <META HTTP-EQUIV="Expires" CONTENT="Tue, 22 Mar 2000 16:18:35 GMT">
	 <META HTTP-EQUIV="Refresh" CONTENT="10; URL=http://foldoc.org/">

	Other properties may be application-specific.  For example,
	the {Robots Exclusion
	(http://info.webcrawler.com/mak/projects/robots/norobots.html)}.
	standard uses the "robots" property for asserting that the
	given document should not be indexed by robots, nor should
	links in it be followed:

	 <META NAME="robots" CONTENT="noindex,follow">

	(2001-02-07)

metafile

	<graphics, file format> 1. An image file format for transport
	between different machines, often as a {device independent
	bitmap}.

	2. A {functional specification} for encoding computer
	{graphics} for later display on some suitable device.

	(1996-09-20)

METAFONT

	A system for the design of raster-based alphabets by {Donald
	Knuth}.  A companion to {TeX}.

	["The METAFONT Book," Donald Knuth, A-W 1986.  Version 2.0,
	March 1990].

	(1994-11-04)

metaheuristic

	<algorithm, complexity, computability> A top-level general
	strategy which guides other {heuristics} to search for
	feasible solutions in domains where the task is hard.

	Metaheuristics have been most generally applied to problems
	classified as {NP-Hard} or {NP-Complete} by the theory of
	{computational complexity}.  However, metaheuristics would
	also be applied to other {combinatorial} {optimisation}
	problems for which it is known that a {polynomial-time}
	solution exists but is not practical.

	Examples of metaheuristics are {Tabu Search}, {simulated
	annealing}, {genetic algorithms} and {memetic algorithms}.

	(1997-10-30)

Meta-II

	An early {compiler-compiler}.

	["Meta-II: a Syntax Oriented Compiler Writing Language",
	V. Schorre, Proc 19th ACM Natl Conf 1964].

	(1995-01-23)

metainformation

	{meta-data}

Meta-IV

	{Vienna Development Method Specification Language}

METAL

	1. Mega-Extensive Telecommunications Applications Language.
	BBS language for PRODOS 8 on Apple II.

	2. The syntax-definition formalism of the Mentor system.
	Metal specifications are compiled to specifications for a
	scanner/parser generator such as Lex/Yacc.  "Metal: A
	Formalism to Specify Formalisms", G.  Kahn et al, Sci Comp
	Prog 3:151-188 (1983).

metalanguage

	1. [theorem proving] A language in which proofs are
	manipulated and tactics are programmed, as opposed to the
	logic itself (the "{object language}").  The first {ML} was
	the metalanguage for the Edinburgh {LCF} proof assistant.

	2. [logic] A language in which to discuss the truth of
	statements in another language.

Metal Oxide Semiconductor

	<electronics> (MOS) The three materials used to form a {gate}
	in the most common kind of {Field Effect Transistor} - a
	{MOSFET}.

	[Other MOS devices?]

	(1996-05-27)

Metal Oxide Semiconductor Field Effect Transistor

	<electronics> (MOSFET) A {Field Effect Transistor} in which
	the conducting channel is insulated from the gate terminal by
	a layer of oxide.  Therefore it does not conduct even if a
	reverse voltage is applied to the gate.

	(1997-02-24)

metaphone

	<algorithm, text> An {algorithm} for encoding a word so that
	similar sounding words encode the same.  It's similar to
	{soundex} in purpose, but as it knows the basic rules of
	English pronunciation it's more accurate.  The higher accuracy
	doesn't come free, though, metaphone requires more
	computational power as well as more storage capacity, but
	neither of these requirements are usually prohibitive.  It is
	in the public domain so it can be freely implemented.

	Metaphone was developed by Lawrence Philips
	<lphilips@verity.com>.  It is described in ["Practical
	Algorithms for Programmers", Binstock & Rex, Addison Wesley,
	1995].

	(1998-12-22)

metaprogram

	A program which modifies or generates other programs.  A
	{compiler} is an example of a metaprogram: it takes a program
	as input and produces another (compiled) one as output.

	(1994-10-24)

metasyntactic variable

	<grammar> Strictly, a {variable} used in {metasyntax}, but
	often used for any name used in examples and understood to
	stand for whatever thing is under discussion, or any random
	member of a class of things under discussion.  The word {foo}
	is the {canonical} example.  To avoid confusion, hackers never
	(well, hardly ever) use "foo" or other words like it as
	permanent names for anything.

	In filenames, a common convention is that any filename
	beginning with a metasyntactic-variable name is a {scratch}
	file that may be deleted at any time.

	To some extent, the list of one's preferred metasyntactic
	variables is a cultural signature.  They occur both in series
	(used for related groups of variables or objects) and as
	singletons.  Here are a few common signatures:

	{foo}, {bar}, {baz}, {quux}, quuux, quuuux...: MIT/Stanford
	usage, now found everywhere.  At MIT (but not at Stanford),
	{baz} dropped out of use for a while in the 1970s and '80s.  A
	common recent mutation of this sequence inserts {qux} before
	{quux}.

	bazola, ztesch: Stanford (from mid-'70s on).

	{foo}, {bar}, thud, grunt: This series was popular at CMU.
	Other CMU-associated variables include ack, barf, foo, and
	{gorp}.

	{foo}, {bar}, fum: This series is reported to be common at
	{Xerox PARC}.

	{fred}, {barney}: See the entry for {fred}.  These tend to be
	Britishisms.

	{toto}, titi, tata, tutu: Standard series of metasyntactic
	variables among francophones.

	{corge}, {grault}, {flarp}: Popular at Rutgers University and
	among {GOSMACS} hackers.

	zxc, spqr, {wombat}: Cambridge University (England).

	shme: Berkeley, GeoWorks, Ingres.  Pronounced /shme/ with a
	short /e/.

	{foo}, {bar}, zot: {Helsinki University of Technology},
	Finland.

	blarg, wibble: New Zealand

	Of all these, only "foo" and "bar" are universal (and {baz}
	nearly so).  The compounds {foobar} and "foobaz" also enjoy
	very wide currency.

	Some jargon terms are also used as metasyntactic names; {barf}
	and {mumble}, for example.

	See also {Commonwealth Hackish} for discussion of numerous
	metasyntactic variables found in Great Britain and the
	Commonwealth.

	[{Jargon File}]

	(1995-11-13)

metasyntax

	<grammar> {Syntax} used to describe {syntax}.  The best known
	example is {BNF} and its variants such as {EBNF}.

	A {metasyntactic variable} is a {variable} used in
	{metasyntax}.

	(1999-04-06)

META tag

	{META element}

Meta-Vlisp

	<language> An innovative {Lisp} dialect by E. St.James of IBP,
	France.

	(2000-12-19)

Met-English

	A {Fortran}-like language designed at {Metropolitan Life} in
	the early 1960s.  It had support for variable-length bit
	fields.  Most MetLife {DP} in the 1960s and 1970s was in
	Met-English.  It was originally developed for {Honeywell}
	machines, but many programs still run under {IBM} {MVS} via a
	Honeywell {emulator}.

	(1995-02-15)

METEOR

	A version of COMIT with Lisp-like syntax, written in MIT Lisp
	1.5 for the IBM 7090.  "METEOR - A List Interpreter for String
	Transformation", D.G. Bobrow in The Programming Language LISP
	and its Interpretation, E.D.  and D.G. Bobrow eds, 1964.

meter

	<spelling> US spelling of "{metre}".

	(1998-02-07)

method

	<programming> The name given in {Smalltalk} and other
	{object-oriented languages} to a procedure or routine
	associated with one or more {classes}.  An {object} of a
	certain class knows how to perform actions, e.g. printing
	itself or creating a new instance of itself, rather than the
	function (e.g. printing) knowing how to handle different types
	of object.

	Different classes may define methods with the same name
	(i.e. methods may be {polymorphic}).  The term "method" is used
	both for a named operation, e.g. "PRINT" and also for the code
	which a specific class provides to perform tha
	t operation.

	Most methods operate on objects that are instances of a
	certain class.  Some object-oriented languages call these
	"object methods" to distinguish then from "{class methods}".

	In {Smalltalk}, a method is defined by giving its name,
	documentation, temporary local variables and a sequence of
	expressions separated by "."s.

	(2000-03-22)

methodology

	1. <programming> An organised, documented set of procedures
	and guidelines for one or more phases of the {software life
	cycle}, such as analysis or design.  Many methodologies
	include a diagramming notation for documenting the results of
	the procedure; a step-by-step "cookbook" approach for carrying
	out the procedure; and an objective (ideally quantified) set
	of criteria for determining whether the results of the
	procedure are of acceptable quality.

	An example is The {Yourdon methodology}.

	2. A pretentious way of saying "method".

	(1995-04-10)

Methods

	<language> A line-oriented {Smalltalk} for {PC}'s, produced by
	Digitalk ca 1985.  Methods was the predecessor of
	{Smalltalk/V}.

	(1995-04-16)

me too

	A {functional language} for executable specifications
	developed by Peter Henderson in 1984.  It is like {LispKit
	Lisp}, but with sets, maps and sequences to describe the
	specification.

	["Functional Programming, Formal Specification and Rapid
	Prototyping", IEEE Trans Soft Eng, SE-12(2):241-250 (Feb
	1986)].

	(1994-10-21)

metre

	<unit> (US "meter") The fundamental {SI} unit of length.

	From 1889 to 1960, the metre was defined to be the distance
	between two scratches in a platinum-iridium bar kept in the
	vault beside the Standard Kilogram at the International Bureau
	of Weights and Measures near Paris.

	This replaced an earlier definition as 10^-7 times the
	distance between the North Pole and the Equator along a
	meridian through Paris; unfortunately, this had been based on
	an inexact value of the circumference of the Earth.

	From 1960 to 1984 it was defined to be 1650763.73 wavelengths
	of the orange-red line of krypton-86 propagating in a vacuum.

	It is now defined as the length of the path traveled by light
	in a vacuum in the time interval of 1/299,792,458 of a second.

	(1998-02-07)

metric

	{software metric}

metric space

	<mathematics> A set of points together with a {function}, d,
	called a metric function or distance function.  The function
	assigns a positive {real number} to each pair of points,
	called the distance between them, such that:

	1. For any point x, d(x,x)=0;

	2. For any two distinct points x and y, d(x,y)>0;

	3. For any two points x and y, not necessarily distinct,

		d(x,y) = d(y,x).

	4. For any three points x, y, and z, that are not necessarily
	distinct,

		d(x,z) <= d(x,y) + d(y,z).

	The distance from x to z does not exceed the sum of the
	distances from x to y and from y to z.  The sum of the lengths
	of two sides of a triangle is equal to or exceeds the length
	of the third side.

	(2003-06-26)

Metropolitan Area Network

	(MAN) A data network intended to serve an area the size of a
	large city.  Such networks are being implemented by innovative
	techniques, such as running {optical fibre} through subway
	tunnels.  A popular example of a MAN is {SMDS}.

	See also {Local Area Network}, {Wide Area Network}.

	(1994-11-22)

M-expression LISP

	(MLISP) The original "{meta-language}" {syntax} of {Lisp},
	designed by {John McCarthy} in 1962.  MLISP was intended for
	external use in place of the parenthesised {S-expression}
	{syntax}.

	["LISP 1.5 Programmer's Manual", J. McCarthy et al, MIT Press
	1962].

	(1994-11-22)

MFC

	{Microsoft Foundation Class}

	(1995-11-16)

MFE

	{maximal free expression}

MFLOPS

	1. <unit> {megaflops}.

	2. <benchmark> A {benchmark} which attemps to estimate a
	system's {floating-point} "MFLOPS" rating for specific {FADD},
	{FSUB}, {FMUL} and {FDIV} instruction mixes.

	{C Source (ftp://ftp.nosc.mil/pub/aburto/flops20.c)}.
	{Results
	(http://performance.netlib.org/performance/html/flops.html)},
	{(ftp://ftp.nosc.mil/pub/aburto/flops_1.tbl)},
	{(ftp://ftp.nosc.mil/pub/aburto/flops_2.tbl)},
	{(ftp://ftp.nosc.mil/pub/aburto/flops_3.tbl)},
	{(ftp://ftp.nosc.mil/pub/aburto/flops_4.tbl)}.

	(1994-11-14)

MFM

	{Modified Frequency Modulation}

MFTL

	{My Favourite Toy Language}

mg

	<networking> The {country code} for Madagascar.

	<text, tool> {MicroGnuEmacs}.

MGCP

	{Media Gateway Control Protocol}

mh

	<networking> The {country code} for Marshall Islands.

	(1999-01-27)

MHDL

	1. {MIMIC Hardware Description Language}.

	2. {Microwave Hardware Description Language}.

MHEG

	{Multimedia and Hypermedia information coding Expert Group}

MHS

	{message handling system}

MHz

	{MegaHertz}

MIB

	{Management Information Base}

MIB Variable

	A managed object that is defined in a {Management Information
	Base} (MIB).  The object is defined by a textual name and a
	corresponding object identifier, a {syntax}, an access mode, a
	status, and a description of the semantics of the managed
	object.  The MIB Variable contains pertinent management
	information that is accessible as defined by the access mode.

	(1995-03-22)

Mic-1

	Microprogramming language, used in {Andrew Tanenbaum}'s book.

	See {Mac-1}.

	[Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
	1989, Sect 4.4, 4.5].

Mic-2

	Microprogramming language, used in {Tanenbaum}'s book.

	See {Mac-1}.

	[Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
	1989, Sect 4.4, 4.5].

MICE

	{Multimedia Integrated Conferencing for European Researchers}

mice

	{mouse}

Michigan Algorithm Decoder

	<language> (MAD) An early programming language, based on
	{IAL}, developed at the University of Michigan by R. Graham,
	Bruce Arden, and Bernard Galler in 1959.  MAD was one of the
	first {extensible languages}: the user could define his own
	{operators} and {data types}.

	MAD ran on the {IBM 704}, {IBM 709} and {IBM 7090}.  It was
	ported to the {IBM 7040} at the City College of New York by
	Robert Teitel and also to {Philco}, {Univac} and {CDC}
	computers.

	{Mad/1} was a later version.

	["Michigan Algorithm Decoder (The MAD Manual)", U Michigan
	Computing Center, 1966].

	[Sammet 1969, p. 205].

	(2005-02-09)

mickey

	<unit, humour> The unit of resolution of {mouse} movement.

	It has been suggested that the "disney" will become a
	benchmark unit for animation graphics performance.

	[{Jargon File}]

	(1999-06-30)

mickey mouse program

	<jargon> The North American equivalent of a "{noddy} program",
	i.e. trivial.  The term doesn't necessarily have the belittling
	connotations of mainstream slang "Oh, that's just mickey mouse
	stuff!"; sometimes trivial programs can be very useful.

	[{Jargon File}]

	(1995-04-10)

MICR

	{Magnetic Ink Character Recognition}

micro

	{microprocessor}

micro-

	{prefix}

microarray

	A technique for performing many DNA experiments in parallel.
	Nothing to do with computers.

	(2007-05-14)

Micro Assembly Language

	<language> (MAL) A {microprogramming} language with high-level
	{syntax}, used in the reference below.

	See also {Mic-1}, {Mac-1}.

	[Structured Computer Organization, A.S. Tanenbaum, 3rd ed, P-H
	1989, Sect 4.4].

	(1995-04-10)

microcentury

	One CS professor used to characterise the standard length of
	his lectures as a microcentury - that is, about 52.6 minutes
	(see also {attoparsec}, {nanoacre}, and especially
	{microfortnight}).

Micro Channel Architecture

	<architecture> (MCA) {IBM}'s proprietary 32-bit {bus}, used in
	high-end {PS/2} {personal computers}.  Micro Channel is
	designed for {multiprocessing}.  It eliminates potential
	conflicts that arise when installing new peripheral devices.
	MCA is *not* compatible with either {EISA} or {XT bus
	architecture} so older cards cannot be used with it.

	As with the {ROM} {BIOS} in the first {IBM PCs}, figuring out
	the Micro Channel's secrets has been an arduous task of
	{reverse engineering} ever since the PS/2 line was announced.
	Consequently, the MCA has never become as wide spread as the
	competing {EISA} standard.

	(1996-08-16)

microchip art

	<hardware> (chip art, chip graffiti) Images etched on
	{integrated circuits} purely for decoration, visible only
	under a microscope.

	{Smithsonian Institute Chip Art
	(http://smithsonianchips.si.edu/chipfun/graff.htm)}.

microcode

	<programming> A technique for implementing the {instruction
	set} of a processor as a sequence of microcode instructions
	("microinstructions"), each of which typically consists of a
	(large) number of bit fields and the address of the next
	microinstruction to execute.  Each bit field controls some
	specific part of the processor's operation, such as a gate
	which allows some {functional unit} to drive a value onto the
	{bus} or the operation to be performed by the {ALU}.  Several
	microinstructions will usually be required to fetch, decode
	and execute each {machine code} instruction
	("{macroinstruction}").  The microcode may also be responsible
	for {polling} for hardware {interrupts} between each
	macroinstruction.  Writing microcode is known as
	"microprogramming".

	Microcode may be classified as "horizontally encoded" or
	"vertically encoded".  Horizontal microcode is as described
	above where there is a fairly direct correspondence between
	the bit fields in a microinstruction and the control signals
	sent to the various parts of the CPU.  Not all combinations of
	bits will be valid (e.g. two units driving the bus at once).
	Vertical microcode is closer to {machine code} because a bit
	field value may pass through some intermediate combinatory
	logic which generates the actual control signals.  This allows
	a few bits of a microinstruction to determine several control
	signals and ensure that only valid combinations of those
	signals are generated (e.g. a field may be decoded to determine
	which unit drives the bus).  The disadvantage with vertical
	encoding is that the encoding is usually fixed and takes extra
	time compared with horizontal encoding which allows any
	combination of signals to be generated and takes no time to
	decode.

	The alternative to a microcoded processor is a {hard-wired}
	one where the control signals are generated directly from the
	bits of the {machine code} instruction.  This is more common
	in modern {RISC} architectures because it is faster.

	Microcode is usually stored in {ROM} chips though some
	processors (e.g. the {Orion}) use fast RAM, making them
	dynamically microprogrammable.

	(1996-11-26)

Microcom Networking Protocol

	(MNP) One of the most common {modem} {protocols} with
	{compression}.  Also the name of a product.

	[Details?  On-line spec?]

	(1995-01-31)

microcomputer

	A computer based on a {microprocessor}.

	Contrast with {minicomputer}, {mainframe}.

	(1995-02-07)

microcontroller

	<processor> A {microprocessor} on a single {integrated
	circuit} intended to operate as an {embedded} system.  As well
	as a {CPU}, a microcontroller typically includes small amounts
	of {RAM} and {PROM} and timers and I/O ports.

	An example is the {Intel 8751}.

	(1995-04-22)

MicroDroid

	[{Usenet}] A {Microsoft} employee, especially one who posts to
	various operating-system advocacy newsgroups. MicroDroids post
	follow-ups to any messages critical of {Microsoft}'s operating
	systems, and often end up sounding like visiting Mormon
	missionaries.

	[{Jargon File}]

microelectromechanical system

	<hardware> (MEMS) The integration of mechanical structures
	(moving parts) with microelectronics.  MEMS devices are
	"custom" designed for a purpose which requires a mechanical
	action to be controlled by a computer.

	Applications include sensors, medical devices, process
	controls.

	{(http://mems.mcnc.org/)}.

	See also {nanotechnology}.

	(1999-03-25)

Microelectronics and Computer Technology Corporation

	<body> (MCC) One of the first, and now one of the largest, US
	computer industry research and development consortia.

	Founded in late 1982 by major computer and semiconductor
	manufacturers, MCC's membership has diversified to include a
	broad range of high-profile corporations from electronics,
	computers, aerospace, semiconductors, and related industries,
	reflecting the full range of companies vital to the life cycle
	of {Information Technology} products.  Active involvement of
	small- and medium-sized firms and technology users, along with
	well-established alliances with government research and
	development agencies and leading universities, allows MCC's
	partners to maximise the benefit of scarce research and
	development resources.

	Some of the technical areas in which MCC has distinguished
	itself are:

	System Architecture and Design (optimise hardware and software
	design, provide for scalability and interoperability, allow
	rapid prototyping for improved time-to-market, and support the
	re-engineering of existing systems for open systems).

	Advanced Microelectronics Packaging and Interconnection
	(smaller, faster, more powerful, and cost-competitive).

	Hardware Systems Engineering (tools and methodologies for
	cost-efficient, up-front design of advanced electronic
	systems, including modelling and design-for-test techniques to
	improve cost, yield, quality, and time-to-market).

	Environmentally Conscious Technologies (process control and
	optimisation tools, information management and analysis
	capabilities, and non-hazardous material alternatives
	supporting cost-efficient production, waste minimisation, and
	reduced environmental impact).

	Distributed {Information Technology} (managing and maintaining
	physically distributed corporate information resources on
	different {platforms}, building blocks for the {national
	information infrastructure}, networking tools and services for
	integration within and between companies, and electronic
	commerce).

	Intelligent Systems (systems that "intelligently" support
	business processes and enhance performance, including
	{decision support}, {data management}, forecasting and
	prediction).

	{(http://mcc.com/)}.

	Address: Austin, Texas, USA.

	(1995-04-25)

MicroEmacs

	(uemacs) A simple, portable text editor with versions for most
	{microcomputers} and many other computers.  It is both
	relatively easy for the novice to use, but also very powerful
	in the hands of an expert.  MicroEmacs can be extensibly
	customised.

	Most versions use only a screen and keyboard - mouse and
	windowing facilities are not standard.

	MicroEmacs was written by Dave G Conroy, Steve Wilhite, George
	Jones, and for nearly ten years: Daniel Lawrence.

	Version: 3.11.

	{(ftp://midas.mgmt.purdue.edu/dist/)}.

	[FTP?  Differences from GNU Emacs?]

	(1995-01-05)

microfloppies

	3.5-inch floppies, as opposed to 5.25-inch {vanilla} or
	mini-floppies and the now-obsolete 8-inch variety.  This term
	may be headed for obsolescence as 5.25-inchers pass out of
	use, only to be revived if anybody floats a sub-3-inch floppy
	standard.  See {stiffy}, {minifloppies}.

	[{Jargon File}]

microfortnight

	One millionth of the fundamental unit of time in the
	Furlong/Firkin/Fortnight system of measurement; 1.2096 sec.
	(A furlong is 1/8th of a mile; a firkin is 1/4th of a barrel;
	the mass unit of the system is taken to be a firkin of water).

	The VMS operating system has a lot of tuning parameters that
	you can set with the SYSGEN utility, and one of these is
	TIMEPROMPTWAIT, the time the system will wait for an operator
	to set the correct date and time at boot if it realises that
	the current value is bogus.  This time is specified in
	microfortnights!

	Multiple uses of the millifortnight (about 20 minutes) and
	{nanofortnight} have also been reported.

MicroGnuEmacs

	<text, tool> (mg) A {Public Domain} {Emacs}-style editor
	modified from {MicroEmacs} to be more compatible with {GNU}
	Emacs.  mg is essentially free, it is not associated with the
	GNU project, and does not have the GNU copyright restrictions.
	It is a small, fast, portable editor for people who can't run
	real Emacs thing for one reason or another.  It has few if any
	of the MicroEmacs features that were incompatible with GNU
	Emacs and adds missing features that seemed essential.

	MicroGnuEmacs is derived from, and aims to replace, v30 of
	MicroEmacs, the latest version from the original MicroEmacs
	author Dave Conroy.  The chief contributors were Mike Meyer
	<mwm@ucbopal.berkeley.edu>, Mic Kaczmarczik
	<mic@ngp.utexas.edu>, Bob Larson, and Dave Brower
	<rtech!daveb@sun.com>.

	mg version 1a of 1986-11-16 works with {4.2BSD}, {4.3BSD},
	{Ultrix-32}, {OS9/68k}, {VMS}, {Amiga}, {System V}, {Eunice}.
	It is included in base {OpenBSD}. It should also support
	{MS-DOS}, {PC-DOS} and the {Rainbow}.

	{(http://www.isc.org/index.pl?/sources/editors)}.

	(2007-05-25)

Micro Instrumentation and Telemetry Systems

	<company> (MITS) The company which made the {Altair 8800}
	{micrcomputer} kit.  They also made instrumentation kits for
	model rockets and RC vehicles.  Ed Roberts owned MITS for a
	few years until he sold out, moved to Georgia, and went to med
	school.

	Address: Albuquerque NM, USA.

	(2002-06-17)

Micro Interpreter for Knowledge Engineering

	<artificial intelligence, tool> (MIKE) An {expert system
	shell} for teaching purposes, with {forward chaining},
	{backward chaining}, and user-definable {conflict resolution}
	strategies.  MIKE is written in {Edinburgh Prolog}.

	Version 2.03.

	[BYTE, Oct 1990].

	{(ftp://hcrl.open.ac.uk/pub/software/src/MIKE-v2.03)}.

	Contact: Marc Eisenstadt, HCRL, {Open University}.

	(1995-01-10)

microkernel

	<operating system> An approach to {operating system} design
	emphasising small {modules} that implement the basic features
	of the system {kernel} and can be flexibly configured.

	(1999-08-02)

microLenat

	/mi:"-kroh-len"-*t/ The unit of {bogosity}, written uL; the
	consensus is that this is the largest unit practical for
	everyday use.  The microLenat, originally invented by David
	Jefferson, was promulgated as an attack against noted computer
	scientist {Doug Lenat} by a {tenured graduate student} at
	{CMU}.  Doug had failed the student on an important exam for
	giving only "AI is bogus" as his answer to the questions.  The
	slur is generally considered unmerited, but it has become a
	running gag nevertheless.  Some of Doug's friends argue that
	*of course* a microLenat is bogus, since it is only one
	millionth of a Lenat.  Others have suggested that the unit
	should be redesignated after the grad student, as the
	microReid.

	[{Jargon File}]

microlog

	<architecture> A section of {non-volitile memory} used to
	record state information.  Often used for retaining {crash}
	information after a {reboot} in {embedded systems}.

	["before" a reboot?]

	(2004-02-24)

micrometre

	<unit> (Or "micron") One millionth of a {metre}.  The symbol
	is a Greek letter {mu} followed by "m".

	Features on modern {integrated circuits} are typically
	measured in microns.  The smallest features in 1999 are around
	0.1 microns across.

	(1999-09-28)

Micro ML

	(uML) An {interpreter} for a subset of {SML}.  Runs on
	{MS-DOS}.  Written at the University of Umea, Sweden.

	{(ftp://ftp.cs.umu.se/pub/umlexe01.zoo)}.

Micron

	{Micron Electronics, Inc.}

micron

	{micrometre}

Micron Electronics, Inc.

	<company> An electronics company that develops, markets,
	manufactures, and supports high-performance {notebook
	computers}, {desktop} {personal computers}, {PC servers} and
	related {hardware} and {software} products.

	(1997-03-10)

Micronetics Standard MUMPS

	(MSM) A version of {MUMPS} for the {IBM PC RT} and {R6000}.

	[Address?]

	(1995-01-10)

Micro$oft

	<abuse, company> {Microsoft} written with a dollar sign, as though
	there was any doubt that they are a money-making enterprise.  This
	little witticism was probably created before Microsoft's founder,
	{Bill Gates} established the philanthropic {Bill & Melinda Gates
	Foundation}.

	{Why I hate Microsoft
	(http://www.vanwensveen.nl/rants/microsoft/IhateMS.html)}.

	(2013-12-30)

microperation

	<processor> An elementary operation performed on {data} stored
	in {registers} or in {memory}.  Microperations are classified
	as transfer, arithmetic, logic, or shift/rotate.

	[Relationship with {microcode}?]

	(2003-12-29)

microphone

	<hardware, audio> Any electromechanical device designed to
	convert sound into an electrical signal.

	A microphone converts an acoustic waveform consisting of
	alternating high and low air pressure travelling through the
	air into a voltage.  To do this it uses some kind of pressure
	or movement sensor.  The simplest kind of microphone is
	actually very similar in construction to a {loudspeaker}.

	The analogue electrical signal can be fed into a computer's
	{sound card} where it is amplified and {sampled} to convert it
	into a {digital} waveform for storage or transmission.

	(2002-11-04)

microPLANNER

	A subset of {PLANNER}, implemented in {Lisp} by {Gerald
	Sussman} et al at {MIT}.  Its important features were
	goal-oriented, pattern-directed procedure invocation, an
	embedded knowledge base, and automatic {backtracking}.

	microPLANNER was superseded by {Conniver}.

	["microPLANNER Reference Manual", G.J. Sussman et al, AI Memo
	203, MIT AI Lab, 1970].

	(1995-01-10)

microprocesor

	<spelling> It's spelled {microprocessor}.

	(1997-02-13)

microprocessor

	<architecture> (Or "micro") A computer whose entire {CPU} is
	contained on one (or a small number of) {integrated circuits}.

	The important characteristics of a microprocessor are the
	widths of its internal and external {address bus} and {data
	bus} (and instruction), its {clock rate} and its {instruction
	set}.  Processors are also often classified as either {RISC}
	or {CISC}.

	The first commercial microprocessor was the {Intel 4004} which
	appeared in 1971.  This was the CPU member of a set of four
	{LSI} {integrated circuits} called the MCS-4, which was
	originally designed for use in a calculator but was marketed
	as "programmable controller for logic replacement".  The 4004
	is referred to as a 4-bit microprocessor since it processed
	only 4 bits of data at a time.  This very short word size is
	due mainly to the limitations imposed by the maximum
	integrated circuit density then achievable.

	As integrated circuit densities increased with the rapid
	development of integrated circuit manufacturing technology,
	the power and performance of the microprocessors also
	increased.  This is reflected in the increase in the CPU word
	size to 4, 8, 16, and by mid-1980s, 32 bits.  The smaller
	microprocessors have relatively simple {instruction sets},
	e.g., no {floating point} instructions, but they are
	nevertheless suitable as controllers for a very wide range of
	applications such as car engines and microwave ovens.

	The {Intel 4004} was followed with, among others the {4040},
	{8008}, {8080}, {8086}, {80186}, {80286}, {80386}, {486} and
	{Pentium}.  Other families include the {Motorola} {6800} and
	{680x0} families, {National Semiconductor 16000} and {National
	Semiconductor 32000}, {SPARC}, {ARM}, {MIPS}, {Zilog Z8000},
	{PowerPC} and the {Inmos} {Transputer} family.

	The larger, more recent microprocessors families have
	gradually acquired most of the features of large computers.
	As the microprocessor industry has matured, several families
	of microprocessors have evolved into de facto industrial
	standards with multiple manufacturers and numerous "support"
	chips including {RAM}, {ROM}, {I/O controllers} etc.

	A single chip microprocessor may include other components such
	as memory ({RAM}, {ROM}, {PROM}), {memory management},
	{caches}, {floating-point unit}, input/output ports and
	timers.  Such devices are also known as {microcontrollers}.

	The one-chip microcomputer is in many respects, a landmark
	development in computer technology because it reduces the
	computer to a small, inexpensive, and easily replaceable
	design component.

	Microcomputers have given rise to a new class of
	general-purpose machines called {personal computers}.  These
	are small low cost computers that are designed to sit on an
	ordinary office desk or to be portable and fuelled the
	computer boom of the late 1980s.  The most widespread example
	is the also {IBM PC}, based on microprocessors from {Intel
	Corporation}.  {Apple Computers, Inc.} have also produced a
	range of personal computers, as have several other companies.

	See also {killer micro}, {minicomputer}, {CPU Info Center}.

	(2002-07-16)

Microprocessor without Interlocked Pipeline Stages

	<processor> (MIPS) A project at {Stanford University} intended
	to simplify processor design by eliminating hardware
	{interlocks} between the five {pipeline} stages.  This means
	that only single execution cycle instructions can access the
	thirty two 32-bit general {registers}, so that the {compiler}
	can schedule them to avoid conflicts.  This also means that
	LOAD/STORE and branch instructions have a one-cycle delay to
	account for.  However, because of the importance of multiply
	and divide instructions, a special HI/LO pair of
	multiply/divide registers exist which do have hardware
	interlocks, since these take several cycles to execute and
	complicate {instruction scheduling}.

	The project eventually lead to the commercial {MIPS R2000}
	processor.

	(1995-02-09)

microprogramming

	{microcode}

microReid

	/mi:'kroh-reed/  See {bogosity}.

	[{Jargon File}]

MICRO SAINT

	<simulation> A general purpose {simulation} tool from US
	company {Micro Analysis and Design}.

	(2007-03-22)

microsecond

	<unit> One millionth (10^-6) of a second.

	(1995-03-14)

Microserf

	<jargon> {Wired magazine}'s term for a {Microsoft} employee.

	(1995-03-02)

Microslop

	<company, abuse> A derisive synonym for {Microsoft
	Corporation}.  It refers to the sloppy, {bug}-ridden "x.0"
	versions of {MS-DOS}, {Microsoft Windows} and other Microsoft
	products.

	(1995-12-28)

Microsloth Windows

	<abuse, operating system> /mi:'kroh-sloth" win"dohz/ (Or
	"Windoze", /win'dohz/) A derogatory term for {Microsoft
	Windows} which is so limited by bug-for-bug compatibility with
	{mess-dos} that it is agonisingly slow on anything less than a
	fast {486}.  Also called just "Windoze", with the implication
	that you can fall asleep waiting for it to do anything; the
	latter term is extremely common on {Usenet}.

	Compare {X}, {sun-stools}.

	[{Jargon File}]

	(1996-10-08)

Microsoft

	{Microsoft Corporation}

Microsoft Access

	1. <database> A {relational database} running under {Microsoft
	Windows}.  Data is stored as a number of "{tables}",
	e.g. "Stock".  Each table consists of a number of "{records}"
	(e.g. for different items) and each record contains a number
	of "{fields}", e.g. "Product code", "Supplier", "Quantity in
	stock".

	Access allows the user to create "{forms}" and "reports".  A
	form shows one record in a user-designed format and allows the
	user to step through records one at a time.  A report shows
	selected records in a user-designed format, possibly grouped
	into sections with different kinds of total (including sum,
	minimum, maximum, average).

	There are also facilities to use links ("{joins}") between
	tables which share a common field and to filter records
	according to certain criteria or search for particular field
	values.

	Version: 2 (date?).

	{Usenet} newsgroup: {news:comp.databases.ms-access}.

	2. <communications> A communications program from Microsoft,
	meant to compete with {ProComm} and other programs.  It sucked
	and was dropped.  Years later they reused the name for their
	database.

	[Date?]

	(1997-07-20)

Microsoft Basic

	<language> (MS-BASIC) A dialect of {BASIC} from {Microsoft},
	originally developed by {Bill Gates} in a garage back in the
	{CP/M} days.  It was originally known as GWBasic, then QBASIC
	and finally MS-BASIC.

	When the {MS-DOS} {operating system} came out, it incorporated
	the GWBASIC.EXE or BASICA.EXE interpreters.  GWBASIC ("Gee
	Whiz") incorporated graphics and a {screen editor} and was
	compatible with earlier BASICs.

	QBASIC was more sophisticated.  Version 4.5 had a full screen
	editor, debugger and compiler.  The compiler could also
	produce executable files but to run these a utility program
	(BRUN44.EXE) had to be present.  Thus {source code} could be
	kept private.

	From DOS 5.0 or 6.0 onward, MS-BASIC was standard.

	Latest version: 1.1, also produces {stand-alone} executables
	and can display graphics.

	{Usenet} newsgroup: {news:comp.lang.basic.misc}.

	[Relationship to BASIC in ROM on first IBM PC?]

	(1995-05-12)

Microsoft Certified Application Developer

	<programming, education> (MCAD) Microsoft's qualification
	signifying ability to build {applications} with Microsoft {Visual
	Studio .NET} and {web services} on {Microsoft .NET Framework} 1.0
	and 1.1.  MCAD can no longer be earned.

	{(http://www.microsoft.com/learning/en/in/certification/mcad.aspx)}

	(2013-04-21)

Microsoft Certified Database Administrator

	<educational> (MCDBA) {Microsoft}'s certification of ability to
	design, implement and manage {SQL Server 2000} {databases}.  The
	qualification was retired on 2012-09-30.

	{(http://www.microsoft.com/learning/en/us/mcdba-certification.aspx)}.

	(2013-06-15)

Microsoft Certified Desktop Support Technician

	<education> (MCDST) {Microsoft}'s qualification signifying ability
	to troubleshoot {Windows XP} {desktop} environments and to solve
	hardware and software operation and application problems on
	Windows XP.  MCDST can no longer be earned.

	(2013-05-23)

Microsoft Certified Professional Developer

	<educational, job> (MCPD) {Microsoft}'s certification intended to
	show comprehensive skills designing, developing and deploying
	{applications} for a particular job role.

	(2013-07-21)

Microsoft Certified Solution Developer

	<programming, education> (MCSD) A course for the {VAR} or
	software {developer}.  Candidates must pass three core exams
	and an elective exam.  The core exams cover {systems
	analysis}, and {desktop} and {distributed} development.

	{(http://microsoft.com/mcsd)}.

	(2001-05-20)

Microsoft Certified System Engineer

	<education> (MCSE) A qualification obtained by passing
	{Microsoft}'s system engineer certification exams.

	{(http://microsoft.com/mcse)}.

	(2002-07-02)

Microsoft Certified Systems Administrator

	<education> (MCSA) {Microsoft}'s qualification for people who
	administer {network} and system environments based on {Windows}
	{operating systems}.  Specializations include Messaging and
	Security.

	Replaced by {Microsoft Certified Solutions Associate}.

	(2013-09-02)

Microsoft Certified Systems Developer

	<spelling> Do you mean {Microsoft Certified Solution
	Developer} or {Microsoft Certified System Engineer}?

	(2001-05-20)

Microsoft Corporation

	<company> The biggest supplier of {operating systems} and
	other software for {IBM PC} compatibles.  Software products
	include {MS-DOS}, {Microsoft Windows}, {Windows NT},
	{Microsoft Access}, {LAN Manager}, {MS Client}, {SQL Server},
	{Open Data Base Connectivity} (ODBC), {MS Mail}, and {SNA
	Server} for Windows NT.

	Microsoft was founded as "Micro-soft" in 1975 by {Bill Gates}
	(now CEO) and his high school pal Paul Allen.  Their first
	product was a version of {BASIC} for the new {Altair} computer
	[which one?].  In 1980, {IBM} chose Microsoft to supply the
	{operating system} for the {IBM PC}.

	On the UK television program "The Net" in May 1994, {Bill
	Gates} said he was betting his company on the {information
	highway}".

	Quarterly sales $1293M, profits $362M (Aug 1994).

	{(http://microsoft.com/)}.
	{(ftp://ftp.microsoft.com/)}.

	{Interesting Info and Other Microsoft WWW Servers
	(http://www-drg.microsoft.com/devinfo.htm)}.

	{Microsoft Windows Developer Information
	(http://www-drg.microsoft.com/devinfo.htm)}.

	{Microsoft Research Group Information
	(http://research.microsoft.com)}.

	{Win_News
	(http://microsoft.com/chicago/ms-www/ms-intro.htm)}.
	maintained by the Personal Operating Systems Division to
	distribute information on {Microsoft Windows}, {MS-DOS} and
	{Windows 95}.

	(1998-11-06)

Microsoft Data Access Components

	<database> (MDAC) Microsoft's umbrella term for their {ActiveX
	Data Objects} (ADO), {OLE DB}, and {Open Database
	Connectivity} (ODBC) libraries.  Together, these provide
	access to a variety of data sources, both {relational} ({SQL})
	and nonrelational.  MDAC is the technology that supports
	{Universal Data Access}, Microsoft's strategy for providing
	access to information across the enterprise.

	{(http://msdn.microsoft.com/library/en-us/mdacsdk/htm/mdacstartpage1.asp)}.

	(2004-02-17)

Microsoft Disc Operating System

	<spelling> {Microsoft Disk Operating System}

Microsoft Disk Operating System

	<operating system> /M S doss/ (Or "MS-DOS", "PC-DOS",
	"{MS-DOG}", "{mess-dos}") {Microsoft Corporation}'s {clone} of
	the {CP/M} {disk operating system} for the {8088} {crufted}
	together in 6 weeks by {hacker} {Tim Paterson}, who is said to
	have regretted it ever since.

	MS-DOS is a single user {operating system} that runs one
	program at a time and is limited to working with one megabyte
	of memory, 640 kilobytes of which is usable for the
	{application program}.  Special add-on {EMS} memory boards
	allow EMS-compliant software to exceed the 1 MB limit.
	Add-ons to DOS, such as {Microsoft Windows} and {DESQview},
	take advantage of EMS and allow the user to have multiple
	applications loaded at once and switch between them.

	Numerous features, including vaguely {Unix}-like but rather
	broken support for subdirectories, {I/O redirection} and
	{pipelines}, were hacked into MS-DOS 2.0 and subsequent
	versions; as a result, there are two or more incompatible
	versions of many system calls, and MS-DOS programmers can
	never agree on basic things like what character to use as an
	option switch ("-" or "/").  The resulting mess became the
	highest-unit-volume {operating system} in history.  It was
	used on many {Intel} 16 and 32 bit {microprocessors} and {IBM
	PC} compatibles.

	Many of the original DOS functions were calls to {BASIC} (in
	{ROM} on the original {IBM PC}), e.g. Format and Mode.  People
	with non-IBM PCs had to buy {MS-Basic} (later called
	{GWBasic}).  Most version of DOS came with some version of
	BASIC.

	Also know as PC-DOS or simply DOS, ignoring the fact that
	there were many other OSes with that name, starting in the
	mid-1960s with {IBM}'s first disk operating system for the
	{IBM 360}.

	[{Jargon File}]

	(2007-05-21)

Microsoft DOS

	{Microsoft Disk Operating System}

Microsoft Excel

	<tool> A {spreadsheet} program from {Microsoft}, part of their
	{Microsoft Office} suite of productivity tools for {Microsoft
	Windows} and {Macintosh}.  Excel is probably the most widely
	used spreadsheet in the world.

	Latest version: Excel 97, as of 1997-01-14.

	{(http://microsoft.com/msexcel/)}.

	[Feature summary?  History?]

	(1997-01-14)

Microsoft Exchange

	<messaging> {Microsoft}'s messaging and enterprise
	collaboration server.  Exchange's primary role is as an
	{electronic mail} {message store} but it can also store
	calendars, task lists, contact details, and other data.

	[Better descripton?  URL?]

	(1999-09-17)

Microsoft Extended

	<computer> (MSX) A Range of computers created in an attempt by
	the industry to create a standard for home computers, similar
	to {VHS} did with home video.

	The basic MSX machine contained a {Z80} {CPU} working at
	3.58MHz.

	MSX machines were produced by such giants as {Sony}, {Yamaha},
	{Panasonic}, {Toshiba}, {Daewoo}, and {Philips}.

	The MSX standard was designed by a company called ASCII in
	cooperation with {Microsoft} who provided a {firmware} version
	of its {BASIC} for the machine.  Because this BASIC version
	was an extended version of {MicroSoft Basic}, it was called
	"MicroSoft eXtended BASIC"; Hence "MSX".

	Microsoft also produced MSX-DOS - a stripped-down version of
	{MS-DOS}.

	Extensions to the MSX included MSX2, MSX2+ and TurboR.

	{FAQ (http://faq.msxnet.org/)}.

	(1999-02-26)

Microsoft Foundation Classes

	<programming> (MFC) Software structures in {C++}, the Windows
	base {classes} which can respond to messages, make windows,
	and from which application specific classes can be derived.

	(1995-11-17)

Microsoft IIS

	{Internet Information Server}

Microsoft IntelliMouse Explorer

	<hardware> An {optical mouse} from {Microsoft}.

	{(http://microsoft.com/presspass/features/1999/04-19mouse.htm)}.

	(1999-07-21)

Microsoft Internet Information Server

	{Internet Information Server}

Microsoft Mail

	<messaging, tool> (MS Mail) A {Microsoft Windows} {electronic
	mail} program.

	[Features?  Version?]

	(1996-08-26)

Microsoft Mail Application Program Interface

	{Messaging Application Programming Interface}

Microsoft Network

	{The Microsoft Network}

Microsoft Networking

	<networking> {Microsoft's} name for the networking subsystems
	of {Windows 95} and later.  Not to be confused with {The
	Microsoft Network}.

	Microsoft networking uses the {SMB} file sharing protocol.  It
	is implemented as file system drivers i.e. "{installable file
	systems}" (IFS).

	The {network redirector} "Client for Microsoft Networks", is
	implemented in the VREDIR.VXD {virtual device driver}.  {Peer}
	resource sharing is provided by "File and Printer Sharing for
	Microsoft Networks" (VSERVER.VXD).

	Windows 95's support for {Netware} ({NCP}) networks is
	provided in a similar way via NWREDIR.VXD and NWSERVER.VXD.

	(1999-08-08)

Microsoft Office

	<product> {Microsoft}'s bundles of {productivity tools}
	including {Microsoft Word}, {Microsoft Excel}, {Microsoft
	Powerpoint}, {Microsoft Outlook}, {Microsoft Access},
	{Microsoft Publisher}, {Microsoft Front Page}, {Microsoft Team
	Manager}, {Microsoft Project}, {Microsoft Schedule+},
	{Microsoft Internet Explorer}, {Small Business Financial
	Manager}, {Automap Streets Plus}.

	Editions of Office include {Microsoft Office Professional
	Edition}, {Microsoft Office Standard Edition}, {Microsoft
	Office Small Business Edition}, {Microsoft Office Developer
	Edition}.  Different editions contain different subsets of the
	above applications.

	Current version, as of 2004-08-30: Office 2003.

	{(http://microsoft.com/office)}.

	(2004-08-30)

Microsoft Office Small Business Edition

	<application> (SBE) Editions of {Microsoft Office} 97, 2003,
	and probably other versions, targetted at small businesses.
	Small Business Edition includes {Microsoft Word}, {Microsoft
	Excel}, {Microsoft PowerPoint}, {Microsoft Outlook} with
	{Business Contact Manager} and {Microsoft Publisher}.  SBE
	2003 doesn't include {Microsoft Access} or the addtional
	{XML}, {IRM} and {Visual Studio} support found in {Microsoft
	Office Professional Edition}, though the new user price is the
	same.

	{Office Editions
	(http://microsoft.com/office/editions/howtobuy/compare.mspx)}.

	(2004-08-31)

Microsoft Point to Point Encryption

	<protocol> (MPPE) An {encryption} {protocol} that may be used
	with {PPTP} to provide an encrypted connection.

	(1998-09-24)

Microsoft Project

	<product> A {Microsoft Windows} program offering various
	{project management} tools.

	{(http://microsoft.com/office/project/)}.

	(2003-07-02)

Microsoft SQL Server

	<database> A {relational database management system} (RDBMS)
	which is part of {Microsoft}'s {BackOffice} family of
	{servers}.  SQL Server was designed for {client/server} use
	and is accessed by applications using {SQL}.  It runs on
	{Windows NT} version 3.5 or higher and is compliant with the
	{ANSI} {SQL-92} and {FIPS} 127-2 {SQL} {standards}.

	SQL Server supports {symmetric multiprocessing} hardware;
	{SNMP}, {ODBC}, and major {open standard} communications
	{protocols}.  It has {Internet} integration, data
	{replication}, and {data warehousing} features.

	Microsoft SQL Server was originally developed by {Sybase
	Corporation} but the cooperation was broken sometime [when?]
	before version 6.0.

	Latest version: 7.0.  [Or is it 2000?]

	{(http://microsoft.com/sql)}.

	{Usenet} newsgroup: {news:comp.databases.ms-sqlserver}.

	(2001-04-27)

Microsoft Windows

	<operating system> {Microsoft}'s proprietary {window system}
	and {user interface} software released in 1985 to run on top
	of {MS-DOS}.  Widely criticised for being too slow (hence
	"{Windoze}", "{Microsloth Windows}") on the machines available
	then.

	The 1996 market share of operating systems was:

	 DOS/Windows	70%
	 Windows 95	15%
	 Windows NT	 2%
	 Other		13%

	[Current shares?]

	The version history goes something like: 1985 {Windows 1},
	1987 {Windows 2}, 1987 {Windows/386}, 1990 {Windows 3.0}, 1992
	{Windows 3.1}, 1992 {Windows for Workgroups 3.1}, 1993
	{Windows 3.11}, 1993 {Windows for Workgroups 3.11}, 1993
	{Windows NT 3.1}, 1994 {Windows NT 3.5}, 1995 {Windows 95},
	199? {Windows NT 4}, 1998 {Windows 98}, ? {Windows NT 5}.

	{Usenet} newsgroups:
	{news:comp.os.ms-windows.comp.os.ms-windows.advocacy},
	{news:comp.os.ms-windows.comp.os.ms-windows.announce},
	{news:comp.os.ms-windows.apps.comm},
	{news:comp.os.ms-windows.apps.compatibility.win95},
	{news:comp.os.ms-windows.apps.financial},
	{news:comp.os.ms-windows.apps.misc},
	{news:comp.os.ms-windows.apps.utilities},
	{news:comp.os.ms-windows.apps.utilities.win3x},
	{news:comp.os.ms-windows.apps.utilities.win95},
	{news:comp.os.ms-windows.apps.winsock.mail},
	{news:comp.os.ms-windows.apps.winsock.misc},
	{news:comp.os.ms-windows.apps.winsock.news},
	{news:comp.os.ms-windows.apps.word-proc},
	{news:comp.os.ms-windows.misc},
	{news:comp.os.ms-windows.networking.misc},
	{news:comp.os.ms-windows.networking.ras},
	{news:comp.os.ms-windows.networking.tcp-ip},
	{news:comp.os.ms-windows.networking.win95},
	{news:comp.os.ms-windows.networking.windows},
	{news:comp.os.ms-windows.nt.admin.misc},
	{news:comp.os.ms-windows.nt.admin.networking},
	{news:comp.os.ms-windows.nt.advocacy},
	{news:comp.os.ms-windows.nt.announce},
	{news:comp.os.ms-windows.nt.misc},
	{news:comp.os.ms-windows.nt.pre-release},
	{news:comp.os.ms-windows.nt.setup.hardware},
	{news:comp.os.ms-windows.nt.setup.misc},
	{news:comp.os.ms-windows.nt.software.backoffice},
	{news:comp.os.ms-windows.nt.software.compatibility},
	{news:comp.os.ms-windows.nt.software.services},
	{news:comp.os.ms-windows.pre-release},
	{news:comp.os.ms-windows.programmer},
	{news:comp.os.ms-windows.programmer.controls},
	{news:comp.os.ms-windows.programmer.graphics},
	{news:comp.os.ms-windows.programmer.memory},
	{news:comp.os.ms-windows.programmer.misc},
	{news:comp.os.ms-windows.programmer.multimedia},
	{news:comp.os.ms-windows.programmer.networks},
	{news:comp.os.ms-windows.programmer.nt.kernel-mode},
	{news:comp.os.ms-windows.programmer.ole},
	{news:comp.os.ms-windows.programmer.tools.mfc},
	{news:comp.os.ms-windows.programmer.tools.misc},
	{news:comp.os.ms-windows.programmer.tools.owl},
	{news:comp.os.ms-windows.programmer.tools.winsock},
	{news:comp.os.ms-windows.programmer.vxd},
	{news:comp.os.ms-windows.programmer.win32},
	{news:comp.os.ms-windows.programmer.winhelp},
	{news:comp.os.ms-windows.setup},
	{news:comp.os.ms-windows.setup.win3x},
	{news:comp.os.ms-windows.setup.win95},
	{news:comp.os.ms-windows.video},
	{news:comp.os.ms-windows.win95.misc},
	{news:comp.os.ms-windows.win95.setup},
	{news:comp.binaries.ms-windows}.

	(1998-10-15)

Microsoft Word

	<text, tool, product> A popular {word processor}, part of the
	{Microsoft Office} suite.  The original Word (versions 1.0 to
	4.?/5.0?) was originally {text-based} (non-{GUI}) and ran
	under {MS-DOS}.  Then Microsoft released {Word for Windows}
	1.0 and 2.0.  Later they produced new versions for each OS,
	both numbered 6.0.

	{(http://microsoft.com/catalog/products/word/)}.

	[Features?]

	(1997-02-11)

MicroStation

	<application> A full-featured 2-D and 3-D {CAD} program for
	{MS-DOS}, {Microsoft Windows}, {Macintosh}, and {Unix}
	{workstations} from {Bentley Systems, Inc.}  Created in 1984,
	MicroStation is a high-end package used worldwide in
	environments where many designers work on large, complex
	projects.  MicroStation Modeler is a superset of MicroStation
	that provides {solid modelling}, and MasterPiece is
	MicroStation's {rendering} and {animation} program.

	(2001-04-19)

microtape

	<hardware, storage> /mi:'kroh-tayp/ Occasionally used to mean
	a {DECtape}, as opposed to a {macrotape}.

	Apparently the term "microtape" was actually the official term
	used within DEC for these tapes until someone coined the word
	"DECtape", which, of course, sounded sexier to the
	{marketroids}.  Another version of the story holds that
	someone discovered a conflict with another company's
	"microtape" trademark.

	[{Jargon File}]

	(1995-03-16)

Microware Corporation

	Authors of {OS-9}.

	Address: Des Moines, Iowa, USA.

	(1995-02-02)

Microwave Hardware Description Language

	<language, hardware> (MHDL) A {Hardware Description Language}
	by David Barton[?] from {Intermetrics} incorporating {Haskell}
	1.2.

	Not to be confused with other {MHDLs}.

	(2000-11-14)

MIDAS

	A digital simulation language.

	[Sammet 1969, p.627].

Midas

	A {Motif}-based toolkit for interactive data analysis by
	T. Johnson, SLAC.  The basis for the {Midas-WWW} {browser}.

Midas-WWW

	<World-Wide Web> A {Motif}-based {browser} for {WWW} based on
	the {Midas} toolkit.

	(1998-08-09)

middle-endian

	<data, architecture> Neither {big-endian} nor {little-endian}.
	Used of perverse byte orders such as 3-4-1-2 or 2-1-4-3,
	occasionally found in the {packed decimal} formats of some
	{minicomputer} manufacturers.

	See {-endian}.

	[{Jargon File}]

	(1998-08-09)

middleware

	Software that mediates between an {application program} and a
	{network}.  It manages the interaction between disparate
	applications across the heterogeneous computing {platforms}.
	The {Object Request Broker} (ORB), software that manages
	communication between {objects}, is an example of a middleware
	program.

MIDI

	{Musical Instrument Digital Interface}

mid-level network

	(Or "regional network").  The kind of networks which make up
	the second level of the {Internet} hierarchy.  They are the
	{transit networks} which connect the {stub networks} to the
	{backbone networks}.

MIF

	{Maker Interchange Format}

MIG

	{Mach Interface Generator}

MIGRAINES

	<tool> A {graphical user interface} for evaluating and
	interacting with the {Aspirin} {neural network} simulation.

	Utilities exist for moving quickly from an {Aspirin}
	description of a network directly to an executable program for
	simulating and evaluating that network.  MIGRAINES has been
	kept separate from Aspirin so that its limitations do not
	restrict the performance of Aspirin.  However, in practice,
	they are used together.  This combination allows for simple
	specification and creation of efficient neural network systems
	that can be graphically analysed and tested.

	[Aspirin/MIGRAINES Neural Network Software User's Manual,
	Release v6.0 MP-91W00050, Copyright 1992 by Russel Leighton
	and the MITRE Corporation].

	(1995-03-07)

MII

	1. <body> A consortium of {Microsoft}, {IBM}, and {Intel}.

	[When?  What did it do?]

	2. <storage> A broadcast component video tape format licensed
	by Panasonic.

	(1998-11-15)

MIIS

	<language> /Meese/ An interpreted language with one-letter
	{keywords}.

	[Details?  Similar to {MUMPS}?]

	(1995-01-10)

MIKE

	{Micro Interpreter for Knowledge Engineering}

mil

	<networking> The {top-level domain} for entities affiliated
	with US armed forces.

	(1999-01-26)

Milarepa

	<tool> A {Perl} {BNF} {parser generator} by Jeffrey Kegler
	<jeffrey@netcom.com>.  Milarepa takes a source {grammar}
	written in a mixture of {BNF} and {Perl} and generates Perl
	source, which, when enclosed in a simple wrapper, parses the
	language described by the grammar.  Milarepa is not restricted
	to {LRn grammars}, and the parse logic follows directly from
	the BNF.  It handles {ambiguous grammars}, ambiguous tokens
	(tokens which were not positively identified by the lexer) and
	allows the programmer to change the start symbol.  The grammar
	may not be {left recursive}.  The input must be divided into
	sentences of a finite maximum length.  There is no fixed
	distinction between {terminals} and non-terminals, that is, a
	symbol can both match the input AND be on the left hand side
	of a production.  Multiple Marpa grammars are allowed in a
	single Perl program.

	Version: Prototype 1.0.

	Posted to comp.lang.perl.

	The author is seeking an FTP site to hold the software.

	(1993-03-17)

MILITRAN

	A {discrete simulation} system for military applications
	produced by the Sys Res Group at {ONR} in 1964.

	[Sammet 1969, p. 657].

	(1994-11-11)

mill

	{Arithmetic and Logic Unit}

millennium bug

	{Year 2000}

millennium meltdown

	{Year 2000}

milli-

	{prefix}

millihelen

	<unit, humour> The amount of beauty required to launch one ship.

	(2002-03-19)

milliLampson

	/mil'*-lamp"sn/ A unit of talking speed, abbreviated mL.  Most
	people run about 200 milliLampsons.  The eponymous Butler
	Lampson (a CS theorist and systems implementor highly regarded
	among hackers) goes at 1000.  A few people speak faster.  This
	unit is sometimes used to compare the (sometimes widely
	disparate) rates at which people can generate ideas and
	actually emit them in speech.  For example, noted computer
	architect C. Gordon Bell (designer of the {PDP-11}) is said,
	with some awe, to think at about 1200 mL but only talk at
	about 300; he is frequently reduced to fragments of sentences
	as his mouth tries to keep up with his speeding brain.

	[{Jargon File}]

millisecond

	<unit> (ms) One thousandth of a second, one thousand
	{microseconds}.  A long time for a modern computer.

	(1995-08-18)

MILNET

	Military Network.  Part of the {Defense Data Network} (DDN)
	and of the {Internet}.  Managed by the {Defense Information
	Systems Agency} (DISA).

	[Location?  Number of hosts?  Purpose?]

MIMD

	{Multiple Instruction/Multiple Data}

MIME

	{Multipurpose Internet Mail Extensions}

mimencode

	(Originally distributed as "mmencode").  A replacement for
	{uuencode} for use in {electronic mail} and {news}.  Part of
	{MIME}.  uuencode uses characters that don"t translate well
	across all mail gateways (particularly those which convert
	between {ASCII} and {EBCDIC}).  Also, different variants of
	uuencode encode data in different and incompatible ways, with
	no standard.  Finally, few uuencode variants work well in a
	pipe.  Mimencode implements the encodings which were defined
	for {MIME} as uuencode replacements, and should be
	considerably more robust for e-mail use.  Written by Nathaniel
	S. Borenstein of Bell Communications Research,
	Inc. ({Bellcore}) in 1991.

Mimer SQL

	<database> A {relational database management system}, free for
	non-commercial use, developed by the Swedish company {Upright
	Database Technology AB}.

	{Mimer Home (http://developer.mimer.com)}.

	(2002-06-03)

MIME type

	<file format, protocol, multimedia> The unique identifier used
	for different file types when conveyed across a {MIME}-based
	{protocol} such as {MIME} {e-mail} or {HTTP}.

	Registration of MIME types is explained in {RFC 2048}.

	{Official MIME types
	(ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types)}.

	(1998-02-10)

MIMIC

	<language> An early language designed by J.H. Andrews of the
	NIH in 1967 for solving engineering problems such as
	differential equations that would otherwise have been done on
	an {analog computer}.

	["MIMIC, An Alternative Programming Language for Industrial
	Dynamics, N.D. Peterson, Socio-Econ Plan Sci. 6, Pergamon
	1972].

	(1995-01-19)

MIMOLA

	Operational hardware specification language.

	["A Retargetable Compiler for a High-Level Microprogramming
	Language", 17th Ann Workshop on Microprogramming, P. Marwedel,
	IEEE 1984, pp. 267-274].

mind mouse

	<hardware> A {pointing device} (unlike a {mouse} in design,
	but serving the same purpose) which works via sensors in
	contact with the user's skin.  The sensors are built into a
	plastic base which fits on one finger and which is similar in
	shape to a finger cast.

	The principle of operation is presumably myoelectric, not
	psionic, contrary to what the name implies.

	As of the time of writing (1996), mind mice are not accurate
	enough to be anything but novelties.

	[Availability?]

	(1997-04-07)

mind uploading

	<application> The science fiction concept of copying one's
	mind into an artificial body or computer.

	{Home
	(http://sunsite.unc.edu/jstrout/uploading/MUHomePage.html)}.

	(1995-04-10)

Minerva software

	A company producing software for the {Acorn} {Archimedes}.

	{(http://zynet.co.uk/minerva/)}.

	(1995-01-31)

Minesweeper, Chess, Solitaire Expert

	<humour> (MCSE) A humourous expansion of {MCSE} suggesting a more
	realistic summary of a person's computer expertise.

	(2013-03-16)

minicomputer

	<computer> A computer built between about 1963 and 1987,
	smaller and less powerful than a {mainframe}, typically about
	the size and shape of a wardrobe, mounted in a single tall
	rack.

	Minicomputers were characterised by short {word} lengths of 8
	to 32 {bits}, limited hardware and software facilities and
	small physical size.  Their low cost made them suitable for a
	wide variety of applications such as industrial control, where
	a small, dedicated computer which is permanently assigned to
	one application, is needed. In recent years, improvements in
	device technology have resulted in minicomputers which are
	comparable in performance to large {second generation
	computers} and greatly exceed the performance of {first
	generation} {computers}.

	The processor was typically built using low integration logic
	{integrated circuits} - {TTL} or maybe {ECL}, thus
	distinguishing it from a {microcomputer} which is built around
	a {microprocessor} - a processor on a single (or maybe a few)
	ICs.

	{DEC}'s {PDP-1} was the first minicomputer and their {PDP-11}
	was the most successful, closely followed (in both time and
	success) by the {VAX} (which {DEC} called a "{super
	minicomputer}").

	Another early minicomputer was the {LINC} developed at {MIT} in
	1963.

	Other minicomputers were the {AS/400}, the {PRIME} series, the
	{AP-3}, {Olivetti}'s {Audit 7} and the {Interdata 8/32}.

	[Others?]

	(2004-05-12)

Mini Disc

	<storage, music> A music medium designed by {Sony} as a
	portable replacement for music {Compact Discs}.  In 1994 Sony
	announced a data version which can hold 140 MB or about 100 MB
	using {error correction}.  These will be competitive with 128
	MB {magneto-optical} disks.  Mini Discs may be either a
	re-writable or mass-produced read-only type.  Sony have also
	announced a standard data format.

	The transfer rate is similar to {CD-ROM} which is slow
	compared to the current {magneto-optical} drives (which are
	similar to an old hard disk, with writing noticeably slower
	than reading).  Pre-recorded read-only Mini Discs can be mass
	manufactured on a modified CD press - this and the standard
	format mean it could take off as a software distribution
	medium.

	An article in the December 1994 PCW quotes {access times} of
	about 300 ms and data transfer rate of about 150 kb/s (i.e.
	about single spin CD rate).

	(1994-12-13)

minifloppy

	<storage> 5.25-inch {vanilla} floppy disks, as opposed to
	3.5-inch or {microfloppies} and the now-obsolescent 8-inch
	variety.

	At one time, this term was a trademark of {Shugart Associates}
	for their SA-400 minifloppy drive.  Nobody paid any attention.

	See {stiffy}.

	(1996-05-03)

minimal automaton

	<theory> An {automaton} possessing with {redundant states}.

	(1996-05-03)

minimax

	<games> An {algorithm} for choosing the next move in a two
	player game.  A player moves so as to maximise the minimum
	value of his opponent's possible following moves.  If it is my
	turn to move, I give a value to each legal move I might make.
	If the result of a move is an immediate win for me I give it
	positive infinity and, if it is an immediate win for you,
	negative infinity.  The value to me of any other move is the
	minimum of the values resulting from each of your possible
	replies.

	The above algorithm will give every move a value of positive
	or negative infinity since the value of every move will be the
	value of some final winning or losing move.  This can be
	extended if we can supply a {heuristic} {evaluation function}
	which gives values to non-final game states without
	considering all possible following complete sequences.  We can
	then limit the minimax algorithm to look only a certain number
	of moves ahead.  This number is called the "look-ahead" or
	"ply".

	See also {alpha/beta pruning}.

	[Is "maximin" used?  Is it significantly different?]

	(2000-12-07)

Mini-ML

	["A Simple Applicative Language: Mini-ML", D. Clement et al,
	Proc 1986 ACM Conf on LISP and Functional Prog, (Aug 1986)].

minimum seek time

	<storage> (Or track-to-track seek time) The time it takes to
	move the head of a {disk drive} from one {track} to the next.
	The minimum seek time gives a good measure of the speed of the
	drive in a single-user/single-process environment where
	successive read/write request are largely correlated and thus
	if correlated data is stored in nearby cylinders most seeks
	are from one cylinder to the next.

	(1997-07-15)

Mini PL/I

	A commercial {PL/I} subset for the {Olivetti} {Audit 7}
	{minicomputer}.

MINITAB II

	A system for interactive solution of small statistical
	problems.

	["MINITAB Student Handbook", T.A. Ryan et al, Duxbury Press
	1976].

	(1994-10-31)

MINIX

	<operating system> /MIN-ix/ A small {operating system} that is
	very similar to {UNIX}.  MINIX was written for educational
	purposes by Prof. {Andrew S. Tanenbaum} of {Vrije
	Universiteit, Amsterdam}.

	MINIX has been written from scratch and contains no AT&T code
	-- neither in the {kernel}, the {compiler}, the utilities, nor
	the libraries.  Although copyrighted by Prentice-Hall, all
	{sources}, {binaries} and {documentation} can be obtained via
	{Internet} for educational or research purposes.

	Current versions as of 1996-11-15:

	MINIX 2.0 - {Intel} {CPUs} from {Intel 8088} to {Pentium}

	MINIX 1.5 - {Intel}, {Macintosh} ({MacMinix}), {Amiga}, {Atari
	ST}, {Sun} {SPARC}.

	{(http://cs.vu.nl/~ast/minix.html)}.

	(1997-06-16)

Minnesota Internet Users Essential Tool

	<networking, tool> (Minuet) An integrated package for {IBM PC}
	that includes modules for {electronic mail} (using the {POP}
	{protocol}), {Gopher}, {telnet}, {Usenet} news and {FTP}.
	Minuet provides an easy-to-use, {mouse}-driven {graphical user
	interface} via the {TurboVision} libraries.  It is a {TCP/IP}
	{client} that runs over any type of TCP/IP {network} including
	{Ethernet} and {SLIP}.  It will work with either {static IP
	address}es or {dynamic IP address}es ({bootp}).

	{FAQ
	(http://micro.umn.edu/products/minuet/minuet-1.html)}.
	{(ftp://boombox.micro.umn.edu/pub/pc/minuet/beta16/minuarc.exe)}.

	(1995-04-10)

MINT

	{Mint Is Not TRAC}

MiNT

	<operating system> (MinT is not TOS - a {recursive acronym}) A
	freeware, {open source operating system} for the {Atari ST}
	range of computers.  MiNT was originally based on a {port} of
	{BSD} to {Atari ST} computers by Eric R. Smith.  MiNT gave the
	Atari access to BSD's many network applications.  A short
	(1992-94) romance between MiNT and {Atari} Corp., who decided
	to convert the system to the {MultiTOS} {kernel}, produced a
	unique TOS/Unix hybrid, which provides simultaneous access to
	both {GEM} and BSD application libraries.

	Since MiNT is MultiTOS's kernel, it has kept all the features
	described above and, if an {AES} replacement is installed, it
	can show you a new face of MultiTOS.  Unlike MultiTOS however,
	MiNT is based on a different {file system}, that is faster and
	more flexible than TOS's.  Furthermore, thanks to the network
	support, MiNT allows an Atari to be an {Internet} {server}
	that can still run GEM and TOS applications!  This has won
	MiNT many devotees ("MiNTquisitors"), making it the main
	competitor for {ASH}'s {MagiC}.

	Unlike {Linux}, MiNT can run on a {Motorola 68000} with no
	{FPU}.  It needs at least 4 MB of RAM, more to run multiuser
	or to run GEM applications at the same time.

	{(http://orient.uw.edu.pl/~conradus/docs/mint.html)}.

	(1999-07-20)

Mint Is Not TRAC

	<text, tool> (MINT) A version of {TRAC} used as the {extension
	language} in the {Freemacs} editor.

	{(ftp://sun.soe.clarkson.edu/pub/freemacs)}.

	(1994-10-31)

Minuet

	<networking> {Minnesota Internet Users Essential Tool}.

MINUIT

	A program for {function minimisation} and {error analysis}.

	(1994-10-31)

minus

	-

	Common: dash; {ITU-T}: hyphen; {ITU-T}: minus.  Rare:
	{INTERCAL}: worm; option; dak; bithorpe.

minus infinity

	The most negative value, not necessarily or even usually the
	simple negation of plus {infinity}.  In N bit twos-complement
	arithmetic, infinity is 2^(N-1) - 1 but minus infinity is
	-(2^(N-1)), not -(2^(N-1) - 1).

MIPS

	1. <unit, benchmark> Million instructions per second.

	The unit commonly used to give the rate at which a processor
	executes instructions.

	Often rendered by hackers as "Meaningless Indication of
	Processor Speed" or in other unflattering ways.  This
	expresses a nearly universal attitude about the value of most
	{benchmark} claims, said attitude being one of the great
	cultural divides between hackers and {marketroids}.

	The etymologically incorrect singular "1 MIP" is sometimes
	heard.

	See also {KIPS} and {GIPS}.

	2. {VAX MIPS}.

	3. <processor> {Microprocessor without Interlocked Pipeline
	Stages}.

	4. <company> {MIPS Technologies, Inc.}

	[{Jargon File}]

	(1996-03-01)

MIPS project

	{Microprocessor without Interlocked Pipeline Stages}

MIPS R2000

	<processor> The R2000 design came, in about 1987, from the
	{Stanford} {MIPS project}, which stood for Microprocessor
	without Interlocked Pipeline Stages.

	Like the {AMD 29000}, the R2000 has no {condition code
	register} considering it a potential {bottleneck}.  The
	{program counter} can be read like other registers.

	The CPU includes an {MMU} that can also control a {cache}, and
	the CPU can operate as {big-endian} or {little-endian}.  There
	is a {FPU}, the R2010.

	Versions include the {MIPS R3000} and {MIPS R4000}.

	(1995-02-09)

MIPS R2010

	A {FPU} for the {MIPS R2000}.

	(1995-02-09)

MIPS R3000

	A version of the {MIPS R2000} with improved {cache} control.

	(1995-02-09)

MIPS R4000

	A 64-bit version of the {MIPS R3000} with has more {pipeline}
	stages for a higher {clock rate} and performance.

	(1995-02-09)

MIPS Technologies, Inc.

	<company> A company which designs, develops, and licenses
	{reduced instruction set computer} (RISC) {microprocessors}
	and compilers.  MIPS Technologies, Inc. is a wholly-owned
	subsidiary of {Silicon Graphics, Inc.} and operates as an
	independent unit.  MIPS is the successor to the processor
	business of MIPS Computer Systems which was founded in 1984
	and merged with Silicon Graphics on 29 June 1992.

	MIPS Technologies developed the world's first RISC {VLSI}
	microprocessors (1985) (or was it the {ARM}?), the first
	commercial 64-bit microprocessor ({MIPS R4000}, 1992),
	announced MIPS R4300i - the first 64-bit RISC processor
	designed for interactive consumer applications (April 1995).
	They announced the MIPS R10000 - the next generation
	general-purpose MIPS microprocessor and the most powerful
	processor in the world (October 1994).

	MIPS' semiconductor company partners participate in the design
	and development of MIPS processors and software and then
	produce, market, and support the processors.  MIPS itself does
	not fabricate or sell products.  MIPS' semiconductor partners
	are: {Integrated Device Technology}, {LSI Logic Corporation},
	{NEC Corporation}, {NKK Corporation}, {Philips
	Semiconductors}, {Siemens AG}, and {Toshiba Corporation}.

	MIPS' products include:

	R4000 - 100 MHz; 1.35M transistors, primary i/d cache 8KB/8KB,
	SPECint92 58.3/ SPECfp92 61.4.

	R4300i - 133 MHZ, 1.35M transistors; primary i/d cache,
	16KB/8KB, SPECint92 80, SPECfp92 60.

	R4400 - 250 MHz, 2.3M transistors, primary i/d cache
	16KB/16KB, SPECint92 175.8, SPECfp92 164.4.

	R4600 - 133 MHz, 1.9M transistors, primary i/d cache
	16KB/16KB, SPECint92 85, SPECfp92 75.

	R8000/R8010 - 90 MHz, 2.6M, .83M transistors, primary i/d
	cache, 16KB/16KB, SPECint92 132, SPECfp92 396.

	R10000 - 200 MHz, 6.7M transistors, primary i/d cache
	32KB/32KB, SPECint92 >300, SPECfp92 >600.

	MIPS' processor chips were used in the {DEC 3100} series of
	{workstations}.

	{(http://mips.com/)}.

	{Usenet} newsgroup: {news:comp.sys.mips}.

	(1996-03-01)

Miracula

	An implementation of a subset of {Miranda} by Stefan Kahrs
	<smk@ed.ac.uk>, LFCS, no modules or files.  Can be
	interactively switched between {eager} and {lazy} evaluation.
	Portable source in C from the author.

Miranda

	<language> (From the Latin for "admirable", also the heroine
	of Shakespeare's "Tempest") A {lazy} {purely functional}
	programming language and {interpreter} designed by {David
	Turner} of the University of Kent in the early 1980s and
	implemented as a product of his company, {Research Software
	Limited}.  Miranda combines the main features of {KRC} and
	{SASL} with {strong typing} similar to that of {ML}.

	It features terse {syntax} using the {offside rule} for
	indentation.  The {type} of an expression is inferred from the
	{source} by the {compiler} but explicit type declarations are
	also allowed.  It has nested {pattern-matching}, {list
	comprehensions} and {modules}.  It uses {operator sections}
	rather than {lambda abstractions}.  User types are algebraic,
	and in early versions could be constrained by {laws}.

	It is implemented using {SKI combinator} {reduction}.
	Originally implemented for {Unix}, there are versions for most
	UNIX-like platforms including {Intel PC} under {Linux}.  The
	{KAOS} operating system is written entirely in Miranda.

	Translators from Miranda to {Haskell} (mira2hs) and to {LML}
	(mira2lml) are available at {(http://foldoc.org/pub/misc/)}.
	Non-commercial near-equivalents of Miranda include {Miracula}
	and {Orwell}.

	{(http://miranda.org.uk/)}.

	[{"Miranda: A Non Strict Functional Language with Polymorphic
	Types" (http://miranda.org.uk/nancy.html)}, D.A. Turner, in
	Functional Programming Languages and Computer Architecture,
	LNCS 201, Springer 1985].

	[{"An Overview of Miranda"
	(http://miranda.org.uk/overview.pdf)}, D. A. Turner, SIGPLAN
	Notices, 21(12):158--166, December 1986].

	["Functional Programming with Miranda", Ian Holyer, Pitman
	Press 0-273-03453-7].

	(2007-03-22)

MIRFAC

	{Mathematics in Recognizable Form Automatically Compiled}

mirror

	1. <hardware, storage> Writing duplicate data to more than one
	device (usually two {hard disks}), in order to protect against
	loss of data in the event of device failure.  This technique
	may be implemented in either hardware (sharing a {disk
	controller} and cables) or in software.  It is a common
	feature of {RAID} systems.

	Several {operating systems} support software disk mirroring or
	{disk-duplexing}, e.g. {Novell NetWare}.

	See also {Redundant Array of Independent Disks}.

	Interestingly, when this technique is used with {magnetic
	tape} storage systems, it is usually called "twinning".

	A less expensive alternative, which only limits the amount of
	data loss, is to make regular {backups} from a single disk to
	{magnetic tape}.

	2. {mirror site}.

	(1998-06-11)

mirroring

	{mirror}

mirror site

	<networking> An {archive site} or {website} which keeps a
	copy of some or all files at another site so as to make them
	more quickly available and to reduce the load on the source
	site.

	It is generally best to use the mirror that is physically
	closest to you as this will usually give the fastest download.

	Such mirroring is usually done for specific whole directories
	or files on a specific remote server as opposed to a {cache}
	or {proxy server} which keeps copies of everything that is
	requested via it.

	For example, src.doc.ic.ac.uk is the main UK mirror for the
	{GNU} archive at gnu.org.

	(2006-10-16)

MIS

	{Management Information System}

misbug

	/mis-buhg/ [MIT] An unintended property of a program that
	turns out to be useful; something that should have been a
	{bug} but turns out to be a {feature}.  Usage: rare.  Compare
	{green lightning}.  See {miswart}.

	[{Jargon File}]

MIS Director

	{Chief Information Officer}

misfeature

	/mis-fee'chr/ or /mis'fee"chr/ A feature that eventually
	causes lossage, possibly because it is not adequate for a new
	situation that has evolved.  Since it results from a
	deliberate and properly implemented feature, a misfeature is
	not a bug.  Nor is it a simple unforeseen side effect; the
	term implies that the feature in question was carefully
	planned, but its long-term consequences were not accurately or
	adequately predicted (which is quite different from not having
	thought ahead at all).  A misfeature can be a particularly
	stubborn problem to resolve, because fixing it usually
	involves a substantial philosophical change to the structure
	of the system involved.

	Many misfeatures (especially in user-interface design) arise
	because the designers/implementors mistake their personal
	tastes for laws of nature.  Often a former feature becomes a
	misfeature because trade-offs were made whose parameters
	subsequently change (possibly only in the judgment of the
	implementors).  "Well, yeah, it is kind of a misfeature that
	file names are limited to six characters, but the original
	implementors wanted to save directory space and we"re stuck
	with it for now."

MISHAP

	<language> An early system on the {IBM 1130}.

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

	(2004-09-14)

Missed'em-five

	<operating system, abuse> (Or "SysVile" /sis-vi:l'/) A
	pejorative hackerism for AT&T {System V} {Unix}, generally
	used by {BSD} partisans in a bigoted mood.

	See {software bloat}, {Berzerkeley}.

	[{Jargon File}]

	(1998-07-01)

missile address

	{ICBM address}

missing

	{Missing definition}

miswart

	/mis-wort/ [By analogy with {misbug}] A {feature} that
	superficially appears to be a {wart} but has been determined
	to be the {Right Thing}.  For example, in some versions of the
	{Emacs} text editor, the "transpose characters" command
	exchanges the character under the cursor with the one before
	it on the screen, *except* when the cursor is at the end of a
	line, in which case the two characters before the cursor are
	exchanged.  While this behaviour is perhaps surprising, and
	certainly inconsistent, it has been found through extensive
	experimentation to be what most users want.  This feature is a
	miswart.

	[{Jargon File}]

MIT

	{Massachusetts Institute of Technology}

MIT AI Lab

	<body> ({Massachusetts Institute of Technology} {artificial
	intelligence} laboratory) Workplace of many famous AI
	researchers at MIT including {GLS} and {RMS}.

	{(http://ai.mit.edu/)}.

	Address: 545 Technology Sq., Cambridge, MA 02139, USA.

	(2003-02-28)

MITI

	{SQRIBE}

MITILAC

	<language> An early system on the {IBM 650}.

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

	(1998-09-24)

MIT Lisp Machine

	{Lisp Machine}

MITRE Corporation

	<body> A US federally funded R&D center, spun off in 1958 from
	the {MIT Lincoln Laboratory} (also an FFRDC).  MITRE is a
	non-profit corporation chartered to do R&D in the public
	interest.

	MITRE were responsible for system engineering and
	implementation oversight of {SAGE}.

	MITRE does not stand for MIT Research and Engineering, though
	it could have.

	{(http://mitre.org/)}.

	(1999-12-16)

MIT Research Laboratory for Electronics

	<body>

	See also {Jay Forrester}, {core memory}, the {Whirlwind}
	computer, {MIT Lincoln Laboratory}.

	[Summary?]

	(1999-12-16)

MITS

	{Micro Instrumentation and Telemetry Systems}

MIT Scheme

	<language> (Previously "C-Scheme") A {Scheme} implementation
	by the {MIT} Scheme Team (Chris Hanson, Jim Miller, Bill
	Rozas, and many others) with a rich set of utilities,  a
	compiler called {Liar} and an editor called {Edwin}.

	MIT Scheme includes an {interpreter}, large {run-time
	library}, {Emacs} {macros}, {native-code compiler}, emacs-like
	editor, and a {source-level debugger}.

	Latest version: 7.7.1, as of 2002-06-18.

	{MIT Scheme} conforms fully with {R4RS} and almost with the
	{IEEE Scheme} {standard}.  It runs on {Motorola 68000}:
	{HP9000}, {Sun-3}, {NeXT}; {MIPS}: {Decstation}, {Sony}, {SGI};
	{HP-PA}: 600, 700, 800; {VAX}: {Ultrix}, {BSD}, {DEC} {Alpha}:
	{OSF}; {Intel i386}: {MS-DOS}, {MS Windows}, and various other
	{Unix} systems.

	See also: {LAP}, {Schematik}, {Scode}.

	{(http://gnu.org/software/mit-scheme/)}.

	{Usenet} newsgroup: {news:comp.lang.scheme.c}.

	Mailing list: mit-scheme-announce@gnu.org (cross-posted to
	news).

	E-mail: <mit-scheme-devel@gnu.org> (maintainers).

	(2003-08-14)

MIX

	Knuth's hypothetical machine, used in The Art of Computer
	Programming v.1, Donald Knuth, A-W 1969.

MIXAL

	MIX Assembly Language.

	The {assembly language} for {Donald Knuth}'s hypothetical
	{MIX} machine.

	(1995-01-05)

MIX Communications

	(MIX) Providers of {Internet} access and presentation services
	for businesses and individuals in the Milwaukee, WI, USA
	metropolitan area.  MIX started providing Internet access
	services to the Milwaukee area in 1990.  It was the first
	business in Milwaukee to provide Internet access services to
	the public.

	MIX Communications is owned and operated by Dean Roth.

	{(http://mixcom.com/)}.

	E-mail: <info@mixcom.com>.

	Telephone: +1 (414) 351 1868 (Office), +1 (414) 351 1139
	(BBS).  Address: MIX Communications, P.O. Box 17166,
	Milwaukee, WI 53217, USA.

	(1995-01-05)

M-JPEG

	{Moving JPEG}

MJS

	<language> An early system on the {UNIVAC} I or II.

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

	(1996-12-15)

mk

	<networking> The {country code} for the Former Yugoslav
	Republic of Macedonia.

	(1999-01-27)

ML

	1. <robotics> Manipulator Language.  IBM language for handling
	robots.

	2.  Meta Language.  R. Milner <rm@lfcs.edinburgh.ac.uk> et al,
	1973.  A {strict} {higher-order} {functional language}.  It
	was the first language to include {polymorphic} typing which
	was statically-checked.  It also had {garbage collection} and
	a formal {semantics}.

	It began as the {metalanguage} for the Edinburgh {LCF} proof
	assistant.  (LCF="Logic for Computable Functions") People soon
	noticed that ML could be a useful general programming language
	and stand-alone versions were implemented.  {Standard ML}
	(SML) is a descendant of these (and related languages such as
	{Hope}).

	The "metalanguage" aspect has long since disappeared from the
	language itself (although there are some systems that still
	use it that way).  The historical name is now so inappropriate
	that asking what ML stands for is like asking what {C} or
	{Unix} stands for.  It doesn't stand for anything; it just is.

	LCF ML was implemented in {Stanford LISP}.  Cardelli (1981)
	implemented ML in {Pascal} using the {Functional Abstract
	Machine} (FAM).  It has been significantly redesigned to
	produce {Standard ML} and {Lazy ML}.

	["A Metalanguage for Interactive Proof in LCF", M.J.C. Gordon
	et al, 5th POPL, ACM 1978].

	(2006-07-21)

ml

	<networking> The {country code} for Mali.

	(1999-01-27)

ML-2000

	An extension and redesign of {Standard ML}.  Under
	development.

MLAB

	Modeling LABoratory.  An interactive mathematical modelling
	system.

	["MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975)].

	(1994-10-13)

ML/I

	<language> An early {macro} language first implemented by
	Peter Brown at the {Cambridge University} in 1966.  ML/I has
	been maintained by Bob Eager since 1973.

	{ML/I Home (http://ml1.org.uk/)}.

	[P.J. Brown, CACM 10(10):618-623, Oct 1967].

	(2006-07-21)

MLISP

	1. {M-expression LISP}.

	2. Meta-LISP.  D.C. Smith & H. Enea.  LISP variant with
	ALGOL-like syntax.  Not just a surface syntax, a full
	language.

	"MLISP", D.C. Smith, TR CS-179, CS Dept, Stanford (Oct 1970).
	Version: MLISP2.

	3. A hybrid of M-expression LISP and Scheme.

	"M-LISP: Its Natural Semantics and Equational Logic",
	R. Muller, SIGPLAN Notices 26(9):234-242 (Sept 1991) (PEPM
	'91).

ML Kit

	The ML Kit is a straight translation of the Definition of
	Standard ML into a collection of Standard ML modules.  For
	example, every inference rule in the Definition is translated
	into a small piece of Standard ML code which implements it.
	The translation has been done with as little originality as
	possible - even variable conventions from the Definition are
	carried straight over to the Kit.  The Kit is intended as a
	tool box for those people in the programming language
	community who may want a self-contained parser or type checker
	for full Standard ML but do not want to understand the clever
	bits of a high-performance compiler. We have tried to write
	simple code and modular interfaces.

	Version 1

	interpreter, documentation

	Nick Rothwell, David N. Turner, Mads Tofte <tofte@diku.dk>,
	and Lars Birkedal at Edinburgh and Copenhagen Universities.

	{(ftp://ftp.diku.dk/diku/users/birkedal/)}.  UK: ftp
	export/ml/mlkit/ from lfcs.ed.ac.uk

	(1993-03-12)

MLL

	Medium-Level Language.

	Sometimes used half-jokingly to describe {C}, alluding to its
	"structured-assembler" image.

	(1994-12-07)

ML-lex

	A version of {lex} in {SML/NJ} which outputs a {lexical
	analyser} in {SML/NJ}.

	{(ftp://research.att.com/dist/ml/75.tools.tar.Z)}.

ML-Linda

	U Edinburgh, under development.

ML Threads

	{SML/NJ} with mutual exclusion primitives similar to those in
	{Modula-2+} and {Mesa}.  Written by Greg Morrisett
	<jgmorris@cs.cmu.edu>.

	{Lightweight threads} are created using {fork}.  They are
	{pre-emptive}ly scheduled and communicate via {shared memory}
	which can be protected by a "{mutex}" ({monitor}).

	Implementations for {Motorola 68020}, {SPARC} and {MIPS} and
	{VAX}- and {MIPS}-based multiprocessors.

	["Adding Threads to Standard ML", E. Cooper et al,
	CMU-CS-90-186, CMU Dec 1990].

ML-Twig

	A variant of {TWIG} in {SML}, by Jussi Rintanen
	<jur@cs.hut.fi>, which comes with {SML/NJ}.

	(1995-02-14)

mm

	<networking> The {country code} for Myanmar (Burma).

	(1999-01-27)

Mma

	A fast {Mathematica}-like system, in {Allegro CL} by
	R. Fateman, 1991.

	{(ftp://peoplesparc.berkeley.edu/pub/mma.tar.Z)}.

mmap

	The {Unix} {system call} which establishes a mapping between a
	range of addresses in a user process's address space and a
	portion of some "memory object" (typically a file, one of the
	special "devices" /dev/mem or /dev/kmem or some
	{memory-mapped} peripheral).  This allows the process to
	access a file at random byte offsets without using the seek
	{system call} or to access physical addresses or {kernel}'s
	{virtual address} space.  It can also be used as an
	alternative to writing a {device driver} since it is usually
	simpler to code and faster to use.

	(1995-02-14)

MMCD

	<storage> {MultiMedia Compact Disc}.

	(1995-11-23)

MMDF

	{Multi-channel Memorandum Distribution Facility}

MMI

	1. Man-Machine Interface.

	2. <company> The company which developed the first
	{Programmable Array Logic} devices.  MMI was bought by {AMD}.

	[Dates?]

	(1995-12-09)

MML

	Human-Machine Language.

	A language from {ITU-T} for telecommunications applications.
	It has a complex {natural-language} syntax.

	[CCITT Recommendations Z.311-Z.318, Z-341, Nov 1984].

	(1995-01-31)

MMO

	{Massively Multiplayer Online Game}

MMOG

	{Massively Multiplayer Online Game}

MMORPG

	{Massively Multiplayer Online Game}

MMS

	{Multimedia Messaging Services}

MMU

	{Memory Management Unit}

MMX

	{Matrix Math eXtensions}

MMX technology

	{Matrix Math eXtensions}

mn

	<networking> The {country code} for Mongolia.

	(1999-01-27)

mnemonic

	<programming> A word or string which is intended to be easier
	to remember than the thing it stands for.  Most often used in
	"{instruction mnemonic}" which are so called because they are
	easier to remember than the {binary} patterns they stand for.
	Non-printing {ASCII} characters also have mnemonics like
	{NAK}, {ESC}, {DEL} intended to evoke their meaning on certain
	systems.

	(1995-05-11)

MNP

	{Microcom Networking Protocol}

mo

	<networking> The {country code} for Macau.

	(1999-01-27)

Mobile Subscriber Integrated Services Directory Number

	<communications> A number string used to uniquely identify a
	mobile telephone subscriber in {GSM}, {CDMA} and {UMTS}
	cellular networks.  The number is formatted according to the
	{E.164} numbering plan, consisting of a country code (CC),
	national destination code (NDC) and subscriber number (SN).

	See also: {IMSI}, {IMEI}, {The GSM Specifications
	(http://www.etsi.org/services_products/freestandard/home.htm)}.

	(2006-12-28)

Mobile Triton

	<processor> (Official name 82430MX) A version of {Intel}'s {Triton}
	I processor chip set intended for mobile computers.

	Mobile Triton consists of one 82437MX and two 82438MX.

	[Special features?]

	(1996-04-03)

mobo

	{motherboard}

MOBSSL-UAF

	Merritt and Miller's Own Block-Structured Simulation
	Language-Unpronounceable Acronym For.

	A l for interactive continuous {simulation}.

	["MOBSSL - An Augmented Block Structured Continuous System
	Simulation Language for Digital and Hybrid Computers",
	M.J. Merritt et al, Proc FJCC 35, AFIPS (Fall 1969)].

	(1995-01-31)

moby

	<jargon> /moh'bee/ (From {MIT}, seems to have been in use
	among model railroad fans years ago.  Derived from Melville's
	"Moby Dick", some say from "Moby Pickle") 1. Large, immense,
	complex, impressive.  "A Saturn V rocket is a truly moby
	frob."  "Some MIT undergrads pulled off a moby hack at the
	Harvard-Yale game."

	2. (Obsolete) The maximum {address space} of a computer (see
	below).  For a 680[234]0 or {VAX} or most modern 32-bit
	architectures, it is 4,294,967,296 8-bit bytes (four
	{gigabytes}).

	3. A title of address (never of third-person reference),
	usually used to show admiration, respect, and/or friendliness
	to a competent hacker.  "Greetings, moby Dave.  How's that
	address-book thing for the Mac going?"

	4. In backgammon, doubles on the dice, as in "moby sixes",
	"moby ones", etc.  Compare this with {bignum}: double sixes
	are both bignums and moby sixes, but moby ones are not bignums
	(the use of "moby" to describe double ones is sarcastic).

	5. The largest available unit of something which is available
	in discrete increments.  Thus a "moby Coke" is not just large,
	it's the largest size on sale.

	This term entered hackerdom with the Fabritek 256K memory
	added to the MIT AI PDP-6 machine, which was considered
	unimaginably huge when it was installed in the 1960s (at a
	time when a more typical memory size for a {time-sharing}
	system was 72 kilobytes).  Thus, a moby is classically 256K
	36-bit words, the size of a PDP-6 or PDP-10 moby.  Back when
	{address registers} were narrow the term was more generally
	useful, because when a computer had {virtual memory} mapping,
	it might actually have more physical memory attached to it
	than any one program could access directly.  One could then
	say "This computer has six mobies" meaning that the ratio of
	physical memory to address space is six, without having to say
	specifically how much memory there actually is.  That in turn
	implied that the computer could timeshare six "full-sized"
	programs without having to swap programs between memory and
	disk.

	Nowadays the low cost of processor logic means that address
	spaces are usually larger than the most physical memory you
	can cram onto a machine, so most systems have much *less* than
	one theoretical "native" moby of {core}.  Also, more modern
	memory-management techniques (especially paging) make the
	"moby count" less significant.  However, there is one series
	of widely-used chips for which the term could stand to be
	revived --- the Intel 8088 and 80286 with their incredibly
	{brain-damaged} segmented-memory designs.  On these, a "moby"
	would be the 1-megabyte address span of a segment/offset pair
	(by coincidence, a PDP-10 moby was exactly one megabyte of
	nine-bit bytes).

	[{Jargon File}]

	(1997-10-01)

mockingbird

	Software that intercepts communications (especially login
	transactions) between users and hosts and provides system-like
	responses to the users while saving their responses
	(especially account IDs and passwords).  A special case of
	{Trojan horse}.

	[{Jargon File}]

Mockingboard

	<hardware> A sound and speech board for the {Apple II}
	computer, on sale in 1978.

	See also {zxnrbl}.

	(1997-03-18)

Mock Lisp

	The {Lisp} used by the {Gosling Emacs} editor.

mod

	1. <filename extension, application, file format, music>
	(module) The filename extension for a sampled music file
	format that originated on the {Commodore} {Amiga}.  A .MOD
	file is composed of digitised sound samples, arranged in
	patterns to create a song. There are .MOD players for most
	{personal computers} including {Amiga}, {Archimedes}, {IBM
	PC}, and {Macintosh}.

	An {IBM PC} will require a {sound card} capable of handling
	digitised samples ({Sound Blaster}, {Sound Blaster Pro},
	{GUS}) and slower {Intel 80386}-based PCs may not be able to
	do anything else while playing a module.

	.MOD files differ from .MID ({MIDI}) files in that they
	contain sound samples.  This allows each song to use different
	sounds but it also puts more load on the {CPU} than playing a
	MIDI file, since more data must be processed for each note.  A
	slow CPU would benefit from a sound card with {wavetable
	synthesis} which handles samples instead of the CPU.

	Module files come in various formats including .MOD.  Formats
	evolved from .MOD include .S3M, .FAR and .669.  Most contain
	improvements on .MODs.

	{(http://eskimo.com/~future/mods.htm)}.

	2. <jargon> modify or modification.

	This abbreviation is very common - in fact the full terms are
	considered formal.  "Mods" is used especially with reference
	to bug fixes or minor design changes in hardware or software,
	most especially with respect to {patch} sets or a {diff}.

	3. <programming> A common name for the {modulo} operator.

	(1999-07-14)

*MOD

	("StarMOD") A {concurrent} language combining the {modules} of
	{Modula} and the communications of {Distributed Processes}.

	["*MOD - A Language for Distributed Programming", R.P. Cook,
	IEEE Trans Soft Eng SE-6(6):563-571 (Nov 1980)].

	[{Jargon File}]

	(1994-10-21)

modal

	1. (Of an interface) Having {modes}.  Modeless interfaces are
	generally considered to be superior because the user does not
	have to remember which mode he is in.

	2. See {modal logic}.

	3. In {MS Windows} programming, A window with the label
	"WS_MODAL" will stay on the screen and claim all the
	user-input.  Other windows can only be accessed if the MODAL
	window is closed.  Such a window would typically be used for
	an error {dialog box} to warn the user for something
	important, like "Critical error, shut down the system and
	restart".

	(1995-02-07)

modal logic

	<logic> An extension of {propositional calculus} with
	{operators} that express various "modes" of truth.  Examples
	of modes are: necessarily A, possibly A, probably A, it has
	always been true that A, it is permissible that A, it is
	believed that A.

	"It is necessarily true that A" means that things being as
	they are, A must be true, e.g.

		"It is necessarily true that x=x" is TRUE

	while

		"It is necessarily true that x=y" is FALSE

	even though "x=y" might be TRUE.

	Adding modal operators [F] and [P], meaning, respectively,
	henceforth and hitherto leads to a "{temporal logic}".

	Flavours of modal logics include: {Propositional Dynamic
	Logic} (PDL), {Propositional Linear Temporal Logic} (PLTL),
	{Linear Temporal Logic} (LTL), {Computational Tree Logic}
	(CTL), {Hennessy-Milner Logic}, S1-S5, T.

	C.I. Lewis, "A Survey of Symbolic Logic", 1918, initiated the
	modern analysis of modality.  He developed the logical systems
	S1-S5.  JCC McKinsey used algebraic methods ({Boolean
	algebras} with operators) to prove the decidability of Lewis'
	S2 and S4 in 1941.  Saul Kripke developed the {relational
	semantics} for modal logics (1959, 1963).  Vaughan Pratt
	introduced {dynamic logic} in 1976.  Amir Pnuelli proposed the
	use of temporal logic to formalise the behaviour of
	continually operating {concurrent} programs in 1977.

	[Robert Goldblatt, "Logics of Time and Computation", CSLI
	Lecture Notes No. 7, Centre for the Study of Language and
	Information, Stanford University, Second Edition, 1992,
	(distributed by University of Chicago Press)].

	[Robert Goldblatt, "Mathematics of Modality", CSLI Lecture
	Notes No. 43, Centre for the Study of Language and
	Information, Stanford University, 1993, (distributed by
	University of Chicago Press)].

	[G.E. Hughes and M.J. Cresswell, "An Introduction to Modal
	Logic", Methuen, 1968].

	[E.J. Lemmon (with Dana Scott), "An Introduction to Modal
	Logic", American Philosophical Quarterly Monograpph Series,
	no. 11 (ed. by Krister Segerberg), Basil Blackwell, Oxford,
	1977].

	(1995-02-15)

modam

	<spelling> Do you mean {modem}?

	(2008-05-08)

MODCAL

	A version of {HP-PASCAL} enhanced with system programming
	constructs, used internally by {HP}.

	(1995-02-07)

Mode

	<language> An {object-oriented language}.

	["The Programming Language Mode: Language Definition and User
	Guide", J. Vihavainen, C-1987-50, U Helsinki, 1987].

	[{Jargon File}]

	(1994-10-21)

mode

	1. A general state, usually used with an adjective describing
	the state.  Use of the word "mode" rather than "state" implies
	that the state is extended over time, and probably also that
	some activity characteristic of that state is being carried
	out. "No time to hack; I'm in thesis mode."

	In its jargon sense, "mode" is most often attributed to
	people, though it is sometimes applied to programs and
	inanimate objects.  In particular, see {hack mode}, {day
	mode}, {night mode}, {demo mode}, {fireworks mode}, and {yoyo
	mode}; also {chat}.

	2. More technically, a mode is a special state that certain
	user interfaces must pass into in order to perform certain
	functions.  For example, in order to insert characters into a
	document in the Unix editor "vi", one must type the "i" key,
	which invokes the "Insert" command.  The effect of this
	command is to put vi into "insert mode", in which typing the
	"i" key has a quite different effect (to wit, it inserts an
	"i" into the document).  One must then hit another special
	key, "ESC", in order to leave "insert mode".  Nowadays,
	modeful interfaces are generally considered {losing} but
	survive in quite a few widely used tools built in less
	enlightened times.

	[{Jargon File}]

	3. <hardware> {video mode}.

	(1994-12-22)

mode bit

	A {flag}, usually in hardware, that selects between two
	(usually quite different) modes of operation.  The
	connotations are different from {flag} bit in that mode bits
	are mainly written during a boot or set-up phase, are seldom
	explicitly read, and seldom change over the lifetime of an
	ordinary program.  The classic example was the
	EBCDIC-vs.-ASCII bit (#12) of the Program Status Word of the
	{IBM 360}.  Another was the bit on a PDP-12 that controlled
	whether it ran the PDP-8 or the LINC instruction set.

	[{Jargon File}]

MODEF

	Pascal-like language with polymorphism and data abstraction.
	"Definition of the Programming Language MODEF",
	J. Steensgard-Madsen et al, SIGPLAN Notices 19(2):92-110 (Feb
	1984).

MODEL

	<language> A {Pascal}-like language with extensions for
	large-scale system programming and interface with {Fortran}
	applications.  MODEL includes {generic procedures}, and a
	"static" {macro}-like approach to {data abstraction}.  It
	produces {P-code} and was used to implement the {DEMOS}
	{operating system} on the {Cray-1}.

	["A Manual for the MODEL Programming Language", J.B. Morris,
	Los Alamos 1976].

	(1996-05-29)

model

	1. <simulation> A description of observed or predicted
	behaviour of some system, simplified by ignoring certain
	details.  Models allow complex {systems}, both existent and
	merely specified, to be understood and their behaviour
	predicted.  A model may give incorrect descriptions and
	predictions for situations outside the realm of its intended
	use.  A model may be used as the basis for {simulation}.

	Note: British spelling: "modelling", US: "modeling".

	(2008-04-28)

	2. <programming> {Model View Controller}.

	(2008-04-28)

model checking

	<theory, algorithm, testing> To algorithmically check whether
	a program (the model) satisfies a specification.

	The model is usually expressed as a {directed graph}
	consisting of {nodes} (or {vertices}) and {edges}.  A set of
	{atomic propositions} is associated with each node.  The nodes
	represents states of a program, the edges represent possible
	executions which alters the state, while the atomic
	propositions represent the basic properties that hold at a
	point of execution.

	A specification language, usually some kind of {temporal
	logic}, is used to express properties.

	The problem can be expressed mathematically as: given a
	temporal logic formula p and a model M with initial state s,
	decide if M,s \models p.

	["Automatic verification of finite state concurrent systems
	using temporal logic", E.M. Clarke, E.A. Emerson, and
	A.P. Sisla, ACM Trans. on Programming Languages and Systems
	8(2), pp. 244--263, 1986].

	(1997-06-26)

modeling

	<spelling> US spelling of "{model}ling".

	(1999-12-10)

modeling language

	{modelling language}

modelling

	{model}

modelling language

	<language> Possibly a kind of {programming language} designed
	for describing {models} and their behaviour.

	See also {data modelling}, {object relational model},
	{simulation}, {UML}, {VRML}.

	(2009-05-11)

Modelsim

	<simulation> A simulation tool for programming {VLSI} {ASICs},
	{FPGAs}, {CPLDs}, and {SoCs}.

	{Manual by Arnd Riebartsch
	(http://arieba.net/simulators.htm#ModelSim)}.

	(2003-07-19)

Model View Controller

	<programming> (MVC) A way of partitioning the design of
	{interactive} {software}.  The "model" is the internal
	workings of the program (the {algorithms}), the "view" is how
	the user sees the state of the model and the "controller" is
	how the user changes the state or provides input.

	(2007-05-30)

modem

	<hardware, communications> (Modulator/demodulator) An
	electronic device for converting between serial data
	(typically {EIA-232}) from a computer and an audio signal
	suitable for transmission over a telephone line connected to
	another modem.  In one scheme the audio signal is composed of
	silence (no data) or one of two frequencies representing zero
	and one.

	Modems are distinguished primarily by the maximum data rate
	they support.  Data rates can range from 75 bits per second up
	to 56000 and beyond.  Data from the user (i.e. flowing from
	the local terminal or computer via the modem to the telephone
	line) is sometimes at a lower rate than the other direction,
	on the assumption that the user cannot type more than a few
	characters per second.

	Various data {compression} and error correction {algorithms}
	are required to support the highest speeds.  Other optional
	features are {auto-dial} (auto-call) and {auto-answer} which
	allow the computer to initiate and accept calls without human
	intervention.  Most modern modems support a number of
	different {protocols}, and two modems, when first connected,
	will automatically negotiate to find a common protocol (this
	process may be audible through the modem or computer's
	loudspeakers).  Some modem protocols allow the two modems to
	renegotiate ("retrain") if the initial choice of data rate is
	too high and gives too many transmission errors.

	A modem may either be internal (connected to the computer's
	{bus}) or external ("stand-alone", connected to one of the
	computer's {serial ports}).  The actual speed of transmission
	in characters per second depends not just the modem-to-modem
	data rate, but also on the speed with which the processor can
	transfer data to and from the modem, the kind of compression
	used and whether the data is compressed by the processor or
	the modem, the amount of noise on the telephone line (which
	causes retransmissions), the serial character format
	(typically {8N1}: one {start bit}, eight data bits, no
	{parity}, one {stop bit}).

	See also {acoustic coupler}, {adaptive answering}, {baud
	barf}, {Bulletin Board System}, {Caller ID}, {SoftModem},
	{U.S. Robotics}, {UUCP}, {whalesong}.

	{Usenet} newsgroup: {news:comp.dcom.modems}.

	(2002-05-04)

MODEM7

	A {batch file transfer protocol}.

	See also {XMODEM}.

	(1995-05-02)

moderator

	A person, or small group of people, who manages a moderated
	{mailing list} or {Usenet} {newsgroup}.  Moderators are
	responsible for determining which email submissions are passed
	on to the list or newsgroup.

Modified Frequency Modulation

	<storage> (MFM, Modified {FM}, or sometimes "Multiple
	Frequency Modulation") A modification to the original
	{frequency modulation} scheme for encoding data on {magnetic
	disks}.  MFM allows more than 1 symbol per flux transition (up
	to 3), giving greater density of data.  It is used with a data
	rate of between 250-500 kbit/s on industry standard 3.5" and
	5.25" low and high density {diskettes}, and up to 5 Mbit/s on
	{ST-506} {hard disks}.  Except for 1.44 MB floppy disks, this
	encoding is obsolete.

	Other data encoding schemes include {GCR}, {FM}, {RLL}.  See
	also: {PRML}.

	(2002-06-24)

modifier

	<programming> An operation that alters the state of an
	{object}.  Modifiers often have names that begin with "set"
	and corresponding {selector} functions whose names begin with
	"get".

	(1998-01-12)

M O drive

	{magneto-optical disk}

MODSIM

	<language> A general-purpose, modular, block-structured
	language from {CACI}, which provides support for
	{object-oriented programming} and {discrete event simulation}.
	It is intended for building large process-based discrete event
	simulation models through modular and object-oriented
	mechanisms similar to those of {Modula-2}.

	MODSIM is descended from {Modula-2} and {Simula}.  It supports
	{multiple inheritance}, {templates}, {reference types},
	{polymorphism}, and {process-oriented simulation} with
	synchronous and asynchronous activities using explicit
	simulation time.

	See also {MODSIM II}, {USAModSim}.

	(1994-11-11)

MODSIM II

	1986.  Object-oriented modular language for discrete
	simulation, with {multiple inheritance}, {strong typing},
	integrated 2D and 3D graphics.  Compiles to C.  CACI, La
	Jolla, (619) 457-9681.  list: palmer@world.std.com

Modula

	{MODUlar LAnguage}

Modula-2

	<language> A high-level programming language designed by
	{Niklaus Wirth} at {ETH} in 1978.  It is a derivative of
	{Pascal} with well-defined interfaces between {modules}, and
	facilities for parallel computation.  Modula-2 was developed
	as the system language for the {Lilith} {workstation}.

	The central concept is the {module} which may be used to
	encapsulate a set of related subprograms and data structures,
	and restrict their visibility from other portions of the
	program.  Each module has a definition part giving the
	interface, and an implementation part.

	The language provides limited single-processor {concurrency}
	({monitors}, {coroutines} and explicit transfer of control)
	and hardware access ({absolute address}es and {interrupts}).
	It uses {name equivalence}.

	{DEC FTP archive
	(ftp://gatekeeper.dec.com/.1/DEC/Modula-2/m2.tar.Z)}.

	["Programming in Modula-2", N. Wirth, Springer 1985].

	(1995-10-25)

Modula-2*

	An extension of {Modula-2} by M. Philippsen
	<philipp@ira.uka.de> of the {University of Karlsruhe}.  It
	uses a superset of {data parallelism}, allowing both
	synchronous and asynchronous programs, both {SIMD} and {MIMD}.
	Parallelism may be nested to any depth.  There are version for
	{MasPar} and a simulator for the {SPARC}.

	{(ftp://iraun1.ira.uka.de/pub/programming/modula2star)}.
	E-mail: Ernst Heinz <heinz@ira.uka.de>.

	["Modula-2*: An Extension of Modula-2 for Highly Parallel,
	Portable Programs", W. Tichy et al, TR 4/90, U Karlsruhe, Jan
	1990].

	(1994-10-21)

Modula-2+

	{Modula-2} plus {exceptions} and {threads} developed by
	P. Rovner et al of {DEC} {SRC}, Palo Alto CA in 1984.

	["Modula-2+ User's Manual", M-C van Leunen].

	["Extending Modula-2 to Build Large, Integrated Systems",
	P. Rovner, IEEE Software 3(6):46-57 (Nov 1986)].

	(1994-10-21)

Modula-3

	L. Cardelli et al, DEC and Olivetti, 1988.  A descendant of
	Modula-2+ and Cedar, designed for safety and simplicity.
	Objects, generics, threads, exceptions and garbage collection.
	Modules are explicitly safe or unsafe.  As in Mesa, any set of
	variables can be monitored.  No {multiple inheritance}, no
	operator overloading.  Uses structural equivalence.  "Modula-3
	Report", Luca Cardelli et al, TR 52, DEC SRC, and Olivetti
	Research Center, Aug 1988 (revised Oct 1989).  The changes are
	described in "System Programming with Modula-3", Greg Nelson
	ed, P-H 1991, ISBN 0-13-590464-1.  "Modula-3", Sam Harbison,
	P-H 1992.  Version: SRC Modula-3 V1.5.

	{(ftp://gatekeeper.dec.com/pub/DEC/Modula-3/release/)}.

	See also {SRC Modula-3}.

Modula-3*

	Incorporation of {Modula-2*} ideas into {Modula-3}.

	["Modula-3*: An Efficiently Compilable Extension of Modula-3
	for Problem-Oriented Explicitly Parallel Programming",
	E. Heinz <heinze@ira.uka.de>, 1993].

Modula-3pi

	Machine-independent intermediate language for compilation of
	Modula-3*.  "Modula-3pi Language Definition", E.A. Heinz, TR,
	U Karlsruhe 1993.

Modula-P

	"Modula-P: A Language for Parallel Programming Definition and
	Implementation on a Transputer Network", R. Hoffart et al,
	IEEE Conf Comp Langs 1992.

Modula-Prolog

	Adds a Prolog layer to Modula-2.  "Modula-Prolog: A Software
	Development Tool", C. Muller IEEE Software pp.39-45 (Nov
	1986).

Modula/R

	Modula with relational database constructs added.  LIDAS Group
	(J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt,
	C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH
	Zurich, Sep 1983.

modular arithmetic

	<mathematics> (Or "clock arithmetic") A kind of integer
	arithmetic that reduces all numbers to one of a fixed set
	[0..N-1] (this would be "modulo N arithmetic") by effectively
	repeatedly adding or subtracting N (the "modulus") until the
	result is within this range.

	The original mathematical usage considers only __equivalence__
	modulo N.  The numbers being compared can take any values,
	what matters is whether they differ by a multiple of N.
	Computing usage however, considers modulo to be an operator
	that returns the remainder after integer division of its first
	argument by its second.

	Ordinary "clock arithmetic" is like modular arithmetic except
	that the range is [1..12] whereas modulo 12 would be [0..11].

	(2003-03-28)

Modular C

	A {preprocessor}-based extension to {C} allowing {modules}.

	[Article by Stowe Boyd, Azrex Inc, SIGPLAN Notices, ca 1980].

	(1994-10-25)

MODUlar LAnguage

	<language> (Modula) {Wirth}'s 1977 predecessor of {Modula-2}.
	The original Modula was, more oriented toward {concurrent}
	programming, but otherwise quite similar.

	["Modula - A Language for Modular Multiprogramming", N. Wirth,
	Soft Prac & Exp 7(1):3-35, Jan 1977].

	(1999-07-12)

Modular Prolog

	An {interpreter} for {SB-Prolog} version 3.1 extended with
	{ML}-style {modules}.  Runs on {SPARC}.  Distributed under
	{GNU} {General Public License}.

	{(ftp://ftp.dcs.ed.ac.uk/pub/dts/mod-prolog.tar.Z)}.  E-mail:
	Brian Paxton <mprolog@dcs.ed.ac.uk>.

	["A Calculus for the Construction of Modular Prolog Programs",
	D. Sannella et al, J Logic Prog 12:147-177 (1992)].

	(1994-10-25)

Modular SB-Prolog

	{Modular Prolog}

module

	1. <programming> An independent piece of {software} which
	forms part of one or more larger {programs}.  Different
	languages have different concepts of a module but there are
	several common ideas.

	Modules are usually compiled seperately (in compiled
	languages) and provide an {abstraction} or information hiding
	mechanism so that a module's implementation can be changed
	without requiring any change to other modules.  In this
	respect they are similar to {objects} in an {object-oriented
	language}, though a module may contain many {procedures}
	and/or {functions} which would correspond to many objects.

	A module often has its own {name space} for {identifiers} so
	the same identifier may be used to mean different things in
	different modules.

	[Difference from {package}?].

	2. <hardware> An independent assembly of electronic components
	with some distinct function, e.g. a RAM module consisting of
	several RAM chips mounted on a small circuit board.

	(1997-10-27)

Modulex

	Based on Modula-2.  Mentioned by M.P. Atkinson & J.W. Schmidt
	in a tutorial in Zurich, 1989.

modulo

	/mod'yu-loh/

	1. <mathematics> {modular arithmetic}.

	2. <mathematics> {modulo operator}.

	(1999-07-12)

modulo arithmetic

	{modular arithmetic}

modulo operator

	<mathematics> (mod) The operator that returns the remainder
	after integer division of its first argument by its second.
	Written as "%" in {C} and some other languages.

	Where the second argument is a power of two, the result can be
	calculated much more quickly using {bitwise and} with the
	appropriate {bit-mask}.

	(1999-07-12)

Mohammed Al-Khawarizmi

	{Muhammad ibn Musa al-Khwarizmi}

molly-guard

	/mol'ee-gard/ [University of Illinois] A shield to prevent
	tripping of some {Big Red Switch} by clumsy or ignorant hands.
	Originally used of the plexiglass covers improvised for the
	BRS on an IBM 4341 after a programmer's toddler daughter
	(named Molly) frobbed it twice in one day.  Later generalised
	to covers over stop/reset switches on disk drives and
	networking equipment.

	[{Jargon File}]

monad

	<theory, functional programming> /mo'nad/ A technique from
	{category theory} which has been adopted as a way of dealing
	with {state} in {functional programming languages} in such a
	way that the details of the state are hidden or abstracted out
	of code that merely passes it on unchanged.

	A monad has three components: a means of augmenting an
	existing type, a means of creating a default value of this new
	type from a value of the original type, and a replacement for
	the basic application operator for the old type that works
	with the new type.

	The alternative to passing state via a monad is to add an
	extra argument and return value to many functions which have
	no interest in that state.  Monads can encapsulate state, side
	effects, exception handling, global data, etc. in a purely
	lazily functional way.

	A monad can be expressed as the triple, (M, unitM, bindM)
	where M is a function on types and (using {Haskell} notation):

		unitM :: a -> M a
		bindM :: M a -> (a -> M b) -> M b

	I.e. unitM converts an ordinary value of type a in to monadic
	form and bindM applies a function to a monadic value after
	de-monadising it.  E.g. a state transformer monad:

		type S a = State -> (a, State)
		unitS a  = \ s0 -> (a, s0)
		m `bindS` k = \ s0 -> let (a,s1) = m s0
				      in k a s1

	Here unitS adds some initial state to an ordinary value and
	bindS applies function k to a value m.  (`fun` is Haskell
	notation for using a function as an {infix} operator).  Both m
	and k take a state as input and return a new state as part of
	their output.  The construction

		m `bindS` k

	composes these two state transformers into one while also
	passing the value of m to k.

	Monads are a powerful tool in {functional programming}.  If a
	program is written using a monad to pass around a variable
	(like the state in the example above) then it is easy to
	change what is passed around simply by changing the monad.
	Only the parts of the program which deal directly with the
	quantity concerned need be altered, parts which merely pass it
	on unchanged will stay the same.

	In functional programming, unitM is often called initM or
	returnM and bindM is called thenM.  A third function, mapM is
	frequently defined in terms of then and return.  This applies
	a given function to a list of monadic values, threading some
	variable (e.g. state) through the applications:

		mapM :: (a -> M b) -> [a] -> M [b]
		mapM f []     = returnM []
		mapM f (x:xs) = f x		   `thenM` ( \ x2 ->
		                mapM f xs          `thenM` ( \ xs2 ->
		    		returnM (x2 : xs2)         ))

	(2000-03-09)

monadic

	1. <programming> {unary}, when describing an {operator} or
	{function}.  The term is part of the {dyadic}, {niladic}
	sequence.

	2. <theory> See {monad}.

	(1998-07-24)

Mongolian Hordes technique

	<programming, jargon> (Or "Chinese Army technique") Assigning
	a large number of inexperienced programmers to a job which
	would better performed by a few skilled ones.  The term was
	first used by Dr. Fred Brooks in his book "{The Mythical
	Man-Month}", Chapter 3.

	According to Dr. Brooks, he had in mind the vision of the
	Mongol Hordes sweeping across Asia and Europe when he created
	the term.

	[{Jargon File}]

	(1996-06-20)

moniter

	<spelling> It's spelled "{monitor}".

	(1996-11-28)

monitor

	1. A {cathode-ray tube} and associated electronics connected
	to a computer's video output.  A monitor may be either
	{monochrome} (black and white) or colour ({RGB}).  Colour
	monitors may show either digital colour (each of the red,
	green and blue signals may be either on or off, giving eight
	possible colours: black, white, red, green, blue, cyan,
	magenta and yellow) or analog colour (red, green and blue
	signals are continuously variable allowing any combination to
	be displayed).  Digital monitors are sometimes known as {TTL}
	because the voltages on the red, green and blue inputs are
	compatible with TTL logic chips.

	See also {gamut}, {multisync}, {visual display unit}.

	2. A programming language construct which encapsulates
	variables, access procedures and initialisation code within an
	abstract data type.  The monitor's variable may only be
	accessed via its access procedures and only one process may be
	actively accessing the monitor at any one time.  The access
	procedures are {critical sections}.  A monitor may have a
	queue of processes which are waiting to access it.

	3. A hardware device that measures electrical events such as
	pulses or voltage levels in a digital computer.

	4. To oversee a program during execution.  For example, the
	monitor function in the {Unix} {C} library enables profiling
	of a certain range of code addresses.  A histogram is produced
	showing how often the {program counter} was found to be at
	each position and how often each profiled function was called.

	{Unix} {man} page: monitor(3).

	5. A control program within the {operating system} that
	manages the allocation of system resources to active
	programs.

	6. A program that measures software performance.

monkey, scratch

	{scratch monkey}

monkey sort

	{bogo-sort}

monkey up

	To hack together hardware for a particular task, especially a
	one-shot job.  Connotes an extremely {crufty} and consciously
	temporary solution.  Compare {hack up}, {kluge up}.

Mono

	<software, .NET> An {open source} {.NET framework} for {Unix}.

	{Mono Home (http://go-mono.com/)}.

	(2003-09-24)

monochrome

	<graphics> Literally "one colour".  Usually used for a black
	and white (or sometimes green or orange) {monitor} as distinct
	from a color monitor.  Normally, each {pixel} on the display
	will correspond to a single bit of {display memory} and will
	therefore be one of two intensities.  A {grey-scale} display
	requires several bits per {pixel} but might still be called
	monochrome.

	Compare: {bitonal}.

	(1994-11-24)

Monochrome Display Adapter

	<hardware, graphics> (MDA) One of {IBM}'s earliest hardware
	video {display standards} for use in {IBM PC}.  MDA can
	display only {monochrome} 80*25 text ({IBM PC video mode} 7).
	It is now obsolete.

	(2011-03-20)

monoid

	An operator * and a value x form a monoid if * is
	{associative} and x is its left and right {identity}.

monotonic

	In {domain theory}, a function f : D -> C is monotonic (or
	monotone) if

		for all x,y in D,  x <= y  =>  f(x) <= f(y).

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

	(1994-11-24)

MONSTR

	<language> A {term graph rewriting} language from {Manchester
	University}(?), designed to be easily implementable on
	distributed architectures and featuring limited
	synchronisation facilities.

	(1995-03-20)

Montage

	An {object-relational database management system} from
	{Montage Software}, the commercialisation of {POSTGRES}.

	(1995-02-23)

Monte Carlo

	<algorithm> (After Monte Carlo, Monaco - a gambling mecca) Any
	one of various methods involving statistical techniques for
	finding the solutions to mathematical or physical problems.

	For example, to calculate {pi}: draw a square then draw the
	biggest circle that fits exactly inside it.  Pick random
	points on the square.  The proportion of these that lie within
	the circle should tend to pi/4.

	(2005-04-05)

monty

	<programming, abuse> /mon'tee/ Any program with a ludicrously
	complex user interface that performs a trivial task.  An
	example would be a menu-driven, button clicking, pulldown,
	pop-up windows program for listing directories.  The original
	monty was a weather reporting program, Monty the Amazing
	Weather Man, written at the USGS.  Monty had a widget-packed
	X-window interface with over 200 buttons; and all it actually
	*did* was {FTP} files off the network.

	[{Jargon File}]

	(2005-04-05)

MOO

	{MUD Object Oriented}

Moof

	/moof/ [MAC users] 1.  A semi-legendary creature, also called
	the "dogcow", that lurks in the depths of the {Macintosh}
	Technical Notes {Hypercard} stack V3.1; specifically, the full
	story of the dogcow is told in technical note #31 (the
	particular Moof illustrated is properly named "Clarus").
	Option-shift-click will cause it to emit a characteristic
	"Moof!" or "!fooM" sound.  *Getting* to tech note 31 is the
	hard part; to discover how to do that, one must needs examine
	the stack script with a hackerly eye.  Clue: {rot13} is
	involved.  A dogcow also appears if you choose "Page Setup..."
	with a LaserWriter selected and click on the "Options" button.

	2. Used to flag software that's a hack, something untested and
	on the edge.  On one {Apple Computer} {CD-ROM}, certain {folders} such
	as "Tools & Apps (Moof!)" and "Development Platforms (Moof!)",
	are so marked to indicate that they contain software not fully
	tested or sanctioned by the powers that be.  When you open
	these folders you cross the boundary into hackerland.

	[{Jargon File}]

Moore bound

	An upper limit on the number of nodes in a {regular graph} of
	{degree} d>2 and {diameter} k:

		N(d,k) <= d(d-1)^k - 2
			  ------------
			      d-2

Moore graph

	A {graph} which achieves the {Moore bound}.  These are
	{complete graphs}, {polygon graphs} ({regular graphs} of
	{degree} 2) and three others: (nodes, degree, diameter) =
	(10,3,2), (50,7,2) and the possible but undiscovered
	(3250,57,2).

Moore's Law

	<architecture> /morz law/ The observation, made in 1965 by
	{Intel} co-founder {Gordon Moore} while preparing a speech,
	that each new memory {integrated circuit} contained roughly
	twice as much capacity as its predecessor, and each chip was
	released within 18-24 months of the previous chip.  If this
	trend continued, he reasoned, computing power would rise
	exponentially with time.

	Moore's observation still holds in 1997 and is the basis for
	many performance forecasts.  In 24 years the number of
	{transistors} on processor chips has increased by a factor of
	almost 2400, from 2300 on the {Intel 4004} in 1971 to 5.5
	million on the {Pentium Pro} in 1995 (doubling roughly every
	two years).

	 Date      Chip     Transistors   MIPS clock/MHz
	 -----------------------------------------------
	 Nov 1971  4004       	   2300   0.06	 0.108
	 Apr 1974  8080       	   6000   0.64	 2
	 Jun 1978  8086       	  29000   0.75	10
	 Feb 1982  80286      	 134000   2.66	12
	 Oct 1985  386DX      	 275000   5   	16
	 Apr 1989  80486      	1200000  20   	25
	 Mar 1993  Pentium    	3100000 112   	66
	 Nov 1995  Pentium Pro  5500000 428    200
	 -----------------------------------------------

	Moore's Law has been (mis)interpreted to mean many things over
	the years.  In particular, {microprocessor} performance has
	increased faster than the number of transistors per chip.  The
	number of {MIPS} has, on average, doubled every 1.8 years for
	the past 25 years, or every 1.6 years for the last 10 years.
	While more recent processors have had wider {data paths},
	which would correspond to an increase in transistor count,
	their performance has also increased due to increased {clock
	rates}.

	Chip density in transistors per unit area has increased less
	quickly - a factor of only 146 between the 4004 (12 mm^2) and
	the Pentium Pro (196 mm^2) (doubling every 3.3 years).
	{Feature size} has decreased from 10 to 0.35 microns which
	would give over 800 times as many transistors per unit.
	However, the automatic layout required to cope with the
	increased complexity is less efficient than the hand layout
	used for early processors.

	{(http://intel.com/intel/museum/25anniv/html/hof/moore.htm)}.

	{Intel Microprocessor Quick Reference Guide
	(http://intel.com/pressroom/no_frame/quickref.htm)}.

	{"Birth of a Chip", Linley Gwennap, Byte, Dec 1996
	(http://byte.com/art/9612/sec6/art2.htm)}.  See also March
	1997 "inbox".

	{Chronology of Events in the History of Microcomputers
	(http://islandnet.com/~kpolsson/comphist.htm)}, Ken
	Polsson.

	See also {Parkinson's Law of Data}.

	[{Jargon File}]

	(1997-03-04)

moose call

	{whalesong}

MooZ

	<language, specification> An {object-oriented} extension of
	{Z}.

	["Object Orientation in Z", S. Stepney et al eds, Springer
	1992].

	(1997-07-09)

Mops

	Like {Yerk}, Mops is descended from the ex-commercial
	{object-oriented} language {Neon}.  It was developed by
	Michael Hore <mikeh@kralizec.zeta.org.au>.  Mops features an
	optimising {native}-code compiler; it is much faster than
	Yerk, but less compatible with Neon.  Mops includes extensions
	such as {multiple inheritance}.

	Version 2.3.1 includes a compiler, documentation and an
	editor.

	A {Macintosh} version is available.
	{(ftp://oddjob.uchicago.edu/pub/Yerk)}.

MORAL

	Mentioned in "An Overview of Ada", J.G.P. Barnes, Soft Prac &
	Exp 10:851-887 (1980).

more

	<tool> The standard {Unix} {pager} program.

	See also: {less}.

	(2008-09-08)

moria

	<games> /mor'ee-*/ Like {nethack} and {rogue}, one of the
	large {PD} {Dungeons and Dragons}-like simulation games,
	available for a wide range of machines and operating systems.
	The name is from Tolkien's Mines of Moria; compare {elder
	days}, {elvish}.  The game is extremely addictive and a major
	consumer of time better used for hacking.

	[{Jargon File}]

morphing

	<graphics> The animated transformation of one image into
	another by gradually distorting the first image so as to move
	certain chosen points to the position of corresponding points
	in the second image.

	Compare {tweening}.

	(1995-04-03)

Morse code

	<communications> A coding system invented by Samuel A. Morse,
	for use in sending character data over extremely low-quality
	pathways -- such as telegraphs and low-quality radio.  Morse
	code expresses characters as pulses of different durations.
	Short signals are called "dots" and long signals are calles
	"dashes".  The coding assigns shorter sequences to the most
	frequently used characters.

	American Morse code is the first and original Morse code
	{character set}.  {Character sets} adapted to other languages
	were developed later.

	American Morse Code:

	 A . __        J . .          S . . .       1 . __ __ .
	 B __ . . .    K __ . __      T __          2 . . __ . .
	 C . .  .      L ___          U . . __      3 . . . __ .
	 D __ . .      M __ __        V . . . __    4 . . . . __
	 E .           N __ .         W . __ __     5 __ __ __
	 F . __ .      O .  .         X . __ . .    6 . . . . . .
	 G __ __ .     P . . . . .    Y . .  . .    7 __ __ . .
	 H . . . .     Q . . __ .     Z . . .  .    8 __ . . . .
	 I . .         R .  . .       0 ____        9 __ . . __

	Where . is a short pulse, __ a long pulse, ___ a very long
	pulse and ____ a extra long pulse.  There are also long and
	short spaces character-internal.  Intercharacter spaces are
	very long and interword spaces are extra long.  There is no
	standarisation in these durations, and they vary depending on
	the coder's preference and on the quality of the line.

	Continental Morse Code or International Morse Code is a widely
	used {de-facto standard}.  This table summarises the Western
	European usage of Continental Morse Code:

	  A .-    G --.    M --    S ...   Y -.--   4 ....-
	  B -...  H ....   N -.    T -     Z --..   5 .....
	  C -.-.  I ..     O ---   U ..-   0 -----  6 -....
	  D -..   J .---   P .--.  V ...-  1 .----  7 --...
	  E .     K -.-    Q --.-  W .--   2 ..---  8 ---..
	  F ..-.  L .-..   R .-.   X -..-  3 ...--  9 ----.

	  A-umlaut (1)  .-.-      E-acute       ..-..
	  A-acute       .--.-     N-tilde       --.--
	  A-corona (11) .--.-     O-umlaut (1)  ---.
	  CH (2)        ----      U-umlaut (1)  ..--

	  Punctuation Marks:            Other Signs:

	  period              .-.-.-    warning                      .-..-
	  comma               --..--    error                        ........
	  question mark       ..--..    repetition (ii ii)           .. ..
	  hyphen              -....-    wait (AS)                    .-...
	  colon (3)           ---...    interruption (BK)            -...-.-
	  underline (4)       ..--.-    understood (VE)              ...-.
	  apostrophe          .----.    transmission received (R)    .-.
	  quotation mark      .-..-.    beginning of message (KA)    -.-.-
	  parenthesis open (5)-.--.     end of message (AR)          .-.-.
	  parenthesis (close) -.--.-    end of transmission (K) (6)  -.-
	  equal sign (7)      -...-     end of transmission (KN) (8) -.--.
	  plus sign           .-.-.     closing mark (SK) (9)        ...-.-
	  multiplication sign -..-      closing station (CL)         -.-..-.
	  fraction mark       -..-.
	  separator (10)     .-..-

	  (1) Note: 'umlaut' is also known as 'diaeresis'
	  (2) Used only in German; not in Dutch.
	  (3) also: 'divided by'
	  (4) before and after the word to be underlined
	  (5) purportedly replaced by -.--.- for both "(" and ")"
	  (6) both and invitation to any station to start transmission
	  (7) also used as spacing between parts of transmission
	  (8) also an invitation to one station in particular to start
	      transmission
	  (9) connection will be closed.
	  (10) in fractions, for example.
	  (11) A-ring ?

	Where '.' is a short pulse, '-' a long one.  A '-' is three
	times as long as a '.'; character-internal spaces are as long
	as '.'s.  Intercharacter space are as long as -'s.  Spaces
	between words are as long as seven '.'s.

	(1996-11-23)

MORTRAN

	A {public domain} {Fortran} {preprocessor} for {structured
	programming}.

	(1995-09-20)

MOS

	{Metal Oxide Semiconductor}

Mosaic

	<World-Wide Web, tool> {NCSA}'s {browser} ({client}) for the
	{World-Wide Web}.

	Mosaic has been described as "the killer application of the
	1990s" because it was the first program to provide a slick
	{multimedia} {graphical user interface} to the {Internet}'s
	burgeoning wealth of distributed information services
	(formerly mostly limited to {FTP} and {Gopher}) at a time when
	access to the {Internet} was expanding rapidly outside its
	previous domain of academia and large industrial research
	institutions.

	NCSA Mosaic was originally designed and programmed for the {X
	Window System} by Marc Andreessen and Eric Bina at NCSA.
	Version 1.0 was released in April 1993, followed by two
	maintenance releases during summer 1993.  Version 2.0 was
	released in December 1993, along with version 1.0 releases for
	both the {Apple Macintosh} and {Microsoft Windows}.  An
	{Acorn Archimedes} port is underway (May 1994).

	Marc Andreessen, who created the NCSA Mosaic research
	prototype as an undergraduate student at the {University of
	Illinois} left to start {Mosaic Communications Corporation}
	along with five other former students and staff of the
	university who were instrumental in NCSA Mosaic's design and
	development.

	{(http://ncsa.uiuc.edu/SDG/Software/Mosaic/Docs/help-about.html)}.

	{(ftp://ftp.ncsa.uiuc.edu/)}.

	E-mail: <mosaic-x@ncsa.uiuc.edu> (X version),
	<mosaic-mac@ncsa.uiuc.edu> (Macintosh), <mosaic-win@ncsa.uiuc.edu>
	(Windows version), <mosaic@ncsa.uiuc.edu> (general help).

	(1995-04-06)

Mosaic Communications Corporation

	{Netscape Communications Corporation}

Moscow ML

	A light-weight implementation of {Standard ML} written by
	Sergei Romanenko <sergei-romanenko@refal.msk.su> of the
	{Keldysh Institute of Applied Mathematics} with assistance
	from Peter Sestoft <sestoft@dina.kvl.dk>, {Royal Veterinary
	and Agricultural University}.  Moscow ML is based on {CAML
	Light}.

	Version: 1.20 implements the Standard ML Core language.

	The sublanguage of Modules implemented by Moscow ML contains
	signatures and non-nested structures, and identifies
	structures with source files.  It is certainly less expressive
	than the full Standard ML Modules language, but the
	{type-safe} {separate compilation} facility is simple, useful,
	and easy to use.  It is the intention to implement the full
	Standard ML Modules language (including functors) in due
	course.

	Compilation of a {signature} produces a compiled interface
	file, which is used when compiling other signatures and
	structures.

	Compilation of a structure produces a {bytecode} file.
	Bytecode files are compact and load fast.  For instance, a
	3250-line program consisting of 24 structures and 17
	signatures compiles to 221 KB of bytecode and 241 KB of
	compiled signatures.  Starting the ML system and loading the
	24 bytecode files takes 1-2 cpu seconds plus network delays,
	less that 5 seconds real time in all.

	Release 1.20 permits loading of precompiled bytecode files
	into the top-level interactive session.  The next release will
	be able to create stand-alone executables by linking bytecode
	files.

	There is a mechanism for adding basis libraries, as in {Caml
	Light}.  Release 1.20 includes the basis libraries Array,
	List, and Vector and the {MS-DOS} version includes the
	Graphics library from {Caml Light}.

	In principle, Moscow ML can be compiled on any {platform}
	supported by {Caml Light}.  So far we have tried {Intel
	80386}-based {IBM PCs} running {MS-DOS}, {Microsoft Windows},
	{OS/2} or {Linux}, {DEC MIPS} running {Ultrix}, {DEC Alpha}
	running {OSF/1}, {Sun-4} running {SunOS}, {HP9000} running
	{HP/UX}, {SGI MIPS} running {IRIX} 5.

	Moscow ML is particularly useful when fast compilation and
	modest storage consumption are more important than fast
	program execution.

	Thanks to the efficient Caml Light run-time system used in
	Moscow ML, it compiles fast and uses little memory, typically
	5-10 times less memory than {SML/NJ} 0.93 and 2-3 times less
	than {Edinburgh ML}.  Yet the bytecode is only 3 to 10 times
	slower than SML/NJ 0.93 compiled native code (fast on {IBM
	PCs}, slower on {RISCs}).

	{DOS
	(ftp://dina.kvl.dk/pub/Peter.Sestoft/mosml/mos12bin.zip)}.
	{Linux
	(ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/linux-mos12bin.tar.gz)}.
	{Source
	(ftp://dina.kvl.dk:pub/Peter.Sestoft/mosml/mos12src.tar.gz)}.

	{Caml Light} 0.61 and {gcc} are required to recompile Moscow
	ML for {Unix} or Caml Light 0.61, {djgpp}, {Perl}, and
	{Borland C++} version 2.0 (or later) to recompile Moscow ML
	for {DOS}.

	(1994-12-12)

MOSFET

	{Metal Oxide Semiconductor Field-Effect Transistor}

Mosiac

	Do you mean {Mosaic}?

MOS Technologies

	{MOS Technology}

MOS Technology

	<company> A {microprocessor} design company started by some
	ex-{Motorola} designers, shortly after the {Intel 8080} and
	{Motorola 6800} appeared, in about 1975.  MOS Technology
	introduced the {650x} series, based on the {Motorola 6800}
	design, though they were not exact clones for legal reasons.

	The design goal was a low-cost (smaler chip) design, realized
	by simplifying the decoder stage.  There were no instructions
	with the value xxxxxx11, reducing the 1-of-4 decoder to a
	single {NAND} gate.  Instructions with the value xxxxxx11
	actually executed two instructions in paralell, some of them
	useful.

	The 6501 was pin-compatible with the 6800 for easier market
	penetration.  The 650x-series had an on-chip clock oscillator
	while the 651x-series had none.

	The 6510 was used in the {Commodore 64}, released September
	1981 and MOS made almost all the ICs for Commodore's {pocket
	calculators}.

	The {PET} was an idea of the of the 6500 developers.  It was
	completly developed by MOS, but was manufactured and marketed
	by Commodore.  By the time the it was ready for production
	(and Commodore had cancelled all orders) MOS had been taken
	over by {Rockwell} (Commodore's parent company).  Just at this
	time the 6522 (VIA) was finished, but the data sheet for it
	was not and its developers had left MOS.  For years, Rockwell
	didn't know in detail how the VIA worked.

	(2001-03-31)

most general unifier

	<logic> If U is the most general {unifier} of a set of
	expressions then any other unifier, V, can be expressed as V =
	UW, where W is another substitution.

	See also {unification}.

	(2000-03-07)

Most Significant Bit

	(MSB) {Bit} n-1 in an n bit {binary} number, the bit with the
	greatest weight (2^(n-1)).  The first or leftmost bit when the
	number is written in the usual way.

	(1995-07-13)

motd

	{message of the day}

mother

	{parent}

motherboard

	<hardware> (mobo) The main {printed circuit board} in an
	electronic device, particularly a computer, which may contain
	sockets that accept additional boards ("daughter-boards").

	In a {personal computer}, the motherboard contains the {bus},
	the {microprocessor}, and {integrated circuits} used for
	controlling any built-in {peripherals} such as the {keyboard},
	text and graphics display, {serial ports} and {parallel
	ports}, {joystick}, and {mouse} {interfaces}.

	(2000-08-10)

Motif

	The standard {graphical user interface} and {window manager}
	from {OSF}, running on the {X Window System}.

Motion JPEG

	{Moving JPEG}

Motion Picture Experts Group

	<spelling> Incorrect expansion of MPEG, which stands for
	{Moving Picture Experts Group}.

	(2000-05-31)

Motorola

	{Motorola, Inc.}

Motorola 14500B

	<processor> (MC14500B) A 1-bit {ICU} from {Motorola}.
	Probably the limit in small processors, the 14500B had a 4-bit
	instruction and controlled a single data read/write line, used
	for application control.  It had no address bus - that was an
	external unit that was added on.  Another {CPU} could be used
	to feed control instructions to the 14500B in an application.
	It had only 16 pins, less than a typical {RAM} chip, and ran
	at 1 {MHz}.

	(1994-11-30)

Motorola 6800

	<processor> A {microprocessor} released shortly after the
	{Intel 8080}, in about 1975.  It had 78 instructions,
	including the undocumented HCF ({Halt and Catch Fire}) bus
	test instruction.  The 6800 evolved into the {Motorola 6801}
	and 6803.

	The {6502} was based on the design of the 6800 but had one
	less data register and one more {index register}.

	(1994-10-31)

Motorola 68000

	<processor> (MC68000) The first member of {Motorola, Inc.}'s
	family of 16- and 32-bit {microprocessors}.  The successor to
	the {Motorola 6809} and followed by the {Motorola 68010}.

	The 68000 has 32-bit registers but only a 16-bit {ALU} and
	external {data bus}.  It has 24-bit addressing and a {linear
	address space}, with none of the evil {segment registers} of
	{Intel}'s contemporary processors that make programming them
	unpleasant.  That means that a single directly accessed
	{array} or structure can be larger than 64KB in size.
	Addresses are computed as 32 bit, but the top 8 bits are cut
	to fit the address bus into a 64-pin package (address and data
	share a bus in the 40 pin packages of the {8086} and {Zilog
	Z8000}).

	The 68000 has sixteen 32-bit {registers}, split into data and
	address registers.  One address register is reserved for the
	{Stack Pointer}.  Any register, of either type, can be used
	for any function except direct addressing.  Only address
	registers can be used as the source of an address, but data
	registers can provide the offset from an address.

	Like the {Zilog Z8000}, the 68000 features a supervisor and
	user mode, each with its own {Stack Pointer}.  The {Zilog
	Z8000} and 68000 are similar in capabilities, but the 68000 is
	32 bits internally, making it faster and eliminating forced
	segmentations.

	Like many other CPUs of its generation, it can fetch the next
	instruction during execution (2 stage {pipeline}).

	The 68000 was used in many {workstations}, notably early
	{Sun-2} machines, and {personal computers}, notably {Apple
	Computer}'s first {Macintoshes} and the {Amiga}.  It was also
	used in most of {Sega}'s early arcade machines, and in the
	{Genesis}/{Megadrive} consoles.

	Variants of the 68000 include the {68HC000} (a low-power HCMOS
	implementation) and the {68008} (an eight-bit data bus version
	used in the {Sinclair QL}).

	["The 68000: Principles and Programming", Leo Scanlon, 1981].

	(2003-07-11)

Motorola 6801

	<processor> (And 6803) A version of the {Motorola 6800} with
	{ROM}, some {RAM}, a serial I/O port and other functions on
	the chip.  It was meant for embedded controllers, where the
	part count was to be minimised.  The 6803 led to the 68HC11
	and that was extended to 16 bits as the 68HC16.

	(1994-11-07)

Motorola 68010

	<processor> A {microprocessor} from {Motorola}.  It was the
	successor to the {Motorola 68000} and was followed by the
	{Motorola 68020}.  Some instructions which were previously
	{user mode} were made {system mode}, which necessitated
	patches to a few programs.

	The 68010's main advantage over the 68000 was that it could
	recover from a {bus fault}.  The 68000 {microcode} didn't save
	enough state to restart all instructions; the 68010 corrected
	this fault.  This allowed it to use {paged virtual memory}.

	The 68010's DBxx (decrement and branch) instructions could
	hold and execute the preceding instruction in the {prefetch
	buffer}, allowing some two-instruction loops to execute
	without refetching instructions.

	At one time there was a 68010 variant that was pin-for-pin
	compatible with the 68000.  Early {Amiga} hackers replaced
	their 68000s with 68010s in order to get a small performance
	increase.

	(1995-11-29)

Motorola 68020

	<processor> A {microprocessor} from {Motorola}.  It was the
	successor to the {Motorola 68010} and was followed by the
	{Motorola 68030}.  The 68020 has 32-bit internal and external
	data and address buses and a 256-byte {instruction buffer},
	arranged as 64 {direct-mapped} 4-byte entries[?].

	The 68020 added many improvements to the 68010 including a
	32-bit {ALU} and external {data bus} and {address bus}, and
	new instrucitons and {addressing modes}.  The 68020 (and
	68030) had a proper three-stage {pipeline}.

	The new instructions included some minor improvements and
	extensions to the supervisor state, some support for
	{high-level languages} which didn't get used much (and was
	removed from future 680x0 processors[?]), bigger (32 x 32-bit)
	multiply and divide instructions, and bit field manipulations.

	The new adderessing modes added another level of indirection
	to many of the pre-existing modes, and added quite a bit of
	flexibility to various indexing modes and operations.

	The {instruction buffer} (an {instruction cache}) was 256
	bytes, arranged as 64 direct-mapped 4-byte entries.  Although
	small, it made a significant difference in the performance of
	many applications.

	The 68881 and the faster 68882 {FPU} chips could be used with
	the 68020.

	The 68020 was used in many models of the {Apple Macintosh} II
	series of {personal computers} and {Sun} 3 {workstations}.

	(2001-03-07)

Motorola 68030

	<processor> A 32-bit {microprocessor} in {Motorola}'s
	{Motorola 68000} family, with on-chip split instruction and
	data {cache} of 256 {bytes} each.  The 68030 has an on-chip
	{MMU} (except in the 680EC30 version).

	The 68881 and the faster 68882 {FPU} chips could be used with
	the 68030.

	The 68030 was the successor to the {Motorola 68020}, and was
	followed by the {Motorola 68040}.

	The 68030 is used in many models of the {Apple Macintosh} II
	series of {personal computers}.

	(2001-01-08)

Motorola 68040

	<processor> (MC68040) A {microprocessor} from {Motorola}.  It
	was the successor to the {Motorola 68030} and was followed by
	the {Motorola 68060}.

	The 68040 was the first {680x0} family member with an on-chip
	{FPU}.  It also had split instruction and data {caches} of 4
	kilobytes(?) each.  It was fully {pipelined}, with six stages.

	The 68040 was used in the {Apple Macintosh} Quadra series of
	{personal computers}.

	The MC68LC040 is an MC68040 without a built-in {FPU}, and the
	MC68EC040 is an MC68040 without an {MMU} or {FPU}.

	(2003-10-25)

Motorola 68050

	There was no 68050.  The successor to the {Motorola 68040} was
	the {Motorola 68060}.

	The even numbers (68000, 68020, 68060) were reserved for major
	revisions to the 680x0 core.  The odd numbers (68010, 68030,
	68050) were minor upgrades from the previous chip.  For
	example, the {Motorola 68010} was a {Motorola 68000} with some
	minor enhancements and modifications to some user/superuser
	instruction assignments.  The {Motorola 68030} was a {Motorola
	68020} with an {MMU} and more minor enhancements.  The 68050
	would have been a 68040 with some bugs fixed, which didn't
	really warrant a new name so it was sold as a 68040.

	(1995-11-29)

Motorola 68060

	<processor> A 32-bit {microprocessor} from {Motorola}, the
	successor to the {Motorola 68040}.  The 68060 is the highest
	performance {680x0} family processor currently (April 1995)
	available.  It has 2 to 3 times the performance of the
	68040.

	The 68060 is probably the last development from Motorola in
	the high performacnce 680x0 series.  They don't want to
	compete with their own {PowerPC} chips.  The 680x0 series is
	intended more for embedded systems, where it is already very
	popular.  New developments here seem to integrate more
	peripheral functions on chip rather than increasing processing
	power.

	(1995-04-22)

Motorola 6809

	<processor> (MC6809) An eight-bit {microprocessor} from {Motorola,
	Inc.}.

	The 6809 was a major advance over both its predecessor, the
	{Motorola 6800} and the {6502}.  The 6809 had two 8-bit
	{accumulators}, rather than one in the 6502, and could combine
	them into a single 16-bit register.  It also featured two {index
	registers} and two {stack pointers}, which allowed for some very
	advanced {addressing modes}.  The 6809 was {source compatible}
	with the 6800, even though the 6800 had 78 instructions and the
	6809 only had around 59 (including a {SEX} instruction).  Some
	instructions were replaced by more general ones which the
	{assembler} would translate and some were replaced by {addressing
	modes}.

	The 6809 had one of the first multiplication instructions of the
	time, 16-bit arithmetic and a special fast {interrupt}.  But it
	was also highly optimised, gaining up to five times the speed of
	the 6800 series CPU.  Like the 6800, it included the undocumented
	HCF ({Halt and Catch Fire}) bus test instruction.

	The {Hitachi 6309} was a version with extra {registers}.  The
	6809 was used in the UK "{Dragon 32}" {personal computer} and
	was followed by the {Motorola 68000}.

	{Usenet} newsgroup: {news:comp.sys.m6809}.

	Lennart Benschop <lennart@blade.stack.urc.tue.nl> posted a
	{emulator} (originally called "usim") and a {cross-assembler} to
	{Usenet} newsgroup {alt.sources} on 1993-11-03.  Ray P. Bellis
	<rpb@psy.ox.ac.uk> released a version 0.11.

	{Benschop emulator (http://lennartb.home.xs4all.nl/m6809.html)}.

	(2014-06-24)

Motorola 680x0

	<processor> Shorthand for any member for the {Motorola 68000}
	family of {microprocessors} from {Motorola, Inc.}  The "x"
	stands for 0, 1, 2, 3, 4 or 6.

	(1993-05-01)

Motorola 68HC11

	<processor> A {microcontroller} family from {Motorola}
	descended from the {Motorola 6800} {microprocessor}.

	The 68HC11 devices are more powerful and more expensive than
	the 68HC05 family.

	{FAQ
	(ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/comp.answers/microcontroller-faq/68hc11)}.

	There is an {opcode} simulator for the 68HC11, by Ted Dunning
	<ted@nmsu.edu>.  Interrupts, hardware I/O, and half carries
	are still outside the loop.  Adding interrupts may require
	simulating at the clock phase level.  Version 1.

	{(ftp://crl.nmsu.edu/pub/non-lexical/6811/sim6811.shar)}.

	(1995-04-28)

Motorola 68LC040

	<processor> A version of the {Motorola 68040} with no {MMU} or
	{FPU}, making it more like an enhanced {Motorola 68020}.

	A {Power Macintosh} can emulate a Motorola 68LC040.

	(1999-01-11)

Motorola 88000

	A family of {RISC} {microprocessors} from {Motorola}.

	[Details?]

	(1995-03-01)

Motorola, Inc.

	<company> One of the world's leading providers of wireless
	communications, semiconductors and advanced electronic systems
	and services.  Major equipment businesses include cellular
	telephone, two-way radio, paging and data communications,
	personal communications, automotive, defense and space
	electronics, computers, satellite communications systems,
	police and emergency service radio systems, taxicab
	dispatching (radio) systems.  Communication devices, computers
	and millions of consumer products are powered by Motorola
	semiconductors.

	They are probably best known in the computing world for their
	{microprocessors}, including the {Motorola 6800} and {Motorola
	68000} {CISC} families and {Motorola 88000} {RISCs}, the
	{Motorola DSP56000} {digital signal processors} and the
	{PowerPC} on which they collaborated.  They also led the
	development of {VMEbus}.

	Quarterly sales $5400M, profits $367M (Aug 1994).

	See also {Envoy}, {Monsoon}, {MPL}.

	{(http://mot.com/)}.

	Address: Schaumberg, Illinois, USA.

	(1994-12-01)

mount

	<file system> To make a {file system} available for access.

	{Unix} does this by associating the file system with a
	{directory} (the "mount point") within a currently mounted
	file system.  The "root" file system is mounted on the {root
	directory}, "/" early in the {boot} sequence.  "mount" is also
	the {Unix} command to do this, "unmount" breaks the
	association.

	E.g., "mount attaches a named file system to the file system
	hierarchy at the pathname location directory [...]" -- {Unix
	manual page} mount(8).

	File systems are usually mounted either at {boot time} under
	control of {/etc/rc} (or one of its subfiles) or on demand by
	an {automounter} {daemon}.

	Other {operating systems} such as {VMS} and {DOS} mount file
	systems as separate directory hierarchies without any common
	ancestor or root directory.

	Apparently derived from the physical sense of "mount" meaning
	"attach", as in "head-mounted display", or "set up", as in
	"always mount a {scratch monkey}, etc."

	{Unix manual page}: mount(8).

	(1997-04-14)

Mouse

	A mighty small {macro} language developed by Peter Grogono in
	1975.

	["Mouse, A Language for Microcomputers", P. Grogono
	<grogono@concour.cs.concordia.ca> Petrocelli Books, 1983].

	(1994-10-31)

mouse

	<hardware, graphics> The most commonly used computer {pointing
	device}, first introduced by {Douglas Engelbart} in 1968.
	The mouse is a device used to manipulate an on-screen
	{pointer} that's normally shaped like an arrow.  With the
	mouse in hand, the computer user can select, move, and change
	items on the screen.

	A conventional {roller-ball mouse} is slid across the surface
	of the desk, often on a {mouse mat}.  As the mouse moves, a
	ball set in a depression on the underside of the mouse rolls
	accordingly.  The ball is also in contact with two small
	shafts set at right angles to each other inside the mouse.
	The rotating ball turns the shafts, and sensors inside the
	mouse measure the shafts' rotation.  The distance and
	direction information from the sensors is then transmitted to
	the computer, usually through a connecting wire - the mouse's
	"tail".  The computer then moves the mouse pointer on the
	screen to follow the movements of the mouse.  This may be done
	directly by the {graphics adaptor}, but where it involves the
	processor the task should be assigned a high {priority} to
	avoid any perceptible delay.

	Some mice are contoured to fit the shape of a person's right
	hand, and some come in left-handed versions.  Other mice are
	symmetrical.

	Included on the mouse are usually two or three buttons that
	the user may press, or click, to initiate various actions such
	as running {programs} or opening {files}.  The left-most
	button (the {primary mouse button}) is operated with the index
	finger to select and activate objects represented on the
	screen.  Different {operating systems} and {graphical user
	interfaces} have different conventions for using the other
	button(s).  Typical operations include calling up a
	{context-sensitive menu}, modifying the selection, or pasting
	text.  With fewer mouse buttons these require combinations of
	mouse and keyboard actions.  Between its left and right
	buttons, a mouse may also have a wheel that can be used for
	scrolling or other special operations defined by the software.
	Some systems allow the mouse button assignments to be swapped
	round for left-handed users.

	Just moving the pointer across the screen with the mouse
	typically does nothing (though some CAD systems respond to
	patterns of mouse movement with no buttons pressed).
	Normally, the pointer is positioned over something on the
	screen (an {icon} or a {menu} item), and the user then clicks
	a mouse button to actually affect the screen display.

	The five most common "gestures" performed with the mouse are:
	{point} (to place the pointer over an on-screen item), {click}
	(to press and release a mouse button), {double-click} {to
	press and release a mouse button twice in rapid succession},
	{right-click} (to press and release the right mouse button},
	and {drag} (to hold down the mouse button while moving the
	mouse).

	Most modern computers include a mouse as standard equipment.
	However, some systems, especially portable {laptop} and
	{notebook} models, may have a {trackball}, {touchpad} or
	{Trackpoint} on or next to the {keyboard}.  These input
	devices work like the mouse, but take less space and don't
	need a desk.

	Many other alternatives to the conventional roller-ball mouse
	exist.  A {tailless mouse}, or {hamster}, transmits its
	information with {infrared} impulses.  A {foot-controlled
	mouse (http://footmouse.com/)} is one used on the floor
	underneath the desk.  An {optical mouse} uses a
	{light-emitting diode} and {photocells} instead of a rolling
	ball to track its position.  Some optical designs may require
	a special mouse mat marked with a grid, others, like the
	Microsoft IntelliMouse Explorer, work on nearly any surface.

	{Yahoo!
	(http://dir.yahoo.com/Business_and_Economy/Companies/Computers/Hardware/Peripherals/Input_Devices/Mice/)}.

	{(http://peripherals.about.com/library/weekly/aa041498.htm)}.

	{PC Guide's "Troubleshooting Mice"
	(http://pcguide.com/ts/x/comp/mice.htm)}.

	(1999-07-21)

mouse ahead

	The {point-and-click} analog of "{type ahead}".  To manipulate
	a computer's pointing device (almost always a mouse in this
	usage, but not necessarily) and its selection or command
	buttons before a computer program is ready to accept such
	input, in anticipation of the program accepting the input.
	Handling this properly is rare, but it can help make a {WIMP
	environment} much more usable, assuming the users are familiar
	with the behaviour of the user interface.

	[{Jargon File}]

	(1994-12-05)

mouse around

	To explore public portions of a large system, especially a
	network such as Internet via {FTP} or {TELNET}, looking for
	interesting stuff to {snarf}.

	[{Jargon File}]

	(1994-12-05)

mouse arrest

	<jargon> Getting busted for violating an on-line service's rule
	of conduct.  "Sorry I couldn't get back to you.  {AOL} put me
	under mouse arrest."

	(1997-03-30)

mouse belt

	{rat belt}

mouse droppings

	1. <graphics, operating system, jargon> {Pixels} (usually
	single) that are not properly restored when the {mouse
	pointer} moves away from a particular location on the screen,
	producing the appearance that the mouse pointer has left
	droppings behind.  The major causes for this problem are
	{MS-DOS} programs that write to the screen memory
	corresponding to the mouse pointer's current location without
	hiding the mouse pointer first, and mouse drivers that do not
	quite support the {graphics mode} in use.

	2. <World-Wide Web, jargon> The client address recorded in a
	{World-Wide Web} server's log whenever a client connects to a
	site.

	Users may be unaware that their activity is being logged in
	this way but the potential for misuse of the information is
	limited.

	[March 1996 Macworld, p260, Viewpoint article by Larry Irving].

	(1994-12-05)

mouse elbow

	<jargon, medical> A tennis-elbow-like fatigue syndrome
	resulting from excessive use of a {WIMP}.  Similarly, "mouse
	shoulder".  {GLS} reports that he used to get this a lot
	before he taught himself to be ambimoustrous.

	[{Jargon File}]

	(1994-12-05)

mouse mat

	<hardware> (U.S.: "mouse pad") A small sheet with a special
	surface for a rolling ball {mouse} to move on.  Most mouse
	mats are sheets of rubber or foam about 20cm by 25cm and about
	5mm thick with one side covered with cloth or sometimes hard
	plastic.  Deluxe versions come combined with a {wrist rest}.

	It is rare to find a mouse mat which does not carry some form
	of advertisement for some company or other.  They are such a
	common free gift that few people actually have to buy one.

	Mats are supposed to provide better traction and a clean,
	lint-free surface over which to move but it debatable whether
	they are useful at all, or whether any appropriate surface
	(preferably hard, even, flat, and clean) is as good.
	Howevever, some mice which use optical (e.g. {Sun}) or
	radio-frequency sensors (e.g. ?) to detect motion (instead of
	using a rolling ball) will only work on specially designed
	mouse mats.  Critics may consider this to be part of the
	{connector conspiracy}, though the designers would claim
	greater reliability due to the absence of moving parts.

	(1997-04-14)

mouse pad

	{mouse mat}

mouse trails

	<operating system> A feature (usually of {Graphical User
	Interfaces}) which causes the {mouse} {pointer} to leave a
	trail across the screen.  This is done by keeping track of the
	last eight or so (maybe configurable) pointer positions, and
	only erasing the oldest.  This means that at any time, there
	may be up to eight pointers on the screen, but if the mouse is
	still, they will all be in the same position, and so only one
	will be visible.  When the mouse moves, it appears to leave a
	trail of pointers behind it, and this can dramatically
	increase the visibility of the pointer when using {LCD}
	screens.  The older ones had such long {persistence} that a
	single mouse pointer, when moving, tended to be completely
	invisible, and on a cluttered screen, was very difficult to
	find.

	(1996-07-08)

mouso

	<jargon> /mow'soh/ (By analogy with "{typo}") An error in
	{mouse} usage resulting in an inappropriate selection or
	graphic garbage on the screen.

	Compare {thinko}.

	[{Jargon File}]

	(1996-04-21)

Moving JPEG

	<graphics, compression> (M-JPEG) A compression technique for
	moving {images} which applies {JPEG} still image compression
	to each {frame} of a moving picture sequence.

	Play-back requires a machine capable of decompressing and
	displaying each JPEG image quickly enough to sustain the
	required {frame rate} of the picture sequence.

	There is no standard for Moving JPEG as with JPEG, but there
	are JPEG compression chips (for example see {Zoran
	(http://zoran.com/)}) which are designed to work at
	television frame rates and {resolutions}.

	See also {MPEG} and {MPEG2}.

	(1996-12-15)

Moving Picture Expert Group

	<spelling> Incorrect expansion of MPEG, which stands for
	{Moving Picture Experts Group}.

	(2000-05-31)

Moving Picture Experts Group

	<compression, standard, algorithm, file format, body> (MPEG,
	ISO/IEC JTC1/SC29 WG11) An {ISO} committee that generates
	{standards} for digital {video compression} and audio.  Also
	the name of their {algorithms}.

	{MPEG-1} is optimised for {CD-ROM} and is the basis for {MP3}.
	{MPEG-2} is aimed at {broadcast quality video} for
	applications such as {digital television} {set-top boxes} and
	{DVD}.  {MPEG-4} is a standard for low {bandwidth} {video
	telephony} and {multimedia} on the {World-Wide Web}.  MPEG-3
	was merged into MPEG-2.

	{(http://cselt.it/mpeg/)}.  {MPEG.org
	(http://mpeg.org/)}.  {MPEG decoder
	(ftp://toe.cs.berkeley.edu/pub/multimedia/mpeg/)}.  {MPEG
	routines (ftp://ftp.mni.mcgill.ca/pub/mpeg/)}.

	(2000-05-31)

Moving Pictures Experts Group

	<spelling> Incorrect expansion of MPEG, which stands for
	{Moving Picture Experts Group}.

	(2000-05-31)

Moxie

	<language, music> A language for {real-time} computer music
	synthesis, written in {XPL}.

	["Moxie: A Language for Computer Music Performance",
	D. Collinge, Proc Intl Computer Music Conf, Computer Music
	Assoc 1984, pp.217-220].

	(1994-12-05)

Mozilla

	<World-Wide Web, open source> The {open source} {web
	browser}, designed for standards-compliance, performance, and
	portability, whose development is coordinated by the {Mozilla
	Foundation}.

	The Mozilla project started in March 1998 when {Netscape
	Communications Corporation} released the {source code} of
	{Netscape Communicator}.  The now abandoned version based on
	that code is referred to as "Mozilla Classic".  Since then,
	much has been rewritten, including the layout engine, the
	networking library, and the front-end.

	Mozilla 1.0 was finally released on 2002-06-05.  Much of the
	code was used to build {Firefox}.

	Although a lot of Mozilla code is under the original Netscape
	Public License, some parts of the code are under the Mozilla
	Public License or dual MPL/GPL.

	"Mozilla" was the original project code name for {Netscape
	Navigator} and, according to some of the documentation, the
	correct pronunciation of "Netscape".

	[Derived from "{Mosaic} killer/Godzilla"?]

	(2005-01-26)

Mozilla Foundation

	<body, World-Wide Web, open source> The body set up by
	{Netscape} in January 1998 to coordinate development of the
	{Mozilla} browser and to provide a point of contact.

	{Mozilla Home (http://mozilla.org/)}.

	(2005-01-26)

Mozilla Public License

	{open source license}

mp

	<networking> The {country code} for the Northern Mariana
	Islands.

	(1999-01-27)

MP1

	{MPEG-1 audio layer 1}

MP-1

	{Assembly language} for the {MasPar} computer.

	(1994-12-05)

MP2

	{MPEG-1 audio layer 2}

MP3

	{MPEG-1 audio layer 3}

MP3Pro

	<audio, compression> An extention of {MP3} using {SBR},
	targetting data rates of 64-96 kbps.

	(2001-12-20)

MPC

	1. <operating system> {Memory Protection Check}.

	[Origin?]

	2. <computer> {Multimedia Personal Computer}.

	3. {Multiprocess Communications}.

MPC Level 1 Specification

	<multimedia> The original {Multimedia Personal Computer}
	specification.

	Minimum requirements are a 16 MHz {386SX} with 2 {megabytes}
	of {RAM}, a 30 MB {hard disk drive}, and a {CD-ROM} drive with
	a sustained data transfer rate of 150 KB/s at no more than 40%
	of {CPU} {bandwidth} and reading at least 16 KB blocks.  The
	maximum average {seek time} is 1 second and the {Mean Time
	Between Failure} 10000 hours.  Capability Mode 1.

	The computer must have 8-bit digital sound and an 8-note
	synthesizer with {MIDI} playback.  Sample rates of 22.05 and
	11.025 kHz must be supported by no more than 10% of CPU
	bandwidth, preferably 44.1 kHz at no more than 15% of CPU
	bandwidth.  The synthesizer must support multi-voice,
	multi-timbral generation of six simultaneous melody notes and
	two simultaneous percussive notes with internal mixing
	capabilities to combine input from three sources and present
	the output as a stereo, line-level audio signal at the back
	panel.

	The video display must have a {resolution} of at least 640 x
	480 in 16 colours.  MIDI, I/O, and joystick ports must be
	previded.

	Compare {MPC Level 2 Specification}.

	(1997-01-19)

MPC Level 2 Specification

	<multimedia> An improved version of the {MPC Level 1
	Specification} for {Multimedia Personal Computers}.

	Minimum requirements are a 25 Mhz {486SX} with 4 MB of RAM and
	a 160 MB {hard disk drive}.  The {CD-ROM} drive must support a
	sustained data transfer rate of 300 KB/s using at most 60% of
	{CPU} {bandwidth} on 16 KB minimum block read size.  Its
	average {seek time} must be 400 milliseconds maximum.
	Capability Mode 1, Mode 2 form 1, Mode 2 form 2, Multisession.
	It must be {CD-ROM XA}-ready.

	The computer must have 16-bit digital sound, an 8-note
	synthesizer, and {MIDI} playback.  A sample rate of 44.1 kHz
	must be available on stereo channels with more than 15% of CPU
	bandwidth.

	A video display with a {resolution} of 640 x 480 in 65,536
	colours, and MIDI, I/O, and joystick ports must be provided.

	(1997-01-19)

MPEG

	{Moving Picture Experts Group}

MPEG-1

	<compression, standard, algorithm, file format> The first
	{MPEG} format for compressed {video}, optimised for {CD-ROM}.
	MPEG-1 was designed for the transmission rates of about 1.5
	{Mbps} achievable with {Video-CD} and {CD-i}.

	It uses {discrete cosine transform} (DCT) and {Huffman coding}
	to remove spatially redundant data within a frame and
	block-based {motion compensated prediction} (MCP) to remove
	data which is temporally redundant between frames.  Audio is
	compressed using {subband encoding}.  These {algorithms} allow
	better than VHS quality video and almost CD quality audio to
	be compressed onto and streamed off a {single speed} (1x)
	{CD-ROM} drive.

	MPEG encoding can introduce blockiness, colour bleed and
	shimmering effects on video and lack of detail and
	quantisation effects on audio.

	The official name of MPEG-1 is {International Standard}
	{IS-11172}.

	(1999-01-06)

MPEG-1 audio layer 1

	<audio, compression, algorithm> (MP1) A simple 32-{subband}
	{audio compressor} using a {floating point} representation for
	subband samples.  Resolution and scale factor are stored for
	groups of 12 subsamples.  MP1 is only used for {Philips} DCC
	{Digital Compact cassette} with data rates of 384 kbps.

	(2001-12-02)

MPEG-1 audio layer 3

	<music, file format> (MP3) A {digital audio} {compression
	algorithm} that acheives a compression factor of about twelve
	while preserving sound quality.  It does this by optimising
	the compression according to the range of sound that people
	can actually hear.  MP3 is currently (July 1999) the most
	powerful algorithm in a series of audio encoding standards
	developed under the sponsorship of the {Moving Picture Experts
	Group} (MPEG) and formalised by the International Organization
	for Standardization (ISO).

	MP3 is very different from Layer 2, using an additional {MDCT}
	layer to increase frequency resolution.  Its scale factor
	groups are more optimised for the human ear, and it uses
	nonlinear {sample quantisation} and {Huffman coding}.

	MP3 files ({filename extension} ".mp3") can be downloaded from
	many {World-Wide Web} sites and can be played using software
	available for most {operating systems} (also downloadable),
	e.g. Winamp for {PC}, MacAmp for {Macintosh}, and mpeg123 for
	{Unix}.

	MP3 files are usually downloaded completely before playing but
	{streaming} MP3 is also possible.  A program called a "ripper"
	can be used to copy a selection from a music {CD} onto your
	{hard disk} and another program called an encoder can convert
	it to an MP3 file.

	(2001-12-04)

MPEG-1 layer 3

	{MPEG-1 audio layer 3}

MPEG-2

	<compression, standard, algorithm, file format> A variant of
	the {MPEG} video and audio {compression} {algorithm} and file
	format, optimised for {broadcast quality video}.  MPEG-2 was
	designed to transmit images using {progressive coding} at 4
	{Mbps} or higher for use in broadcast {digital TV} and {DVD}.
	An MPEG-2 player can handle {MPEG-1} data as well.

	MPEG-2 has been approved as {International Standard}
	{IS-13818}.

	(1995-04-18)

MPEG-21

	<compression, standard, algorithm, file format> A {file
	format} designed to merge very different things in one object,
	so you can store interactive material in this format (audio,
	video, questions, answers, overlays, non-linear order,
	calculation from user inputs, etc.)

	[Technical details?]

	(2001-12-02)

MPEG-2.5 audio layer 3

	<compression, standard, algorithm, file format> A non-standard
	extention of {MPEG-2 audio layer 3} by {FhG} for lowest
	sampling rates (8-12 kHz) targeting bit rates from 16-32 kbps
	(possibly 8-160 kbps).

	(2001-12-04)

MPEG-2 AAC Low Profile

	<compression, standard, algorithm, file format> A successor of
	{MP3} allowing transparent coding at data rates of 75-80% of
	that of {MP3}.  It is very different from MP3, only used
	{MDCT}, no {subband coding}.

	(2001-12-08)

MPEG-2 audio layer 3

	<compression, standard, algorithm, file format> An extention
	of {MPEG-1 audio layer 3} for lower sampling rates (16-24 kHz)
	targeting bit rates from 32-64 kbps (possibly 8-160 kbps).  It
	is often combined with {MPEG-2 LSF}.

	(2001-12-04)

MPEG-2 Low Sampling Frequencies Extention

	<compression, standard, algorithm, file format> (MPEG-2 LSF)
	An extension of {MPEG-2}, mostly used with {MPEG-2 audio layer
	3} because the aim was medium quality at low bit rates, not
	lower sampling frequencies.

	(2001-12-04)

MPEG-2 LSF

	{MPEG-2 Low Sampling Frequencies Extention}

MPEG-2 MC

	{MPEG-2 Multi Channel Extention}

MPEG-2 Multi Channel Extention

	<compression, standard, algorithm, file format> (MPEG-2 MC) An
	extension of {MPEG-2} that uses up to 5 channels and about
	1200 kbps.

	(2001-12-08)

MPEG-3

	<compression, standard, algorithm, file format> A proposed
	variant of the {MPEG} {video} and {audio} {compression}
	{algorithm} and {file} format.  MPEG-3 was intended as an
	extension of {MPEG-2} to cater for {HDTV} but was eventually
	merged into MPEG-2.

	Not to be confused with MP3 - {MPEG-1 layer 3}.

	[Technical details?]

	(1999-01-06)

MPEG-4

	<compression, standard, algorithm, file format> A {video
	compression} standard planned for late 1998.  MPEG-4 extends
	the earlier {MPEG-1} and {MPEG-2} algorithms with synthesis of
	speech and video, {fractal compression}, {computer
	visualisation} and {artificial intelligence}-based {image
	processing} techniques.

	[Technical details?]

	(1999-01-06)

MPEG-4 AAC Main Profile

	<compression, standard, algorithm> A successor of
	{MP3} allowing transparent coding at data rates of 70-75% of
	that of {MP3}.  It is very different from MP3, only used
	{MDCT}, no {subband coding}.  It is much more complex that
	{MP3} and {MPEG-2 AAC Low Profile}.

	(2001-12-08)

MPEG-4 AAC SSR

	{MPEG-4 Advanced Audio Coding Scalable Sampling Rate}

MPEG-4 Advanced Audio Coding Scalable Sampling Rate

	<compression, standard, algorithm> (MPEG-4 AAC SSR) An {AAC}
	flavour supporting different qualities for different targets.
	One stream can contain up to 3 streams for 11.025 kHz (Stream
	1), 22.05 (Stream 1 and 2) and 44.1 kHz (all 3 Streams)
	sampling frequency.  Quality is between Low Profile and Main
	profile.  See also {JPEG-2000}.

	(2001-12-09)

MPEG-4 Harmonics, individual lines and noise

	<compression, standard, algorithm> (MPEG-4 HILN) An {MPEG-4}
	variant using {parametric encoding} with a target {bit rate}
	of 30 kbps.

	(2001-12-09)

MPEG-4 Harmonic Vector eXCitation

	<compression, standard, algorithm> (MPEG-4 HVXC) An {MPEG-4}
	variant using {parametric encoding} with a target {bit rate}
	of 20 kbps, for voice coding.

	(2001-12-09)

MPEG-4 HILN

	{MPEG-4 Harmonics, individual lines and noise}

MPEG-4 HVXC

	{MPEG-4 Harmonic Vector eXCitation}

MPEG-7

	<compression, standard, algorithm> A successor to {MPEG-4},
	not standardized yet.

	(2001-12-02)

MPEGplus

	<compression, algorithm> A non-{ISO} standard compressed {audio}
	file format derived from {MPEG-1 Layer 2}.

	(2001-12-11)

MPG

	<jargon> Miles per gallon, as in "Your MPG may
	vary", i.e. "{Your mileage may vary}".

mpg

	<filename extension> A {filename extension} for a file in
	{MPEG} format.

	(1995-03-07)

MPI

	{Message Passing Interface}

MPL

	1. <language> An early possible name for {PL/I}.

	[Sammet 1969, p.542].

	2. {MasPar} {data-parallel} version of {C}.  See also {ampl}.

	{Compiler version 3.1 (ftp://maspar.maspar.com/put/)}.

	3. Motorola Programming Language.  A low-level {PL/I}-like
	language, similar to {PL/M}, but for the {Motorola 6800}.

	4. MicroProgramming Language.  Simple language for
	microprogramming.  Statements on the same line represent
	{register} transfers caused by one microinstruction, and are
	executed in parallel.

	["Structured Computer Organization", A.S. Tanenbaum, First
	Edition, P-H 1976. (Replaced in later editions by Mic-1)].

	(1995-03-07)

MPL II

	[Burroughs VMS MPL II Language Reference Manual].

MPLS

	{Multiprotocol Label Switching}

MPLS domain

	<networking> A portion of a {network} that contains devices
	that understand {MPLS}.

	(1999-06-14)

MP/M

	{Multi-tasking Program for Microcomputers}

MPP

	{Multiple Parallel Processing}
MPPE

	{Microsoft Point to Point Encryption}

MPPL

	<language> An early possible name for {PL/I}.

	[Sammet 1969, p. 542].

	(1995-03-07)

MPR II

	<standard> A green standard published by SWEDAC (the Swedish
	Board for Technical Accreditation) that limits the maximum
	amount of {ELF} and {VLF} electromagnetic radiation a computer
	{monitor} may emit.  Most {personal computer} monitors comply
	with this standard or the more stringent European TCO
	requirement.

	(1996-02-19)

M-Prolog

	1. Marseille Prolog.

	2. An extension to {Prolog} involving {modules}.

	["The MProlog System", J. Bendl et al, Proc Logic Prog
	Workshop, 1980].

	(1994-10-31)

MPS III

	Solving matrices and producing reports.  "MPS III DATAFORM
	User Manual", Management Science Systems (1976).

MPSX

	Mathematical Programming System Extended.  Solution strategy
	for mathematical programming.  "Mathematical Programming
	System Extended (MPSX) Control Language User's Manual",
	SH20-0932, IBM.  Sammet 1978.

MPV

	An extension of the {VRTX} {real-time} {operating system} to
	support {multi-processing}.

	(1994-11-08)

MPX

	{Multiplexor Channel}

mq

	<networking> The {country code} for Martinique.

	(1999-01-27)

MQG

	{Multi-threaded Query Gate}

mr

	<networking> The {country code} for Mauritania.

	(1999-01-27)

MRAM

	{Magnetic RAM}

MRDA

	{Mandy Rice-Davis Applies}

MRDS

	{Multics Relational Data Store}

MRI

	1. <application> {Magnetic Resonance Imaging}.

	2. {Measurement Requirements and Interface}.

MROC

	{Miniature Ruggedized Optical Correlator}

MROM

	{Mask Read-Only Memory}

MRP

	{Material Requirements Planning}

MRP II

	{Manufacturer Resource Planning}

MRS

	Modifiable Representation System.

	An integration of {logic programming} into {Lisp}.

	["A Modifiable Representation System", M. Genesereth et al,
	HPP 80-22, CS Dept Stanford U 1980].

	(1994-11-08)

ms

	1. <unit> {millisecond}.

	2. <networking> The {country code} for Montserrat.

	(1999-01-27)

MS Access

	{Microsoft Access}

MSAU

	{Media Access Unit}

MSB

	{Most Significant Bit}

MS-BASIC

	{Microsoft Basic}

MS-DOG

	<abuse> A pejorative name for {MS-DOS}.

MS-DOS

	{Microsoft Disk Operating System}

MSG.84

	<language> A language for the {functional specification} and
	module design phases of the {software life cycle}, first
	presented in Berzins and Gray's 1985 paper.  Not unlike {PDL}.

	["Analysis and design in MSG.84: formalizing functional
	specifications", Valdis Berzins, Michael Gray, Volume 11 Issue
	8, IEEE Transactions on Software Engineering, Aug 1985].

	(2003-05-15)

msgGUI

	<library> A {graphical user interface} for {GNU Smalltalk}.
	The msgGUI package contains the basics for creating window
	{applications} in the manner available in other graphical
	{Smalltalk} implementations.  Version 1.0 of the library was
	by Mark Bush, ECS, Oxford University, UK.

	{(ftp://ftp.comlab.ox.ac.uk/pub/Packages/mst/mstGUI-1.0.tar.Z)}.

	(2000-06-14)

MSIE

	{Internet Explorer}

MSM

	{Micronetics Standard MUMPS}

MS Mail

	{Microsoft Mail}

MSN

	{The Microsoft Network}

MS Office

	{Microsoft Office}

MS Project

	{Microsoft Project}

MSS

	{maximum segment size}

MS-Windows

	{Microsoft Windows}

MswLogo

	<language> A {Microsoft Windows} {front-end} for {Berkeley
	Logo} by George Mills <george.mills AT softronix DOT com>.
	MswLogo has 3D {primitives} and {GUI} support.  It runs on
	every flavour of Windows from 16-bit to NT.

	{(http://softronix.com/logo.html)}.

	(2006-02-28)

MS Word

	{Microsoft Word}

MSX

	{Microsoft Extended}

MSX-DOS

	{Microsoft Extended}

mt

	<networking> The {country code} for Malta.

	(1999-01-27)

MTA

	1. <messaging> {Message Transfer Agent}.

	2. <messaging> {Message Transfer Architecture}. ({AT&T}).

	3. {Multiple Terminal Access}.

	4. {Maintenance Task Analysis}.

	(1997-02-28)

MTBF

	{Mean Time Between Failures}

mtc

	A {Modula-2} to {C} translator.

	{(ftp://rusmv1.rus.uni-stuttgart.de/soft/Unixtools/compilerbau/mtc.tar.Z)}.

	(1991-10-25)

M Technology Association

	<body> The {MUMPS} User's Group that disbanded some time
	between 1995 and 2003.

	Address: 1738 Elton Road, Suite 205, Silver Spring, MD
	20903-1725, USA.

	Telephone: +1 301 431-4070.  Fax: +1 301 431-0017.

	(2003-06-04)

MTOS

	1. <operating system> A family of {real-time} {operating systems}
	for use in {embedded  systems}.	 It is	developed and marketed by
	{Industrial Programming, Inc.}.

	2. <operating system> {MultiTOS}

	(1997-06-03)

MTS

	1. {Message Transport System}.

	2. <programming> {Microsoft Transaction Server}.

	(1999-03-29)

MTTR

	{Mean Time To Recovery}

MTU

	{Maximum Transmission Unit}

Mu

	<character> (Greek letter).

	1. <unit> /micro/ prefix denoting division by 10^6, e.g. mu m
	(micrometre, a millionth part of a metre).  Sometimes written
	as a 'u', the ASCII character nearest in appearance.

	2. <mathematics> /myoo/ In the theory of functions, mu x . E
	denotes the least value of x for which E = x, i.e. the {least
	fixed point} of the function \ x . E.  The {recursive}
	function mu f . H f satisfies (and is defined by) the equation

		mu f . H f = H (mu f . H f)

	An alternative notation for the same function is

		fix H = H (fix H)

	See {fixed point combinator}.

	3. <database> {multiple value}.

	[{Jargon File}]

	(1995-10-30)

mu

	1. <networking> The {country code} for Mauritius.

	2. <philosophy> /moo/ The correct answer to the classic trick
	question "Have you stopped beating your wife yet?".  Assuming
	that you have no wife or you have never beaten your wife, the
	answer "yes" is wrong because it implies that you used to beat
	your wife and then stopped, but "no" is worse because it
	suggests that you have one and are still beating her.
	According to various Discordians and Douglas Hofstadter the
	correct answer is usually "mu", a Japanese word alleged to
	mean "Your question cannot be answered because it depends on
	incorrect assumptions".

	Hackers tend to be sensitive to logical inadequacies in
	language, and many have adopted this suggestion with
	enthusiasm.  The word "mu" is actually from Chinese, meaning
	"nothing"; it is used in mainstream Japanese in that sense,
	but native speakers do not recognise the Discordian
	question-denying use.  It almost certainly derives from
	overgeneralisation of the answer in the following well-known
	Rinzei Zen teaching riddle:

	A monk asked Joshu, "Does a dog have the Buddha nature?"
	Joshu retorted, "Mu!"

	See also {has the X nature}, {AI Koan}.

	[Douglas Hofstadter, "Gödel, Escher, Bach: An Eternal Golden
	Braid"].

	[{Jargon File}]

	(2000-11-22)

MUA

	{Mail User Agent}

MUCAL

	<language, music> A language for playing music on the {PDP-8}.

	(1995-04-16)

MUD

	<games> {Multi-User Dimension} or "Multi-User Domain".
	Originally "Multi-User Dungeon".

	[{Jargon File}]

	(1995-04-16)

muddie

	<games> Synonym {mudhead}.  More common in Great Britain,
	possibly because system administrators there like to mutter
	"bloody muddies" when annoyed at the species.

	[{Jargon File}]

Muddle

	Original name of {MDL}.

mudhead

	<games> A {MUD} player who eats, sleeps, and breathes MUD.
	Mudheads have been known to fail their degrees, drop out,
	etc. with the consolation, however, that they made wizard
	level.  When encountered in person, on a MUD or in a chat
	system, all a mudhead will talk about is three topics: the
	tactic, character, or wizard that is supposedly always
	unfairly stopping him/her from becoming a wizard or beating a
	favourite MUD; why the specific game he/she has experience
	with is so much better than any other; and the MUD he or she
	is writing or going to write because his/her design ideas are
	so much better than in any existing MUD.  See also {wannabee}.

	To the anthropologically literate, this term may recall the
	Zuni/Hopi legend of the mudheads or "koyemshi", mythical
	half-formed children of an unnatural union.  Figures
	representing them act as clowns in Zuni sacred ceremonies.

	[{Jargon File}]

	(1994-11-29)

MUD Object Oriented

	<games> (MOO) One of the many {MUD} spin-offs (e.g. {MUSH},
	{MUSE}, and {MUX}) created to diversify the realm of
	interactive text-based gaming.  A MOO is similar to a MUSH in
	that the users themselves can create objects, rooms, and code
	to add to the environment.

	The most frequently used {server} {software} for running a MOO
	is {LambdaMOO} but alternatives include {WinMOO
	(http://www-personal.umich.edu/~cunkel/WinMOO/)} and
	{MacGoesMOO
	(http://neon.ci.lexington.ma.us/SpamCentral/scaron/mgm.html)}.

	(1999-05-25)

muFP

	A {functional language} for hardware design, a predecessor of
	{Ruby}.

Muhammad al-Khwarizmi

	{Muhammad ibn Musa al-Khwarizmi}

Muhammad ibn Musa al-Khwarizmi

	<person> An astronomer, geographer and mathematician, born around
	780 CE in Khwarizm (modern Khiva), south of the Aral Sea.
	Khawarizmi founded {algebra} and {algorithms} (named after him),
	synthesised Greek and Hindu knowledge, introducing the Indian
	system of numerals (now known as Arabic numerals), developed
	operations on {fractions}, trigonometric tables containing the
	{sine functions}, the {calculus of two errors} and the {decimal}
	system, explained the use of {zero}, perfected the geometric
	representation of {conic sections}, collaborated in the degree
	measurements aimed at measuring of volume and circumference of the
	Earth and produced the first map of the known world in 830 CE.  He
	died around 850 CE.

	{Muslim Heritage.com
	(http://muslimheritage.com/day_life/default.cfm?ArticleID=317&Oldpage=1])}.

	(2008-07-08)

mu-law

	The North America {standard} for {nonuniform quantising
	logarithmic compression}.

	[Equation?]

	(1995-02-21)

Mule

	<text, tool> A multi-lingual enhancement of {GNU Emacs}.  Mule
	can handle not only {ASCII} characters (7 bit) and {ISO
	Latin 1} characters (8 bit), but also {16-bit characters} like
	Japanese, Chinese, and Korean.  Mule can have a mixture of
	languages in a single buffer.

	Mule runs under the {X window system}, or on a {Hangul
	terminal}, {mterm} or {exterm}.

	Latest version: 2.3.

	{(ftp://etlport.etl.go.jp/pub/mule)}.

	(1996-01-28)

Mul-T

	An implementation of {Multilisp} built on {T}, for the {Encore
	Multimax}.

	["Mul-T: A High-Performance Parallel Lisp", SIGPLAN Notices
	24(7):81-90 (Jul 1989)].

	(1995-02-21)

Multi-BinProlog

	<language> A {multi-threaded} {Linda}-style parallel extension
	to {BinProlog} for {Solaris} 2.3.

	Version: 3.30.

	(1995-04-04)

multiboot

	{dual boot}

multiC

	<language> A {data-parallel} version of {C} from {Wavetracer}.

	(1995-04-04)

MultiCal System

	E-mail: Richard Snodgrass <rts@cs.arizona.edu>.

	{(ftp://ftp.cs.arizona.edu/tsql/multical)}.

	[What is it?]

	(1994-11-11)

multicast addressing

	{Ethernet} addressing scheme used to send {packets} to devices
	of a certain type or for {broadcast}ing to all nodes.  The
	least significant bit of the most significant byte of a
	multi-cast address is one.

multicast backbone

	(MBONE) A {virtual network} on top of the {Internet} which
	supports {routing} of {IP} {multicast} {packets}, intended for
	{multimedia} transmission.  MBONE gives public access {desktop
	video} communications.  The quality is poor with only 3-5
	frames per second instead of the 30 frames per second of
	commercial television.  Its advantage is that it avoids all
	telecommunications costs normally associated with
	teleconferencing.  An interesting innovation is the use of
	MBONE for audio communications and an electronic "whiteboard"
	where the computer screen becomes a shared workspace where two
	physically remote parties can draw on and edit shared
	documents in {real-time}.

	(1994-10-27)

Multi-channel Memorandum Distribution Facility

	<messaging> (MMDF) An {electronic mail} system for Unix(?)
	which is much easier to configure than {sendmail}.  The source
	is available.

	MMDF is a versatile and configurable mail routing system
	({MTA}) which also includes user interface programs ({MUA}).
	It can be set up to route mail to different {domains} and
	{hosts} over different channels (e.g. {SMTP}, {UUCP}).  On
	{UNIX} systems, its configuration begins with the
	/usr/mmdf/mmdftailor file, which defines the machine and
	domain names, various other configuration tables (alias,
	domain, channel) and other configuration information.

	[Home?]

	(1997-01-14)

multician

	<jargon, person> /muhl-ti'shn/ A term coined at {Honeywell},
	ca. 1970 for a competent user of {Multics}.  Perhaps oddly, no
	one has ever promoted the analogous "Unician".

	[{Jargon File}]

	(1996-08-24)

Multi-Color Graphics Array

	<hardware, graphics> (MCGA) One of {IBM}'s less popular
	hardware video {display standards} for use in the {IBM PS/2}.
	MCGA can display 80*25 text in {monochrome}, 40*25 text in 256
	colours or 320*200 pixel graphics in 256 colors.  It is now
	obsolete.

	(2011-03-20)

Multics

	<operating system> /muhl'tiks/ MULTiplexed Information and
	Computing Service.  A {time-sharing} {operating system}
	co-designed by a consortium including {MIT}, {GE} and {Bell
	Laboratories} as a successor to MIT's {CTSS}.  The system
	design was presented in a special session of the 1965 Fall
	Joint Computer Conference and was planned to be operational in
	two years.  It was finally made available in 1969, and took
	several more years to achieve respectable performance and
	stability.

	Multics was very innovative for its time - among other things,
	it was the first major OS to run on a {symmetric
	multiprocessor}; provided a {hierarchical file system} with
	{access control} on individual files; mapped files into a
	paged, segmented {virtual memory}; was written in a
	{high-level language} ({PL/I}); and provided dynamic
	inter-procedure linkage and memory (file) sharing as the
	default mode of operation.  Multics was the only
	general-purpose system to be awarded a B2 {security rating} by
	the {NSA}.

	Bell Labs left the development effort in 1969.  {Honeywell}
	commercialised Multics in 1972 after buying out GE's computer
	group, but it was never very successful: at its peak in the
	1980s, there were between 75 and 100 Multics sites, each a
	multi-million dollar {mainframe}.

	One of the former Multics developers from Bell Labs was {Ken
	Thompson}, a circumstance which led directly to the birth of
	{Unix}.  For this and other reasons, aspects of the Multics
	design remain a topic of occasional debate among hackers.  See
	also {brain-damaged} and {GCOS}.

	MIT ended its development association with Multics in 1977.
	Honeywell sold its computer business to {Bull} in the mid
	1980s, and development on Multics was stopped in 1988 when
	Bull scrapped a Boston proposal to port Multics to a
	{platform} derived from the {DPS-6}.

	A few Multics sites are still in use as late as 1996.

	The last Multics system running, the Canadian Department of
	National Defence Multics site in Halifax, Nova Scotia, Canada,
	shut down on 2000-10-30 at 17:08 UTC.

	The {Jargon file} 3.0.0 claims that on some versions of
	Multics one was required to enter a password to log out but
	James J. Lippard <lippard@primenet.com>, who was a Multics
	developer in Phoenix, believes this to be an {urban legend}.
	He never heard of a version of Multics which required a
	password to logout.  Tom Van Vleck <thvv@multicians.org>
	agrees.  He suggests that some user may have implemented a
	'terminal locking' program that required a password before one
	could type anything, including logout.

	{(http://multicians.org/)}.

	{Usenet} newsgroup: {news:alt.os.multics}.

	[{Jargon File}]

	(2002-04-12)

Multics Relational Data Store

	<database> (MRDS) The first commercial {relational database},
	implemented as part of {Multics} by Jim Weeldreyer and Oris
	Friesen of {Honeywell} Phoenix in about 1977.  MRDS included a
	report writer called LINUS written by Jim Falksen.

	(1997-01-29)

Multiflow Computer

	<company> A now-defunct computer company, best known for its
	work in {Very Long Instruction Word} processors.

	Address: New Haven, Conn. USA.

	(1995-03-01)

Multi-Garnet

	A better constraint system for Garnet.  Version 2.1 by Michael
	Sannella <sannella@cs.washington.edu>.

	{(ftp://a.gp.cs.cmu.edu/usr/garnet/alpha/src/contrib/multi-garnet)}.

	(1992-09-21)

multihomed host

	A {host} which has more than one connection to a {network}.
	The host may send and receive data over any of the links but
	will not route traffic for other nodes.

multilayer perceptron

	A network composed of more than one layer of {neurons}, with
	some or all of the outputs of each layer connected to one or
	more of the inputs of another layer.  The first layer is
	called the input layer, the last one is the output layer, and
	in between there may be one or more hidden layers.

MultiLisp

	<language> A {parallel} extension of {Scheme} with explicit
	{concurrency}.  The form (future X) immediately returns a
	"{future}", and creates a {task} to evaluate X.  When the
	evaluation is complete, the future is resolved to be the
	value.

	["MultiLisp: A Language for Concurrent Symbolic Computation",
	R. Halstead, TOPLAS pp.501-538 (Oct 1985)].

	[Did MultiLisp use {PVM} as its intermediate language?]

	(1998-02-10)

multimedia

	<multimedia> Any collection of data including {text},
	{graphics}, {images}, {audio} and {video}, or any system for
	processing or interacting with such data.  Often also includes
	concepts from {hypertext}.

	This term was once almost synonymous with {CD-ROM} in the
	{personal computer} world because the large amounts of data
	involved were best supplied on CD-ROM.  {DVD}s and {broadband}
	{Internet} connections have now largely replaced CDs as the
	means of delivery.

	A "multimedia PC" typically includes software for playing DVD
	video, {5.1 audio} hardware and can display video on a
	television.  It may also include a television receiver and
	software to record broadcast television to disk and play it
	back.  The {Multimedia Personal Computer} (MPC) standard was
	an attempt to improve compatibility between such systems.

	{Usenet} newsgroup: {news:comp.multimedia}.

	(1994-12-02)

Multimedia and Hypermedia information coding Expert Group

	<multimedia, standard> (MHEG) is an {ISO} {standard} encoding
	for {multimedia} and {hypermedia} information, designed to
	facilitate use and interchange of such information in varied
	domains such as games, electronic publishing and medical
	applications.

	{MHEG Home (http://mheg.org/)}.

	(2002-12-30)

MultiMedia Compact Disc

	<storage> (MMCD) A {CD-ROM} {standard} for storing 4.7 GB of
	data including video.  MMCD is being developed by a large
	numer of computer manufacturers and is expected to be shipped
	in late 1996 or early 1997.  Initially it will be aimed at the
	consumer market, then perhaps in {CD-ROM} format for
	computers, and maybe later on erasble CD.

	(1995-11-23)

MultiMedia Extension

	{Matrix Math eXtensions}

Multimedia Integrated Conferencing for European Researchers

	<communications, project> (MICE) A project which aims to
	create a pilot (virtual) network between European researchers,
	and also to connect them to sites in the US.  The MICE system
	currently allows {multimedia} conferencing ({audio}, {video}
	and shared workspace) between conference rooms and
	{workstation}-based facilities, hardware and software,
	{packet-switched} networks and {ISDN}, using both {unicast}
	(point-to-point) and {multicast} (multi-point) {protocols}.

	{(http://www-mice.cs.ucl.ac.uk/mice)}.

	(1997-12-18)

Multimedia Internet Mail Extensions

	Called {Multipurpose Internet Mail Extensions} in the {RFC}.

	[Is this an old name for it?]

Multimedia Messaging Services

	<messaging> (MMS) A feature of some {mobile telephones} that
	allows them to send messages including text, sound, images and
	{video}.

	(2007-06-25)

Multimedia PC

	{multimedia}

Multimedia Personal Computer

	<multimedia> (MPC) A specification published by the Multimedia
	PC Marketing Council in 1990 to encourage the adoption of a
	standard {multimedia} computing platform.  In May 1993, the
	MPC Marketing Council published a new specification called
	{MPC Level 2 Specification} as an enhanced multimedia computer
	standard.  The original MPC specification, now also known as
	the {MPC Level 1 Specification}, continues in full effect.

	The appearance of the MPC or MPC2 certification mark on a
	computer system or upgrade kit indicates that the {hardware}
	meets the corresponding (Level 1 or Level 2) MPC Marketing
	Council specification. Software bearing the Multimedia PC mark
	has been designed to work on Multimedia PC licensed hardware.

	By establishing a standard platform, certifying hardware
	compliance and providing inter-operability between software
	and hardware for the consumer, the MPC Marketing Council is
	encouraging widespread use of multimedia applications and
	hardware.

	(1997-01-19)

multimedia system

	{multimedia}

multi-part key

	{compound key}

Multi-Pascal

	An extension of {Pascal-S} with {multiprocessing} features.
	Used in "The Art of Parallel Programming", Bruce P. Lester,
	P-H 1993.

multiple access

	{multiplexing}

Multiple Access with Colision Avoidance

	<networking> (MACA) A {protocol} used as a basis for the IEEE
	{802.11} {wireless LAN} {standards}.

	[Details?]

	(2004-01-14)

multiple boot

	{dual boot}

Multiple Document Interface

	<programming> (MDI) The ability of an {application program} to
	show windows giving views of more than one document at a time.

	The opposite is {Single Document Interface} (SDI).

	(1999-03-30)

multiple inheritance

	<programming> In {object-oriented programming}, the
	possibility that a {sub-class} may be derived from multiple
	{parent classes} which are themselves not derived one from the
	other.

	(1997-08-06)

Multiple Instruction Multiple Data

	{Multiple Instruction/Multiple Data}

Multiple Instruction/Multiple Data

	(MIMD) The classification under {Flynn's taxonomy} of a
	{parallel processor} where many {functional units} perform
	different operations on different data.  Examples would be a
	network of {workstations} or {transputers}.  Compare {SIMD}.

	(1994-11-08)

Multiple Master

	<text, tool, software> (Or "Multiple Master Font") A {font}
	that is a mixture of two or more other fonts.

	A Multiple Master font is a single font containing from two to
	sixteen master designs (the current implementation limit).  A
	weight factor specifies the contribution of each master design
	for the creation of a multiple master font {instance}.

	A Multiple Master instance is a single {interpolation} of a
	multiple master font as created by a user or application.

	{ATM Glossary
	(http://adobe.com/supportservice/devrelations/typeforum/glossary.html)}.

	{Useable fonts
	(http://susi.informatik.rwth-aachen.de/Mirror/winsite/win3/fonts_atm.html)}.

	(1998-05-31)

multiple perspective software development

	<programming> A decentralised approach to software development
	which, instead of adopting a monolithic representation and
	centralised control, models development in terms of
	collaboration between autonomous partial systems.

	Software development usually involves people with different
	goals, expertise, and backgrounds, and the use of a wide range
	of formalisms, tools, and environments.  As information is
	exchanged between participants, dependencies may be
	established between information created by them.  Multiple
	perspective software development may be mapped into the
	transaction model which can be used to prevent uncoordinated
	access to interdependent information causing inconsistency.

	[Fox Wai-Leung Poon]

	(1995-12-14)

multiple value

	<database> (MU) A one-to-many relationship between entries in
	a database, for example a person may have an address field
	which spanned multiple records (with different indexes).
	Multiple values are a non-{relational} technique.

	MUs have recently been made available in {DB2}, despite the
	product being so heavily influenced by {Codd's Laws} of
	{relational databases}.

	[Confirm, clarify?]

	(1995-10-30)

Multiple Virtual Storage

	<operating system> (MVS) Release 2 of {OS/VS2}, called MVS
	because it had multiple 16 MB virtual address spaces, in
	contrast to {SVS}.  MVS ran on the {IBM 390} series
	{mainframes}.  It became MVS/SP, then MVS/XA (with 31-bit
	addressing) and then MVS/ESA.

	MVS/Open Edition (MVS/OE), aimed at the growing {open systems}
	market, added {TCP/IP} and {Unix} support in an MVS address
	space, allowing users to run IBM, {CICS}-type applications,
	{batch} applications and Unix.

	MVS/ESA was repackaged as {OS/390} as a marketing exercise but
	it's basically the same thing.

	Version: 5.1.

	[Features?  Dates?]

	(1999-01-20)

multiplexer

	{multiplexor}

multiplexing

	1. <communications> (Or "multiple access") Combining several
	signals for transmission on some shared medium (e.g. a
	telephone wire).  The signals are combined at the transmitter
	by a multiplexor (a "mux") and split up at the receiver by a
	demultiplexor.  The communications channel may be shared
	between the independent signals in one of several different
	ways: {time division multiplexing}, {frequency division
	multiplexing}, or {code division multiplexing}.

	If the inputs take turns to use the output channel ({time
	division multiplexing}) then the output {bandwidth} need be no
	greater than the maximum bandwidth of any input.

	If many inputs may be active simultaneously then the output
	bandwidth must be at least as great as the total bandwidth of
	all simultaneously active inputs.  In this case the
	multiplexor is also known as a {concentrator}.

	(1995-03-02)

	2. <storage> Writing multiple {logical} copies of {data}
	{files}.  Placing the copies on totally separate {paths} to
	{mirror}ed {devices} greatly reduces the probability of all
	copies being corrupt.  Multiplexing differs from mirroring in
	that mirroring takes one data file and copies it to many
	devices, thus making it possible to copy a corrupt file many
	times.  Multiplexing writes the data files to many places
	simultaneously; there is no "original" data file.

	(2001-05-10)

multiplexor

	{multiplexing}

Multiplexor Channel

	(MPX) {mainframe} terminology for a slow peripheral device
	connection, e.g. for a {printer}, operator console, or card
	reader.

	(1997-06-30)

multiplex printer

	<hardware> A {duplex} circuit using {time-division
	multiplexing} to provide multiple duplex channels over one
	wire.

	For example, channels A, B, C, and D could be used for
	simultaneous transmission in both directions.

	(2000-04-02)

Multipop-68

	<operating system> An early {time-sharing} {operating system}
	developed in Edinburgh by Robin Popplestone and others.  It
	was inspired by {MIT}' {Project MAC}, via a "MiniMac" project
	which was aborted when it became obvious that {Elliot
	Brothers} Ltd. could not supply the necessary disk storage.
	Multipop was highly efficient in its use of machine resources
	to support {symbolic programming}, and effective - e.g. in
	supporting the development of the {Boyer-Moore theorem prover}
	and of Burstall and Darlington's transformation work.

	It was not good at supporting the user programs which were
	then the standard fare of computing, e.g. matrix inversion.
	This arose from the fact that while the {POP-2} compiler
	generated good code for function call (which is a lot of what
	layered systems like operating systems do) it did not generate
	efficient code for arithmetic or store access, because there
	was no way to police the generation of illegal objects
	statically.  ({Hindley-Milner type} checking did not exist).
	Indeed, since many OS features like file-access were performed
	by function-call (of a {closure}) rather than an OS call
	requiring a {context switch}, POP-2 actually gained
	performance.

	Multipop68 was efficient primarily because the one language,
	POP-2 served all purposes: it was the command language for the
	operating system as well as being the only available
	programming language.  Thus there was no need to swap in
	compilers etc.  All store management was accomplished
	uniformly by the {garbage collector}, as opposed to having
	store management for the OS and store management for each
	application.

	There was a substantial amount of {assembly language} in
	Multipop68.  This was primarily for interrupt handling, and it
	is difficult to handle this without a {real-time}
	garbage-collector.

	[Edited from a posting by Robin Popplestone].

	(1995-03-15)

multiprocessing

	{parallel processing}

multiprocessor

	{parallel processing}

multiprogramming

	{multitasking}

Multiprotocol Label Switching

	<networking> (MPLS) A {packet switching} {protocol} developed
	by the {IETF}.  Initially developed to improve switching
	speed, other benefits are now seen as being more important.

	MPLS adds a 32-{bit} label to each {packet} to improve
	{network} efficiency and to enable {routers} to direct
	{packets} along predefined routes in accordance with the
	required {quality of service}.  The label is added when the
	{packet} enters the MPLS {network}, and is based on an
	analysis of the {packet} {header}.  The label contains
	information on the route along which the {packet} may travel,
	and the {forwarding equivalence class} (FEC) of the {packet}.
	Packets with the same {FEC} are routed through the {network}
	in the same way.

	Routers make forwarding decisions based purely on the contents
	of the label.  This simplifies the work done by the {router},
	leading to an increase in speed.  At each {router}, the label
	is replaced with a new label, which tells the next {router}
	how to forward the {packet}.  The label is removed when the
	{packet} leaves the MPLS {network}.

	Modern {ASIC}-based routers can look up routes fast enough to
	make the speed increase less important.  However, MPLS still
	has some benefits.  The use of {FECs} allows {QoS} levels to
	be guaranteed, and MPLS allows {IP} {tunnels} to be created
	through a {network}, so that {VPNs} can be implemented without
	{encryption}.

	{MPLS Resource Center (http://mplsrc.com/)}.

	[RFC 3031]

	(2002-04-14)

Multipurpose Internet Mail Extensions

	<file format, multimedia> (MIME) A {standard} for multi-part,
	{multimedia} {electronic mail} messages and {World-Wide Web}
	{hypertext} documents on the {Internet}.  MIME provides the
	ability to transfer non-textual data, such as graphics,
	{audio} and fax.  It is defined in {RFC 2045}, {RFC 2046},
	{RFC 2047}, {RFC 2048}, {RFC 2049}, and {BCP0013}.  It uses
	{mimencode} to encode binary data into {base 64} using a
	subset of {ASCII}.

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/mail/mime-faq/top.html)}.

	(1995-04-04)

multiscan

	<hardware> A {monitor} that can synchronise to a variety of
	{horizontal scan rates} and {refresh rates}, allowing it to
	display images at different {resolutions}.

	(1996-02-09)

MultiScheme

	An implementation of {Multilisp} built on MIT's {C-Scheme},
	for the {BBN Butterfly}.

	["MultiScheme: A Paralled Processing System Based on MIT
	Scheme", J. Miller, TR-402, MIT LCS, Sept 1987].

	(1995-04-04)

Multistation Access Unit

	{Media Access Unit}

multisync

	<hardware> An {NEC} trademark term for {multiscan}.  As NEC
	was the first to manufacture multiscan {monitors} the term is
	often used interchangeably with multiscan.

	(1996-02-09)

Multisystem eXtention Interface Bus

	<hardware> (MXIbus) A high performance communication link that
	interconnects devices using round, flexible cable.  MXIbus is
	used between a {GPIB} card and a {VXI} cage.

	(1999-10-12)

multitasking

	<computer, parallel> (Or "multi-tasking", "multiprogramming",
	"concurrent processing", "concurrency", "process scheduling")
	A technique used in an {operating system} for sharing a single
	processor between several independent jobs.  The first
	multitasking operating systems were designed in the early
	1960s.

	Under "{cooperative multitasking}" the running task decides
	when to give up the CPU and under "{pre-emptive multitasking}"
	(probably more common) a system process called the
	"{scheduler}" suspends the currently running task after it has
	run for a fixed period known as a "{time-slice}".  In both
	cases the scheduler is responsible for selecting the next task
	to run and (re)starting it.

	The running task may relinquish control voluntarily even in a
	pre-emptive system if it is waiting for some external {event}.
	In either system a task may be suspended prematurely if a
	hardware {interrupt} occurs, especially if a higher priority
	task was waiting for this event and has therefore become
	runnable.

	The scheduling {algorithm} used by the scheduler determines
	which task will run next.  Some common examples are
	{round-robin} scheduling, {priority scheduling}, {shortest job
	first} and {guaranteed scheduling}.

	Multitasking introduces {overheads} because the processor
	spends some time in choosing the next job to run and in saving
	and restoring tasks' state, but it reduces the worst-case time
	from job submission to completion compared with a simple
	{batch} system where each job must finish before the next one
	starts.  Multitasking also means that while one task is
	waiting for some external event, the {CPU} to do useful work
	on other tasks.

	A multitasking operating system should provide some degree of
	protection of one task from another to prevent tasks from
	interacting in unexpected ways such as accidentally modifying
	the contents of each other's memory areas.

	The jobs in a multitasking system may belong to one or many
	users.  This is distinct from {parallel processing} where one
	user runs several tasks on several processors.  {Time-sharing}
	is almost synonymous but implies that there is more than one
	user.

	{Multithreading} is a kind of multitasking with low
	{overheads} and no protection of tasks from each other, all
	threads share the same memory.

	(1998-04-24)

Multi-tasking Program for Microcomputers

	<operating system> (MP/M) An {operating system}, written by
	{Gary Kildal}, very similar to {CP/M}, also written by Kildal.
	MP/M allowed {virtual terminals}, each of which could execute
	an {application} while another terminal was called to the
	screen with a special key combination.

	See also {Control Program for Microcomputers}.

	(1996-09-08)

multithreaded

	{multithreading}

multithreading

	<parallel> Sharing a single {CPU} between multiple tasks (or
	"threads") in a way designed to minimise the time required to
	switch threads.  This is accomplished by sharing as much as
	possible of the program execution environment between the
	different threads so that very little state needs to be saved
	and restored when changing thread.

	Multithreading differs from {multitasking} in that threads
	share more of their environment with each other than do tasks
	under multitasking.  Threads may be distinguished only by the
	value of their {program counters} and {stack pointers} while
	sharing a single {address space} and set of {global
	variables}.  There is thus very little protection of one
	thread from another, in contrast to multitasking.

	Multithreading can thus be used for very {fine-grain
	multitasking}, at the level of a few instructions, and so can hide
	{latency} by keeping the processor busy after one thread issues a
	long-latency instruction on which subsequent instructions in that
	thread depend.

	A {light-weight process} is somewhere between a thread and a
	full process.

	{TL0} is an example of a threaded machine language.
	{Dataflow} computation (E.g. {Id} and {SISAL}) is an extreme
	form of multithreading.

	(1997-12-23)

MultiTOS

	<operating system> (MTOS) A new version of {TOS}.  MultiTOS's
	main advantage was support for {pre-emptive multitasking} and
	{memory protection}.  It also supported the latest (and far
	superior) versions of {GEM}.  MultiTOS was supplied with the
	Falcon030 range of computers from {Atari}.

	It is a little known fact that the MultiTOS {kernel} was based
	heavily on the {freeware} OS {MinT} which was developed long
	before Atari got MultiTOS working.

	(1997-01-10)

multi-user

	<operating system> A term describing an {operating system} or
	{application program} that can be used by several people
	concurrently; opposite of {single-user}.  {Unix} is an example
	of a multi-user operating system, whereas most (but not all)
	versions of {Microsoft Windows} are intended to support only
	one user at a time.

	A multi-user system, by definition, supports {concurrent
	processing} of multiple tasks (once known as "{time-sharing}")
	or true {parallel processing} if it has multiple {CPUs}.

	While {batch processing} systems often ran jobs for serveral
	users concurrently, the term "multi-user" typically implies
	{interactive} access.

	Before {Ethernet} networks were commonplace, multi-user
	systems were accessed from a {terminal} (e.g. a {vt100})
	connected via a {serial line} (typically {RS-232}).  This
	arrangement was eventually superseded by networked {personal
	computers}, perhaps sharing files on a {file server}.  With
	the wide-spread availability of Internet connections, the idea
	of sharing centralised resources is becoming trendy again with
	{cloud computing} and {managed applications}, though this time
	it is the overhead of administering the system that is being
	shared rather than the cost of the hardware.

	In gaming, both on PCs and {games consoles}, the equivalent
	term is {multi-player}, though the first multi-player games
	(e.g. {ADVENT}) were on multi-user computers.

	(2009-11-23)

Multi-User Dimension

	<games> (MUD) (Or Multi-User Domain, originally "Multi-User
	Dungeon") A class of multi-player interactive game, accessible
	via the {Internet} or a {modem}.  A MUD is like a real-time
	{chat} forum with structure; it has multiple "locations" like
	an {adventure} game and may include combat, traps, puzzles,
	magic and a simple economic system.  A MUD where characters
	can build more structure onto the database that represents the
	existing world is sometimes known as a "{MUSH}".  Most MUDs
	allow you to log in as a guest to look around before you
	create your own character.

	Historically, MUDs (and their more recent progeny with names
	of MU- form) derive from a hack by Richard Bartle and Roy
	Trubshaw on the University of Essex's {DEC-10} in 1979.  It
	was a game similar to the classic {Colossal Cave} adventure,
	except that it allowed multiple people to play at the same
	time and interact with each other.  Descendants of that game
	still exist today and are sometimes generically called
	BartleMUDs.  There is a widespread myth that the name MUD was
	trademarked to the commercial MUD run by Bartle on {British
	Telecom} (the motto: "You haven't *lived* 'til you've *died*
	on MUD!"); however, this is false - Richard Bartle
	explicitly placed "MUD" in the {PD} in 1985.  BT was upset at
	this, as they had already printed trademark claims on some
	maps and posters, which were released and created the myth.

	Students on the European academic networks quickly improved on
	the MUD concept, spawning several new MUDs ({VAXMUD},
	{AberMUD}, {LPMUD}).  Many of these had associated
	{bulletin-board systems} for social interaction.  Because
	these had an image as "research" they often survived
	administrative hostility to {BBSs} in general.  This, together
	with the fact that {Usenet} feeds have been spotty and
	difficult to get in the UK, made the MUDs major foci of
	hackish social interaction there.

	AberMUD and other variants crossed the Atlantic around 1988
	and quickly gained popularity in the US; they became nuclei
	for large hacker communities with only loose ties to
	traditional hackerdom (some observers see parallels with the
	growth of {Usenet} in the early 1980s).  The second wave of
	MUDs (TinyMUD and variants) tended to emphasise social
	interaction, puzzles, and cooperative world-building as
	opposed to combat and competition.  In 1991, over 50% of MUD
	sites are of a third major variety, LPMUD, which synthesises
	the combat/puzzle aspects of AberMUD and older systems with
	the extensibility of TinyMud.  The trend toward greater
	programmability and flexibility will doubtless continue.

	The state of the art in MUD design is still moving very
	rapidly, with new simulation designs appearing (seemingly)
	every month.  There is now a move afoot to deprecate the term
	{MUD} itself, as newer designs exhibit an exploding variety of
	names corresponding to the different simulation styles being
	explored.

	{UMN MUD Gopher page
	(gopher://spinaltap.micro.umn.edu/11/fun/Games/MUDs/Links)}.

	{U Pennsylvania MUD Web page
	(http://cis.upenn.edu/~lwl/mudinfo.html)}.

	See also {bonk/oif}, {FOD}, {link-dead}, {mudhead}, {MOO},
	{MUCK}, {MUG}, {MUSE}, {chat}.

	{Usenet} newsgroups: {news:rec.games.mud.announce},
	{news:rec.games.mud.admin}, {news:rec.games.mud.diku},
	{news:rec.games.mud.lp}, {news:rec.games.mud.misc},
	{news:rec.games.mud.tiny}.

	(1994-08-10)

Multi-User Dungeon

	{Multi-User Dimension}

Multi-User Shared Hallucination

	<communications, application> (MUSH) A user-extendable {MUD}.
	A MUSH provides commands which the players can use to
	construct new rooms or make objects and puzzles for other
	players to explore.

	{(http://cis.upenn.edu/~lwl/muds.html)}.

	(1995-03-16)

Multi-Version Concurrency Control

	<database> (MVCC) An advanced technique for improving
	multi-user {database} performance.

	The main difference between multiversion and lock models is
	that in MVCC locks acquired for querying (reading) data don't
	conflict with locks acquired for writing data and so reading
	never blocks writing and writing never blocks reading.

	This technique is used in the {free software} database
	{PostgreSQL}.

	(1999-06-18)

multi-way branch

	{switch statement}

MuMath

	<mathematics, tool> A {symbolic mathematics} package for the
	{IBM PC}, written in {MuSimp}.

	(1995-04-12)

mumblage

	/muhm'bl*j/ The topic of one's mumbling (see {mumble}).  "All
	that mumblage" is used like "all that stuff" when it is not
	quite clear how the subject of discussion works, or like "all
	that crap" when "mumble" is being used as an implicit
	replacement for pejoratives.

	[{Jargon File}]

mumble

	1. Said when the correct response is too complicated to
	enunciate, or the speaker has not thought it out.  Often
	prefaces a longer answer, or indicates a general reluctance to
	get into a long discussion.  "Don't you think that we could
	improve LISP performance by using a hybrid reference-count
	transaction garbage collector, if the cache is big enough and
	there are some extra cache bits for the {microcode} to use?"
	"Well, mumble ... I'll have to think about it."

	2. Yet another {metasyntactic variable}, like {foo}.

	3. Sometimes used in "public" contexts on-line as a
	placefiller for things one is barred from giving details
	about.  For example, a poster with pre-released hardware in
	his machine might say "Yup, my machine now has an extra 16M of
	memory, thanks to the card I'm testing for Mumbleco."

	4. A conversational wild card used to designate something one
	doesn't want to bother spelling out, but which can be
	{glark}ed from context.  Compare {blurgle}.

	5. [XEROX PARC] A colloquialism used to suggest that further
	discussion would be fruitless.

	(1997-03-27)

mumble mode

	<jargon> The mode a program, piece of hardware, or other
	system is said to be in when it is still running and perhaps
	reacting to input and/or occasionally producing output
	(especially if it shouldn't), but in a way that appears wildly
	inappropriate to the task it is supposed to perform.

	Compare "{off the trolley}" and "{deep space}".

	(1997-03-27)

MUMPS

	<language> (Or "M") Massachusetts General Hospital Utility
	Multi-Programming System.

	A programming language with extensive tools for the support of
	{database management systems}.  MUMPS was originally used for
	medical records and is now widely used where multiple users
	access the same databases simultaneously, e.g. banks, stock
	exchanges, travel agencies, hospitals.

	Early MUMPS implementations for {PDP-11} and {IBM PC} were
	complete {operating systems}, as well as programming
	languages, but current-day implementations usually run under a
	normal host {operating system}.

	A MUMPS program hardly ever explicitly performs low-level
	operations such as opening a file - there are programming
	constructs in the language that will do so implicitly, and
	most MUMPS programmers are not even aware of the {operating
	system} activity that MUMPS performs.

	Syntactically MUMPS has only one data-type: strings.
	Semantically, the language has many data-types: text strings,
	{binary strings}, {floating point} values, {integer} values,
	{Boolean} values.  Interpretation of strings is done inside
	functions, or implicitly while applying mathematical
	{operators}.  Since many operations involve only moving data
	from one location to another, it is faster to just move
	uninterpreted strings.  Of course, when a value is used
	multiple times in the context of arithmetical operations,
	optimised implementations will typically save the numerical
	value of the string.

	MUMPS was designed for portability.  Currently, it is possible
	to share the same MUMPS database between radically different
	architectures, because all values are stored as text strings.
	The worst an implementation may have to do is swap pairs of
	bytes.  Such multi-CPU databases are actually in use, some
	offices share databases between {VAX}, {DEC Alpha}, {SUN},
	{IBM PC} and {HP} {workstations}.

	Versions of MUMPS are available on practically all {hardware},
	from the smallest ({IBM PC}, {Apple Macintosh}, {Acorn}
	{Archimedes}), to the largest {mainframe}.  MSM ({Micronetics
	Standard MUMPS}) runs on {IBM PC RT} and {R6000}; DSM (Digital
	Standard Mumps) on the {PDP-11}, {VAX}, {DEC Alpha}, and
	{Windows-NT}; {Datatree MUMPS} from {InterSystems} runs on
	{IBM PC}; and {MGlobal MUMPS} on the {Macintosh}.
	Multi-{platform} versions include {M/SQL}, available from
	{InterSystems}, {PFCS} <mumps@pfcs.com> and {MSM}.

	{Greystone Technologies}' GT/M runs on {VAX} and {DEC Alpha}.
	This is a compiler whereas the others are {interpreters}.
	{GT/SQL} is their {SQL} pre-processor.

	ISO standard 11756 (1991).  ANSI standard: "MUMPS Language
	Standard", X11.1 (1977, 1984, 1990, 1995?).

	The MUMPS User's Group was the {M Technology Association}.

	{Usenet} newsgroups: {news:comp.lang.mumps}.

	(2003-06-04)

munch

	To transform information in a serial fashion, often requiring
	large amounts of computation.  To trace down a data structure.
	Related to {crunch} and nearly synonymous with {grovel}, but
	connotes less pain.

	Often confused with {mung}.

	[{Jargon File}]

	(1995-01-10)

munching

	Exploration of security holes of someone else's computer for
	thrills, notoriety or to annoy the system manager.  Compare
	{cracker}.  See also {hacked off}.

	[{Jargon File}]

munching squares

	A {display hack} dating back to the {PDP-1} (ca. 1962,
	reportedly discovered by Jackson Wright), which employs a
	trivial computation (repeatedly plotting the graph Y = X XOR T
	for successive values of T - see {HAKMEM} items 146--148) to
	produce an impressive display of moving and growing squares
	that devour the screen.  The initial value of T is treated as
	a parameter, which, when well-chosen, can produce amazing
	effects.  Some of these, later (re)discovered on the {LISP
	Machine}, have been christened "munching triangles" (try AND
	for XOR and toggling points instead of plotting them),
	"munching w's", and "munching mazes".  More generally, suppose
	a graphics program produces an impressive and ever-changing
	display of some basic form, foo, on a display terminal, and
	does it using a relatively simple program; then the program
	(or the resulting display) is likely to be referred to as
	"munching foos".  [This is a good example of the use of the
	word {foo} as a {metasyntactic variable}.]

munchkin

	/muhnch'kin/ [Squeaky-voiced little people in L. Frank Baum's
	"The Wizard of Oz"] A teenage-or-younger micro enthusiast
	hacking BASIC or something else equally constricted.  A term
	of mild derision - munchkins are annoying but some grow up
	to be hackers after passing through a {larval stage}.  The
	term {urchin} is also used.  See also {wannabee}, {bitty box}.

	[{Jargon File}]

mundane

	<jargon> Someone outside some group that is implicit from the
	context, such as the computer industry or science fiction
	fandom.  The implication is that those in the group are
	special and those outside are just ordinary.

	(2000-07-22)

mung

	/muhng/ (MIT, 1960) Mash Until No Good.

	Sometime after that the derivation from the {recursive
	acronym} "Mung Until No Good" became standard.  1. To make
	changes to a file, especially large-scale and irrevocable
	changes.

	See {BLT}.

	2. To destroy, usually accidentally, occasionally maliciously.
	The system only mungs things maliciously; this is a
	consequence of {Finagle's Law}.

	See {scribble}, {mangle}, {trash}, {nuke}.

	Reports from {Usenet} suggest that the pronunciation /muhnj/
	is now usual in speech, but the spelling "mung" is still
	common in program comments (compare the widespread confusion
	over the proper spelling of {kluge}).

	3. The kind of beans of which the sprouts are used in Chinese
	food.  (That's their real name!  Mung beans!  Really!)

	Like many early hacker terms, this one seems to have
	originated at {TMRC}; it was already in use there in 1958.
	Peter Samson (compiler of the original TMRC lexicon) thinks it
	may originally have been onomatopoeic for the sound of a relay
	spring (contact) being twanged.  However, it is known that
	during the World Wars, "mung" was army slang for the ersatz
	creamed chipped beef better known as "SOS".

	[{Jargon File}]

	(1994-12-02)

munge

	/muhnj/ 1. A derogatory term meaning to imperfectly transform
	information.

	2. A comprehensive rewrite of a routine, data structure or the
	whole program.

	This term is often confused with {mung} and may derive from
	it, or possibly vice-versa.  One correspondent believes it
	derives from the french "mange" /monzh/, eat.

	[{Jargon File}]

	(2002-04-15)

MUP

	{Multiple Universal naming convention Provider}

MU-Prolog

	<language> {Prolog} with "wait" declarations for
	{coroutining}, developed by L. Naish of the {Univeristy of
	Melbourne} in 1982.

	["Negation and Control in Prolog", L. Naish, TR 85/12, U
	Melbourne (1985)].  See {NU-Prolog}.

	(1998-02-14)

Murphy's Law

	<humour> (Or "Sod's Law") The correct, *original* Murphy's Law
	reads: "If there are two or more ways to do something, and one
	of those ways can result in a catastrophe, then someone will
	do it."  This is a principle of defensive design, cited here
	because it is usually given in mutant forms less descriptive
	of the challenges of design for {lusers}.  For example, you
	don't make a two-pin plug symmetrical and then label it "THIS
	WAY UP"; if it matters which way it is plugged in, then you
	make the design asymmetrical (see also the anecdote under
	{magic smoke}).

	Edward A. Murphy, Jr. was one of the engineers on the
	rocket-sled experiments that were done by the US Air Force in
	1949 to test human acceleration tolerances (USAF project
	MX981).  One experiment involved a set of 16 accelerometers
	mounted to different parts of the subject's body.  There were
	two ways each sensor could be glued to its mount, and somebody
	methodically installed all 16 the wrong way around.  Murphy
	then made the original form of his pronouncement, which the
	test subject (Major John Paul Stapp) quoted at a news
	conference a few days later.

	Within months "Murphy's Law' had spread to various technical
	cultures connected to aerospace engineering.  Before too many
	years had gone by variants had passed into the popular
	imagination, changing as they went.  Most of these are
	variants on "Anything that can go wrong, will"; this is
	sometimes referred to as {Finagle's Law}.  The memetic drift
	apparent in these mutants clearly demonstrates Murphy's Law
	acting on itself!

	[{Jargon File}]

	(1998-02-14)

Muse

	<language> {OR-parallel} {logic programming}.

	[Details?]

	(1995-03-16)

museum

	{Museums on the Web
	(http://comlab.ox.ac.uk/archive/other/museums.html)}.
	{(http://galaxy.einet.net/GJ/museums.html)}.

	(1995-03-16)

MUSH

	1. <games> {Multi-User Shared Hallucination}.

	2. <messaging> {Mail Users' Shell}.

Music

	<language, music> A series of languages for musical sound
	synthesis from {Bell Labs}, 1960's.  Versions: Music I through
	Music V.

	["An Acoustical Compiler for Music and Psychological Stimuli",
	M.V. Mathews, Bell Sys Tech J 40 (1961)].

	[{Jargon File}]

	(1999-06-04)

Musical Instrument Digital Interface

	<music, hardware, protocol, file format> (MIDI /mi'-dee/,
	/mee'-dee/) A {hardware} specification and {protocol} used to
	communicate note and effect information between synthesisers,
	computers, music keyboards, controllers, and other electronic
	music devices.  It is basically a high-speed {serial}
	connection with separate connections for MIDI in, MIDI out and
	MIDI through (to allow devices to be chained).

	The basic unit of information is a "note on/off" event which
	includes a note number (pitch) and key velocity (loudness).
	There are many other message types for events such as pitch
	bend, patch changes and synthesizer-specific events for
	loading new patches etc.

	There is a file format for expressing MIDI data which is like
	a dump of data sent over a MIDI port.

	The {MIME} type "audio/midi" isn't actually registered so it
	should probably be "audio/x-midi".

	{Filename} {extension}: .mid or .midi

	{(http://update.uu.se/~vick/Coordinator.html)}.

	{Usenet} newsgroups: {news:comp.music.midi},
	{news:alt.music.midi}.

	(1998-06-27)

Musicam

	<audio, compression> A name for {MPEG-1 Layer 2} used for
	broadcasting.  Common data rates are 192, 224, and 256 kbps.

	(2001-12-13)

MuSimp

	<language> A {Lisp} variant used as the programming language
	for the {IBM PC} {symbolic mathematics} package {MuMath}.

	(1995-04-12)

MUSL

	{Manchester University Systems Language}

mutant

	<programming> {Microsoft}'s term for a {mutex} which is
	generally used in {user mode} but can also be used in {kernel
	mode}.  According to this terminology a mutex is only used in
	kernel mode.

	["Microsoft Windows NT Workstation Resource Kit"].

	(1997-07-30)

Mutation Testing

	<testing> A method to determine {test set thoroughness} by
	measuring the extent to which a test set can discriminate the
	program from slight variants of the program.

	(1996-12-27)

MuTeX

	<tool, music> An extension of {TeX} for typesetting music.

	{(ftp://nic.stolaf.edu/pub/mutex/MuTeX.tar.Z)}.

	(1995-02-06)

mutex

	<parallel> A {mutual exclusion} object that allows multiple
	{threads} to synchronise access to a shared resource.  A mutex
	has two states: locked and unlocked.  Once a mutex has been
	locked by a thread, other threads attempting to lock it will
	block.  When the locking thread unlocks (releases) the mutex,
	one of the blocked threads will acquire (lock) it and proceed.

	If multiple threads or tasks are blocked on a locked mutex
	object, the one to take it and proceed when it becomes
	available is determined by some type of scheduling algorithm.
	For example, in a priority based system, the highest priority
	blocked task will acquire the mutex and proceed.  Another
	common set-up is put blocked tasks on a first-in-first-out
	queue.

	See also: {priority inversion}

	(2002-03-14)

mutter

	To quietly enter a command not meant for the ears, eyes, or
	fingers of ordinary mortals.  Often used in "mutter an
	{incantation}".

	See also {wizard}.

	[{Jargon File}]

	(1995-02-06)

mutual exclusion

	<parallel, operating system> (Or "mutex", plural: "mutexes") A
	collection of techniques for sharing resources so that
	different uses do not conflict and cause unwanted
	interactions.  One of the most commonly used techniques for
	mutual exclusion is the {semaphore}.

	(1995-04-08)

mutually recursive

	{recursion}

mutual recursion

	{recursion}

mux

	{multiplexing}

mv

	<networking> The {country code} for Maldives.

	(1999-01-27)

MVC

	1. <programming> {Model View Controller}.

	2. <filename extension> The {filename extension} of {JPEG}
	images output by {Sony}'s {Mavica} range of {digital cameras}.

	(2002-05-28)

MVCC

	{Multi-Version Concurrency Control}

MVS

	{Multiple Virtual Storage}

MVS/ESA

	{Multiple Virtual Storage}

MVS/OE

	{Multiple Virtual Storage}

MVS/Open Edition

	{Multiple Virtual Storage}

MVS/SP

	{Multiple Virtual Storage}

MVS/XA

	{Multiple Virtual Storage}

mw

	<networking> The {country code} for Malawi.

	(1999-01-27)

MX

	{Mail Exchange Record}

mx

	<networking> The {country code} for Mexico.

	(1999-01-27)

MXI

	{Multisystem eXtention Interface Bus}

MXIbus

	{Multisystem eXtention Interface Bus}

MX Record

	{Mail Exchange Record}

my

	<networking> The {country code} for Malaysia.

	(1999-01-27)

My Favourite Toy Language

	<jargon, language> (MFTL) Describes a talk on a {programming
	language} design that is heavy on {syntax} (with lots of
	{BNF}), sometimes even talks about {semantics} (e.g. {type
	systems}), but rarely, if ever, has any content (see
	{content-free}).  More broadly applied to talks - even when
	the topic is not a programming language --- in which the
	subject matter is gone into in unnecessary and meticulous
	detail at the sacrifice of any conceptual content.  "Well, it
	was a typical MFTL talk".

	2. A language about which the developers are passionate (often
	to the point of prosyletic zeal) but no one else cares about.
	Applied to the language by those outside the originating
	group.  "He cornered me about type resolution in his MFTL."

	The first great goal in the mind of the designer of an MFTL is
	usually to write a compiler for it, then bootstrap the design
	away from contamination by lesser languages by writing a
	compiler for it in itself.  Thus, the standard put-down
	question at an MFTL talk is "Has it been used for anything
	besides its own compiler?".  On the other hand, a language
	that *cannot* be used to write its own compiler is beneath
	contempt.

	{Doug McIlroy} once proposed a test of the generality and
	utility of a language and the {operating system} under which
	it is compiled: "Is the output of a {Fortran} program
	acceptable as input to the Fortran compiler?"  In other words,
	can you write programs that write programs?  Alarming numbers
	of (language, OS) pairs fail this test, particularly when the
	language is Fortran.  Aficionados are quick to point out that
	{Unix} (even using Fortran) passes it handily.  That the test
	could ever be failed is only surprising to those who have had
	the good fortune to have worked only under modern systems
	which lack OS-supported and -imposed "file types".

	See {break-even point}, {toolsmith}.

	(1995-03-07)

MYOB

	<chat> mind your own business.

	(2006-11-22)

MySpace

	<World-Wide Web> A {social networking} web site based in
	Beverly Hills, California, USA.

	{MySpace home (http://myspace.com/)}.

	(2006-11-22)

MySQL

	<database> /mi: S Q L/ The most popular {open source}
	{relational database management system}.  MySQL is developed,
	distributed, and supported by {MySQL AB}.

	MySQL was named after co-founder Monty Widenius's daughter,
	My.  It was originally written as a backwards compatible
	replacement for {mSQL}.  It is written in {C}, {C++} and
	{yacc}.  It has become popular for use in {web applications}.

	MySQL supports a broad subset of {ANSI SQL 99} and features
	{views}, {stored procedures}, {triggers}, {cursors},
	replication, {internationalisation} and {localisation},
	partitioning, {ACID transactions}.  MySQL can be embedded in
	other systems or run on a {cluster} for fault tolerance.  A
	commercial version, MySQL Enterprise is available.

	Latest version: 6.0, as of 2009-05-11.

	{MySQL Home (http://mysql.com/)}.

	(2009-05-11)

MySQL AB

	<company> The Swedish company that developes, distributes and
	supports the {MySQL} {open source} {rdbms}.  MySQL AB is a
	subsidiary of {Sun Microsystems}, themselves acquired by
	{Oracle Corporation} on 2009-04-20.

	(2009-05-11)

MYSTIC

	<language> An early system on the {IBM 704}, {IBM 650}, {IBM
	1103} and 1103A.

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

	(1995-03-07)

MZ

	<standard, file format> The file signature of an {MS-DOS}
	executable (.{EXE}) file (0x4d 5a), always the first two
	{bytes} of the file.  It was reportedly invented by, and named
	after, a {Microsoft} programmer, Mark Zbikowski.

	In {Unix} systems, the string MZ is the {magic number} that
	identifies an MS-DOS EXE file.

	(2003-06-10)

mz

	<networking> The {country code} for Mozambique.

	(1999-01-27)

N

	<mathematics, programming, jargon> A {variable} typically used
	to stand for a number of objects.

	Used unqualified in speech it suggests a large, undetermined
	number, e.g. "There were N {bugs} in that {crock}!", or a
	number implied by context, e.g. "Let's get pizza for N + 1".

	[{Jargon File}]

	(2006-04-18)

N10

	Original codename of the {Intel} {i860} {microprocessor}.

na

	<networking> The {country code} for Namibia.

	(1999-01-27)

nadger

	<jargon> /nad'jr/ [Great Britain] To modify software or hardware
	in a hidden manner, generally so that it conforms better to some
	format.

	For instance, an {assembly code} {string} printing {subroutine}
	that takes its string {argument} from the instruction stream would
	be called like this:

		jsr print:"Hello world"

	The print routine would use the saved {instruction pointer} (its
	return address) to find its argument and would have to "nadger" it
	so that the processor returns to the instruction after the string.

	[{Jargon File}]

	(2014-07-09)

NAG

	1. {Numerical Algorithms Group}.

	2. The {Linux Network Administrators' Guide}.

Nagling Coalescence

	<networking, algorithm> An algorithm for improving {TCP/IP}
	network performance by combining small {packets} ("tinygrams")
	into larger ones, thus reducing the per-packet overhead.  The
	server transmits the packet either when it has reached a
	preset size or when it receives an acknowledgment of the
	previous packet.

	[Who was Nagling?]

	(1998-11-06)

nagware

	/nag'weir/ [{Usenet}] The variety of {shareware} that displays
	a large screen at the beginning or end reminding you to
	register, typically requiring some sort of keystroke to
	continue so that you can't use the software in batch mode.
	Compare {crippleware}.

	[{Jargon File}]

nailed to the wall

	[like a trophy] Said of a {bug} finally eliminated after
	protracted, and even heroic, effort.

nailing jelly

	{like nailing jelly to a tree}

naive

	Untutored in the perversities of some particular program or
	system; one who still tries to do things in an intuitive way,
	rather than the right way (in really good designs these
	coincide, but most designs aren't "really good" in the
	appropriate sense).  This trait is completely unrelated to
	general maturity or competence or even competence at any other
	specific program.  It is a sad commentary on the primitive
	state of computing that the natural opposite of this term is
	often claimed to be "experienced user" but is really more like
	"cynical user".

	(1994-11-29)

naive user

	A {luser}.  Tends to imply someone who is ignorant mainly
	owing to inexperience.  When this is applied to someone who
	*has* experience, there is a definite implication of
	stupidity.

	[{Jargon File}]

NAK

	{Negative Acknowledgement}

name capture

	<reduction> In {beta reduction}, when a term containing a
	{free} occurrence of a variable v is substituted into another
	term where v is bound the free v becomes spuriously bound or
	"captured".  E.g.

		(\ x . \ y . x y) y  -->  \ y . y y	(WRONG)

	This problem arises because two distinct variables have the
	same name.  The most common solution is to rename the bound
	variable using {alpha conversion}:

		(\ x . \ y' . x y') y --> \ y' . y y'

	Another solution is to use {de Bruijn notation}.

	Note that the argument expression, y, contained a {free
	variable}.  The whole expression above must therefore be
	notionally contained within the body of some {lambda
	abstraction} which binds y.  If we never reduce inside the
	body of a lambda abstraction (as in reduction to {weak head
	normal form}) then name capture cannot occur.

	(1995-03-14)

named

	<networking> Name Daemon.

	<networking> A {Unix} {background} process that converts
	{hostnames} to {Internet addresses} for the {TCP/IP}
	{protocol}.

	{Unix manual page}: named(8).

	See also {DNS}.

	(1995-03-28)

named pipe

	<operating system> A {Unix} {pipe} with a {filename} created
	using the "{mknod}" command.  Named pipes allow unrelated
	processes to communicate with each other whereas the normal
	(un-named) kind can only be used by processes which are parent
	and child or siblings ({fork}ed from the same parent).

	(1996-12-01)

name resolution

	<networking> The process of mapping a name into its
	corresponding address.

	The {Domain Name System} is the system which does name
	resolution on the {Internet}.

	(1997-12-15)

name service switching

	{Domain Name System}

namespace

	<systems> The {set} of all possible identifiers for some kind
	of object.  From the definition of a set, all names in a
	namespace are unique and there is some rule to determine
	whether a potential name is an element of the set.  For
	example, the {Domain Name System} includes rules for
	determining what constitutes a valid host name.

	(2008-12-09)

naming convention

	1. <programming> {variable naming convention}.

	2. <networking> {Universal Naming Convention}.

NaN

	{Not-a-Number}

NAND

	<logic> Not AND.  The {Boolean} function which is true unless
	both its arguments are true, the {logical complement} of
	{AND}:

	A NAND B = NOT (A AND B) = (NOT A) OR (NOT B)

	Its {truth table} is:

		A | B | A NAND B
		--+---+---------
		F | F |    T
		F | T |	   T
		T | F |    T
		T | T |    F

	NAND, like {NOR}, forms a complete set of {Boolean} functions
	on its own since it can be used to make NOT, AND, OR and any
	other Boolean function:

	NOT A = A NAND A

	A AND B = NOT (A NAND B)

	A OR B = (NOT A) NAND (NOT B)

	(1995-01-24)

nano-

	/nan'oh/ 1. <unit> A {prefix} meaning 10^-9 or one billionth.

	Used loosely to mean "small", e.g. {nanotechnology}, or
	(rarely), following "nanosecond", to mean a short time,
	e.g. "I'll be with you in a nano".

	[{Jargon File}]

	(2002-03-02)

nanoacre

	<unit, humour> /nan'oh-ay"kr/ A unit (about 2 mm square) of
	real estate on a {VLSI} {integrated circuit}.  VLSI nanoacres
	have costs in the same range as real acres once one allows for
	design and fabrication setup costs.

	[{Jargon File}]

	(1995-09-20)

nanobot

	<robotics> /nan"oh-bot/ A robot of microscopic proportions,
	presumably built by means of {nanotechnology}.  As yet, only
	used informally (and speculatively!).  Also called a
	"nanoagent".

	[{Jargon File}]

	(1999-07-19)

nanocomputer

	<architecture> /nan'oh-k*m-pyoo'tr/ A computer with
	molecular-sized switching elements.  Designs for mechanical
	nanocomputers which use single-molecule sliding rods for their
	logic have been proposed.  The controller for a {nanobot}
	would be a nanocomputer.

	Some nanocomputers can also be called {quantum computers}
	because quantum physics plays a major role in calculations.
	{Richard P. Feynman} is still cited today for his work in this
	area.

	["Feynman Lectures on Computation", Richard P. Feynman
	(Editor, Author), Robin W. Allen (Editor), Tony Hey (Author)]

	[{Jargon File}]

	(2008-01-14)

nanofortnight

	<jargon> ({Adelaide University}) 10^-9 fortnights or about 1.2
	{milliseconds}.  This unit was used largely by students doing
	undergraduate practicals.

	See {microfortnight}, {attoparsec}, and {micro-}.

	(1996-11-15)

nanometre

	<unit> 10^-9 metres; one thousand millionth part of a metre.

	The wavelength of visible light and dimensions in
	{nanotechnology} are typically measured in nanometres.

	(2003-05-02)

nanosecond

	<unit> (ns) 10^-9 seconds; one thousand millionth part of a
	second.

	This is the unit in which the fundamental logical operations
	of modern digital circuits are typically measured.  For
	example, a {microprocessor} with a {clock} frequency of 100
	{megahertz} will have a 10 nanosecond clock period.

	(1996-11-15)

nanotechnology

	/nan'-oh-tek-no"l*-jee/ Any fabrication technology in which
	objects are designed and built by the specification and
	placement of individual atoms or molecules or where at least
	one dimension is on a scale of {nanometers}.

	The first unequivocal nanofabrication experiments took place
	in 1990, for example with the deposition of individual xenon
	atoms on a nickel substrate to spell the logo of a certain
	very large computer company.

	{Richard P. Feynman's initial public discussion in 1959-12-29
	(http://www.zyvex.com/nanotech/feynman.html)} lead to the
	{Feynman Prize for Nanotechnology
	(http://www.foresight.org/FI/fi_spons.html)}.  Erik Drexler
	coined the term about 30 years later in his book "Engines of
	Creation", where he predicted that nanotechnology could give
	rise to replicating assemblers, permitting an exponential
	growth of productivity and personal wealth.

	See also {nanobot}.

	{(http://lucifer.com/~sean/Nano.html)}.

	(2008-01-14)

Napier

	Atkinson & Morrison, St Andrews U; design began ca. 1985,
	first implementation Napier88, 1988.  Based on {orthogonal
	persistence}, permits definition and manipulation of
	namespaces.

	["The Napier88 Reference Manual", R. Morrison et al, CS Depts
	St Andrews U and U Glasgow, Persistent Programming Research
	Report PPRR-77-89, 1989].

NAPLPS

	North American Presentation-Level-Protocol Syntax.  Format for
	sending text and graphics over communication lines.  Used by
	{videotex} systems.

NAPSS

	Numerical Analysis Problem Solving System.  Purdue ca. 1965.

	["NAPSS - A Numerical Analysis Problem Solving System",
	J.R. Rice et al, Proc ACM 21st Natl Conf, 1966.  Sammet 1969,
	p.299].

narrowband

	<networking> A communication channel with a low data rate.
	[More specific?]

	The term is sometimes used for an {Internet} connection via a
	{dial-up modem}, typically at 56 kbaud, in contrast to
	{broadband}.

	(2003-10-15)

narrowing

	{Unification} followed by {unfolding}.  The left-hand side of
	a {rule} is unified with some term, resulting in a set of
	variable bindings.  The term is then replaced by the
	right-hand side of the rule with values substituted for {bound
	variables}.

NAS

	<networking> 1. {Network Application Support}.

	2. <storage> {Network Attached Storage}.

	3. <company> {National Advanced Systems}.

	(2003-07-20)

nasal demons

	Recognised shorthand on the {Usenet} group comp.std.c for any
	unexpected behaviour of a {C} compiler on encountering an
	undefined construct.  During a discussion on that group in
	early 1992, a regular remarked "When the compiler encounters
	[a given undefined construct] it is legal for it to make
	demons fly out of your nose" (the implication is that the
	compiler may choose any arbitrarily bizarre way to interpret
	the code without violating the {ANSI C} {standard}).  Someone
	else followed up with a reference to "nasal demons", which
	quickly became established.

	[{Jargon File}]

NASI

	{NetWare Asynchronous Services Interface}

	{Novell NetWare}.

nastistical

	<humour, mathematics> A description of a method, thought by
	the programmer to be correct statistics, but which is not.  An
	example is averaging together several averages of samples of
	different sizes.  The correct way to do this is to average
	together all of the individual samples.

	(1997-02-12)

NASTRAN

	NAsa STRess ANalysis program.  A program for solving large
	stress analysis problems.

	["The NASTRAN User's Manual", SP-222(C3), NASA, 1976].

nastygram

	<networking> /nas'tee-gram/ 1. A {network} {packet} or
	{e-mail} message (the latter is also called a {letterbomb})
	that takes advantage of misfeatures or security holes on the
	target system to do untoward things.

	2. Disapproving e-mail, especially from a {net.god}, pursuant
	to a violation of {netiquette} or a complaint about failure to
	correct some mail- or news-transmission problem.  Compare
	{shitogram}, {mailbomb}.

	3. A status report from an unhappy, and probably picky,
	customer.  "What did Corporate say in today's nastygram?"

	4. [deprecated] An error reply by mail from a {daemon}; in
	particular, a {bounce message}.

	[{Jargon File}]

	(2004-02-17)

NAT

	{Network Address Translation}

Nathan Hale

	<character> An {asterisk} ("*", see also {splat}, {ASCII}).
	Notionally, from "I regret that I have only one asterisk for
	my country!" ("life to give" -> "ass to risk" -> "asterisk"),
	a misquote of the famous remark uttered by Nathan Hale just
	before he was hanged.  Hale was a (failed) spy for the rebels
	in the American War of Independence.

	[{Jargon File}]

	(1996-09-22)

National Advanced Systems

	<company> (NAS) A company, previously known as ITEL, that made
	{IBM} {plug-compatible} {hardware} and was bought by Hitachi.

	[Is this correct?  Dates?  US?]

	(2003-07-20)

National Bureau of Standards

	{National Institute of Standards and Technology}

National Center for Supercomputing Applications

	<body, World-Wide Web> (NCSA) The birthplace of the first
	version of the {Mosaic} {World-Wide Web} {browser}.

	Address: Urbana, IL, USA.

	{(http://ncsa.uiuc.edu/)}.

	[Summary?]

	(1994-10-27)

national characters

	<character> {Characters} with accents and other diacritical
	marks that are used in certain written languages (that are
	based on the Roman alphabet) but not in others, particularly
	not in English.  A standard list is {ISO} {Latin 1}.

	(1996-06-24)

National Database Language

	<database, standard> (NDL) A US {standard} for portability of
	{database} definitions and {application programs}.

	(1996-06-24)

National Information Infrastructure

	<project> (NII, or "{information superhighway}") Future
	integrated communications in the USA.  The NII will be based
	on a nationwide network of networks, and will supposedly allow
	all Americans to take advantage of the country's information,
	communication, and computing resources.

	The NII will include current and future public and private
	high-speed, interactive, {narrow-band} and {broadband}
	networks.  It is the satellite, terrestrial, and wireless
	communications systems that deliver content to homes,
	businesses, and other public and private institutions.  It is
	the information and content that flows over the infrastructure
	whether in the form of {databases}, the written word, a film,
	a piece of music, a sound recording, a picture, or computer
	software.  It is the computers, televisions, telephones,
	radios, and other products that people will employ to access
	the infrastructure.  It is the people who will provide,
	manage, and generate new information, and those that will help
	others do the same.  And it is the individual Americans who
	will use and benefit from the NII.  The NII is a term that
	encompasses all these components and captures the vision of a
	nationwide, invisible, seamless, dynamic web of transmission
	mechanisms, information appliances, content, and people.

	{(http://sunsite.unc.edu/nii/NII-Table-of-Contents.html)}.

	(1995-04-08)

National Information Services and Systems

	(NISS) An information archive service at {Bath University},
	intended primarily for UK eductional institutions.

	{(http://niss.ac.uk/)}.

	(1994-11-23)

National Institute of Standards and Technology

	<body> (NIST, formerly the National Bureau of Standards) A
	United States governmental body that helps develop
	{standards} including {FIPS}.

	{NIST Home (http://nist.gov/)}.

	(2003-06-04)

National Research and Education Network

	(NREN) The realisation of an interconnected gigabit computer
	network devoted to High Performance Computing and
	Communications.

	See also {HPPC}, {IINREN}.

	(1994-11-23)

National Science Foundation

	<body> (NSF) A US government agency that promotes the
	advancement of science by funding science researchers,
	scientific projects and infrastructure to improve the quality
	of scientific research.  The {NSFNET} is funded by NSF.

	{(http://nsf.org/)}.

	(1999-01-15)

National Science Foundation Network

	(NSFNET) A high speed hierarchical "network of networks" in
	the US, funded by the {National Science Foundation}.  At the
	highest level, it is a {backbone} network comprising 16 nodes
	connected to a 45Mb/s facility which spans the continental
	United States.  Attached to that are mid-level networks and
	attached to the mid-levels are campus and local networks.
	NSFNET also has connections out of the US to Canada, Mexico,
	Europe, and the Pacific Rim.  The NSFNET is part of the
	{Internet}.

	(1993-01-01)

National Semiconductor

	<company> A {semiconductor} manufacturer, responsible for the
	{SC/MP}, {National Semiconductor 16000} and {National
	Semiconductor 32000} series of {microprocessors}.

	(2005-06-09)

National Semiconductor 32000

	<processor> (NS32000) <processor> The first of a series of
	{microprocessors} from {National Semiconductor}.  The 320xx
	processors have an interface which allows {coprocessors} such
	as {FPUs} and {MMUs} to be attached in a chain.

	The 320xx was the predecessor of the {Swordfish} processor.

	[Details?]

	(1994-11-17)

National Software Reuse Directory

	(NSRD) A directory of reusable software in the {ASSET} system.

	(1995-02-03)

National Spatial Data Infrastructure

	(NSDI)

	{(http://fgdc.er.usgs.gov/nsdiover.html)}.

	[Summary?]

	(1995-03-06)

National Television Standards Committee

	<electronics> (NTSC) The body defining the television video
	signal format used in the USA.  The UK equivalent is {PAL}.

	Also, humorously, "Never Twice the Same Colour".

	(1997-07-17)

native compiler

	<programming, tool> A {compiler} which runs on the computer
	for which it is producing {machine code}, in contrast to a
	{cross-compiler}, which produces code for a different
	computer.

	(1995-11-04)

Native Language System

	(NLS) A set of interfaces specified by {X/Open} for developing
	applications to run in different {natural language}
	environments.

	(1995-02-03)

NATURAL

	An integrated {4GL} from {Software AG}, Germany.  The
	menu-driven version is SUPER/NATURAL.

	Natural 2 is a major upgrade to Natural 1.

	Version 2.1.7 in the MVS environment (June 1995, also
	available for Unix).

	Natural works with {DB2} and various other {databases}, but
	Natural and {Adabas} normally go together.  There are many
	products available in the "Natural" family, including
	SuperNatural, Natural for Windows, Entire Connection (enables
	up/downloading and interaction with {Excel}) and Esperant.

	(1995-11-14)

natural deduction

	<logic> A set of rules expressing how valid {proofs} may be
	constructed in {predicate logic}.

	In the traditional notation, a horizontal line separates
	{premises} (above) from {conclusions} (below).  Vertical
	ellipsis (dots) stand for a series of applications of the
	rules.  "T" is the constant "true" and "F" is the constant
	"false" (sometimes written with a {LaTeX} {\perp}).

	"^" is the AND ({conjunction}) operator, "v" is the inclusive
	OR ({disjunction}) operator and "/" is NOT (negation or
	{complement}, normally written with a {LaTeX} {\neg}).

	P, Q, P1, P2, etc. stand for {propositions} such as "Socrates
	was a man".  P[x] is a proposition possibly containing
	instances of the variable x, e.g. "x can fly".

	A proof (a sequence of applications of the rules) may be
	enclosed in a box.  A boxed proof produces conclusions that
	are only valid given the assumptions made inside the box,
	however, the proof demonstrates certain relationships which
	are valid outside the box.  For example, the box below
	labelled "Implication introduction" starts by assuming P,
	which need not be a true {proposition} so long as it can be
	used to derive Q.

	Truth introduction:

	 -
	 T

	(Truth is free).

	Binary AND introduction:

	 -----------
	 | .  | .  |
	 | .  | .  |
	 | Q1 | Q2 |
	 -----------
	   Q1 ^ Q2

	(If we can derive both Q1 and Q2 then Q1^Q2 is true).

	N-ary AND introduction:

	 ----------------
	 | .  | .. | .  |
	 | .  | .. | .  |
	 | Q1 | .. | Qn |
	 ----------------
	  Q1^..^Qi^..^Qn

	Other n-ary rules follow the binary versions similarly.

	Quantified AND introduction:

	 ---------
	 | x  .  |
	 |    .  |
	 |  Q[x] |
	 ---------
	 For all x . Q[x]

	(If we can prove Q for arbitrary x then Q is true for all x).

	Falsity elimination:

	 F
	 -
	 Q

	(Falsity opens the floodgates).

	OR elimination:

	   P1 v P2
	 -----------
	 | P1 | P2 |
	 | .  | .  |
	 | .  | .  |
	 | Q  | Q  |
	 -----------
	      Q

	(Given P1 v P2, if Q follows from both then Q is true).

	Exists elimination:

	 Exists x . P[x]
	 -----------
	 | x  P[x] |
	 |     .   |
	 |     .   |
	 |     Q   |
	 -----------
	       Q

	(If Q follows from P[x] for arbitrary x and such an x exists
	then Q is true).

	OR introduction 1:

	    P1
	 -------
	 P1 v P2

	(If P1 is true then P1 OR anything is true).

	OR introduction 2:

	    P2
	 -------
	 P1 v P2

	(If P2 is true then anything OR P2 is true).  Similar
	symmetries apply to ^ rules.

	Exists introduction:

	     P[a]
	 -------------
	 Exists x.P[x]

	(If P is true for "a" then it is true for all x).

	AND elimination 1:

	 P1 ^ P2
	 -------
	    P1

	(If P1 and P2 are true then P1 is true).

	For all elimination:

	 For all x . P[x]
	 ----------------
	       P[a]

	(If P is true for all x then it is true for "a").

	For all implication introduction:

	 -----------
	 | x  P[x] |
	 |     .   |
	 |     .   |
	 |    Q[x] |
	 -----------
	 For all x . P[x] -> Q[x]

	(If Q follows from P for arbitrary x then Q follows from P for
	all x).

	Implication introduction:

	 -----
	 | P |
	 | . |
	 | . |
	 | Q |
	 -----
	 P -> Q

	(If Q follows from P then P implies Q).

	NOT introduction:

	 -----
	 | P |
	 | . |
	 | . |
	 | F |
	 -----
	  / P

	(If falsity follows from P then P is false).

	NOT-NOT:

	 //P
	 ---
	  P

	(If it is not the case that P is not true then P is true).

	For all implies exists:

	 P[a]   For all x . P[x] -> Q[x]
	 -------------------------------
		      Q[a]

	(If P is true for given "a" and P implies Q for all x then Q
	is true for a).

	Implication elimination, modus ponens:

	 P   P -> Q
	 ----------
	      Q

	(If P and P implies Q then Q).

	NOT elimination, contradiction:

	 P   /P
	 ------
	   F

	(If P is true and P is not true then false is true).

	(1995-01-16)

Natural English

	Programming in normal, spoken English.  [Sammet 1969, p.768].

natural language

	<application> A language spoken or written by humans, as
	opposed to a language use to program or communicate with
	computers.

	Natural language understanding is one of the hardest problems
	of {artificial intelligence} due to the complexity,
	irregularity and diversity of human language and the
	philosophical problems of meaning.

	See also {Pleuk grammar development system}, {proof}, {MIT
	"Start" Project (http://start.csail.mit.edu/)}, {New York U
	(http://nyu.edu/pages/linguistics/ling.html)}.

	(2011-01-30)

Natural Language Information Analysis Method

	(NIAM, or Nijssen IAM) A method for {data model}ling.

	["Conceptual Scheme and Relational Database Design", Nijssen
	and Halpin, Prentice-Hall, 1989].

	(1995-03-31)

natural language processing

	<artificial intelligence> (NLP) Computer understanding,
	analysis, manipulation, and/or generation of {natural
	language}.

	This can refer to anything from fairly simple
	string-manipulation tasks like {stemming}, or building
	concordances of natural language texts, to higher-level
	{AI}-like tasks like processing user {queries} in {natural
	language}.

	(1997-09-12)

natural number

	<mathematics> An {integer} greater than or equal to zero.  A
	natural number is an {isomorphism class} of a finite set.

	(1995-03-25)

nature

	{has the X nature}

NAU

	<networking>

	1. {Network Addressable Unit}.

	2. {Network Access Unit}.

	(1997-05-10)

nav bar

	{navigation bar}

navigating

	{navigation}

navigation

	<World-Wide Web> Finding your way around a {web site}.
	Many sites have some kind of {navigation bar}.  One of
	the first {web browsers} was called {Netscape Navigator}.

	(2008-11-17)

navigation bar

	<World-Wide Web> (Always abbreviated "nav bar")
	On a {web site}, a prominently displayed set
	of {links} to important sections of the site.

	(2008-11-17)

Navigator

	{Netscape Navigator}

Nawk

	New AWK.  AT&T.  Pattern scanning and processing language.  An
	enhanced version of AWK, with dynamic regular expressions,
	additional built-ins and operators, and user-defined
	functions.

NB

	{C}

NBFCP

	{NetBIOS Frames Control Protocol}

NBS

	National Bureau of Standards: part of the US  Department of
	Commerce, now NIST.

NBT

	{NetBios over TCP/IP}

NC

	{Network Computer}

nc

	<networking> The {country code} for New Caledonia.

	(1999-01-27)

NCD

	{Network Computing Devices}

NCP

	<networking>

	1. {IBM} {Advanced Communication Function/Network Control
	Program}.

	2. {Novell, Inc.} {NetWare Core Protocol}.

	(1999-01-20)

NCR Corporation

	<company> Electronics company mainly active in the midrange
	server market.

	NCR was founded 1884 as National Cash Register Company.  It
	joint the computer industry in th 1950s.  In 1991 it was
	absorbed by {AT&T} (see {dinosaurs mating}), only to be spat
	out again in 1996.

	NCR {mainframes} of the 1960's are remembered by some for
	their hardware incompatibility with {IBM} mainframes: NCR
	punched round holes in their {punched cards} while IBM punched
	rectangular ones.  The codes and machines were not compatible
	and information could not be easily shared between NCR and IBM
	customers.

	{(http://ncr.com/)}.

	(1997-03-10)

NCRL

	{Software Writer's Language}

NCR Language

	{Software Writer's Language}

NCS

	Network Computing System: Apollo's RPC system used by DEC and
	Hewlett-Packard.The protocol has been adopted by {OSF}.

NCSA

	{National Center for Supercomputing Applications}

ND

	{natural deduction}

NDIS

	{Network Device Interface Specification}

NDL

	1. {National Database Language}.

	2. {Network Definition Language}.

NDS

	{Netware Directory Services}

ne

	<networking> The {country code} for Niger.

	(1999-01-27)

neat hack

	1. A clever technique.

	2. A brilliant practical joke, where neatness is correlated
	with cleverness, harmlessness, and surprise value.  Example:
	the Caltech Rose Bowl card display switch.  See also {hack}.

	[{Jargon File}]

neats vs. scruffies

	<artificial intelligence, jargon> The label used to refer to
	one of the continuing {holy wars} in {artificial intelligence}
	research.  This conflict tangles together two separate issues.
	One is the relationship between human reasoning and AI;
	"neats" tend to try to build systems that "reason" in some way
	identifiably similar to the way humans report themselves as
	doing, while "scruffies" profess not to care whether an
	{algorithm} resembles human reasoning in the least as long as
	it works.  More importantly, neats tend to believe that
	{logic} is king, while scruffies favour looser, more ad-hoc
	methods driven by empirical knowledge.  To a neat, scruffy
	methods appear promiscuous, successful only by accident and
	not productive of insights about how intelligence actually
	works; to a scruffy, neat methods appear to be hung up on
	formalism and irrelevant to the hard-to-capture "common sense"
	of living intelligences.

	(1994-11-29)

Nebula

	An early business-oriented language from {ICL} for the
	{Ferranti Orion} computer.

	["NEBULA - A Programming Language for Data Processing", T.G.
	Braunholtz et al, Computer J 4(3):197-201 (1961)].

	(1994-11-29)

NEC

	{Nippon Electronics Corporation}

NEC 780-C

	<processor> A copy of the {Zilog Z80A} {microprocessor},
	running at 3.25 MHz.

	The NEC 780-C was the processor used in the Sinclair {ZX-80}.

	(2002-03-11)

needs assessment

	<systems> A systematic process to acquire an accurate,
	thorough picture of a system's strengths and weaknesses, in
	order to improve it and meet existing and future challenges.

	(2007-11-24)

neep-neep

	/neep neep/ [onomatopoeic, from New York SF fandom] One who is
	fascinated by computers.  Less specific than {hacker}, as it
	need not imply more skill than is required to {boot} {games}
	on a {personal computer}.  The derived noun "neeping" applies
	specifically to the long conversations about computers that
	tend to develop in the corners at most SF-convention parties
	(the term "neepery" is also in wide use).  Fandom has a
	related proverb to the effect that "Hacking is a
	conversational black hole!".

	[{Jargon File}]

	(1994-11-29)

negation by failure

	An {extralogical} feature of {Prolog} and other {logic
	programming} languages in which failure of {unification} is
	treated as establishing the negation of a {relation}.  For
	example, if Ronald Reagan is not in our {database} and we
	asked if he was an American, Prolog would answer "no".

	(1994-11-29)

negative acknowledgement

	1. <character> (NAK) The {mnemonic} for {ASCII} character 21.

	Sometimes used as the response to receipt of a corrupted
	{packet} of information.

	Opposite of {acknowledgement}.

	2. <communications> (NAK) Any message transmitted to indicate
	that some data has been received incorrectly, for example it
	may have a {checksum} or message length error.  A NAK message
	allows the sender to distinguish a message which has been
	received in a corrupted state from one which is not received
	at all.

	An alternative is to use only {ACK} messages, in which case
	the non-receipt of an ACK after a certain time is counted as a
	NAK but gives no information about the {integrity} of the
	communications channel.

	See also {ACK}.

	(1997-01-07)

neighborhood bike code

	<humour, programming> A piece of {code} that every programmer at
	the company has touched.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	[{Urban Dictionary: neighborhood bike
	(http://www.urbandictionary.com/define.php?term=neighborhood+bike)}].

	(2014-07-12)

NELIAC

	Navy Electronics Laboratory International ALGOL Compiler.

	An {Algol} variant designed for numeric and logical
	computations and based on {IAL}.  1958-1959.

	Version: BC NELIAC.

	["Neliac - A Dialect of Algol", H.D. Huskey et al, CACM
	3(8):463-468 (Aug 1960)].

	(1994-11-29)

Neon

	Charles Duff.  An object-oriented extension of FORTH, for the
	Mac.  Inheritance, SANE {floating-point}, system classes and
	objects for Mac interfacing, overlays.  Sold by Kriya Systems,
	1985-1988.  Modified, made PD and renamed Yerk.

neophilia

	/nee"oh-fil"-ee-*/ The trait of being excited and pleased by
	novelty.  Common among most hackers, SF fans, and members of
	several other connected leading-edge subcultures, including
	the pro-technology "Whole Earth" wing of the ecology movement,
	space activists, many members of Mensa, and the
	Discordian/neo-pagan underground.  All these groups overlap
	heavily and (where evidence is available) seem to share
	characteristic hacker tropisms for science fiction, music,
	and oriental food.  The opposite tendency is "neophobia".

	[{Jargon File}]

	(1999-06-04)

Neptune

	A hypertext system for computer assisted software engineering,
	developed at Tektronix.

nerd

	<person> A generally pejortive term for any person who is
	socially inept and studious or demonstrates obsessive
	knowledge of something.  For example, a computer nerd.  The
	term first appeared in print in "If I Ran the Zoo", 1950 by
	Dr. Seuss.

	Compare: {geek}.

	(2010-02-28)

Nerd pride

	<body> The Nerd Pride movement, modeled on the Gay Pride
	movement, was started at {MIT} by Professors {Gerald Sussman}
	and {Hal Abelson}.  Nerd pride paraphernalia includes baseball
	hats, buttons and - of course - pocket protectors.

	"My idea is to present an image to children that it is good to
	be intellectual, and not to care about the peer pressures to
	be anti-intellectual.  I want every child to turn into a nerd
	- where that means someone who prefers studying and learning
	to competing for social dominance".

	-- {Gerald Sussman}, quoted by Katie Hafner, "New York Times",
	1994-08-29.

	(1994-11-11)

NERECO

	NEtwork REmote COmmunications.

	{CSP} with extensions to allow asymmetrical and {asynchronous}
	communications and fault handling.  It is implemented on a
	network of {Suns}.

	["A Concurrent Programming Support for Distributed Systems",
	G. Spezzano et al, in Computing Systems vol 3, pp.423-447, U
	Cal Press, 1990].

	(1994-11-11)

NESL

	<language> A parallel language loosely based on {ML},
	developed at {Carnegie Mellon University} by the {SCandAL}
	project.  NESL integrates parallel {algorithms}, {functional
	languages} and implementation techniques from the system's
	community.

	Nested {data parallelism} offers concise code that is easy to
	understand and debug and suits irregular data structures such
	as {trees}, {graphs} or {sparse matrices}.

	NESL's language based performance model is a formal way to
	calculate the "work" and "depth" of a program.  These measures
	can be related to running time on a {parallel computer}.

	NESL was designed to make parallel programming easy and
	portable.  Algorithms are typically more concise in NESL than
	in most other parallel programming languages and the code
	resembles high-level {pseudocode}.  This places more
	responsibility on the {compiler} and {run-time system} for
	achieving good efficiency.

	NESL currently runs on {Unix} {workstations}, the {IBM SP-2},
	the {Thinking Machines} {CM5}, the {Cray} {C90} and {J90}, the
	{MasPar} {MP2}, and the {Intel} {Paragon}.  Work is underway
	(April 1997) on a portable {MPI} {back end}, and an
	implementation for {symmetric multiprocessors}, such as the
	{SGI} {Power Challenge} or the {DEC} {AlphaServer}.

	Latest version: Release 3.1, as of 1995-11-01.

	{Home
	(http://cs.cmu.edu/afs/cs.cmu.edu/project/scandal/public/www/nesl.html)}.

	["NESL: A Nested Data-Parallel Language", Guy Blelloch,
	CMU-CS-93-129, April 1993].

	(1997-04-13)

nested class

	<Java> In {Java}, a {class} defined within an enclosing class
	definition.  A {static} nested class has no direct access to
	the members of its enclosing class whereas a non-static nested
	class, known as an "inner class", is associated with an
	instance of the enclosing class and an instance of the inner
	class has direct access to the members of its enclosing
	instance.

	{Java Tutorial
	(http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html)}.

	[Other languages?]

	(2006-11-19)

net

	1. <networking> {network}.

	2. <networking> {network, the}.

	3. <architecture> {neural network}.

	4. <networking> The {top-level domain} originally for
	networks, although it sees heavy use for {vanity domains} of
	all types.

	[{Jargon File}]

	(1999-01-26)

.NET

	{.NET framework}

net.-

	<convention, networking, messaging> /net dot/ A prefix used to
	describe people and events related to {Usenet} and the
	{Internet}.  The convention dates from the time before the
	{Great Renaming}, when most non-local {Usenet} newsgroups had
	names beginning "net.".  Includes {net.gods}, "net.goddesses"
	(various charismatic net.women with circles of on-line
	admirers), "net.lurkers" (see {lurker}), "net.person",
	"net.parties" (a synonym for {boink}), and many similar
	constructs.

	See also {net.police}.

	[{Jargon File}]

	(1995-03-21)

netaddress

	{Knowbot Information Service}

NetBEUI

	{NetBIOS} Extended User Interface.  The network transport
	{protocol} used by all of {Microsoft}'s network systems and
	{IBM}'s {LAN Server} based systems.

	NetBEUI is often confused with {NetBIOS}.  NetBIOS is the
	{applications programming interface} and NetBEUI is the
	transport protocol.

NetBIOS

	An {applications programming interface} (API) which activates
	{network} operations on {IBM PC} compatibles running under
	{Microsoft}'s {DOS}.  It is a set of network commands that the
	application program issues in order to transmit and receive
	data to another {host} on the network.  The commands are
	interpreted by a {network control program} or {network
	operating system} that is NetBIOS compatible.  See
	{NetBOLLIX}.

NetBIOS Frames Control Protocol

	<protocol> (NBFCP, NBF protocol, originally "NetBEUI
	protocol")

	[RFC 2097]

	[What is it?]

	(1997-05-10)

NetBios over TCP/IP

	<protocol> (NBT) A protocol supporting {NetBIOS} services in a
	{TCP/IP} environment, defined by {RFCs} 1001 and 1002.

	(1997-07-04)

NetBOLLIX

	["bollix": to bungle] {IBM}'s {NetBIOS}, an extremely
	{brain-damaged} {network} {protocol} that, like {Blue Glue},
	is used at commercial shops that don't know any better.

	[{Jargon File}]

NetBSD

	<operating system> An {open source} {Unix} {clone} that aims
	for {platform} independance by a clean separation between the
	{hardware} and the the {kernel}.  It has been ported to many
	platforms from {embedded systems} to 64-bit computers.

	{NetBSD Home (http://netbsd.org/)}.

	(2004-10-08)

netbui

	<spelling> It's spelled "{NetBEUI}".

	(1996-12-23)

netburp

	<networking, chat> (Or "netsplit") When {netlag} gets really
	bad, and delays between {IRC} servers exceed a certain
	threshhold, the network effectively becomes partitioned for a
	period of time, and large numbers of people seem to be signing
	off at the same time and then signing back on again when
	things get better.  An instance of this is called a "netburp"
	(or, sometimes, {netsplit}).

	[{Jargon File}]

	(1996-06-04)

netCDF

	Network Common Data Form.  A machine-independent,
	self-describing file format for scientific data.

Netcom On-line Communication Services, Inc.

	<company> A company providing {Internet} access on {Sun
	Microsystems} computers running {Unix}.  Customers either log
	in to a {shell} running on a Netcom computer, or rent a {SLIP}
	or {PPP} connection and run their own net software.  Most
	hosts are in San Jose, California, but they have {Points of
	Presence} all over the USA.

	{(http://netcom.com/)}.

	Address: 3031 Tisch Way San Jose, CA 95128, USA.

	Telephone: +1 (408) 983 5950, +1 800 353 6600.  Fax: +1 (408)
	241 9145.

	(1996-04-23)

netdead

	<jargon, chat> The state of someone who signs off {IRC},
	perhaps during a {netburp}, and doesn't sign back on until
	later.  In the interim, he is "dead to the net".

	[{Jargon File}]

	(2007-09-02)

Netfind

	A research prototype that provides a simple {Internet} "{white
	pages}" user directory.  It runs on {SunOS} 4.0 or more recent
	systems that are connected to the Internet (however, you can
	run Netfind on one server at your site, and let the others use
	Netfind on that server).  Given the name of a person on the
	Internet and a rough description of where the person works,
	Netfind attempts to locate telephone and electronic mailbox
	information about the person.

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

.NET framework

	<language, tool, library> A software development and execution
	environment designed by {Microsoft} as a direct competitor to
	{Java}.  .NET framework should not be confused with
	{Microsoft}'s past labeling of a line of products as ".NET".

	.NET simplifies interoperability between languages and
	machines on {Microsoft Windows} especially, although not
	specifically, for web based services.  Essentially the .NET
	framework consists of the CLR (common language runtime), CTS
	(common type system), CLS (common language system), and IL
	(intermediate language).

	The CLR consists of a number of resources provided to .NET
	applications such as the security model, type system and .NET
	classes (c.f. Java classes).  The CTS is the range of all
	types that .NET understands although it is not necessarily the
	case that a .NET program will understand all of these types.
	The CLS however is a subset of the CTS which all .NET
	languages must support: any two .NET languages can
	interoperate via. the CLS.

	All .NET languages are at some stage compiled into the IL, a
	{byte-code} like language.  However unlike a standard Java run
	time environment, the IL is converted to {machine code} either
	upon installation of the software or at {run time} by a {just
	in time compiler} (JIT).  The IL is not interpretted.

	.NET's main weakness is that Microsoft have ignored the {Unix}
	and {mainframe} environments, effectively ruling .NET out of
	use in many {enterprise} environments.  However there is
	{Mono} - an {open source} .NET framework for Unix}.

	.NET was based on research by Steven Lucco on a product called
	{OmniVM}, sold by {Colusa software}.  Attracted to OmniVM
	since VB and C/C++ environments were already available,
	Microsoft bought Colusa in 1996.  Microsoft provides .NET
	compilers for {C#}, {C++}, {VB}, and {Jscript}.

	(2003-09-24)

net.god

	<person> /net god/ Accolade referring to anyone who satisfies
	some combination of the following conditions: has been visible
	on {Usenet} for more than 5 years, ran one of the original
	backbone sites, moderated an important newsgroup, wrote news
	software, or knows Gene, Mark, Rick, Mel, Henry, Chuq, and
	Greg personally.

	Net.goddesses such as Rissa or the Slime Sisters have (so far)
	been distinguished more by personality than by authority.

	See {demigod}.

	[{Jargon File}]

	(1996-01-07)

NetHack

	<games> /net'hak/ (Unix) A dungeon game similar to {rogue} but
	more elaborate, distributed in {C} source over {Usenet} and
	very popular at {Unix} sites and on {PC}-class machines
	(nethack is probably the most widely distributed of the
	{freeware} dungeon games).  The earliest versions, written by
	Jay Fenlason and later considerably enhanced by Andries
	Brouwer, were simply called "hack".  The name changed when
	maintenance was taken over by a group of hackers originally
	organised by Mike Stephenson.

	Version: NetHack 3.2 (Apr 1996?).

	{(http://win.tue.nl/games/roguelike/nethack/)}.

	{FAQ
	(ftp://rtfm.mit.edu/pub/usenet/rec.games.roguelike.nethack/)}.

	{FTP U Penn (ftp://linc.cis.upenn.edu/pub/NH3.1/)} No large
	downloads between 9:00 and 18:00 local or the directory will
	be removed.

	{Usenet} newsgroup: {news:rec.games.roguelike.nethack}.

	E-mail: <nethack-bugs@linc.cis.upenn.edu>.

	(1996-06-13)

netiquette

	<convention, networking> /net'ee-ket/ or /net'i-ket/ Network
	etiquette.

	The conventions of politeness recognised on {Usenet} and in
	{mailing lists}, such as not (cross-)posting to inappropriate
	groups and refraining from commercial advertising outside the
	biz groups.

	The most important rule of netiquette is "Think before you
	post".  If what you intend to post will not make a positive
	contribution to the newsgroup and be of interest to several
	readers, don't post it!  Personal messages to one or two
	individuals should not be posted to newsgroups, use private
	e-mail instead.

	When following up an article, quote the minimum necessary to
	give some context to your reply and be careful to attribute
	the quote to the right person.  If the article you are
	responding to was posted to several groups, edit the
	distribution ("Newsgroups:") header to contain only those
	groups which are appropriate to your reply, especially if the
	original message was posted to one or more inappropriate
	groups in the first place.

	Re-read and edit your posting carefully before you post.
	Check the spelling and grammar.  Keep your lines to less than
	70 characters.  Don't post test messages (except to test
	groups) - wait until you have something to say.  When posting
	humorous or sarcastic comments, it is conventional to append
	a {smiley}, but don't overuse them.

	Before asking a question, read the messages already in the
	group and read the group's {FAQ} if it has one.  When you do
	post a question, follow it with "please reply by mail and I
	will post a summary if requested" and make sure you DO post a
	summary if requested, or if only a few people were interested,
	send them a summary by mail.  This avoids umpteen people
	posting the same answer to the group and umpteen others
	posting "me too"s.

	If you believe someone has violated netiquette, send them a
	message by __private e-mail__, DO NOT post a follow-up to the
	news.  And be polite, they may not realise their mistake, they
	might be a beginner or may not even have been responsible for
	the "crime" - their account may have been used by someone else
	or their address forged.

	Be proud of your postings but don't post just to see your name
	in pixels.  Remember: your future employer may be reading.

	{Netiquette for Usenet Site Administrators
	(http://ancho.ucs.indiana.edu/FAQ/USAGN/index.html)}.

	{"net.acceptable"
	(http://marketing.tenagra.com/net-acceptable.html)}.

	[{Jargon File}]

	(1999-10-18)

NETL

	A {semantic network} language, for {connectionist}
	architectures.

	["NETL: A System for Representing and Using Real-World Data",
	S.E. Fahlman, MIT Press 1979].

	(1995-01-05)

netlag

	<networking> A condition that occurs when the delays in the
	{IRC} network, a {MUD} connection, a {telnet} connection, or
	any other networked interactive system, become severe enough
	that servers briefly lose and then reestablish contact,
	causing messages to be delivered in bursts, often with delays
	of up to a minute.  (Note that this term has nothing to do
	with mainstream "jet lag").

	[{Jargon File}]

	(1996-06-21)

NetLingo

	<computing, reference> An on-line dictionary of more than 3000
	terms, started in 1995 and updated monthly.  NetLingo contains
	simple explanations and comprehensive coverage, including
	{chat} acronyms and {smilies}.  It is also available in {dead
	tree} form.

	{NetLingo Home (http://netlingo.com/)}.

	(2004-09-12)

netload

	A program to down-load {Excelan} {TCP/IP} software.  The
	host's {Ethernet} address can be specified as

		netload -e aabbccddeeff

	where aabbccddeeff is a 12 {hexadecimal} digit number.

	(1994-12-14)

Netmarq Limited

	A small technical consultancy specialising in the testing of
	network components.  They do performance tests of network
	interface cards, {routers}, {hubs}, {file servers}, etc.  To
	reflect the marketplace, most tests are carried out in a
	{Novell NetWare} environment, although they can equally well
	use {Lan server}, {Banyan Vines}, {NT Advanced Server}, {IBM
	PC} Support.  They claim to be Europe's leading such test lab
	and compete with US Labs such as {LanQuest} and {NSTL}.  They
	also do some network design, installation, support, and
	troubleshooting.

	E-mail: <netmarq@cix.compulink.co.uk>.

	(1994-12-14)

netmask

	<networking> A 32-bit {bit mask} which shows how an {Internet
	address} is to be divided into network, {subnet} and host
	parts.  The netmask has ones in the bit positions in the 32-bit address which are to be used for the network and subnet
	parts, and zeros for the host part.  The mask should contain
	at least the standard network portion (as determined by the
	address's {class}), and the subnet field should be contiguous
	with the network portion.

	If a `+' (plus sign) is given for the netmask value, then the
	network number is looked up in the {NIS} netmasks.byaddr map
	(or in the /etc/netmasks) file if not running the NIS service.

	{Unix manual page}: ifconfig(8).

	(1995-01-30)

NetNanny

	<networking> A small program for children to block access to
	certain sites.

	[Company?  Address?]

	(1997-02-12)

netnews

	/net'n[y]ooz/ 1. The software that makes {Usenet} run.

	2. The content of {Usenet}.  "I read netnews right after my
	mail most mornings."

	[{Jargon File}]

	(1994-12-14)

net.personality

	Someone who has made a name for him or herself on {Usenet},
	through either longevity or attention-getting posts, but
	doesn't meet the other requirements of {net.god}hood.

	[{Jargon File}]

netpipes

	<networking> A package by Robert Forsman <thoth@cis.ufl.edu>
	to manipulate {BSD Unix} {TCP/IP} stream {sockets}.  The
	netpipes package makes TCP/IP streams usable in {shell
	scripts}.  It can also simplify {client-server} code by
	allowing the programmer to skip all the tedious programming
	related to sockets and concentrate on writing a
	filter/service.

	{(http://cis.ufl.edu/~thoth/netpipes/)}.

	(1996-10-03)

net.police

	/net-p*-lees'/ (Or "net police", "net.cops") Those {Usenet}
	readers who feel it is their responsibility to pounce on and
	{flame} any posting which they regard as offensive or in
	violation of their understanding of {netiquette}.  Generally
	used sarcastically or pejoratively.

	See also {net.-}, {code police}.

	[{Jargon File}]

netquette

	<spelling> It's spelled "{netiquette}".

	(1999-09-30)

Netrek

	<games> A 16-player graphical {real-time} battle simulation
	with a Star Trek theme.  The game is divided into two teams of
	eight (or less), who dogfight each other and attempt to
	conquer each other's planets.  There are several different
	types of ships, from fast, fragile scouts up to big, slow
	battleships; this allows a great deal of variance in play
	styles.  Netrek is played using a {client} to connect to one
	of several Netrek {servers} on the {Internet}.  There is a
	metaserver which distributes details of games in progress on
	other servers.

	See also {ogg}.

	[Dates?  Versions?  Authors?  Addresses?]

	(1998-02-01)

netrock

	/net'rok/ (IBM) A {flame}; used especially on {VNET}, {IBM}'s
	internal corporate network.

	[{Jargon File}]

	(1994-11-18)

Netscape

	1. {Netscape Navigator}.

	2. {Netscape Communications Corporation}.

Netscape Communications Corporation

	<company> (Formlerly "Mosaic Communications Corporation", MCC)
	A company set up in April 1994 by {Dr. James H. Clark} and
	{Marc Andreessen} <marca@netcom.com> (creator of the {NCSA}
	{Mosaic} program) to market their version of {Mosaic}, known
	as {Netscape} or {Mozilla}.

	They {changed their name
	(http://netscape.com/newsref/pr/newsrelease5.html)} on
	1994-11-14 to reflect their other activities rather than just
	their browser based on {Mosaic}.

	{(http://netscape.com/)}.

	Address: 501 East Middlefield Road, Mountain View, CA 94043,
	USA.

	Telephone: +1 (415) 254 1900.  Fax: +1 (415) 254 2601.

	(2000-02-08)

Netscape Navigator

	<networking, tool, product> /Mozilla/ (Often called just
	"Netscape") A {World-Wide Web} {browser} from {Netscape
	Communications Corporation}.  The first {beta-test} version
	was released free to the {Internet} on 13 October 1994.
	Netscape evolved from {NCSA} {Mosaic} (with which it shares at
	least one author) and runs on the {X Window System} under
	various versions of {Unix}, on {Microsoft Windows} and on the
	{Apple Macintosh}.

	It features integrated support for sending {electronic mail}
	and reading {Usenet} news, as well as {RSA encryption} to
	allow secure communications for commercial applications such
	as exchanging credit card numbers with net retailers.  It
	provides multiple simultaneous interruptible text and image
	loading; native inline {JPEG} image display; display and
	interaction with documents as they load; multiple independent
	windows.  Netscape was designed with 14.4 kbps modem links in
	mind.

	You can download Netscape Navigator for evaluation, or for
	unlimited use in academic or not-for-profit environments.  You
	can also pay for it.

	Version: 1.0N.

	{(ftp://ftp.netscape.com/netscape/)}.

	E-mail: <sales@netscape.com>.

	(1995-01-25)

Netscape Public License

	{open source license}

netsplit

	{netburp}

netstat

	<networking> (Or "rstat") A {Unix} command to give statistics
	about the {network} including {socket} status, interfaces that
	have been auto-configured, memory statistics, {routing}
	tables.

	{Unix manual pages}: rstat(3), netstat(8).

	(1996-06-04)

netter

	1. Loosely, anyone with a {network address}.

	2. More specifically, a {Usenet} regular.  Most often found in
	the plural.  "If you post *that* in a technical group, you're
	going to be flamed by angry netters for the rest of time!"

	[{Jargon File}]

NetWare

	{Novell NetWare}

NetWare Core Protocol

	<networking> (NCP) A {Novell} trademark for the {protocol}
	used to access {Novell NetWare} file and print service
	functions.  It uses an underlying {IPX} or {IP} {transport
	protocol}.

	(1995-11-11)

Netware Directory Services

	<networking> (NDS) {Novell, Inc.}'s {directory services} for
	{Netware}, {Windows NT}, and {Unix}.  The NDS directory
	represents each {network} resource (user, hardware, or
	application) as an {object} of a certain {class}, where each
	class has certain properties.  For example, User and Print
	Server are object classes and a user has over 80 properties
	such as name, login, password, department, and title.

	The directory is hierarchical, divided into branches by {rules
	of containment}.  A given object can only belong to a given
	container (or branch).  The rules governing classes,
	properties and, {rules of containment} are known as the
	{schema}.

	(2001-03-20)

Netware Input/Output Subsystem

	<operating system, networking> (NIOS) The lowest {layer} in
	the {Novell NetWare} {client} architecture.  NIOS is the
	interface layer between the client operating system and the
	32-bit client services provided by NetWare.

	{(http://developer.novell.com/research/appnotes/1996/november/01/04.htm)}.

	(1999-04-24)

NetWare Link State Protocol

	<networking, protocol> (NLSP) A companion {protocol} to {IPX}
	for exchange of {routing} information in a {Novell}
	{network}.  NLSP supersedes Novell's {RIP}.

	(1997-03-04)

network

	<networking> Hardware and software data communication systems.

	The {OSI} seven layer model attempts to provide a way of
	partitioning any computer network into independent modules
	from the lowest (physical) layer to the highest (application)
	layer.  Many different specifications exist at each of these
	layers.

	Networks are often also classified according to their
	geographical extent: {local area network} (LAN), {metropolitan
	area network} (MAN), {wide area network} (WAN) and also
	according to the {protocols} used.

	See {BITNET}, {Ethernet}, {Internet}, {Novell}, {PSTN},
	{network, the}.

	[Tanenbaum, A., "Computer Networks; 2nd ed.", Prentice Hall,
	Englewood Cliffs, NJ, 1989.]

	(1995-03-10)

network address

	<networking> 1. The network portion of an {IP address}.  For a
	{class A} network, the network address is the first {byte} of
	the IP address.  For a {class B network}, the network address
	is the first two bytes of the IP address.  For a {class C
	network}, the network address is the first three bytes of the
	IP address.  In each case, the remainder is the {host
	address}.  In the {Internet}, assigned network addresses are
	globally unique.

	See also {subnet address}, {Internet Registry}.

	2. (Or "net address") An {electronic mail} address on {the
	network}.  In the 1980s this might have been a {bang path} but
	now (1997) it is nearly always a {domain address}.  Such an
	address is essential if one wants to be to be taken seriously
	by {hackers}; in particular, persons or organisations that
	claim to understand, work with, sell to, or recruit from among
	hackers but *don't* display net addresses are quietly presumed
	to be clueless poseurs and mentally {flush}ed.

	Hackers often put their net addresses on their business cards
	and wear them prominently in contexts where they expect to
	meet other hackers face-to-face (e.g. {science-fiction
	fandom}).  This is mostly functional, but is also a signal
	that one identifies with hackerdom (like lodge pins among
	Masons or tie-dyed T-shirts among Grateful Dead fans).  Net
	addresses are often used in e-mail text as a more concise
	substitute for personal names; indeed, hackers may come to
	know each other quite well by network names without ever
	learning each others' real monikers.

	See also {sitename}, {domainist}.

	[{Jargon File}]

	(1997-05-10)

Network Addressable Unit

	<networking> (NAU) The {SNA} term for an {addressable entity}.
	Examples include {PUs}, {LUs}, and {SSCPs}.

	(1997-05-10)

Network Address Translation

	<networking> (NAT, or Network Address Translator, Virtual LAN)
	A technique in which a {router} or {firewall} rewrites the
	source and/or destination {Internet addresses} in a packet as
	it passes through, typically to allow multiple {hosts} to
	connect to the {Internet} via a single external {IP address}.
	NAT keeps track of outbound connections and distributes
	incoming packets to the correct machine.

	NAT is an alternative to adopting {IPv6} (IPng).  It allows
	the same IP addresses (10.x.x.x is the conventional range) to
	be used on many private local networks while requiring only
	one of the increasingly scarce public addresses to be
	allocated to each private network.

	NAT does not however allow an external service to initiate a
	TCP connection to an internal host, nor does it support
	stateless protocols based on UDP well unless the router
	software has extensions to support each specific protocol.

	(2005-09-18)

Network Address Translator

	{Network Address Translation}

Network Administrator

	<job> A person who manages a communications {network} within
	an organisation.  Responsibilities include network {security},
	installing new applications, distributing software upgrades,
	monitoring daily activity, enforcing licensing agreements,
	developing a {storage management} program and providing for
	routine {backups}.

	(2004-03-20)

Network Application Support

	<networking> (NAS) {DEC}'s approach to {applications
	integration} across a {distributed} multivendor environment.

	(2003-06-30)

Network Attached Storage

	<networking, storage> (NAS) {Fixed disks}, {RAID} arrays, and
	{magnetic tape} drives connected directly to a {Storage Area
	Network} (SAN) or other direct network connection.  This is in
	contrast to a {file server} where the peripherals are
	connected to the network via a computer (the server).

	(2003-06-30)

network byte order

	<networking> The order in which the {bytes} of a multi-byte
	number are transmitted on a network - most significant byte
	first (as in "{big-endian}" storage).  This may or may not
	match the order in which numbers are normally stored in memory
	for a particular processor.

	{(http://sun.com/realitycheck/headsup980803.html)}.
	{(http://hp.com/unixwork/whatsnew/fyi/bissue/aug98/article3.htm)}.

	(1998-11-15)

network card

	{network interface controller}

network closet

	<networking> The place where {network} {hardware} (other than
	cabling) is installed.  The space should be used primarily for
	storage, be dry, and have electricity available.  Since
	network equipment rarely needs attention once installed and
	tested, the network closet can have limited accessibility.

	(1995-05-05)

Network Computing Devices

	<company> (NCD) Producer of {X terminals}, {PC-Xware} and
	{Z-Mail}.

	{(http://ncd.com/)}.

	(1998-10-07)

network database

	<database> A kind of {database management system} in which
	each record type can have multiple owners, e.g. orders are
	owned by both customers and products.  This contrasts with a
	{hierarchical database} (one owner) or {relational database}
	(no explicit owner).

	(1998-10-07)

Network Definition Language

	(NDL) The language used to program the DCP (Data
	Communications Processor) on {Burroughs Large System}.

	Version: NDL II.

	(1994-12-12)

Network Device Interface Specification

	<networking, hardware, standard> (NDIS) A {Microsoft Windows
	device driver} programming interface allowing multiple
	{protocols} to share the same {network} {hardware}.
	E.g. {TCP/IP} and {IPX} on the same {NIC}.  NDIS can also be
	used by some ISDN adapters.

	A protocol manager accepts requests from the {transport layer}
	and passes them to the {data link layer} (routed to the
	correct network interface if there is more than one).

	NDIS was developed by {Microsoft} and {3COM}.  {Novell} offers
	a similar device driver for NetWare called Open Data-Link
	Interface (ODI).

	The NDIS 2.0 specification was 5000 lines.

	Latest version: NDIS 5.0, as of 2000-10-30.

	{(http://microsoft.com/hwdev/devdes/ndis5.htm)}.

	{cdrom.com NDIS archive
	(ftp://ftp.cdrom.com/pub/os2/network/ndis/)}.

	["3TECH, The 3COM Technical Journal", Winter 1991].

	(2000-10-30)

network engineer

	<job> A high-level {LAN}/{WAN} technician who plans,
	implements and supports {network} solutions between multiple
	{platforms}.  A network engineer installs and maintains local
	area network hardware and software, and troubleshoots network
	usage and computer {peripherals}.  He may have {CNE}
	certification.

	(2004-03-20)

Network extensible Window System

	(NeWS) An elegant {PostScript}-based windowing environment,
	invented by James Gosling, the author of {GOSMACS}.

	NeWS would almost certainly have won the {standards} war with
	the {X Window System} if it hadn't been {proprietary} to {Sun
	Microsystems}.  There is a lesson here that too many software
	vendors haven't yet heeded.  Communication is based on
	{PostScript} and server functions can be extended.

	See also {HyperNeWS}, {OpenWindows}.

	(1994-12-12)

Network File System

	<networking, operating system> (NFS) A {protocol} developed by
	{Sun Microsystems}, and defined in {RFC 1094}, which allows a
	computer to access files over a network as if they were on its
	local disks.  This {protocol} has been incorporated in
	products by more than two hundred companies, and is now a {de
	facto} standard.  NFS is implemented using a {connectionless
	protocol} ({UDP}) in order to make it {stateless}.

	See {Nightmare File System}, {WebNFS}.

	(1994-12-12)

Network Filing System

	<spelling> Misnomer for {Network File System}.

Network Information Center

	(NIC) A body that provides information, assistance and
	services to {network} users.  These will typically include
	telephone and {electronic mail} "help desk" type services for
	users and network information services such as {hostnames} and
	addresses which are accessed automatically by computers using
	some {client-server} protocol (usually Sun's {NIS}).

	See also {Network Operations Center}.

	(1994-12-13)

Network Information Service

	<networking, protocol> (NIS) {Sun Microsystems}' Yellow Pages
	(yp) {client-server} {protocol} for distributing system
	configuration data such as user and host names between
	computers on a network.

	Sun licenses the technology to virtually all other {Unix}
	vendors.

	The name "Yellow Pages" is a registered trademark in the
	United Kingdom of British Telecommunications plc for their
	(paper) commercial telephone directory.  Sun changed the name
	of their system to NIS, though all the commands and functions
	still start with "yp", e.g. {ypcat}, {ypmatch}, {ypwhich}.

	{Unix manual pages}: yp(3), ypclnt(3), ypcat(1), ypmatch(1).

	(1995-04-08)

Network Information System

	<spelling> A mis-expansion of {NIS}.

	(1995-04-08)

networking

	{network}

network interface card

	{network interface controller}

network interface controller

	<hardware, networking> (NIC or "network interface card") An
	adapter circuit board installed in a computer to provide a
	physical connection to a network.

	[Examples?  Attributes?]

	(1996-03-04)

network layer

	<networking> (communications subnet layer) The third lowest
	layer in the {OSI} seven layer model.  The network layer
	determines routing of {packets} of data from sender to
	receiver via the {data link layer} and is used by the
	{transport layer}.  The most common network layer {protocol}
	is {IP}.

	(1994-12-13)

network layer reachability information

	<networking> (NLRI) Keywords used for {unicast} and
	{multicast} {database} forwarding.  For example, you would
	assign a user's NLRI so the user can receive multicast
	messages regarding hardware down time that will affect a
	specific user group.

	[Reference?]

	(2002-06-01)

network management

	<networking> The process of controlling a {network} so as to
	maximise its efficiency and productivity.  {ISO}'s model
	divides network management into five categories: {fault
	management}, {accounting management}, {configuration
	management}, {security management} and {performance
	management}.

	Fault management is the process of identifying and locating
	faults in the network.  This could include discovering the
	existence of the problem, identifying the source, and possibly
	repairing (or at least isolating the rest of the network from)
	the problem.

	Configuration management is the process of identifying,
	tracking and modifying the setup of devices on the network.
	This category is extremely important for devices that come
	with numerous custom settings (e.g. {routers} and {file
	servers}).

	Security management is the process of controlling (granting,
	limiting, restricting or denying) access to the network and
	resources thereon.  This could include setting up and managing
	{access lists} in {routers} (creating "{firewalls}" to keep
	intruders out), creating and maintaining password access to
	critical network resources, identifying the points of entry
	used by intruders and closing them.

	Performance Management is the process of measuring the
	performance of various network components.  This also includes
	taking measures to optimise the network for maximum system
	performance (periodically measuring of the use of network
	resources).

	{Usenet} newsgroup: {news:comp.dcom.net-management}.

	["Network Management: A Practical Perspective", Allan Leinwand
	and Karen Fang].

	(1994-11-18)

network meltdown

	<networking> (By analogy with catastrophic failure of a
	nuclear reactor) An event that causes saturation, or near
	saturation, of a network.  Network meltdown usually results
	from illegal or misrouted {packets} (see {Chernobyl packet})
	and typically lasts only a short time.  It may also be caused
	by a {hardware} fault.  It is the network equivalent of
	{thrashing}.

	[{Jargon File}]

	(2004-02-17)

Network News Transfer Protocol

	(NNTP) A {protocol} defined in {RFC} 977 for the distribution,
	inquiry, retrieval and posting of {Usenet} {news} articles
	over the {Internet}.  It is designed to be used between a
	{news reader} {client} such as {nn} or {GNUS} and a news
	{server}.  It is normally used on a connection to {TCP} {port}
	119 on the news {server}.  NNTP is a simple {ASCII} text
	protocol so even if you don't have a news reader program, you
	can just connect to the server using {telnet}:

		telnet news 119

	where news is the name of your server
	(e.g. news.doc.ic.ac.uk).  Typing HELP will give a list of
	other commands.

network node

	<networking> (node) An addressable device attached to a
	computer {network}.  If the node is a computer it is more
	often called a "host".

	(2004-08-25)

Network Node Interface

	<networking> (NNI) The {ATM Forum}'s specification for
	connections between network nodes.  NNI makes network
	{routing} possible.  It typically refers to {backbone} trunk
	connections between ATM switching equipment.

	See also: {UNI}.

	(2001-03-26)

network number

	{network address}

Network Operating System

	<operating system> (NOS) The {operating system} on {Control
	Data Corporation}'s {Cyber Computer}.

	[Details?]

	(2002-11-22)

network operating system

	<networking, operating system> (NOS) An {operating system}
	which includes {software} to communicate with other computers
	via a {network}.  This allows resources such as files,
	{application programs}, and {printers} to be shared between
	computers.

	Examples are {Berkeley Software Distribution} {Unix},
	{Novell}, {LAntastic}, {MS LAN Manager}.

	[Is there a specific OS called "Network Operating System"?]

	(2001-03-13)

Network Operations Center

	(NOC) A location from which the operation of a {network} or
	{internet} is monitored.  Additionally, this center usually
	serves as a clearinghouse for connectivity problems and
	efforts to resolve those problems.

	See also {Network Information Center}.

	(1994-12-01)

network operator

	<job> A person who monitors and maintains the operation of a
	communications network.  A network operator troubleshoots
	hardware (cables, {routers}, {network switches}, {hubs},
	{network adaptors}), software, and transmission problems.

	(2004-03-09)

network redirector

	<networking> An {operating system} {driver} that sends data to
	and receives data from a remote device.  A network redirector
	often provides mechanisms to locate, open, read, write, and
	delete files and submit print jobs.

	It also makes available application services such as {named
	pipes} and {mailslots}.  When an application needs to send or
	receive data from a remote device, it sends a call to the
	redirector.  The redirector provides the functionality of the
	{Application layer} and {Presentation layer} of the {OSI}
	model.

	In {Microsoft Networking}, the network redirectors are
	implemented as {installable file systems} (IFS).

	(1999-08-08)

network segment

	<networking> A part of an {Ethernet} or other network, on
	which all message traffic is common to all nodes, i.e. it is
	broadcast from one node on the segment and received by all
	others.  This is normally because the segment is a single
	continuous conductor, though it may include {repeaters}(?).

	Since all nodes share the physical medium, {collision
	detection} or some other {protocol} is required to determine
	whether a message was transmitted without interference from
	other nodes.  The receiving node inspects the destination
	address of a {packet} to tell if it was (one of) the intended
	recipient(s).

	Communication between nodes on different segments is via one
	or more {routers}.

	(1996-10-16)

Network Solutions, Inc.

	<company> (NSI) One of the three companies that provide and
	coordinate {InterNIC} services for the {NSFNet}.  NSI is
	responsible for registration.  NSI has been bought by, and is
	now a wholly-owned subsidiary of, {Science Applications
	International Corporation} (SAIC).

	(1995-11-09)

network storm

	{broadcast storm}

Network Termination

	(NT, NT1) A device connecting the customer's data or telephone
	equipment to the local {ISDN} exchange carrier's line.  The NT
	device provides a connection for {terminal equipment} (TE) and
	{terminal adaptor} (TA) equipment to the {local loop}.

	(1994-11-30)

network, the

	1. <jargon, networking> (Or "the net") The union of all the
	major noncommercial, academic and hacker-oriented networks,
	such as {Internet}, the old {ARPANET}, {NSFnet}, {BITNET}, and
	the virtual {UUCP} and {Usenet} "networks", plus the corporate
	in-house networks and commercial {time-sharing} services (such
	as {CompuServe}) that gateway to them.

	A site was generally considered "on the network" if it could
	be reached by {electronic mail} through some combination of
	Internet-style (@-sign) and UUCP ({bang-path}) addresses.
	Since the explosion of the Internet in the mid 1990s, the term
	is now synonymous with the Internet.

	See {network address}.

	2. <body> A fictional conspiracy of libertarian
	hacker-subversives and anti-authoritarian monkeywrenchers
	described in Robert Anton Wilson's novel "Schrödinger's Cat",
	to which many {hackers} have subsequently decided they belong
	(this is an example of {ha ha only serious}).

	[{Jargon File}]

	(1999-01-26)

Network Time Protocol

	(NTP) A {protocol} built on top of {TCP/IP} that assures
	accurate local timekeeping with reference to radio, atomic or
	other clocks located on the {Internet}.  This protocol is
	capable of synchronizing distributed clocks within
	milliseconds over long time periods.  It is defined in {STD}
	12, {RFC 1119}.

network topology

	<networking> The "shape" of a network, how the {nodes} are
	connected to each other.  Common topologies are {bus network},
	{star network} and {ring network}.

	(2009-07-16)

network transparency

	<networking> A feature of an {operating system} or other
	service which lets the user access a remote resource through a
	{network} without having to know if the resource is remote or
	local.

	For example {NFS} allow users to access remote files as if
	they were local files.

	(1996-12-21)

NetX

	<company> A LukeCo Company that designs {web pages} and web
	software.  Not to be confused with {Net:X}.

	{(http://members.aol.com/netx11/index.html)}.

	(1996-12-15)

Net:X

	<company> A Canadian company.  Not to be confused with {NetX}.

	{(http://netx.ca/)}.

	[Summary?]

	(1998-06-25)

neural nets

	{artificial neural network}

neural network

	{artificial neural network}

neuron

	{artificial neural network}

Neutral Interconnect

	Network infrastructure where network service providers can
	freely exchange traffic without policy restrictions.  Examples
	are the GIX (Global Internet Exchange) at MAE-East (A
	Metropolitan Area Ethernet around Washington), and the Ebone
	(European Backbone).  There is currently (November 1993) no UK
	Neutral Interconnect.

neutrosophic

	{Neutrosophy}

neutrosophic logic

	<logic> (Or "Smarandache logic") A generalisation of {fuzzy
	logic} based on {Neutrosophy}.  A {proposition} is t true, i
	indeterminate, and f false, where t, i, and f are real values
	from the ranges T, I, F, with no restriction on T, I, F, or
	the sum n=t+i+f.  Neutrosophic logic thus generalises:

	- {intuitionistic logic}, which supports incomplete theories
	(for 0<n<100 and i=0, 0<=t,i,f<=100);

	- {fuzzy logic} (for n=100 and i=0, and 0<=t,i,f<=100);

	- {Boolean logic} (for n=100 and i=0, with t,f either 0 or
	100);

	- {multi-valued logic} (for 0<=t,i,f<=100);

	- {paraconsistent logic} (for n>100 and i=0, with both
	t,f<100);

	- {dialetheism}, which says that some contradictions are true
	(for t=f=100 and i=0; some {paradoxes} can be denoted this
	way).

	Compared with all other logics, neutrosophic logic introduces
	a percentage of "indeterminacy" - due to unexpected parameters
	hidden in some propositions.  It also allows each component
	t,i,f to "boil over" 100 or "freeze" under 0.  For example, in
	some {tautologies} t>100, called "overtrue".

	{(http://gallup.unm.edu/~smarandache/NeutLog.txt)}.

	["Neutrosophy / Neutrosophic probability, set, and logic",
	F. Smarandache, American Research Press, 1998].

	(1999-10-04)

neutrosophic probability

	<logic> An extended form of probability based on
	{Neutrosophy}, in which a statement is held to be t true, i
	indeterminate, and f false, where t, i, f are real values from
	the ranges T, I, F, with no restriction on T, I, F or the sum
	n=t+i+f.

	{(http://gallup.unm.edu/~smarandache/NeutProb.txt)}.

	["Neutrosophy / Neutrosophic Probability, Set, and Logic",
	Florentin Smarandache, American Research Press, 1998].

	(1999-10-04)

neutrosophic set

	<logic> A generalisation of the {intuitionistic set},
	classical set, {fuzzy set}, {paraconsistent set}, {dialetheist
	set}, {paradoxist set}, {tautological set} based on
	{Neutrosophy}.  An element x(T, I, F) belongs to the set in
	the following way: it is t true in the set, i indeterminate in
	the set, and f false, where t, i, and f are real numbers taken
	from the sets T, I, and F with no restriction on T, I, F, nor
	on their sum n=t+i+f.

	The neutrosophic set generalises:

	- the {intuitionistic set}, which supports incomplete set
	theories (for 0<n<100 and i=0, 0<=t,i,f<=100);

	- the {fuzzy set} (for n=100 and i=0, and 0<=t,i,f<=100);

	- the classical set (for n=100 and i=0, with t,f either 0 or
	100);

	- the {paraconsistent set} (for n>100 and i=0, with both
	t,f<100);

	- the {dialetheist set}, which says that the intersection of
	some disjoint sets is not empty (for t=f=100 and i=0; some
	paradoxist sets can be denoted this way).

	{(http://gallup.unm.edu/~smarandache/NeutSet.txt)}.

	["Neutrosophy / Neutrosophic Probability, Set, and Logic",
	Florentin Smarandache, American Research Press, 1998].

	(1999-12-14)

neutrosophic statistics

	<statistics> Analysis of events described by {neutrosophic
	probability}.

	["Neutrosophy / Neutrosophic Probability, Set, and Logic",
	Florentin Smarandache, American Research Press, 1998].

	(1999-07-05)

Neutrosophy

	<philosophy> (From Latin "neuter" - neutral, Greek "sophia" -
	skill/wisdom) A branch of philosophy, introduced by Florentin
	Smarandache in 1980, which studies the origin, nature, and
	scope of neutralities, as well as their interactions with
	different ideational spectra.

	Neutrosophy considers a {proposition}, theory, event, concept,
	or entity, "A" in relation to its opposite, "Anti-A" and that
	which is not A, "Non-A", and that which is neither "A" nor
	"Anti-A", denoted by "Neut-A".  Neutrosophy is the basis of
	{neutrosophic logic}, {neutrosophic probability},
	{neutrosophic set}, and {neutrosophic statistics}.

	{(http://gallup.unm.edu/~smarandache/NeutroSo.txt)}.

	["Neutrosophy / Neutrosophic Probability, Set, and Logic",
	Florentin Smarandache, American Research Press, 1998].

	(1999-07-29)

Never Offline

	<software> (NOL) /noh-el/ A software service provided by
	{America's Multimedia Online} that allows {Internet} users to
	be constantly connected to the Internet.

	{(http://neveroffline.com/)}.

	[But what *is* it?]

	(1999-11-03)

newbie

	<jargon> /n[y]oo'bee/ (Sometimes shorted to "noob") Originally
	from British public-school and military slang variant of "new
	boy", an inexperienced user.

	This term surfaced in the {newsgroup} {news:talk.bizarre} but
	is now in wide use.  Criteria for being considered a newbie
	vary wildly; a person can be called a newbie in one group
	while remaining a respected regular in another.  The label
	"newbie" is sometimes applied as a serious insult to a person
	who has been around for a long time but who carefully hides
	all evidence of having a clue.

	See {BIFF}.

	[{Jargon File}]

	(2007-08-02)

New Flavors

	An {object-oriented} {Lisp} from {Symbolics}, the successor to
	{Flavors}, it led to {CLOS}.

	["Reference Guide to Symbolics-Lisp", Symbolics, March 1985].

	(1994-10-10)

newgroup wars

	/n[y]oo'groop worz/ [{Usenet}] The salvos of dueling
	"newgroup" and "rmgroup" messages sometimes exchanged by
	persons on opposite sides of a dispute over whether a
	{newsgroup} should be created net-wide, or (even more
	frequently) whether an obsolete one should be removed.  These
	usually settle out within a week or two as it becomes clear
	whether the group has a natural constituency (usually, it
	doesn't).  At times, especially in the completely anarchic alt
	hierarchy, the names of newsgroups themselves become a form of
	comment or humour; e.g. the spinoff of
	alt.swedish.chef.bork.bork.bork from alt.tv.muppets in early
	1990, or any number of specialised abuse groups named after
	particularly notorious {flamers}, e.g. alt.weemba.

	[{Jargon File}]

New Jersey

	[Primarily Stanford/Silicon Valley] Brain-damaged or of poor
	design.  This refers to the allegedly wretched quality of such
	software as {C}, {C++} and {Unix} (which originated at {Bell
	Labs} in Murray Hill, New Jersey).  "This compiler bites the
	bag, but what can you expect from a compiler designed in New
	Jersey?"  Compare {Berkeley Quality Software}.  See also {Unix
	conspiracy}.

newline

	<character, jargon> /n[y]oo'li:n/ {Line feed} or other
	character sequence used to terminate a line of text.

	{Unix} uses {line feed} as its text line terminator - a
	{Bell-Labs}-ism rather than a {Berkeley}ism.  Interestingly
	(and unusually for Unix jargon), it is said to have originally
	been an {IBM} usage.  Though the term "newline" appears in
	{ASCII} {standards}, it never caught on in the general
	computing world before {Unix}.  The encoding of line feed as
	"\n" in {C} and {Unix} strings comes from this name.

	The term has been used more generally for any {end of line}
	character, character sequence (e.g. {crlf}), or operation
	(like {Pascal}'s writeln procedure or {Lisp 1.5}'s {terpri})
	required to terminate a text record or separate lines.

	[{Jargon File}]

	(1997-07-14)

NEWP

	{NEW Programming language}

NEW Programming language

	<language> (NEWP) A language which replaced {ESPOL} on the
	{Burroughs Large System}.

	(1994-12-13)

NeWS

	/nee'wis/, /n[y]oo'is/ or /n[y]ooz/ {Network extensible Window
	System}.

	Many hackers insist on the two-syllable pronunciations above
	as a way of distinguishing NeWS from {news} (the {netnews}
	software).

	[{Jargon File}]

news

	{netnews}

NewsClip

	A very high level language designed for writing {netnews
	filters}.  It translates into {C}.  It includes support for
	various {newsreaders}.  Version 1.01 includes a translator
	from NewsClip to {C}, examples and documentation.

	NewsClip was written by {Looking Glass Software} Ltd. and is
	distributed and used by {ClariNet Communications} Corporation  It is
	only supported for ClariNet customers.  Output of the filters
	may not be sold and donation for use of this program is hinted
	at.

	E-mail: <newsclip@clarinet.com>.

	(1992-10-25)

newsfroup

	<messaging, humour> A silly synonym for {Usenet} {newsgroup},
	originally a typo but now in regular use on {Usenet}'s
	{news:talk.bizarre} and other lunatic-fringe groups.

	Compare {hing}, {grilf}, and {filk}.

	[{Jargon File}]

	(1994-12-13)

newsgroup

	<messaging> One of {Usenet}'s huge collection of topic groups
	or {fora}.  {Usenet} groups can be "unmoderated" (anyone can
	post) or "moderated" (submissions are automatically directed
	to a {moderator}, who edits or filters and then posts the
	results).  Some newsgroups have parallel {mailing lists} for
	{Internet} people with no netnews access, with postings to the
	group automatically propagated to the list and vice versa.
	Some moderated groups (especially those which are actually
	gatewayed {Internet} {mailing lists}) are distributed as
	"{digests}", with groups of postings periodically collected
	into a single large posting with an index.

	Among the best-known are comp.lang.c (the {C}-language forum),
	comp.arch (on computer architectures), comp.Unix.wizards (for
	{Unix wizards}), rec.arts.sf-lovers (for science-fiction
	fans), and talk.politics.misc (miscellaneous political
	discussions and {flamage}).

	Barry Shein <bzs@world.std.com> is alleged to have said,
	"Remember the good old days when you could read all the group
	names in one day?"  This gives a good idea of the growth and
	size of {Usenet}.

	See also {netiquette}.

	[{Jargon File}]

	(1994-12-13)

newsletter

	<publication> A periodically published work containing news
	and announcements on some subject, typically with a small
	circulation.  Newsletters are a common application for {DTP}
	and may be distributed by {electronic mail}.

	(1996-12-10)

Newspeak

	A language inspired by {Scratchpad}.

	[J.K. Foderaro.  "The Design of a Language for Algebraic
	Computation", Ph.D. Thesis, UC Berkeley, 1983].

Newsqueak

	A {concurrent} {applicative} language with {synchronous}
	channels.

	["Newsqueak: A Language for Communicating with Mice", R. Pike
	CSTR143, Bell Labs (March 1989)].

	["The Implementation of Newsqueak", Rob Pike, Soft Prac & Exp
	20(7):649-659 (July 1990)].

.newsrc

	<messaging> (news run commands) The configuration file for the
	{Unix} {rn} {news reader}.

	See also {rc}.

	(1996-04-09)

news reader

	<messaging> A {browser} program which enables a user to read
	articles posted to {Usenet}.  Articles may be stored in a
	local (or {NFS}-mounted) {spool} directory, or retrieved via
	{NNTP}.

	Examples are {rn}, {GNUS}, and {nn}.

	(1996-04-09)

New Storage System

	<storage> (NSS) A major {Multics} implementation project
	during the 1970s.  The initial Multics {file system} design
	had evolved from the one-huge-disk world of {CTSS}.  When
	multiple disk units were used they were just assigned
	increasing ranges of disk addresses, so a {segment} could have
	{pages} scattered over all disks on the system.  This provided
	good {I/O} {parallelism} but made {crash recovery} expensive.
	NSS redesigned the lower levels of the file system,
	introducing the concepts of {logical volume} and {physical
	volume} and a mapping from a Multics directory branch to a
	{VTOC} entry for each file.  The new system had much better
	recovery performance in exchange for a small space and
	performance cost.

	(1997-01-29)

new talk

	{ntalk}

New Testament

	[C programmers] The second edition of {K&R}'s "The C
	Programming Language" (Prentice-Hall, 1988; ISBN
	0-13-110362-8), describing {ANSI C}.

	[{Jargon File}]

Newton

	1. (Named after Isaac Newton (1642-1727)).  Rapin et al, Swiss
	Federal Inst Tech, Lausanne 1981.  General purpose expression
	language, syntactically ALGOL-like, with object-oriented and
	functional features and a rich set of primitives for
	concurrency.  Used for undergraduate teaching at Lausanne
	(EPFL).

	Versions: Newton 2.6 for VAX/VMS and Newton 1.2 for
	DEC-Alpha/{OSF}-1.

	E-mail: J. Hulaas <hulaas@lcodec1.epfl.ch>.
	{(ftp://ellc4.epfl.ch /pub/languages/Newton)}.

	["Procedural Objects in Newton", Ch. Rapin, SIGPLAN Notices
	24(9) (Sep 1989)].

	["The Newton Language", Ch. Rapin et al, SIGPLAN Notices
	16(8):31-40 (Aug 1981)].

	["Programming in Newton", Wuetrich and Menu, EPFL 1982].

	2. {Apple Newton}.

	(2000-08-29)

Newton-Raphson iteration

	<algorithm> An iterative {algorithm} for solving equations.
	Given an equation,

		f x = 0

	and an initial approximation, x(0), a better approximation is
	given by:

		x(i+1) = x(i) - f(x(i)) / f'(x(i))

	where f'(x) is the first derivative of f, df/dx.

	Newton-Raphson iteration is an example of an {anytime
	algorithm} in that each approximation is no worse than the
	previous one.

	(2007-06-19)

Newton's method

	{Newton-Raphson}

NewWave

	A graphical user interface and object-oriented environment
	from Hewlett-Packard, based on Windows and available on Unix
	workstations.

NewYacc

	A {parser generator} by Jack Callahan
	<callahan@mimsy.cs.umd.edu>.  Version 1.0.

	{(ftp://flubber.cs.umd.edu/src/)}.

	[Dec 89 CACM, A brief overview of NewYacc].

	(1992-02-10)

New York State Educational Reasearch  ETwork

	(NYSERNET) A New York {Internet} access provider and regional
	network.  NYSERNet has been in the Internet business since
	about 1985 and have recently upgraded to a {T3} backbone (45
	megabits per second).  They work with {Sprint}, {NYNEX} and
	Rochester Telephone.

	NYSERNet, Inc., provides Internet Training provided through
	the NYSERNet Internet Training and Education Center (NITEC), a
	twenty-four station hands-on facility in Syracuse, NY.  The
	Information Services Group supplies tools for marketing via
	the {Internet} and NYSERNET also provide Technical Consulting
	Services.

	{(http://nysernet.org/)}.

	E-mail: <info@nysernet.org>.

	(1995-02-01)

New York University

	(NYU) Established in 1831, New York University today includes
	thirteen schools, colleges and divisions located in New York
	City's borough of Manhattan, as well as research centers and
	programs in the surrounding suburbs and abroad.

	{(http://nyu.edu/)}.

NEXOR

	<company> A technology company that specialises in providing
	electronic communication software products and services to a
	worldwide market.  It is also the home of {CUSI}.

	{(http://nexor.com/)}.

	(1997-11-10)

Nexpert Object

	An {expert system}.

NeXT, Inc.

	<company> The company founded by {Steve Jobs} [in ?] following
	his involuntary departure from {Apple Computer, Inc.}.  NeXT
	produced both the hardware and {operating system}
	({NEXTSTEP}).  They changed their name to "NeXT Software" when
	they stopped making hardware and released NEXTSTEP For {Intel}
	processors.  The company was bought by Apple in 1997(?).

	(1999-11-25)

Next Program Counter

	<architecture> (nPC) A {register} in a {CPU} that contains the
	{address} of the {instruction} to be executed next.

	(2000-07-12)

NEXTSTEP

	<operating system> The original {multitasking} {operating
	system} that {NeXT, Inc.} developed to run on its proprietary
	{NeXT} computers (informally known as "black boxes").
	NEXTSTEP includes a specific {graphical user interface}, an
	interface builder, {object-oriented} application builder, and
	several "kits" of prebuilt software {objects} such as the
	Indexing Kit for {databases}.  This software runs on top of
	NeXT's version of the {Mach} operating system on {NeXT},
	{486}, {Pentium}, {HP-PA}, and {Sun} {SPARC} computers.

	The official spelling changed from "NeXTstep" to "NeXTStep" to
	"NeXTSTEP", and finally "NEXTSTEP".

	The last release of NEXTSTEP was 3.3, which NeXT then
	developed into "{OpenStep}".

	{TjL's Pages (http://peak.org/~luomat/)}.
	{Peanuts (http://peanuts.org/peanuts/NEXTSTEP/)}.

	See also: {GNUStep}.

	(2003-05-23)

nf

	<networking> The {country code} for Norfolk Island.

	(1999-01-27)

NFA

	{Finite State Machine}

NFQL

	["NFQL: The Natural Forms Query Language", D. Embley, Trans
	Database Sys 14(2):168-211 (June 1989)].

NFS

	{Network File System}

NFT

	{Network File Transfer}.  An INTERLINK command on CERNVM.

ng

	<networking> The {country code} for Nigeria.

	(1999-01-27)

NGL

	A dialect of {IGL}.

NHOH

	<chat> Never heard of him/her.  Often used in {initgame}.

	(1998-01-18)

ni

	<networking> The {country code} for Nicaragua.

	(1999-01-27)

NIAL

	Nested Interactive Array Language.

	A high-level {array}-oriented language from {Queen's
	University}, Canada, based on {Array Theory} as developed by
	Trenchard More Jr.

	{Q'NIAL} is an implementation in {C}.

	["Programming Styles in NIAL", M.A.  Jenkins et al, IEEE
	Software 3(1):46-55 (Jan 1986)].

	(1995-01-25)

NIAL Systems Ltd.

	Distributors of {Q'NIAL}.

	Address: Ottawa Canada.

	Telephone: Canada (613) 234 4188.

	(1995-01-25)

NIAM

	{Natural Language Information Analysis Method} (or Nijssen IAM).

nibble

	<data> /nib'l/ (US "nybble", by analogy with "bite" -> "byte")
	Half a {byte}.  Since a byte is nearly always eight {bits}, a
	nibble is nearly always four bits (and can therefore be
	represented by one {hex} digit).

	Other size nibbles have existed, for example the {BBC
	Microcomputer} disk file system used eleven bit sector numbers
	which were described as one byte (eight bits) and a nibble
	(three bits).

	Compare {crumb}, {tayste}, {dynner}; see also {bit}, {nickle},
	{deckle}.

	The spelling "nybble" is uncommon in {Commonwealth Hackish} as
	British orthography suggests the pronunciation /ni:'bl/.

	(1997-12-03)

Nibble Mode DRAM

	<storage> 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.  A column address is only
	required for the first bit.

	This mode is now unfashionable but can be found on some older
	64 kilobit and 256 kilobit chips.

	(1997-12-03)

NIC

	1. <networking> {Network Information Center}.

	2. <hardware> {Network Interface Card}.

	(1996-02-13)

NIC.DDN.MIL

	<networking> {Defense Data Network}'s {Network Information
	Center}.

	(1996-02-13)

NICE

	The {Nonprofit International Consortium for Eiffel}.

nick

	[IRC] nickname.  On {IRC}, every user must pick a nick, which
	is sometimes the user's real name or login name, but is often
	more fanciful.  Compare {handle}.

	[{Jargon File}]

nickle

	/ni'kl/ ["nickel", common name for the US 5-cent coin] A
	{nibble} + 1; 5 bits.  Reported among developers for Mattel's
	{GI 1600} (the {Intellivision} games processor), a chip with
	16 bit-wide {RAM} but 10 bit-wide {ROM}.  See also {deckle}.

NICOL I

	1. Small subset of PL/I by (Massachusetts) Computer Assoc,
	ca. 1965.  Version: NICOL II (1967).  Sammet 1969, p.542.

	2. ICL, 1968. [same as 1?]

NIFOC

	<chat> Naked in front of computer.  Possibly also typing with
	one hand.

	(2001-03-11)

Nightmare File System

	Pejorative hackerism for {Sun}'s {Network File System} (NFS).
	In any nontrivial network of Suns where there is a lot of NFS
	{cross-mount}ing, when one Sun goes down, the others often
	freeze up.  Some machine tries to access the down one, and
	(getting no response) repeats indefinitely.  This causes it to
	appear dead to some messages (what is actually happening is
	that it is locked up in what should have been a brief
	excursion to a higher {spl} level).  Then another machine
	tries to reach either the down machine or the pseudo-down
	machine, and itself becomes pseudo-down.  The first machine to
	discover the down one is now trying both to access the down
	one and to respond to the pseudo-down one, so it is even
	harder to reach.  This situation snowballs very quickly, and
	soon the entire network of machines is frozen - worst of
	all, the user can't even abort the file access that started
	the problem!

	Many of NFS's problems are excused by partisans as being an
	inevitable result of its {stateless}ness, which is held to be
	a great feature (critics, of course, call it a great
	{misfeature}).  {ITS} partisans are apt to cite this as proof
	of {Unix}'s alleged bogosity; ITS had a working NFS-like
	shared file system with none of these problems in the early
	1970s.  See also {broadcast storm}.

	[{Jargon File}]

night mode

	{phase}

NIH

	The United States National Institutes of Health.

NIHCL

	A {class library} for {C++} from the US National Institutes of
	Health (NIH).

NII

	{National Information Infrastructure}

NIKL

	Frame language.

	["Recent Developments in NIKL", T.R. Kaczmarek et al, Proc
	AAAI-86, 1986].

Niklaus Wirth

	<person> The designer of the {Modula-2}, {Modula-3}, and, in
	around 1970, {Pascal} programming languages.

	[More info?]

	(2001-09-22)

NIL

	/nil/ 1. New Implementation of Lisp.  A language intended to
	be the successor of {MacLisp}.  A large {Lisp}, implemented
	mostly in {VAX} {assembly language}.  A forerunner of {Common
	LISP}.

	["NIL: A Perspective", Jon L. White, MACSYMA Users' Conf Proc,
	1979].

	2. Network Implementation Language.  Strom & Yemini, TJWRC,
	IBM.  Implementation of complex networking protocols in a
	modular fashion.

	["NIL: An Integrated Language and System for Distributed
	Programming", R. Strom et al, SIGPLAN Notices 18(6):73-82
	(June 1983)].

	3. Empty list or False.  In {Lisp}, the empty list (or "nil
	list") is used to represent the {Boolean} value False.  This
	is possible because {Lisp} is not typed.  True is represented
	by the special {atom} "t".

	4. Spoken in reply to a question, particularly one asked using
	the "-P" convention it means "No".  Most hackers assume this
	derives simply from LISP, but NIL meaning "no" was
	well-established among radio hams decades before LISP existed.
	The historical connection between early hackerdom and the ham
	radio world was strong enough that this may have been an
	influence.

	[{Jargon File}]

niladic

	<programming> A less common synonym for "{nullary}",
	presumably following the more common {monadic}, {dyadic}, etc.
	The term was in use as early as 1976, and probably originated
	in {APL}.

	[APL: An Interactive Approach, 1976].

	(2001-01-27)

Ninety-Ninety Rule

	<humour> "The first 90% of the code accounts for the first 90%
	of the development time.  The remaining 10% of the code
	accounts for the other 90% of the development time".

	An aphorism attributed to Tom Cargill of Bell Labs, and
	popularised by Jon Bentley's September 1985 "Bumper-Sticker
	Computer Science" column in "Communications of the ACM".  It
	was there called the "Rule of Credibility", a name which seems
	not to have stuck.

	[{Jargon File}]

	(1995-07-14)

Nintendo

	<company, games> A Japanese {video game} hardware manufacturer
	and software publisher.  Nintendo started by making playing
	cards, but was later dominant in video games throughout the
	1980s and early 1990s worldwide.  They make lots of games
	consoles including the Gameboy, Gameboy Advance SP, DS, DS
	Lite and the Wii.

	{Nintendo home (http://nintendo.com/)}.

	(2008-03-08)

NIOS

	{Netware Input/Output Subsystem}

nipple

	{Trackpoint}

NIS

	{Network Information Service}

NISO

	National Information Standards Organisation (USA).  NISO
	Standards cover many aspects of library science, publishing,
	and information services, and address the application of both
	traditional and new technologies to information services.

NISS

	{National Information Services and Systems}

NIST

	{National Institute of Standards and Technology}

NJCL

	Network Job Control Language.

	["NJCL - A Network Job Control Language", J. du Masle et al,
	IFIP Congress 1974].

	(1995-02-03)

nl

	<networking> The {country code} for the Netherlands (Holland).

	(1999-01-27)

NLANR

	{National Laboratory for Applied Network Research}

NLM

	{Netware Loadable Module}

NLP

	1. <application> {Natural Language Processing}.

	2. <networking> {Network Layer Protocol}.

NLRI

	{network layer reachability information}

NLS

	{Native Language System}

NLSP

	{NetWare Link State Protocol}

NLX

	<hardware, standard> A low-profile, low {TCO} {motherboard}
	design created jointly by {Intel Corp.}, {IBM}, {DEC} and
	other PC vendors.  In contrast to the traditional single-board
	design, NLX uses a {riser} card to carry {PCI}, {ISA} and
	{AGP} {bus} data (despite {Intel}'s stated intent to rid PC
	motherboards of the {ISA} {bus} by 2000).

	Version 1.2 of NLX is the final specification, and was frozen
	in March 1997.  Minor modifications appear in the form of
	"Engineering Change Requests".

	{(http://teleport.com/~nlx/)}.

	{Intel (http://intel.com/design/motherboard/nlx.htm)}.

	["NLX Motherboard Specification", various, pub. Intel Corp. 1997]

	(1998-09-21)

NMI

	{Non-Maskable Interrupt}

nML

	<language> A specification language for {instruction sets},
	based on {attribute grammars}, for {back-end generators}.

	["The nML Machine Description Formalism", M. Freericks
	<mfx@cs.tu-berlin.de> TR TU Berlin, FB20, Bericht 1991/15].

	(1995-11-28)

NMU

	{Non-Maintainer Upload}

NN

	{neural network}

nn

	<tool, messaging> A {terminal based} program for reading
	{Usenet} {news} by Kim F. Storm <storm@texas.dk>, Texas
	Instruments A/S, Denmark.

	nn lets you decide which of the many {news groups} you are
	interested in, and unsubscribe to those which don't interest
	you.  nn lets you select articles to read from a menu in each
	of the groups you subscribe.  nn sorts and presents new
	articles very quickly because it uses its own local database
	to maintain all the necessary information (this database is
	built and maintained by the nnmaster program).

	The {NNTP} support was designed and implemented by Ren'e
	Seindal, Institute of Datalogy, University of Copenhagen,
	Denmark.

	E-mail: <nn-bugs@dkuug.dk> (bugs, fixes, suggestions, etc.)

	{Usenet} newgroup: {news:news.software.nn}.

	(1995-12-04)

NNI

	{Network Node Interface}

NNTP

	<messaging> {Network News Transfer Protocol}.

	(1996-02-26)

no

	<networking> The {country code} for Norway.

	(1999-01-27)

NOC

	{Network Operations Center}

NODAL

	Interpreted language implemented on Norsk Data's NORD-10
	computers.  Used by CERN and DESY high energy physics labs to
	control their accelerator hardware, PADAC and SEDAC.  Included
	trackball input, graphics.

Nodal Switching System

	(NSS) Main {routing} nodes in the {NSFnet} {backbone}.

noddy

	/nod'ee/ [UK: from the children's books] 1. Small and
	un-useful, but demonstrating a point.  Noddy programs are
	often written by people learning a new language or system.
	The archetypal noddy program is {hello, world}.  Noddy code
	may be used to demonstrate a feature or bug of a compiler.
	May be used of real hardware or software to imply that it
	isn't worth using.  "This editor's a bit noddy."

	2. A program that is more or less instant to produce.  In this
	use, the term does not necessarily connote uselessness, but
	describes a {hack} sufficiently trivial that it can be written
	and debugged while carrying on (and during the space of) a
	normal conversation.  "I'll just throw together a noddy {awk}
	script to dump all the first fields."  In North America this
	might be called a {mickey mouse program}.  See {toy program}.

	3. A simple (hence the name) language to handle text and
	interaction on the {Memotech} home computer.  Has died with
	the machine.

	[{Jargon File}]

node

	1. A point or vertex in a {graph}.

	2. {network node}.

	3. A {hypertext} document.

noise

	<communications> Any part of a signal that is not the true or
	original signal but is introduced by the communication
	mechanism.

	A common example would be an electrical signal travelling down
	a wire to which noise is added by inductive and capacitive
	coupling with other nearby signals (this kind of noise is
	known as "{crosstalk}").

	A less obvious form of noise is {quantisation} noise, such as
	the error between the true colour of a point in a scene in the
	real world and its representation as a {pixel} in a digital
	image.

	(2003-07-05)

noise margin

	<electronics> The voltage difference between the guaranteed
	output level and the required input voltage level of a {logic
	gate}.

	(2007-05-16)

noise shaping

	<communications> {Spectral noise} transformation in a
	quantisation processes.  Noise is "colourised" in the {time
	domain} an/or {frequency domain} by adding parts of the
	previous sample.  The {SNR bandwidth} and {SNR time integral}
	stay the same, so some noise decreases, some increases, but
	overall noise always increases.

	An example of noise shaping in the frequency domain is
	quantisation of samples on a {Compact Disc} to reduce noise
	below -98 dB.  The are different algorithms with slightly
	different filters, e.g. {Super Bitmapping}, {4D Recording}.

	A time domain example is {MPEG-4 AAC TNS}, which is a method
	to enhance quality by temporal forming of the noise in a
	transform block.

	(2003-07-19)

NOL

	{Never Offline}

NOMAD

	<language, database> A {database} language.

	Version: NOMAD2 from {Must Software} International.

	["NOMAD Reference Manual", Form 1004, National CSS Inc, Dec
	1976].

	(1995-04-01)

NOMEX underwear

	/noh'meks uhn'-der-weir/ [{Usenet}] Synonym {asbestos
	longjohns}, used mostly in auto-related {mailing lists} and
	newsgroups.  NOMEX underwear is an actual product available on
	the racing equipment market, used as a fire resistance measure
	and required in some racing series.

	[{Jargon File}]

Nominal Semidestructor

	<abuse> Slang for "{National Semiconductor}", found among
	other places in the {4.3BSD} networking sources.  During the
	late 1970s to mid-1980s this company marketed a series of
	{microprocessors} including the {National Semiconductor 16000}
	and {National Semiconductor 32000}.  At one point early in the
	great {microprocessor} race, the specs on these chips made
	them look like serious competition for the rising {Intel
	80x86} and {Motorola 680x0} series.  Unfortunately, the actual
	parts were notoriously flaky and never implemented the full
	{instruction set} promised in their literature, apparently
	because the company couldn't get any of the {mask steppings}
	to work as designed.  They eventually sank without trace,
	joining the {Zilog Z8000} and a few even more obscure
	also-rans in the graveyard of forgotten microprocessors.

	(1994-12-23)

non-algorithmic procedure

	{heuristic}

nondeterminism

	<algorithm> A property of a computation which may have more
	than one result.

	One way to implement a nondeterministic {algorithm} is using
	{backtracking}, another is to explore (all) possible solutions
	in parallel.

	(1995-04-13)

nondeterministic

	Exhibiting {nondeterminism}.

nondeterministic automaton

	<theory> (Or "probabilistic automaton") An {automaton} in
	which there are several possible actions (outputs and next
	states) at each state of the computation such that the overall
	course of the computation is not completely determined by the
	program, the starting state, and the initial inputs.

	See also {nondeterministic Turing Machine}.

	(1996-05-07)

nondeterministic polynomial time

	<complexity> (NP) A set or property of computational {decision
	problems} solvable by a {nondeterministic Turing Machine} in a
	number of steps that is a {polynomial} function of the size of
	the input.  The word "nondeterministic" suggests a method of
	generating potential solutions using some form of
	{nondeterminism} or "trial and error".  This may take
	{exponential time} as long as a potential solution can be
	verified in {polynomial time}.

	NP is obviously a superset of P ({polynomial time} problems
	solvable by a deterministic {Turing Machine} in {polynomial
	time}) since a deterministic algorithm can be considered as a
	degenerate form of nondeterministic algorithm.  The question
	then arises: is NP equal to P?  I.e. can every problem in NP
	actually be solved in polynomial time?  Everyone's first guess
	is "no", but no one has managed to prove this; and some very
	clever people think the answer is "yes".

	If a problem A is in NP and a polynomial time algorithm for A
	could also be used to solve problem B in polynomial time, then
	B is also in NP.

	See also {Co-NP}, {NP-complete}.

	[Examples?]

	(1995-04-10)

Nondeterministic Turing Machine

	<complexity> A normal (deterministic) {Turing Machine} that
	has a "guessing head" - a write-only head that writes a guess
	at a solution on the tape first, based on some arbitrary
	internal {algorithm}.  The regular {Turing Machine} then runs
	and returns "yes" or "no" to indicate whether the solution is
	correct.

	A {nondeterministic Turing Machine} can solve
	{nondeterministic polynomial time} computational {decision
	problems} in a number of steps that is a {polynomial} function
	of the size of the input

	(1995-04-27)

non-impact printer

	<printer> Any printer, such as a {laser printer}, {ink-jet
	printer}, {LED page printer}, that prints without striking the
	paper, unlike a {dot matrix printer} which hits the paper with
	small pins.  Non-impact printers are quieter than impact
	printers, and also faster due the lack of moving parts in the
	print head.

	(1995-11-20)

non-interlaced

	{interlace}

nonintrusive testing

	<testing> Testing that is transparent to the software under
	test, i.e., does not change its timing or processing
	characteristics.  Nonintrusive testing usually involves
	additional hardware that collects timing or processing
	information and processes that information on another
	platform.

nonlinear

	(Scientific computation) A property of a system whose output
	is not proportional to its input.  For example, a {transistor}
	has a region of input voltages for which its output voltage is
	found by multiplying the input voltage by the gain of the
	transistor.  Outside this region though, the transistor
	behaves non-linearly, meaning that it does not obey this
	simple equation.  The behaviour of a system containing
	non-linear components is thus harder to model and to predict.

	[{Jargon File}]

Non-Maintainer Upload

	<Debian> (NMU) A {release} of a package by someone other than
	its usual maintainer.

	<example>The bug was fixed in a recent NMU.</example>

	(2000-05-31)

Non-Maskable Interrupt

	(NMI) An IRQ 7 on the {PDP-11} or {680x0} or the NMI line on
	an 80x86.  In contrast with a {priority interrupt} (which
	might be ignored, although that is unlikely), an NMI is
	*never* ignored.

	(1994-12-13)

non-optimal solution

	(Or "sub-optimal solution") An astoundingly stupid way to do
	something.  This term is generally used in deadpan sarcasm, as
	its impact is greatest when the person speaking looks
	completely serious.

	See also {Bad Thing}.

	[{Jargon File}]

	(1994-12-13)

Nonpareil

	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)].  The others
	were {Brilliant}, {Diamond}, {Pearl} and {Ruby}.

non parity

	{parity}

non-polynomial

	<complexity> The set or property of problems for which no
	{polynomial-time algorithm} is known.

	This includes problems for which the only known {algorithms}
	require a number of steps which increases exponentially with
	the size of the problem, and those for which no {algorithm} at
	all is known.  Within these two there are problems which are
	"{provably difficult}" and "{provably unsolvable}".

	(1995-04-10)

Non Return to Zero Inverted

	<storage> (NRZI) A recording method used for 9-track {magnetic
	tapes} (200 and 800 BPI) where a zero is represented by a
	change in the signal and a one by no change.

	NRZI is also used extensively in {SDLC} communications.
	{VTAM} has a parameter NRZI=YES|NO.

	Compare {Phase Encoded}, {GCR}.

	(1999-01-11)

nontrivial

	Requiring real thought or significant computing power.  Often
	used as an understated way of saying that a problem is quite
	difficult or impractical, or even entirely unsolvable
	("Proving P=NP is nontrivial").  The preferred emphatic form
	is "decidedly nontrivial".

	See {uninteresting}, {interesting}.

	[{Jargon File}]

	(1995-02-21)

Non-Uniform Memory Access

	<architecture> (NUMA) A memory architecture, used in
	{multiprocessors}, where the access time depends on the memory
	location.  A processor can access its own local memory faster
	than non-local memory (memory which is local to another
	processor or shared between processors).

	(1995-11-12)

non-uniform quantising logarithmic compression

	The kind of {compression} often applied to a sound waveform.
	{Logarithmic compression} is a good match for the human ear's
	sensitivity but cannot handle zero amplitude (for which the
	logarithm is negative infinity).  There are two {standard}
	compression functions which give a smooth transition between
	the logarithmic function and a linear segment passing through
	the origin: {mu-law} (North America) and {A-law} ({ITU-T}).

	(1995-02-21)

Non-Uniform Rational B Spline

	<graphics, mathematics> (nurbs) A common term in Mechanical
	{CAD}.  The NURBS has excellent continuity characteristics
	which make it useful for creating accurate models in 3D
	geometry generation and computer modelling.

	[What is a nurbs?  an rbs?  a bs?  a s?]

	(1996-08-27)

non-volatile

	{non-volatile storage}

non-volatile memory

	{non-volatile storage}

Non-Volatile Random Access Memory

	<storage> (NVRAM) {Static random-access memory} which is made
	into {non-volatile storage} either by having a battery
	permanently connected or by saving its contents to {EEPROM}
	before turning the power off and reloading it when power is
	restored.

	(1995-04-22)

non-volatile storage

	<storage> (NVS, persistent storage, memory) A term describing
	a storage device whose contents are preserved when its power
	is off.  Storage using magnetic media (e.g. {magnetic disks},
	{magnetic tape} or {bubble memory}) is normally non-volatile
	by nature whereas {semiconductor} memories ({static RAM} and
	especially {dynamic RAM}) are normally volatile but can be
	made into non-volatile storage by having a (rechargable)
	battery permanently connected.

	{Dynamic RAM} is particularly volatile since it looses its
	data, even if the power is still on, unless it is {refresh}ed.
	An acoustic {delay line} is a (very old) example of a volatile
	storage device.

	Other examples of non-volatile storage are {EEPROM}, {CD-ROM},
	{paper tape} and {punched cards}.

	(2000-05-22)

noob

	{newbie}

no-op

	/noh'op/ alt. NOP /nop/ [no operation] 1. A machine
	instruction that does nothing (sometimes used in
	assembler-level programming as filler for data or patch areas,
	or to overwrite code to be removed in binaries).  See also
	{JFCL}.

	2. A person who contributes nothing to a project, or has
	nothing going on upstairs, or both.  As in "He's a no-op."

	3. Any operation or sequence of operations with no effect,
	such as circling the block without finding a parking space, or
	putting money into a vending machine and having it fall
	immediately into the coin-return box, or asking someone for
	help and being told to go away.  "Oh, well, that was a no-op."
	Hot-and-sour soup that is insufficiently either is "no-op
	soup"; so is wonton soup if everybody else is having
	hot-and-sour.

	[{Jargon File}]

	(1994-12-02)

NOR

	Not OR.

	The {Boolean} function which is true if none of its inputs are
	true and false otherwise, the {logical complement} of
	{inclusive OR}.  The binary (two-input) NOR function can be
	defined (written as an {infix} operator):

	A NOR B = NOT (A OR B) = (NOT A) AND (NOT B)

	Its {truth table} is:

		A | B | A NOR B
		--+---+---------
		F | F |    T
		F | T |	   F
		T | F |    F
		T | T |    F

	NOR, like {NAND}, forms a complete set of {Boolean} functions on
	its own since it can be used to make NOT, AND, OR and any
	other Boolean function:

	NOT A = A NOR A

	A OR B = NOT (A NOR B)

	A AND B = (NOT A) NOR (NOT B)

	(1995-02-06)

NORC COMPILER

	Early system on NORC machine.  Listed in CACM 2(5):16 (May
	1959).

NorCroft

	(Contraction of Norman + Mycroft) A company producing {C}
	compilers, set up by Arthur Norman and Alan Mycroft.  Now
	"sort of" called Codemist.  The original Norcroft compiler was
	written by Alan and Arthur to provide a {platform} for
	teaching languages and compilers on the {Cambridge University}
	{mainframe}.  They then went on to develop versions for the
	{transputer}, {ARM} and others.

	[What is the relationship between NorCroft and Codemist?]

	(1994-10-25)

NORD PL

	Intermediate language for {Norsk Data} computers.  {Sintran
	III}, the {operating system} of the ND 10 (late 1970's), was
	written in NORD PL.

	["NORD PL User's Guide", ND-60.047.03].

NORDUnet

	<networking, body> (Nordic Universities Network?) A
	collaboration between the national research networks in
	Denmark, Finland, Iceland, Norway and Sweden.  It provides
	international access for these countries.

	{(http://info.nordu.net/)}.

	(1998-07-05)

norm

	<mathematics> A real-valued {function} modelling the length of
	a {vector}.  The norm must be {homogeneous} and {symmetric}
	and fulfil the following condition: the shortest way to reach
	a point is to go straight toward it.  Every {convex} symmetric
	{closed} surface surrounding point 0 introduces a norm by
	means of {Minkowski functional}; all vectors that end on the
	surface have the same norm then.

	The most popular norm is the {Euclidean norm}.

	(2004-02-15)

normal distribution

	<statistics> (Or "Gaussian distribution") The {frequency
	distribution} of many natural phenomena such as the height or
	intelligence of people of a certain age and sex.  The formula
	looks something like:

		P(x) = e^(((x-m)/s)^2)

	where P(x) is the probability of a measurement x, m is the
	mean value of x and s is the {standard deviation}.

	Also known as a "bell curve" because of its shape.

	(2003-10-25)

normal form

	1. <reduction> In {reduction} systems, the state of a term
	which contains no reducible expressions.  Variants include
	{head normal form}, {weak head normal form}.

	2. <database> See {database normalisation}.

normalisation

	1. <data processing> A transformation applied uniformly to
	each element in a set of data so that the set has some
	specific statistical property.  For example, monthly
	measurements of the rainfall in London might be normalised by
	dividing each one by the total for the year to give a profile
	of rainfall throughout the year.

	2. <programming> Representation of a {floating-point} number
	so that its {mantissa}'s left-most digit is non-zero.  If the
	leftmost fraction digit are zeros, the number is said to be
	unnormalised.  Unnormalised numbers are normalised by shifting
	the fraction left, one digit at a time, until the leftmost
	digit is nonzero and reducing the {exponent} by the number of
	shifts.

	3. <database> {database normalisation}.

	(1998-04-15)

normalised

	{normalisation}

normal order reduction

	Under this {evaluation strategy} an expression is evaluated by
	reducing the leftmost outermost {redex} first.  This method
	will terminate for any expression for which termination is
	possible, whereas {applicative order reduction} may not.  This
	method is equivalent to passing arguments unevaluated because
	arguments are initially to the right of functions applied to
	them.  See also {computational adequacy theorem}.

normed space

	<mathematics> A {vector space} with a {function}, ||F||, such
	that

	 ||F|| = 0 if and only if F=0
	 ||aF|| = abs(a) * ||F||
	 ||F+G|| <= ||F|| + ||G||

	Roughly, a distance between two elements in the space is
	defined.

	(2000-03-10)

northbridge

	<architecture> The single {integrated circuit} in a {core
	logic} {chip set} that connects the {CPU} to the {system
	memory} and the {AGP} and {PCI} busses.  Other functions are
	provided by the {southbridge} chip.

	{(http://maximumpc.com/terminator/terminator_n.html)}.

	(2000-01-15)

NorthWestNet

	(NWNET) Kochmer, J., and NorthWestNet, "The Internet Passport:
	NorthWestNets Guide to Our World Online", NorthWestNet,
	Bellevue, WA, 1992.

NOS

	{Network Operating System}

NOT

	<logic> The {Boolean} function which is true only if its input
	is false.  Its {truth table} is:

	 A | NOT A
	 --+----------
	 F |   T
	 T |   F

	(1996-11-04)

Not-a-Number

	<mathematics> (NaN) An {IEEE floating point} representation
	for the result of a numerical operation which cannot return a
	valid number value.  A NaN can result from multiplying an
	infinity by a zero, or from subtracting one infinity from
	another [what else?].

	NaN is encoded as a special {bit pattern} [what pattern?]
	which would otherwise represent a {floating-point} number.  It
	is used to signal error returns where other mechanisms are not
	convenient, e.g. a hardware {floating-point unit} and to allow
	errors to propagate through a calculation.

	Similar bit patterns represent positive and negative
	{overflow} and {underflow} and the positive and negative
	infinities resulting from {division by zero}.

	{Bit patterns
	(http://psc.edu/general/software/packages/ieee/ieee.html)}.

	[ANSI/IEEE Std 754-1985].

	[Correct?]

	(2001-04-01)

notebook

	1. <computer> {laptop computer}.

	2. <tool> {Labtech Notebook}.

	(1998-01-05)

NoteCards

	An ambitious hypertext system developed at Xerox PARC,
	"designed to support the task of transforming a chaotic
	collection of unrelated thoughts into an integrated, orderly
	interpretation of ideas and their interconnections".

Notepad

	<text, tool> The very basic {text editor} supplied with
	{Microsoft Windows}.

	(1998-01-05)

Notes

	{Lotus Notes}

Nother

	A parallel {symbolic mathematics} system.

	E-mail: <karhu@cs.umu.se>.

not ready for prime time

	Usable, but only just so; not very robust; for internal use
	only.  Said of a program or device.  Often connotes that the
	thing will be made more solid {Real Soon Now}.  This term
	comes from the ensemble name of the original cast of "Saturday
	Night Live", the "Not Ready for Prime Time Players".  It has
	extra flavour for hackers because of the special (though now
	semi-obsolescent) meaning of {prime time}.  Compare {beta}.

	[{Jargon File}]

notspot

	<networking, humour> In contrast with {wireless hotspot}, a
	place where there is no means to connect to the {Internet}.
	While the term "{hotspot}" refers to a {wireless local area
	network}, "notspot" might also mean a place without decent
	{DSL} (broadband Internet) connection.

	(2009-05-28)

notwork

	<networking, humour> /not'werk/ A network that is performing
	badly.

	Said at IBM to have originally referred to a particular period
	of flakiness on IBM's VNET corporate network ca. 1988; but
	there are independent reports of the term from elsewhere.

	The joke sounds better in Russian, where "nyet" means "no",
	hence nyetwork /nyet'werk/.

	(2009-05-28)

Nova

	<processor> A {minicomputer}(?) introduced by {Data General}
	in 1969, with four 16-bit {accumulators}, AC0 to AC3, and a
	15-bit {program counter}.  A later model also had a 15-bit
	{stack pointer} and {frame pointer}.  AC2 and AC3 could be
	used for {indexed addressing} and AC3 was used to store the
	return address on a {subroutine} call.  Apart from the small
	{register set}, the NOVA was an ordinary {CPU} design.

	Memory could be accessed indirectly through addresses stored
	in other memory locations.  If locations 0 to 3 were used for
	this purpose, they were auto-incremented after being used.  If
	locations 4 to 7 were used, they were auto-decremented.
	Memory could be addressed in 16-bit words up to a maximum of
	32K words (64K bytes).  The instruction cycle time was 500
	{nanoseconds}(?).  The Nova originally used {core memory},
	then later {dynamic RAM}.

	Like the {PDP-8}, the {Data General} Nova was also copied, not
	just in one, but two implementations - the {Data General
	MN601} and {Fairchild 9440}.  Luckily, the NOVA was a more
	mature design than the PDP-8.

	Another CPU, the {PACE}, was based on the NOVA design, but
	featured 16-bit addresses (instead of the Nova's 15), more
	{addressing modes}, and a 10-level {stack} (like the {Intel
	8008}).

	[Speed, mini?]

	(2003-10-23)

Novell Data Systems

	<company> A small computer {hardware} company building {CP/M}
	{Z80}-based systems.  They later went on to become {Novell,
	Inc.} and develop {Novell Netware}.

	(1995-09-23)

Novell DOS

	<operating system, product> {Novell}'s fully compatible
	alternative to {MS-DOS}.  It is intended as an {operating
	system} for {workstations} on {Novell} networks.  It features
	enhanced {memory management} that moves the operating system,
	{network drivers}, and {memory-resident programs} ({TSRs}) out
	of conventional memory on all systems with an {Intel 80286} or
	later processor and {extended memory} or {expanded memory}.
	It supports {preemptive multitasking} and {peer-to-peer
	networking} using the same {DOS Requester} and {VLMs} for a
	"common client" with native {Novell NetWare}.

	A data {compression} utility effectively doubles storage
	capacity of the hard disk.  It supports disk
	{defragmentation}, a read/write {disk cache} for better
	performance of both DOS and {Microsoft Windows} {application
	programs}.  An undelete utility recovers erased files, even on
	network drives.  It has a complete on-line reference guide,
	command help, and menu-driven install and setup utilities for
	easy configuration changes.

	Novell DOS has internal and external commands like {MS-DOS}.
	The following commands have been significantly enhanced in
	Novell DOS: CHKDSK, DISKCOPY, HELP, MEM, REPLACE, UNDELETE,
	and XCOPY.  Novell DOS also includes many new commands such as
	XDIR, CURSOR, XDEL, TOUCH, SCRIPT, and RENDIR.

	Version: 7.

	(1995-04-14)

Novell, Inc.

	<company, networking> A {software} development company
	specialising in {network}ing and {workgroup} applications.

	{Novell} started life as {Novell Data Systems}, a computer
	hardware business.  The company was reorganised as Novell,
	Inc., and began to focus almost entirely on networking in
	1983, with the release of {Novell Netware} 1, a {Network
	Operating System} for {IBM PCs}.

	{Novell Netware}'s success has left Novell in a dominant
	position in the {network}ing market.  The product has evolved
	and now supports many {hardware} and {software} {platforms}
	together with {WAN} connectivity.

	The company has diversified in recent years, with the
	acquisition of several mainstream applications, including
	{Wordperfect} and {Quattro} Pro.  Other products include
	{UnixWare}, {AppWare}, {Personal NetWare}, {Groupwise} and
	{Novell Dos 7}.

	{(http://novell.com/)}.

	(21 Sept 1995)

Novell NetWare

	<operating system, networking> {Novell, Inc.}'s proprietary
	networking {operating system} for the {IBM PC}.

	NetWare uses the {IPX}/{SPX}, {NetBEUI} or {TCP/IP} network
	{protocols}.  It supports {MS-DOS}, {Microsoft Windows},
	{OS/2}, {Macintosh} and {Unix} {clients}.  NetWare for Unix
	lets users access Unix hosts.

	NetWare 2.2 is a 16-bit operating system, versions 4.x and 3.x
	are 32-bit operating systems.

	{(http://netware.novell.com/)}.

	{Usenet} newsgroup: {news:comp.sys.novell}.

	["Netware", K. Siyan, pub. New Riders].

	[LAN Magazine, Sep 1993].

	(1996-01-13)

NOWEB

	<programming> A system of {structured programming} and
	documentation from M.Speh in {DESY}.

	See {literate programming}.

	(1996-01-13)

no-write allocation

	<memory management> A {cache} policy where only processor
	reads are cached, thus avoiding the need for {write-back} or
	{write-through}.

	(1996-06-12)

NP

	<complexity> {nondeterministic polynomial time}.

	[{Jargon File}]

np

	<networking> The {country code} for Nepal.

	(1999-01-27)

NPC

	1. <complexity> {NP-complete}.

	2. <architecture> {Next Program Counter}.

	(2000-07-12)

NP-complete

	<complexity> (NPC, Nondeterministic Polynomial time complete)
	A set or property of computational {decision problems} which
	is a subset of {NP} (i.e. can be solved by a
	{nondeterministic} {Turing Machine} in {polynomial} time),
	with the additional property that it is also {NP-hard}.  Thus
	a solution for one NP-complete problem would solve all
	problems in NP.  Many (but not all) naturally arising problems
	in class NP are in fact NP-complete.

	There is always a {polynomial-time algorithm} for transforming
	an instance of any NP-complete problem into an instance of any
	other NP-complete problem.  So if you could solve one you
	could solve any other by transforming it to the solved one.

	The first problem ever shown to be NP-complete was the
	{satisfiability problem}.  Another example is {Hamilton's
	problem}.

	See also {computational complexity}, {halting problem},
	{Co-NP}, {NP-hard}.

	{(http://fi-www.arc.nasa.gov/fia/projects/bayes-group/group/NP/)}.

	[Other examples?]

	(1995-04-10)

NP-hard

	<complexity> A set or property of computational {search
	problems}.  A problem is NP-hard if solving it in {polynomial
	time} would make it possible to solve all problems in class
	{NP} in polynomial time.

	Some NP-hard problems are also in {NP} (these are called
	"{NP-complete}"), some are not.  If you could reduce an {NP}
	problem to an NP-hard problem and then solve it in polynomial
	time, you could solve all NP problems.

	See also {computational complexity}.

	[Examples?]

	(1995-04-10)

NP-hilarious

	<humour> An {algorithm} whose complexity is a joke, either
	literally, as in {BogoSort}, or metaphorically.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-06-28)

NPL

	1. New Programming Language.  IBM's original (temporary) name
	for PL/I, changed due to conflict with England's "National
	Physical Laboratory."  MPL and MPPL were considered before
	settling on PL/I.  Sammet 1969, p.542.

	2. A {functional language} with {pattern matching} designed by
	Rod Burstall and John Darlington in 1977.  The language
	allowed certain sets and logic constructs to appear on the
	right hand side of definitions, E.g.

		setofeven(X) <= <:x: x in X & even(x) :>

	The NPL {interpreter} evaluates the list of {generators} from
	left to right so conditions can mention any bound variables
	that occur to their left.  These were known as {set
	comprehensions}.  NPL eventually evolved into {Hope} but lost
	set comprehensions which were called {list comprehensions} in
	later functional languages.

	[John Darlington, "Program Transformation and Synthesis:
	Present Capabilities", Research Report No. 77/43, Dept. of
	Computing and Control, Imperial College of Science and
	Technology, London September 1977.]

	3. NonProcedural Language.  A {relational database} language
	developed by T.D. Truitt et al in 1980 for {Apple II} and
	{MS-DOS}.

	["An Introduction to Nonprocedural Languages Using NPL",
	T.D. Truitt et al, McGraw-Hill 1983].

NPPL

	Network Picture Processing Language.  An interactive language
	for manipulation of {digraphs}.

	["A Graph Manipulator for On-line Network Picture Processing",
	H.A. DiGiulio, Proc FJCC 35 (1969)].

N-Prolog

	{Prolog} extended with explicit negation.  Dov Gabbay
	<dg@doc.ic.ac.uk>.

	[J Logic Programming].

NP time

	{nondeterministic polynomial time}

NP tricky

	<humour> A play on {NP hard} describing an {algorithm} or piece of
	code that is too complicated for a mere mortal to understand.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-06-18)

NQS

	Batch processing software for Unix systems.

Nqthm

	The language used in the {Boyer-Moore} {theorem prover}.

	["Proving Theorems About LISP Functions", R.S. Boyer et al
	JACM 22(1):129-144 (Jan 1975)].

nr

	<networking> The {country code} for Nauru.

	(1999-01-27)

NREN

	{National Research and Education Network}

nroff

	<language> /N'rof/ [Unix, from "new {roff}"] A {text formatting
	language} and interpreter, companion to the Unix typesetter
	{troff}, accepting identical input but preparing output for
	terminals and line printers.  See also {groff}.

	[{Jargon File}]

	(2012-12-14)

NRZ

	{Non Return to Zero}

NRZI

	{Non Return to Zero Inverted}

ns

	{nanosecond}

NS16000

	{National Semiconductor 16000}

NS32000

	{National Semiconductor 32000}

NSA line eater

	<messaging, tool> The National Security Agency trawling
	program sometimes assumed to be reading the net for the US
	Government's spooks.  Most hackers describe it as a mythical
	beast, but some believe it actually exists, more aren't sure,
	and many believe in acting as though it exists just in case.
	Some netters put loaded phrases like "KGB", "Uzi", "nuclear
	materials", "Palestine", "cocaine", and "assassination" in
	their {sig blocks} to confuse and overload the creature.  The
	{GNU} version of {Emacs} actually has a command that randomly
	inserts a bunch of insidious anarcho-verbiage into your edited
	text.

	There is a mainstream variant of this myth involving a "Trunk
	Line Monitor", which supposedly used speech recognition to
	extract words from telephone trunks.  This one was making the
	rounds in the late 1970s, spread by people who had no idea of
	then-current technology or the storage, {signal-processing},
	or {speech recognition} needs of such a project.  On the basis
	of mass-storage costs alone it would have been cheaper to hire
	50 high-school students and just let them listen in.
	Speech-recognition technology can't do this job even now
	(1993), and almost certainly won't in this millennium, either.

	The peak of silliness came with a letter to an alternative
	paper in New Haven, Connecticut, laying out the factoids of
	this Big Brotherly affair.  The letter writer then revealed
	his actual agenda by offering - at an amazing low price, just
	this once, we take VISA and MasterCard - a scrambler
	guaranteed to daunt the Trunk Trawler and presumably allowing
	the would-be Baader-Meinhof gangs of the world to get on with
	their business.

	[{Jargon File}]

	(1994-12-13)

NSAPI

	{Netscape Application Programming Interface}

NSDI

	{National Spatial Data Infrastructure}

NSE

	Network Software Environment: a proprietary CASE framework
	from Sun Microsystems.

NSF

	{National Science Foundation}

NSFIP

	<operating system> {NEXTSTEP} For {Intel} Processor.

	(1999-11-25)

NSFNET

	{National Science Foundation Network}

NSI

	{Network Solutions, Inc.}

nslookup

	<networking> A {Unix} {utility program}, originally by Andrew
	Cherenson, for querying {Internet} {domain name servers}.  The
	basic use is to find the {IP address} corresponding to a
	given {hostname} (or vice versa).  By changing the query type
	(e.g. "set type=CNAME") other types of information can be
	obtained including CNAME - the {canonical name} for an alias;
	HINFO - the host {CPU} and {operating system} type; MINFO -
	mailbox or mail list information; {MX} - {mail exchanger}
	information; NS - the {name server} for the named zone; PTR -
	the hostname if the query is an IP address, otherwise
	the pointer to other information; SOA the domain's
	start-of-authority information; TXT - text information; UINFO
	- user information; WKS - supported {well-known services}.
	Other types (ANY, AXFR, MB, MD, MF, NULL) are described in
	{RFC 1035}.

	{(ftp://src.doc.ic.ac.uk/computing/operating-systems/unix/bsd-sources/usr.sbin/named/tools/nslookup/)}.

	(1994-10-27)

NSRD

	{National Software Reuse Directory}

NSS

	1. <networking> {Nodal Switching System}.

	2. <operating system> {New Storage System}.

	(1997-01-29)

NT

	1. {Network Termination}.

	2. New Technology, as in {Windows NT}.

NT1

	{Network Termination}

NT5

	{Windows 2000}

ntalk

	<chat> ("new talk") An update of the {Unix} "{talk}" program,
	old versions of "talk" being referred to as "old talk".  New
	talk and old talk are generally incompatible, and attempts to
	get them to communicate result in entirely unhelpful error
	messages.

	On most modern {Unix} systems, the program "talk" is new talk,
	with some {SunOS} versions being a notable and annoying
	exception to this.

	(1997-09-11)

NTAS

	{NT Advanced Server}

NT File System

	<file system> (NTFS) The {native} {file system} of {Windows
	NT}.

	(1995-03-06)

NTFS

	{NT File System}

n-tier

	{three-tier}

NTIS

	{National Technical Information Service}

NTMBS

	<programming> {null-terminated multibyte string}.

	(1995-10-02)

NTP

	{Network Time Protocol}

NTSC

	{National Television Standards Committee}

NTU

	{Network Termination Unit}

nu

	<networking> The {country code} for Niue.

	(1999-01-27)

	Because it sounds like "new", nu is heavily
	used for {vanity domains}.

	(1999-01-27)

NuBus

	The proprietary {expansion bus} used on Apple {Macintosh}
	{personal computers}.

	(1995-02-03)

nu-calculus

	An asynchronous version of {pi-calculus}.

NUCLEOL

	List processing language, influenced by EOL.  J. Nievergelt,
	Computer J 13(3) (Aug 1970).

nude

	Said of machines delivered without an operating system
	(compare {bare metal}).  "We ordered 50 systems, but they all
	arrived nude, so we had to spend a an extra weekend with the
	installation tapes."  This usage is a recent innovation
	reflecting the fact that most PC clones are now delivered with
	DOS or Microsoft Windows pre-installed at the factory.  Other
	kinds of hardware are still normally delivered without OS, so
	this term is particular to PC support groups.

	[{Jargon File}]

	(1994-12-13)

nuke

	/n[y]ook/ 1. To intentionally delete the entire contents of a
	given directory or storage volume.  "On Unix, "rm -r /usr"
	will nuke everything in the usr file system."  Never used for
	accidental deletion.

	2. Synonym for {dike}, applied to smaller things such as
	files, features, or code sections.  Often used to express a
	final verdict.  "What do you want me to do with that 80-meg
	{wallpaper} file?"  "Nuke it."

	3. Used of processes as well as files; nuke is a frequent
	verbal alias for "kill -9" on Unix.

	4. On IBM PCs, a bug that results in {fandango on core} can
	trash the operating system, including the FAT (the in-core
	copy of the disk block chaining information).  This can
	utterly scramble attached disks, which are then said to have
	been "nuked".  This term is also used of analogous lossages on
	Macintoshes and other micros without memory protection.

	[{Jargon File}]

null

	<programming> A special value used in several languages to
	represent the thing referred to by an uninitialised pointer.

	<database> A special value that may be stored in some database
	columns to represent an unknown, missing, not applicable, or
	undefined value.  Nulls are treated completely differently
	from ordinary values when evaluating SQL expressions and there
	are several SQL constructs for dealing with nulls.

	(2003-06-17)

nullary

	<programming> A description of an {operator} or {function}
	which takes no {arguments}, e.g. a function that returns the
	current time.

	"Nullary" is part of the {unary}, {binary}, {ternary}
	sequence, and is more common than its synonym {niladic}.

	(2001-02-25)

null modem

	<communications, hardware> A cable, especially an {EIA-232}
	cable, for connecting serial ports on two computers directly,
	rather than via modems.  Since, according to the
	specification, both computers should transmit on pin three of
	their EIA-232 connectors and receive on pin two, a null modem
	cable needs to connect one computer's pin two to the other's
	pin three and vice versa.  It also needs to have male
	connectors at both ends (again, according to the
	specification).

	(1996-05-17)

null-terminated multibyte string

	<programming> (NTMBS) (Defined in the {ANSI C++} draft)

	[Different from null-terminated string?]

	(1995-10-02)

NUMA

	{Non-Uniform Memory Access}

Number 5 Electronic Switching System

	<communications> (5ESS) An electronic {circuit switching} product
	sold by {Alcatel Lucent} (formerly {Western Electric}/{AT&T
	Network Systems}/{Lucent Technologies}), used by many telephone
	exchange carriers and service providers.  Succeeded the Number 4
	Electronic Switching System (4ESS) and reached widespread use in
	the 1980s.

	Not to be confused with the {Class 5 Switch}.

	(2013-09-14)

number crunching

	<application, jargon> Computations of a numerical nature,
	especially those that make extensive use of {floating-point}
	numbers.  The only thing {Fortrash} is good for.

	This term is in widespread informal use outside hackerdom and
	even in mainstream slang, but has additional hackish
	connotations: namely, that the computations are mindless and
	involve massive use of {brute force}.  This is not always
	{evil}, especially if it involves {ray tracing} or {fractals}
	or some other use that makes {pretty pictures}, especially if
	such pictures can be used as {wallpaper}.

	See also {crunch}.

	[{Jargon File}]

	(1995-03-17)

number keys

	{keypad}

numbers

	(Scientific computation) Output from a computation that may
	not be significant but at least indicates that the program is
	running.  Numbers may be used to placate management, grant
	sponsors, etc.  "Making numbers" means running a program
	because output - any output, not necessarily meaningful output
	- is needed as a demonstration of progress.

	See {pretty pictures}, {math-out}, {social science number}.

	[{Jargon File}]

	(1995-01-13)

number sign

	<character> {hash}.

numeric keypad

	<hardware> A {keypad} that has become a standard feature of
	{PC} {keyboards}, consisting of a rectangular array of 17
	extra keys at the right-hand end: 0-9, {.}, {Num Lock}, {/},
	{*}, {-}, {+} and {Enter}.  Apart from Num Lock, these
	typically duplicate the function of other keys but are
	designed to make entering basic numerical calculations as
	quick as on a {digital calculator}.  It is often possible to
	assign completely different functions to these keys according
	to the needs of a particular application.

	(2007-01-31)

Numeris

	The name given by France Telecom, the french telephone network
	operator, to its {ISDN} network.

	(1995-01-31)

Nuprl

	/nyu p*rl/ Nearly Ultimate PRL.

	A system for interactive creation of formal mathematics,
	including definitions and proofs.  It has an extremely rich
	type system, including dependent functions, products, sets,
	quotients and universes.  Types are first-class citizens.
	It is built on {Franz Lisp} and {Edinburgh ML}.

	["Implementing Mathematics in the Nuprl Proof Development
	System", R.L. Constable et al, P-H 1986].

	(1994-12-13)

NU-Prolog

	L. Naish, U Melbourne.  A Prolog with 'when' declarations, the
	successor to MU-Prolog.  Type-checked.  "NU-Prolog Reference
	Manual - Version 1.3", J.A. Thom et al eds, TR 86/10, U
	Melbourne (1988).  Available (but not free).  (See
	PNU-Prolog).  E-mail: <jas@mulga.oz.au>.

nurbs

	{Non-Uniform Rational B Spline}

Nu Thena

	A software vendor specialising in rapid prototyping tools for
	{real-time} hardware and software systems and collaborating
	with {DAZIX}.

NUXI problem

	<data, architecture> /nuk'see pro'bl*m/ The problem of
	transferring data between computers with differing {byte
	order}.  The string "Unix" might look like "NUXI" on a machine
	with a different "byte sex" (e.g. when transferring data from
	a {little-endian} to a {big-endian}, or vice-versa).

	See also {middle-endian}, {swab}, and {bytesexual}.

	[{Jargon File}]

	(2001-06-12)

NVL

	<database> A {function} in {Oracle} {SQL} called like NVL(X,
	Y) that returns X unless it is null, in which case it returns
	Y.  This function is useful for supplying a default value
	where an expression might be null.

	(2010-01-28)

NVRAM

	{Non-Volatile Random Access Memory}

NVS

	{Non-Volatile Storage}

NWNET

	{NorthWestNet}

NYAP

	<language> An early system on the {IBM 704}.

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

	(1997-12-03)

nybble

	{nibble}

nyetwork

	{notwork}

nym

	1. <tool, networking> /nim/ (From the third syllable of
	"anonymous"; or "nym server") A {server} that functions as an
	{anonymous remailer}.

	2. A popular {hostname} for nym servers.

	3. A mail-forwarding {account} on a {nym server}.

	(1999-02-26)

nym server

	{nym}

Nyquist frequency

	<DSP> The highest frequency that can be represented in a
	digital signal of a specified {sampling frequency}.  It is
	equal to one-half of the sampling rate.

	See {Nyquist Theorem}.

	(2001-06-06)

Nyquist Theorem

	<communications> A theorem stating that when an {analogue}
	waveform is digitised, only the frequencies in the waveform
	below half the {sampling frequency} will be recorded.  In
	order to reconstruct (interpolate) a signal from a sequence of
	samples, sufficient samples must be recorded to capture the
	peaks and troughs of the original waveform.  If a waveform is
	sampled at less than twice its frequency the reconstructed
	waveform will effectively contribute only {noise}.  This
	phenomenon is called "aliasing" (the high frequencies are
	"under an alias").

	This is why the best digital audio is sampled at 44,000 Hz -
	twice the average upper limit of human hearing.

	The Nyquist Theorem is not specific to digitised signals
	(represented by discrete amplitude levels) but applies to any
	sampled signal (represented by discrete time values), not just
	sound.

	{Nyquist
	(http://geocities.com/bioelectrochemistry/nyquist.htm)}
	(the man, somewhat inaccurate).

	(2003-10-21)

NYSERNET

	{New York State Educational Reasearch NETwork}

NYU OMNIFAX

	Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
	1959).

nz

	<networking> The {country code} for New Zealand.

	(1999-01-27)

O

	<character> {ASCII} code 79, The letter of the alphabet, not
	to be confused with 0 ({zero}) the digit.

	(1999-02-07)

O2

	Object-Oriented.  {Object-oriented database} language used in
	the {Altair} project.  Implemented as an {interpreter}.  GIP
	Altair, Versailles, France.  Francois Bancilhon et al, in
	Advances in Object-Oriented Database Systems, K.R. Dittrich
	ed, LNCS 334, Springer 1988.  See {CO2}.

Oaklisp

	<language> A portable {object-oriented} {Scheme} by K. Lang
	and Barak Perlmutter of {Yale}.  Oaklisp uses a superset of
	Scheme {syntax}.  It is based on generic operations rather
	than functions, and features {anonymous classes}, {multiple
	inheritance}, a strong error system, {setters} and {locators}
	for operations and a facility for {dynamic binding}.

	Version 1.2 includes an interface, {bytecode compiler},
	{run-time system} and documentation.

	{(ftp://f.gp.cs.cmu.edu/usr/bap/oak/ftpable/)}, {for Amiga
	(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff519)}.

	["Oaklisp: An Object-Oriented Scheme with First-Class Types",
	K. Lang et al, SIGPLAN Notices 21(11):30-37 (Nov 1986) (OOPSLA
	'86)].

	(1992-05-01)

OAP

	{Outside Awareness Port}

OASIS Open Document Format for Office Applications

	{OpenDocument}

OATH

	Object-oriented Abstract Type Hierarchy, a class library for
	C++ from {Texas Instruments}.

Ob-

	/ob/ prefix Obligatory.  A piece of {netiquette} acknowledging
	that the author has been straying from the newsgroup's charter
	topic.  For example, if a posting in alt.sex is a response to
	a part of someone else's posting that has nothing particularly
	to do with sex, the author may append "ObSex" (or "Obsex") and
	toss off a question or vignette about some unusual erotic act.
	It is considered a sign of great {winnitude} when one's Obs
	are more interesting than other people's whole postings.

	[{Jargon File}]

OBDC

	Do you mean {ODBC}?

	(1996-06-30)

OBE

	{Office By Example}

Oberon

	<language> A {strongly typed} {procedural} programming
	language and an operating environment evolved from {Modula-2}
	by {Nicklaus Wirth} in 1988.  Oberon adds type extension
	({inheritance}), extensible record types, multidimensional
	open arrays, and {garbage collection}.  It eliminates {variant
	records}, {enumeration types}, {subranges}, lower array
	indices and {for loops}.

	A successor called Oberon-2 by H. Moessenboeck features a
	handful of extensions to Oberon including type-bound
	procedures ({methods}).

	Seneca is a variant of Oberon focussing on numerical
	programming under development by R. Griesemer in April 1993
	(to be renamed).

	See also {Ceres workstation Oberon System}.

	{(http://oberon.ethz.ch)}.

	{(http://math.tau.ac.il/~laden/Oberon.html)}.

	{Free ETH Oberon (ftp://ftp.inf.ethz.ch/pub/Oberon)}.  {MS-DOS
	(ftp://ftp.wustl.edu/mirrors/msdos/pgmutl/)}.  {Amiga
	(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/ff380)}.

	["The Programming Language Oberon", N. Wirth, Soft Prac & Exp
	18(7):671-690 July 1988].

	["Programming in Oberon: Steps Beyond Pascal and Modula",
	M. Reiser & N. Wirth, A-W 1992].

	["Project Oberon: the design of an operating system and
	compiler", N. Wirth & J. Gutknecht, ACM Press 1992].

	["The Oberon Companion: A Guide to Using and Programming
	Oberon System 3", André Fischer, Hannes Marais, vdf Verlag der
	Fachhochschulen, Zurich, 1997, ISBN 3-7281-2493-1.  Includes
	CD-ROM for Windows, Linux, Macintosh and PC Native].

	(1998-03-14)

Oberon-2

	<language> A superset of {Oberon-1}, developed by
	H. Moessenboeck in 1991 to add {object-orientation}.  Oberon-2
	was a redesign of {Object Oberon}.  It included type-bound
	{procedures} (equivalent to {methods}), read-only export of
	variables and {record fields}, open {array} variables, and a
	"{with}" statement with variants.  It reintroduced the "{for}"
	statement.

	There is an Oberon-2 {Lex} scanner and {Yacc} {parser} by
	Stephen J Bevan of Manchester University, UK, based on the one
	in the Mo"ssenbo"ck and Wirth reference.  Version 1.4.

	{(ftp://neptune.inf.ethz.ch/Oberon/)}.

	{(ftp://ftp.psg.com/pub/oberon/)}.

	["The Programming Language Oberon-2", H. Mo"ssenbo"ck,
	N. Wirth, Institut fu"r Computersysteme, ETH Zu"rich, January
	1992].

	["Second International Modula-2 Conference", Sept 1991].

	(1992-07-06)

Oberon-V

	(Formerly Seneca).  R. Griesemer, 1990.  Descendant of Oberon
	designed for numerical applications on supercomputers,
	especially vector or pipelined architectures.  Includes array
	constructors and an ALL statement.  "Seneca - A Language for
	Numerical Applications on Vectorcomputers", Proc CONPAR 90 -
	VAPP IV Conf.  R. Griesemer, Diss Nr. 10277, ETH Zurich.

OBEX

	{Object Exchange}

obfuscated

	<programming> Made unclear, used to describe {source code}
	that has been transformed or written to make it as hard as
	possible to read, usually for fun, as in the {Obfuscated C
	Contest}.  A {japh} is a kind of obfuscated {Perl} program.

	The term is not normally used for code that has been
	transformed for security purposes, e.g. to enforce some kind
	of licencing mechanism.

	(2009-05-14)

Obfuscated C Contest

	<programming> The International Obfuscated C Code Contest
	(IOCCC) is an annual contest run since 1984 over {Usenet} by
	Landon Curt Noll and friends.  The overall winner is whoever
	produces the most unreadable, creative, and bizarre (but
	working) {C} program.  Various other prizes are awarded at the
	judges' whim.  C's terse {syntax} and {macro-preprocessor}
	facilities give contestants a lot of maneuvering room.  The
	winning programs often manage to be simultaneously funny,
	breathtaking works of art and horrible examples of how *not*
	to code in C.

	This relatively short and sweet {hello, world} program
	demonstrates obfuscated C:

	 /* HELLO WORLD program
	  * by Jack Applin and Robert Heckendorn, 1985 */

	 main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
	 (!!c)[*c]&&(v--||--c&&execlp(*c,*c,c[!!c]+!!c,!c));
	 **c=!c)write(!!*c,*c,!!**c);}

	Here's another good one:

	 /* Program to compute an approximation of pi
	  * by Brian Westley, 1988 */

	 #define _ -F<00||--F-OO--;
	 int F=00,OO=00;
	 main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
	 {
		    _-_-_-_
	       _-_-_-_-_-_-_-_-_
	    _-_-_-_-_-_-_-_-_-_-_-_
	  _-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	 _-_-_-_-_-_-_-_-_-_-_-_-_-_-_
	  _-_-_-_-_-_-_-_-_-_-_-_-_-_
	    _-_-_-_-_-_-_-_-_-_-_-_
		_-_-_-_-_-_-_-_
		    _-_-_-_
	 }

	Note that this program works by computing its own area.  For
	more digits, write a bigger program.

	[{Jargon File}]

obi-wan error

	<programming> /oh'bee-won" er"*r/ (RPI, from "off-by-one" and
	the Obi-Wan Kenobi character in "Star Wars") A kind
	of {off-by-one error}.

	(2009-05-14)

OBJ

	Joseph Goguen 1976.  A family of declarative "ultra high
	level" languages.  Abstract types, generic modules, subsorts
	(subtypes with {multiple inheritance}), pattern-matching
	modulo equations, E-strategies (user control over laziness),
	module expressions (for combining modules), theories and views
	(for describing module interfaces).  For the massively
	parallel RRM (Rewrite Rule Machine).

	["Higher-Order Functions Considered Unnecessary for
	Higher-Order Programming", J.A. Goguen, in Research Topics in
	Functional Programming].

OBJ0

	Tardo.  Based on unsorted equational logic.

OBJ2

	Clear-like parametrised modules.  A functional system based on
	equations.  "Principles of OBJ2", K. Futatsugi et al, 12th
	POPL, ACM 1985, pp.52-66.

OBJ3

	<language> A version of {OBJ} based on {order-sorted
	rewriting}.  OBJ3 is {agent}-oriented and runs on {AKCL}.

	E-mail: <obj3sys@crl.sri.com>, <obj3dist@csl.sri.com>.

	["Introducing OBJ3", J. Goguen et al, SRI-CSL-88-9, SRI Intl,
	1988].

	(1995-03-16)

object

	<object-oriented> In {object-oriented programming}, an
	instance of the data structure and behaviour defined by the
	object's {class}.  Each object has its own values for the
	{instance variables} of its class and can respond to the
	{methods} defined by its class.

	For example, an object of the "Point" class might have
	instance variables "x" and "y" and might respond to the "plot"
	method by drawing a dot on the screen at those coordinates.

	(2004-01-26)

ObjectBroker

	<programming> A distributed {object} system from {DEC} based
	on the {CORBA} standard.

	(1999-01-14)

ObjectCenter

	A product offering similar facilities to CodeCenter for the
	C++ language, plus class browsing facilities etc (formerly
	Saber-C++).

Object CHILL

	["Object CHILL - An Object Oriented Language for Systems
	Implementation", J. Winkler et al, ACM Comp Sci Conf 1992,
	pp. 139-147].

	(1995-01-31)

object code

	The {machine code} generated by a {source code} language
	processor such as an {assembler} or {compiler}.  A file of
	object code may be immediately executable or it may require
	{linking} with other object code files, e.g. libraries, to
	produce a complete executable program.

	(1995-01-31)

Object-code Buffer Overrun Evaluator

	<security, programming, tool> (OBOE) A tool by R. Banfi,
	D. Bruschi, and E. Rosti for the automatic detection of
	{buffer overflow} {vulnerabilities} in {object code}.  OBOE
	can be applied to {operating system} components as well as
	ordinary {application programs}.  It was designed for the
	{system administrator} to identify vulnerable programs before
	they are exploited.  Being automatic, OBOE can be run as a
	{background process} for the analysis of all potentially
	insecure programs installed on a {Unix} system.  It runs on
	{HP-UX}, {Linux}, and {Sun} {Solaris}.

	{(http://idea.sec.dsi.unimi.it/research.html)}.

	(2003-10-25)

Object Compatibility Standard

	(OCS) An {88open} standard for compilers and linkers.

Object Constraint Language

	<language> (OCL) A formal specification language extension to
	{UML}.  The Object Constraint Language is a precise text
	language that provides {constraint} and {object query}
	expressions on an {object-oriented} model that cannot
	otherwise be expressed by diagrammatic notation.

	OCL supplements UML by providing expressions that have neither
	the ambiguities of {natural language} nor the inherent
	difficulty of using complex mathematics.

	OCL is a descendent of {Syntropy}, a second-generation
	object-oriented analysis and design method.  The OCL 1.4
	definition specified a constraint language.  In OCL 2.0, the
	definition has been extended to include general object query
	language definitions.

	{OMG UML Home (http://uml.org/)}.

	{Rational UML Resource Center
	(http://rational.com/uml/index.jsp)}.

	{OCL 2.0 Submission to UML
	(http://omg.org/docs/ad/03-01-07.pdf)}.

	(2003-11-15)

Object Database Management Group

	{Object Data Management Group}

Object Data Management Group

	<body, database> (ODMG, previously ".. Database ..") An
	independent consortium that specifies universal {object}
	storage {standards}.

	ODMG's members include {object-oriented database} management
	system (ODBMS) vendors and other interested parties.  They aim
	to increase portability of customer software across products.

	On 1998-04-27 ODMG changed its name from the Object Database
	Management Group to reflect the expansion of its efforts
	beyond merely setting storage standards for object databases.

	{(http://odmg.org/)}.

	(2000-05-23)

Objecteering

	<programming, tool> An {object-oriented design} tool from
	{Softeam}, based on the {Class Relation Methodology}, with
	{C++} code generation.

	(1997-03-18)

Object Exchange

	<protocol> (OBEX) A {Bluetooth} {protocol} in the {Core
	Protocol Stack} for {data} exchange.

	(2002-06-28)

object identifier

	<programming> (OID) Generally an implementation-specific
	{integer} or {pointer} that uniquely identifies an {object}.

	(1999-07-10)

Objectionable-C

	<abuse, humour, language> A hackish take on "{Objective C}".
	Objectionable-C uses a {Smalltalk}-like {syntax}, but lacks
	the flexibility of Smalltalk {method} calls, and (like many
	such efforts) comes frustratingly close to attaining the
	{Right Thing} without actually doing so.

	[{Jargon File}]

	(1995-02-15)

Objective C

	<language> An {object-oriented} superset of {ANSI C} by Brad
	Cox, Productivity Products.  Its additions to {C} are few and
	are mostly based on {Smalltalk}.  Objective C is implemented
	as a {preprocessor} for {C}.  Its {syntax} is a superset of
	standard C syntax, and its {compiler} accepts both C and
	Objective C {source code} ({filename extension} ".m").

	It has no operator {overloading}, {multiple inheritance}, or
	{class variables}.  It does have {dynamic binding}.  It is
	used as the system programming language on the {NeXT}.  As
	implemented for {NEXTSTEP}, the Objective C language is fully
	compatible with {ANSI C}.

	Objective C can also be used as an extension to {C++}, which
	lacks some of the possibilities for {object-oriented design}
	that {dynamic typing} and {dynamic binding} bring to Objective
	C.  C++ also has features not found in Objective C.

	Versions exist for {MS-DOS}, {Macintosh}, {VAX}/{VMS} and
	{Unix} {workstations}.  Language versions by {Stepstone},
	{NeXT} and {GNU} are slightly different.

	There is a library of ({GNU}) Objective C {objects} by
	R. Andrew McCallum <mccallum@cs.rochester.edu> with similar
	functionality to {Smalltalk}'s Collection objects.  It
	includes: Set, {Bag}, {Array}, LinkedList, LinkList,
	CircularArray, {Queue}, {Stack}, {Heap}, SortedArray,
	MappedCollector, GapArray and DelegateList.  Version: Alpha
	Release.  {(ftp://iesd.auc.dk/pub/ObjC/)}.

	See also: {Objectionable-C}.

	["Object-Oriented Programming: An Evolutionary Approach", Brad
	Cox, A-W 1986].

	(1999-07-10)

Objective CAML

	<language> (Originally "CAML" - Categorical Abstract Machine
	Language) A version of {ML} by G. Huet, G. Cousineau, Ascander
	Suarez, Pierre Weis, Michel Mauny and others of {INRIA}.  CAML
	is intermediate between {LCF ML} and {SML} [in what sense?].
	It has {first-class} functions, {static type inference} with
	{polymorphic} types, user-defined {variant types} and {product
	types}, and {pattern matching}.  It is built on a proprietary
	run-time system.

	The CAML V3.1 implementation added {lazy} and {mutable} data
	structures, a "{grammar}" mechanism for interfacing with the
	{Yacc} {parser generator}, {pretty-printing} tools,
	high-performance {arbitrary-precision} arithmetic, and a
	complete library.

	in 1990 Xavier Leroy and Damien Doligez designed a new
	implementation called {CAML Light}, freeing the previous
	implementation from too many experimental high-level features,
	and more importantly, from the old Le_Lisp back-end.

	Following the addition of a {native-code} compiler and a
	powerful {module} system in 1995 and of the {object} and
	{class} layer in 1996, the project's name was changed to
	Objective CAML.  In 2000, Jacques Garrigue added labeled and
	optional arguments and anonymous variants.

	{Objective CAML Home (http://ocaml.org/)}.

	{Usenet} newsgroup: {news:comp.lang.ml}.

	["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,
	1989].

	(2002-05-21)

Objective Modula-2

	<language> (Or "ObjM2") An extension to {Modula-2} for {Cocoa}
	and {GNUstep} software development.  Objective Modula-2
	follows the {Objective-C} {object model} and retains the
	bracketed {Smalltalk} {message passing} {syntax} used in
	Objective-C.  Classes written in ObjM2 can be used within ObjC
	and vice versa. ObjM2 also retains Modula-2's {data
	encapsulation} features, namely {nested modules} with explicit
	{import} and export lists.  Due to the strict {type checking}
	in Modula-2, ObjM2 can be considered a much safer programming
	language than is ObjC, yet losing none of the capabilities of
	ObjC.

	(2005-08-15)

Objective PASCAL

	An extension of the {PASCAL} language which provides the
	possibility to use {object-oriented} programming constructs.

Object Linking and Embedding

	<operating system> (OLE) A distributed object system and
	{protocol} from {Microsoft}, also used on the Acorn
	{Archimedes}.  OLE allows an editor to "farm out" part of a
	document to another editor and then reimport it.  For example,
	a {desk-top publishing} system might send some text to a {word
	processor} or a picture to a {bitmap} editor using OLE.

	(1998-12-17)

Object Lisp

	<language> An {object-oriented} {Lisp} developed by {Lisp
	Machines Inc.} (LMI) in about 1987.  Object Lisp was based on
	nested {closures} and {operator shadowing}.

	Several competing object-orientated extensions to Lisp were
	around at the time, such as {Flavors}, in use by {Symbolics};
	{Common Objects}, developed by {Hewlett-Packard}; and
	{CommonLoops} in use by {Xerox}.

	LMI submitted the specification as a candidate for an
	object-oriented standard for {Common Lisp}, but it was
	defeated in favour of {CLOS}.

	["ObjectLISP User Manual", G. Dreschere, LMI 1987].

	(2008-03-19)

ObjectLOGO

	A variant of LOGO with object-oriented extensions.  Lexical
	scope.  Version 2.6, for the Mac.  Paradigm Software
	<paradigm@applelink.apple.com> (617)576-7675.

Object Management Group

	<body> (OMG) A consortium aimed at setting {standards} in
	{object-oriented programming}.  In 1989, this consortium,
	which included {IBM Corporation}, {Apple Computer Inc.} and
	{Sun Microsystems Inc.}, mobilised to create a
	cross-compatible distributed object standard.  The goal was a
	common binary object with methods and data that work using all
	types of development environments on all types of platforms.
	Using a committee of organisations, OMG set out to create the
	first {Common Object Request Broker Architecture} (CORBA)
	standard which appeared in 1991.  As of February 1998, the
	latest standard is CORBA 2.2.

	{(http://omg.org/)}.

	[David S. Linthicum, DBMS, January 1997]

	(1999-02-02)

Object management system

	In an IPSE, the system which maintains information about the
	system under development.

Object Modelling Technique

	<programming> (OMT) An {object-oriented} methodology.

	[Details?]

	(1996-11-03)

Object Oberon

	{Oberon} plus {class}es and {methods} by H. Moessenboeck &
	J. Templ, 1989.  See {Oberon-2}.

	["Object Oberon - An Object-Oriented Extension of Oberon", H.
	Moessenboeck et al, ETH TR 109 (Apr 1990)].

	["Object Oberon - A Modest Object-Oriented Language",
	H. Moessenboeck & J. Templ, in Structured Programming 10(4),
	1989].

object-orientation

	{object-oriented}

object-oriented

	1. <programming> (OO) Based on {objects}, {classes} and {methods},
	as in {object-oriented programming} or {object-oriented design}.
	An {object-oriented database} applies the same concepts to the
	storage of objects.

	2. <graphics> {vector graphics}.

	(2014-01-06)

object-oriented analysis

	<programming> (OOA) The first phase of {object-oriented design}.

	(2014-01-06)

object-oriented database

	<database> (OODB) A system offering {DBMS} facilities in an
	{object-oriented programming} environment.  Data is stored as
	{objects} and can be interpreted only using the {methods}
	specified by its {class}.  The relationship between similar
	objects is preserved ({inheritance}) as are references between
	objects.  Queries can be faster because {joins} are often not
	needed (as in a {relational database}).  This is because an
	object can be retrieved directly without a search, by
	following its object id.

	The same programming language can be used for both data
	definition and data manipulation.  The full power of the
	database programming language's {type system} can be used to
	model {data structures} and the relationship between the
	different data items.

	{Multimedia} {applications} are facilitated because the
	{class} {methods} associated with the data are responsible for
	its correct interpretation.

	OODBs typically provide better support for {versioning}.  An
	object can be viewed as the set of all its versions.  Also,
	object versions can be treated as full fledged objects.  OODBs
	also provide systematic support for {triggers} and
	{constraints} which are the basis of {active databases}.
	Most, if not all, object-oriented {application programs} that
	have database needs will benefit from using an OODB.

	{Ode} is an example of an OODB built on {C++}.

	(1997-12-07)

object-oriented design

	<programming> (OOD) A design method in which a system is modelled
	as a collection of cooperating {objects} and individual objects
	are treated as instances of a {class} within a {class hierarchy}.
	Four stages can be identified: identify the classes and objects,
	identify their {semantics}, identify their relationships and
	specify class and object interfaces and implementation.
	Object-oriented design is one of the stages of {object-oriented
	programming}.

	{Schlaer-Mellor} is one approach to OOD.

	["Object-oriented analysis and design with applications",
	Grady Booch, 2nd ed., pub. Benjamin/Cummings, Redwood CA,
	1994].

	(1997-12-07)

Object-Oriented Fortran

	<language> (OOF) An {object-oriented} extension of {Fortran},
	in which data items can be grouped into objects, which can be
	instantiated and executed in parallel.

	It was available for {Sun}, {Iris}, {iPSC}, and {nCUBE}, but
	is no longer supported.

	E-mail: Donna Reese <dreese@cs.msstate.edu>.

	(2001-03-06)

object-oriented language

	{object-oriented programming}

Object-Oriented Pascal

	{Object Pascal}

object-oriented polymorphism

	<program> The kind of {polymorphism} found in {object-oriented
	programming} languages where a {variable} can refer to an {object}
	whose {class} is not known exactly until {run time}.  A {method}
	can use a variable of a given class - call other methods on it,
	pass it as an argument, etc. - without needing to know to which
	subclass it refers, as long as its actual class is compatible with
	those uses.

	(2014-01-05)

object-oriented programming

	<programming> (OOP) The use of a class of programming
	languages and techniques based on the concept of an "{object}"
	which is a data structure ({abstract data type}) encapsulated
	with a set of routines, called "{methods}", which operate on
	the data.  Operations on the data can __only__ be performed via
	these methods, which are common to all objects that are
	instances of a particular "{class}".  Thus the interface to
	objects is well defined, and allows the code implementing the
	methods to be changed so long as the interface remains the
	same.

	Each class is a separate {module} and has a position in a
	"{class hierarchy}".  Methods or code in one class can be
	passed down the hierarchy to a {subclass} or inherited from a
	{superclass}.  This is called "{inheritance}".

	A {procedure} call is described as invoking a method on an
	object (which effectively becomes the procedure's first
	{argument}), and may optionally include other arguments.  The
	method name is looked up in the object's class to find out how
	to perform that operation on the given object.  If the method
	is not defined for the object's class, it is looked for in its
	superclass and so on up the class hierarchy until it is found
	or there is no higher superclass.

	OOP started with {SIMULA-67} around 1970 and became
	all-pervasive with the advent of {C++}, and later {Java}.
	Another popular object-oriented programming language (OOPL) is
	{Smalltalk}, a seminal example from {Xerox}'s {Palo Alto
	Research Center} (PARC).  Others include {Ada}, {Object
	Pascal}, {Objective C}, {DRAGOON}, {BETA}, {Emerald}, {POOL},
	{Eiffel}, {Self}, {Oblog}, {ESP}, {Loops}, {POLKA}, and
	{Python}.  Other languages, such as {Perl} and {VB}, permit,
	but do not enforce OOP.

	{FAQ (http://iamwww.unibe.ch/~scg/OOinfo/FAQ/)}.
	{(http://zgdv.igd.fhg.de/papers/se/oop/)}.
	{(http://cuiwww.unige.ch/Chloe/OOinfo)}.

	{Usenet} newsgroup: {news:comp.object}.

	(2001-10-11)

object-oriented programming language

	{object-oriented programming}

Object-oriented SQL

	<language> (OSQL) A {functional language}, a superset of
	{SQL}, used in {Hewlett-Packard}'s {OpenODB} {database}
	system.

	(1994-11-29)

Object-Oriented Turing

	<language> An extension of {Turing} and a replacement for
	{Turing Plus} by R.C. Holt <holt@csri.toronto.edu>, U Toronto,
	1991.  Object-Oriented Turing supports {imperative
	programming}, {object-oriented programming} and {concurrent
	programming}.  It has {modules}, {class}es, {single
	inheritance}, processes, {exception handling} and optional
	machine-dependent programming.

	There is an integrated environment under the {X Window System}
	and {a demo version (ftp://turing.toronto.edu/pub/turing)}.
	Versions exist for {Sun-4}, {MIPS}, {RS-6000} and others.

	E-mail: <ootinfo@turing.toronto.edu>.

	["A Conceptual Framework for Software Development", Mancoridis
	et al, eds, ACM SIGSCE Conference, Feb 1993, Indianapolis].
	["Turing Reference Manual", 1992, ISBN 0-921598-15-7].

	(2000-04-21)

Objectory

	<programming> An {object-oriented} {methodology} mostly
	created by {Ivar Jacobson}.

	(2003-07-11)

ObjectPAL

	{Object-oriented database} language, part of {Borland}'s
	{MS-Windows} version of {Paradox}.

Object Pascal

	<language> An {object-oriented} {Pascal} developed jointly by
	{Apple Computer} and {Niklaus Wirth}.

	["Object Pascal Report", Larry Tesler, Structured Language
	World 9(3):10-17 (1985)].

	(1994-10-28)

Object Persistence Framework

	<programming> (OPF) Any system for storing {objects} so they
	can be reloaded into a future session.  Typically this will
	use a {relational database} along with some kind of {object
	relational mapping}.  Another typical solution would store
	objects in {XML} files (a form of {serialisation}).  One of
	the trickier problems to solve is how to maintain references
	between objects, e.g. replacing memory pointers with unique
	names or identifiers.

	Virtually identical considerations apply to transferring
	objects, or indeed any kind of data structure, from one
	process to another via some communications channel, e.g. a
	{TCP/IP} connection.

	{Apple}'s {Enterprise Objects Framework} (EOF) is a mature and
	powerful example.

	(2009-01-15)

Object Request Broker

	<programming> (ORB) Part of the {OMG} {CORBA} specification,
	an ORB's basic function is to pass {method} invocation
	requests to the correct {objects} and return the results to
	the caller.

	To achieve this the ORB must be able must be able to identify
	and locate objects, handle connections from invoker and the
	data returned from methods.  Communication between the ORB and
	applications are achieved through {IDL} stubs and skeletons
	whilst the OMG has specified {IIOP} as the protocol through
	which ORBs may communicate with each other.  Using IIOP, an
	ORB may request method invocations from a remote object.

	(2003-11-21)

Object Role Modeling

	<programming> (ORM) A conceptual {model}ling approach that
	pictures the application world as a set of {objects} that play
	roles (parts in relationships, which may be unary, binary or
	higher order).  ORM provides both graphical and textual
	languages that enable models to be expressed naturally.  For
	{data modelling} purposes, its graphical language is more
	expressive than {ER} or {UML}.

	{(http://orm.net/)}.

	(1999-08-27)

Object Value

	<jargon> In industrial design, a measure of consumers'
	immediate desire for an object, even before they know or
	understand what it does.  "Gassee may be nuts, but at least
	the {BeBox} has great object value."

	(1997-03-30)

Objectworks

	An {object-oriented} development environment developed by
	{ParcPlace}, available under {Smalltalk} and {C++}.

	(1994-10-28)

Object Z

	University of Queensland.

	["Object Orientation in Z", S. Stepney et al eds, Springer
	1992].

Objlog

	A {frame}-based language combining {objects} and {Prolog II}
	from {CNRS}, Marseille, France.

	["The Inheritance Processes in Prolog", C. Chouraki et al,
	GRTC/187bis/Mars 1987 (CNRS)].

	E-mail: <somebody@grtc.cnrs-mrs.fr>.

	(1994-10-28)

OBJT

	{Error algebras} plus an image construct.  Tardo.

ObjVlisp

	1984.  An {object-oriented} extension of {Vlisp}.
	{Reflective} architecture.

	["Metaclasses are First Class: The ObjVlisp Model", P.
	Cointe, SIGPLAN Notices 22(121):156-167 (Dec 1987) (OOPSLA
	'87)].

ObjVProlog

	{Logic programming} and {object-orientation}, an adaptation of
	the {ObjVlisp} model to {Prolog}.

	["ObjVProlog: Metaclasses in Logic", J. Malenfant, ECOOP '89,
	Cambridge U Press 1989, pp.257-269].

Obliq

	A small, statically scoped untyped language by Luca Cardelli,
	1993.  Obliq is {object-oriented}, higher order, concurrent,
	and distributed.  State is local to an address space, while
	computation can migrate over the network.  The distributed
	computation mechanism is based on {Modula-3} network objects.

	{(ftp://gatekeeper.dec.com/pub/DEC/Modula-3/contrib)}.

oblique stroke

	<character> "/".  Common names include: (forward) slash;
	stroke; {ITU-T}: slant; oblique stroke.  Rare: diagonal;
	solidus; over; slak; virgule; {INTERCAL}: slat.

	Commonly used as the division {operator} in programming, and
	to separate the components in {Unix} {pathnames}, and hence
	also in {URLs}.  Also used to delimit {regular expressions} in
	several languages.

	(1996-09-24)

Oblog

	<language> A small, portable, {Object-oriented} extension to
	{Prolog} by Margaret McDougall of EdCAAD, Dept Arch,
	{University of Edinburgh}.

	(1995-12-29)
OBOE

	{Object-code Buffer Overrun Evaluator}

OBSCURE

	"A Formal Description of the Specification Language OBSCURE",
	J.  Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985.

	[{Jargon File}]

observational equivalence

	Two terms M and N are observationally equivalent iff for all
	contexts C[] where C[M] is a valid term, C[N] is also a valid
	term with the same value.

Oc

	<language> ("Oh see!")  A {parallel} {logic language}.

	["Self-Description of Oc and its Applications", M. Hirata,
	Proc 2nd Natl Conf Japan Soc Soft Sci Tech, pp. 153-156,
	1984].

	(1995-03-16)

OC-12

	{Optical Carrier 12}

OC-3

	{Optical Carrier 3}

OC-48

	{Optical Carrier 48}

OCAL

	On-Line Cryptanalytic Aid Language.

	["OCAS: On-line Cryptanalytic Aid System", D.J. Edwards,
	MAC-TR-27, MIT Project MAC, May 1966.  Sammet 1969, p.642].

occam

	<language> (Note lower case) A language based on {Anthony
	Hoare}'s {CSP} and {David May}'s {EPL}.  Named after the
	English philosopher, William of Occam (1300-1349) who
	propounded {Occam's Razor}.  The occam language was designed
	by David May of {INMOS} to easily describe {concurrent}
	processes which communicate via one-way channels.  It was
	developed to run on the {INMOS} {transputer} but {compilers}
	are available for {VAX}, {Sun} and {Intel} {MDS}, inter alia.

	The basic entity in occam is the process of which there are
	four fundamental types, {assignment}, input, output, and wait.
	More complex processes are constructed from these using SEQ to
	specify sequential execution, PAR to specify parallel
	execution and ALT where each process is associated with an
	input from a channel.  The process whose channel inputs first
	is executed.  The fourth constructor is IF with a list of
	conditions and associated processes.  The process executed is
	the one with the first true condition in textual order.  There
	is no {operator precedence}.

	The original occam is now known as "occam 1".  It was extended
	to {occam 2}.

	{Simulator for VAX (ftp://watserv1.waterloo.edu/)}.

	Tahoe mailing list: <occam@sutcase.case.syr.edu>.

	[David May et al, 1982.  "Concurrent algorithms"].

	["Occam", D. May, SIGPLAN Notices 18(4):69-79, 1983].

	(1994-11-18)

occam 2

	<language> An extension of {occam} produced in 1987.  Occam 2
	adds {floating-point}, functions and a type system.

	["occam 2 Reference Manual", INMOS, P-H 1988, ISBN
	0-13-629312-3].

	(1994-11-18)

Occam's Razor

	<philosophy> The English philosopher, William of Occam
	(1300-1349) propounded Occam's Razor:

	Entia non sunt multiplicanda praeter necessitatem.

	(Latin for "Entities should not be multiplied more than
	necessary").  That is, the fewer assumptions an explanation of
	a phenomenon depends on, the better it is.

	For example, some claim that God caused himself to exist and
	also caused the universe to exist - he was the "first cause" -
	whereas Occam's Razor suggests that if one accepts the
	possibility of something causing itself then it is better to
	assume that it was the universe that caused itself rather than
	God because this explanation involves fewer entities.

	The negation of Occam's Razor would suggest that an
	arbitrarily complex explanation is just as good as the
	simplest one.  (E.g. God and his cat created a robot called
	Sparky who built the universe from parts bought from a shop in
	another dimension).

	See also {KISS Principle}.

	(1995-11-09)

occlude

	<programming> (Or "shadow") To make a variable inaccessible by
	declaring another with the same name within the {scope} of the
	first.

	(1995-12-14)

occurs check

	<programming> A feature of some implementations of
	{unification} which causes unification of a {logic variable} V
	and a structure S to fail if S contains V.

	Binding a variable to a structure containing that variable
	results in a cyclic structure which may subsequently cause
	unification to loop forever.  Some implementations use extra
	pointer comparisons to avoid this.

	Most implementations of {Prolog} do not perform the occurs
	check for reasons of efficiency.  Without occurs check the
	{complexity} of {unification} is

		O(min(size(term1), size(term2)))

	with occurs check it's

		O(max(size(term1), size(term2)))

	In {theorem proving} unification without the occurs check can
	lead to unsound inference.  For example, in {Prolog} it is
	quite valid to write

		X = f(X).

	which will succeed, binding X to a cyclic structure.  Clearly
	however, if f is taken to stand for a function rather than a
	{constructor}, then the above equality is only valid if f is
	the {identity function}.

	Weijland calls unification without occur check, "complete
	unification".  The reference below describes a complete
	unification algorithm in terms of Colmerauer's consistency
	algorithm.

	["Semantics for Logic Programs without Occur Check",
	W.P. Weijland, Theoretical Computer Science 71 (1990) pp
	155-174].

	(1996-01-11)

OCL

	<language> 1. {Operator Control Language}.

	2. {Object Constraint Language}.

	(2003-01-18)

OCLC

	{Online Computer Library Center}

OC-n

	{Optical Carrier n}

OCODE

	An {assembly language} for a {stack}-based {virtual machine},
	used as the {intermediate language} of the Cambridge {BCPL}
	compiler.

	["The Portability of the BCPL Compiler", M. Richards, Soft
	Prac & Exp 1(2) (1971)].

	(1995-01-30)

OCP

	<processor> {Order Code Processor}.

OCR

	{Optical Character Recognition}

OCS

	{Object Compatibility Standard}

octal

	<mathematics> Base 8.  A number representation using the
	digits 0-7 only, with the right-most digit counting ones, the
	next counting multiples of 8, then 8^2 = 64, etc.  For
	example, octal 177 is digital 127:

		digit    weight        value
		  1     8^2 = 64   1* 64 = 64
		  7     8^1 =  8   7*  8 = 56
		  7     8^0 =  1   7*  1 =  7
				          ---
					  127

	Octal system used to be widespread back when many computers
	used 6-bit {bytes}, as a 6-bit byte can be conveniently
	written as a two-digit octal number.  Since nowadays a byte is
	almost always 8-bit long the octal system lost most of its
	appeal to the {hexadecimal} system.

	For a brief discussion on the word `octal' see {hexadecimal}.

	(1997-06-16)

octal forty

	<jargon> Jargon for "I'm drawing a blank.", I can't work it
	out.

	{Octal} 40 (decimal 32) is the {ASCII} code for space
	character.  By an odd coincidence, {hex} 40 is the {EBCDIC}
	space character.

	[{Jargon File}]

	(1995-03-06)

Octave

	<language> A high-level {interactive} language by John
	W. Eaton, with help from many others, like {MATLAB}, primarily
	intended for numerical computations.  Octave provides a
	convenient {command line interface} for solving linear and
	nonlinear problems numerically.

	Octave can do arithmetic for {real} and {complex} {scalars}
	and {matrices}, solve sets of nonlinear algebraic equations,
	integrate functions over finite and infinite intervals, and
	integrate systems of ordinary differential and
	differential-algebraic equations.

	Octave has been compiled and tested with {g++} and libg++ on a
	{SPARCstation 2} running {SunOS} 4.1.2, an {IBM} {RS/6000}
	running {AIX} 3.2.5, {DEC Alpha} systems running {OSF}/1 1.3
	and 3.0, a {DECstation 5000}/240 running {Ultrix} 4.2a, and
	{Intel 486} systems running {Linux}.  It should work on most
	other {Unix} systems with {g++} and libg++.

	Octave is distributed under the {GNU} {General Public
	License}.  It requires {gnuplot}, a {C++} compiler and
	{Fortran} compiler or {f2c} translator.

	Latest version: 2.0.16 (released 2000-01-30), as of 2000-06-26.

	{home (http://che.wisc.edu/octave)}.

	{(ftp://ftp.che.wisc.edu/pub/octave/)} or your nearest {GNU
	archive site}.

	E-mail: <bug-octave@bevo.che.wisc.edu>.

	(2000-06-27)

octet

	<jargon, networking> Eight bits.  This term is used in
	networking, in preference to {byte}, because some systems use
	the term "byte" for things that are not 8 bits long.

	(1995-03-03)

octothorpe

	{hash character}

OCX

	{OLE custom controls}

OD390

	<World-Wide Web> A {CICS} Web {interperter} from {IBM} used
	for application development involving web interfaces to {DB2}
	tables.

	(1998-06-21)

ODA

	{Open Document Architecture} (formerly Office
	Document Architecture).

ODBC

	{Open DataBase Connectivity}

ODC

	{Open Distributed Computing}

Ode

	An {Object-Oriented Database} from {AT&T} which extends {C++}
	and supports fast queries, complex application modelling and
	{multimedia}.

	Ode uses one integrated data model ({C++} {class}es) for both
	database and general purpose manipulation.  An Ode database is
	a collection of {persistent} {objects}.  It is defined,
	queried and manipulated using the language {O++}.  O++
	programs can be compiled with C++ programs, thus allowing the
	use of existing C++ code.  O++ provides facilities for
	specifying transactions, creating and manipulating persistent
	objects, querying the database and creating and manipulating
	versions.

	The Ode object database provides four object compatible
	mechanisms for manipulating and querying the database.  As
	well as O++ there are OdeView - an {X Window System}
	interface; OdeFS (a file system interface allowing objects to
	be treated and manipulated like normal Unix files); and CQL++,
	a {C++} variant of {SQL} for easing the transition from
	{relational databases} to OODBs such as Ode.

	Ode supports large objects (critical for {multimedia}
	applications).  Ode tracks the relationship between versions
	of objects and provides facilities for accessing different
	versions.  Transactions can be specified as read-only; such
	transactions are faster because they are not logged and they
	are less likely to {deadlock}.  'Hypothetical' transactions
	allow users to pose "what-if" scenarios (as with
	{spreadsheets}).

	EOS, the {storage engine} of Ode, is based on a client-server
	architecture.  EOS supports {concurrency} based on
	{multi-granularity} two-version two-phase locking; it allows
	many readers and one writer to access the same item
	simultaneously.  Standard two-phase locking is also available.
	Ode supports both a {client-server} mode for multiple users
	with concurrent access and a single user mode giving improved
	performance.

	Ode 3.0 is currently being used as the {multimedia} {database
	engine} for {AT&T}'s {Interactive TV} project.  Ode 2.0 has
	also been distributed to more than 80 sites within AT&T and
	more than 340 universities.  Ode is available free to
	universities under a non-disclosure agreement.  The current
	version, 3.0, is available only for {Sun} {SPARCstations}
	running {SunOS} 4.1.3 and {Solaris} 2.3.  Ode is being ported
	to {Microsoft} {Windows NT}, {Windows 95} and {SGI}
	{platforms}.

	E-mail: Narain Gehani <nhg@research.att.com>.

	(1994-08-18)

ODI

	1. {Optical Digital Image}.

	2. {Open Data-link Interface}.

ODIF

	{Open Document Interchange Format}

ODMA

	{Open Document Management API}

ODMG

	{Object Data Management Group}

odometry

	<robotics> The use of motion sensors to determine a robot's
	change in position relative to some known position.  For
	example, if a robot is traveling in a straight line and if it
	knows the diameter of its wheels, then by counting the number
	of wheel revolutions it can determine how far it has traveled.
	Robots will often have shaft encoders attached to their drive
	wheels which emit a fixed number of pulses per revolution.  By
	counting these pulses, the processor can estimate the distance
	traveled.

	(2006-09-11)

ODP

	{Open Distributed Processing}

ODS

	{Operational Data Store}

ODSA

	{Open Distributed System Architecture}

ODT

	{Open Desktop}

OEM

	{original equipment manufacturer}

OFA

	{Optimal Flexible Architecture}

off-by-one error

	<programming> (Or "Obi-Wan error") An exceedingly common error
	induced in many ways, such as by starting at zero when you
	should have started at one or vice-versa, or by writing "< N"
	instead of "<= N" or vice-versa.  Often confounded with
	{fencepost error}, which is properly a particular subtype of
	it.

	The term {zeroth} corrects the linguistic off-by-one error of,
	e.g., referring to the "1st" element of an array whose indexes
	start from zero.

	[{Jargon File}]

	(1998-09-21)

Office

	{Microsoft Office}

office automation

	<application> The use of computers or related {data
	processing} technology to do routine clerical work such as
	writing, filing and distributing documents.  The term was used
	before computers in offices were the norm (1960s?).

	(2007-09-11)

Office By Example

	<language> (OBE) A sequel to {QBE}, described in publications
	by Moshe Zloof of {IBM} in the early 1980s but apparently
	never implemented.

	(1998-03-14)

Office Workstations Limited

	<company> (OWL) A UK software company, now a subsidiary of
	{Matsushita} (Panasonic, etc.).  They previously supported the
	{Guide} {hypertext} system but that support is now provided by
	US company {InfoAccess}.

	E-mail: <postmaster@owl-uk.owl-uk.co.uk>

	[Correct address?]

	(1996-01-15)

Official Production System

	<language> (OPS) The first {production system} (i.e. rule
	based) programming language, developed at {CMU} in 1970 and
	used for building {expert systems}.  OPS was originally
	written in {Franz Lisp} and later ported to other {LISP}
	dialects.

	(2003-04-05)

off-line

	<jargon> (Or "offline")

	1. Not directly connected to the computer (e.g., an off-line
	{tape drive}), or with connection suspended ("take the
	{printer} off-line").

	Contrast {background}, {on-line}.

	2. Not now or not here.  "Let's take this discussion
	off-line."  Specifically used on {Usenet} to suggest that a
	discussion be moved off a public {newsgroup} to {e-mail}.

	See also {off-line world}.

	[{Jargon File}]

	(1996-02-02)

off-line world

	<jargon> A die-hard {nethead} term for non-computer-related
	experience.

	See also {big room}.

	["Internet", Feb 1996].

	(1996-03-04)

offset

	<programming> An index or position in an {array}, {string}, or
	block of memory usually a non-negative {integer}.

	E.g. the {Perl} function splice(ARRAY, OFFSET, LENGTH, LIST)
	replaces LENGTH elements starting at index OFFSET in array
	with LIST, where offset zero means the start of the array.

	For an {Intel x86} processor with a {segmented address space}
	the offset is the position of a {byte} relative to the start
	of the segment.

	(2004-02-27)

offshoring

	<business> Transfer of a business process, e.g. manufacturing
	or customer service, from a company in one country to the same
	or another company in a different country.  This overlaps
	partially with outsourcing, in which work is transferred
	to a different company in the same or a different country.

	(2008-12-12)

off-side rule

	A lexical convention due to Landin, allowing the scope of
	declarations in a program to be expressed by indentation.  Any
	non-whitespace token to the left of the first such token on
	the previous line is taken to be the start of a new
	declaration.  Used in, for example, Miranda and Haskell.

	[P.J. Landin "The Next 700 Programming Languages", CACM vol 9
	pp157-165, March 1966]

off the trolley

	Describes the behaviour of a program that malfunctions and
	goes catatonic, but doesn't actually {crash} or abort.  See
	{glitch}, {bug}, {deep space}.

	[{Jargon File}]

ogg

	<games> /og/ ({CMU}) 1. In the multi-player space combat game
	{Netrek}, to execute kamikaze attacks against enemy ships
	which are carrying armies or occupying strategic positions.
	Named during a game in which one of the players repeatedly
	used the tactic while playing Orion ship G, showing up in the
	player list as "Og".  This trick has been roundly denounced by
	those who would return to the good old days when the tactic of
	dogfighting was dominant, but as Sun Tzu wrote, "What is of
	supreme importance in war is to attack the enemy's strategy."
	However, the traditional answer to the newbie question "What
	does ogg mean?" is just "Pick up some armies and I'll show
	you."

	2. In other games, to forcefully attack an opponent with the
	expectation that the resources expended will be renewed faster
	than the opponent will be able to regain his previous
	advantage.  Taken more seriously as a tactic since it has
	gained a simple name.

	3. To do anything forcefully, possibly without consideration
	of the drain on future resources.  "I guess I'd better go ogg
	the problem set that's due tomorrow."  "Whoops!  I looked down
	at the map for a sec and almost ogged that oncoming car."

	(1995-01-31)

Ogg Vorbis

	<audio, compression> A patent-free {audio} {compression}
	{algorithm}.

	{(http://xiph.org/)}.

	(2001-12-17)

OHCI

	{Open Host Controller Interface}

Ohm

	<unit> The {MKS} unit of electrical {resistance}.  One Ohm is
	the resistance of a conductor across which a {potential
	difference} of one {Volt} produces a {current} of one
	{Ampere}.  Named after {Georg Simon Ohm}.

	(2003-12-02)

Ohm, Georg Simon

	{Georg Simon Ohm}

ohnosecond

	<unit, humour> (Presumably a play on "{nanosecond}") The
	miniscule time it takes to realize that you've just made a BIG
	mistake like typing rm -rf * in the wrong directory.

	Seen in Elizabeth P. Crowe's book, "The Electronic Traveller."

	(1998-08-27)

OIC

	<chat> oh, I see.

	(1998-01-18)

OID

	{object identifier}

-oid

	<jargon> (from "android") A suffix used as in mainstream
	English to indicate a poor imitation, a counterfeit, or some
	otherwise slightly bogus resemblance.  Hackers will happily
	use it with all sorts of non-Greco/Latin stem words that
	wouldn't keep company with it in mainstream English.  For
	example, "He's a nerdoid" means that he superficially
	resembles a {nerd} but can't make the grade; a "modemoid"
	might be a 300-baud {modem} (Real Modems run at 144000 or up);
	a "computeroid" might be any {bitty box}.

	"-oid" can also mean "resembling an android", which was once
	confined to science-fiction fans and hackers.  It too has
	recently (in 1991) started to go mainstream (most notably in
	the term "trendoid" for victims of terminal hipness).  This is
	probably traceable to the popularisation of the term {droid}
	in "Star Wars" and its sequels.

	Coinages in both forms have been common in science fiction for
	at least fifty years, and hackers (who are often SF fans) have
	probably been making "-oid" jargon for almost that long
	(though {GLS} and {ESR} can personally confirm only that they
	were already common in the mid-1970s).

	[{Jargon File}]

	(1999-07-10)

OIL

	1. ["The Architecture of the FAIM-1 Symbolic Multiprocessing
	System", A.  Davis et al, 9th Intl Joint Conf in Artif Intell,
	1985, pp.32-38].

	2. Operator Identification Language.  Used for {overloading}
	resolution by the {Eli} compiler-writing system.

OLAP

	{On-Line Analytical Processing}

OLAP Council

	<body, standard> A body formed in early 1995 to work on a
	{cross-product} {API} for {OLAP}.  After little success it was
	replaced by the {Analytical Solutions Forum}.

	(2005-05-28)

OLC

	{On-Line Computer system}

OLDAS

	On-line Digital Analog Simulator.  An interactive version of
	{MIMIC}, for {IBM 360}.

	["OLDAS: An On-line Continuous System Simulation Language",
	R.P. Cullen, in Interactive Systems for Experimental Applied
	Mathematics, A-P 1968].

old fart

	Tribal elder.  A title self-assumed with remarkable frequency
	by (especially) {Usenet}ters who have been programming for
	more than about 25 years; often appears in {sig blocks}
	attached to {Jargon File} contributions of great archaeological
	significance.  This is a term of insult in the second or third
	person but one of pride in first person.

	[{Jargon File}]

old talk

	<chat> The old implementations of {talk}.  See "{ntalk}" for
	details.

	(1997-09-11)

Old Testament

	[C programmers]  The first edition of {K&R}, the
	sacred text describing {Classic C}.

	[{Jargon File}]

OLE

	{Object Linking and Embedding}

OLE custom controls

	<programming> (OCX) An {Object Linking and Embedding}
	(OLE) custom control allowing infinite extension of the
	{Microsoft Access} control set.  OCX is similar in purpose to
	{VBX} used in {Visual Basic}.  Available OCX's include "Scroll
	Bar Control", "Calendar Control", and "Data Outline Control".

	[Details?]

	(1995-12-05)

OLE DB

	<database, programming> {Microsoft}'s low-level {application
	program interface} (API) for access to data sources.

	"OLE" originally stood for {Object Linking and Embedding} and
	"DB" for database but Microsoft no longer ascribes these
	meanings.

	(2008-03-19)

OLE for Process Control

	<standard> (OPC) A set of seven open standards for
	connectivity and interoperability of industrial automation and
	the enterprise systems.

	Based on fundamental and evolving standards and technology of
	the general computing market, the OPC Foundation adapts and
	creates specifications that fill industry-specific needs.

	{OPC Foundation (http://opcfoundation.org/)}.

	(2003-05-21)

OLGA

	Ouf! un Langage pour les Grammaires Attribuees.

	Inria, 1985.  Language for specification of attribute
	grammars, used as the input language of the compiler writing
	system FNC-2.  Applicative, {strongly typed}, polymorphic,
	pattern-matching, modules.

Olivetti

	<company> A large Italian company producing office machinery,
	computers and printers.

	Olivetti took a controlling stake in {Acorn Computers} in
	September 1985.

	Olivetti computers were once marketed in USA with the ATT
	brand name.

	[Address?  Other products?]

	(1995-03-14)

O-Logic

	An {object-oriented} deductive language/database system.

OLTP

	{On-Line Transaction Processing}

OLWM

	{OpenLook Window Manager}

om

	<networking> The {country code} for Oman.

	(1999-01-27)

OMA

	Object Management Architecture.

	A set of standards under study by the {OMG}.

	(1994-11-11)

Omega

	1. <programming> A {prototype}-based {object-oriented}
	language from Austria.

	["Type-Safe Object-Oriented Programming with Prototypes - The
	Concept of Omega", G. Blaschek, Structured Programming
	12:217-225, 1991].

	2. <text, tool> A successor to {TeX} extended to handle the
	{Unicode} character set.

	{(http://ens.fr/omega/)}.

	(1997-11-20)

Omega-algebraic

	In domain theory, a complete partial order is algebraic if
	every element is the lub of some chain of compact elements.
	If the set of compact elements is countable it is
	omega-algebraic.  Usually written with a Greek letter omega
	({LaTeX} \omega).

	(1995-02-03)

Omega test

	The Omega test is a system written by William Pugh
	<pugh@cs.umd.edu> and others for performing symbolic
	manipulations of {conjunctions} of {linear constraints} over
	integer variables.  The Omega test dependence analyser is a
	system built on top of the Omega test to analyse {array} data
	dependences.

	Version 3.2.2 includes a fortran to tiny translator, a Tiny
	interpreter(?) and analysis tools.

	{(ftp://ftp.cs.umd.edu/pub/omega)}.  E-mail: <omega@cs.umd.edu>.

	(1992-11-13)

OMF

	Object Management Facility.

	Part of the {DAA} proposed by {Hewlett-Packard} and {Sun}.

OMG

	{Object Management Group}

OMNICODE

	Thompson, 1956.  Ran on IBM 650.

	[Sammet 1969, p. 5].

OMNIFAX

	Alternate name for NYU OMNIFAX?  Early system on UNIVAC I or
	II.  Listed in CACM 2(5):16 (May 1959).

OMNITAB

	Statistical analysis and desk calculator.  Version: OMNITAB
	II.

	["OMNITAB II User's Reference Manual", NBS Tech Note 552 (Oct
	1971).  Sammet 1969, pp. 296-299].

OMR

	{Optical Mark Reader}

OMS

	{Opportunity Management System}

OMT

	{Object Modelling Technique}

OMTool

	A graphical tool from General Electric Advanced Concepts
	Center for design and analysis of systems with the {OMT}
	methodology.  Generates {C++} and {SQL} code.

ONC

	{Open Network Computing}

Ondine

	["Concurrency Introduction to an Object-Oriented Language
	System Ondine", T. Ogihara et al, 3rd Natl Conf Record A-5-1,
	Japan Soc for Soft Sci Tech, Japan 1986].

	(2012-12-31)

one

	<mathematics> The lowest positive {integer} and the basis for
	counting.  Multiplication by one is an {identity operator} and,
	since one is its own {reciprocal}, so is division by one.  One is
	the result of dividing any non-zero number by itself.  One raised
	to any power is one and raising to the power one is also an
	identity operator.

	<data> The largest digit in {binary}, related to the value {true}
	in {Boolean algebra}.  {Digital computers} typically represent one
	by a high voltage and zero by a low voltage.

	(2012-12-31)

one-banana problem

	<jargon, abuse> At computer installations where the computers
	have operators for routine administrivia, the programmers and
	hardware people tend to look down on the operators and claim
	that a trained monkey could do their job.  The incentives
	offered to said monkeys would then describe the difficulty of
	a task.  A one-banana problem is simple; hence, "It's only a
	one-banana job at the most; what's taking them so long?"

	See also {Infinite-Monkey Theorem}.

	[{Jargon File}]

	(2010-03-20)

one-dimensional array

	<types> An {array} with only one {dimension}; the simplest kind of
	array, consisting of a sequence of items ("elements"), all of the
	same type.  An element is selected by an integer {index} that
	normally starts at zero for the first element and increases by
	one.  The index of the last element is thus the length of the
	array minus one.

	A one-dimensional array is also known as a {vector}.  It should
	not be confused with a {list}.  In some languages, e.g. {Perl},
	all arrays are one-dimensional and higher dimensions are
	represented as arrays of {pointers} to arrays (which can have
	different sizes and can themselves contain pointers to arrays and
	so on).

	A one-dimensional array maps simply to memory: the address of an
	element with index i is

		A(i) = A0 + i * s

	where A0 is the base address of the array and s is the size of
	storage used for each element, the "stride".  Elements may be
	padded to certain {address boundaries}, e.g. {machine words}, to
	increase access speed, in which case the stride will be larger
	than the amount of data in an element.

	(2014-03-22)

one-line fix

	Used (often sarcastically) of a change to a program that is
	thought to be trivial or insignificant right up to the moment
	it crashes the system.  Usually "cured" by another one-line
	fix.  See also {I didn't change anything!}

one-liner wars

	<games, programming> A game popular among {hackers} who code
	in the language {APL} (see {write-only language} and {line
	noise}).  The objective is to see who can code the most
	interesting and/or useful routine in one line of {operators}
	chosen from APL's exceedingly {hairy} primitive set.  A
	similar amusement was practiced among {TECO} hackers and is
	now popular among {Perl} aficionados.

	{Ken Iverson}, the inventor of APL, has been credited with a
	one-liner that, given a number N, produces a list of the prime
	numbers from 1 to N inclusive.  It looks like this:

	  (2 = 0 +.= T o.| T) / T <- iN

	where "o" is the APL null character, the assignment arrow is a
	single character, and "i" represents the APL iota.

	[{Jargon File}]

	(2000-03-19)

ones complement

	A system used in some computers to represent negative
	numbers. To negate a number, each bit of the number is
	inverted (zeros are replaced with ones and vice versa).  This
	has the consequence that there are two reperesentations for
	zero, either all zeros or all ones.

		...
		000...00011 = +3
		000...00010 = +2
		000...00001 = +1
		000...00000 = +0
		111...11111 = -0
		111...11110 = -1
		111...11101 = -2
		111...11100 = -3
		...

	Naive logic for ones complement addition might easily conclude
	that -0 + 1 = +0.

	The {twos complement} avoids this by using all ones to
	represent -1.

One-Time Password

	<security> (OTP) A security system that requires a new
	password every time a user authenticates themselves, thus
	protecting against an intruder replaying an intercepted
	password.  OTP generates passwords using either the {MD4} or
	{MD5} {hashing} {algorithms}.

	The equivalent term "S/Key", developed by Bellcore, is a
	trademark of {Telcordia Technologies}, so the name OTP is used
	increasingly.

	See {RFC 1760} - "The S/KEY One-Time Password System" and {RFC
	1938} - "A One-Time Password System".

	{(http://cs.umd.edu/~harry/jotp/)}.

	(2000-01-31)

One Time Programmable Read-Only Memory

	<storage> (OTPROM, EPROM OTP) A kind of storage device like an
	{EPROM} but with no quartz glass window in the package for
	erasing the contents.  This reduces the packaging cost but
	means the device cannot be erased with UV and so can only be
	written once.  Erasure is possible, but expensive, with
	X-rays.

	(1995-04-22)

one-way function

	<cryptography, mathematics> A {function} which is easy to
	compute but whose {inverse} is very difficult to compute.
	Such functions have important applications in {cryptography},
	specifically in {public-key cryptography}.

	See also: {trapdoor function}.

	(2001-05-10)

one-way hash function

	<algorithm> (Or "message digest function") A {one-way
	function} which takes a variable-length message and produces a
	fixed-length hash.  Given the hash it is computationally
	infeasible to find a message with that hash; in fact one can't
	determine any usable information about a message with that
	hash, not even a single bit.  For some one-way hash functions
	it's also computationally impossible to determine two messages
	which produce the same hash.

	A one-way hash function can be private or public, just like an
	{encryption} function.  {MD5}, {SHA} and {Snefru} are examples of
	public one-way hash functions.

	A public one-way hash function can be used to speed up a
	public-key {digital signature} system.  Rather than sign a
	long message, which can take a long time, compute the one-way
	hash of the message, and sign the hash.

	{sci.crypt FAQ
	(ftp://src.doc.ic.ac.uk/usenet/usenet-by-group/sci.crypt/)}.

	(2001-05-10)

on-line

	<jargon> 1. Ready for use.  E.g. "The graph plotter's fixed
	and on-line again".

	2. {Interactive} as opposed to {batch}.  Accessible via a
	computer (or {terminal}), rather than on paper or other
	medium.

	3. Of a user, actively using a computer system, especially the
	{Internet}.  E.g "I haven't been on-line for three days."

	"On-line" should be hyphenated because it is compounded from
	two words but the hyphen is often omitted in names of
	organisations or services.

	(1998-12-22)

On-Line Analytical Processing

	<database> (OLAP) A category of {database} software which
	provides an interface such that users can transform or limit
	raw data according to user-defined or pre-defined functions,
	and quickly and interactively examine the results in various
	dimensions of the data.

	OLAP primarily involves aggregating large amounts of diverse
	data.  OLAP can involve millions of data items with complex
	relationships.  Its objective is to analyze these
	relationships and look for patterns, trends, and exceptions.

	The term was originally coined by {Dr. Codd} in 1993 with 12
	"rules".  Since then, the {OLAP Council}, many vendors, and
	Dr. Codd himself have added new requirements and confusion.

	Richard Creeth and Nigel Pendse define OLAP as fast analysis
	of shared multidimensional information.  Their definition
	requires the system to respond to users within about five
	seconds.  It should support logical and statistical processing
	of results without the user having to program in a {4GL}.  It
	should implement all the security requirements for
	confidentiality and concurrent update locking.  The system
	must provide a multidimensional conceptual view of the data,
	including full support for multiple hierarchies.  Other
	aspects to consider include data duplication, {RAM} and disk
	space requirements, performance, and integration with {data
	warehouses}.

	Various bodies have attempted to come up with standards for
	OLAP, including The {OLAP Council} and the {Analytical
	Solutions Forum} (ASF), however, the {Microsoft OLE DB for
	OLAP API} is the most widely adopted and has become the {de
	facto standard}.

	{(http://access.digex.net/~grimes/olap/)}.

	{Usenet} newsgroup: {news:comp.databases.olap}.

	{(http://arborsoft.com/papers/finkTOC.html)}.

	[What's a "multidimensional conceptual view"?]

	(1996-09-24)

Online Computer Library Center, Inc.

	<library> (OCLC) A nonprofit membership organisation offering
	computer-based services and research to libraries, educational
	organisations, and their users.  OCLC operates the OCLC
	Cataloging PRISM service for cataloging and resource sharing,
	provides on-line reference systems for both librarians and
	end-users, and distributes on-line electronic journals.
	OCLC's goals are to increase the availability of library
	resources and reduce library costs for the fundamental public
	purpose of furthering access to the world's information.  The
	OCLC library information network connects more than 10,000
	36,000 libraries worldwide.  Libraries use the OCLC System for
	cataloguing, interlibrary loan, collection development,
	bibliographic verification, and reference searching.  Their
	most visible feature is the OCLC Online Union Catalog (OLUC)
	WorldCat (the OCLC Online Union Catalog).

	{(http://oclc.org/)}.

	(2000-03-23)

On-Line Computer system

	(OLC) A predecessor of the {Culler-Fried System} from {UCSB}
	ca. 1966.

	[Sammet 1969, p.253].

	(1995-11-25)

Online Media

	{Acorn Online Media}

On-line Process Synthesizer

	<simulation> (OPS) A system for {discrete simulation} under
	{CTSS} developed by M. Greenberger at {MIT} ca. 1964.

	[Sammet 1969, p.660. Versions: OPS-3, OPS-4. "On- line
	Computation and Simulation: The OPS-3 System", M. Greenberger
	et al, MIT Press 1965].

	(2003-04-05)

Online Public Access Catalog

	<library> (OPAC) A computerised system to catalogue and
	organise materials in a library (the kind that contains
	books).  OPACs have replaced card-based catalogues in many
	libraries.  An OPAC is available to library users (public
	access).

	(2000-07-17)

On-Line Transaction Processing

	<database> (OLTP) The processing of transactions by computers
	in real time.

	[Details?  Products?]

	(1997-05-14)

Ontic

	<language> {Object-oriented} language for an {inference
	system} with a {Lisp}-like appearance, but based on set
	theory.

	["Ontic: A Knowledge Representation System for Mathematics",
	D.A. McAllester, MIT Press 1989].

	(1996-06-24)

onto

	{surjection}

ontology

	1. <philosophy> A systematic account of Existence.

	2. <artificial intelligence> (From philosophy) An explicit
	formal specification of how to represent the objects, concepts
	and other entities that are assumed to exist in some area of
	interest and the relationships that hold among them.

	For {AI} systems, what "exists" is that which can be
	represented.  When the {knowledge} about a {domain} is
	represented in a {declarative language}, the set of objects
	that can be represented is called the {universe of discourse}.
	We can describe the ontology of a program by defining a set of
	representational terms.  Definitions associate the names of
	entities in the {universe of discourse} (e.g. classes,
	relations, functions or other objects) with human-readable
	text describing what the names mean, and formal {axioms} that
	constrain the interpretation and well-formed use of these
	terms.  Formally, an ontology is the statement of a {logical
	theory}.

	A set of {agents} that share the same ontology will be able to
	communicate about a domain of discourse without necessarily
	operating on a globally shared theory.  We say that an agent
	commits to an ontology if its observable actions are
	consistent with the definitions in the ontology.  The idea of
	ontological commitment is based on the {Knowledge-Level}
	perspective.

	3. <information science> The hierarchical structuring of
	knowledge about things by subcategorising them according to
	their essential (or at least relevant and/or cognitive)
	qualities.  See {subject index}.  This is an extension of the
	previous senses of "ontology" (above) which has become common
	in discussions about the difficulty of maintaining {subject
	indices}.

	(1997-04-09)

OnX

	A graphics package from LAL Orsay.

OO

	{object-oriented}

OOA

	{object-oriented analysis}

OOD

	{object-oriented design}

OODB

	{object-oriented database}

OODBMS

	{object-oriented database management system}

OOF

	{Object-Oriented Fortran}

OOGL

	Object-Oriented Graphics Language.  1970's.

OOo

	{OpenOffice.org}

OOP

	{object-oriented programming}

OOPL

	{object-oriented programming language}

OOPS

	"OOPS: A Knowledge Representation Language", D. Vermeir, Proc
	19th Intl Hawaii Conf on System Sciences, IEEE (Jan 1986)
	pp.156-157.

OOPSLA

	Conference on Object-oriented Programming Systems, Languages
	and Applications.

OOSD

	Object-oriented structured design: a design method elaborated
	from structured design and incorporating the essential
	features of the object-oriented approach.

OOZE

	Object oriented extension of Z.  "Object Orientation in Z", S.
	Stepney et al eds, Springer 1992.

op

	<job> /op/ 1. In England and Ireland, a common verbal
	abbreviation for "operator", as in {system operator}.  This is
	less common in the US, where {sysop} seems to be preferred.

	2. The general term for an {IRC} {channel op}.  Also, as a
	verb: to give someone {channel op} privileges.  Compare
	{ircop}.

	[{Jargon File}]

	(1997-12-12)

OPAC

	{Online Public Access Catalog}

Opal

	1. A {DSP} language.

	["OPAL: A High Level Language and Environment for DSP boards
	on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989].

	2. The language of the {object-oriented database} {GemStone}.

	["Making Smalltalk a Database System", G. Copeland et al, Proc
	SIGMOD'84, ACM 1984, pp.316- 325].

	3. A {simulation} language with provision for {stochastic
	variables}.  An extension of {Autostat}.

	["C-E-I-R OPAL", D. Pilling, Internal Report,
	C.E.I.R. Ltd. (1963)].

	4. A language for compiler testing said to be used internally
	by {DEC}.

	5. A {functional programming} language designed at the
	{Technische Universitaet Berlin} as a testbed for the
	development of {functional programs}.  OPAL integrates
	concepts from Algebraic Specification and Functional
	Programming, which favour the (formal) development of (large)
	production-quality software written in a {purely functional}
	style.

	The core of OPAL is a {strongly typed}, {higher-order},
	{strict} applicative language which belongs to the tradition
	of {Hope} and {ML}.  The algebraic flavour of OPAL is visible
	in the syntactical appearance and in the preference of
	{parameterisation} to {polymorphism}.

	OPAL supports: {information hiding} - each language unit is
	divided into an interface (signature) and an implementation
	part; selective import; {parameterised modules}; free
	constructor {views} on {sorts}, which allow pattern-based
	function definitions despite quite different implementations;
	full {overloading} of names; puristic scheme language with no
	{built-in} data types (except {Booleans} and denotations).

	OPAL and its predecessor OPAL-0 have been used for some time
	at the Technische Universitaet Berlin in CS courses and for
	research into optimising compilers for applicative languages.
	The OPAL compiler itself is writte entirely in OPAL.

	An overview is given in "OPAL: Design And Implementation of an
	Algebraic Programming Language".

	{(http://cs.tu-berlin.de/~opal/)}.

	{(ftp://ftp.cs.tu-berlin.de/pub/local/uebb/papers/DesignImplOpal.ps.gz)}.

	(1995-02-16)

OPC

	{OLE for Process Control}

op code

	{operation code}

open

	1. To prepare to read or write a file.  This usually involves
	checking whether the file already exists and that the user has
	the necessary authorisation to read or write it.  The result
	of a successful open is usually some kind of {capability}
	(e.g. a {Unix} {file descriptor}) - a token that the user
	passes back to the system in order to access the file without
	further checks and finally to close the file.

	2. Abbreviation for "open (or left) parenthesis" - used when
	necessary to eliminate oral ambiguity.  To read aloud the LISP
	form (DEFUN FOO (X) (PLUS X 1)) one might say: "Open defun
	foo, open eks close, open, plus eks one, close close."

	3. Non-proprietary.  An open {standard} is one which can be
	used without payment.

	[{Jargon File}]

	(1995-01-31)

open box testing

	{white box testing}

OpenBSD

	<operating system> A version of {BSD Unix} with an emphasis on
	security.  A lot of security work that is ported to other free
	operating systems originates with OpenBSD and a lot of {code
	review} is done here.

	Sub-projects of OpenBSD include implementations of {SSH
	(http://openssh.org/)}, {ntpd (http://openntpd.org/)},
	and {CVS}, to be called OpenCVS.

	{OpenBSD Home (http://openbsd.org/)}.

	(2005-01-17)

open/closed principle

	<programming, theory> A principle used in {OOPL} which states
	that a {class} must be open and closed where open means it has
	the ability to be extended and closed means it cannot be
	modified other than by extension.

	The idea is that once a class has been approved for use having
	gone through code reviews, unit tests, and other qualifying
	procedures, you don't want to change the class very much, just
	extend it.  In practice the open/closed principle simply means
	making good use of {abstraction} and {polymorphism}.

	(1997-09-23)

open-collar worker

	<job> Someone who works at home or telecommutes.

	(1997-04-17)

Open DataBase Connectivity

	<standard, database> (ODBC) A {standard} for accessing
	different {database} systems.  There are interfaces for
	{Visual Basic}, {Visual C++}, {SQL} and the ODBC driver pack
	contains drivers for the {Access}, {Paradox}, {dBase}, Text,
	{Excel} and {Btrieve} databases.

	An application can submit statements to ODBC using the ODBC
	flavor of SQL.  ODBC then translates these to whatever flavor
	the database understands.

	ODBC 1.0 was released in September 1992.

	ODBC is based on {Call-Level Interface} and was defined by the
	{SQL Access Group}.  {Microsoft} was one member of the group
	and was the first company to release a commercial product
	based on its work (under {Microsoft Windows}) but ODBC is not
	a Microsoft standard (as many people believe).

	ODBC drivers and development tools are available now for
	{Microsoft Windows}, {Unix}, {OS/2}, and {Macintosh}.

	[On-line document?]

	["Unix Review", Aug 1995].

	(1996-05-27)

Open Data-link Interface

	<networking, standard> (ODI) A {Novell}-developed {network
	card} {API} that provides media and {protocol} independence.
	It allows the sharing of a single card by multiple {transport
	layer} {protocols} and resolves conflicts.

	(1995-03-13)

Open DeathTrap

	<abuse> An abusive hackerism for the {Santa Cruz Operation}'s
	{Open DeskTop}.  The funniest part is that this was coined by
	SCO's own developers.

	Compare {AIDX}, {Macintrash} {Nominal Semidestructor},
	{ScumOS}, {sun-stools}, {HP-SUX}.

	[{Jargon File}]

	(1995-02-02)

Open Desktop

	<operating system, product> A {Motif}-based graphical
	interface from the {Santa Cruz Operation} (SCO), built over
	their {Unix} environment, part of the {ACE} initiative.

	Also known as "{Open DeathTrap}".

	(1995-02-02)

Open Distributed Processing

	<standard> (ODP) An attempt to standardise an {OSI}
	{application layer} communications architecture.  ODP is a
	natural progression from {OSI}, broadening the target of
	standardisation from the point of interconnection to the end
	system behaviour.  The objective of ODP is to enable the
	construction of {distributed systems} in a multi-vendor
	environment through the provision of a general architectural
	framework that such systems must conform to.  One of the
	cornerstones of this framework is a model of multiple
	viewpoints which enables different participants to observe a
	system from a suitable perspective and a suitable level of
	{abstraction}.

	(1995-03-10)

Open Distributed System Architecture

	(ODSA) A research program sponsored by the UK Department of
	Trade and Industry and the Engineering and Physical Sciences
	Research Council.

	[Details?]

	(1995-02-09)

OpenDoc

	<operating system> A compound document architecture from {CIL}
	based on {CORBA}.  It aims to enable embedding of features
	from different {application programs} into a single working
	document.

	(1997-02-21)

OpenDocument

	<file format, standard> (ODF, ISO/IEC 26300, OASIS Open
	Document Format for Office Applications) An {XML} {file
	format} for {office} documents, such as {spreadsheets},
	charts, presentations, databases and {word processing}.

	OpenDocument was developed by the Open Office XML technical
	committee of the Organization for the Advancement of
	Structured Information Standards ({OASIS}) consortium.  It is
	based on the XML format originally created and implemented by
	the {OpenOffice.org} {office suite}.  OpenDocument is an open
	standard, i.e. freely available and implementable.

	Compare {OOXML}.

	(2007-09-19)

Open Document Architecture

	<standard> (ODA) {ISO} {standard} (8613) for describing
	documents.  It allows text, graphics, and facsimile documents
	to be transferred between different systems.

	{ODIF} is part of ODA.

	(1995-03-03)

Open Document Interchange Format

	<standard> (ODIF) Part of the {ODA} standard.

	(1996-10-16)

Open Document Management API

	<text, standard> An open standard allowing desktop
	applications to interface with {document management systems}.

	{(http://activedoc.com)}.

	(1997-07-04)

OpenGL

	{Open Graphics Library}

Open Graphics Library

	<graphics, library> (OpenGL) A multi-{platform} software
	interface to graphics hardware, supporting {rendering} and
	{imaging} operations.  The OpenGL interface was developed by
	{Silicon Graphics}, who license it to other vendors.

	The OpenGL graphics interface consists of several hundred
	functions operating on 2D and 3D objects, supporting basic
	techniques, such as {modelling} and {smooth shading}, and
	advanced techniques, such as {texture mapping} and {motion
	blur}.  Many operations require a {frame buffer}.  OpenGL is
	{network-transparent}, and a common extension to the {X Window
	System} allows an OpenGL {client} to communicate across a
	network with a different vendor's OpenGL {server}.

	OpenGL is based on Silicon Graphics' proprietary {IRIS GL}.

	{OpenGL WWW Center (http://sgi.com/Technology/openGL/)}.

	{Mesa GL (http://ssec.wisc.edu/~brianp/Mesa.html)} (PD
	implementation).

	(1996-09-30)

Open Group

	{The Open Group}

OpenInsight

	<programming, database> The {workflow}-enabled {Windows
	95}/{Windows NT} version of {Advanced Revelation}, featuring
	native support for {Lotus Notes}, {Microsoft SQL Server},
	{Oracle} and {ODBC}.  OpenInsight is available from
	{Revelation Software}.

	(1997-04-25)

Open Look

	<operating system> A {graphical user interface} and {window
	manager} from {Sun} and {AT&T}.

	{Usenet} newsgroup: {news:comp.graphics.openlook}.

	(1995-06-11)

Open Network Computing

	(ONC) {Sun}'s {network} {protocols}.

	[more detail?]

OpenOffice.org

	<project> (OOo) The group that produces a {free} ({GPL})
	{cross-platform} {office suite} that provides much of the same
	functionality as {Microsoft Office} including {word
	processing}, {spreadsheet}, presentation and graphics.  Each
	program can read and write both its own and Microsoft formats.

	{OpenOffice Home (http://openoffice.org/)}.

	(2005-01-26)

Open Prolog

	<Prolog, Macintosh> {Prolog} for the {Macintosh} by Michael
	Brady <brady@cs.tcd.ie>.

	{(http://cs.tcd.ie/open-prolog/)}.

	[Details?]

	(2000-12-21)

Open Scripting Architecture

	(OSA) A {CIL} approach to the coexistence of multiple
	scripting systems.

	(1995-03-10)

Open Shortest-Path First

	{Open Shortest-Path First Interior Gateway Protocol}

Open Shortest-Path First Interior Gateway Protocol

	<networking, protocol, standard> (OSPF) A {link state routing
	protocol} that is one of the {Internet} standard {Interior
	Gateway Protocols} defined in {RFC 1247}.

	There is no OSPF {EGP}, OSPF is an IGP only.

	[Relationship to {Internet Protocol} packet routing?]

	{OSPF Design Guide
	(http://cisco.com/warp/public/104/1.html)}.

	(2002-06-29)

Open Software Foundation

	<body> (OSF) A foundation created by nine computer vendors,
	({Apollo}, {DEC}, {Hewlett-Packard}, {IBM}, {Bull}, {Nixdorf},
	{Philips}, {Siemens} and {Hitachi}) to promote "Open
	Computing".  It is planned that common {operating systems} and
	interfaces, based on developments of {Unix} and the {X Window
	System} will be forthcoming for a wide range of different
	hardware architectures.  OSF announced the release of the
	industry's first open {operating system} - OSF/1 on 23 October
	1990.

	(1994-11-23)

open source

	<philosophy, legal> A method and philosophy for software
	licensing and distribution designed to encourage use and
	improvement of software written by volunteers by ensuring that
	anyone can copy the {source code} and modify it freely.

	The term "open source" is now more widely used than the
	earlier term "{free software}" (promoted by the {Free Software
	Foundation}) but has broadly the same meaning - free of
	distribution restrictions, not necessarily free of charge.

	There are various {open source licenses} available.
	Programmers can choose an appropriate license to use when
	distributing their programs.

	The {Open Source Initiative} promotes the {Open Source
	Definition}.

	{The Cathedral and the Bazaar
	(http://tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html)}.
	was a seminal paper describing the open source phenomenon.

	{Open Sources - O'Reilly book with full text online
	(http://oreilly.com/catalog/opensources/book/perens.html)}.

	{Articles from ZDNet
	(http://zdnet.com/pcmag/features/opensource/)}.

	(1999-12-29)

Open Source Definition

	<standard> (OSD) Definition of distribution terms for {open
	source} software, promoted by the {Open Source Initiative}.

	{(http://opensource.org/osd.html)}.

	(1999-11-28)

Open Source Initiative

	<body> (OSI) An organisation dedicated to managing and
	promoting the {Open Source Definition} for the good of the
	community.

	{(http://opensource.org/)}.

	(1999-11-28)

Open source license

	<legal> Any document that attempts to specify {open source}
	usage and distribution of software.  These licenses are
	usually drafted by experts and are likely to be more legally
	sound than one a programmer could write.  However, loopholes
	do exist.

	Here is a non-exhaustive list of open source licenses:

	1. {Public Domain} - No license.

	2. {BSD} License - An early open source license

	3. {General Public License} (GPL) - The {copyleft} license of
	the {Free Software Foundation}.  Used for {GNU} software and
	much of {Linux}.

	4. {Artistic License
	(http://my-opensource.org/Artistic.txt)} Less restrictive
	than the GPL, permitted by {Perl} in addition to the GPL.

	5. {Mozilla Public Licenses (http://mozilla.org/MPL/)}.
	(MPL, MozPL) and Netscape Public License (NPL).

	["Open Sources", pub. O'Reilly, {full text
	(http://oreilly.com/catalog/opensources/book/perens.html)}].

	(1999-11-28)

OpenStep

	<operating system> An {object-oriented} {application
	programming interface} (API) derived from {NEXTSTEP} and
	proposed as an {open standard} by {NeXT} in 1994.

	OpenStep is the specification of the object kits of NEXTSTEP.
	OPENSTEP/Mach was an implementation of this specification.
	The original, OPENSTEP version 4.0, and really was NEXTSTEP 4.
	{Rhapsody} was the codename for {Apple}'s {Mac OS X} Server,
	which is really NEXTSTEP 5 (it calls itself "kernel 5.3" at
	boot time).

	OpenStep was designed to be implemented independently of the
	computer's operating system, hardware, and user interface.
	The {API} for {Rhapsody} will be a superset of {OpenStep}'s.

	When the OpenStep {API} is implemented for a specific platform
	and made into a product, it is written in uppercase,
	e.g. OPENSTEP Developer 4.2 for Mach, or OPENSTEP Enterprise
	for {Windows NT} and {Windows 95}.  Versions of OPENSTEP exist
	for Windows 95/NT, Solaris, HP/UX, and Mach.

	(1999-11-25)

open switch

	({IBM}, probably from railways) An unresolved question, issue,
	or problem.

	[{Jargon File}]

	(1994-11-11)

Open System Architecture

	<operating system> (OSA) A competitor to {IBM}'s {SNA}.

	(2005-03-07)

Open Systems Interconnect

	{Open Systems Interconnection}

Open Systems Interconnection

	<networking> (OSI-RM, OSI Reference Model, seven layer model)
	A model of network architecture and a suite of {protocols} (a
	{protocol stack}) to implement it, developed by {ISO} in 1978
	as a framework for international {standards} in heterogeneous
	computer {network} architecture.

	The OSI architecture is split between seven {layers}, from
	lowest to highest: 1 {physical layer}, 2 {data link layer}, 3
	{network layer}, 4 {transport layer}, 5 {session layer}, 6
	{presentation layer}, 7 {application layer}.

	Each layer uses the layer immediately below it and provides a
	service to the layer above.  In some implementations a layer
	may itself be composed of sub-layers.

	OSI is the umbrella name for a series of non-proprietary
	protocols and specifications, comprising, among others, the
	OSI Reference Model, ASN.1 ({Abstract Syntax Notation 1}), BER
	({Basic Encoding Rules}), {CMIP} and {CMIS} (Common Management
	Information Protocol and Services), {X.400} (Message Handling
	System, or MHS), {X.500} (Directory Service), {Z39.50} (search
	and retrieval protocol used by {WAIS}), and many others.
	Apart from its actual application to real protocols, it also
	serves as a useful teaching model.

	(2004-02-13)

Open Telecom Platform

	<communications, library, Erlang> (OTP) A set of standard,
	{open source} {libraries} and tools for use with {Erlang}.

	{(http://erlang.org/faq/t1.html#AEN17)}.

	(2001-08-28)

Open Trading Protocol

	{Internet Open Trading Protocol}

OpenTransport

	<networking> (OT) A complete reimplementation of all levels of
	the {Macintosh} {networking} code including "Classic"
	{AppleTalk} and {MacTCP}.  It appeared in {MacOS} revision
	7.5.3 [or earlier?  Date?].

	(2000-08-13)

Open University

	<education, body> (OU) The UK distance-learning organisation,
	established in 1969.  It teaches degree-level courses in many
	subjects via BBC radio and television broadcasts and summer
	schools.

	{(http://hcrl.open.ac.uk/ou/ouhome.html)}.

	(1999-07-13)

OpenVMS

	{Virtual Memory System}

OpenWindows

	<operating system> A {graphical user interface} {server} for
	{Sun} {workstations} which handles {SunView}, {NeWS} and {X
	Window System} protocols.

	(1995-06-11)

operand

	<programming> An {argument} of an {operator} or of a {machine
	language} instruction.

	(1995-08-18)

operating system

	<operating system> (OS) The low-level {software} which handles
	the interface to {peripheral} {hardware}, schedules {tasks},
	allocates {storage}, and presents a default {interface} to the
	user when no {application program} is running.

	The OS may be split into a {kernel} which is always present
	and various system programs which use facilities provided by
	the kernel to perform higher-level {house-keeping} tasks,
	often acting as {servers} in a {client-server} relationship.

	Some would include a {graphical user interface} and {window
	system} as part of the OS, others would not.  The {operating
	system loader}, {BIOS}, or other {firmware} required at {boot
	time} or when installing the operating system would generally
	not be considered part of the operating system, though this
	distinction is unclear in the case of a {rommable operating
	system} such as {RISC OS}.

	The facilities an operating system provides and its general
	design philosophy exert an extremely strong influence on
	programming style and on the technical cultures that grow up
	around the machines on which it runs.

	Example operating systems include {386BSD}, {AIX}, {AOS},
	{Amoeba}, {Angel}, {Artemis microkernel}, {BeOS}, {Brazil},
	{COS}, {CP/M}, {CTSS}, {Chorus}, {DACNOS}, {DOSEXEC 2},
	{GCOS}, {GEORGE 3}, {GEOS}, {ITS}, {KAOS}, {Linux}, {LynxOS},
	{MPV}, {MS-DOS}, {MVS}, {Mach}, {Macintosh operating system},
	{Microsoft Windows}, {MINIX}, {Multics}, {Multipop-68},
	{Novell NetWare}, {OS-9}, {OS/2}, {Pick}, {Plan 9}, {QNX},
	{RISC OS}, {STING}, {System V}, {System/360}, {TOPS-10},
	{TOPS-20}, {TRUSIX}, {TWENEX}, {TYMCOM-X}, {Thoth}, {Unix},
	{VM/CMS}, {VMS}, {VRTX}, {VSTa}, {VxWorks}, {WAITS}.

	{FAQ
	(ftp://src.doc.ic.ac.uk/usenet/news-info/comp.os.research)}.

	{Usenet} newsgroup: {news:comp.os.research}.

	[{Jargon File}]

	(1999-06-09)

Operating System/360

	<operating system> (OS/360) An {operating system} developed by
	{IBM} for their {System/360} computer (announced in 1964).

	After this experience, {Frederick P. Brooks} wrote his famous
	book, {The Mythical Man-Month}, giving OS/360 as an example of
	the {second-system effect}.

	[Features?  Relatonship to {DOS/360}?]

	(2001-03-23)

Operating System/Multiprogramming of Fixed Tasks

	<operating system> (OS/MFT) One of the {IBM} {operating
	systems} associated with the {IBM 360}, released in 1966 and
	targetted at mid-range {IBM 360} users (typically 360/40,
	360/50).  OS/MFT was the juinior member of the main 'OS'
	series of IBM operating systems, the other being {OS/MVT}.
	Smaller 360 mainframes used {DOS}.

	OS/MFT shared {JCL} and utilities with OS/MVT but allocated
	memory differently.  In OS/MFT, partitions of memory were of a
	fixed number and size, specified by the generation and
	configuration of the operating system.  As this class of
	mainframe had typically less than 512K of main memory,
	partitions tended to be about 128K.

	With the advent of {Virtual Storage} and the {System 370}'s
	{Dynamic Address Translation} (DAT), OS/MFT was improved to
	become {OS/VS1}, taking account of virtual storage in a single
	partition up to 16MB.

	(1999-01-22)

operational database

	<database> A {database} containing up-to-date, modifiable
	data, in contrast to a {decision support database}.

	(1995-02-14)

Operational Data Store

	<database> (ODS) A group of integrated databases designed to
	support the monitoring of operations.  Unlike function
	oriented databases, an ODS contains subject-oriented, dynamic,
	current enterprise-wide information that is continually
	updated to show the current state of operations.

	["Data Warehousing Architecture and Implementation"].

	(2010-02-28)

operational requirements

	<programming> Qualitative and quantitative parameters that
	specify the desired capabilities of a system and serve as a
	basis for determining the operational effectiveness and
	suitability of a system prior to deployment.

	(1997-01-07)

operational semantics

	<theory> A set of rules specifying how the state of an actual
	or hypothetical computer changes while executing a program.
	The overall state is typically divided into a number of
	components, e.g. {stack}, {heap}, {registers} etc.  Each rule
	specifies certain preconditions on the contents of some
	components and their new contents after the application of the
	rule.

	It is similar in spirit to the notion of a {Turing machine},
	in which actions are precisely described in a mathematical
	way.

	Compuare {axiomatic semantics}, {denotational semantics}.

	(1996-08-21)

operational test and evaluation

	<testing> (OT&E) Formal testing conducted prior to deployment
	to evaluate the operational effectiveness and suitability of
	the system with respect to its mission.

	(1997-01-07)

operational testing

	<testing> A US DoD term for testing performed by the
	{end-user} on software in its normal operating environment.

	(1997-01-07)

operation code

	<programming> (Always "op code" when spoken) The part or parts
	of a {machine language} {instruction} which determines what
	kind of action the computer should take, e.g. add, jump, load,
	store.  In any particular {instruction set} certain fixed bit
	positions within the instruction word contain the op code,
	others give {parameters} such as the addresses or {registers}
	involved.  For example, in a 32-bit instruction the most
	significant eight bits might be the op code giving 256
	possible operations.

	For some instruction sets, certain values in the fixed bit
	positions may select a group of operations and the exact
	operation may depend on other bits within instruction word or
	subsequent words.

	When programming in {assembly language}, the op code is
	represented by a readable name called an {instruction
	mnemonic}.

	(1997-02-14)

operations support technician

	<job> A person who analyses and supports computer operations
	by controlling production applications, monitoring system
	resources and response time and providing first-line support
	for operational problems.

	(2004-03-20)

operator

	<programming> A symbol used as a {function}, with {infix
	syntax} if it has two arguments (e.g. "+") or {prefix syntax} if
	it has only one (e.g. {Boolean} NOT).  Many languages use
	operators for built-in functions such as arithmetic and logic.

	(1995-04-30)

Operator Control Language

	<language> (OCL) The {batch language} for the {IBM System/36},
	used specifically with the {RPG II} {compiler}.

	See also {CL}.

	(1994-11-18)

operator overloading

	{overloading}

OPF

	{Object Persistence Framework}

Opportunity Management System

	<business> (OMS) A system that stores sales opportunities and
	related information.  Each sales lead can be tracked with
	information such as source, type, worth, status, likelihood of
	closure etc.

	An OMS can perform other related tasks such as prioritising
	sales calls and generating analyses that assist the fine-tuning
	of marketing strategies.

	See also {Customer Relationship Management}.

	(1999-08-20)

OPS

	1. <simulation> {On-line Process Synthesizer}.

	2. <language> {Official Production System}.

	3. <database> {Oracle Parallel Server}.

	(2003-04-05)

OPS5

	<language> A programming language for rule-based {production
	systems}.  A rule consists of pre-condition(s) and a resulting
	action.

	The system checks its {working memory} to see if there are
	rules whose pre-conditions are satisfied, if so, the action in
	one selected satisfied rule is executed.

	There is a {public domain} implementation of an OPS5
	{interpreter} written by Charles L. Forgy <forgy@cs.cmu.edu>
	in 1977.  It was first implemented in {Lisp} and later in
	{BLISS}.  It was also ported to {Common Lisp} by George Wood
	and Jim Kowalski.

	{CLIPS} is a language for writing {expert systems}, with some
	of the capabilities of OPS5.

	See also {C5}, {OPS83}, {OPS4}, {OPS5+}, {OPS83}.

	Inference Engine Tech, Cambridge MA.

	{An OPS5 interpreter in Common LISP
	(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/ops5)}.

	{A version by Mark Kantrowitz
	(ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/mkant/Public/Lisp/)}.
	<mkant+@cs.cmu.edu>.

	["Programming Expert Systems in OPS5", L. Brownston et al, A-W
	1985].

	["An OPS5 Primer", Sherman et al, comes with OPS5 for DOS].

	["Rule-Based Programming in the Unix System", G.T. Vesonder,
	AT&T Tech J 67(1), 1988].

	(1995-08-18)

OPS83

	A commercial version of {OPS5}.

Optical Carrier 12

	<networking> (OC-12) A {SONET} rate of 12 * 51.84 = 622.08
	{megabits} per second.

	[Matches {STS-12}]?

	(1997-05-26)

Optical Carrier 3

	<networking> (OC-3) A {SONET} rate of 3 * 51.84 = 155.52
	{megabits} per second, which matches {STS-3}.

	(1997-02-05)

Optical Carrier 48

	<networking> (OC-48) A {SONET} rate of 48 * 51.84 = 2488.32
	{megabits} per second.

	[Matches {STS-48}]?

	(1997-05-26)

Optical Carrier n

	<networking> (OC-n) A {SONET} rate of n times 51.84 {megabits}
	per second.

	(1997-02-05)

Optical Character Recognition

	<text> (OCR, sometimes /oh'k*/) Recognition of printed or
	written characters by computer.  Each page of text is
	converted to a digital using a {scanner} and OCR is then
	applied to this image to produce a text file.  This involves
	complex {image processing} {algorithms} and rarely achieves
	100% accuracy so manual proof reading is recommended.

	(1999-08-26)

optical diff

	{vdiff}

optical disc drive

	{optical disk drive}

optical disk drive

	<hardware> (Or "optical disc drive", "optical storage") A generic
	term for any device that reads and/or writes {optical media},
	i.e. {compact discs}, {DVDs} and/or {Blu-ray discs} or future
	media that uses light (from a small laser) to read data off a
	removable, rotating disk.

	At least one such drive is commonly installed in most {personal
	computers} to allow them to play and/or record {audio} and {video}
	media and load and store data such as program {installers}.

	The {floppy disk} has been replaced by optical media due to its
	vastly greater capacity, e.g. 50,000 {megabytes} for a dual-layer
	{blu-ray disc} compared with 1.5 {megabytes} for a floppy (over
	30,000 times as much).

	(2014-04-27)

optical drive

	{optical disk drive}

optical fiber

	{optical fibre}

optical fibre

	<communications> (fibre optics, FO, US "fiber", light pipe) A
	plastic or glass (silicon dioxide) fibre no thicker than a
	human hair used to transmit information using infra-red or
	even visible light as the carrier (usually a laser).  The
	light beam is an electromagnetic signal with a frequency in
	the range of 10^14 to 10^15 Hertz.

	Optical fibre is less susceptible to external noise than other
	transmission media, and is cheaper to make than copper wire,
	but it is much more difficult to connect.  Optical fibres are
	difficult to tamper with (to monitor or inject data in the
	middle of a connection), making them appropriate for secure
	communications.  The light beams do not escape from the medium
	because the material used provides total internal reflection.

	{AT&T} {Bell Laboratories} in the United States managed to
	send information at a rate of 420 megabits per second, over
	161.5 km through an optical fibre cable.  In Japan, 445.8
	megabits per second was achieved over a shorter distance.  At
	this rate, the entire text of the Encyclopedia Britannica
	could be transmitted in one second.  Currently, AT&T is
	working on a world network to support high volume data
	transmission, international computer networking, {electronic
	mail} and voice communications (a single fibre can transmit
	200 million telephone conversations simultaneously).

	See also {FDDI}, {Optical Carrier n}, {SONET}.

	(1997-05-26)

optical grep

	{vgrep}

Optical Mark Reader

	<hardware> (OMR) A special scanning device that can read
	carefully placed pencil marks on specially designed documents.
	OMR is frequenty used in forms, questionnaires, and
	answer-sheets.

	(1995-04-13)

optical mouse

	<hardware> Any kind of {mouse} that uses visible light or
	infrared to detect changes in its position.

	(1999-07-21)

optical storage

	{optical disk drive}

Optical Storage Technology Association

	<body> (OSTA) An industry consortium concerned with {optical
	storage}.  OSTA wrote and maintains the {UDF} {file system}
	used on {DVD video} discs.

	{OSTA Home (http://osta.org/)}.

	(2003-07-12)

Optical Time Domain Reflectometer

	<hardware> A device used to perform {Optical Time Domain
	Reflectometry}.

	(1995-02-01)

Optical Time Domain Reflectometry

	Measurement of the elapsed time and intensity of light
	reflected on {optical fibre} using an optical time domain
	reflectometer.  The reflectometer can compute the distance to
	problems on the fibre such as attenuation and breaks, making
	it a useful tool in optical network trouble-shooting.

	(1995-02-01)

optimal

	1. <mathematics> Describes a solution to a problem which
	minimises some {cost function}.  {Linear programming} is one
	technique used to discover the optimal solution to certain
	problems.

	2. <programming> Of code: best or most efficient in time,
	space or code size.

	(1995-10-05)

Optimal Flexible Architecture

	<database> (OFA) Recommendations for logical and physical
	allocation of {database} files to disks.  The OFA principles
	can be summarised as: isolate redo, rollback, temp, data and
	index files as much as possible.  OFA can be combined with
	SAME ({Stripe And Mirror Everything}).

	(2007-02-28)

optimise

	To perform {optimisation}.

optimising compiler

	<programming, tool> {compiler} which attempts to analyse the
	code it produces and to produce more efficient code by
	performing {program transformation} such as {branch
	elimination}, {partial evaluation}, or {peep-hole
	optimisation}.

	Contrast {pessimising compiler}.

	(1995-02-01)

optimism

	What a programmer is full of after fixing the last bug and
	just before actually discovering the *next* last bug.  Fred
	Brooks's book "{The Mythical Man-Month}" contains the
	following paragraph that describes this extremely well.

	All programmers are optimists.  Perhaps this modern sorcery
	especially attracts those who believe in happy endings and
	fairy god-mothers.  Perhaps the hundreds of nitty frustrations
	drive away all but those who habitually focus on the end goal.
	Perhaps it is merely that computers are young, programmers are
	younger, and the young are always optimists.  But however the
	selection process works, the result is indisputable: "This
	time it will surely run," or "I just found the last bug.".

	See also {Lubarsky's Law of Cybernetic Entomology}.

	[{Jargon File}]

optimize

	{optimisation}

option

	{command line option}

OPTRAN

	Specification language for attributed tree transformation
	writetn by R. Wilhelm, U Saarlandes in the early 1980's.

	["POPSY and OPTRAN Manual", ESPRIT PROSPECTRA Project Item
	S.1.6-R.3.0, U Saarlandes (Mar 1986)].

Opus

	<project, product> A {Honeywell} {operating system} promised
	as a sop to customers after canning {Multics} in 1985.  Opus
	was to provide everything Multics had and more, plus total
	compatibility with the {Level 6}/{DPS6} operating system.

	"Opus" was a code name, the system was officially named VS3
	(short for HVS R3 or Honeywell Virtual System Release Three).
	It was to run on the {DPS6-plus} hardware known internally as
	the MRX and HRX, and be all things to all people.

	The hardware was a dud (though it did run the native DPS6
	software just fine), and the goal was, shall we say,
	ambitious.  The effort was cancelled by {Bull} in 1987, in
	favor of another project going on in France.

OR

	<logic> The {Boolean} function which is true if any of its
	arguments are true.  Its {truth table} is:

	 A | B | A OR B
	 --+---+---------
	 F | F |    F
	 F | T |    T
	 T | F |    T
	 T | T |    T

	(1996-11-04)

Oracle

	{Oracle Corporation}

Oracle 7

	<database> Version 7 of the {Oracle} {relational database}
	system software.

	(1996-11-05)

Oracle Card

	<tool> A {Hypercard}-like product from {Oracle} for
	constructing {database} {applications}.  It runs on {IBM PC}
	and {Macintosh}.

	(1995-03-15)

Oracle*CASE

	A set of {CASE} tools from {Oracle}.

Oracle Co-operative Applications

	<tool, product> Packaged {client/server} software from
	{Oracle} for accounting, manufacturing, distribution, human
	resources and project control.

Oracle Corporation

	<company> The world's leading supplier of information
	management software.  The company, worth $2 billion, offers
	its products, along with related consulting, education and
	support services in more than 90 countries around the world.

	Oracle is best known for its {database management systems}
	vendor and {relational DBMS} products.  Oracle develops and
	markets {Oracle Media Server} and the {Oracle7} family of
	software products for {database} management; {Co-operative
	Development Environment} and {Oracle Co-operative
	Applications}

	Oracle software runs on {personal digital assistants},
	{set-top boxs}, {IBM PCs}, {workstations}, {minicomputers},
	{mainframes} and {massively parallel computers}.

	Oracle bought {Sun Microsystems} on 2009-04-20.

	See also {Adaptable User Interface}, {Bookviewer},
	{CASE*Method}, {Component Integration Laboratories}, {DDE
	Manager}, {Online Media}, {Oracle Card}, {Oracle*CASE},
	{siod}.

	{(http://oracle.com/)}.

	Address: Redwood Shores, CA, USA.

	(1995-03-15)

Oracle Parallel Server

	<database> (OPS) An {Oracle} configuration that allows for
	multiple Oracle servers running on seperate computers to
	access the same database files simultaneously.

	Normally used for {high availability}, running parallel
	servers can improve performance by spreading out {CPU} load,
	however, it requires data to be partitioned correctly.

	This feature is enabled with the Parallel Server Option (or
	"PSO").

	{Oracle Parallel Server Option FAQ
	(http://orafaq.com/faqops.htm)}.

	(2003-04-05)

Oracle Rdb

	<database> A set of {relational database} products originally
	known as Rdb from {Digital Equipment Corporation}, but
	purchased by {Oracle Corporation} in 1994.  The current (October
	1996) versions are Oracle Rdb V7.0 for {OpenVMS} {VAX}, Oracle
	Rdb V7.0 for OpenVMS {Alpha}, and Oracle Rdb V7.0 for {Digital
	UNIX}.

	This release of Oracle Rdb includes advances in {non-stop
	computing} for {business critical} applications, improvements
	to {OLTP} performance, and easy {client/server} application
	development.  It also includes an {ODBC} Driver.

	(1996-10-30)

Oracle Toolkit

	{Adaptable User Interface}

Orange Book

	<security, standard> A standard from the US Government
	{National Computer Security Council} (an arm of the
	U.S. National Security Agency), "Trusted Computer System
	Evaluation Criteria, DOD standard 5200.28-STD, December 1985"
	which defines criteria for trusted computer products.  There
	are four levels, A, B, C, and D.  Each level adds more
	features and requirements.

	D is a non-secure system.

	C1 requires user log-on, but allows {group ID}.

	C2 requires individual log-on with password and an audit
	mechanism.  (Most {Unix} implementations are roughly C1, and
	can be upgraded to about C2 without excessive pain).

	Levels B and A provide mandatory control.  Access is based on
	standard Department of Defense clearances.

	B1 requires DOD clearance levels.

	B2 guarantees the path between the user and the security
	system and provides assurances that the system can be tested
	and clearances cannot be downgraded.

	B3 requires that the system is characterised by a mathematical
	model that must be viable.

	A1 requires a system characterized by a mathematical model
	that can be proven.

	See also {crayola books}, {book titles}.

	[{Jargon File}]

	(1997-01-09)

ORB

	{Object Request Broker}

Orbit

	A {Scheme} compiler.

	["Orbit: An Optimising Compiler for Scheme", D.A. Kranz et al,
	SIGPLAN Notices 21(7):281-292 (Jul 1986)].

	(1994-10-28)

Orca

	Vrije Universiteit, Amsterdam, 1986.  Similar to Modula-2, but
	with support for distributed programming using shared data
	objects, like Linda.  A 'graph' data type removes the need for
	pointers.  Version for the Amoeba OS, comes with Amoeba.
	"Orca: A Language for Distributed Processing", H.E.  Bal
	<bal@cs.vu.nl> et al, SIGPLAN Notices 25(5):17-24 (May 1990).

Order Code Processor

	<processor> The {ICL 2900}, {ICL 3900} and above term for
	"{CPU}".

	(1995-05-06)

order-embedding

	A function f : D -> C is order-embedding iff for all x, y in
	D,

		f(x) <= f(y)  <=>  x <= y.

	I.e. arguments and results compare similarly.  A function which
	is order-embedding is {monotonic} and one-to-one and an
	{injection}.

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

	(1995-02-03)

ordering

	A relation.

	See {partial ordering}, {pre-order}, {total ordering}.

ordinal

	<mathematics> An {isomorphism class} of {well-ordered sets}.

	(1995-03-10)

ordinary differential equation

	<mathematics> (ODE) A {differential equation} that contains
	functions of only one independent variable, in contrast to a
	{partial differential equation} (PDE).

	(2009-03-11)

ordinate

	<mathematics> The y-coordinate on an (x,y) graph; the output
	of a function plotted against its input.

	x is the "{abscissa}".

	See {Cartesian coordinates}.

	(1997-07-08)

OREGANO

	["On the Design and Specification of the Programming Language
	OREGANO", D.M. Berry. UCLA-ENG-7388, 1973].

O'Reilly and Associates

	The leading publisher of information on the {Internet},
	{Unix}, the {X Window System} and other {open} systems.  They
	also provide the {Global Network Navigator} service.

	{Home page(http://ora.com/)}.

	(1995-01-10)

org

	<networking> The {top-level domain} for organisations or
	individuals that don't fit any other top-level domain
	(national, com, edu, or gov).  Though many have .org domains,
	it was never intended to be limited to non-profit
	organisations.

	{RFC 1591}.

	(2001-05-14)

Organic Mode

	<programming> A term used by {COCOMO} to describe a project
	that is developed in a familiar, stable environment.

	The product is similar to previously developed products.  Most
	people connected with the project have extensive experience in
	working with related systems and have a thorough understanding
	of the project.  The project contains a minimum of innovative
	data processing architectures or {algorithms}.  The product
	requires little innovation and is relatively small, rarely
	greater than 50,000 {DSIs}.

	(1996-05-29)

Orient84/K

	<language>

	["A Concurrent Object-Oriented Knowledge Representation
	Language Orient84/K", Y. Ishikawa, Keio U, Yokohama, SIGPLAN
	Notices 21(11):232-241 OOPSLA '86, Nov 1986].

	(1996-05-29)

Original Equipment Manufacturer

	<company> (OEM) A misleading term for a company which
	repackages equipment, such as computers, made by other
	companies.  Unlike a {value added reseller}, an OEM does not
	necessarily add anything except their name to the product.  In
	some cases though they may integrate components into complete
	systems.  OEM arrangements are often made for marketing
	reasons.

	[Origin?]

	(2001-04-09)

ORKID

	{Open Real-time Kernel Interface Definition}

ORM

	1. {object relational modelling}.

	2. {Object Role Modeling}.

orphaned i-node

	/or'f*nd i:'nohd/ [Unix] 1. A file that retains storage but no
	longer appears in the directories of a file system.

	[{Jargon File}]

orphan process

	<operating system> A {Unix} process whose original parent has
	terminated and which has become a child of "{init}(1)".

	Compare {zombie}.

	(1996-05-29)

ORTHOCARTAN

	<mathematics, tool> A system for {symbolic mathematics},
	especially General Relativity, written by A. Krasinski of
	Warsaw in the early 1980s.

	(1995-04-12)

orthogonal

	<geometry> At 90 degrees (right angles).

	N mutually orthogonal {vectors} {span} an N-dimensional
	{vector space}, meaning that, any vector in the space can be
	expressed as a {linear combination} of the vectors.  This is
	true of any set of N {linearly independent} vectors.

	The term is used loosely to mean mutually independent or well
	separated.  It is used to describe sets of primitives or
	capabilities that, like linearly independent vectors in
	geometry, span the entire "capability space" and are in some
	sense non-overlapping or mutually independent.  For example,
	in logic, the set of operators "not" and "or" is described as
	orthogonal, but the set "nand", "or", and "not" is not
	(because any one of these can be expressed in terms of the
	others).

	Also used loosely to mean "irrelevant to", e.g. "This may be
	orthogonal to the discussion, but ...", similar to "going off
	at a tangent".

	See also {orthogonal instruction set}.

	[{Jargon File}]

	(2002-12-02)

orthogonal instruction set

	<architecture> An {instruction set} where all (or most)
	instructions have the same format and all {registers} and
	{addressing modes} can be used interchangeably - the choices
	of {op code}, register, and addressing mode are mutually
	independent (loosely speaking, the choices are
	"{orthogonal}").  This contrasts with some early {Intel}
	{microprocessors} where only certain registers could be used
	by certain instructions.

	Examples include the {PDP-11}, {680x0}, {ARM}, {VAX}.

	(2002-06-26)

Orwell

	Lazy functional language, Miranda-like.  List comprehensions
	and pattern matching.  "Introduction to Orwell 5.00",
	P.L. Wadler et al, Programming Research Group, Oxford U, 1988.

OS

	1. {operating system}.

	2. [obsolete, {ITS}], an output spy.  See "{OS and JEDGAR}".

	3. <operating system> An {operating system} from {IBM} for
	their {System/360} line of hardware announced in 1964.  OS was
	planned with several flavours that were supposed to be
	compatible.  OS was late, memory hungry and not able to reach
	the marketing objectives of IBM for the 360/30, the planned
	successor of the {IBM 1401}.  IBM then decided to design a new
	operating system for the low end machines which they called
	{DOS/360}.

	[{Jargon File}]

	(1997-09-22)

OS2

	<spelling> Normally written "{OS/2}".

	[{Jargon File}]

	(1997-05-02)

OS/2

	/O S too/ {IBM} and {Microsoft}'s successor to the {MS-DOS}
	{operating system} for {Intel 80286} and {Intel 80386}-based
	{microprocessors}.  It is proof that they couldn't get it
	right the second time either.  Often called "Half-an-OS".  The
	design was so {baroque}, and the implementation of 1.x so bad,
	that 3 years after introduction you could still count the
	major {application programs} shipping for it on the fingers of
	two hands, in {unary}.  Later versions improved somewhat, and
	informed hackers now rate them superior to {Microsoft
	Windows}, which isn't saying much.  See {second-system
	effect}.

	On an {Intel 80386} or better, OS/2 can {multitask} between
	existing {MS-DOS} {applications}.  OS/2 is strong on
	connectivity and the provision of robust {virtual machines}.
	It can support {Microsoft Windows} programs in addition to its
	own {native} applications.  It also supports the {Presentation
	Manager} {graphical user interface}.

	{OS/2} supports {hybrid multiprocessing} (HMP), which provides
	some elements of {symmetric multiprocessing} (SMP), using
	add-on IBM software called {MP/2}.  OS/2 SMP was planned for
	release in late 1993.

	After OS/2 1.x the {IBM} and {Microsoft} partnership split.
	IBM continued to develop OS/2 2.0, while Microsoft developed
	what was originally intended to be OS/2 3.0 into {Windows NT}.
	In October 1994, IBM released version OS/2 3.0 (known as
	"Warp") but it is only distantly related to {Windows NT}.
	This version raised the limit on RAM from 16MB to 1GB (like
	Windows NT).

	IBM introduced networking with "OS/2 Warp Connect", the first
	multi-user version.  OS/2 Warp 4.0 ("Merlin") is a {network
	operating system}.

	{(http://mit.edu:8001/activities/os2/os2world.html)}.

	[Dates?]

	[{Jargon File}]

	(1995-07-20)

OS/360

	{Operating System/360}

OS/390

	<operating system> An {IBM} {mainframe} {operating system},
	featuring integrated {MVS}, {UNIX}, {LAN}, {distributed
	computing} and {application enablement services} through its
	base elements.  These base services enable open, distributed
	processing and offer a foundation for object-ready application
	development.  The OS/390 base includes a {Communication
	Server} that includes {VTAM}, the {VTAM AnyNet} feature,
	{TCP/IP} and {TIOC}.  It provides {SNA} ({3270}), {APPC},
	{High Performance Routing}, {ATM} support, {sockets} and
	{RPC}.

	OS/390 is basically rebranded, repackaged {MVS/OE}, {CMOS}
	processors, {RAMAC} disk arrays and {open systems} extension
	to networking in {VTAM}, the principle being that if you can't
	compete, rebrand what you have and tell everyone it's
	something new.

	{(http://204.146.133.206/os390/index.html)}.

	(1999-01-20)

OS-9

	<operating system> A {real-time} {operating system} written by
	{Microware Corporation}.  The original version was written
	about 1978 for the {Motorola 6809} and has since been ported
	to the {Motorola 68000}, {Intel 80386}, {Intel 486}, and the
	{PowerPC}.  The {kernel} of OS-9 is {ROMable}, modular, with a
	unified file system, allowing it to easily be scaled up or
	down as required.

	{FAQ (http://os9archive.rtsi.com/os9faq.html)}.

	{User Group (http://cs.wisc.edu/~pruyne/os9ugfaq.html)}.

	{Usenet} newsgroup: {news:comp.os.os9}.

	(1996-04-03)

OSA

	1. {Open Scripting Architecture}.

	2. {Open System Architecture}.

OSA extension

	(OSAX) Any extension to {Macintosh} {OSA}.

	(1999-01-14)

OSAX

	{OSA extension}

Osborne 1

	<computer> A {portable computer} that weighed 11 kg and cost
	$1795, produced by {Osborne Computer Corporation} in 1981.

	The Osborne 1 came with a five-inch screen, {modem} port, two
	5 1/4 {floppy drives} and a {battery pack}.  It came with the
	{CP/M} {operating system}, {SuperCalc} {spreadsheet}
	application, {WordStar}, {word processing} application,
	{Microsoft} {MBASIC} programming language and {Digital
	Research} {CBASIC} programming language.

	{(http://oldcomputers.net/osborne.html)}

	(2007-05-21)

Osborne, Adam

	{Adam Osborne}

Osborne Computer Corporation

	<company> The unsucessful computer manufacturer founded by
	{Adam Osborne} that produced one of the first {laptop
	computers}, the {Osborne 1}.

	(2007-05-21)

OSCAR

	1. Oregon State Conversational Aid to Research.  Interactive
	numerical calculations, vectors, matrices, complex arithmetic,
	string operations, for CDC 3300.  "OSCAR: A User's Manual with
	Examples", J.A. Baughman et al, CC, Oregon State U.

	2. Object-oriented language used in the COMANDOS Project.
	"OSCAR: Programming Language Manual", TR, COMANDOS Project,
	Nov 1988.

OSD

	{Open Source Definition}

OSE

	{Open Systems Environment}

OSF

	{Open Software Foundation}

OSI

	1. <networking> {Open Systems Interconnection}.

	2. {Open Source Initiative}.

	(1999-12-29)

OSI Model

	{Open Systems Interconnect}

OSI Reference Model

	{Open Systems Interconnect}

OSI-RM

	{Open Systems Interconnect}

OSI seven layer model

	{Open Systems Interconnect}

O'small

	<language> A small, concise, formally defined
	{object-oriented} language intended for teaching, by Andreas
	Hense <ahense@ahense.de>.

	O'small requires {sml-yacc}, {sml-lex} and {sml-noshare}.
	Binaries are provided for {SPARC} and it is probably portable
	to other {Unix} systems.  There is also an {interpreter} in
	{Miranda}.

	{(http://ahense.de/)}.

	[Christoph Boeschen, "Christmas - An abstract machine for
	O'small".  Master's thesis, Universit"at des Saarlandes,
	Fachbereich, 1993-06-14].

	(2001-02-11)

OS/MFT

	{Operating System/Multiprogramming of Fixed Tasks}

OS/MVT

	<operating system> One of the {IBM} {operating systems}
	associated with the {IBM 360}, later rereleased with the {IBM
	S/370} as {OS/VS2}.

	[Details?]

	(1999-01-12)

OSP

	{Optical Signal Processor}

OSPF

	{Open Shortest-Path First Interior Gateway Protocol}

OSQL

	{Object-oriented SQL}

OSSL

	Operating Systems Simulation Language.

	["OSSL - A Specialized Language for Simulating Computer
	Systems", P.B. Dewan et al, Proc SJCC 40, AFIPS (Spring
	1972)].

OSTA

	{Optical Storage Technology Association}

OS/VS1

	{OS/MFT}

OS/VS2

	<operating system> An {operating system} from {IBM}, released
	with the {IBM S/370} and originally known as {OS/MVT}.  OS/VS2
	R1 was known as SVS (Single Virtual Storage) as it had a
	single 16 MB {virtual address space}.  OS/VS2 R2 was known as
	MVS - {Multiple Virtual Storage}.

	(1999-01-13)

OT

	{OpenTransport}

OTDR

	{Optical Time-Domain Reflectometry}

OT&E

	{operational test and evaluation}

OTI

	{Open Tool Interface}

OTOH

	<chat> On the other hand.

	(2000-01-31)

OTP

	1. <security> {One-Time Password}.

	2. <protocol> {Open Trading Protocol}.

	3. <storage, integrated circuit> {One Time Programmable Read
	Only Memory}.

	4. <communications, library> {Open Telecom Platform}.

	(2001-08-28)

OTPROM

	{One Time Programmable Read-Only Memory}

OTT

	Over the top.

	Excessive or uncalled for.

	(1995-01-31)

Ottawa Euclid

	{Euclid}

Ousterhout, John K.

	{John Ousterhout}

Ousterhout's dichotomy

	<language> {John Ousterhout}'s division of {high-level
	languages} into "system programming languages" and "scripting
	languages".  This distinction underlies the design of his
	language {Tcl}.

	System programming languages (or "applications languages") are
	{strongly typed}, allow arbitrarily complex {data structures},
	and programs in them are {compiled}, and are meant to operate
	largely independently of other programs.  Prototypical system
	programming languages are {C} and {Modula-2}.

	By contrast, scripting languages (or "glue languages") are
	weakly typed or untyped, have little or no provision for
	complex data structures, and programs in them ("{scripts}")
	are {interpreted}.  Scripts need to interact either with other
	programs (often as {glue}) or with a set of functions provided
	by the interpreter, as with the {file system} functions
	provided in a {UNIX shell} and with {Tcl}'s {GUI} functions.
	Prototypical scripting languages are {AppleScript}, {C Shell},
	{MS-DOS} {batch files} and {Tcl}.

	Many believe that this is a highly arbitrary dichotomy, and
	refer to it as "Ousterhout's fallacy" or "Ousterhout's false
	dichotomy".  While strong-versus-weak typing, data structure
	complexity, and independent versus stand-alone might be said
	to be unrelated features, the usual critique of Ousterhout's
	dichotomy is of its distinction of compilation versus
	interpretation, since neither {semantics} nor {syntax} depend
	significantly on whether code is compiled into
	{machine-language}, interpreted, {tokenized}, or
	{byte-compiled} at the start of each run, or any mixture of
	these.  Many languages fall between being interpreted or
	compiled (e.g. {Lisp}, {Forth}, {UCSD Pascal}, {Perl}, and
	{Java}).  This makes compilation versus interpretation a
	dubious parameter in a taxonomy of programming languages.

	(2002-05-28)

Ousterhout's fallacy

	{Ousterhout's dichotomy}

Ousterhout's false dichotomy

	{Ousterhout's dichotomy}

out

	<programming> A type or "mode" of {function} {parameter} that
	passes information in one direction - from the function to the
	caller.  An "out" parameter thus provides an additional
	{return value}, typically for languages that don't have good
	support for returning {data structures} like {lists}.  Other
	modes are {in} and {inout}.

	(2010-01-19)

outer join

	<database> A less commonly used variant of the {inner join}
	{relational database} operation.  An inner join selects rows
	from two {tables} such that the value in one {column} of the
	first table also appears in a certain column of the second
	table.  For an outer join, the result also includes all rows
	from the first operand ("left outer join"), or the second
	operand ("right outer join"), or both ("full outer join").  A
	field in a result row will be null if the corresponding input
	table did not contain a matching row.

	For example, if we want to list all employees and their
	employee number, but not all employees have a number, then we
	could say (in {SQL-92} syntax, as used by {Microsoft SQL
	Server}):

		SELECT employee.name, empnum.number
		FROM employee
		LEFT JOIN empnum ON employee.id = empnum.id

	or, in {Sybase} syntax:

		SELECT employee.name, empnum.number
		FROM employee, empnum
		WHERE employee.id *= empnum.id

	The "*" on the left means "left outer join".  "*=*" would be a
	full outer join.

	In {Oracle} syntax:

		SELECT employee.name, empnum.number
		FROM employee, empnum
		WHERE employee.id = empnum.id (+)

	Note that the "(+)" on the right means "left outer join".

	These all mean that all rows from the left-hand "employee"
	table will appear in the result, even if there is no match for
	their ID in the empnum table.  Where there is no empnum.id
	equal to a given employee.id, a result row is output anyway
	but with all result columns from the empnum table null
	(empnum.number in this case).

	(2004-11-12)

outline font

	<text> (Or "vector font") A {font} defined as a set of lines
	and curves as opposed to a {bitmap font}.  An outline font
	(e.g. {PostScript}, {TrueType}, {RISC OS}) can be scaled to any
	size and otherwise transformed more easily than a bitmap font,
	and with more attractive results, though this requires a lot
	of numerical processing.  The result of transforming a
	character in an outline font in a particular way is often
	saved as a bitmap in a {font cache} to avoid repeating the
	calculations if that character is to be drawn again.

	(1995-03-16)

out-of-band

	1. <communications> The exchange of {call control} information
	on a dedicated channel, separate from that used by the
	telephone call or data transmission.

	2. Sometimes used to describe what communications people call
	"shift characters", such as the ESC that leads control
	sequences for many terminals, or the level shift indicators in
	the old 5-bit {Baudot} codes.

	3. In personal communication, using methods other than
	{electronic mail}, such as telephone or {snail-mail}.

	4. <software> Values returned by a {function} that are not in
	its "natural" {range} of return values, but rather signal some
	kind of {exception}.  Many {C} functions that normally return
	a non-negative integer return -1 to indicate failure.

	This use confuses "out-of-band" with "out-of-range".  It is
	actually a clear example of {in-band} signalling since it uses
	the same "channel" for control and data.

	Compare {hidden flag}, {green bytes}, {fence}.

	[{Jargon File}]

	(2001-04-08)

output

	<architecture> {Data} transferred from a computer system to
	the outside world via some kind of {output device}.

	Opposite: {input}.

	(1997-04-28)

output device

	<hardware> Electronic or electromechanical equipment connected
	to a computer and used to transfer data out of the computer in
	the form of text, images, sounds or other media to a {display
	screen}, {printer}, loudspeaker or storage device.  Most
	modern storage devices such as {disk drives} and {magnetic
	tape drives} act as both input and output devices, others such
	as {CD-ROM} are input only.

	(1997-03-18)

Outside Awareness Port

	<humour> (OAP) A humorous {IBM} term for a window (the glass
	kind) rather than the {GUI} kind.

outside-in testing

	<testing> A strategy for {integration testing} where units
	handling program inputs and outputs are tested first, and
	units that process the inputs to produce output are
	incrementally included as the system is integrated.  A form of
	{hybrid testing}.

	(1997-01-07)

outsourcing

	<business> Paying another company to provide services which a
	company might otherwise have employed its own staff to
	perform, e.g. software development.

	(1995-03-28)

overclocking

	<hardware> Any adjustments made to {computer} {hardware}, or less
	commonly {software}, to make its {CPU} run at a higher {clock
	rate} than intended by the original manufacturers.  Typically this
	involves replacing the {crystal} in the {clock} generation
	circuitry with a higher frequency one or changing {jumper}
	settings or software configuration.

	If the {clock rate} is increased too far, eventually some
	component in the system will not be able to cope and the system
	will stop working.  This failure may be intermittent (it works
	most of the time but fails more often than usual) continuous (the
	system never works at the higher frequency) or, in the worst case,
	irreversible (a component is damaged by overheating).  Improved
	{cooling} may be needed to maintain the same level of reliability.

	(2014-07-12)

Overdrive

	<processor> An {Intel} {Pentium} processor which fits into a
	socket designed to accomodate an {Intel 486}, or into a
	special upgrade socket on the {motherboard}.

	(1995-03-27)

overflow

	<programming> The condition that occurs when the result of a
	calculation is too big to store in the intended format.  For
	example, the result of adding one to 255 cannot be represented
	as an {unsigned}, eight-bit integer.  In a {signed integer}
	representation, overflow can occur when an integer becomes
	either too positive or too negative.

	Overflow can also occur in the exponent of a {floating point}
	number representation.  The term "{underflow}" is sometimes
	used for negative overflow of the exponent.

	Ignoring overflow will result in nonsensicle results such as
	255 + 1 = 0.  At the hardware level, the {ALU} typically
	indicates overflow by setting an overflow flag bit which the
	program can test.  Programming languages will typically
	respond to overflow by raising some kind of {signal} or other
	error condition to halt normal execution.

	Some languages attempt to avoid overflow by providing
	(optional) variable length number representation
	({multiprecission arithmetic}) so that the maximum number
	representable is limited only by the amount of storage
	available.

	(2008-05-30)

overflow bit

	<architecture> A processor {flag bit} set by the {ALU} to
	indicate {overflow}.

	(2008-05-30)

overflow flag

	{overflow bit}

overflow pdl

	<jargon> The place where you put things when your {pdl} is
	full.  If you don't have one and too many things get pushed,
	you forget something.  The overflow pdl for a person's memory
	might be a memo pad.  This usage inspired the following
	doggerel:

	 Hey, diddle, diddle
	 The overflow pdl
	   To get a little more stack;
	 If that's not enough
	 Then you lose it all,
	   And have to pop all the way back.
				       --The Great Quux

	The term {pdl} seems to be primarily an {MIT}ism; outside MIT
	this term is replaced by "overflow {stack}".

	(2008-05-30)

overhead

	1. Resources (in computing usually processing time or storage
	space) consumed for purposes which are incidental to, but
	necessary to, the main one.  Overheads are usually
	quantifiable "costs" of some kind.

	Examples: The overheads in running a business include the cost
	of heating the building.  Keeping a program running all the
	time eliminates the overhead of loading and initialising it
	for each transaction.  Turning a {subroutine} into {inline}
	code eliminates the call and return time overhead for each
	execution but introduces space overheads.

	2. <communications> information, such as control, routing, and
	error checking characters, that is transmitted along with the
	user data.  It also includes information such as network
	status or operational instructions, network routing
	information, and retransmissions of user data received in
	error.

	3. Overhead transparencies or "slides" (usually 8-1/2" x 11")
	that are projected to an audience via an overhead (flatbed)
	projector.

	(1997-09-01)

overloading

	<language> (Or "Operator overloading").  Use of a single
	symbol to represent operators with different argument types,
	e.g. "-", used either, as a {monadic} operator to negate an
	expression, or as a {dyadic} operator to return the difference
	between two expressions.  Another example is "+" used to add
	either integers or {floating-point} numbers.  Overloading is
	also known as ad-hoc {polymorphism}.

	User-defined operator overloading is provided by several
	modern programming languages, e.g. {C++}'s {class} system and
	the {functional programming} language {Haskell}'s {type
	class}es.

	Ad-hoc polymorphism (better described as {overloading}) is the
	ability to use the same syntax for objects of different types,
	e.g. "+" for addition of reals and integers or "-" for unary
	negation or diadic subtraction.  Parametric polymorphism
	allows the same object code for a function to handle arguments
	of many types but overloading only reuses syntax and requires
	different code to handle different types.

	(2014-01-05)

overriding

	<programming> Redefining in a {child class} a {method} or
	function member defined in a {parent class}.

	Not to be confused with "{overloading}".

	(1996-12-21)

overrun

	1. A frequent consequence of data arriving faster than it can
	be consumed, especially in {serial line} communications.  For
	example, at 9600 baud there is almost exactly one character
	per millisecond, so if a {silo} can hold only two characters
	and the machine takes longer than 2 milliseconds to get to
	service the interrupt, at least one character will be lost.

	2. Also applied to non-serial-I/O communications.  "I forgot
	to pay my electric bill due to mail overrun."  "Sorry, I got
	four phone calls in 3 minutes last night and lost your message
	to overrun."  When {thrash}ing at tasks, the next person to
	make a request might be told "Overrun!"  Compare {firehose
	syndrome}.

	3. More loosely, may refer to a {buffer overflow} not
	necessarily related to processing time (as in {overrun
	screw}).

	[{Jargon File}]

overrun screw

	A variety of {fandango on core} produced by a {C} program
	scribbling past the end of an {array} ({C} implementations
	typically have no checks for this error).  This is relatively
	benign and easy to spot if the array is static; if it is
	{auto}, the result may be to {smash the stack} - often
	resulting in {heisenbugs} of the most diabolical subtlety.
	The term "overrun screw" is used especially of scribbles
	beyond the end of arrays allocated with {malloc}; this
	typically overwrites the allocation header for the next block
	in the {arena}, producing massive lossage within malloc and
	often a {core dump} on the next operation to use {stdio} or
	malloc itself.

	See {spam}, {overrun}; see also {memory leak}, {memory smash},
	{aliasing bug}, {precedence lossage}, {fandango on core},
	{secondary damage}.

	(1995-01-19)

overuse strain injury

	<medical> (Or "repetitive strain injury", RSI, "repetitive
	strain disorder") Any tendon or muscle injury resulting from
	overuse, usually in the hand, wrist, or arm.  Injury may be
	caused by any combination of repetitive, unacustomed, or
	prolonged movements, forcefulness, or an awkward position
	(often due to bad {ergonomics}).  The symptoms are pain,
	tingling, weakness, numbness, swelling, cracking, stiffness,
	or reduced coordination.

	Common conditions are:

	Carpal tunnel syndrome, where swelling of the membrane linings
	in your wrist surrounding the tendons that bend your fingers
	compresses the median nerve.  This may result in numbness and
	pain in the hand, arm, shoulder, and neck.

	Tennis elbow, where rotating your wrist and using force causes
	a form of epicondylitis.

	Tendinitis, where unacustomed exercise or repeated awkward
	movements inflame wrist, elbow, or shoulder tendons, often
	leading to severe stiffness.

	Trigger finger, a popping or catching sensation when you bend
	your finger, wrist, or shoulder.  This form of tenosynovitis
	is caused by repetitive hand movements.

	To prevent the condition worsening, treat the pain with heat,
	cold, or aspirin, ibuprofen, or naproxen sodium; rest; or
	immobilise the injured area with a splint or bandage.  See a
	doctor.

	{Amara's RSI information
	(http://amara.com/aboutme/rsi.html)}.

	{RSI links from Yahoo
	(http://dir.yahoo.com/Health/Diseases_and_Conditions/Repetitive_Strain_Disorder/)}.

	{Guide to Carpal Tunnel Syndrome
	(http://sechrest.com/mmg/cts/)}.

	{CTS from Yahoo
	(http://dir.yahoo.com/Health/Diseases_and_Conditions/Carpal_Tunnel_Syndrome/)}.

	(1999-10-03)

OWHY

	<language> An early {functional language}(?).

	["A Type-Theoretical Alternative to CUCH, ISWIM, OWHY", Dana
	Scott, Oxford U 1969].

	(1995-01-19)

OWL

	1. <company> {Office Workstations Limited}.

	2. <language> {Object Windows Language}.

	(1996-01-13)

Owl

	The original name of {Trellis}.

	(1995-01-19)

Ox

	<language, tool> A {preprocessor}, written by Kurt Bischoff of
	{Iowa State University}, that extends and generalises the
	{syntax} and {semantics} of {Yacc}, {Lex}, and {C}.  Ox's
	support of {LALR1 grammars} generalises {yacc} in the way that
	{attribute grammars} generalise {context-free grammars}.  It
	augments Yacc and {Lex} specifications with definitions of
	synthesised and inherited attributes written in {C} {syntax}.
	Ox checks these specifications for consistency and
	completeness, and generates a program that builds and
	decorates {attributed parse trees}.  Ox accepts a most general
	class of attribute grammars.  The user may specify
	postdecoration traversals for easy ordering of {side effects}
	such as {code generation}.

	Latest version: G1.01, as of 1993-11-14.

	{(ftp://ftp.cs.iastate.edu/pub/ox/)}.

	Info: <ox-request@cs.iastate.edu>.

	["User Manual for Ox: An Attribute-Grammar Compiling System
	based on Yacc, Lex and C", K.M. Bischoff, TR92-30, Iowa State
	U, Dec 1992].

	(2000-04-03)

Oz

	An {object-oriented} {concurrent} {constraint} language from
	the {University of Saarbrucken}.  Oz is based on {constraint
	communication}, a new form of {asynchronous} communication
	using {logic variables}.  Partial information about the values
	of variables is imposed concurrently and incrementally.
	Supports {higher order} programming and object-orientation
	including {multiple inheritance}.

	{(ftp:duck.dfki.uni-sb.de/pub/papers)}.

	["Object-Oriented Concurrent Constraint Programming in Oz",
	G. Smolka et al].

oz

	An old Australian {top-level domain} and network which got
	incorporated into the current one.  The former Australian
	{domains} .oz, .edu and .com are now .oz.au, .edu.au and
	.com.au.

	(1994-10-04)

Oz-Email

	<company> An {Internet} access provider.

	{(http://ozemail.com.au/)}.

	Address: Sydney, Australia.

	(1995-03-02)

P+

	["Experience with Remote Procedure Calls in a Real-Time
	Control System", B. Carpenter et al, Soft Prac & Exp
	14(9):901-907 (Sep 1984)].

P1754

	<processor, standard> IEEE Std 1754-1994 "A 32-Bit
	Microprocessor Architecture".  The {IEEE} standard defining a
	version of the {SPARC} {microprocessor} architecture.

	The P1754 standard (the first microprocessor standard) was
	approved after four years on 1994-03-17.  It is compatible
	with, but distinct from, {SPARC International}'s 32 bit
	version of the SPARC Architecture, SPARC V8, from which it is
	largely derived.  It is possible for a processor to comply
	with neither, one, or both specifications.

	{SI article
	(http://sparc.com/sparc.new/other/sflash/94-03.html)}.

	(1996-12-21)

p2c

	A {Pascal} to {C} translator by Dave Gillespie
	<daveg@synaptics.com>.

	{Version 1.20 (ftp://csvax.cs.caltech.edu/)}.

	Supports {ANSI}/{ISO} {standard} {Pascal} as well as
	substantial subsets of {HP Pascal}, {Turbo Pascal}, VAX, and
	many other dialects.

	(1990-04-13)

P2P

	{peer-to-peer}

P3L

	(Superscript 3).  A language with explicit parallelism
	including constructs for {farms} and {geometric parallelism}.
	P3L currently uses {C++} as a host language.

	[S. Pelagatti, "A method for the development and the support
	of massively parallel programs.  PhD Thesis - TD 11/93,
	University of Pisa, Mar 1993].

	(1994-07-15)

P4

	A {macro}/subroutine package for parallel programming by Rusty
	Lusk <lusk@anta.mcs.anl.gov>.  P4 uses {monitors} on shared
	memory machines and message passing on distributed memory
	machines.  It is implemented as a subroutine library for {C}
	and {Fortran}.  An enhancement of the "Argonne macros",
	{PARMACS}.

	{(ftp://info.mcs.anl.gov/pub/p4t1.2.tar.Z)}.  E-mail:
	<p4@mcs.anl.gov>.

P6

	<processor> ("P" from {Pentium}, 6 from 686, the successor to
	586 which is what the Pentium would have been had it followed
	the naming scheme its predecessors) The name for the {Pentium
	Pro} during development.

	(1995-11-15)

pa

	<networking> The {country code} for Panama.

	(1999-01-27)

PABX

	{Private Automatic Branch eXchange}

PACE

	A CPU based on the {Nova} design, but with 16-bit addressing,
	more {addressing modes} and a 10 level {stack} (like the
	{Intel 8008}).

	(1994-11-30)

Packard Bell Electronics, Inc.

	<company> A leading US computer vendor.

	As recently as 29 November 1995 the Wall Street Journal
	reported that the company was having financial difficulties
	and that one of its major suppliers of CPUs, {Intel}, was
	about to make a large cash loan, so as to prevent loss of a
	major customer.  Packard Bell is a privately held company and
	the WSJ also reported that {NEC} has been rumored to have
	bought a large minority block of shares to help the company
	stay in business.

	Its computers are sold in major retail outlets in the USA and
	are available as a bundled package: desktop or {tower} {486}
	{CPU}, single 3.5 inch {floppy disk drive}, {CD-ROM}, {sound
	card}, 14 inch colour {monitor}, and 4-8MB of {RAM}.

	1995 end-of-year prices in Computer Currents magazine (a
	California Bay Area bi-monthly giveaway publication) are
	US$1500 (approx.  1000 pounds) for a 486 desktop, with 8MB
	RAM, 420MB hard disk drive, single 3.5 inch floppy drive, 14
	inch colour monitor, 2-speed CD-ROM, and 16-bit sound card.

	Headquarters: Sacramento, California, USA.

	(1996-01-02)

packed decimal

	{binary coded decimal}

Packed Encoding Rules

	<protocol, standard> (PER) {ASN.1} encoding rules for
	producing a compact {transfer syntax} for data structures
	described in {ASN.1}, defined in 1994.

	PER provides a much more compact encoding then {BER}.  It
	tries to represents the data units using the minimum number of
	{bits}.  The compactness requires that the decoder knows the
	complete {abstract syntax} of the data structure to be
	decoded, however.

	Documents: {ITU-T} X.691, {ISO} 8825-2.

	(1998-05-19)

packet

	The unit of data sent across a {network}.  "Packet" is a
	generic term used to describe a unit of data at any layer of
	the {OSI} {protocol stack}, but it is most correctly used to
	describe {application layer} data units ("{application
	protocol data unit}", APDU).

	See also {datagram}, {frame}.

	(1994-11-30)

Packet Assembler/Disassembler

	(PAD) Hardware or software device for splitting a data stream
	into discrete {packets} for transmission over some medium and
	then reforming the stream(s) at the receiver.

	The term is most often used for interfaces to {X.25} lines.

	(1995-01-31)

packet driver

	<networking> {IBM PC} {local area network} software that
	divides data into {packets} which it routes to the network.
	It also handles incoming data, reassembling the packets so
	that {application programs} can read the data as a continuous
	stream.

	{FTP Software} created the specification for {IBM PC} packet
	drivers but {Crynwr Software} dominate the market and have
	done the vast majority of the implementations.

	Packet drivers provide a simple, common programming interface
	that allows multiple {applications} to share a {network
	interface} at the {data link} layer.  Packet drivers
	demultiplex incoming packets among the applications by using
	the network media's {standard packet type} or {service access
	point} field(s).

	The packet driver provides calls to initiate access to a
	specific packet type, to end access to it, to send a packet,
	to get statistics on the network interface and to get
	information about the interface.

	Protocol implementations that use the packet driver can
	coexist and can make use of one another's services, whereas
	multiple applications which do not use the driver do not
	coexist on one machine properly.  Through use of the packet
	driver, a user could run {TCP/IP}, {XNS} and a proprietary
	protocol implementation such as {DECnet}, {Banyan}'s,
	{LifeNet}'s, {Novell}'s or {3Com}'s without the difficulties
	associated with pre-empting the network interface.

	Applications which use the packet driver can also run on new
	network hardware of the same class without being modified;
	only a new packet driver need be supplied.

	There are several levels of packet driver.  The first is the
	basic packet driver, which provides minimal functionality but
	should be simple to implement and which uses very few host
	resources.  The basic driver provides operations to broadcast
	and receive packets.  The second driver is the extended packet
	driver, which is a superset of the basic driver.  The extended
	driver supports less commonly used functions of the network
	interface such as {multicast}, and also gathers statistics on
	use of the interface and makes these available to the
	application.  The third level, the high-performance functions,
	support performance improvements and tuning.

	{(http://crynwr.com/crynwr/home.html)}.

	(1994-12-05)

Packet in Plastic Grid Array

	<integrated circuit> (PPGA) The package used for
	{Intel}'s {Celeron} {Socket 370} {CPU}.

	[Description?]

	(1999-06-24)

Packet InterNet Groper

	{ping}

packet radio

	<communications, radio> The use of {packet switched}
	communications {protocols} in large networks (i.e not
	{wireless LANs} or {Bluetooth}) having wireless links to
	terminals at least.  Packet radio is split into {amateur
	packet radio} (AX25) and {General Packet Radio Service}
	(GRPS).

	(2001-05-12)

packet sniffer

	<networking, tool> A network monitoring tool that captures
	data {packets} and decodes them using built-in knowledge of
	common {protocols}.  Sniffers are used to debug and monitor
	networking problems.

	(1995-03-28)

packet switch

	{packet switching}

packet-switched

	{packet switching}

packet switching

	<communications> A communications paradigm in which {packets}
	(messages or fragments of messages) are individually {routed}
	between {nodes}, with no previously established communication
	path.  Packets are routed to their destination through the
	most expedient route (as determined by some routing
	{algorithm}).  Not all packets travelling between the same two
	hosts, even those from a single message, will necessarily
	follow the same route.

	The destination computer reassembles the packets into their
	appropriate sequence.  Packet switching is used to optimise
	the use of the {bandwidth} available in a network and to
	minimise the {latency}.  {X.25} is an international standard
	packet switching network.

	Also called {connectionless}.  Opposite of {circuit switched}
	or {connection-oriented}.  See also {virtual circuit},
	{wormhole routing}.

	(1999-03-30)

Packet Switch Node

	(PSN) A dedicated computer whose purpose is to accept, {route}
	and forward {packets} in a {packet-switched} network.

	(1994-11-30)

packet writing

	<storage> A technique for writing {CD-Rs} and {CD-RWs} that is
	more efficient in both disk space used and the time it takes
	to write the CD.

	{Adaptec}'s DirectCD is a packet writing recorder for {Windows
	95} and {Windows NT} that uses the {UDF} version 1.5 file
	system.

	[Is this true?  How does it work?]

	(1999-09-01)

PackIt

	<file format, tool> A file format used on the {Apple
	Macintosh} to represent collections of Mac files, possibly
	{Huffman} compressed.  Packing many small related files
	together before a {MacBinary} transfer or a translation to
	{BinHex} 4.0 is common practice.

	(1994-11-30)

PACT I

	An early system on the {IBM 701}.  Version PACT IA was for the
	{IBM 704}.

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

	(1994-11-30)

PACTOLUS

	Digital simulation.

	[Sammet 1969, p. 627].

	(1994-11-30)

PAD

	{Packet Assembler/Disassembler}

padded cell

	Where you put {lusers} so they can't hurt anything.  A program
	that limits a luser to a carefully restricted subset of the
	capabilities of the host system (for example, the "{rsh}"
	utility on {USG Unix}).  Note that this is different from an
	{iron box} because it is overt and not aimed at enforcing
	security so much as protecting others (and the {luser}) from
	the consequences of the luser's boundless naivet'e (see
	{naive}).  Also "padded cell environment".

	[{Jargon File}]

	(1994-11-30)

Paddle

	A language for transformations leading from specification to
	program.  Used in the {POPART} programming environment
	generator.

	(1994-11-30)

PAGE

	A typesetting language.

	["Computer Composition Using PAGE-1", J.L.  Pierson, Wiley
	1972].

page

	1. <operating system> {paging}.

	2. <World-Wide Web> {web page}.

	(1997-04-10)

paged

	{paging}

Page Description Language

	(PDL) A language such as {Adobe Systems, Inc.}'s {PostScript}
	or {Xerox}'s {Interpress} which allows the appearance of a
	printed page to be described in a high-level,
	device-independent way.  Printing then becomes a two-stage
	process: an {application program} produces a description in
	the language, which is then interpreted by a specific output
	device.  Such a language can therefore serve as an interchange
	standard for transmission and storage of printable documents.

	(1995-02-20)

Paged Memory Management Unit

	{Memory Management Unit}

page fault

	<memory management> In a {paged virtual memory} system, an
	access to a page (block) of memory that is not currently
	mapped to {physical memory}.  When a page fault occurs the
	{operating system} either fetches the page in from {secondary
	storage} (usually disk) if the access was legitimate or
	otherwise reports the access as illegal.

	(1995-11-11)

page in

	<storage, architecture> What a {paging} system does when it
	copies part of a {task}'s {working memory} from {swap space}
	on disk to {RAM}.

	[{Jargon File}]

	(1995-01-23)

pagelet

	<World-Wide Web> A component of an {HTML} page, that contains
	directives, layout, and code in a single context.  A pagelet
	may be a separate file or {web page} that contains information
	you want displayed across several pages.  They are similar to
	{server-side include} files, as implemented in ASP+.  Pagelets
	act like independent HTML frames and provide discrete access
	to content.  They use {Cascading Style Sheets} as templates
	for defining their layout behavior in a single context.

	[.NET Framework Essentials, 2nd Edition, Thuan L. Thai and Lam
	Hoang, February 2002, 0-596-00302-1]

	(2004-02-19)

page mode

	1. <hardware, storage> See {page mode DRAM}.

	2. <hardware> An operation mode of {video terminals} like the
	{IBM 3270}, in which the terminal only sends a completed input
	screen (page) to the host instead of sending each character as
	the keys are pressed.

	(1995-03-28)

Page Mode DRAM

	{Page Mode Dynamic Random Access Memory}

Page Mode Dynamic Random Access Memory

	<hardware, storage> A technique used to support faster
	sequential access to {DRAM} by allowing any number of accesses
	to the currently open row to be made after supplying the {row
	address} just once.

	The {RAS} signal is kept active, and with each {falling edge}
	of the {CAS}\ signal a new {column address} can be supplied
	and the corresponding bits can be accessed.  This is faster
	than a full RAS-CAS cycle because only the shorter Column
	Access Time needs to be obeyed.

	Note that strictly speaking such a DRAM is not a true {random
	access memory} since accesses to the open row are faster than
	to other locations.

	{EDO RAM} is replacing Page Mode DRAM in many new
	microcomputers.

	[Is "Fast Page Mode" the same as "Page Mode"?]

	(1996-10-06)

page out

	<storage, architecture> What a {paging} system does when it
	copies part of a {task}'s {working memory} from {RAM} to {swap
	space} on disk.

	[{Jargon File}]

	(1995-01-23)

pager

	1. <hardware, communications> (Or "beeper", "bleeper" (UK?))
	A small wireless receiver that, when triggered (generally via
	phone), will beep or vibrate (un)pleasantly.  The wearer will
	have been trained to respond to this signal by looking at a
	small screen on the device for an unimportant message.

	In recent years, pagers have grown more complex, allowing for
	long {alphanumeric} messages to be received and scrolled
	though (as opposed to earlier models, which supported only
	short numeric messages); at the same time as pager functions
	are integrated into some {PDAs}.  If this trend continues, the
	distinction between {PDAs} and high-end {pagers} will
	disappear.

	{Short Message Service} allows a mobile phone to display a
	message, just like an alphanumeric pager.

	2. <tool> A program for viewing a {text file} a screenful at a
	time via a text {terminal}, as opposed to scrolling through it
	in a {GUI} window, or {cat}ting it all at once to the
	terminal.

	The best known pagers are {more}, {less}, pg and list.com.

	(1997-09-11)

paging

	<operating system> A technique for increasing the memory space
	available by moving infrequently-used parts of a program's
	{working memory} from {RAM} to a secondary storage medium,
	usually {hard {disk}.  The unit of transfer is called a page.

	A {memory management unit} (MMU) monitors accesses to memory
	and splits each address into a page number (the most
	significant bits) and an offset within that page (the lower
	bits).  It then looks up the page number in its page table.
	The page may be marked as paged in or paged out.  If it is
	paged in then the memory access can proceed after translating
	the {virtual address} to a {physical address}.  If the
	requested page is paged out then space must be made for it by
	paging out some other page, i.e. copying it to disk.  The
	requested page is then located on the area of the disk
	allocated for "{swap space}" and is read back into {RAM}.  The
	page table is updated to indicate that the page is paged in
	and its physical address recorded.

	The MMU also records whether a page has been modified since it
	was last paged in.  If it has not been modified then there is
	no need to copy it back to disk and the space can be reused
	immediately.

	Paging allows the total memory requirements of all running
	tasks (possibly just one) to exceed the amount of {physical
	memory}, whereas {swapping} simply allows multiple processes
	to run concurrently, so long as each process on its own fits
	within {physical memory}.

	(1996-11-22)

PaiLisp

	<language> A {parallel} {Lisp} built on {Scheme} in 1986.

	["A Parallel Lisp Language PaiLisp and its Kernel
	Specification", T. Ito et al, in Parallel Lisp: Languages and
	Systems, T. Ito et al eds, LNCS 441, Springer 1989].

	(1995-01-30)

pain in the net

	{flamer}

Paintbrush

	<graphics, tool> A {Microsoft Windows} tool for creating
	{bitmap} graphics.

	(1996-08-26)

PAISley

	An operational specification language from {Bell Labs}.

	["An Operational Approach to Requirements Specification for
	Embedded Systems", P. Zave, IEEE Trans Soft Eng
	SE-8(3):250-269 (May 1982)].

	(1995-01-30)

Pajek

	<maths, graphs> A program for analysis and visualisation of large
	networks.  "Pajek" is Slovene for spider.  The program runs on
	{Windows} and is free for noncommercial use.  Pajek is developed
	by Vladimir Batagelj and Andrej Mrvar with contributions from
	Matjaž Zaveršnik.

	{Pajek home (http://pajek.imfm.si/)}.

	(2014-04-24)

PAL

	1. <language> {Paradox Application Language}.

	2. For the {AVANCE} distributed {persistent} {operating
	system}.

	["PAL Reference Manual", M. Ahlsen et al, SYSLAB WP-125,
	Stockholm 1987].

	["AVANCE: An Object Management System", A. Bjornerstedt et al,
	SIGPLAN Notices 23(11):206-221 (OOPSLA '88) (Nov 1988)].

	[What is it?]

	3. <language> An {object-oriented} {Prolog}-like language.

	["Inheritance Hierarchy Mechanism in Prolog", K. Akama, Proc
	Logic Prog '86, LNCS 264, Springer 1986, pp. 12-21].

	4. <language> {PDP Assembly Language}.

	5. <language> {Pedagogic Algorithmic Language}.

	6. <hardware, integrated circuit> {Programmable Array Logic}.

	7. <television> {phase alternating line}.

	(2001-04-02)

Palace

	<virtual reality, chat> A proprietary multi-user {virtual
	reality}-like {talk} system.

	The Palace is distinguished from most other VR-like systems in
	that it is only two-dimensional rather than three; rooms,
	{avatars}, and "props" are made up of relatively small 2D
	{bitmap} images.

	Palace is a crude {hack}, or lightweight, depending on
	your point of view.

	{(http://thepalace.com/)}.

	(1997-09-14)

palette

	{colour palette}

palmtop

	<computer> (Or "pocket computer", "Hand-held Personal
	Computer", H/PC) A small general-purpose, programmable,
	battery-powered computer cabable of handling both numbers and
	text (in contrast to most {pocket calculators}) which can be
	operated comfortably while held in one hand.  A palmtop is
	usually loaded with an {operating system} such as {Windows
	CE}.  Data can be transferred between the palmtop and a
	desktop {PC}.

	A palmtop is very similar to a {Personal Digital Assistant}
	though a palmptop may have a larger keyboard and more {RAM}
	and is possibly more general purpose in concept, if not in
	practise.

	The {Psion Organiser} is one of the best known examples.  [Was
	it the first?]

	(1998-04-19)

Palo Alto Research Center

	{XEROX PARC}

Palo Alto Research Centre

	{XEROX PARC}

PAM

	{Pluggable Authentication Module}

Pam

	<language> A {toy} {ALGOL}-like language used in "Formal
	Specification of Programming Languages: A Panoramic Primer",
	F.G. Pagan, P-H 1981.

	(1996-12-23)

Pandora

	<language> {Parlog} extended to allow {don't-know
	nondeterminism}.

	["Pandora: Non-Deterministic Parallel Logic Programming",
	R. Bahgat et al, Proc 6th Intl Conf Logic Programming, MIT
	Press 1989 pp. 471-486].

	(1995-04-27)

panic

	1. <operating system> What {Unix} does when a critical
	internal consistency checks fails in such a way that Unix
	cannot continue.  The {kernel} attempts to print a short
	message on the {console} and write an image of memory into the
	{swap area} on disk.  This can be analysed later using {adb}.
	The kernel will then either wait in a {tight loop} until the
	machine is rebooted or will initiate an automatic {reboot}.

	{Unix manual page}: panic(8).

	2. Action taken by software which discovers some fatal problem
	which prevents it from continuing to run.

	(1995-03-01)

PANON

	A family of pattern-directed string processing languages based
	on {generalised Markov algorithms}.

	PANON-1 is based on {simple generalised Markov algorithms} and
	PANON-2 on {conditional functional generalised Markov
	algorithms}.

	["String Processing Languages and Generalized Markov
	Algorithms", A. C. Forino, Proc IFIP Working Conf on Symb
	Manip Languages, pp.141-206, Amsterdam 1968].

PANS

	{Pretty Amazing New Stuff}.

Pansophic

	A US Software Engineering company.

Pantone

	<graphics> A set of standard colours for printing, each of
	which is specified by a single number.  You can buy a Pantone
	swatch book containing samples of each colour.  Some computer
	graphics software allows colours to be specified as Pantone
	numbers.  Even though a computer {monitor} can only show an
	approximation to some of the colours, the software can output
	a {colour separation} for each different Pantone colour,
	enabling a print shop to exactly reproduce the original
	desired colour.

	(1996-03-23)

PAP

	1. <networking, protocol, security> {Password Authentication
	Protocol}.

	2. <networking, protocol, printer> {Printer Access Protocol}.

	(1996-03-23)

Paper Feed Control Character

	(PFCC) An obscure mechanism used in Fortran run-time systems
	whereby the first character of a line of output to a
	line-printer caused various actions after the line was
	printed:

		space	return newline
		0	return newline return newline
		1	form-feed
		+	return

papermail

	{snail mail}

paper-net

	{snail mail}

paper tape

	<hardware, history> Punched paper tape.  An early
	{input/output} and storage medium borrowed from {telegraph}
	and {teletype} systems.

	Data entered at the keyboard of the teletype could be directed
	to a perforator or punch which punched a pattern of holes
	across the width of a paper tape to represent the characters
	typed.  The paper tape could be read by a tape reader feeding
	the computer.  Computer output could be similarly punched onto
	tape and printed off-line.

	As well as storage of the program and data, use of paper tape
	enabled {batch processing}.

	The first units had five data hole positions plus a sprocket hole
	(for the driving wheel) across the width of the tape.  These used
	commercial telegraph code ({ITA2} also known as {Murray}), {Baudot
	code} or proprietary codes such as {Elliott} which were more
	programmer-friendly.  Later systems had eight data holes and used
	{ASCII} coding.

	(2003-12-02)

paraconsistent probability

	<logic> A notion introduced by Florentin Smarandache: The
	probability (T, I, F) that an event occurs is calculated from
	different sources which may be contradictory or may overlap
	information; here T, I, F are real subsets representing the
	truth, indeterminacy, and falsity percentages respectively,
	and n_sup = sup(T)+sup(I)+sup(F) > 100.

	["Neutrosophy / Neutrosophic probability, set, and logic",
	F. Smarandache, American Research Press, 1998].

	See {neutrosophic probability}

	(2001-01-20)

PARADE

	PARallel Applicative Database Engine.  A project at Glasgow
	University to construct a transaction-processor in the
	parallel {functional programming} language {Haskell} to run on
	an {ICL} {EDS+} database machine.

PARADIGM PLUS

	A configurable {object-oriented} {CASE} tool from {Proto
	Soft}.

Paradigms of AI Programming

	A book by Peter Norvig with {Scheme} and {Prolog}
	{interpreters} and {compilers} in {Common Lisp}.

	{(ftp://Unix.sri.com/pub/norvig/)}.

	["Paradigms of AI Programming", Peter Norvig].

Paradise

	Paradise is a subsystem (a set of packages) developed to
	implement inter-processes, inter-tasks and inter-machine
	communication for {Ada} programs under {Unix}. This subsystem
	gives the user full access to files, {pipes}, {sockets} (both
	Unix and {Internet}) and {pseudo-devices}.

	Paradise has been ported to {Sun}, {DEC}, {Sony MIPS},
	{Verdex} compiler, DEC compiler, {Alsys}/{Systeam} compiler.

	{Version 2.0 of the library
	(ftp://cnam.cnam.fr/pub/Ada/Paradise)}.  E-mail:
	<paradise-info@cnam.cnam.fr>.

	(1992-09-30)

Paradox

	<database> A {relational database} for {Microsoft Windows},
	originally from {Borland}.

	Paradox 5 ran on {Microsoft Windows} [version?] and provided a
	graphical environment, a debugger, a {data modelling} tool,
	and many "ObjectPAL" commands.

	Paradox 7 ran under {Windows 95} and {Windows NT}.

	Latest version: Paradox 9, as of 2000-02-10 (a {Corel}
	product).

	{(http://corel.com/paradox9/index.htm)}.

	[Update?]

	(1996-05-27)

paradox

	<logic> An apparently sound argument leading to a
	{contradiction}.

	Some famous examples are {Russell's paradox} and the {liar
	paradox}.  Most paradoxes stem from some kind of
	{self-reference}.

	{Smarandache Linguistic Paradox
	(http://gallup.unm.edu/~smarandache/Paradox.htm)}.

	(1999-11-05)

Paradox Application Language

	(PAL) The programming language for {Paradox}, {Borland}'s
	{relational database}.

	(1995-01-26)

Paragon

	Mark Sherman.  IEEE Software (Nov 1991).

Paralation

	PARALlel reLATION.  Sabot, MIT 1987.  A framework for parallel
	programming.  A "field" is an array of objects, placed at
	different sites.  A paralation is a group of fields, defining
	nearness between field elements.  Operations can be performed
	in parallel on every site of a paralation.

	["The Paralation Model: Architecture Independent Programming",
	G.W. Sabot <gary@think.com>, MIT Press 1988].

Paralation C

	Paralation embedded in C.  Under development.

Paralation LISP

	Embeds the paralation model in Common LISP.  Available
	from MIT Press, (800)356-0343.

ParAlfl

	Hudak, Yale.  Parallel functional language, a superset of
	Alfl.  Used by the Alfalfa system on Intel iPSC and Encore
	Multimax.

	["Para-Functional Programming", P. Hudak, Computer 19(8):60-70
	(Aug 1986)].

	["Alfalfa: Distributed Graph Reduction on a Hypercube
	Multiprocessor", B.  Goldberg & P. Hudak, TR, Yale U, Nov
	1986].

Parallaxis

	<language> A {procedural} programming language developed by
	Thomas Braeunl <braunl@ee.uwa.edu.au> at the {University of
	Stuttgart}.  It is based on {Modula-2}, but extended for {data
	parallel} ({SIMD}) programming.  The main approach for machine
	independent parallel programming is to include a description
	of the virtual parallel machine with each parallel
	{algorithm}.

	There is a simulator and {X Window System}-based profiler for
	{workstations}, {Macintosh}, and {IBM PC}.

	Version 2.0 runs on {MP-1}, {CM-2}, {Sun-3}, {Sun-4},
	{DECstation}, {HP 700}, {RS/6000}.

	{(http://ee.uwa.edu.au/~braunl/parallaxis/)}.

	["User Manual for Parallaxis Version 2.0", T. Braunl, U
	Stuttgart].

	(2000-05-31)

parallel

	{parallel processing}

Parallel Advanced Technology Attachment

	<storage, standard> (PATA, Parallel ATA) A back-formation
	introduced around 2003 to distinguish the original {Advanced
	Technology Attachment} (ATA) standards from the new {Serial
	Advanced Technology Attachment} (Serial ATA, SATA).

	(2010-02-20)

Parallel ATA

	{Parallel Advanced Technology Attachment}

Parallel C

	1. <language, parallel> Never implemented, but influenced the
	design of {C*}.  [Details?]

	2. {C} for the {transputer} by {3L}.

	3. (PC) Extensions to {C} developed at the {University of
	Houston} providing a {shared memory} {SIMD} model on {message
	passing} computers.

	{(ftp://karazm.math.uh.edu/pub/Parallel/Tools/pc.1.1.1.tar.Z)}.

	E-mail: Ridgway Scott <scott@uh.edu>.

	(1995-03-21)

parallel computer

	{parallel processor}

parallel computing

	{parallel processing}

Parallel FORTH

	{Forth} For the {MPP}.

Parallel Fortran

	<language> (Pfortran) Extensions to {Fortran} by Ridgway Scott
	<scott@uh.edu> of Houston University.  Pfortran provides a
	{shared memory} {SIMD} model on {message passing} computers.

	It was under development in 1994.

	["Pfortran: A Parallel Dialect of Fortran", L.R. Scott,
	Fortran Forum 11(3):20-31, Sep 1992].

	(1994-11-08)

Parallel Haskell

	<language, parallel> (pH) A parallel variant of {Haskell}
	incorporating ideas from {Id} and {Sisal}.  pH is under
	development.

	Mailing list: pH@abp.lcs.mit.edu.

	(1995-03-31)

parallelism

	1. {parallel processing}.

	2. <parallel> The maximum number of independent subtasks in a
	given task at a given point in its execution.  E.g. in
	computing the expression

		(a + b) *

	(c + d) the expressions a, b, c and d can all be calculated in
	parallel giving a degree of parallelism of (at least) four.
	Once they have been evaluated then the expressions a + b and c
	+ d can be calculated as two independent parallel processes.

	The {Bernstein condition} states that processes P and Q can be
	executed in parallel (or in either sequential order) only if:

	(i) there is no overlap between the inputs of P and the
	outputs of Q and vice versa and

	(ii) there is no overlap between the outputs of P, the outputs
	of Q and the inputs of any other task.

	If process P outputs value v which process Q reads then P must
	be executed before Q.  If both processes write to some
	variable then its final value will depend on their execution
	order so they cannot be executed in parallel if any other
	process depends on that variable's value.

	(1995-05-07)

Parallel Pascal

	<language> A {data-parallel} language, similar to {Actus} and
	{Glypnir}.

	["Parallel Pascal: An Extended Pascal for Parallel Computers",
	A. Reeves, J Parallel Dist Computing 1:64-80 (1984)].

	(1995-05-07)

parallel port

	<hardware> An interface from a computer system where data is
	transferred in or out in parallel, that is, on more than one
	wire.  A parallel port carries one {bit} on each wire thus
	multiplying the transfer rate obtainable over a single wire.
	There will usually be some control signals on the port as well
	to say when data is ready to be sent or received.

	The commonest kind of parallel port is a {printer port}, e.g. a
	{Centronics} port which transfers eight bits at a time.  Disks
	are also connected via special parallel ports, e.g. {SCSI} or
	{IDE}.

	(1995-01-24)

Parallel Presence Detect

	 {presence detect}

parallel processing

	<parallel> (Or "multiprocessing") The simultaneous use of more
	than one computer to solve a problem.  There are many
	different kinds of parallel computer (or "parallel
	processor").  They are distinguished by the kind of
	interconnection between processors (known as "processing
	elements" or PEs) and between processors and memory.  {Flynn's
	taxonomy} also classifies parallel (and serial) computers
	according to whether all processors execute the same
	instructions at the same time ("{single instruction/multiple
	data}" - SIMD) or each processor executes different
	instructions ("{multiple instruction/multiple data}" - MIMD).

	The processors may either communicate in order to be able to
	cooperate in solving a problem or they may run completely
	independently, possibly under the control of another processor
	which distributes work to the others and collects results from
	them (a "{processor farm}").  The difficulty of cooperative
	problem solving is aptly demonstrated by the following dubious
	reasoning:

		If it takes one man one minute to dig a post-hole
		then sixty men can dig it in one second.

	{Amdahl's Law} states this more formally.

	Processors communicate via some kind of network or bus or a
	combination of both.  Memory may be either {shared memory}
	(all processors have equal access to all memory) or private
	(each processor has its own memory - "{distributed memory}")
	or a combination of both.

	Many different software systems have been designed for
	programming parallel computers, both at the {operating system}
	and programming language level.  These systems must provide
	mechanisms for partitioning the overall problem into separate
	tasks and allocating tasks to processors.  Such mechanisms may
	provide either {implicit parallelism} - the system (the
	{compiler} or some other program) partitions the problem and
	allocates tasks to processors automatically or {explicit
	parallelism} where the programmer must annotate his program to
	show how it is to be partitioned.  It is also usual to provide
	synchronisation primitives such as {semaphores} and {monitors}
	to allow processes to share resources without conflict.

	{Load balancing} attempts to keep all processors busy by
	allocating new tasks, or by moving existing tasks between
	processors, according to some {algorithm}.

	Communication between tasks may be either via {shared memory}
	or {message passing}.  Either may be implemented in terms of
	the other and in fact, at the lowest level, shared memory uses
	message passing since the address and data signals which flow
	between processor and memory may be considered as messages.

	The terms "parallel processing" and "multiprocessing" imply
	multiple processors working on one task whereas "{concurrent
	processing}" and "{multitasking}" imply a single processor
	sharing its time between several tasks.

	See also {cellular automaton},{symmetric multi-processing}.

	{Usenet} newsgroup: {news:comp.parallel}.

	{Institutions (http://ccsf.caltech.edu/other_sites.html)},
	{research groups
	(http://cs.cmu.edu/~scandal/research-groups.html)}.

	(2004-11-07)

parallel processor

	<parallel> A computer with more than one {central processing
	unit}, used for {parallel processing}.

	(1996-04-23)

parallel random-access machine

	<parallel> (PRAM) An idealised {parallel processor} consisting
	of P processors, unbounded {shared memory}, and a common
	{clock}.  Each processor is a random-access machine (RAM)
	consisting of R {registers}, a {program counter}, and a
	read-only signature register.  Each RAM has an identical
	program, but the RAMs can branch to different parts of the
	program.  The RAMs execute the program synchronously one
	instruction in one clock cycle.

	See also {pm2}.

	(1997-06-04)

parallel reduction

	A form of {applicative order reduction} in which all {redex}es
	in an expression are reduced simultaneously.  Variants include
	{parallel outermost reduction} and {lenient reduction}.  See
	{normal order reduction}.

Parallel Server Option

	{Oracle Parallel Server}

Parallel SML

	["Parallel SML: A Functional Language and its Implementation
	in Dactl", Kevin Hammond, Pitman Press 1990].

Parallel Sysplex

	<operating system> A {Sysplex} that uses one or more {coupling
	facilities}.

	{(http://s390.ibm.com/products/pso/psohp.html)}.

	(1996-11-21)

Parallel Virtual Machine

	<parallel, networking, tool> (PVM) 1. A {software} system
	designed to allow a network of {heterogeneous} machines to be
	used as a single {distributed} {parallel processor}.

	PVM was developed by the {University of Tennessee}, The {Oak
	Ridge National Laboratory} and the {Emory University}.

	{(http://epm.ornl.gov/pvm/)}.

	{Usenet} newsgroup: {news:comp.parallel.pvm}.

	2. The {intermediate language} used by the {Gambit} compiler for
	{Scheme}.

	[And Multilisp?]

	(1995-01-30)

param

	{formal argument}

parameter

	{formal argument}

parameter RAM

	(PRAM) A small memory in a {Macintosh} with a battery power
	supply which stores system parameters (desktop pattern,
	selectable memory configuration, etc.) when the computer is
	turned off.

	(1995-10-08)

parametric polymorphism

	Polymorphism was first identified by {Christopher Strachey} in
	1967 and developed by Hindley and Milner.

	For example we could specify that the argument of the "head"
	{function} was a list without specifying a type for the elements
	of the list.  In {Haskell} we would write:

		head :: [a] -> a

	meaning head has type function from "list of a" to "a" where "a"
	is a {type variable}).  This is known as parametric polymorphism.
	Polymorphic typing allows strong type checking as well as generic
	functions.  {ML} in 1976 was the first language with polymorphic
	typing.

	See also {generic type variable}.

	(2014-01-05)

paraML

	An extension of {Standard ML} which supports {coarse-grained
	parallelism}.  Peter Bailey, while at the Edinburgh Parallel
	Computing Centre at {University of Edinburgh}, has implemented of
	Murray Cole's original four {skeletons} in paraML.

	See also {Skel-ML}.

paranoid programming

	<programming> A programming style that tries to prepare for
	the worst external conditions, including incorrect input,
	resource limitations, hardware and software failure and even
	{can't happen} errors, to the fullest possible extent.  While
	some believe in the motto "professional programming is
	paranoid programming", the expression usually has the
	connotation that the efforts are unnecessary or too costly
	("Maybe this code is just paranoid programming, but I think it
	is necessary to avoid a possible overflow condition".)

	(2001-01-27)

ParaSoft Corp

	Distributors of the {message passing} system {Express}.

	{(ftp://ftp.parasoft.com/)}.  Telephone: +1 (818) 792-9941.
	E-mail: <support@parasoft.com>.

	(1994-10-19)

Parasol

	Parallel Systems Object Language.

	An {object-oriented} language which supports network and
	parallel computing.  It has {modules} and {exceptions}.

	["The Parasol Programming Language", R. Jervis
	<hjervis!rbj@uunet.uu.net>, Dr Dobbs J, Oct 1993, pp. 34-41].

	(1995-01-26)

PARC

	{XEROX PARC}

ParcPlace Systems

	<company> A company spun-off from {Xerox PARC} that developed
	the original version of {VisualWorks}.

	(2002-04-15)

parent

	<mathematics, data> The {ancestor} {node} in a {tree} that
	points to the current node (one of its child nodes).

	(2005-09-15)

parentheses

	See {left parenthesis}, {right parenthesis}.

	(1997-12-03)

parent message

	<messaging> What a {followup} follows up.

	[{Jargon File}]

	(1997-12-03)

parent process

	<operating system> The {Unix} {process} that created one or
	more other processes.

	Every process except process 0 is created when another process
	executes the {fork} {system call}.  The process that invoked
	fork is the parent process, and the newly created process is
	the {child process}.  Every process has one parent process,
	but can have many child processes.

	The {kernel} identifies each process by its {process
	identifier} (PID).  Process 0 is a special process that is
	created when the system boots; after forking a child process
	(process 1), process 0 becomes the {swapper} process.  Process
	1, known as {init}, is the ancestor of every other process in
	the system and enjoys a special relationship with them.

	(1997-12-03)

Pari

	<mathematics, tool> A system for {symbolic mathematics},
	especially {number theory}.

	Version 1.37 for {Unix}, {Macintosh}, {MS-DOS}, {Amiga}.

	E-mail: <pari@alioth.greco-prog.fr>.

	{(ftp://math.ucla.edu/pub/pari)}.

	(1995-04-12)

Paris

	PARallel Instruction Set.

	A low-level language for the {Connection Machine}.

	(1995-02-16)

parity

	<storage, communications> An extra bit added to a {byte} or
	{word} to reveal errors in storage (in {RAM} or {disk}) or
	transmission.  Even (odd) parity means that the parity bit is
	set so that there are an even (odd) number of one bits in the
	word, including the parity bit.  A single parity bit can only
	reveal single bit errors since if an even number of bits are
	wrong then the parity bit will not change.  Moreover, it is
	not possible to tell which bit is wrong, as it is with more
	sophisticated {error detection and correction} systems.

	See also {longitudinal parity}, {checksum}, {cyclic redundancy
	check}.

	(1996-03-01)

parity bit

	<storage, communications> An extra bit added to a {byte} or
	{word} to reveal errors.

	See {parity}.

	(1996-03-01)

parity error

	<storage, communications> An error discovered by the inclusion
	of a {parity} bit.

	(1996-03-01)

Parkinson's Law of Data

	"Data expands to fill the space available for storage"; buying
	more memory encourages the use of more memory-intensive
	techniques.  It has been observed over the last 10 years that
	the memory usage of evolving systems tends to double roughly
	once every 18 months.  Fortunately, memory density available
	for constant dollars also tends to double about once every 12
	months (see {Moore's Law}); unfortunately, the laws of physics
	guarantee that the latter cannot continue indefinitely.

	[{Jargon File}]

Park-Miller

	A {pseudorandom} number generation {algorithm} which was
	discredited by Marsaglia and Steve Sullivanin in the July 1993
	CACM.

	[CACM Oct 1988].

Parlance

	A {concurrent} language.

	["Parallel Processing Structures: Languages, Schedules, and
	Performance Results", P.F. Reynolds, PhD Thesis, UT Austin
	1979].

	(1994-12-12)

Parlog

	Clark & Gregory, Imperial College 1983.  An {AND-parallel}
	{Prolog}, with {guards} and {committed choice nondeterminism}
	({don't care nondeterminism}).  {Shallow backtracking} only.

	Implementations: MacParlog and PC-Parlog from Parallel Logic
	Programming Ltd., Box 49 Twickenham TW2 5PH, UK.

	See also {SPM}.

	{(ftp://ftp.inria.fr/lang/Parlog.tar.Z)}.  E-mail:
	<parlog@doc.ic.ac.uk>.

	["Parlog: A Parallel Logic Programming Language", K.L. Clark
	and S. Gregory, Imperial College, London, May 1983].
	("Parlog83", in which the ouput mechanism was assignment).

	["Parallel Logic Programming in PARLOG, The Language and Its
	Implementation", S. Gregory, A-W 1987].  ("Parlog86", in which
	the output mechanism was unification, as in {GHC}).  (See
	{Strand}).

Parlog++

	An object-oriented extension to MacParlog.  It combines
	object-oriented and parallel logic programming, giving the
	benefits of both paradigms within a single coherent
	development environment.

	Andrew Davison <ad@cs.mu.oz.au>, then Imperial College now U
	Melbourne.  Object orientation plus parallel logic, built on
	top of MacParlog.

	"Parlog++: A Parlog Object-Oriented Language", A. Davison,
	Parlog Group, Imperial College 1988.  Sold by PLP Ltd.
	E-mail: <parlog@doc.ic.ac.uk>.

parm

	/parm/ Further-compressed form of {param}.  This term is an
	{IBM}ism, and written use is almost unknown outside IBM shops;
	spoken /parm/ is more widely distributed, but the synonym
	{arg} is favoured among hackers.  Compare {var}.

	[{Jargon File}]

PARMACS

	The "Argonne macros" from {Argonne National Laboratory}.  A
	package of {macros} written in {m4} for portable {parallel
	programming}, using {monitors} on {shared memory} machines,
	and {message passing} on {distributed memory} machines.

	[E. Lusk et al, "Portable Programs for Parallel Processors",
	HRW 1987. p4].

	{(ftp://research.att.com/netlib/parmacs)}.

ParMod

	"Parallel Programming with ParMod", S. Eichholz, Proc 1987
	Intl Conf on Parallel Proc, pp.377-380.

PARS

	{Programmable Airline Reservation System}

parse

	{parser}

PARSEC

	<language> An extensible language with {PL/I}-like {syntax},
	derived from {PROTEUS}.

	["PARSEC User's Manual", Bolt Beranek & Newman, Dec 1972].

	(2009-06-26)

parser

	<language> An {algorithm} or program to determine the
	syntactic structure of ("parse") a {sentence} or string of
	symbols in some language.  A parser normally takes as input a
	sequence of {tokens} output by a {lexical analyser}.  It may
	produce some kind of {abstract syntax tree} as output.  A
	parser may be produced automatically from a grammar by a
	{parser generators} such as {yacc}.

	A parser is normally part of some larger program, like a
	{compiler}, which takes the output of the parser and attempts
	to extract meaning from it in some way, e.g. translating it
	into another language.

	(2009-06-26)

parser generator

	A program which takes a formal description of a {grammar}
	(e.g. in {BNF}) and outputs source code for a parser which will
	recognise valid strings obeying that grammar and perform
	associated actions.  {Unix}'s {yacc} is a well known example.

parsing

	{parser}

Parsley

	A {Pascal} extension for construction of {parse trees}, by
	Barber of {Summit Software}.  It features {Iterators}.

	["PARSLEY: A New Compiler-Compiler", in Software Development
	Tools, Techniques and Alternatives, Arlington VA, Jul 1983,
	pp.232-241].

	(1995-02-22)

Partial Differential Equation LANguage

	(PDELAN)

	["An Extension of Fortran Containing Finite Difference
	Operators", J. Gary et al, Soft Prac & Exp 2(4) (Oct 1972)].

partial equivalence relation

	(PER) A relation R on a set S where R is symmetric (x R y => y
	R x) and transitive (x R y R z => x R z) and where there may
	exist elements in S for which the relation is not defined.  A
	PER is an equivalence relation on the subset for which it is
	defined, i.e. it is also reflexive (x R x).

partial evaluation

	<compiler, algorithm> (Or "specialisation") An {optimisation}
	technique where the {compiler} evaluates some subexpressions
	at {compile-time}.  For example,

		pow x 0 = 1
		pow x n = if even n
			  then pxn2 * pxn2
			  else x * pow x (n-1)
				where pxn2 = pow x (n/2)
		f x = pow x 5

	Since n is known we can specialise pow in its second argument
	and unfold the recursive calls:

		pow5 x = x * x4 where x4 = x2 * x2
				      x2 = x * x
		f x = pow5 x

	pow5 is known as the residual.  We could now also unfold pow5
	giving:

		f x = x * x4 where x4 = x2 * x2
				   x2 = x  * x

	It is important that the partial evaluation algorithm should
	terminate.  This is not guaranteed in the presence of
	recursive function definitions.  For example, if partial
	evaluation were applied to the right hand side of the second
	clause for pow above, it would never terminate because the
	value of n is not known.

	Partial evaluation might change the termination properties of
	the program if, for example, the expression (x * 0) was
	reduced to 0 it would terminate even if x (and thus x * 0) did
	not.

	It may be necessary to reorder an expression to partially
	evaluate it, e.g.

		f x y = (x + y) + 1
		g z = f 3 z

	If we rewrite f:

		f x y = (x + 1) + y

	then the expression x+1 becomes a constant for the function g
	and we can say

		g z = f 3 z = (3 + 1) + z = 4 + z

	Partial evaluation of {built-in functions} applied to constant
	arguments is known as {constant folding}.

	See also {full laziness}.

	(1999-05-25)

partial function

	A function which is not defined for all arguments of its input
	type.  E.g.

		f(x) = 1/x if x /= 0.

	The opposite of a {total function}.  In {denotational
	semantics}, a partial function

		f : D -> C

	may be represented as a total function

		ft : D' -> lift(C)

	where D' is a superset of D and

		ft x = f x	if x in D
		ft x = bottom	otherwise

	where lift(C) = C U {bottom}.  Bottom ({LaTeX} {\perp})
	denotes "undefined".

	(1995-02-03)

partial key

	<database> A {key} which identifies a subset of a set of
	information items (e.g. database "{records}"), and which could
	narrow the subset to one item if other partial key(s) were
	combined with it.

	(1997-04-26)

partially ordered set

	A {set} with a {partial ordering}.

partial ordering

	A {relation} R is a partial ordering if it is a {pre-order}
	(i.e. it is {reflexive} (x R x) and {transitive} (x R y R z =>
	x R z)) and it is also {antisymmetric} (x R y R x => x = y).
	The ordering is partial, rather than total, because there may
	exist elements x and y for which neither x R y nor y R x.

	In {domain theory}, if D is a set of values including the
	undefined value ({bottom}) then we can define a partial
	ordering relation <= on D by

		x <= y  if  x = bottom or x = y.

	The constructed set D x D contains the very undefined element,
	(bottom, bottom) and the not so undefined elements, (x,
	bottom) and (bottom, x).  The partial ordering on D x D is
	then

		(x1,y1) <= (x2,y2)  if  x1 <= x2 and y1 <= y2.

	The partial ordering on D -> D is defined by

		f <= g  if  f(x) <= g(x)  for all x in D.

	(No f x is more defined than g x.)

	A {lattice} is a partial ordering where all finite subsets
	have a {least upper bound} and a {greatest lower bound}.

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

	(1995-02-03)

Partial Response Maximum Likelihood

	<storage> (PRML) A method for converting the weak {analog}
	signal from the head of a {magnetic disk} drive into a digital
	signal.  PRML attempts to correctly interpret even small
	changes in the analog signal, whereas {peak detection} relies
	on fixed thresholds.  Because PRML can correctly decode a
	weaker signal it allows higher density recording.

	For example, PRML would read the magnetic flux density pattern
	70, 60, 55, 60, 70 as binary "101", and the same for 45, 40,
	30, 40, 45.  A peak detector would decode everything above,
	say, 50 as high, and below 50 as low, so the first pattern
	would read "111" and the second as "000".

	(1996-12-27)

partition

	1. <storage> A {logical} section of a {disk}.  Each partition
	normally has its own {file system}.  {Unix} tends to treat
	partitions as though they were separate physical entities.

	2. <mathematics> A division of a set into subsets so that each
	of its elements is in exactly one subset.

	(1996-12-09)

partitioned data set

	<file format> (PDS) A {data set} on an {IBM} {mainframe} that
	contains members, each of which acts like a separate data set.
	Partitioned data sets are more space-efficient than individual
	data sets, because they can put more than one data set on a
	track.  They are also used to hold libraries, with one
	function per member.  The syntax for a member is
	NAME.OF.PDS(MEMBER) although some systems (such as {Phoenix})
	could use NAME.OF.PDS:MEMBER

	Original PDSes were of fixed size, and needed frequent
	{compression} to recover space after deleting or changing
	members.  Newer PDS/E Extended PDSes do not have this problem.

	(2003-12-05)

PARTS

	{Digitalk}.  {Visual language} for {OS/2} 2.0.

@-party

	<event, history> /at'par-tee/ (Or "@-sign party") An antiquated
	term for a gathering of {hackers} at a science-fiction convention
	(especially the annual Worldcon) to which only people who had an
	{electronic mail address} were admitted.

	The term refers to the {commercial at} symbol, "@", in an e-mail
	address and dates back to the era when having an e-mail address
	was a distinguishing characteristic of the select few who worked
	with computers.

	Compare {boink}.

	[{Jargon File}]

	(2012-11-17)

PARULEL

	"The PARULEL Parallel Rule Language", S. Stolfo et al, Proc
	1991 Intl Conf Parallel Proc, CRC Press 1991, pp.36-45.

PASC

	{Perceptional Adaptive Subband Coding}

Pascal

	<language> (After the French mathematician {Blaise Pascal}
	(1623-1662)) A programming language designed by {Niklaus
	Wirth} around 1970.  Pascal was designed for simplicity and
	for teaching programming, in reaction to the complexity of
	{ALGOL 68}.  It emphasises {structured programming}
	constructs, data structures and {strong typing}. Innovations
	included {enumeration types}, {subranges}, sets, {variant
	records}, and the {case statement}.  Pascal has been extremely
	influential in programming language design and has a great
	number of variants and descendants.

	ANSI/IEEE770X3.97-1993 is very similar to {ISO Pascal} but
	does not include {conformant arrays}.

	ISO 7185-1983(E).  Level 0 and Level 1.  Changes from Jensen &
	Wirth's Pascal include name equivalence; names must be bound
	before they are used; loop index must be local to the
	procedure; formal procedure parameters must include their
	arguments; {conformant array schemas}.

	An ALGOL-descended language designed by Niklaus Wirth on the
	CDC 6600 around 1967--68 as an instructional tool for
	elementary programming.  This language, designed primarily to
	keep students from shooting themselves in the foot and thus
	extremely restrictive from a general-purpose-programming point
	of view, was later promoted as a general-purpose tool and, in
	fact, became the ancestor of a large family of languages
	including Modula-2 and {Ada} (see also {bondage-and-discipline
	language}).  The hackish point of view on Pascal was probably
	best summed up by a devastating (and, in its deadpan way,
	screamingly funny) 1981 paper by Brian Kernighan (of {K&R}
	fame) entitled "Why Pascal is Not My Favourite Programming
	Language", which was turned down by the technical journals but
	circulated widely via photocopies.  It was eventually
	published in "Comparing and Assessing Programming Languages",
	edited by Alan Feuer and Narain Gehani (Prentice-Hall, 1984).
	Part of his discussion is worth repeating here, because its
	criticisms are still apposite to Pascal itself after ten years
	of improvement and could also stand as an indictment of many
	other bondage-and-discipline languages.  At the end of a
	summary of the case against Pascal, Kernighan wrote:

	9. There is no escape

	This last point is perhaps the most important.  The language
	is inadequate but circumscribed, because there is no way to
	escape its limitations.  There are no casts to disable the
	type-checking when necessary.  There is no way to replace the
	defective run-time environment with a sensible one, unless one
	controls the compiler that defines the "standard procedures".
	The language is closed.

	People who use Pascal for serious programming fall into a
	fatal trap.  Because the language is impotent, it must be
	extended.  But each group extends Pascal in its own direction,
	to make it look like whatever language they really want.
	Extensions for {separate compilation}, Fortran-like COMMON,
	string data types, internal static variables, initialisation,
	{octal} numbers, bit operators, etc., all add to the utility
	of the language for one group but destroy its portability to
	others.

	I feel that it is a mistake to use Pascal for anything much
	beyond its original target.  In its pure form, Pascal is a toy
	language, suitable for teaching but not for real programming.

	Pascal has since been almost entirely displaced (by {C}) from
	the niches it had acquired in serious applications and systems
	programming, but retains some popularity as a hobbyist
	language in the {MS-DOS} and {Macintosh} worlds.

	See also {Kamin's interpreters}, {p2c}.

	["The Programming Language Pascal", N. Wirth, Acta Informatica
	1:35-63, 1971].

	["PASCAL User Manual and Report", K. Jensen & N. Wirth,
	Springer 1975] made significant revisions to the language.

	[BS 6192, "Specification for Computer Programming Language
	Pascal", {British Standards Institute} 1982].

	[{Jargon File}]

	(1996-06-12)

Pascal-

	Pascal subset used in Brinch Hansen on Pascal Compilers, P.
	Brinch Hansen, P-H 1985.

	[{Jargon File}]

Pascal-80

	A successor of Platon.  Developed at RC International for
	systems programming.  Later it was renamed Real-Time Pascal.
	"PASCAL80 Report", J. Staunstrup, RC Intl, Denmark Jan 1980.

Pascal+CSP

	"Pascal+CSP, Merging Pascal and CSP in a Parallel Processing
	Oriented Language", J. Adamo, Proc 3rd Intl Conf Distrib Comp
	Sys, IEEE 1982, pp.542-547.

Pascal-F

	Pascal extended to include fixed-point arithmetic.  E. Nelson,
	"Pascal-F: Programming Language for Real-Time Automotive
	Control", IEEE ElectroTechnol. Rev. (USA), 2:39, 1968.

Pascal-FC

	A {Pascal} derived from {Pascal-S} which provides several
	types of {concurrency}: {semaphores}, {monitors}, both
	{occam}/{CSP}-style and {Ada}-style {rendezvous}.

	["The Teaching Language Pascal-FC", G.L. Davies et al,
	Computer J 33(2):147-154 (Apr 1990)].

	(1994-11-02)

Pascal/L

	A {SIMD} parallel extension of {Pascal}.

	["Implementation of an Array and Vector Processing Language",
	C. Fernstrom, Intl Conf Parallel Proc, IEEE, pp.113-127
	(1982)].

	(1994-11-02)

Pascal-Linda

	Ian Flockhart, U Edinburgh, 1991.  Under development.

Pascal-m

	["Pascal-m: A Language for Loosely Coupled Distributed
	Systems", S. Abramsky et al in Distributed Computing Systems,
	Y. Paker et al eds, Academic Press 1986, pp. 163-189].

	(1994-11-02)

Pascal-P

	<language> The variant of {Pascal} used by the {UCSD}
	{p-system} environment.  Pascal-P has extended {string} and
	{array} operations, {random-access files} and {separate
	compilation}.  It uses {P-code} intermediate code and is
	available from {Pecan}.

	(1994-11-02)

Pascal P4

	compiler and interpreter

	Version ? 1

	compiler, assembler/interpreter, documentation

	Urs Ammann, Kesav Nori, Christian Jacobi

	{(ftp://ftp.cwi.nl/pascal/)}.

	A compiler for Pascal written in Pascal, producing an
	intermediate code, with an assembler and interpreter for the
	code.

	reference: Pascal Implementation, by Steven Pemberton and
	Martin Daniels, published by Ellis Horwood, Chichester, UK (an
	imprint of Prentice Hall), ISBN: 0-13-653-0311.  Also
	available in Japanese.

	E-mail: <Steven.Pemberton@cwi.nl>.

	(1993-07-05)

Pascal Plus

	<language> {Pascal} with extensions for {object-oriented}
	{multiprogramming} by Jim Welsh and D. Bustard of {Queens
	University, Belfast}, UK.  Pascal Plus uses an "envelope"
	construct for both {packages} and {classes}.

	["Pascal Plus - Another Language for Modular
	Multiprogramming", J. Welsh et al, Soft Prac & Exp 9:947
	(1979)].

	["Sequential Program Structures", J. Welsh et al, P-H 1984,
	ISBN 0-13806828-3].

	(1997-12-09)

Pascal/R

	{Pascal} with {relational database} constructs added.  The
	first successful integrated {database} language.

	["Pascal/R Report", J.W. Schmidt et al, U Hamburg, Fachbereich
	Informatik, Report 66, Jan 1980].

	(1994-10-19)

Pascal-S

	Simplified Pascal.  June, 1975.  A strict subset of Pascal,
	omits scalar types, subranges, sets, files, pointers, packed
	structures, 'with' and 'goto.  Source for a complete Pascal-S
	compiler is in "Pascal-S: A Subset and Its Implementation",
	N. Wirth in Pascal - The Language and Its Implementation, by
	D.W. Barron, Wiley 1979.

	{(ftp://csseq.cs.tamu.edu/mcguire/pascal-s)}.

Pascal-SC

	ESPRIT DIAMOND Project.  An extension of Pascal for numerical
	analysis, with controlled rounding, overloading, dynamic
	arrays and modules.  "PASCAL-SC, A Computer Language for
	Scientific Computation", G.  Bohlender et al, Academic Press
	1987.

pasos2

	version:    Alpha

	parts:	            Compiler, run-time library

	author:             Willem Jan Withagen <wjw@eb.ele.tue.nl>

	how to get:         {(ftp://ftp.eb.ele.tue.nl/pub/src/pascal/pasos2*)}.

	A PASCAL/i386 compiler which generates code for OS/2 and
	DOS. It uses EMX as DOS extender and GNU/GAS, MASM or TASM as
	assembler.

	1993-12-17

Pasqual

	["Pasqual: A Proposed Generalization of Pascal", R.D. Tennent,
	TR75-32, Queen's U, Canada, 1975].

PASRO

	<robotics> {PAScal} for RObots.

	["PASRO - Pascal for Robots", C. Blume et al, Springer 1985].

	(1999-07-19)

PASSIM

	A {simulation} language based on {Pascal}.

	["PASSIM: A Discrete-Event Simulation Package for Pascal", D.H
	Uyeno et al, Simulation 35(6):183-190 (Dec 1980)].

passive matrix display

	<hardware> A type of {liquid crystal display} which relies on
	{persistence} to maintain the state of each display element
	({pixel}) between refresh scans.  The {resolution} of such
	displays is limited by the ratio between the time to set a
	pixel and the time it takes to fade.

	Contrast {active matrix display}.

	(1995-12-09)

passphrase

	<operating system> A string of words and characters that you
	type in to authenticate yourself.  Passphrases differ from
	passwords only in length.  Passwords are usually short - six
	to ten characters.  Passphrases are usually much longer - up
	to 100 characters or more.

	Modern passphrases were invented by Sigmund N. Porter in 1982.

	Their greater length makes passphrases more secure.

	Phil Zimmermann's popular encryption program {PGP}, for
	example, requires you to make up a passphrase that you then
	must enter whenever you sign or decrypt messages.

	{(http://world.std.com/~reinhold/diceware.page.html)}.

	(1996-12-21)

passw0rd

	<security> A common default {password}, often given out by
	{system administrtors} to new users, the hope being that they
	will change it immediately.

	(2011-11-22)

password

	<security> An arbitrary string of characters chosen by a user
	or {system administrator} and used to authenticate the user
	when he attempts to log on, in order to prevent unauthorised
	access to his account.

	A favourite activity among unimaginative {computer nerds} and
	{crackers} is writing programs which attempt to discover
	passwords by using lists of commonly chosen passwords such as
	people's names (spelled forward or backward).  It is
	recommended that to defeat such methods passwords use a
	mixture of upper and lower case letters or digits and avoid
	proper names and real words.  If you have trouble remembering
	random strings of characters, make up an acronym like
	"ihGr8trmP" ("I have great trouble remembering my password").

	(1994-10-27)

Password Authentication Protocol

	<networking> (PAP) An {authentication} scheme used by {PPP}
	servers to validate the identity of the originator of the
	connection.

	PAP applies a two-way {handshaking} procedure.  After the link
	is established the originator sends an id-password pair to the
	server.  If authentication succeeds the server sends back an
	acknowledgement; otherwise it either terminates the connection
	or gives the originator another chance.

	PAP is not a strong authentication method.  Passwords are sent
	over the circuit "in the clear" and there is no protection
	against playback or repeated "trial and error" attacks.  The
	originator is in total control of the frequency and timing of
	the attempts.  Therefore, any server that can use a stronger
	authentication method, such as {CHAP}, will offer to negotiate
	that method prior to PAP.  The use of PAP is appropriate,
	however, if a {plaintext} password must be available to
	simulate a login at a remote host.

	PAP is defined in {RFC} 1334.

	(1996-03-23)

paste

	{copy and paste}

pastie

	/pay'stee/ An adhesive label designed to be attached to a key
	on a keyboard to indicate some non-standard character which
	can be accessed through that key.  Pasties are likely to be
	used in APL environments, where almost every key is associated
	with a special character.  A pastie on the R key, for example,
	might remind the user that it is used to generate the rho
	character.  The term properly refers to nipple-concealing
	devices formerly worn by strippers in concession to
	indecent-exposure laws; compare {tits on a keyboard}.

	[{Jargon File}]

PAT

	1. <language> {Personalized Array Translator}.

	2. <networking> {Port Address Translation}.

	(1998-05-09)

PATA

	1. <storage> {Parallel Advanced Technology Attachment}.

	2. {Pooling Agreement for Technical Assistance}.

patch

	<software> 1. A temporary addition to a piece of code, usually
	as a {quick-and-dirty} remedy to an existing {bug} or
	{misfeature}.  A patch may or may not work, and may or may not
	eventually be incorporated permanently into the program.
	Distinguished from a {diff} or {mod} by the fact that a patch
	is generated by more primitive means than the rest of the
	program; the classical examples are instructions modified by
	using the front panel switches, and changes made directly to
	the binary executable of a program originally written in an
	{HLL}.  Compare {one-line fix}.

	2. To insert a patch into a piece of code.

	3. [in the Unix world] A {diff}.

	4. A set of modifications to binaries to be applied by a
	patching program.  {IBM} systems often receive updates to the
	{operating system} in the form of absolute {hexadecimal}
	patches.  If you have modified your OS, you have to
	disassemble these back to the {source code}.  The patches
	might later be corrected by other patches on top of them
	(patches were said to "grow scar tissue").  The result was
	often a convoluted {patch space} and headaches galore.

	There is a classic story of a {tiger team} penetrating a
	secure military computer that illustrates the danger inherent
	in binary patches (or, indeed, any patches that you can't - or
	don't - inspect and examine before installing).  They couldn't
	find any {trap doors} or any way to penetrate security of
	IBM's OS, so they made a site visit to an IBM office
	(remember, these were official military types who were
	purportedly on official business), swiped some IBM stationery,
	and created a fake patch.  The patch was actually the trapdoor
	they needed.  The patch was distributed at about the right
	time for an IBM patch, had official stationery and all
	accompanying documentation, and was dutifully installed.  The
	installation manager very shortly thereafter learned something
	about proper procedures.

	5. {Larry Wall}'s "patch" {utility program}, which
	automatically applies a patch to a set of {source code} or
	other text files.  Patch accepts input in any of the four
	forms output by the {Unix} {diff} utility.  When the files
	being patched are not identical to those on which the diffs
	were based, patch uses {heuristics} to determine how to
	proceed.

	Diff and patch are the standard way of producing and applying
	updates under {Unix}.  Both have been ported to other
	{operating systems}.

	{Patch Home (http://gnu.org/software/patch/patch.html)}.

	[{Jargon File}]

	(2005-05-16)

patch pumpkin

	{pumpkin}

patch space

	An unused block of bits left in a binary so that it can later
	be modified by insertion of machine-language instructions
	there (typically, the patch space is modified to contain new
	code, and the superseded code is patched to contain a jump or
	call to the patch space).  The widening use of HLLs has made
	this term rare; it is now primarily historical outside {IBM}
	shops.  See {patch}, {zap}, {hook}.

	[{Jargon File}]

PATCHY

	A {Fortran} {code management} program written at {CERN}.

path

	1. <networking> A {bang path} or explicitly routed {Internet
	address}; a node-by-node specification of a link between two
	machines.

	2. <file system> {pathname}.

	3. <operating system>  The list of directories the kernel
	(under {Unix}) or the command interpreter (under {MS-DOS})
	searches for {executables}.  It is stored as part of the
	{environment} in both operating systems.

	Other, similar constructs abound under Unix; the {C}
	{preprocessor}, for example, uses such a search path to locate
	"#include" files.

	[{Jargon File}]

	(1996-11-21)

path coverage testing

	<testing> Testing a program by examining which lines of
	{executable code} are visited (as in {code coverage testing})
	and also the ways of getting to each line of code and the
	subsequent sequence of execution.

	Path coverage testing is the most comprehensive type of
	testing that a {test suite} can provide.  It can find more
	{bugs}, especially those that are caused by {data coupling}.
	However, path coverage is hard and usually only used for small
	and/or critical sections of code.

	(2005-01-25)

pathname

	<file system> (Or "path") The specification of a node (file or
	directory) in a {hierarchical file system}.  The path is
	usually specified by listing the nodes top-down, separating
	the directories by the {pathname separator} ("/" in {Unix},
	"\" in {MS-DOS}).

	A pathname may be an {absolute pathname} or a {relative
	pathname}.  The part of the pathname of a file after the last
	separator is called the {basename}.

	(1997-03-10)

pathname separator

	<file system> The character used to separate elements of a
	{path} or {pathname}.  Under {Unix} and {POSIX.1} compliant
	systems the pathname separator is the (forward) {slash}, in
	{MS-DOS} {backslash} serves the same purpose.  For obvious
	reasons the no directory or file name can contain this
	character.

	(1996-11-21)

pathological

	1. [scientific computation] Used of a data set that is grossly
	atypical of normal expected input, especially one that exposes
	a weakness or bug in whatever algorithm one is using.  An
	algorithm that can be broken by pathological inputs may still
	be useful if such inputs are very unlikely to occur in
	practice.

	2. When used of test input, implies that it was purposefully
	engineered as a worst case.  The implication in both senses is
	that the data is spectacularly ill-conditioned or that someone
	had to explicitly set out to break the algorithm in order to
	come up with such a crazy example.

	3. Also said of an unlikely collection of circumstances.  "If
	the network is down and comes up halfway through the execution
	of that command by root, the system may just crash."  "Yes,
	but that's a pathological case."  Often used to dismiss the
	case from discussion, with the implication that the
	consequences are acceptable, since they will happen so
	infrequently (if at all) that it doesn't seem worth going to
	the extra trouble to handle that case (see sense 1).

	[{Jargon File}]

Path Pascal

	Parallel extension of Pascal.  Processes have shared access to
	data objects.  Constraints on their synchronisation are
	specified in a path expression.

	["An Overview of Path Pascal's Design", R.H. Campbell, SIGPLAN
	Notices 15(9):13-24 (Sep 1980)].

pathspec

	{pathname}

pattern matching

	1. A function is defined to take arguments of a particular
	type, form or value.  When applying the function to its actual
	arguments it is necessary to match the type, form or value of
	the actual arguments against the formal arguments in some
	definition.  For example, the function

		length []     = 0
		length (x:xs) = 1 + length xs

	uses pattern matching in its argument to distinguish a null
	list from a non-null one.

	There are well known {algorithm} for translating pattern
	matching into conditional expressions such as "if" or "case".
	E.g. the above function could be transformed to

		length l = case l of
			   []   -> 0
			   x:xs -> 1 : length xs

	Pattern matching is usually performed in textual order though
	there are languages which match more specific patterns before
	less specific ones.

	2. Descriptive of a type of language or utility such as {awk}
	or {Perl} which is suited to searching for strings or patterns
	in input data, usually using some kind of {regular
	expression}.

	(1994-11-28)

pattern recognition

	<artificial intelligence, data processing> A branch of
	{artificial intelligence} concerned with the classification or
	description of observations.

	Pattern recognition aims to classify {data} (patterns) based
	on either a priori knowledge or on statistical information
	extracted from the patterns.  The patterns to be classified
	are usually groups of measurements or observations, defining
	points in an appropriate multidimensional space.

	A complete pattern recognition system consists of a sensor
	that gathers the observations to be classified or described; a
	{feature extraction} mechanism that computes numeric or
	{symbolic} information from the observations; and a
	classification or description scheme that does the actual job
	of classifying or describing observations, relying on the
	extracted features.

	The classification or description scheme is usually based on
	the availability of a set of patterns that have already been
	classified or described.  This set of patterns is termed the
	{training set} and the resulting learning strategy is
	characterised as {supervised}.  Learning can also be
	{unsupervised}, in the sense that the system is not given an a
	priori labelling of patterns, instead it establishes the
	classes itself based on the statistical regularities of the
	patterns.

	The classification or description scheme usually uses one of
	the following approaches: statistical (or {decision
	theoretic}), syntactic (or structural), or neural.
	Statistical pattern recognition is based on statistical
	characterisations of patterns, assuming that the patterns are
	generated by a {probabilistic} system.  Structural pattern
	recognition is based on the structural interrelationships of
	features.  Neural pattern recognition employs the neural
	computing paradigm that has emerged with {neural networks}.

	(1995-09-22)

PAW

	<tool> {Physics Analysis Workbench}.

PAW++

	An extended version of PAW with a Motif human interface.

payware

	/pay'weir/  Commercial software.  Opposite: {shareware}
	or {freeware}.

	[{Jargon File}]

PB Cache

	{Pipeline Burst Cache}

PBCAK

	{PEBCAK}

PBD

	{Programmer Brain Damage}

PBEM

	{play by electronic mail}

PBKAC

	{PEBCAK}

PBM

	play by mail.  See {play by electronic mail}.

PBX

	{Private Branch Exchange}

PC

	1. <computer> {personal computer}.

	2. <computer> {IBM PC}.

	3. <hardware> {program counter}.

	4. <hardware> {printed circuit}.

	5. <language> {Parallel C}.

pC++

	{Data parallel} extension to {C++}.  {Class}es and {methods}
	for managing distributed collections.

	E-mail: Dennis Gannon <gannon@cs.indiana.edu>.

	["Distributed pC++: Basic Ideas for an Object Parallel
	Language", F. Bodin et al, Proc Supercomput 91, ACM SIGARCH,
	pp. 273-282].

	(2001-02-22)

PC-1834

	<computer> An {IBM PC}-like computer, using a {K1810 WM 86}
	{Intel 8086} {clone} from the formerly known Eastern bloc,
	introduced in 1988.

	(2004-03-24)

PC200

	{Sinclair PC200}

PC-7150

	<hardware> An {IBM PC}-like computer, using a {K1810 WM 86}
	{Intel 8086} {clone} from the formerly known Eastern bloc,
	introduced in 1988.

	(2004-03-24)

PCA

	<tool, programming> A dynamic analyser from {DEC} giving
	information on {run-time} performance and code use.

	(2004-03-24)

P-CAD

	<application> A {CAE} system marketed by {CADAM}, an {IBM}
	company.

	(2004-03-24)

PC AT

	{IBM PC AT}

PCB

	1. <hardware> {Power Circuit Breaker}.

	2. <hardware> {Power Control Box}.

	3. <hardware> {Printed Circuit Board}.

	4. {Process Control Block}.

	5. {Product Configuration Baseline}.

	6. {Program Control Block}.

	7. <networking> {Protocol Control Block}.

	({TCP}).

PC Card

	{Personal Computer Memory Card International Association}

PCCTS

	{Purdue Compiler-Construction Tool Set}

PCF

	A simply typed, {functional language}.

	["Fully Abstract Translations Between Functional Languages",
	J. Riecke, 18th POPL, pp. 245-254 (1991)].

	["LCF Considered as a Programming Language", Theor CS 5:223,
	1977].

	(1996-01-18)

PCI

	{Peripheral Component Interconnect}

PCI bus

	{Peripheral Component Interconnect}

PCI Configuration Utility

	<tool> (PCU) A piece of {software} for configuring a specific
	{PCI} {hardware} device.

	[What software?  What hardware?]

	(1998-11-22)

PCI Mezzanine Card

	<hardware> (PMC) A family of low profile {mezzanine} cards for
	{VMEbus}, {Futurebus+}, desktop computers and other computer
	systems with logical and electrical layers based on the
	{Peripheral Component Interconnect} (PCI) specification.  PMC
	is defined in {IEEE} P1386.1 and follows the {Common Mezzanine
	Card} (CMC) mechanical specification.

	PCI2.0 defines a 4.2 inch by 12.3 inch board that plugs
	perpendicularly into a {mother board}.

	(1994-10-06)

PCI slot

	<hardware> A connector on {Peripheral Component Interconnect}
	and the associated physical space occupied by the installed
	PCI card.

	(1997-12-07)

PC-ism

	/P-C-izm/ A piece of code or coding technique that takes
	advantage of the unprotected single-tasking environment in
	{IBM PCs} and the like, e.g. by {busy-wait}ing on a {hardware
	register}, direct diddling of {screen memory} or using hard
	timing loops.  Compare {ill-behaved}, {vaxism}, {Unixism}.

	[{Jargon File}]

PCjr

	{IBM PCjr}

PCL

	1. Printer Control Language.  A {Document description
	language} used by {Hewlett-Packard} {Laserjet} printers, a
	superset of {HP-GL/2}.

	[PCL 5 Printer Language Printer Technical Reference Manual, HP
	33459-90903.  Versions: PCL 3, PCL 5].

	2. {Portable CommonLoops}.

	3. Peripheral Conversion Language.  A {Honeywell} command
	language for {file transfer} between I/O devices on the {CP-V}
	and {CP-6} {operating systems}.

	4. ["PCL - A Process Oriented Job Control Language", V. Lesser
	et al, Proc 1st Intl Conf Distrib Comp Sys, IEEE 1979,
	pp.315-329].

PCLIPS

	Parallel CLIPS - U Lowell.  Concurrent independent CLIPS
	expert systems.  They use 'rassert' (remote assert) to enter
	facts into each other's database.  "PCLIPS: A Distributed
	Expert System Environment", R.  Miller, CLIPS Users Group
	Conf, Aug 1990.  E-mail: <pclips@dragon.ulowell.edu>(?).

PCM

	1. <data> {Pulse Code Modulation}.

	2. <company> {Plug Compatible Manufacturer}.

	(2003-06-24)

PCMCIA

	<body, standard> {Personal Computer Memory Card International
	Association}.  (Or People Can't Memorise Computer Industry
	Acronyms).

PCMIA

	{Personal Computer Manufacturer Interface Adaptor}

PCN

	1. {Program Composition Notation}.

	2. <communications> {Personal Communication Network}.

PC-NFS

	{Personal Computer Network File System}

P-code

	<language> The {intermediate language} produced by the
	{Pascal-P} {compiler}.  P-code is the {assembly language} for
	a hypothetical {stack machine}, the P-machine, said to imitate
	the {instruction set} of the {Burroughs 6700}.

	The term was first used in the Wirth reference below.  {Byte}
	articles on writing a Pascal Compiler in {Northstar BASIC} (ca
	Aug 1978) also used the term.

	P-code was initially the intermediate code generated by the P2
	compiler from ETH Zurich.  P-code was later used as the
	intermediate language in the {UCSD Pascal System}, and in its
	two main derivatives, {Apple Pascal} and the {UCSD P-system}.

	Variants: P2 P-code, P4 P-code, UCSD P-code, LASL P-code.

	[Algorithms + Data Structures = Programs, N. Wirth, P-H 1976].

	["A Comparison of PASCAL Intermediate Languages", P.A. Nelson,
	SIGPLAN Notices 14(8):208-213, Aug 1979].

	(2004-11-08)

PC Pursuit

	A {TELENET} service which enabled people to dial up {BBS}es in
	other cities for less than normal long-distance rates.  PC
	Pursuit died because TELENET were too mean to upgrade beyond
	2400 bits per second.

	(1994-10-17)

PC-RT

	<computer> An incorrect name for the {RT-PC}.

	(1995-04-06)

PCS

	1. {Personal Communication Services}.

	2. {PC-Scheme}.

PC-Scheme

	Version 3.03

	compiler, debugger, profiler, editor, libraries

	{(ftp://altdorf.ai.mit.edu/archive/pc-scheme/)}.

	Written at {Texas Instruments}.  Runs on {MS-DOS} 286/386 IBM
	PCs and compatibles.  Includes an optimising compiler, an
	emacs-like editor, inspector, debugger, performance testing,
	foreign function interface, window system and an
	object-oriented subsystem.  Also supports the dialect used in
	{Hal Abelson} and {Gerald Sussman}'s {SICP}.

	Conformance: Revised^3 Report, also supports dialect used in
	SICP.

	restriction:	official version is $95, contact <rww@ibuki.com>

	ports:		MS-DOS

	See also {PCS/Geneva}.

	(1992-02-23)

PCS/Geneva

	A cleaned-up version of {Texas Instrument}'s {PC Scheme}
	developed at the {University of Geneva}.  The main extensions
	to PC Scheme are {486} support, {BGI} graphics, {LIM-EMS}
	pagination support, line editing and {assembly code}-level
	interfacing.

	Version 4.02PL1.

	E-mail: <schemege@uni2a.unige.ch>.

	(1994-01-11)

PC support

	<job> (Or "PC analyst", end user support) A person who works
	with {microcomputer} applications including {word processors},
	{spreadsheets}, {presentation graphics}, {database management
	systems}, {electronic mail}, and communications.  He also
	evaluates, installs and supports PCs, {Macintoshes}, and
	associated {peripherals}.

	(2004-03-20)

PC-TALK III

	<communications, tool> An {MS-DOS} communications program by
	{Andrew Fluegelman}.

	(1997-08-25)

PCTE

	{Portable Common Tool Environment}

PCTE+

	A European NATO specification based on {PCTE} with security
	enhancements.

PC-TILES

	<language> A {visual programming language}.

	(1997-08-25)

PCU

	{PCI Configuration Utility}

PC-ware

	Pejorative term for software full of {PC-isms} on a machine
	with a more capable {operating system}.

pcx

	<filename extension> A {filename extension} for {images}
	created with the {IBM PC} {Paintbrush} tool.

	[Format?]

	(1995-12-10)

PD

	{public domain}

PDA

	{Personal Digital Assistant}

PDC

	{Primary Domain Controller}

PDC Prolog

	Prolog Development Centre Prolog.  A {Prolog} evolved from
	{Turbo Prolog} by the original authors.

PDEL

	Partial Differential Equation Language.  A {preprocessor} for
	{PL/I}.

	["PDEL - A Language for Partial Differential Equations",
	A.F. Cardenas, CACM 13(3):184-191 (Mar 1970)].

PDELAN

	{Partial Differential Equation LANguage}

PDES

	{Product Data Exchange using STEP}

PDF

	{Portable Document Format}

PDFTeX

	<tool, TeX, PDF> A modification of {TeX} to produce {PDF}
	output instead of the {canonical} {DVI}.

	{pdftexlib.tar.gz (ftp://ftp.tug.org/pub/tex/pdftexlib.tar.gz)}.

	{Thanh's source of pdfTeX
	(ftp://ftp.muni.cz/pub/tex/local/cstug/thanh/pdftex/)}.

	{User Manual
	(http://tug.cs.umb.edu/applications/pdftex/pdftex-s.pdf)}.

	{FAQ
	(http://tug.cs.umb.edu/applications/pdftex/pdfTeX-FAQ-scr.pdf)}.

	(2000-12-21)

PDH

	{Plesiochronous Digital Hierarchy}

PDIL

	<language> A language developed at Agence d'Informatique,
	France in the 1970s for description of communication
	{protocols}.  It was part of the {RHIN} project.

	(1995-02-28)

pdksh

	Version 4.9

	interpreter

	Simon J. Gerraty <sjg@zen.void.oz.au>

	comp.sources.misc volume 4

	It is not intended to be the ultimate shell but rather a
	usable ksh work alike.

	conformance:	Almost identical to ksh88, but missing arrays

	E-mail: Simon J Gerraty <sjg@melb.bull.oz.au> (zen.void.oz.au
	is down)

	ports:		Sun, 386bsd, ?

	1993-10-11

PDL

	1. {Page Description Language}.

	2. {Program Design Language}.

	3. {Push Down List}.

	4. Dave Lebling, one of the co-authors of {Zork}.  His
	{network address} on the {ITS} machines was at one time
	<pdl@dms>.

	5. {Propositional Dynamic Logic}.

	[{Jargon File}]

PDL2

	<language> {Process Design Language 2}.

PDM

	1. {Product Development Management}.

	2. {Product Data Management}.

	(1997-02-11)

PDP

	{Programmed Data Processor}

PDP-10

	<computer> Programmed Data Processor model 10.

	The series of {mainframes} from {DEC} that made {time-sharing}
	real.  It looms large in hacker folklore because of its
	adoption in the mid-1970s by many university computing
	facilities and research labs, including the {MIT} {AI Lab},
	{Stanford}, and {CMU}.  Some aspects of the {instruction set}
	(most notably the bit-field instructions) are still considered
	unsurpassed.

	The PDP-10 was eventually eclipsed by the {VAX} machines
	(descendants of the {PDP-11}) when DEC recognised that the
	PDP-10 and VAX product lines were competing with each other
	and decided to concentrate its software development effort on
	the more profitable VAX.  The machine was finally dropped from
	DEC's line in 1983, following the failure of the {Jupiter}
	Project at DEC to build a viable new model.  (Some attempts by
	other companies to market clones came to nothing; see {Foonly}
	and {Mars}.)  This event spelled the doom of {ITS} and the
	technical cultures that had spawned the original {Jargon
	File}, but by mid-1991 it had become something of a badge of
	honourable old-timerhood among hackers to have cut one's teeth
	on a PDP-10.

	See {TOPS-10}, {AOS}, {BLT}, {DDT}, {DPB}, {EXCH}, {HAKMEM},
	{JFCL}, {LDB}, {pop}, {push}.

	{news:alt.sys.pdp10}

	[Was the PDP-10 a mini or a mainframe?]

	(2001-01-05)

PDP-11

	Programmed Data Processor model 11.

	A series of {minicomputers} based on an {instruction set}
	designed by C. Gordon Bell at {DEC} in the early 1970s (late
	60s?).  The PDP-11 family, which came after, but was not
	derived from, the {PDP-10}, was the most successful computer
	of its time until it was itself succeeded by the {VAX}.

	Models included the 11/23 and 11/24 (based on the F11
	chipset); 11/44, 11/04, 11/34, 11/05, 11/10, 11/15, 11/20,
	11/35, 11/40, 11/45, 11/70, 11/60 ({MSI} and {SSI}); LSI-11/2
	and LSI-11 (LSI-11 chipset).  In addition there were the 11/8x
	(J11 chipset) and SBC-11/21 (T11 chip) and then there was
	compatibility mode in the early {VAX} processors.

	The {B} and {C} languages were both used initially to
	implement {Unix} on the PDP-11.  The {microprocessor} design
	tradition owes a heavy debt to the PDP-11 {instruction set}.

	See also {SEX}.

	(1994-12-21)

PDP-20

	The most famous computer that never was.  {PDP-10} computers
	running the {TOPS-10} operating system were labelled
	"DECsystem-10" as a way of differentiating them from the
	{PDP-11}.  Later on, those systems running {TOPS-20} were
	labelled "DECSYSTEM-20" (the block capitals being the result
	of a lawsuit brought against DEC by Singer, which once made a
	computer called "system-10"), but contrary to popular lore
	there was never a "PDP-20"; the only difference between a 10
	and a 20 was the {operating system} and the colour of the
	paint.  Most (but not all) machines sold to run {TOPS-10} were
	painted "Basil Blue", whereas most TOPS-20 machines were
	painted "Chinese Red" (often mistakenly called orange).

	[{Jargon File}]

	(1994-12-21)

PDP-6

	<computer> Programmed Data Processor model 6.  A computer
	designed around 1960 with more or less exactly the same
	hardware architecture as the {PDP-10}.  It already had
	multi-user {time sharing} and {batch processing} and
	multi-level priority {interrupts}

	(1996-12-21)

PDP-7

	<computer> A minicomputer sold by DEC in 1964.  It had a
	memory cycle time of 1.75 microseconds and add time of 4
	microseconds.  I/O included a keyboard, printer, {paper-tape}
	and dual transport DECtape drives (type 555).

	DEC provided an "advanced" {Fortran II} {compiler}, a Symbolic
	{Assembler}, Editor, {DDT} Debugging System, Maintenance
	routines and a library of arithmetic, utility and programming
	aids developed on the program-compatible {PDP-4}.

	[DEC sales brochure].

	The PDP-7 was considered reliable enough (when properly
	programmed) to be used for control of nuclear reactors and
	such.

	Around 1970 {Ken Thompson} built the {operating system} that
	became {Unix} on a scavenged {PDP-7} so he could play a
	descendant of the {SPACEWAR} game.

	(1995-03-10)

PDP Assembly Language

	<language> (PAL) The {assembly language} for the {PDP-8} and
	{PDP-11}.

	[Description?]

	(1995-01-26)

PDS

	1. <hardware> {Processor Direct Slot}.

	2. {partitioned data set}.

PDSA cycle

	Plan, Do, See, Approve (from Japan).

PDS/MaGen

	Problem Descriptor System.  A system for generating matrices
	and reports for mathematical programming and {operations
	research}.

	["PDS MaGen User Information Manual", Haverly Systems (Dec
	1977)].

	(1994-10-27)

PDU

	{Protocol Data Unit}

PE

	1. <database> {periodic group}

	2. <storage> {Phase Encoded}.

	3. <architecture> {processing element}.

	(1995-10-30)

pe

	<networking> The {country code} for Peru.

	(1999-01-27)

PeaceNet

	One of the {IGC} networks.  PeaceNet serves peace and social
	justice advocates around the world in such areas as human
	rights, disarmament, and international relations.  A number of
	alternative news services provide a range of information about
	these and other topics from around the world.

	E-mail: <peacenet@igc.apc.org>.  {(ftp://igc.apc.org/)}.

peak envelope power

	<communications> (PEP) The maximum power output by a radio
	transmitter over one complete RF cycle at any modulation.

	(2008-02-11)

Peano

	{Giuseppe Peano}

Peano arithmetic

	<mathematics> {Giuseppe Peano}'s system for representing {natural
	numbers} {inductively (induction)} using only two symbols, "0"
	(zero) and "S" (successor).

	This system could be expressed as a {recursive} data type with the
	following {Haskell} definition:

		data Peano = Zero | Succ Peano

	The number three, usually written "SSS0", would be Succ (Succ
	(Succ Zero)).  Addition of Peano numbers can be expressed as a
	simple syntactic transformation:

		plus Zero     n = n
		plus (Succ m) n = Succ (plus m n)

	(1995-03-28)

PEARL

	1. <language, mathematics> A language for {constructive
	mathematics} developed by Constable at {Cornell University} in
	the 1980s.

	2. <language, real-time> {Process and Experiment Automation
	Real-Time Language}.

	3. <language, education> 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).  Compare {Brilliant}, {Diamond}, {Nonpareil}, {Ruby}.

	4. <language> A multilevel language developed by Brian Randell
	ca 1970 and mentioned in "Machine Oriented Higher Level
	Languages", W. van der Poel, N-H 1974.

	5. <language, tool, history> An obsolete term for {Larry
	Wall}'s {PERL} programming language, which never fell into
	common usage other than in typographical errors.  The missing
	'a' remains as an atrophied remnant in the expansion
	"Practical Extraction and Report Language".

	["Programming Perl", Larry Wall and Randal L. Schwartz,
	O'Reilly & Associates, Inc.  Sebastopol, CA.  ISBN
	0-93715-64-1].

	(2000-08-16)

Pebble

	A {polymorphic} language.

	["A Kernel Language for Abstract Data Types and Modules",
	R.M. Burstall & B. Lampson, in Semantics of Data Types, LNCS
	173, Springer 1984].

	(1995-01-26)

Pebbleman

	{DoD} requirements that led to {APSE}.  They were written in
	Jul 1978 and revised Jan 1979.

	(1995-01-26)

PEBCAK

	<humour> (Or "PEBKAC", "PBCAK", "PBKAC") Tech support
	shorthand for "Problem (Exists) between Chair and Keyboard".

	An alternative is "PICNIC" - "Problem In Chair, Not In
	Computer".

	An acronym commonly used by helpdesk technicians to indicate
	that a problem is due to the user rather than the system.

	See also {UBD}.

	(2012-08-26)

PEBKAC

	{PEBCAK}

PECOS

	A {constraint}-based language, built on the {object-oriented}
	module of {Le-Lisp}.

	["Pecos Reference Manual", ILOG, 1990.  ILOG, 12 av Raspail,
	BP 7, F94251 Gentilly, France].

	(1995-01-26)

Pedagogic Algorithmic Language

	["PAL - A Language for Teaching Programming Linguistics",
	A. Evans Jr, Proc ACM 23rd Natl Conf, Brandon/Systems Press
	(1968)].

	(1995-01-26)

PEEK

	The command in most {microcomputer} {BASICs} for reading
	memory contents (a byte) at an absolute address.  POKE is the
	corresponding command to write a value to an absolute address.

	This is often extended to mean the corresponding constructs in
	any {High Level Language}.

	Much hacking on small {microcomputers} without {MMUs} consists
	of "peek"ing around memory, more or less at random, to find
	the location where the system keeps interesting stuff.  Long
	(and variably accurate) lists of such addresses for various
	computers circulate (see {interrupt list}).  The results of
	"poke"s at these addresses may be highly useful, mildly
	amusing, useless but neat, or total {lossage} (see {killer
	poke}).

	Since a {real operating system} provides useful, higher-level
	services for the tasks commonly performed with peeks and pokes
	on micros, and real languages tend not to encourage low-level
	memory groveling, a question like "How do I do a peek in C?"
	is diagnostic of the {newbie}.  Of course, {operating system}
	{kernels} often have to do exactly this; a real {C} hacker
	would unhesitatingly, if unportably, assign an absolute
	address to a pointer variable and indirect through it.

	[{Jargon File}]

	(1995-01-31)

PEEL

	Used to implement version of {Emacs} on {PRIME} computers.

peephole optimisation

	<compiler> A kind of low-level {code optimisation} that
	considers only a few adjacent {machine code} instructions at a
	time and looks for certain combinations which can be replaced
	with more efficient sequences.  E.g.

		ADD R0, #1
		ADD R0, #1

	(add one to register R0) could be replaced by

		ADD R0, #2

	as long as there were no jumps to the second instruction.

	(2008-11-17)

peephole optimization

	{peephole optimisation}

peer

	<networking> A unit of communications hardware or software
	that is on the same {protocol layer} of a network as another.
	A common way of viewing a communications link is as two
	{protocol stacks}, which are actually connected only at the
	very lowest (physical) layer, but can be regarded as being
	connected at each higher layer by virtue of the services
	provided by the lower layers.  Peer-to-peer communication
	refers to these real or virtual connections between
	corresponding systems in each layer.

	To give a simple example, when two people talk to each other,
	the lowest layer is the physical layer which concerns the
	sound pressure waves travelling from mouth to ear (so mouths
	and ears are peers) the next layer might be the speech and
	hearing centres in the people's brains and the top layer their
	cerebellums or minds.  Although, barring telepathy, nothing
	passes directly between the two minds, there is a peer-to-peer
	communication between them.

	(2007-03-27)

peer-to-peer

	<networking> 1. The kind of communication found in a system
	using layered {protocols}.  Each software or hardware
	component can be considered to communicate only with its
	{peer} in the same layer via the connection provided by the
	lower layers.

	(1994-12-14)

	2. A decentralised {file sharing} system like {BitTorrent},
	{Gnutella} or {Kazaa} where computers that download data also
	store that data and serve it to other downloaders.  This
	increases the total bandwidth available in proportion to the
	number of users and so reduces download time.  It also
	improves resilience by providing multiple redundant sources
	for the same data.  This contrasts with {client-server} where
	all clients download the data from a single server (or
	{mirror}), sharing its fixed bandwidth.

	Peer-to-peer networks are typically ad-hoc and rely on users
	sharing the content they have downloaded for the benefit of
	other users.  Users who fail to do this are called "leaches".
	A "seed" is a node on a peer-to-peer network that is
	sharing a complete copy of a file, as opposed to other nodes
	that may only have some of the parts into which the file has
	been split.

	(2010-02-20)

peer-to-peer network

	{peer-to-peer}

Pegasus

	1. <networking, product> A product to support {Internet}
	searches, {electronic mail}, and {Usenet news}.

	[Details?  Addesss?]

	(1997-07-14)

	2. <project> An {open source} project run by {The Open Group}
	which implements a {Common Information Model} (CIM) Object
	Manager.

	{Pegasus Home (http://openpegasus.org/)}.

	(2003-06-07)

PEIPA

	{Pilot European Image Processing Archive}

PEM

	{Privacy Enhanced Mail}

PENCIL

	Pictorial ENCodIng Language.  On-line system to display line
	structures.  Sammet 1969, 675.

pencil and paper

	An archaic information storage and transmission device that
	works by depositing smears of graphite on bleached wood pulp.
	More recent developments in paper-based technology include
	improved "write-once" update devices which use tiny rolling
	heads similar to mouse balls to deposit coloured pigment.  All
	these devices require an operator skilled at so-called
	"handwriting" technique.  These technologies are ubiquitous
	outside hackerdom, but nearly forgotten inside it.  Most
	hackers had terrible handwriting to begin with, and years of
	keyboarding tend to have encouraged it to degrade further.
	Perhaps for this reason, hackers deprecate pencil-and-paper
	technology and often resist using it in any but the most
	trivial contexts.

	[{Jargon File}]

	(1994-12-06)

penis war

	<jargon, abuse> (Or "Dick Size War", "DSW") Any argument which
	has degenerated into quantitative boasting of the sort "My
	[program|bot|etc.] is [faster|meaner|etc.]  than yours!".
	Generally as unconstructive (and with as little emphasis on
	empirical proof) as men debating who has the biggest penis.

	The term is often used on {IRC}, {news:alt.sysadmin.recovery},
	and sometimes applied to IRC {botwars}, because of their
	equally pointless nature.

	(1999-07-14)

Pentium

	<processor> {Intel}'s {superscalar} successor to the {486}.
	It has two 32-bit 486-type integer {pipelines} with dependency
	checking.  It can execute a maximum of two instructions per
	cycle.  It does pipelined {floating-point} and performs
	{branch prediction}.  It has 16 {kilobytes} of on-chip
	{cache}, a 64-bit memory interface, 8 32-bit general-purpose
	{registers} and 8 80-bit {floating-point} registers.  It is
	built from 3.1 million transistors on a 262.4 mm^2 die with
	~2.3 million transistors in the core logic.  Its {clock rate}
	is 66MHz, heat dissipation is 16W, integer performance is 64.5
	{SPECint92}, {floating-point} performance 56.9 {SPECfp92}.

	It is called "Pentium" because it is the fifth in the 80x86
	line.  It would have been called the 80586 had a US court not
	ruled that you can't trademark a number.

	The successors are the {Pentium Pro} and {Pentium II}.

	The following Pentium variants all belong to "x86 Family 6",
	as reported by "Microsoft Windows" when identifying the CPU:

	 Model  Name
	 1      Pentium Pro
	 2      ?
	 3      Pentium II
	 4      ?
	 5, 6   Celeron or Pentium II
	 7      Pentium III
	 8      Celeron uPGA2 or Mobile Pentium III

	A {floating-point division bug
	(ftp://ftp.isi.edu/pub/carlton/pentium/FAQ)} was discovered in
	October 1994.

	[Internal implementation, "Microprocessor Report" newsletter,
	1993-03-29, volume 7, number 4].

	[Pentium based computers, PC Magazine, 1994-01-25].

	(2003-09-30)

Pentium 2

	{Pentium II}

Pentium 3

	{Pentium III}

Pentium II

	<processor> {Intel Corporation}'s successor to the {Pentium
	Pro}.

	The Pentium II can execute all the instructions of all the
	earlier members of the {Intel 80x86} processor family.  There
	are four versions targetted at different user markets.  The
	{Celeron} is the simplest and cheapest.  The standard Pentium
	II is aimed at mainstream home and business users.  The
	{Pentium II Xeon} is intended for higher performance business
	{servers}.  There is also a mobile version of the Pentium II
	for use in portable computers.

	All versions of the Pentium II are packaged on a special
	{daughterboard} that plugs into a card-edge processor slot on
	the {motherboard}.  The daughterboard is enclosed within a
	rectangular black box called a {Single Edge Contact} (SEC)
	cartridge.  The budget {Celeron} may be sold as a card only
	without the box.  Consumer line Pentium II's require a 242-pin
	slot called {Slot 1}.  The {Xeon} uses a 330-pin slot called
	Slot 2.  Intel refers to Slot 1 and Slot 2 as SEC-242 and
	SEC-330 in some of their technical documentation.  The
	daughterboard has mounting points for the Pentium II {CPU}
	itself plus various support chips and {cache} memory chips.
	All components on the daughterboard are normally permanently
	soldered in place.  Previous generation {Socket 7}
	motherboards cannot normally be upgraded to accept the Pentium
	II, so it is necessary to install a new motherboard.

	All Pentium II processors have {Multimedia Extensions} (MMX)
	and integrated Level One and Level Two cache controllers.
	Additional features include {Dynamic Execution} and Dual
	Independent Bus Architecture, with separate 64 bit system and
	cache busses.  Pentium II is a {superscalar} CPU having about
	7.5 million {transistors}.

	The first Pentium II's produced were code named {Klamath}.
	They were manufactured using a 0.35 micron process and
	supported {clock rates} of 233, 266, 300 and 333 {MHz} at a
	{bus} speed of 66 MHz.  Second generation Pentium II's, code
	named Deschutes, are made with a 0.25 micron process and
	support rates of 350, 400 and 450 MHz at a bus speed of 100
	MHz.

	{(http://intel.com/PentiumII/)}.

	(1998-10-06)

Pentium III

	<processor, Intel> The {microprocessor} that was {Intel
	Corporation}'s successor to the {Pentium II}, introduced in
	1999 with a 500 {MHz} {clock rate}.  The Pentim III is very
	similar to the Pentium II in architecture.  Its external {bus}
	can be clocked at 100 or 133 MHz, it can have up to 512 {KB}
	of {secondary cache}, and it comes in various packages
	including {SECC2} and {FC-PGA}.

	The Pentium III has a {P6} {Dynamic Execution}
	{microarchitecture}, a {multi-transaction system bus}, and
	{MMX}, like the Pentium II.  It adds {Dual Independent Bus}
	(DIB) Architecture, the {Intel Processor Serial Number},
	Internet {Streaming SIMD Extensions}, 70 new instructions.
	Some versions also include an {Advanced Transfer Cache} and
	{Advanced System Buffering}.

	When Intel released a 1.13 {GHz} version of the Pentium III
	processor using a 0.18 {micron} fabrication process on
	2000-07-31, it was the world's highest performance
	microprocessor for PCs.

	{(http://intel.com/PentiumIII)}.

	(2000-10-05)

Pentium II Xeon

	<processor> The successor to {Intel Corporation}'s {Pentium
	II} processor.

	The Xeon has the same {P6} core as existing {Pentium
	Pro}/{Pentium II} units, but it supports a 100 {MHz} system
	{bus} and offers as much as 2 {MB} of {level 2 cache}.

	{(http://intel.com/PentiumII/xeon/home.htm)}.

	(1998-09-09)

Pentium Pro

	<processor> (Known as "P6" during development) {Intel}'s
	successor to the {Pentium} processor, in development Jan 1995,
	generally available 1995-11-01.  The P6 has an internal
	{RISC} architecture with a {CISC}-{RISC} translator, 3-way
	{superscalar} execution, and {out-of order execution} (or
	"{speculative execution}", which Intel calls "{Dynamic
	Execution}").  It also features {branch prediction} and
	{register renaming}, and is superpipelined (14 stages).

	The P6 is made as a two-chip assembly: the first chip is the
	{CPU} and 16 kilobyte {first-level cache} (5.5 million
	{transistors}) and the other is a 256 (or 512) kilobyte
	{second-level cache} (15 million transistors).  The first
	version has a {clock rate} of 133 Mhz and consumes about 20W
	of power.  It is about twice as fast as the 100 MHz Pentium.
	The original 0.35 micron versions of the Pentium Pro released
	on 1995-11-01 run at 150 and 166 Mhz for desktop machines and
	up to 200 Mhz for {servers}.  Heat disspation is about 20
	Watts.

	The Pentium Pro is optimised for 32-bit software and runs
	16-bit software slower than the original Pentium.  The
	successor was the {Pentium II}.

	[Performance?]

	(1996-03-01)

peon

	<jargon> A person with no special ({root} or {wheel})
	privileges on a computer system.  "I can't create an account
	on foovax for you; I'm only a peon there."

	[{Jargon File}]

	(2001-12-23)

PeopleSoft

	<application, company> A company selling {web-based} {ERP}
	systems.  Originally PeopleSoft supplied human resource
	management systems, they now provide financial data
	management, {customer relationship management}, {supply chain
	management}, {workforce management}, and {data analytics}
	systems.

	{(http://peoplesoft.com/)}.

	(2003-06-01)

PEP

	{peak envelope power}

Pepper

	<language> A variant of {POP-11} by Chris Dollin
	<kers@hplb.hpl.hp.com>.

	(2002-05-26)

PEPsy

	{Prolog} extended with parallel modules within which explicit
	{OR-parallelism} can be used.

	["PEPsy: A Prolog for Parallel Processing", M. Ratcliffe et
	al, ECRC TR CA-17, 1986].

PER

	1. <networking> {Packed Encoding Rules}.

	2. <mathematics> {partial equivalence relation}.

	(1998-05-27)

percent

	%

	Common: {ITU-T}: percent sign; mod; grapes.  {INTERCAL}:
	double-oh-seven.

	(1995-03-06)

Perceptional Adaptive Subband Coding

	<audio, compression> (PASC) A version of {MPEG-1 Layer 1} used
	for the {Philips} {Digital Compact Cassette DCC}.

	(2001-12-13)

perceptron

	1. A single {McCulloch-Pitts neuron}.

	2. A network of {neurons} in which the output(s) of some
	neurons are connected through weighted connections to the
	input(s) of other neurons.  A {multilayer perceptron} is a
	specific instance of this.

percussive maintenance

	<jargon> The fine art of whacking a device to get it working,
	possibly using a {fine adjuster}.

	(1999-01-15)

perf

	{chad}

perfect programmer syndrome

	Arrogance; the egotistical conviction that one is above normal
	human error.  Most frequently found among programmers of some
	native ability but relatively little experience (especially
	new graduates; their perceptions may be distorted by a history
	of excellent performance at solving {toy problems}).  "Of
	course my program is correct, there is no need to test it."
	"Yes, I can see there may be a problem here, but *I'll* never
	type "rm -r /" while in {root mode}."

	[{Jargon File}]

PERFORM

	<programming> A {COBOL} statement used for executing
	"paragraphs".

	[What's a paragraph?]

	(1997-06-10)

period

	1. <data> The time between repetitions of any cyclic event
	or phenomenon such as an {electromagnetic wave} or planetary
	orbit.  Period is the {reciprocal} of {frequency}.

	2. <character> American for {full stop}.

	(2010-07-25)

periodic group

	<database> (PE) Groups of logically related fields which occur
	multiple times within a group.

	Periodic groups are a non-{relational} technique.  An example
	of a PE would be for storing the history of a person's name
	changes, where name was kept in logically related fields such
	as surname, first name and middle name - with the person
	having changed their name more than once.

	[Clarification?]

	(1995-10-30)

peripheral

	<hardware> (Or "peripheral device", "device") Any part of a
	computer other than the {CPU} or {working memory},
	i.e. {disks}, {keyboards}, {monitors}, {mice}, {printers},
	{scanners}, {tape drives}, {microphones}, {speakers},
	{cameras}, to list just the less exotic ones.

	High speed working {memory}, such as {RAM}, {ROM} or, in the
	old days, {core} would not normally be referred to as
	peripherals.  The more modern term "device" is also more
	general in that it is used for things such as a {pseudo-tty},
	a {RAM drive}, or a {network adaptor}.

	Some argue that, since the advent of the {personal computer},
	the {motherboard}, {hard disk}, keyboard, mouse, and monitor
	are all parts of the base system, and only use the term
	"peripheral" for optional additional components.

	(2002-09-03)

Peripheral Component Interconnect

	<hardware> (PCI) A standard for connecting {peripherals} to a
	{personal computer}, designed by {Intel} and released around
	Autumn 1993.  PCI is supported by most major manufacturers
	including {Apple Computer}.  It is technically far superior to
	{VESA}'s {local bus}.  It runs at 20 - 33 MHz and carries 32
	bits at a time over a 124-pin connector or 64 bits over a
	188-pin connector.  An address is sent in one cycle followed
	by one word of data (or several in burst mode).

	PCI is used in systems based on {Pentium}, {Pentium Pro}, {AMD
	5x86}, {AMD K5} and {AMD K6} processors, in some {DEC Alpha}
	and {PowerPC} systems, and probably {Cyrix 586} and {Cyrix
	686} systems.  However, it is processor independent and so can
	work with other processor architectures as well.

	Technically, PCI is not a bus but a {bridge} or {mezzanine}.
	It includes buffers to decouple the {CPU} from relatively slow
	peripherals and allow them to operate asynchronously.

	(1997-12-07)

peripheral device

	{peripheral}

Peripheral Technology Group

	<company> A national and international distributor of {IBM
	PC}-to-{Unix} and {Internet} connectivity products.  They
	cater for resellers, dealers and {VARs} and are one of the top
	{Seagate} and {Micropolis} distributors in the US.

	{(http://ptgs.com/)}.

	Address: Eden Prairie, MN, USA (a suburb of Minneapolis).

	Eden Prairie ("Silicon Prairie") is the home of Digi
	International, Ontrack, Open Systems, LaserMaster, Best Buy,
	and others.

	(1995-11-29)

Perl

	<language, tool> A {high-level} programming language, started
	by {Larry Wall} in 1987 and developed as an {open source}
	project.  It has an eclectic heritage, deriving from the
	ubiquitous {C} programming language and to a lesser extent
	from {sed}, {awk}, various {Unix} {shell} languages, {Lisp},
	and at least a dozen other tools and languages.  Originally
	developed for {Unix}, it is now available for many
	{platforms}.

	Perl's elaborate support for {regular expression} matching and
	substitution has made it the {language of choice} for tasks
	involving {string manipulation}, whether for text or binary
	data.  It is particularly popular for writing {CGI scripts}.

	The language's highly flexible syntax and concise regular
	expression operators, make densely written Perl code
	indecipherable to the uninitiated.  The syntax is, however,
	really quite simple and powerful and, once the basics have
	been mastered, a joy to write.

	Perl's only {primitive} data type is the "scalar", which can
	hold a number, a string, the undefined value, or a typed
	reference.  Perl's {aggregate} data types are {arrays}, which
	are ordered lists of {scalars} indexed by {natural numbers},
	and hashes (or "{associative arrays}") which are unordered
	lists of scalars indexed by strings.  A reference can point to
	a scalar, array, hash, {function}, or {filehandle}.  {Objects}
	are implemented as references "{blessed}" with a {class} name.
	Strings in Perl are {eight-bit clean}, including {nulls}, and
	so can contain {binary data}.

	Unlike C but like most Lisp dialects, Perl internally and
	dynamically handles all memory allocation, {garbage
	collection}, and type {coercion}.

	Perl supports {closures}, {recursive functions}, {symbols}
	with either {lexical scope} or {dynamic scope}, nested {data
	structures} of arbitrary content and complexity (as lists or
	hashes of references), and packages (which can serve as
	classes, optionally inheriting {methods} from one or more
	other classes).  There is ongoing work on {threads},
	{Unicode}, {exceptions}, and {backtracking}.  Perl program
	files can contain embedded documentation in {POD} (Plain Old
	Documentation), a simple markup language.

	The normal Perl distribution contains documentation for the
	language, as well as over a hundred modules (program
	libraries).  Hundreds more are available from The
	{Comprehensive Perl Archive Network}.  Modules are themselves
	generally written in Perl, but can be implemented as
	interfaces to code in other languages, typically compiled C.

	The free availability of modules for almost any conceivable
	task, as well as the fact that Perl offers direct access to
	almost all {system calls} and places no arbitrary limits on
	data structure size or complexity, has led some to describe
	Perl, in a parody of a famous remark about {lex}, as the
	"Swiss Army chainsaw" of programming.

	The use of Perl has grown significantly since its adoption as
	the language of choice of many {World-Wide Web} developers.
	{CGI} interfaces and libraries for Perl exist for several
	{platforms} and Perl's speed and flexibility make it well
	suited for form processing and on-the-fly {web page} creation.

	Perl programs are generally stored as {text} {source} files,
	which are compiled into {virtual machine} code at run time;
	this, in combination with its rich variety of data types and
	its common use as a glue language, makes Perl somewhat hard to
	classify as either a "{scripting language}" or an
	"{applications language}" -- see {Ousterhout's dichotomy}.
	Perl programs are usually called "Perl scripts", if only for
	historical reasons.

	Version 5 was a major rewrite and enhancement of version 4,
	released sometime before November 1993.  It added real {data
	structures} by way of "references", un-adorned {subroutine}
	calls, and {method} {inheritance}.

	The spelling "Perl" is preferred over the older "PERL" (even
	though some explain the language's name as originating in the
	acronym for "Practical Extraction and Report Language").  The
	program that interprets/compiles Perl code is called
	"perl", typically "/usr/local/bin/perl" or "/usr/bin/perl".

	Latest version: 5.005_03 stable, 5.005_62 in development, as
	of 1999-12-04.

	{(http://perl.com/)}.

	{Usenet} newsgroups: {news:comp.lang.perl.announce},
	{news:comp.lang.perl.misc}.

	["Programming Perl", Larry Wall and Randal L. Schwartz,
	O'Reilly & Associates, Inc.  Sebastopol, CA.  ISBN
	0-93715-64-1].

	["Learning Perl" by Randal L. Schwartz, O'Reilly & Associates,
	Inc., Sebastopol, CA].

	[{Jargon File}]

	(1999-12-04)

Perl5

	<language, tool> A commonly used but unofficial term for 5.*
	versions of {Perl}.

	(1999-12-04)

perl-byacc

	A modified version of {byacc} that generates a {parser} in
	{Perl} code, by Rick Ohnemus <rick@imd.sterling.com>.  It has
	a "-p" switch so multiple parsers can be used in one program
	({C} or Perl).  Version 1.8.2 should work on most {Unix}
	systems.  It also works with {SAS/C} 6.x on {Amiga}.

	(1993-01-24)

Perl profiler

	<tool> (pprof) A tool by Anthony Iano-Fletcher of Nottingham
	University, UK to profile, and collate data from, {Perl}
	scripts.

	Version: 1?

	Source posted on comp.lang.perl in mid-June 1993.

	(1993-06-17)

permanent link

	<World-Wide Web> A {URL} that always points to the same piece
	of {web content}.  {Web pages} that appear for a limited time
	at their main URL, such as {web logs} or news sites, often
	display an alternative, permanent link.  Readers can quote,
	bookmark, or link to this URL in order to refer to a
	particular item, rather than the page displaying the latest
	item.

	For example, the URL http://news.bbc.co.uk/ points to the
	latest news from the BBC whereas
	http://news.bbc.co.uk/1/2614839.stm is a permanent link to a
	particular news story.

	(2003-12-27)

Permanent Virtual Circuit

	<networking> (PVC, or in {ATM} terminology, "Permanent Virtual
	Connection") A {virtual circuit} that is permanently
	established, saving the time associated with circuit
	establishment and tear-down.

	(1997-10-06)

Permanent Virtual Connection

	{Permanent Virtual Circuit}

permission

	<file system> (Or "file mode") The ability to access (read,
	write, execute, traverse, etc.) a {file} or {directory}.
	Depending on the {operating system}, each file may have
	different permissions for different kinds of access and
	different users or groups of users.

	{chmod} ("change mode") is the {UNIX} command to change
	permissions.

	(2000-12-07)

permutation

	<mathematics> 1. An ordering of a certain number of elements
	of a given set.

	For instance, the permutations of (1,2,3) are (1,2,3) (2,3,1)
	(3,1,2) (3,2,1) (1,3,2) (2,1,3).

	Permutations form one of the canonical examples of a "{group}"
	- they can be composed and you can find an inverse permutation
	that reverses the action of any given permutation.

	The number of permutations of r things taken from a set of n
	is

		n P r = n! / (n-r)!

	where "n P r" is usually written with n and r as subscripts
	and n! is the {factorial} of n.

	What the football pools call a "permutation" is not a
	permutation but a {combination} - the order does not matter.

	2. A {bijection} for which the {domain} and {range} are the
	same set and so

	f(f'(x)) = f'(f(x)) = x.

	(2001-05-10)

\perp

	{LaTeX} inverted T.  Used in {domain theory} to represent
	{bottom}.

	(1995-02-03)

perplexity

	The {geometric mean} of the number of words which may follow
	any given word for a certain {lexicon} and {grammar}.

persistence

	1. <programming> A property of a programming language where
	created objects and variables continue to exist and retain
	their values between runs of the program.

	2. <hardware> The length of time a phosphor dot on the screen
	of a {cathode ray tube} will remain illuminated after it has
	been energised by the electron beam.  Long-persistence
	phosphors reduce flicker, but generate ghost-like images that
	linger on screen for a fraction of a second.

	(1994-11-09)

persistent

	{persistence}

Persistent Functional Language

	<functional language, database> (PFL) A {functional database}
	language developed by Carol Small at Birkbeck College, London,
	UK and Alexandra Poulovassilis (now at {King's College
	London}).

	In PFL, functions are defined equationally and bulk data is
	stored using a special class of functions called selectors.
	PFL is a {lazy} language, supports {higher-order functions},
	has a strong {polymorphic} {type inference} system, and allows
	new user-defined data types and values.  All functions, types
	and values persist in a {database}.  Functions can be written
	which update all aspects of the database: by adding data to
	selectors, by defining new equations, and by introducing new
	data types and values.

	PFL is "semi-{referentially transparent}", in the sense that
	whilst updates are referentially opaque and are executed
	{destructive}ly, all evaluation is referentially transparent.
	Similarly, {type checking} is "semi-static" in the sense that
	whilst updates are dynamically type checked at run time,
	expressions are type checked before they are evaluated and no
	type errors can occur during their evaluation.

	["{A Functional Approach to Database Updates
	(http://web.dcs.bbk.ac.uk/CS/Research/DBPL/papers/INFSYS93.abs.html)}",
	C. Small, Information Systems 18(8), 1993, pp. 581-95].

	(1995-04-27)

persistent memory

	{non-volatile storage}

Personal Communication Network

	<networking> (PCN) Any {network} supporting {Personal
	Communication Service} (PCS).  Also, sometimes used to refer
	to the specific implementation (using the {GSM}-derivative
	{DCS-1800}) of initial PCS capabilities in the United Kingdom.

	(1996-08-23)

Personal Communication Services

	<communications> (PCS) Telecommunications services that bundle
	voice communications, numeric and text messaging, {voice-mail}
	and various other features into one device, service contract
	and bill.  PCS are carried over {cellular} links, most often
	digital.

	(1996-08-01)

personal computer

	<computer> (PC) A general-purpose single-user {microcomputer}
	designed to be operated by one person at a time.

	This term and the concept has been successfully hijacked by
	{IBM} due to the huge market share of the {IBM PC}, despite
	its many obvious weaknesses when compared to other equally
	valid claimants to the term, e.g. the {Acorn} {Archimedes},
	{Amiga}, {Atari}, {Macintosh}.

	(1994-11-02)

Personal Computer Memory Card International Association

	<body, hardware, standard> (PCMCIA, or "PC Card") An
	international trade association and the {standards} they have
	developed for devicies, such as {modems} and external {hard
	disk} drives, that can be plugged into {notebook computers}.
	A PCMCIA card is about the size of a credit card.

	For some unfathomable reason, around 1995(?) they decided to
	rename PCMCIA cards "PC Cards", perhaps to encourage sales to
	confused purchasers.

	{(ftp://ftp.sidewinder.com/pub/Portables/PCMCIA)}.

	Address: PCMCIA Administration, 1030 East Duane Avenue, Suite
	G, Sunnyvale, CA 94086 USA.

	Telephone: +1 (408) 720 0107.  Fax: +1 (408) 720 9416.  BBS:
	+1 (408) 720 9388.

	(1996-10-16)

Personal Digital Assistant

	<computer> (PDA) A small hand-held computer typically
	providing calendar, contacts, and note-taking applications but
	may include other applications, for example a {web browser}
	and {media player}.  Small keyboards and pen-based input
	systems are most commonly used for user input.

	The {Apple Newton} was a fairly early example.

	[First?  Notable examples?  Current Best?]

	(2002-09-03)

Personal Identification Number

	<security> (PIN, "PIN number") A {password}, typically four
	digits entered through a telephone keypad or automatic teller
	machine.

	(1996-11-03)

Personalized Array Translator

	<language> (PAT) A small subset of {APL}.

	E-mail: <oed@watsol.uwaterloo.ca>.

	[Sammet 1969, p. 252].

	(1998-05-09)

person of no account

	(University of California at Santa Cruz) Used when referring
	to a person with no {network address}, frequently to forestall
	confusion.  Most often as part of an introduction: "This is
	Bill, a person of no account, but he used to be
	bill@random.com".

	Compare {return from the dead}.

	[{Jargon File}]

	(1994-11-22)

perspective

	<games> In computer games, the {virtual} position from which
	the human player views the playing area.  There are three
	different perspectives: first person, second person, and third
	person.

	First person perspective: Viewing the world through the eyes
	of the primary character in three dimensions.  e.g. Doom,
	Quake.

	Second person perspective: Viewing the game through a
	spectator's eyes, in two or three dimensions.  Depending on
	the game, the main character is always in view. e.g. Super
	Mario Bros., Tomb Raider.

	Third person perspective: a point of view which is independent
	of where characters or playing units are.  The gaming world is
	viewed much as a satellite would view a battlefield.
	E.g. Warcraft, Command & Conquer.

	(1997-06-19)

PERT

	{Program Evaluation and Review Technique}

pessimal

	/pes'im-l/ (Latin-based antonym for "optimal") Maximally bad.
	"This is a pessimal situation."  Also "pessimise" To make as
	bad as possible.  These words are the obvious Latin-based
	antonyms for "optimal" and "optimise", but for some reason
	they do not appear in most English dictionaries, although
	"pessimise" is listed in the OED.

	[{Jargon File}]

	(1995-02-01)

pessimising compiler

	/pes'*-mi:z"ing k*m-pi:l"r/ (Antonym of "{optimising
	compiler}") A {compiler} that produces {object code} that is
	worse than the straightforward or obvious hand translation.
	The implication is that the compiler is actually trying to
	optimise the program, but through excessive cleverness is
	doing the opposite.  A few pessimizing compilers have been
	written on purpose, however, as pranks or burlesques.

	(1995-02-01)

peta-

	{prefix}

petabyte

	<unit, data> (PB) A unit of data equal to one quadrillion {bytes}
	but see {binary prefix} for other definitions.  A petabyte is
	10^15 bytes or 1000^5 bytes or 1000 {terabytes}.

	As of 2013-11-05, the {Internet Archive} {Wayback Machine}
	contains almost two petabytes of data.

	A petabyte is the amount of data that would be required to store a
	2000 by 1600 pixel image of every one of the 314 million people
	living in the USA in 2012.

	1000 petabytes are one {exabyte}.

	See {prefix}.

	(2007-09-13)

petaflops

	<unit> 10^15 {flops} or 1000 {teraflops}.

	As with {flops}, the term ends in S in both the singular and
	plural as the S stands for seconds.

	The first computer to perform one petaflops was recorded in {June
	2008 (http://top500.org/list/2008/06/100)}.  By {June 2012
	(http://top500.org/list/2012/06/100)} there were 20.

	(2013-04-27)

petdingo

	<tool> An {Estelle} to {C++} translator.

	(1997-01-24)

Peter Chen

	<person> The developer of the {Entity-Relationship model}.

	(1995-02-07)

Petri net

	<parallel, simulation> A {directed}, {bipartite graph} in
	which nodes are either "places" (represented by circles) or
	"transitions" (represented by rectangles), invented by Carl
	Adam Petri.  A Petri net is marked by placing "tokens" on
	places.  When all the places with arcs to a transition (its
	input places) have a token, the transition "fires", removing a
	token from each input place and adding a token to each place
	pointed to by the transition (its output places).

	Petri nets are used to model {concurrent} systems,
	particularly {network} {protocols}.

	Variants on the basic idea include the {coloured Petri Net},
	{Time Petri Net}, {Timed Petri Net}, {Stochastic Petri Net},
	and {Predicate Transition Net}.

	{FAQ (http://daimi.aau.dk/PetriNets/faq/answers.htm)}.

	(1996-09-10)

PETSCII

	<character> /pet'skee/ {PET} {ASCII}.  The variation (many
	would say perversion) of the ASCII {character set} used by the
	{Commodore Business Machines}' {PET} series of {personal
	computers} and the later {Commodore 64}, {Commodore 16}, and
	{Commodore 128} computers.  The PETSCII set used left-arrow
	and up-arrow (as in old-style ASCII) instead of underscore and
	caret, placed the unshifted alphabet at positions 65--90, put
	the shifted alphabet at positions 193--218, and added {graphic
	characters}.

	[{Jargon File}]

	(1995-10-29)

PEX

	(PHIGS Extension to X) Extension to the {X Window System}
	providing 3d graphics support.

pf

	<networking> The {country code} for French Polynesia.

	(1999-01-27)

PFE

	1. <text, editor> {Programmer's File Editor}.

	2. <language> {Portable Forth Environment}.

	(2000-12-07)

PFL

	1. <language> A concurrent extension of {ML} by Holmstrom and
	Matthews, using {CCS}.

	["PFL: A Functional Language for Parallel Programming",
	S. Holmstrom in Proc Declarative Language Workshop, London
	1983].

	2. <language, database> {Persistent Functional Language}.

pfm

	{program file manager}

pForth

	<language> A portable (hence the "p") {ANS}-standard {Forth}
	implemented in {ANSI C}.  {Phil Burk
	(http://softsynth.com/philburk.html)} initially began
	developing pForth in 1994 to support ASIC development at
	{3DO}.

	(1998-06-30)

Pfortran

	{Parallel Fortran}

PFP

	{Plastic Flat Package}

pg

	<networking> The {country code} for Papua New Guinea.

	(1999-01-27)

PGA

	1. <graphics, specification> {Professional Graphics Adapter}.

	2. <hardware> {Pin Grid Array}.

	(1999-08-04)

PGA370

	{Socket 370}

PGP

	{Pretty Good Privacy}

PH

	<tool> The tool for looking up people in Eudora on the
	{Macintosh}.  Equivalent to {Unix}'s {finger} service.

	(1995-03-31)

pH

	{Parallel Haskell}

ph

	<networking> The {country code} for the Philippines.

	(1999-01-27)

phacker

	<communications, security> A telephone system {cracker}.  A
	phacker may attempt to gain unauthorised access to a phone
	system in order to make free or untraceable calls or he may
	disrupt, alter or illegally tap phone systems via computer.

	The disruptions may include causing a phone line to be engaged
	so no calls go in or out, redirecting outgoing or incoming
	calls, as well as listening to actual calls made.

	Phackers are frequently confidence tricksters or phone freaks
	(nuisance callers who can only relate to other people by
	phone).  Phackers are sometimes employed by illegal
	enterprises to conduct business using untraceable calls, or to
	disrupt, or follow legal authorities' investigations.
	Phackers interventions may be lethal to the person being
	phacked.

	A phacker may be a phone company employee, or usually,
	ex-employee who specialises in illegal phone system
	disruption, alteration or tapping via physically altering
	installations.  A phacker is generally considered to be a
	socially and intellectually retarded cracker.

	See {Captain Crunch}.

	(1998-08-09)

phage

	A program that modifies other programs or databases in
	unauthorised ways; especially one that propagates a {virus} or
	{Trojan horse}.  See also {worm}, {mockingbird}.  The
	analogy, of course, is with phage viruses in biology.

	[{Jargon File}]

phase

	1. The offset of one's waking-sleeping schedule with respect
	to the standard 24-hour cycle; a useful concept among people
	who often work at night and/or according to no fixed schedule.
	It is not uncommon to change one's phase by as much as 6 hours
	per day on a regular basis.  "What's your phase?"  "I've been
	getting in about 8 P.M. lately, but I'm going to {wrap around}
	to the day schedule by Friday."  A person who is roughly 12
	hours out of phase is sometimes said to be in "night mode".
	(The term "day mode" is also (but less frequently) used,
	meaning you're working 9 to 5 (or, more likely, 10 to 6).)
	The act of altering one's cycle is called "changing phase";
	"phase shifting" has also been recently reported from Caltech.

	2. "change phase the hard way": To stay awake for a very long
	time in order to get into a different phase.

	3. "change phase the easy way": To stay asleep, etc.  However,
	some claim that either staying awake longer or sleeping longer
	is easy, and that it is *shortening* your day or night that is
	really hard (see {wrap around}).  The "jet lag" that afflicts
	travelers who cross many time-zone boundaries may be
	attributed to two distinct causes: the strain of travel per
	se, and the strain of changing phase.  Hackers who suddenly
	find that they must change phase drastically in a short period
	of time, particularly the hard way, experience something very
	like jet lag without travelling.

phase alternating line

	<television> (PAL) The {video} signal format used in the UK
	[where else?].

	PAL uses {Amplitude Modulation} for the video information, and
	{Frequency Modulation} for the {audio} information.  The phase
	of the {colour subcarrier} is reversed on alternate lines
	which (together with the use of a delay line) allows the
	receiver to cancel any phase errors introduced in the path
	between the studio and the end-user's receiver.  Such phase
	errors are quite common and would cause the displayed colours
	to shift in {hue}.

	The US equivalent, {NTSC}, does not have this feature and thus
	requires a user control to correct for transmission phase
	errors, hence the mis-expansion "Never Twice the Same Colour".

	(2001-06-08)

Phase Encoded

	<storage> (PE) A recording method used for 1600 BPI {magnetic
	tapes}.

	Compare {NRZI}, {GCR}.

	(1996-02-03)

phase of the moon

	Used humorously as a random parameter on which something is
	said to depend.  Sometimes implies unreliability of whatever
	is dependent, or that reliability seems to be dependent on
	conditions nobody has been able to determine.  "This feature
	depends on having the channel open in mumble mode, having the
	foo switch set, and on the phase of the moon."

	See also {heisenbug}.

	True story: Once upon a time there was a {bug} that really did
	depend on the phase of the moon.  There was a little
	subroutine that had traditionally been used in various
	programs at {MIT} to calculate an approximation to the moon's
	true phase.  {GLS} incorporated this routine into a {Lisp}
	program that, when it wrote out a file, would print a
	timestamp line almost 80 characters long.  Very occasionally
	the first line of the message would be too long and would
	overflow onto the next line, and when the file was later read
	back in the program would {barf}.  The length of the first
	line depended on both the precise date and time and the length
	of the phase specification when the timestamp was printed, and
	so the bug literally depended on the phase of the moon!

	The first paper edition of the {Jargon File} (Steele-1983)
	included an example of one of the timestamp lines that
	exhibited this bug, but the typesetter "corrected" it.  This
	has since been described as the phase-of-the-moon-bug bug.

	[{Jargon File}]

	(1995-02-22)

phase-shift keying

	<communications> (PSK) A {digital modulation} scheme that
	conveys data by changing the {phase} of a {carrier} wave.  The
	data can either determine the absolute phase relative to the
	unmodulated carrier or reference signal ("coherent phase-shift
	keying", CPSK) or the change in phase ("differential
	phase-shift keying", DPSK).  The number of different phases
	used determines the amount of data that can be transmitted in
	each cycle.  Each cycle can be considered to constitute one
	"symbol", e.g. with two possible phases, each cycle carries
	one {bit}.  The more phases that are used, the less tollerant
	to noise the transmissions becomes.

	Alternatives to PSK are {amplitude-shift keying} (ASK) and
	{frequency-shift keying} (FSK).

	(2010-01-26)

phase space

	<mathematics> The 2n-dimensional space consisting of the
	possible values of (x1, x1., x2, x2., ..., xn, xn.) for a
	system of n first-order {ordinary differential equations} (or
	more generally, {Pfaffian forms}).

	If n=1, the phase space is known as a phase plane.

	{(http://mathworld.wolfram.com/PhaseSpace.html)}.

	(2008-05-02)

phase-wrapping

	({MIT}) {wrap around}.

	[{Jargon File}]

	(1995-02-22)

PHIGS

	{Programmers Hierarchical Interactive Graphics System}

Philip R. Bagley

	<person> A pioneer of computer document retrieval.  See
	{metadata}.

	(2010-05-15)

Philips

	<company> A Dutch multinational electronics company.  It
	produces washing machines, consumer electronics, {integrated
	circuits} and light bulbs.  Together with {Sony} they set the
	{Compact Disc} standard, especially {Green Book CD-ROM}.  They
	are members of the {Open Software Foundation}.  Philips
	Research Labs developed the {POOL} and {SPL} languages.

	Address: Philips Research Labs, Eindhoven, Netherlands.

	(1995-02-07)

Philips SCC68070

	<processor> A {microprocessor} which is {object code}
	compatible with the {Motorola 68000}.  It is not a performance
	improvement over the 68060; it's performance rather resembles
	that of the 68000.

	(1995-04-22)

philosophy

	See {computer ethics}, {liar paradox}, {netiquette}, {proof}.

phishing

	<security> ("brand spoofing", "carding", after "fishing")
	/fishing/ Sending {e-mail} that claims to be from some
	well-known organisation, e.g. a bank, to trick the recipient
	into revealing information for use in {identity theft}.  The
	user is told to visit a {web site} where they are asked to
	enter information such as passwords, credit card details,
	social security or bank account numbers.  The web site usually
	looks like it belongs to the organisation in question and may
	silently redirect the user to the real web site after
	collecting their data.

	For example, a scam started in 2003 claimed that the user's
	eBay account would be suspended unless he updated his credit
	card information on a given web site.

	(2006-01-19)

PHOCUS

	An {object-oriented} {Prolog}-like language.

	["PHOCUS: Production Rules, Horn Clauses, Objects and Contexts
	in a Unification Based System", D. Chan et al, Actes du Sem
	Prog et Logique, Tregastel (May 1987), pp. 77-108].

	(1994-11-09)

Phoenix

	<operating system> An {operating system}, built in {BCPL} on
	top of {IBM} {MVT} and later {MVS} by {Cambridge University}
	Computing Service from 1973 to 1995, which ran on the
	university central {mainframe}.  All parts of the system were
	named after birds, including Eagle (the {job scheduler}, also
	the nearest pub), Pigeon (the mailer), {GCAL} (the text
	processor) and Wren (the command language), leading to Wren
	Libraries (a local pun).

	Phoenix was much used by {chemists} in daytime and by the rest
	of the university in the evenings, and was only abandoned in
	favour of {Unix} in 1995; it is one reason Cambridge
	made little contribution to Unix until then.

	{Computing Service Phoenix closure memo
	(http://cam.ac.uk/cs/newsletter/1995/nl183/phoenix.html)}

	(2003-12-05)

phone mail

	{voice mail}

Phonetastic

	<communications> A {CTI} product from {Callware}.  Phonetastic
	employs if-then rules and customer records to tell those
	receiving calls who is calling (based on {ANI} and {DNIS}) and
	to determine how the call should be routed, e.g. to a certain
	sales representative or to the general sales department;
	receive high-priority treatment; receive a fax-back, etc.

	(1996-12-08)

Phong shading

	<graphics> A model of how light is reflected from surfaces
	used extensively in three dimensional graphics to generate
	visually realistic images.

	[Details?]

	(1994-11-09)

phosphor fatigue

	{screen saver}

photo CD

	<multimedia, specification, standard, storage, graphics> A
	{standard} for storing photographic images on {CD-ROM},
	produced by {Kodak}.

	{Kodak Photo CD page
	(http://kodak.com/digitalImaging/aboutPhotoCD/aboutPCD.shtml)}.

	(1995-12-12)

Photoshop

	<graphics, tool> An image manipulation program by {Adobe
	Systems, Inc.}.

	{(http://adobe.com/Apps/Photoshop.html)}.

	[Summary?]

	(1995-07-05)

PHP

	{PHP: Hypertext Preprocessor}

PHP: Hypertext Preprocessor

	<World-Wide Web, programming> (PHP) An {Open Source},
	{server-side}, {cross-platform}, {scripting language} used to
	create dynamic {web pages}.

	PHP can be embedded in {HTML} using special tags like:

	 <?php echo '<p>Hello World</p>'; ?>

	This is stored in a file with a ".php" extension.  The {web
	server} passes the file to the PHP {interpreter} which
	executes the code in the <?php ... ?> tags.  The tagged code
	is then replaced with its output, typically ordinary HTML, in
	the response sent to the {web browser}.

	PHP is a {recursive acronym}.

	Latest version: 5.3.2 2010-03-04, as of 2010-03-20.

	{PHP Home (http://php.net/)}.

	{Cheat sheet
	(http://addedbytes.com/cheat-sheets/php-cheat-sheet/)}.

	(2010-03-20)

phreaking

	<jargon> /freek'ing/ "phone phreak" 1. The art and science of
	{cracking} the telephone network so as, for example, to make
	free long-distance calls.

	2. By extension, security-{cracking} in any other context
	(especially, but not exclusively, on communications networks).

	At one time phreaking was a semi-respectable activity among
	hackers; there was a gentleman's agreement that phreaking as
	an intellectual game and a form of exploration was OK, but
	serious theft of services was taboo.  There was significant
	crossover between the hacker community and the hard-core phone
	phreaks who ran semi-underground networks of their own through
	such media as the legendary "TAP Newsletter".

	This ethos began to break down in the mid-1980s as wider
	dissemination of the techniques put them in the hands of less
	responsible phreaks.  Around the same time, changes in the
	phone network made old-style technical ingenuity less
	effective as a way of hacking it, so phreaking came to depend
	more on overtly criminal acts such as stealing phone-card
	numbers.

	The crimes and punishments of gangs like the "414 group"
	turned that game very ugly.  A few old-time hackers still
	phreak casually just to keep their hand in, but most these
	days have hardly even heard of "blue boxes" or any of the
	other paraphernalia of the great phreaks of yore.

	[{Jargon File}]

	(1994-11-09)

physical

	<jargon> The opposite of {logical} in its jargon sense.
	Compare {real}, {virtual}, and {transparent}.

	It is said that what you can touch and see is real; what you
	can see but not touch is virtual; what you can touch but not
	see is transparent; and what you can neither touch nor see is
	probably imaginary.

	(2001-10-26)

physical address

	<memory management> The address presented to a computer's main
	memory in a {virtual memory} system, in contrast to the
	{virtual address} which is the address generated by the {CPU}.
	A {memory management unit} translates virtual addresses into
	physical addresses.

	(1995-03-31)

physical addressing

	<networking> The low level addressing scheme used on
	{Ethernet}.  The 48-bit destination {Ethernet address} in a
	{packet} is compared with the receiving node's Ethernet
	address.

	Compare {IP address}.

	(1994-12-23)

physical file

	<file system> A low-level view of the physical characteristics
	of a {file}, such as its location on a {disk} or its physical
	structure, for example, whether indexed or sequential.

	(2004-12-23)

physical layer

	<networking> Layer one, the lowest layer in the {OSI} seven
	layer model.  The physical layer encompasses details such as
	electrical and mechanical connections to the network,
	transmission of {binary} data as changing voltage levels on
	wires or similar concepts on other connectors, and {data
	rates}.

	The physical layer is used by the {data link layer}.

	Example physical layer {protocols} are {CSMA/CD}, {token ring}
	and bus.

	(2004-06-29)

physical memory

	<memory management> The memory hardware (normally {RAM})
	installed in a computer.  The term is only used in contrast to
	{virtual memory}.

	(1996-03-23)

physical memory address

	{physical address}

Physical Sequential

	<file format> (PS, QSAM, Queued Sequential Access Method) The
	simplest {data set} on an {IBM} {mainframe}.  Sequential files
	can only be read or written from the beginning: they do not
	support {random access}.

	[Why "Queued"?]

	(2003-12-05)

Physical Transport Network

	<communications> (PTN) The actual {hardware} through which
	data transfer devices are connected.

	{Virtual Circuits} may be leased by the owner of the physical
	network to organisations which cannot afford the high costs of
	laying long distance cable.

	(2003-11-23)

Physics Analysis Workbench

	<tool> (PAW) A general purpose portable tool for analysis and
	presentation of physics data.

	(1994-11-28)

PI

	<graphical user interface, programming> An {interface} between
	{Prolog} {application programs} and the {X Window System} that
	aims to be independent from the {Prolog} {engine}, provided that
	it has a {Quintus} {foreign function} interface (e.g. {SICStus}
	and {YAP}).  PI is mostly written in {Prolog} and is divided in
	two libraries: Edipo - the lower level interface to the {Xlib}
	functions; and Ytoolkit - the higher level user interface toolkit.

	{(ftp://ftp.ncc.up.pt/pub/prolog/ytoolkit.tar.Z)}.

	E-mail: Ze' Paulo Leal <zp@ncc.up.pt>.

	(1993-03-02)

pi

	1. <character> The greek lower-case letter P.

	2. <mathematics> The mathematical constant that is the
	circumference of a circle divided by its diameter.  Pi is written
	as the greek character pi.

	Some have suggested that pi is the wrong choice and a better
	constant to describe the geometry of circles would have been 2*pi,
	for which they have proposed the name {tau}.  Most practising
	mathematicians think this is silly.  The {xkcd} comic strip
	{proposed (http://xkcd.com/1292/)} a compromise between pi and
	tau, namely 1.5*pi or "pau".

	(2013-12-09)

PIC

	1. <hardware> {programmable interrupt controller}.

	2. A graphics language by {Brian Kernighan}, for textually
	describing pictures with {troff}.

	[Featured in "More Programming Pearls", Jon Bentley].

	["PIC - A Language for Typesetting Graphics", B.W. Kernighan,
	Soft Prac & Exp 12(1):1-21 (Jan 1982)].

	["PIC - A Graphics Language for Typesetting, Revised User
	Manual", Bell Labs TR 116, Dec 1984].

	(1994-10-28)

	3. {personal intelligent communicator}.

	(2001-04-30)

pi-calculus

	<theory> A {process algebra} in which channel names can act
	both as transmission medium and as transmitted data.  Its
	basic atomic actions are individual point to point
	communications which are {nondeterministic}ally selected and
	globally sequentialised.

	[Details?  Examples?]

	(1995-03-20)

Pick BASIC

	{Data/BASIC}

PICL

	Language on {Ncube} or {iPSC} machines?

PICNIC

	{PEBCAK}

pico-

	{prefix}

picosecond

	<unit> 10^-12 seconds.

	(1997-04-26)

PICS

	{Platform for Internet Content Selection}

PICT

	<file format> An {Apple} graphics format.

	[Details?]

	(1997-06-06)

PicTeX

	A version of {TeX} for pictures.

	{(ftp://june.cs.washington.edu/tex/PiCTeX.tar.Z)}.

pictogram

	<text> (Or "pictograph") A {symbol} which is a picture that
	represents an object or concept, e.g. a picture of an envelope
	used to represent an {e-mail message}.

	Pictograms are common in everyday life, e.g. signs in public
	places or roads, whereas the term "{icon}" is specific to
	interfaces on computers or other electronic devices.

	Compare: {ideogram}.

	(2005-04-05)

pictograph

	{pictogram}

Pictorial Janus

	K. Kahn, Xerox.  Visual extension of Janus.  Requires
	Strand88 and a PostScript interpreter.

picture

	{image}

picture element

	<graphics> (pixel) The smallest resolvable rectangular area of
	an {image}, either on a screen or stored in memory.  Each
	pixel in a {monochrome} image has its own brightness, from 0
	for black to the maximum value (e.g. 255 for an eight-bit
	pixel) for white.  In a colour image, each pixel has its own
	brightness and colour, usually represented as a triple of red,
	green and blue intensities (see {RGB}).

	Compare {voxel}.

	(1998-05-08)

Picture Quality Scale

	<graphics> (PQS) A system for rating image quality based upon
	features of images that affect their perception by the human
	eye, rather than the traditional {signal-to-noise ratio} which
	examines differences for every single {pixel}.

	[Details?]

	(1995-01-12)

PID

	{process identifier}

pidgen+

	<language> A language for the {Apple II}.

	{(ftp://ftp.wustl.edu/system/apple2/Lang/pidgen/)}.

	[Published in Dr. Dobbs Journal?]

	(1994-11-29)

Pidgin

	<software, communications> A {text chat} {application} that
	work with many different chat systems at the same time.
	Systems it works with include {AOL} Instant Messenger, Yahoo!
	Messenger, Windows Live Messenger, {IRC} and {Facebook}.
	There are {plug-ins} to add even more systems, e.g. {Skype}
	and to add features.

	Pidgin was first released in 1998.  The name "Pidgin" was
	applied in 2007.  It is available for several {operating
	systems}.  It is licensed under the {GNU General Public
	License}.

	The name "Pidgin" comes from the term for a simplified human
	language that evolves from two or more languages.

	{Pidgin Home (http://pidgin.im/)}.

	(2012-04-15)

PIE

	A language from {CMU} similar to {Actus}.

	(1994-11-29)

pif

	{Program Information File}

piggybacking

	1. A method for passing {acknowledgement frames} and {data
	frames} in the same direction along a line.

	2. The practice of increasing memory capacity by soldering
	chips on top of other chips.  The chip-enable or high address
	pins would be connected to the {address bus} by a flying lead.
	Many {Ohio Superboards} were expanded to a massive 8K of {RAM}
	in this way.

	(1994-11-29)

pig, run like a

	To run very slowly on given hardware, said of software.
	Distinct from {hog}.

	[{Jargon File}]

	(1994-11-29)

PIGUI

	{Platform Independent Graphical User Interface}

PIL

	Procedure Implementation Language.

	A subsystem of {DOCUS}.

	[Sammet 1969, p.678].

	(1994-11-29)

PILE

	1. Polytechnic's Instructional Language for Educators.
	Similar in use to an enhanced PILOT, but structurally more
	like Pascal with Awk-like associative arrays (optionally
	stored on disk).  Distributed to about 50 sites by Initial
	Teaching Alphabet Foundation for Apple II and CP/M.

	["A Universal Computer Aided Instruction System," Henry
	G. Dietz & Ronald J Juels, Proc Natl Educ Computing Conf '83,
	pp.279-282].

	2. <language, music> ["PILE _ A Language for Sound Synthesis",
	P. Berg, Computer Music Journal 3.1, 1979].

	(1999-06-04)

PIL/I

	Variant of JOSS.  Sammet 1969, p.217.

PILOT

	Programmed Inquiry Learning Or Teaching.  CAI language, many
	versions.  "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J
	(Apr 1977).

pilot error

	<jargon> ({Sun}, from aviation) A user's misconfiguration or
	misuse of a piece of software, producing apparently {bug}-like
	results.

	E.g. "Joe Luser reported a bug in sendmail that causes it to
	generate bogus headers."  "That's not a bug, that's pilot
	error.  His "sendmail.cf" is hosed."

	Compare {UBD}.

	[{Jargon File}]

	(1994-12-05)

Pilot European Image Processing Archive

	(PEIPA) An archive devoted to {image processing}, {computer
	vision}, and {computer graphics}.  It includes software,
	images, reference material, and miscellaneous goodies.

	The archive is funded by the {British Machine Vision
	Association} (BMVA) and the {University of Essex} and is
	closely associated with the {Pixel} {mailing list} and
	Technical Committee 5 (Benchmarking and Software) of the
	{IAPR}.

	{(http://peipa.essex.ac.uk/)}.

PIM

	1. {Personal Information Manager}.

	2. {Product Information Management}.

	(1997-02-11)

PIN

	{Personal Identification Number}

PINBOL

	<language, games> A {decision table} language for controlling
	pinball machines used at Atari.  PINBOL included a
	{multitasking} executive and an {interpreter} that worked on
	data structures compiled from condition:action lists.

	(1996-11-03)

Pine

	Program for Internet News & Email.  A tool for reading,
	sending, and managing electronic messages.  It was designed
	specifically with novice computer users in mind, but can be
	tailored to accommodate the needs of "power users" as well.
	Pine uses {Internet} message {protocols} (e.g. {RFC 822},
	{SMTP}, {MIME}, {IMAP}, {NNTP}) and runs under {Unix} and
	{MS-DOS}.

	The guiding principles for Pine's user-interface were: careful
	limitation of features, one-character mnemonic commands,
	always-present command menus, immediate user feedback, and
	high tolerance for user mistakes.  It is intended that Pine
	can be learned by exploration rather than reading manuals.
	Feedback from the {University of Washington} community and a
	growing number of {Internet} sites has been encouraging.

	Pine's message composition editor, {Pico}, is also available
	as a separate stand-alone program.  Pico is a very simple and
	easy-to-use {text editor} offering paragraph justification,
	cut/paste, and a spelling checker.

	Pine features on-line help; a message index showing a message
	summary which includes the status, sender, size, date and
	subject of messages; commands to view and process messages; a
	message composer with easy-to-use editor and spelling checker;
	an address book for saving long complex addresses and personal
	distribution lists under a nickname; message attachments via
	{Multipurpose Internet Mail Extensions}; {folder} management
	commands for creating, deleting, listing, or renaming message
	folders; access to remote message folders and archives via the
	{Interactive Mail Access Protocol} as defined in {RFC 1176};
	access to {Usenet} news via {NNTP} or {IMAP}.

	Pine, {Pico} and {UW}'s {IMAP} {server} are copyrighted but
	freely available.

	{Unix} Pine runs on {Ultrix}, {AIX}, {SunOS}, {SVR4} and
	{PTX}.  PC-Pine is available for {Packet Driver}, {Novell
	LWP}, {FTP PC/TCP} and {Sun} {PC/NFS}.  A {Microsoft
	Windows}/{WinSock} version is planned, as are extensions for
	off-line use.

	Pine was originally based on {Elm} but has evolved much since
	("Pine Is No-longer Elm").  Pine is the work of Mike Seibel,
	Mark Crispin, Steve Hubert, Sheryl Erez, David Miller and
	Laurence Lundblade (now at Virginia Tech) at the University of
	Washington Office of Computing and Communications.

	{(ftp://ftp.cac.washington.edu/mail/pine.tar.Z)}.
	{(telnet://demo.cac.washington.edu/)} (login as "pinedemo").

	E-mail: <pine@cac.washington.edu>,
	<pine-info-request@cac.washington.edu>,
	<pine-announce-request@cac.washington.edu>.

	(21 Sep 93)

pin feed

	{sprocket feed}

ping

	<networking, tool> (ping, originally contrived to match
	submariners' term for the sound of a returned sonar pulse) A
	program written in 1983 by Mike Muuss (who also wrote {TTCP})
	used to test reachability of destinations by sending them one,
	or repeated, {ICMP} echo requests and waiting for replies.
	Since ping works at the {IP} level its server-side is often
	implemented entirely within the {operating system} {kernel}
	and is thus the lowest level test of whether a remote host is
	alive.  Ping will often respond even when higher level,
	{TCP}-based services cannot.

	Sadly, Mike Muuss was killed in a road accident on 2000-11-20.

	The term is also used as a verb: "Ping host X to see if it is
	up."

	The {Unix} command "ping" can be used to do this and to
	measure round-trip delays.

	The funniest use of "ping" was described in January 1991 by
	Steve Hayman on the {Usenet} group comp.sys.next.  He was
	trying to isolate a faulty cable segment on a {TCP/IP}
	{Ethernet} hooked up to a {NeXT} machine.  Using the sound
	recording feature on the NeXT, he wrote a {script} that
	repeatedly invoked ping, listened for an echo, and played back
	the recording on each returned {packet}.  This caused the
	machine to repeat, over and over, "Ping ... ping ... ping ..."
	as long as the network was up.  He turned the volume to
	maximum, ferreted through the building with one ear cocked,
	and found a faulty tee connector in no time.

	Ping did not stand for "Packet InterNet Groper", Dave Mills
	offered this {backronym} expansion some time later.

	See also {ACK}, {ENQ}, {traceroute}, {spray}.

	{The Story of the Ping Program
	(http://ftp.arl.mil/~mike/ping.html)}.

	{Unix manual page}: ping(8).

	(2005-06-22)

ping command

	{ping}

ping-flood

	<networking> To {flood} another user with {ping} requests.

	(1997-04-07)

pinging

	{ping}

ping-pong

	<architecture> A phenomenon which can occur in a
	{multi-processor} system with {private caches} where two
	processors are alternately caching a shared location.  Each
	time one writes to it, it invalidates the other's copy.

	(1995-12-29)

Pin Grid Array

	<hardware> (PGA) A style of {integrated circuit} socket or
	pin-out with pins laid out on a square or rectangular grid
	with a separation of 0.1 inch in each direction.  The pins
	near the centre of the array are often missing.

	PGA is often used on {motherboards} for {processors}, e.g.
	{Socket 6} and {Socket 8}.

	PPGA is "plastic PGA" (as opposed to ceramic?).

	See also {SPGA}.

	(2000-03-09)

Pink-Shirt Book

	<publication> "The Peter Norton Programmer's Guide to the IBM
	PC".

	The original cover featured a picture of Peter Norton with a
	silly smirk on his face, wearing a pink shirt.  Perhaps in
	recognition of this usage, the current edition has a different
	picture of Norton wearing a pink shirt.

	See also {book titles}.

	[{Jargon File}]

	(1995-03-28)

pin-out

	<hardware> (Or "pinout") The allocation of logical functions
	or signals to the electrical connection points (pins) of an
	{integrated circuit} or other component or connector.

	(1996-04-04)

PIO mode

	{programmed input/output mode}

PIP

	<tool> Peripheral Interchange Program.

	A program on {CP/M}, {RSX-11}, {RSTS/E}, {TOPS-10}, and {OS/8}
	(derived from a utility on the {PDP-6}) that was used for file
	copying (and in OS/8 and RT-11 for just about every other file
	operation you might want to do).  It is said that when the
	program was written, during the development of the PDP-6 in
	1963, it was called ATLATL ("Anything, Lord, to Anything,
	Lord"; this played on the Nahuatl word "atlatl" for a
	spear-thrower, with connotations of utility and primitivity
	that were no doubt quite intentional).

	See also {BLT}, {dd}, {cat}.

	[{Jargon File}]

	(1995-03-28)

pipe

	1. <operating system> One of {Unix}'s buffers which can be
	written to by one {asynchronous} process and read by another,
	with the {kernel} suspending and waking up the sender and
	receiver according to how full the pipe is.  In later versions
	of Unix, rather than using an anonymous kernel-managed
	temporary file to implement a pipe, it can be named and is
	implemented as a local {socket} pair.

	2. <character> "|" {ASCII} character 124.  Used to represent a
	pipe between two processes in a {shell} command line.  E.g.

		grep foo log | more

	which feeds the output of grep into the input of more without
	requiring a named temporary file and without waiting for the
	first process to finish.

	3. <jargon, networking> A connection to a {network}.

	See also {light pipe}.

	(1996-09-24)

pipeline

	<architecture> A sequence of {functional units} ("stages")
	which performs a task in several steps, like an assembly line
	in a factory.  Each functional unit takes inputs and produces
	outputs which are stored in its output {buffer}.  One stage's
	output buffer is the next stage's input buffer.  This
	arrangement allows all the stages to work in parallel thus
	giving greater throughput than if each input had to pass
	through the whole pipeline before the next input could enter.

	The costs are greater latency and complexity due to the need
	to synchronise the stages in some way so that different inputs
	do not interfere.  The pipeline will only work at full
	efficiency if it can be filled and emptied at the same rate
	that it can process.

	Pipelines may be synchronous or asynchronous.  A synchronous
	pipeline has a master clock and each stage must complete its
	work within one cycle.  The minimum clock period is thus
	determined by the slowest stage.  An asynchronous pipeline
	requires {handshaking} between stages so that a new output is
	not written to the interstage buffer before the previous one
	has been used.

	Many {CPUs} are arranged as one or more pipelines, with
	different stages performing tasks such as fetch instruction,
	decode instruction, fetch arguments, arithmetic operations,
	store results.  For maximum performance, these rely on a
	continuous stream of instructions fetched from sequential
	locations in memory.  Pipelining is often combined with
	{instruction prefetch} in an attempt to keep the pipeline
	busy.

	When a {branch} is taken, the contents of early stages will
	contain instructions from locations after the branch which
	should not be executed.  The pipeline then has to be flushed
	and reloaded.  This is known as a {pipeline break}.

	(1996-10-13)

pipeline break

	<architecture> (Or "pipeline stall") The delay caused on a
	processor using {pipelines} when a {transfer of control} is
	taken.  Normally when a control-transfer instruction (a
	branch, conditional branch, call or trap) is taken, any
	following instructions which have been loaded into the
	processor's {pipeline} must be discarded or "flushed" and new
	instructions loaded from the branch destination.  This
	introduces a delay before the processor can resume execution.

	"{Delayed control-transfer}" is a technique used to reduce
	this effect.

	(1996-10-13)

Pipeline Burst Cache

	<hardware, storage> (PB Cache) A {synchronous cache} built
	from {pipelined} {SRAM}.

	A {cache} in which reading or writing a new location takes
	multiple {cycles} but subsequent locations can be accessed in
	a single {cycle}.  On {Pentium} systems in 1996, pipeline burst
	caches are frequently used as {secondary caches}.  The first 8
	{bytes} of data are transferred in 3 {CPU} {cycles}, and the
	next 3 8-{byte} pieces of data are transferred in one {cycle}
	each.

	(1996-10-13)

pipelined

	{pipeline}

Pipelined Burst Cache

	{Pipeline Burst Cache}

pipeline stall

	{pipeline break}

pipelining

	{pipeline}

PIPEX Ltd.

	{UUNET PIPEX}

piping

	{pipe}

piracy

	{software piracy}

pirate

	{software pirate}

PIRL

	Pattern Information Retrieval Language.

	A language for {digraph} manipulation, embeddable in {Fortran}
	or {ALGOL}, for {IBM 7094}.

	["PIRL - Pattern Information Retrieval Language",
	S. Berkowitz, Naval Ship Res Dev Ctr, Wash DC].

	(1994-11-29)

pistol

	[IBM] A tool that makes it all too easy for you to shoot
	yourself in the foot.  "Unix "rm *" makes such a nice pistol!"

	[{Jargon File}]

PIT

	Language for IBM 650.  (See {IT}).

PITA

	Pain in the arse/ass.

pixel

	{picture element}

pixels per inch

	<unit, graphics> (ppi) The unit used to measure {resolution}
	of a {bitmap display} or video input device.

	(2010-02-28)

pixmap

	(Contraction of "pixel map").  A 3 dimensional {array} of bits
	corresponding to a 2 dimensional array of {pixels}.  It is
	used, for example, in the {X Window System} to describe a
	memory region where graphics can be drawn without affecting
	the screen.  Typically this is used for the efficient handling
	of {expose} events, {icon} images or for animation.  Compare
	{bitmap}.

	[Xlib Guide].

pizza box

	[Sun] The largish thin box housing the electronics in
	(especially {Sun}) desktop {workstations}, so named because of
	its size and shape and the dimpled pattern that looks like air
	holes.

	Two megabyte single-platter removable disk packs used to be
	called pizzas, and the huge drive they were stuck into was
	referred to as a pizza oven.  It's an index of progress that
	in the old days just the disk was pizza-sized, while now the
	entire computer is.

	[{Jargon File}]

PJPEG

	{Progressive JPEG}

pk

	<networking> The {country code} for Pakistan.

	(1999-01-27)

PKE

	{public-key encryption}

PKI

	{Public Key Infrastructure}

PKLITE

	<compression, tool> An executable file {compression} utility
	for {MS-DOS} from {PKWARE, Inc.}.  PKLITE compresses the body
	of the executable and adds a small, fast decompress routine in
	the header.  In many cases it performs better than {lzexe}.
	With {headpack} the output is smaller and cannot be
	decompressed.

	(1999-01-07)

PKUNZIP

	<tool, compression> A program to unpack {archives} created by
	{PKZIP}, written by {PKWARE, Inc.} and released as
	{shareware}.  Versions exist for {MS-DOS}, {Microsoft Windows}
	and {Open VMS}.  PKUNZIP is no longer distributed, its
	functions having been incorporated into PKZIP.

	(1999-01-07)

PKWARE, Inc.

	<company, compression> The company which produces the {PKZIP}
	and {PKUNZIP} compression tools and libraries for many
	{platforms}.

	{(http://pkware.com/)}.

	E-mail: info@pkware.com.

	Telephone: +1 (414) 354 8699.

	Address: 9025 N. Deerwood Drive, Brown Deer, WI 53223-2480,
	USA.

	(1999-01-07)

PKZIP

	<tool> A file {compression} and archiver utility for {MS-DOS}
	and {Microsoft Windows} from {PKWARE, Inc.}.  PKZIP uses a
	variation on the {sliding window} compression {algorithm}.  It
	comes with {pkunzip} and {pklite} and is available as
	{shareware} from most {FTP archives} in a self-expanding
	{MS-DOS} executable.

	Current versions as of 1999-10-07: PKZIP 2.60 GUI for
	{Microsoft Windows 3.1}x, {Windows 9x}, {Windows NT}; PKZIP
	2.50 Command Line for Windows 9x NT; PKZIP 2.04g for {MS-DOS};
	PKZIP 2.51 for {Unix}, ({Linux}, {SPARC} {Solaris}, {Digital},
	{HP-UX}, {IBM AIX} and {SCO} Unix); PKZIP 2.50 for {OS/2};
	PKZIP for {Open VMS}/{VAX}.

	{WINZIP} is a version with a {GUI} for {Microsoft Windows}.

	A distribution in about 1995-06-22 claiming to be "PKZIP 3"
	was actually a {Trojan horse} which attempted to reformat the
	hard disk and delete all files on it.

	{(http://pkware.com/catalog/pkzip_win.html)}.

	[Status, history of WINZIP, PKLITE?]

	(1999-01-16)

pl

	<networking> The {country code} for Poland.

	(1999-01-27)

PL1

	<spelling> It's spelled "{PL/I}".

	(1996-12-13)

PL/1

	<spelling> It's spelled "{PL/I}".

	(1996-12-13)

PL-11

	<language> A high-level machine-oriented language for the
	{PDP-11} developed by R.D. Russell of CERN in Nov 1971.  It is
	similar to {PL360} and is written in {Fortran IV} and
	{cross-compile}d on other machines.

	(1995-01-05)

PL360

	{Structured assembly language} for the {IBM 360} and {IBM
	370}, with a few high-level constructs.  Syntactically it
	resembles {ALGOL 60}.  Its grammar is defined entirely by
	operator precedence.

	["PL/360, A Programming Language for the 360 Computers",
	N. Wirth, J ACM 15(1):37-74 (Jan 1968)].

	(1995-01-05)

PL516

	An {ALGOL}-like {assembly language} for the {DDP-516}, similar
	to {PL360}.

	["PL 516, An ALGOL-like Assembly Language for the DDP-516",
	B.A. Wichmann, Natl Phys Lab UK, Report CCU 9, 1970].

	(1995-01-05)

PL-6

	<language> A {PL/I}-like system language for the {Honeywell}
	{operating system}, {CP-6}.

	(1995-01-05)

PL.8

	A systems dialect of {PL/I}, developed originally for the {IBM
	801} {RISC} {minicomputer}, later used internally for {IBM RT}
	and {R/6000} development.

	["An Overview of the PL.8 Compiler", M. Auslander et al, Proc
	SIGPLAN '82 Symp on Compiler Writing].

	(1995-01-05)

Pla

	<language, music> A high-level music programming language,
	written in {SAIL}.  Pla includes {concurrency} based on
	{message passing}.

	["Pla: A Composer's Idea of a Language", B. Schottstaedt,
	Computer Music J 7(1):11-20, Winter 1983].

	(1999-06-04)

PLACE

	Programming Language for Automatic Checkout Equipment.

	["The Compiler for the Programming Language for Automatic
	Checkout Equipment (PLACE)", AFAPL TR-68-27, Battelle Inst,
	Columbus, May 1968].

PLAGO

	A translator-interpreter for a PL/I subset.  "PLAGO/360 User's
	Manual, Poly Inst Brooklyn.

plaid screen

	[XEROX PARC] A "special effect" that occurs when certain kinds
	of {memory smash}es overwrite the control blocks or image
	memory of a bit-mapped display.  The term "salt and pepper"
	may refer to a different pattern of similar origin.  Though
	the term as coined at PARC refers to the result of an error,
	some of the {X} demos induce plaid-screen effects deliberately
	as a {display hack}.

	[{Jargon File}]

PLAIN

	Programming LAnguage for INteraction.  Pascal-like, with
	extensions for database, string handling, exceptions and
	pattern matching.  "Revised Report on the Programming Language
	PLAIN", A. Wasserman, SIGPLAN Notices 6(5):59-80 (May 1981).

plain ASCII

	/playn-as'kee/ {flat ASCII}.

	[{Jargon File}]

Plain Old Documentation

	<text> (pod, occasionally "POD") A simple {markup language}
	used to embed {documentation}, {literate programming}-style,
	in {Perl} programs.  Pod readers and converters are part of
	the standard Perl distribution and the documentation provided
	with Perl is all in pod format.

	{The Pod Specification
	(http://perl.com/CPAN-local/doc/manual/html/pod/perlpod.html)}.

	(1998-12-18)

Plain Old Telephone Service

	<communications> (POTS) The traditional voice service provided
	by phone companies, especially when opposed to data services.

	Note that the acronym POTS is sometimes expanded as "Plain Old
	Telephone System" in which sense it is synonymous to {Public
	Switched Telephone Network} but used somewhat derogatively.

	(1998-05-18)

Plain Old Telephone System

	{Public Switched Telephone Network}

plain TeX

	<publication> {Donald Knuth}'s original set of user-level
	{macros} for interaction with his {TeX} formatter.  Dedicated
	TeX fans still prefer these over the more {user-friendly}
	{LaTeX} macros used by the majority of the TeX community.

	(1997-11-20)

plaintext

	<cryptography> A message before {encryption} or after
	decryption, i.e. in its usual form which anyone can read, as
	opposed to its encrypted form ("{ciphertext}").

	(1995-05-10)

PLAN

	<language> Programming LANguage Nineteen hundred.

	The {assembly language} for {ICL 1900} series computers.

	(1995-03-21)

.plan

	<operating system> See {plan file}.

Plan 9

	<operating system> (Named after the classically bad,
	exceptionally low-budget SF film "Plan 9 from Outer Space") An
	{operating system} developed at {Bell Labs} by many
	researchers previously intimately involved with {Unix}.

	Plan 9 is superficially Unix-like but features far finer
	control over the {name-space} (on a per-process basis) and is
	inherently distributed and scalable.

	Plan 9 is divided according to service functions.  {CPU}
	servers concentrate computing power into large
	{multiprocessors}; {file servers} provide repositories for
	storage and terminals give each user of the system a dedicated
	computer with {bitmap screen} and {mouse} on which to run a
	window system.  The sharing of computing and file storage
	services provides a sense of community for a group of
	programmers, amortises costs and centralises and hence
	simplifies management and administration.

	The pieces communicate by a single {protocol}, built above a
	reliable {data transport layer} offered by an appropriate
	network, that defines each service as a rooted tree of files.
	Even for services not usually considered as files, the unified
	design permits some simplification.  Each process has a local
	file name space that contains attachments to all services the
	process is using and thereby to the files in those services.
	One of the most important jobs of a terminal is to support its
	user's customised view of the entire system as represented by
	the services visible in the name space.

	{(http://plan9.bell-labs.com/plan9dist/)}.

	(2005-02-15)

Planet

	["An Experiment in Language Design for Distributed Systems",
	D. Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984)].

plan file

	<operating system> On {Unix} systems that support {finger},
	the ".plan" file in a user's {home directory} is displayed
	when the user is fingered.  This feature was originally
	intended to be used to keep potential fingerers apprised of
	one's location and near-future plans, but has been turned
	almost universally to humorous and self-expressive purposes
	(like a {sig block}).  See also {Hacking X for Y}.

	A later innovation in plan files was the introduction of
	"scrolling plan files" which are one-dimensional animations
	made using only the printable {ASCII} character set, {carriage
	return} and {line feed}, avoiding terminal specific {escape
	sequences}, since the {finger} command will (for security
	reasons; see {letterbomb}) not pass the {escape} character.

	Scrolling .plan files have become art forms in miniature, and
	some sites have started competitions to find who can create
	the longest running, funniest, and most original animations.
	A compiler (ASP) is available on {Usenet} for producing them.
	Typical animation components include:

	 Centipede:		 mmmmme
	 Lorry/Truck:		 oo-oP
	 Andalusian Video Snail: _@/

	In the mid-1990s {WWW} {home pages} largely supplanted .plan
	files, providing a much richer forum for the publication of
	personal minutiae and digital creativity.

	See also {twirling baton}.

	[{Jargon File}]

	(1998-01-16)

PLANIT

	Programming LANguage for Interaction and Teaching.  CAI
	language.  "PLANIT - A Flexible Language Designed for
	Computer-Human Interaction", S.L. Feingold, Proc FJCC 31,
	AFIPS (Fall 1967) Sammet 1969, p.706.

Plankalkül

	<language, history> (Or "Plankalkuel" if you don't have
	umlauts).  The first programming language, designed by {Konrad
	Zuse}, ca. 1945.  Zuse wrote "Rechenplan allgemeiner Struktur"
	in 1944 which developed into Plankalkül.  Plankalkül included
	{arrays} and {records} and used a style of {assignment} in
	which the new value appears on the right.

	Zuse wrote Plankalkül for his {Z3} computer (finished before
	1945) and implemented it on there as well.  Much of his work
	may have been either lost or confiscated in the aftermath of
	World War II.

	{ESR Plankalkül
	(http://tuxedo.org/~esr/retro/plankalkuel/)}.

	["The Plankalkül of Konrad Zuse", F.L. Bauer et al, CACM
	15(7):678-685, Jul 1972].

	(2002-05-28)

PLANNER

	A language for writing {theorem provers} by {Carl Hewitt}
	<hewitt@ai.mit.edu> {MIT} 1967.  Never fully implemented.

	{CONNIVER} was an outgrowth of {PLANNER} and {microPLANNER} a
	subset.  {PLASMA} is a PLANNER-like system modelled on
	{Actors}.  See also {POPLER}, {QLISP}, {Scheme}.

	["PLANNER: A Language for Proving Theorems in Robots", Carl
	Hewitt, Proc IJCAI-69, Wash DC, May 1969].

Planner-73

	The original name for {PLASMA}.

PLANS

	Programming Language for Allocation and Network Scheduling.  A
	PL/I preprocessor, used for developing scheduling algorithms.
	"A User's Guide to the Programming Language for Allocation and
	Network Scheduling", H.R.  Ramsey et al, TR SAI-77-068-DEN,
	Science Applications Inc (Jun 1977).

plants

	["The Algorithmic Beauty of Plants", Przemyslaw Prusinkiewicz,
	Aristid Lindenmayer. New York: Springer-Verlag, 1990.
	3-54097297-8].

PLASMA

	PLAnner-like System Modelled on Actors.  {Carl Hewitt}, 1975.
	The first {actor} language.  Originally called Planner-73, and
	implemented in MacLisp.  Lisp-like syntax, but with several
	kinds of parentheses and brackets.

	["A PLASMA Primer", B. Smith et al, AI Lab Working Paper 92,
	MIT Oct 1975].

	["Viewing Control Structures as Patterns of Passing Messages",
	C. Hewitt, AI Lab Memo 410, MIT 1976].

Plastic Pin Grid Array

	<hardware, processor> (PPGA) The package used for certain
	{Intel} {Celeron} {processors}.  PPGA processors fit into
	{Socket 370} {motherboard} sockets.

	The Plastic {Pin Grid Array} packaging is similar to that used
	on {Pentium} processors.  The {silicon} {core} is covered by a
	{heat slug} that faces down toward the {motherboard}.

	The Celeron 300A to the 533 use a PPGA package.  The Celeron
	566 onward use a {FC-PGA} package.

	Celeron processors are also available in {Slot 1} {SEPP}
	packaging.

	(2000-08-26)

platform

	Specific computer hardware, as in the phrase
	"platform-independent".  It may also refer to a specific
	combination of hardware and {operating system} and/or
	{compiler}, as in "this program has been ported to several
	platforms".  It is also used to refer to support software for
	a particular activity, as in "This program provides a platform
	for research into routing protocols".

	(1994-12-07)

Platform for Internet Content Selection

	<World-Wide Web> (PICS) A standard for {meta-data} associated
	with {World-Wide Web} content, originally designed to help
	parents and teachers control what children access on the
	Internet, but also used for {code signing} and privacy.  The
	PICS platform is one on which other rating services and
	filtering software have been built.

	{(http://w3.org/PICS}).

	(2001-03-29)

Platform Independent Graphical User Interface

	(PIGUI) {The PIGUI FAQ
	(ftp://rtfm.mit.edu/pub/usenet/news.answers/portable-GUI-software/)}.

	[Summary?]

	(1994-11-22)

platinum-iridium

	<standard> A standard, against which all others of the same
	category are measured.  Usage: silly.

	The notion is that one of whatever it is has actually been
	cast in platinum-iridium alloy and placed in the vault beside
	the Standard Kilogram at the International Bureau of Weights
	and Measures near Paris, as the bar defining the standard
	{metre} once was.

	"This {garbage collection} {algorithm} has been tested against
	the platinum-iridium cons cell in Paris."

	Compare {golden}.

	[{Jargon File}]

	(1997-02-20)

Platon

	Distributed language based on asynchronous message passing.

	["Message Passing Communication Versus Procedure Call
	Communication", J. Staunstrup, Soft Prac & Exp 12(3):223-234
	(Mar 1982)].

	["Platon Reference Manual", S. Soerensen et al, RECAU, U
	Aarhus, Denmark].

PLAY

	<language, music> A language for {real-time} music synthesis.
	1977.

	["An Introduction to the Play Program", J. Chadabe ete al,
	Computer Music J 2,1 (1978)].

	(1999-06-04)

play by electronic mail

	<games> A kind of game where the players use {electronic mail}
	to communicate.  This may be done via a human {moderator} or
	an automatic {mailing list} {exploder} on some central machine
	or it may be fully distributed with each player just
	addressing his mail to all other players.

	This is a natural extension of "play by mail" games conducted
	via {snail mail}.

	{(http://fermi.clas.virginia.edu/~gl8f/pbm.html)}.  {Usenet}
	newsgroup: {news:rec.games.pbm}.

	(1994-10-27)

Playground

	A visual language for children, developed for Apple's Vivarium
	Project.  OOPSLA 89 or 90?

Play, Inc.

	<company> The company which designed and markets {Snappy Video
	Snapshot}.

	{(http://play.com)}.

	(1997-07-11)

playpen

	(IBM) A room where programmers work.

	Compare {salt mines}.

	[{Jargon File}]

Playstation

	<games, hardware> The leading family of {games consoles}, from
	{Sony Corporation} consisting of the original Playstation
	(PS1) and the Playstation 2 (PS2).

	The basic Playstations consist of a small box containing the
	processor and a {DVD} reader, with video outputs to connect to
	a TV, sockets for two game controllers, and a socket for one
	or two memory cards.  The PS2 also has {USB} sockets.

	The PS2 can run PS1 software because the PS2's I/O processor
	is the same as the PS1's CPU.

	{(http://scea.sony.com/playstation/)}.

	{FAQ
	(http://flex.net/users/cjayc/vgfa/system/sony_psx.txt)}.

	[Dates?  Features?]

	(2003-07-29)

playte

	<data, jargon> /playt/ 16 {bits}, by analogy with {byte}.
	Usage: rare and extremely silly.

	See also {dynner}, {crumb}.

	[{Jargon File}]

	(1997-12-03)

PLC

	{Programmable Logic Controller}

PL/C

	{Programming Language/Cornell}

PL Cornell

	{Programming Language/Cornell}

PLD

	{Programmable Logic Device}

plenum cable

	<hardware> Cable that can be (legally) installed in the plenum
	(the space between a ceiling and the floor above it).  Such
	cable is (usually) teflon-coated so that it will not give off
	toxic fumes when burned.  In some parts of the world such
	cable is required by law.

	(1996-08-25)

pleonasm

	Redundancy of expression; tautology.

	(1995-03-25)

plesiochronous

	<communications> Nearly synchronised, a term describing a
	communication system where transmitted signals have the same
	nominal digital rate but are synchronised on different clocks.

	According to {ITU-T} {standards}, corresponding signals are
	plesiochronous if their significant instants occur at
	nominally the same rate, with any variation in rate being
	constrained within specified limits.

	[Pronunciation?  /ples'ee-oh-kroh'nus/?]

	(1995-03-02)

Plesiochronous Digital Hierarchy

	<communications> (PDH) A transmission system for voice
	communication using {plesiochronous} synchronisation.

	PDH is the conventional {multiplexing} technology for network
	transmission systems.  The transmitter adds dummy information
	bits to allow multiple channels to be bit interleaved.  The
	receiver discards these bits once the signals have been
	demultiplexed.

	PDH combines multiple 2 Mb/s ({E1}) channels in Europe and
	1.544 Mb/s ({DS1}) channels in the US and Japan.

	PDH is being replaced by {SONET} and other SDH ({Synchronous
	Digital Hierarchy}) schemes.

	(2003-09-30)

Pleuk grammar development system

	<grammar, tool> A {shell} for {grammar} development by Jo
	Calder <jcalder@cs.sfu.ca>, Kevin Humphreys
	<kwh@cogsci.ed.ac.uk>, Chris Brew
	<Chris.Brew@edinburgh.ac.uk>, and Mike Reape
	<mreape@cs.tcd.ie>.  It handles various grammatical formalisms
	and requires {SICStus Prolog} version 2.1#6 or later.

	Latest version: 1.0, as of 1993-06-18.

	{(ftp://ai.uga.edu/ai.natural.language/)}.

	E-mail: <pleuk@cogsci.ed.ac.uk>.

	(2000-07-22)

Plexus

	A modular {World-Wide Web} {server} written in {Perl} by Tony
	Sanders <sanders@earth.com>.  Comes with interfaces to allow
	many other information services to be served via the Web.

	{Version 3.0m 1994-07-22 (ftp://ftp.earth.com/plexus/)}.

	(1994-07-22)

PL/I

	<language> Programming Language One.

	An attempt to combine the best features of {Fortran}, {COBOL}
	and {ALGOL 60}.  Developed by George Radin of {IBM} in 1964.
	Originally named NPL and Fortran VI.  The result is large but
	elegant.  PL/I was one of the first languages to have a formal
	{semantic} definition, using the {Vienna Definition Language}.
	{EPL}, a dialect of PL/I, was used to write almost all of the
	{Multics} {operating system}.  PL/I is still widely used
	internally at {IBM}.  The PL/I standard is ANS X3.53-1976.

	PL/I has no {reserved words}.  Types are fixed, float,
	complex, character strings with maximum length, bit strings,
	and label variables.  {Arrays} have lower bounds and may be
	dynamic.  It also has summation, multi-level structures,
	{structure assignment}, untyped pointers, {side effects} and
	{aliasing}.  {Control flow} constructs include goto; do-end
	groups; do-to-by-while-end loops; external procedures;
	internal nested procedures and blocks; {generic procedures}
	and {exception handling}.  Procedures may be declared
	{recursive}.  Many implementations support {concurrency}
	('call task' and 'wait(event)' are equivalent to {fork}/join)
	and compile-time statements.

	{LPI} is a PL/I {interpreter}.

	["A Structural View of PL/I", D. Beech, Computing Surveys, 2,1
	33-64 (1970)].

	(1994-10-25)

PL/I-FORMAC

	<language> A variant of {FORMAC}.

	["The PL/I-FORMAC Interpreter", J. Xenakis, Proc 2nd Symp
	Symbolic and Algebraic Manip, ACM, Mar 1971].

	[Sammet 1969, p. 486].

	[Details?  Relatonship to {PL/I}?]

	(1994-10-25)

pling

	<character> {exclamation mark}.

	[Does anyone call {vertical bar} ("|", broken or unbroken)
	"pling"?]

	(1998-09-20)

plingnet

	{UUCPNET}.  See also {pling}.

	[{Jargon File}]

PLisp

	1. PostScript Lisp?  A {Common Lisp} translator and
	programming environment in {PostScript} by John Peterson
	<peterson-john@cs.yale.edu>.

	2. Pattern LISP.  1990.  A {pattern-matching} rewrite-rule
	language, optimised for describing syntax translation rules.
	(See {LISP70}).

PL/I SUBSET

	An early 70's version of {PL/I} for {minicomputers}.

PL/I Subset G

	("General Purpose") The commercial {PL/I} subset, i.e. what was
	actually implemented by most vendors.  ANS X3.74-1981.

PLITS

	Programming Language In The Sky.  A computational model for
	concurrency with communication via {asynchronous
	message-passing}.

	["High Level Programming for Distributed Computing",
	J.A. Feldman, CACM 22(6):353- 368 (Jun 1979)].

PLL

	{phase-locked loop}

PL/M

	Programming Language/Microcomputers.  MAA (later Digital
	Research) for Intel, 1972.  A very low level language
	incorporating ideas from PL/I, ALGOL and XPL.  Integrated
	macro processor.  Originally the implementation language for
	CP/M.  "PL/M-80 Programming Manual", Doc 98-268B, Intel 1976.
	"A Guide to PL/M Programming for Microcomputer Applications",
	D. McCracken, A-W 1978.  Versions: PL/M-80, PL/M-86, PL/M-286.

PLMK

	<chat> please let me know.

	(1999-09-27)

plokta

	/plok't*/ Press Lots Of Keys To Abort.  To press random keys
	in an attempt to get some response from the system.  One might
	plokta when the abort procedure for a program is not known, or
	when trying to figure out if the system is just sluggish or
	really hung.  Plokta can also be used while trying to figure
	out any unknown key sequence for a particular operation.
	Someone going into "plokta mode" usually places both hands
	flat on the keyboard and mashes them down, hoping for some
	useful response.

	A slightly more directed form of plokta can often be seen in
	mail messages or {Usenet} articles from new users - the text
	might end with

	       ^X^C
	       q
	       quit
	       :q
	       ^C
	       end
	       x
	       exit
	       ZZ
	       ^D
	       ?
	       help

	as the user vainly tries to find the right exit sequence, with
	the incorrect tries piling up at the end of the message.

	[{Jargon File}]

plonk

	<networking, abuse> (Usually written "*plonk*") The sound a
	{newbie} makes as he falls to the bottom of a {kill file}.

	In the first of a series of humourous books by Stephen Potter,
	"One-Upmanship" (published in 1952) a "plonk" - a pompous bit
	of misinformation said in a "plonking" tone - was a key
	feature of his advice on how to "creatively intimidate"
	someone by making them feel inferior and thereby gain the
	status of being "one-up" on them.  Since these efforts are
	usually transparently pathetic, the term became widely applied
	to any idiotic statement.

	The term appeared on-line in the {Usenet} {newsgroup}
	{news:talk.bizarre} and, by 1994, was widespread on {Usenet}
	and {mailing} lists as a form of public ridicule.

	The term may have been influenced by British slang "plonker"
	for someone behaving stupidly.  The expansion "Person with
	Little Or No Knowledge" may be a {backronym}.

	(2012-05-27)

plotter

	<hardware> A device that uses one or more pens that can be
	raised, lowered and moved over the printing media to draw
	graphics or text.

	The heart of the plotter is the printer head assembly,
	consisting of a horizontal bar and, attached to it, the head
	assembly holding the pen in use.  The pen can be positioned
	horizontally by moving the pen assembly along the bar.
	Vertical positioning is achieved by either moving the bar
	(stationary page plotter) or the paper (rolling page plotter).
	Combinations of horizontal and vertical movement are used to
	draw arbitrary lines and curves in a single action, in
	contrast to {printers} which usually scan horizontally across
	the page.

	Colour plots can be made by using more than one pen.  Older
	plotters required a separate pen for each colour and the pens
	had to be changed by hand.  Modern colour plotters usually use
	only four pens (cyan, magenta, yellow, and black, see {CMYK})
	and need no human intervention to change them.

	Monochromatic plotters have been largely phased out by {laser
	printers} except when large paper size is needed, e.g. in
	{CAD}.

	(1996-01-10)

PL/P

	Programming Language, Prime.  Russ Barbour, PRIME Computer,
	late 70's.  Subset of PL/I used internally for implementation
	of PRIMOS.  (See SPL[4]).

PL/PROPHET

	PL/I-like language for the PROPHET system, used by
	pharmacologists.  "The Implementation of the PROPHET System",
	P.A.  Castleman et al, NCC 43, AFIPS (1974).

PL/S

	{Programming Language/Systems}

PL/Seq

	Programming Language for Sequences.  A DSP language.  "A
	General High Level Language for Signal Processors", J. Skytta
	& O. Hyvarinen, Digital Signal Processing 84, Proc Intl Conf,
	Fiorence, Italy, Sep 1984, pp.217-221.

PL/SQL

	{Procedural Language/SQL}

PLTL

	{Propositional Linear Temporal Logic}

plug and play

	<jargon> 1. Hardware or software that, after being installed
	("plugged in"), can immediately be used ("played with"), as
	opposed to hardware or software which requires configuration.

	See also {turnkey}, {plug and pray}.

	2. A new recruit who needs no training.  "The new guy, John,
	is great.  He's totally plug-and-play."

	(1997-03-30)

plug and pray

	<humour> The {Windows 95} equivalent of the {Macintosh}'s
	{plug and play}, referring to difficulties encountered when
	setting up new {hardware} under Windows 95.

	(1997-10-11)

Plug Compatible Manufacturer

	<company> (PCM) A manufacturer of equipment that some other
	manufacturer's system can identify and work with.  The PCM's
	device replaces the original manufacturer's.

	Most PCMs competed with {IBM}.  PCM devices normally offer a
	cost-performance benefit over the original device.  For
	example, several PCM versions of the {Direct-Access Storage
	Device} {IBM 3350} offered twice the storage and improved data
	access (dual port).

	Plug compatible devices include replacement {CPUs}, such as
	the {Hitachi 7/90} series (which could be substituted for {IBM
	3090} series processors), {I/O} subsystems, and {dumb
	terminals} like the {IBM 3270}.

	[Used outside mainframe market?]

	(2003-06-24)

Pluggable Authentication Module

	<security> (PAM) The new industry standard integrated {login}
	{framework}.  PAM is used by system entry components, such as
	the {Common Desktop Environment}'s dtlogin, to authenticate
	users logging into a {Unix} system.  It provides pluggability
	for a variety of system-entry services.  PAM's ability to
	{stack} authentication {modules} can be used to integrate
	{login} with different authentication mechanisms such as
	{RSA}, {DCE} and {Kerberos}, and thus unify login mechanisms.
	PAM can also integrate {smart card} authentication.

	{White paper (http://gr.osf.org/book/psm-wppr.htm)}.

	[OSF-RFC 86.0 V. Samar, R. Schemers, "Unified Login with
	Pluggable Authentication Modules (PAM)", Oct 1995].

	(1997-07-18)

plugh

	<games> /ploogh/ A magic word from the {ADVENT} game.

	[{Jargon File}]

	(1996-04-01)

plug-in

	<tool> A file containing data used to alter, enhance, or
	extend the operation of a parent {application program}.  One
	of the first uses of this term was in {Silicon Beach}'s
	{SuperPaint} application (late 1980s?) for the {Macintosh}.
	It had a Plug-ins {folder} containing different tools and
	effects.

	The {Netscape Navigator} {World-Wide Web} {browser} supports
	plug-ins which display or interpret a particular file format
	or {protocol} such as {Shockwave}, {RealAudio}, {Adobe
	Systems, Inc.} {PDF}, {Corel CMX} ({vector graphics}).  The
	file to be displayed is included in a {web page} using an
	EMBED {HTML} {tag}.

	Plug-ins, both commercially and indepently authored, can
	usually be downloaded for free and are stored locally.
	Plug-ins come in different versions specific to particular
	{operating systems} ({Microsoft Windows 3.1}, 3.2, and
	{Macintosh} are available).

	Compare {applet}.

	{Plug-in Plaza (http://browserwatch.com/plug-in.html)}.

	{PC Mag Plug-ins
	(http://zdnet.com/pcmag/IU/plugins/plugins.htm)}.

	(1996-05-25)

PLUM

	A {compiler} for a substantial subset of {PL/I} for the
	{Univac 1100}, from the {University of Maryland}.

	["PL/I Programming with PLUM", M.V. Zelkowitz, Paladin House,
	1978].

	(1995-02-23)

Plumber

	<programming, tool> A system for obtaining information about
	{memory leaks} in {Ada} and {C} programs.

	{(http://home.earthlink.net/~owenomalley/plumber.html)}.

	(17 Feb 1999)

plumbing

	(Unix) Term used for {shell} code, so called because of the
	prevalence of "{pipelines}" that feed the output of one
	program to the input of another.  Under {Unix}, user utilities
	can often be implemented or at least prototyped by a suitable
	collection of pipelines and temporary file {grind}ing
	encapsulated in a {shell script}.  This is much less effort
	than writing {C} every time, and the capability is considered
	one of Unix's major winning features.  A few other {operating
	systems} such as {IBM}'s {VM/CMS} support similar facilities.

	The {tee} utility is specifically designed for plumbing.

	[{Jargon File}]

	(1995-02-23)

Plural EuLisp

	EuLisp with parallel extensions.  "Collections and Garbage
	Collection", S.C. Merall et al, in Memory Management - IWMM92,
	Springer 1992, pp.473-489.

PLUS

	Late 60's.  Machine-oriented systems language used internally
	by Univac.

plus

	<character> "+", {ASCII} character 43, 0x2B.  The mathematical
	symbol for the {addition} {operator}, also used with the same
	meaning in arithmetic expressions in nearly all {programming
	languages}.

	Common names: {ITU-T}: plus; add.  Rare: cross; {INTERCAL}:
	intersection.

	In programming, the operator is sometimes {overloaded} to
	perform other tasks like concatenating strings.  In the {C}
	language and its many imitators, the symbol is doubled, as in
	"x++" or "++x" to give an increment operator that adds one to
	its operand ("x" in this case) and also returns x's previous
	or resulting value respectively.

	In a {regular expression}, "+" means match one or more
	instances of the previous pattern.  Thus /b(an)+a/ would match
	any of "bana", "banana", "bananana", etc. (see {banana
	problem}).

	(2010-03-20)

PLUSS

	{Proposition of a Language Useable for Structured
	Specifications}

ply

	<mathematics, data> 1. Of a {node} in a {tree}, the number of
	{branches} between that node and the {root}.

	2. Of a tree, the maximum ply of any of its nodes.

	(1998-12-29)

PM

	1. {preventive maintenance}.

	2. {Presentation Manager}

	3. ["PM, A System for Polynomial Manipulations", G.E. Collins,
	CACM 9(8):578-589 (Aug 1966)].

	[{Jargon File}]

pm

	<networking> The {country code} for St. Pierre and Miquelon.

	(1999-01-27)

pm2

	<language, compiler> A software emulator for parallel random
	access machine (PRAM) and a parallel {Modula-2} compiler for
	the emulator.  pm2 programming language is Modula-2/Pascal
	mixture having extensions for parallel execution in a PRAM.
	Parallelism is expressed by pardo-loop-structure.  Additional
	features include private/shared variables, two synchronisation
	strategies, load balancing and parallel dynamic memory
	allocation.

	{(ftp://cs.joensuu.fi/pub/Software/pram/)}.

	E-mail: Simo Juvaste <sjuva@cs.joensuu.fi>.

	(1997-06-04)

P-mail

	Physical mail, as opposed to {e-mail}.  Synonymous
	with {snail-mail}.

	[{Jargon File}]

PMBX

	{Private Manual Branch EXchange}

PMC

	{PCI Mezzanine Card}

PML

	Parallel {ML}.

	["Synchronous Operations as First-Class Values", J.H.  Reppy
	<jhr@research.att.com>, Proc SIGPLAN 88 Conf Prog Lang Design
	and Impl, June 1988, pp. 250-259].

PMP

	{Portable Media Player}

pn

	<networking> The {country code} for Pitcairn Island.

	(1999-01-27)

pnambic

	<jargon> /p*-nam'bik/ (From the scene in the film, "The Wizard
	of Oz" in which the true nature of the wizard is first
	discovered: "Pay no attention to the man behind the curtain").
	A term coined by Daniel Klein <dvk@lonewolf.com> for a stage
	of development of a process or function that, owing to
	incomplete implementation or to the complexity of the system,
	requires human interaction to simulate or replace some or all
	of its actions, inputs or outputs.  The term may also be
	applied to a process or function whose apparent operations are
	wholly or partially falsified or one requiring
	{prestidigitization}.

	The ultimate pnambic product was "Dan Bricklin's Demo", a
	program which supported flashy user-interface design
	prototyping.

	There is a related maxim among hackers: "Any sufficiently
	advanced technology is indistinguishable from a rigged demo."
	See {magic} for illumination of this point.

	["Open Channel", IEEE "Computer", November 1981].

	[{Jargon File}]

	(1994-11-01)

PNG

	{Portable Network Graphics}

PNP

	1. <electronics> A type of {bipolar transistor} consisting of
	a layer of N-doped {semiconductor} (the "base") between two
	P-doped layers (the "collector" and "emitter").  PNP
	transistors are commonly operated with the emitter at {ground}
	and the collector at a negative {voltage}.

	In the 1960s, the germanium PNP transistor was the cheapest
	and best for use at ordinary temperatures.  The {leakage
	current} from collector to base in this type of device is
	larger than for the silicon transistor, and also varies more
	with temperature.  The effect of these deficiencies can be
	lessened by proper biasing and feedback, which can make the
	circuit both serviceable and reliable.  Neither germanium nor
	PNP transistors are as common today.

	The voltages used on a PNP transistor are inverted when
	compared with {vacuum tubes}.  Further, the behaviour of
	vacuum tubes is usually described in terms of {voltages}
	whereas transistors are better described in terms of
	{current}.

	2. <architecture> {plug and play}.

	(1997-05-05)

PNU-Prolog

	A parallel extension of NU-Prolog, implemented as a
	preproccessor.

	{(ftp://munnari.oz.au/pub/bebop.tar.Z)}.

POA

	{Portable Object Adapter}

PoB

	{Prisoner of Bill}

POC

	{Point Of Contact}

POCAL

	PETRA Operator's CommAnd Language.

pocket calculator

	<computer> A small battery-powered digital electronic device
	for performing simple arithmetic operations on data input on a
	keypad and outputting the result (usually a single number) to
	a simple {LCD} or other display.

	The most sophisticated programmable calculators are really
	{pocket computers} which are limited to handling numerical
	data only.

	(1996-12-23)

pocket computer

	{palmtop}

pod

	Not to be confused with {P.O.D.}.

	1. <printer> (Allegedly from abbreviation POD for "Prince Of
	Darkness") A {Diablo} 630 (or, latterly, any {letter-quality}
	{impact printer}).  From the {DEC-10} {PODTYPE} program used
	to feed formatted text to it.

	2. <text> {Plain Old Documentation}.

	[{Jargon File}]

	(1998-12-18)

P.O.D.

	<data> Piece Of Data (as opposed to {code}).

	[{Jargon File}]

	(2000-04-08)

podcast

	<networking> Any series of {audio} files that can be
	downloaded from the {Internet}, often released on some regular
	schedule, e.g. daily or weekly.

	Podcasts are named after {Apple Computer, Inc.}'s {iPod}
	portable audio players, though most podcasts are in {MP3}
	format and so can be played on virtually any modern audio
	player.

	(2009-12-16)

POE

	{PowerOpen Environment}

POFAC

	A subset of {Fortran}.

	[Mentioned in Machine Oriented Higher Level Languages, W. van
	der Poel, N-H 1974, p. 273].

	["POFAC Description", R.  Haentjens, Report 19, Cenre
	d'Information, Ecole Royale Militaire, Brussels, 1973].

	(1994-10-20)

POFOD

	{Probability of Failure on Demand}

POGO

	Early system on G-15.  Listed in CACM 2(5):16 (May 1959).

point

	1. <unit, text> (Sometimes abbreviated "pt") The unit of
	length used in {typography} to specify text character height,
	{rule} width, and other small measurements.

	There are six slightly different definitions: {Truchet point},
	{Didot point}, {ATA point}, {TeX point}, {Postscript point},
	and {IN point}.

	In Europe, the most commonly used is Didot and in the US, the
	formerly standard ATA point has essentially been replaced by
	the PostScript point due to the demise of traditional
	typesetting systems and rise of desktop computer based systems
	running software such as {QuarkXPress}, {Adobe InDesign} and
	{Adobe Pagemaker}.

	There are 20 {twips} in a point and 12 points in a {pica}
	(known as a "Cicero" in the Didot system).

	{Different point systems
	(http://vakcer.com/oberon/dtp/fonts/point.htm)}.

	(2004-12-23)

	2. <hardware> To move a {pointing device} so that the
	on-screen pointer is positioned over a certain object on the
	screen such as a {button} in a {graphical user interface}.  In
	most {window systems} it is then necessary to {click} a
	(physical) button on the pointing device to activate or select
	the object.  In some systems, just pointing to an object is
	known as "mouse-over" {event} which may cause some help text
	(called a "tool tip" in {Windows}) to be displayed.

	(2001-05-21)

point-and-drool interface

	<abuse> (Or "point-and-grunt interface") A parody of
	"{point-and-shoot interface}", describing a windows, icons,
	and mouse-based ({WIMP}) {graphical user interface}.  The
	implication, of course, is that such an interface is only
	suitable for idiots.

	See {for the rest of us}, {WIMP}, {drool-proof paper}.

	[{Jargon File}]

	(2000-08-08)

point-and-grunt interface

	{point-and-drool interface}

pointed domain

	<theory> In most formulations of {domain theory}, a {domain}
	is defined to have a {bottom} element and {algebraic} {CPOs}
	without bottoms are called "{predomains}".  David Schmidt's
	domains do not have this requirement and he calls a domain
	with a bottom "pointed".

	(1999-07-07)

pointer

	1. <programming> An {address}, from the point of view of a
	programming language.  A pointer may be typed, with its {type}
	indicating the type of data to which it points.

	The terms "pointer" and "reference" are generally
	interchangeable although particular programming languages often
	differentiate these two in subtle ways.  For example, {Perl}
	always calls them references, never pointers.  Conversely, in
	C, "pointer" is used, although "a reference" is often used to
	denote the concept that a pointer implements.

	{Anthony Hoare} once said:

	Pointers are like jumps, leading wildly from one part of the
	data structure to another.  Their introduction into high-level
	languages has been a step backward from which we may never
	recover.

	[C.A.R.Hoare "Hints on Programming Language Design", 1973,
	Prentice-Hall collection of essays and papers by Tony Hoare].

	2. <operating system> (Or "mouse pointer") An {icon}, usually
	a small arrow, that moves on the screen in response to
	movement of a {pointing device}, typically a {mouse}.  The
	pointer shows the user which object on the screen will be
	selected etc. when a mouse button is clicked.

	(1999-07-07)

pointer swizzling

	{swizzle}

pointing device

	<hardware> Any hardware component that allows a user to input
	spatial data to a computer.  {CAD} systems and {Graphical User
	Interfaces} (GUI) allow the user to control and provide data
	to the computer using physical "gestures" - {point}, {click},
	and {drag} - typically by moving a hand-held {mouse} across
	the surface of the physical desktop and activating switches on
	the mouse.  Movements of the pointing device are echoed on a
	graphical representation of a desktop on the screen by
	movements of the {mouse pointer} and other visual changes.

	While the most common pointing device by far is a mouse, other
	kinds include {tracker ball}, {trackpad}, {lightpen}, various
	kinds of {digitising tablets} which use a stylus, and even a
	special "{data glove}" that translates the user's movements to
	computer gestures.

	(1997-02-03)

pointing stick

	{TrackPoint}

Point Of Contact

	<networking> (POC) An individual associated with a particular
	{Internet} entity ({IP network}, {domain}, {ASN}).

	(1998-09-07)

point of presence

	(PoP) A site where there exists a collection of
	telecommunications equipment, usually {modems}, digital leased
	lines and {multi-protocol routers}.  An {Internet access
	provider} may operate several PoPs distributed throughout
	their area of operation to increase the chance that their
	subscribers will be able to reach one with a local telephone
	call.  The alternative is for them to use {virtual PoPs}
	(virtual points of presence) via some third party.

	(1994-12-13)

point of sale terminal

	<hardware> (Or "POS") A computer, probably with a {bar code}
	reader, serving as a glorified cash register.

	(1997-11-23)

Point-to-Point Protocol

	<communications, protocol> (PPP) The {protocol} defined in
	{RFC 1661}, the {Internet} standard for transmitting {network
	layer} {datagrams} (e.g. {IP} packets) over serial
	point-to-point links.

	PPP has a number of advantages over {SLIP}; it is designed to
	operate both over {asynchronous} connections and bit-oriented
	{synchronous} systems, it can configure connections to a
	remote network dynamically, and test that the link is usable.
	PPP can be configured to encapsulate different network layer
	protocols (such as {IP}, {IPX}, or {AppleTalk}) by using the
	appropriate {Network Control Protocol} (NCP).

	{RFC 1220} describes how PPP can be used with remote bridging.

	{Usenet} newsgroup: {news:comp.protocols.ppp}.

	{A paper on PPP
	(ftp://ftp.uu.net/vendor/MorningStar/papers/sug91-cheapIP.ps.Z)}.

	(1994-12-13)

Point-to-Point Protocol over ATM

	<networking> (PPPoA) A network {protocol} for encapsulating
	{PPP} {frames} in {ATM} {AAL5}.  It is used mainly with {cable
	modem}, {DSL} and {ADSL} services.

	PPPoA offers standard PPP features such as {authentication},
	{encryption}, and {compression}.  It is very slightly more
	efficient than {PPPoE} and, like PPPoE, supports {VC-MUX} and
	{LLC} encapsulation.

	PPPoA is specified in {RFC 2364}.

	(2007-06-15)

Point-to-Point Protocol over Ethernet

	<communications, protocol> (PPPoE) The {protocol} defined in
	{RFC 2516} that allows one or more computers to connect to the
	{Internet} via a shared {modem}.  The computers connect to the
	modem via a {local area network} such as {Ethernet} and the
	modem connects to an {Internet Service Provider} (ISP) via a
	{serial} connection such as {PPP} over {ADSL}.

	PPPoE provides each user with a connection that looks and
	behaves like a point-to-point {dial-up} connection even though
	they are actually sharing an Ethernet or {wireless} network.
	At the same time, the ISP only needs to provide a single
	Internet connection, with the same kind of accounting as for
	{PPP}.  Also, the {IP address} is only assigned when the PPPoE
	connection is open, allowing the dynamic reuse of IP addresses
	via {DHCP}.

	PPPoE works by {encapsulating} PPP {frames} in Ethernet
	frames.

	(2006-09-20)

Point-to-Point Tunneling Protocol

	<communications, protocol> (PPTP) A {tunneling protocol} for
	connecting {Windows NT} {clients} and {servers} over {Remote
	Access Services} (RAS).  PPTP can be used to create a {Virtual
	Private Network} between computers running NT.  It is an
	extension of {PPP} sponsored by {Microsoft}.

	{Microsoft Point to Point Encryption} may be used with PPTP to
	provide an encrypted connection but PPTP itself does not use
	encryption.

	Compare: {Layer Two Tunneling Protocol}.

	[Origin?  Standard?  Document?]

	(1998-09-23)

Poisson distribution

	<mathematics> A {probability distribution} used to describe
	the occurrence of unlikely events in a large number of
	independent trials.

	Poisson distributions are often used in building simulated
	user loads.

	[Formula?]

	(2003-03-18)

POJO

	{Plain Old Java Object}

	[As opposed to?]

poke

	The {BASIC} command to write a value to an absolute address.

	See {peek}.

	[{Jargon File}]

	(1995-01-31)

Pokémon exception handling

	<programming, humour> A humourous term for a {try-catch}
	exception handling construct with no constraint on which
	exceptions will be caught, for when you just "Gotta Catch 'Em
	All." (a slogan used in the Pokémon media empire).

	Pokémon is a trademark of the Pokémon Company of Japan.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-07-10)

Polka

	<language> An {object-oriented} parallel {logic programming}
	language, built on top of {Parlog}.

	["Polka: A Parlog Object-Oriented Language", Andrew Davison,
	TR, Parlog Group, Imperial College, London 1988].

	(1995-01-31)

poll

	To check the status of an input line, sensor, or memory
	location to see if a particular external event has been
	registered.

	Contrast {interrupt}.

	[{Jargon File}]

	(1995-01-31)

polling

	{poll}

Poly

	<language> 1. A {polymorphic}, {block-structured} language
	developed by D.C.J. Matthews at Cambridge in the early 1980s.

	["An Overview of the Poly Programming Language", D.C.J.
	Matthews, in Data Types and Persistence,
	M.P. Atkinson et al eds, Springer 1988].

	2. A language developed at St Andrews University, Scotland.

	[Software Practice & Exp, Oct 1986].

	3. A {polymorphic} language used in the referenced book.

	["Polymorphic Programming Languages", David M. Harland, Ellis
	Horwood 1984].

	(2000-11-07)

polygon pusher

	(Or "rectangle slinger").  A chip designer who spends most of
	his or her time at the physical layout level (which requires
	drawing *lots* of multi-coloured polygons).

	[{Jargon File}]

POLYGOTH

	<language> A distributed language integrating {class}es with a
	parallel block structure, including {multiprocedures} and
	{fragments}.

	["Operational Semantics of a Distributed Object-Oriented
	Language and its Z Formal Specification", M. Benveniste
	<mbenveni@irisa.irisa.fr>, TR532, IRISA/INRIA-Rennes].

	(1995-10-17)

polylithism

	<programming> A property of a data-object that can exist in
	many shapes and sizes, but not simultaneously; which
	distinguishes it from a {union}.  It is often implemented as a
	set of {classes} (or structs) derived from a common {base
	class} (or with a common header, as in the case of structs),
	typically without any {methods}.

	It has been loosely described as {polymorphic} data.

	[Clarification?]

	(1996-01-07)

Poly/ML

	<language> {SML} implemented in D.C.J. Matthews's {Poly}, for
	{Motorola 68020} and {SPARC} by Abstract Hardware Ltd.

	(1999-11-23)

polymorphic

	{polymorphism}

polymorphic lambda-calculus

	<language, types> (Or "second order typed lambda-calculus",
	"System F", "Lambda-2").  An extension of {typed
	lambda-calculus} allowing functions which take types as
	parameters.  E.g. the {polymorphic} function "twice" may be
	written:

	 	twice = /\ t . \  (f :: t -> t) . \ (x :: t) . f (f x)

	(where "/\" is an upper case Greek lambda and "(v :: T)" is
	usually written as v with subscript T).  The parameter t will
	be bound to the type to which twice is applied, e.g.:

		twice Int

	takes and returns a function of type Int -> Int.  (Actual type
	arguments are often written in square brackets [ ]).  Function
	twice itself has a higher type:

		twice :: Delta t . (t -> t) -> (t -> t)

	(where Delta is an upper case Greek delta).  Thus /\
	introduces an object which is a function of a type and Delta
	introduces a type which is a function of a type.

	Polymorphic lambda-calculus was invented by Jean-Yves Girard
	in 1971 and independently by John C. Reynolds in 1974.

	["Proofs and Types", J-Y. Girard, Cambridge U Press 1989].

	(2005-03-07)

polymorphism

	<theory, programming> The ability to leave parts of a {type} in a
	{typed language} unspecified.  The term has three distinct uses:

	* {Parametric polymorphism} refers to the use of type variables in
	a {strongly typed} language.

	* {Overloading}, sometimes called {ad-hoc polymorphism}, means
	using the same {syntax} for different types.

	* {object-orientated polymorphism} allows a {variable} to refer to
	objects whose {class} is not known at compile time.

	(2014-01-05)

polynomial

	1. <mathematics> An arithmetic expression composed by summing
	multiples of powers of some variable.

		P(x) = sum a_i x^i for i = 0 .. N

	The multipliers, a_i, are known as "{coefficients}" and N, the
	highest power of x with a non-zero coefficient, is known as
	the "degree" of the polynomial.  If N=0 then P(x) is constant,
	if N=1, P(x) is linear in x.  N=2 gives a "{quadratic}" and
	N=3, a "cubic".

	2. <complexity> {polynomial-time}.

polynomial-time

	<complexity> (P) The set or property of problems which can be
	solved by a known {polynomial-time algorithm}.

	(1995-04-10)

polynomial-time algorithm

	<complexity> A known {algorithm} (or {Turing Machine}) that is
	guaranteed to terminate within a number of steps which is a
	{polynomial} function of the size of the problem.

	See also {computational complexity}, {exponential time},
	{nondeterministic polynomial-time} (NP), {NP-complete}.

	(1995-04-13)

polyvinyl chloride

	<hardware> (PVC) A common plastic used for insulating and
	jacketing many wire and cable products.

	(2001-03-26)

POM

	{phase of the moon}

	Usually used in the phrase "POM-dependent", which means
	{flaky}.

	(1995-04-10)

Ponder

	A {non-strict} {polymorphic}, {functional language} by Jon
	Fairbairn <jf@cl.cam.ac.uk>.

	Ponder's type system is unusual.  It is more powerful than the
	{Hindley-Milner type} system used by {ML} and {Miranda} and
	extended by {Haskell}.  Ponder adds extra recursive 'mu' types
	to those of Girard's {System F}, allowing more general
	{recursion}.  Surprisingly, the type system and {type
	inference} {algorithm} are still not completely understood.

	["Ponder and its Type System", J. Fairbairn, TR 31, Cambridge
	U Computer Lab, Nov 1982].

	[J. Fairbairn, "Design and Implementation of a Simple Typed
	Language based on the Lambda-Calculus", Technical Report
	No. 75, Computer Laboratory, University of Cambridge, May
	1985].

	[J. Fairbairn, "A New Type-Checker for a Functional Language",
	Technical Report No. 53, Computer Laboratory, University of
	Cambridge, 1984].

	[J. Fairbairn, "Some Types with Inclusion Properties in
	\forall, \rightarrow, \mu", Technical Report No. 171, Computer
	Laboratory, University of Cambridge, Jun 1989].

	[Valeria C. V. de Paiva, "Subtyping in Ponder (Preliminary
	Report)", Technical Report No. 203, Computer Laboratory,
	University of Cambridge, Aug 1990].

Pong

	<games> A computer game invented in 1972 by {Atari}'s Nolan
	Bushnell.  The game is a minimalist rendering of table tennis.
	Each of the two players are represented as a white slab,
	controllable by a knob, which deflects a bouncing ball.  The
	goal of the game is to "AVOID MISSING BALL FOR HIGH SCORE".

	{Yahoo
	(http://yahoo.com/Recreation/Games/Video_Games/Classic_Arcade_Games/Titles/Pong/)}.

	(1997-11-23)

POOL

	Parallel Object-Oriented Language.

	A series of languages from {Philips Research Labs}.

	See {POOL2}, {POOL-I}, {POOL-T}.

	(1995-02-07)

POOL2

	Parallel Object-Oriented Language 2.

	Philips Research Labs, 1987.

	Strongly typed, synchronous message passing, designed to run
	on {DOOM} (DOOM = Decentralised Object-Oriented Machine).

	["POOL and DOOM: The Object- Oriented Approach", J.K. Annot,
	PAM den Haan, in Parallel Computers, Object-Oriented,
	Functional and Logic, P. Treleaven ed].

	["Issues in the Design of a Parallel Object-Oriented
	Language", P. America, Formal Aspects of Computing
	1(4):366-411 (1989)].

	(1995-02-07)

POOL-I

	One of the {POOL} languages.

	["A Parallel Object-Oriented Language with Inheritance and
	Subtyping", P. America et al, SIGPLAN Notices 25(10):161-168
	(OOPSLA/ECOOP '90) (Oct 1990)].

	(1995-02-07)

Pooling Agreement for Technical Assistance

	<business> (PATA) Written limitations on what types of
	technical information is shared when two companies (or
	departments) work together on a common project.  Often
	because of security concerns rather than marketing concerns.

	(2010-02-20)

POOL-T

	Object-oriented, concurrent, synchronous.  Predecessor of
	POOL2.

	["Definition of the Programming Language POOL-T", Esprit
	Project 415, Doc.  0091, Philips Research Labs, Eindhoven,
	Netherlands, June 1985].

	(1995-02-07)

POP

	1. <language> A family of programming languages, {POP-1},
	{POP-2}, {POP-10}, {Pop-11}, {POP++}, {POP-9X}, {POPLOG}.

	2. {Post Office Protocol}.

	See also {pop}, {PoP}.

	[{Jargon File}]

	(1996-02-18)

PoP

	{Point Of Presence}

pop

	<programming> To remove something from the top of a {stack}.

	Opposite of {push}.

	(Not to be confused with {Post Office Protocol} or {POP-1} the
	language).

	[{Jargon File}]

	(1996-02-18)

POP++

	An object-oriented extension of {POPLOG}.  Available from
	Integral Solutions.

	[{Jargon File}]

POP-1

	Package for Online Programming.  Edinburgh, 1966.  First of
	the POP family of languages.  Used reverse Polish notation.
	Implemented as a threaded interpreter.  EPU-R-17, U Edinburgh
	(Jul 1966).  "POP-1: An Online Language", R. Popplestone, Mach
	Intell 2, E. Dale et al eds, Oliver and Boyd, Edinburgh 1968.

POP-10

	Descendant of {POP}-2, for the {PDP-10} by Julian Davies,
	1973.  ["POP-10 User's Manual", D.J.M. Davies, CS R25, U West
	Ontario, 1976].

Pop-11

	<language> A programming language created by Robin Popplestone
	in 1975, originally for the {PDP-11}.  Pop-11 is
	{stack-oriented}, extensible, and efficient like {FORTH}.  It
	is also {functional}, {dynamically typed}, {interactive}, with
	{garbage collection} like {LISP}, and the {syntax} is {block
	structured} like {Pascal}.

	["Programming in POP-11", J. Laventhol <jcl@deshaw.com>,
	Blackwell 1987].

	AlphaPop is an implementation for the {Macintosh} from
	Computable Functions Inc.  PopTalk and POPLOG from the
	University of Sussex are available for {VAX/VMS} and most
	{workstations}.

	E-mail: Robin Popplestone <pop@cs.umass.edu>

	(2003-03-25)

POP-2

	Robin POPplestone, Edinburgh, 1967.  An innovative language
	incorporating many of Landin's ideas, including streams,
	closures, and functions as first-class citizens.  ALGOL-like
	syntax.  The first implementation was named Multi-POP, based
	on a REVPOL function written in POP-1, producing the
	reverse-polish form as output.  "POP-2 Papers", R.M.  Burstall
	et al, Oliver & Boyd 1968.  "Programming in POP-2",
	R.M. Burstall et al, Edinburgh U Press 1971.  "POP-2 User's
	Manual", R. Popplestone, Mach Intell 2, E. Dale et al eds,
	Oliver and Boyd, Edinburgh 1968.

POP3

	<messaging, protocol> Version 3 of the {Post Office Protocol}.
	POP3 is defined in {RFC 1081}, written in November 1988 by
	Marshall Rose, which is based on RFC 918 (since revised as RFC
	937).  POP3 allows a {client} computer to retrieve {electronic
	mail} from a POP3 {server} via a (temporary) {TCP/IP} or
	other[?] connection.  It does not provide for sending mail,
	which is assumed to be done via {SMTP} or some other method.

	POP is useful for computers, e.g. mobile or home computers,
	without a permanent network connection which therefore require
	a "post office" (the POP server) to hold their mail until they
	can retrieve it.

	Although similar in form to the original POP proposed for the
	{Internet} community, POP3 is similar in spirit to the ideas
	investigated by the {MZnet} project at the University of
	California, Irvine, and is incompatible with earlier versions
	of POP.

	Substantial work was done on examining POP in a {PC}-based
	environment.  This work, which resulted in additional
	functionality in this protocol, was performed by the {ACIS}
	Networking Systems Group at {Stanford University}.

	RFC 1082 (POP3 Extended Service) extends POP3 to deal with
	accessing mailboxes for {mailing lists}.

	(1997-01-09)

POP-9X

	Proposed {BSI} standard for {Pop-11}.

POPART

	A {grammar}-driven programming environment generator.  Uses
	{Paddle}.

	["POPART: Producer of Paddles and Related Tools, System
	Builders' Manual", D.S. Wile TR RR-82-21, ISI, Marina del Rey,
	CA 1982].

	(1994-11-30)

POPCORN

	AI system built on POP-2.  "The POPCORN Reference Manual", S.
	Hardy, Essex U, Colchester, 1973.

pop-down menu

	{pull-down menu}

POPJ

	/pop'J/ [{PDP-10} return-from-subroutine instruction]. To
	return from a digression.  By verb doubling, "Popj, popj"
	means roughly "Now let's see, where were we?"  See {RTI}.

	[{Jargon File}]

Poplar

	Morris, 1978.  A blend of LISP with SNOBOL4 pattern matching
	and APL-like {postfix syntax}.  Implicit iteration over lists,
	sorting primitive.  "Experience with an Applicative
	String-Processing Language", J.H. Morris et al, 7th POPL, ACM
	1980, pp.32-46.

POPLER

	A PLANNER-type language for the POP-2 environment.

	["Popler 1.6 Reference Manual", D. Davies et al, U Edinburgh,
	TPU Report No 1 (May 1973)].

POPLOG

	A multi-language programming environment, which includes the
	languages {Pop-11}, {ML}, {Common Lisp} and {Prolog}.  It
	supports mixed-language programming and {incremental
	compilation} and includes a comprehensive {X Window System}
	interface.  It is built on top of a two-stack {virtual
	machine}, PVM.  POPLOG was developed at the University of
	Sussex, Brighton, UK.

	["POPLOG's Two-Level Virtual Machine Support for Interactive
	Languages", R. Smith et al, in Research Directions in
	Cognitive Science, v.5 (1992)].

POPLOG ML

	{SML} for the {Poplog} system from the University of Sussex,
	UK.

POP server

	{Post Office Protocol}

PopTalk

	<language, product> A commercial {object-oriented} derivative
	of {POP}, from {Cambridge Consultants}, used in the {expert
	system} {MUSE}.

	(1995-02-27)

POR

	{power-on reset}

porn

	{pornography}

porno

	{pornography}

pornography

	<application> Still and moving images, usually of women, in
	varying states of nudity, posing or performing erotic acts
	with men, women, animals, machines, or other props.  Some say
	it degrades women, some say it corrupts young boys (who
	down-load it from the {World-Wide Web} or exchange it on
	{floppy disks}).  Most of it is in the form of {JPEG} images.
	Many web sites offer porn of all sorts, almost always for a
	subscription.  It is said that these are a driving force in
	the evolution of new technology and techniques for the web.
	Advertisments for them certainly constitute a significant
	proportion of all {spam}.  There are even pornographic
	computer games, an early example being {Mac Playmate}.

	Beware - many institutions, particularly universities, have
	strict rules against their computers and networks being used
	to transfer or store such things, and you might get corrupted.

	(2002-03-08)

port

	1. <networking> A logical channel or channel endpoint in a
	communications system.  The {Transmission Control Protocol}
	and {User Datagram Protocol} {transport layer} protocols used
	on {Ethernet} use port numbers to distinguish between
	(demultiplex) different logical channels on the same {network
	interface} on a computer.

	Each {application program} has a unique port number associated
	with it, defined in /etc/services or the {Network Information
	Service} "services" database.  Some {protocols}, e.g. {telnet}
	and {HTTP} (which is actually a special form of telnet) have
	default ports specified as above but can use other ports as
	well.

	Some port numbers are defined in {RFC 3232} (which replaces
	RFC 1700).  Ports are now divided into: "Well Known" or
	"Privileged", and "Ephemeral" or "Unprivileged" (comprising
	"Registered", "Dynamic", "Private").

	(2004-12-30)

	2. <operating system, programming> To translate or modify
	{software} to run on a different {platform}, or the results of
	doing so.  The {portability} of the software determines how
	easy it is to port.

	3. <language> An {imperative language} descended from {Zed}
	from {Waterloo Microsystems} (now {Hayes} Canada) ca. 1979.

	["Port Language" document in the Waterloo Port Development
	System].

	(2002-06-19)

portability

	<operating system, programming> The ease with which a piece of
	software (or {file format}) can be "ported", i.e. made to run
	on a new {platform} and/or compile with a new {compiler}.

	The most important factor is the language in which the
	software is written and the most portable language is almost
	certainly {C} (though see {Vaxocentrism} for counterexamples).
	This is true in the sense that C compilers are available for
	most systems and are often the first compiler provided for a
	new system.  This has led several compiler writers to compile
	other languages to C code in order to benefit from its
	portability (as well as the quality of compilers available for
	it).

	The least portable type of language is obviously {assembly
	code} since it is specific to one particular (family of)
	{processor}(s).  It may be possible to translate mechanically
	from one assembly code (or even {machine code}) into another
	but this is not really portability.  At the other end of the
	scale would come {interpreted} or {semi-compiled} languages
	such as {LISP} or {Java} which rely on the availability of a
	portable {interpreter} or {virtual machine} written in a lower
	level language (often C for the reasons outlined above).

	The act or result of porting a program is called a "port".
	E.g. "I've nearly finished the {Pentium} port of my big bang
	simulation."

	Portability is also an attribute of {file formats} and depends
	on their adherence to {standards} (e.g. {ISO 8859}) or the
	availability of the relevant "viewing" software for different
	{platforms} (e.g. {PDF}).

	(1997-06-18)

portable

	{portability}

Portable AIRTIME

	<communications, wireless> A wireless, digital communications
	system enabling user-to-user voice communication,
	"{quicknotes}", and {alphanumeric messaging}.

	[Details?]

	(2000-12-07)

Portable Commodore 64

	<computer> A version of the {Commodore 64} modelled after the
	original Osborne portable PCs, with a flip-down keyboard that
	revealed a 5-inch colour monitor, and a built-in {1541} {floppy
	disk} drive.  It is thought that few were made but that they
	did go on sale, at least in Canada.

	[Relationship to {Commodore 65}?]

	(1997-09-14)

Portable Common Loops

	(PCL) A language which started out as an implementation of
	{CommonLoops} and turned into a portable {CLOS}
	implementation.  Version 1992-08-28.  It runs under {Lucid
	Common LISP} 4.0.1 and {CMU Common LISP} 16e.

	{(ftp://parcftp.xerox.com/pcl)}.

	(1992-09-02)

	[Was it developed by Richard Harris
	<rharris@ptolemy2.rdrc.rpi.edu>?]

Portable Common Tool Environment

	<tool> (PCTE) An {ECMA} standard framework for software tools
	developed in the {Esprit} programme.  It is based on an
	{entity-relationship} {Object Management System} and defines
	the way in which tools access this.

	(2001-03-03)

portable computer

	<computer> (Commonly, "laptop") A portable {personal computer}
	you can carry with one hand.  Some laptops run so hot that it
	would be quite uncomforable to actually use them on your lap
	for long.  The term "notebook" is often used to describe
	these, though it also implies a low weight (less than 2kg).  A
	"{luggable}" is one you could carry in one hand but is so
	heavy you wouldn't want to.  One that can by easily operated
	while held in one hand is a "{palmtop}".

	The computer considered by most historians to be the first
	true portable computer was the {Osborne 1} but see the link
	below for other contenders.

	{History of laptop computers
	(http://inventors.about.com/library/inventors/bllaptop.htm)}.

	(2007-05-21)

Portable Document Format

	<file format> (PDF) The native file format for {Adobe
	Systems}' {Acrobat}.  PDF is the file format for representing
	documents in a manner that is independent of the original
	application software, hardware, and operating system used to
	create those documents.  A PDF file can describe documents
	containing any combination of text, graphics, and images in a
	device-independent and {resolution} independent format.  These
	documents can be one page or thousands of pages, very simple
	or extremely complex with a rich use of {fonts}, graphics,
	colour, and {images}.

	{(http://adobe.com/products/acrobat/adobepdf.html)}.

	["The Portable Document Format Reference Manual", Adobe
	systems, Inc. Addison-Wesley Publ.  Co., ISBN: 0-201-62628-4].

	(2000-09-08)

Portable Forth Environment

	<language> (PFE) A highly {portable} {Forth} development
	system based on the {ANSI} standard for Forth, by Dirk-Uwe
	Zoller of FHT, Mannheim, Germany.  PFE aims to be correct,
	complete, usable, and simple but it isn't optimised for speed.
	It supports all {dpANS} {word sets}.  It runs on {Linux},
	{RS/6000}, and {HP-UX}.

	{Tektronix} adopted PFE in 1998 and added {modules} and
	{multithreading}.  You can load additional {C} objects at
	{run time} to extend the Forth {dictionary}.  It can be
	targeted at different embedded environments by changing the
	terminal driver and initilisation routines.

	Latest version: 0.30.27 preview, as of 2000-11-23.

	{(http://pfe.sourceforge.net/)}.

	E-mail: Guido Draheim <guidod@gmx.de>.

	(2000-12-07)

Portable Network Graphics

	<file format> /ping/ (PNG) An extensible {file format} for the
	{lossless}, {portable}, well-compressed storage of {raster
	images}.  PNG provides a patent-free replacement for {GIF} and
	can also replace many common uses of {TIFF}.
	{Indexed-colour}, {greyscale} and {truecolour} images are
	supported, plus an optional {alpha channel}.  Sample depths
	range from 1 to 16 bits.

	PNG is designed for on-line viewing applications, such as the
	{World Wide Web}, so it is fully {streamable} with a
	{progressive display} option.  PNG is robust, providing both
	full file {integrity checking} and simple detection of common
	transmission errors.  Also, PNG can store {gamma correction}
	and {chromaticity} data for improved colour matching on
	heterogeneous {platforms}.

	{Filename extension}: .png.

	{RFC 2083}.  {W3C PNG pages
	(http://w3.org/Graphics/PNG/)}.  {PNG home page
	(http://wco.com/~png/)}.

	(1997-08-07)

Portable Object Adapter

	<architecture> (POA) Part of the {CORBA} architecture.

	[Details?]

	(2004-06-23)

Portable Operating System Interface

	<operating system, standard> (POSIX) A set of {IEEE} standards
	designed to provide {application} {portability} between {Unix}
	variants.  IEEE 1003.1 defines a Unix-like operating system
	interface, IEEE 1003.2 defines the {shell} and utilities and
	IEEE 1003.4 defines {real-time} extensions.

	["More UNIX For Dummies", ISBN: 1-56884-361-5] says it stands
	for "Portable Operating System Interface with an X thrown in
	to make it sound cooler."

	(1997-12-04)

Portable Pixmap

	<file format> (PPM) A colour {image} {file format}.

	A PPM file contains the following:

	 a two character "{magic number}" - "P3",
	 the width in pixels,
	 the height in pixels,
	 the maximum colour component value,
	 HEIGHT rows of WIDTH {pixels}.

	The rows are ordered from top to bottom with the pixels in
	each row ordered from left to right.  Each pixel is
	represented as three values for red, green, and blue.

	All parts are separated by {whitespace} and numbers are in
	decimal {ASCIII} representation.  A zero pixel component means
	that colour is absent.  Characters from a "#" to the next
	end-of-line are ignored and no line should be longer than 70
	characters.

	Here is an example of a small pixmap in this format:

	 P3
	 # feep.ppm
	 4 4
	 15
	  0  0  0    0  0  0    0  0  0   15  0 15
	  0  0  0    0 15  7    0  0  0    0  0  0
	  0  0  0    0  0  0    0 15  7    0  0  0
	 15  0 15    0  0  0    0  0  0    0  0  0

	A "RAWBITS" variant has magic number "P6", pixel values are
	stored as plain binary bytes, instead of ASCII decimal and no
	whitespace is allowed after a single whitespace character
	after the maximum colour component value which must be less
	than or equal to 255.

	(1998-02-06)

Portable Scheme Debugger

	(PSD) A package for source code debugging of {R4RS}-compliant
	{Scheme} under {GNU Emacs} by Kellom ?ki Pertti
	<pk@cs.tut.fi>.  Version 1.1.  Distributed under {GNU} {GPL}.
	It works with {scm}, {Elk} and {Scheme->C}.

	{(ftp://ftp.cs.tut.fi/pub/src/languages/schemes/psd.tar.Z)}.

	(1992-10-08)

Portable Scheme Interpreter

	(PSI) A portable scheme interpreter by Ozan Yigit
	<oz@ursa.sis.yorku.ca>, David Keldsen and Pontus Hedman that
	includes a simple {DAG} compiler and a {virtual machine}.  It
	can be used as an integrated extension {interpreter} in other
	systems and allows easy addition of new primitives.  There are
	some unique debugging and tracing facilities.  Acceptable
	performance results from a fairly straight-forward
	implementation.  {Continuations} are fully and portably
	supported and perform well.  PSI is based on the simple
	compilers and {virtual machine} in Kent Dbyvig's thesis.

	The pre-release version conforms to {R4RS} with a number of
	useful extensions.

	(1993-02-19)

Portable Standard Lisp

	<language> (PSL) A dialect of {Lisp} from {Utah University}.
	PSL is available as a kit for {68000} and also runs on {VAX}.
	It compiles {Lisp} to {C}-code {virtual machine} language.

	["The Portable Standard LISP Users Manual", TR-10, CS Dept, U
	Utah, Jan 1982].

	["A Portable Lisp System", M.L. Griss et al, Proc 1982 ACM
	Symp on Lisp and Functional Prog, Aug 1982].

	(2000-09-25)

Portable Tool Interface

	<programming, standard> (PTI) A standard such as {PCTE},
	allowing interworking between different software tools via
	defined interfaces to the user and to the {repository} or
	{object management system}.

	(2000-09-25)

Port Address Translation

	<networking> (PAT) A function provided by some {routers} which
	allows {hosts} on a {LAN} to communicate with the rest of a
	network (such as the {Internet}) without revealing their own
	private {IP address}.  All outbound {packets} have their IP
	address translated to the routers external IP address.
	Replies come back to the router which then translates them
	back into the private IP address of the original host for
	final delivery.

	Compare {SOCKS}.

	(1998-05-08)

PORTAL

	Process-Oriented Real-Time Algorithmic Language.

	["PORTAL - A Pascal-based Real-Time Programming Language",
	R. Schild in Algorithmic Languages, J.W. deBakker et al eds,
	N-H 1981].

portal

	<World-Wide Web> A {website} that aims to be an entry point
	to the {World-Wide Web}, typically offering a {search engine}
	and/or links to useful pages, and possibly news or other
	services.  These services are usually provided for free in the
	hope that users will make the site their default {home page}
	or at least visit it often.  Popular examples are {Yahoo} and
	{MSN}.  Most portals on the {Internet} exist to generate
	advertising income for their owners, others may be focused on
	a specific group of users and may be part of an {intranet} or
	{extranet}.  Some may just concentrate on one particular
	subject, say technology or medicine, and are known as a
	{vertical portals}.

	(2001-07-07)

porting

	Translating software to run on a different computer and/or
	{operating system}.

	(1995-01-06)

Port Language

	["Communicating Parallel Processes", J. Kerridge et al, Soft
	Prac & Exp 16(1):63-86 (Jan 1986)].

portmapper

	<networking> A {server} that converts {TCP/IP} {protocol}
	{port} numbers into {RPC} program numbers.  It must be running
	in order to make RPC calls.

	When an RPC server starts, it tells portmap the port number it
	is listening on and what RPC program numbers it serves.
	Before a client can call a given RPC program number, it must
	contacts portmap on the server machine to determine the port
	number to which RPC packets should be sent.

	(1996-12-09)

port number

	{port}

POS

	{point of sale}

POSE

	<language A {query language} written in 1967.

	["POSE: A Language for Posing Problems to Computers",
	S. Schlesinger et al, CACM 10:279-285, May 1967].

	(1996-12-09)

poset

	{partially ordered set}

positional representation

	<mathematics> The conventional way of writing numbers as a
	string of digits in which each digit, D, has value D * R^I,
	where R is the {radix} or (number) base and I is the digit's
	position counting leftward from zero at the least significant
	(right-hand) end.  Each digit can be zero to R-1.  Each
	position has a weight or significance R times greater than the
	position to its right and the right-most place has a weight of
	one.

	Decimal numbers are radix ten, {binary} numbers are radix two,
	{octal} radix eight and {hexadecimal} radix 16.

	Positional representation makes arithmetic operations on large
	numbers much easier than, say, {roman numerals}.  It is
	fundamental to the binary representation used by {digital
	computers}.

	(2006-11-10)

POSIX

	{Portable Operating System Interface}

POSIX Threads

	<programming> (Pthreads) A {POSIX} {standard} {API} that
	defines a set of {C} programming language {types}, {functions}
	and {constants} for creating and manipulating {pre-emptive
	threads}.

	The standard's full name is "POSIX.1c, Threads extensions
	(IEEE Std 1003.1c-1995)".  Implementations are available on
	many {Unix}-like POSIX-conformant {operating systems} such as
	{FreeBSD}, {NetBSD}, {OpenBSD}, {GNU/Linux}, {Mac OS X} and
	{Solaris} as well as {DR-DOS} and {Microsoft Windows}.

	Pthreads was designed and implemented in the {PART} Project
	(POSIX / Ada-Runtime Project).

	(2012-04-18)

POST

	{power-on self-test}

post

	<messaging> To send a message to a {mailing list} or
	{newsgroup}.  Usually implies that the message is sent
	indiscriminately to multiple users, in contrast to "mail"
	which implies one or more deliberately selected individual
	recipients.

	You should only post a message if you think it will be of
	interest to a significant proportion of the readers of the
	group or list, otherwise you should use private {electronic
	mail} instead.  See {netiquette}.

	[{Jargon File}]

	(1997-12-04)

postcardware

	{Shareware} that borders on {freeware}, in that the author
	requests only that satisfied users send a postcard of their
	home town or something.  (This practice, silly as it might
	seem, serves to remind users that they are otherwise getting
	something for nothing, and may also be psychologically related
	to real estate "sales" in which $1 changes hands just to keep
	the transaction from being a gift.)

	[{Jargon File}]

posted write-through

	A {cache} with a posted write-through policy (e.g. Intel 80386)
	delays the write-back to main memory until the bus is not in
	use.

Postel, Jon

	{Jon Postel}

postfix notation

	<language> (Or "Reverse Polish Notation", RPN) One of the
	possible orderings of {functions} and {operands}: in postfix
	notation the functions are preceded by all their operands.
	For example, what may normally be written as "1+2" becomes "1
	2 +".  Postfix notation is well suited for {stack} based
	{architectures} but modern {compilers} reduced this advantage
	considerably.

	The best-known language with postfix syntax is {FORTH}.  Some
	{Hewlett-Packard} calculators use it, e.g. HP-25, HP-29C,
	HP-41C, HP-23SII.

	Compare: {infix notation}, {prefix notation}.

	(2003-06-23)

postfix syntax

	{postfix notation}

POSTGRES

	<database> An {active DBMS} developed at the {University of
	California at Berkeley} by a team led by Michael Stonebraker
	(1986-1994).  Postgres was later taken by {Illustra} and
	developed into a commercial product, which in turn was bought
	by {Informix} and integrated into their product, {Universal
	Server}.

	{PostgreSQL} is a further development of the original POSTGRES
	code as a {free software} alternative to commercial {DBMS}
	vendor offerings.

	[Details?  Reference?  Relationship to {Ingres}?]

	(1999-07-04)

PostgreSQL

	<database> /'post-gres-kyu-el/ An enhancement of the
	{POSTGRES} {database} system.

	PostgreSQL is an advanced {relational database management
	system} with some {object oriented} approaches.  PostgreSQL is
	developed and distributed as {free software}, and while
	retaining its freedom it remains technically and featurewise a
	worthy competitor to even the most advanced commercial
	alternatives.

	It was also one of the first databases to offer {MVCC} as
	opposed to {row-level locking} or {table locking}, thereby
	greatly improving multi-user performance.

	PostgreSQL implements an extended subset of {ANSI} {SQL} and
	runs on many {platforms}.  It also has {interfaces} to many
	different {programming languages} and database {protocols},
	like {ODBC} and {JDBC}.

	{(http://postgresql.org/)}.

	(1999-09-18)

posting

	A message sent to a {newsgroup} or {mailing list} (may also be
	called "a post") or the act of sending it.  Distinguished from
	a "letter" or ordinary {electronic mail} message by the fact
	that it is broadcast rather than point-to-point.  It is not
	clear whether messages sent to a small mailing list are
	postings or e-mail; perhaps the best dividing line is that if
	you don't know the names of all the potential recipients, it
	is a posting.

	[{Jargon File}]

postmaster

	The {electronic mail} contact and maintenance person at a site
	connected to the {Internet} or {UUCPNET}.  Often, but not
	always, the same as the {admin}.  The Internet standard for
	electronic mail ({RFC} 822) requires each machine to have a
	"postmaster" address; usually it is aliased to this person.
	See also {webmaster}.

post office problem

	<algorithm> Given a set of points (in N dimensions), find
	another point which minimises the sum of the distances from
	that point to each of the others.

	(2007-03-07)

Post Office Protocol

	<messaging, protocol> (POP) A {protocol} designed to allow
	single-user computers to retrieve {electronic mail} from a POP
	{server} via {TCP/IP}.  The default {port} is 110.

	The POP server might be a computer with a permanent {Internet}
	connection whereas its clients might only connect to it
	occasionally, e.g. by {modem}.

	There are (in 1994) three versions: POP, POP2, and {POP3}.
	Later versions are NOT compatible with earlier ones.

	[Details?]

	(2007-03-07)

post-order traversal

	{traversal}

POSTQUEL

	POSTGRES QUERy Language.  The language used by the {POSTGRES}
	{database} system.

	["The Design of POSTGRES", M. Stonebraker et al, Proc ACM
	SIGMOD Conf, June 1986].

	{Version 4.0
	(ftp://postgres.berkeley.edu/pub/postgresv4r0.tar.Z)}.

PostScript

	<language, text, graphics> A {page description language} based
	on work originally done by John Gaffney at Evans and
	Sutherland in 1976, evolving through "JaM" ("John and Martin",
	Martin Newell) at {XEROX PARC}, and finally implemented in its
	current form by John Warnock et al. after he and Chuck Geschke
	founded {Adobe Systems, Inc.} in 1982.

	PostScript is an {interpreted}, {stack-based language} (like
	{FORTH}).  It was used as a page description language by the
	{Apple LaserWriter}, and now many {laser printers} and
	on-screen graphics systems.  Its primary application is to
	describe the appearance of text, graphical shapes, and sampled
	{images} on printed or displayed pages.

	A program in PostScript can communicate a document description
	from a composition system to a printing system in a
	device-independent way.

	PostScript is an unusually powerful printer language because
	it is a full programming language, rather than a series of
	low-level escape sequences.  (In this it parallels {Emacs},
	which exploited a similar insight about editing tasks).  It is
	also noteworthy for implementing on-the fly {rasterisation},
	from {Bezier curve} descriptions, of high-quality {fonts} at
	low (e.g. 300 dpi) resolution (it was formerly believed that
	hand-tuned {bitmap fonts} were required for this task).

	PostScript's combination of technical merits and widespread
	availability made it the language of choice for graphical
	output until {PDF} appeared.

	The {Postscript point}, 1/72 inch, is slightly different from
	other {point} units.

	{An introduction
	(http://cs.indiana.edu/docproject/programming/postscript/postscript.html)}.

	["PostScript Language Reference Manual" ("The Red Book"),
	Adobe Systems, A-W 1985].

	[{Jargon File}]

	(2002-03-11)

Postscript point

	<unit, text> The variant of the {point} used by {Postscript},
	equal to 0.3527777778 mm, or 1/72 inch.

	(2002-03-11)

Post, Telephone and Telegraph administration

	<communications, company> (PTT) One of the many national
	bodies responsible for providing communications services in a
	particular country.  Traditionally, PTTs had monopolies in
	their respective countries.  This monopoly was first broken in
	the USA, with the UK joining somewhat later.  Currently the
	markets are being deregulated in Europe as well as other parts
	of the world.

	Well-known PTTs include {MCI}, {AT&T}, and {British Telecom}.

	Compare: {telco}.

	(1998-05-18)

POSYBL

	Programming system for distributed applications.  A {Linda}
	implementation for {Unix} networks by Ioannis Schoinas
	<sxoinas@csd.uch.gr>.

	{(ftp://ariadne.csi.forth.gr/pub/POSYBL.TAR.Z)}.

	(1995-12-04)

potential difference

	{voltage}

POTS

	{Plain Old Telephone Service}

pound

	<character> A British {pound sign} or Americal {hash character}.

	(2013-08-15)

pound on

	{bang on}

pound sign

	<character> "£", {ASCII} character 163, 0xA3.  A stylised capital
	"L" used to prefix amounts in British pounds sterling (GBP).

	Americans call the {hash character} ("#") "pound" but that is an
	antiquated reference to pounds weight (lb).

	(2013-08-15)

POWER

	Performance Optimization with Enhanced RISC.  The {IBM}
	processor architecture on which {PowerPC} was based.

PowerBuilder

	<tool, database> A {graphical user interface} development tool
	from {Powersoft} for developing {client-server} {database}
	{applications}.  It runs under {MS-DOS}(?) and {Microsoft
	Windows}.  There are also versions for {Microsoft Windows},
	{Windows NT}, {Macintosh}, and {Unix}.

	Applications can be built by creating {windows}, controls
	(such as {listboxes} and {buttons}), and {menus} within the
	PowerBuilder development environment.  The language used to
	program PowerBuilder, {PowerScript}, is loosely based on
	{BASIC}.

	PowerBuilder supports programming on many database backends
	including {Sybase} and {Oracle}.  It also has added support
	for {ODBC} database drivers.  PowerBuilder also comes with a
	built-in database backend ({WATCOM} {SQL} 32-bit {relational
	database}).

	{Product information
	(http://powersoft.com/mktg/prodinfo/prodintr.html)}.

	{FAQ (ftp://ftp.oar.net/pub/psoft/pb01.faq)}.

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

	[Correct list of platforms?]

	(2001-03-23)

power cycle

	<hardware> (Or "cycle power", "cycle") To turn a machine's
	power off and on, with the intention of clearing some kind of
	{hung} or {gronk}ed state.  Synonym {120 reset}; see also {Big
	Red Switch}.  Compare {Vulcan nerve pinch}, {bounce} and
	{boot}, and see the {AI Koan} about Tom Knight and the novice.

	[{Jargon File}]

	(2012-02-09)

powerdomain

	<theory> The powerdomain of a {domain} D is a domain
	containing some of the {subsets} of D.  Due to the asymmetry
	condition in the definition of a {partial order} (and
	therefore of a domain) the powerdomain cannot contain all the
	subsets of D.  This is because there may be different sets X
	and Y such that X <= Y and Y <= X which, by the asymmetry
	condition would have to be considered equal.

	There are at least three possible orderings of the subsets of
	a powerdomain:

	Egli-Milner:

		X <= Y  iff  for all x in X, exists y in Y: x <= y
		        and  for all y in Y, exists x in X: x <= y

	("The other domain always contains a related element").

	Hoare or Partial Correctness or Safety:

		X <= Y  iff  for all x in X, exists y in Y: x <= y

	("The bigger domain always contains a bigger element").

	Smyth or Total Correctness or Liveness:

		X <= Y  iff  for all y in Y, exists x in X: x <= y

	("The smaller domain always contains a smaller element").

	If a powerdomain represents the result of an {abstract
	interpretation} in which a bigger value is a safe
	approximation to a smaller value then the Hoare powerdomain is
	appropriate because the safe approximation Y to the
	powerdomain X contains a safe approximation to each point in
	X.

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

	(1995-02-03)

PowerFuL

	<language> A language combining {functional programming} and
	{logic programming}, using "angelic Powerdomains".

	(1998-06-30)

power hit

	(Or "power {glitch}") A sudden increase (spike) or decrease
	(drop-out) in the mains electricity supply.  These can cause
	crashes and even permanent damage to computers.  Computers and
	other electronic equipment should really include some kind of
	over-voltage protection in its mains input to prevent such
	damamge.

	[{Jargon File}]

Power Mac

	<computer> {Apple Computer}'s {personal computer} based on the
	{PowerPC}, introduced on 1994-03-14.

	The Power Mac G4 (Quicksilver 2002) was the first Power Mac to
	clock at 1 GHz.  In mid-2003, the Power Mac G5 was released,
	the first Mac to be based on a 64-bit architecture.  IBM
	manufactured the CPU for this new model.  The clock speed was
	initially 1.6 GHz but a dual 2 GHz system was available in
	September.  Existing {680x0} code (both applications and
	device drivers) run on Power Mac systems without modification
	via a {Motorola 68LC040} {emulator}.  The performance of these
	unmodified applications is equivalent to a fast {68040}-based
	{Macintosh}, e.g. a fast {Macintosh Quadra}.

	The Power Mac runs {Macintosh operating system} from {System
	7.5} to {Mac OS} 8.5.

	Latest version, as of 2003-11-26: Power Mac G5.

	{Power Mac Home (http://apple.com/powermac/)}.

	(2003-11-26)

Power Macintosh

	{Power Mac}

power-on reset

	<hardware>(POR) The processes that take place when a
	{hardware} device is turned on.  This may include running
	{power-on self-test} or reloading {software} from
	{non-volatile storage}.  The term implies that the device
	has some reasonably complex internal state that will be
	set back to a "normal" initial condition.  This state may
	include the physical state of the device (e.g. a {printer})
	as well as data in the memory of an {embedded system}.

	If a device has no reset button, and sometimes even
	if it does, turning it off and on again ({power
	cycling}) may be the only way to clear a fault.

	(2012-02-09)

power-on self-test

	<hardware, testing> (POST) A sequence of diagnostic tests that
	are run automatically by a device when the power is turned on.

	In a {personal computer} a typical POST sequence does the
	following:

	- checks that the {system board} is working

	- checks that the {memory} is working

	- compares the current system configuration with that
	recorded by the PC's configuration program to see if
	anything has been added or removed or broken

	- starts the video operation

	- checks that the {diskette} drive, {hard disk drive},
	{CD-ROM} drive, and any other drives that may be installed
	are working.

	When POST is finished, typically it will {beep}, and then
	let your {operating system} start to {boot}.  If POST finds
	an error, it may beep more than once (or possibly not at all
	if it is your PC speaker that is broken) and display a POST
	error message.  These messages are often nothing more than a
	single ominous number.  Some common numbers and their
	meanings are:

	161 Dead battery
	(get a new battery for the system board)

	162 Configuration changed
	(you added some memory or a new card to the PC)

	301 Keyboard error
	(take the book off the corner of the keyboard)

	Because a successful POST indicates that the system is
	restored to known state, turning the power off and on is a
	standard way to reset a system whose software has {hung}.
	Compare {120 reset}, {Big Red Switch}, {power cycle}.

	(2001-03-30)

PowerOpen

	The {PowerOpen Association} defines and promotes the
	{PowerOpen Environment} (POE).

PowerOpen Association

	An independent body established to promote, and test
	conformance with, the {PowerOpen Environment} (POE).

	(1994-11-08)

PowerOpen Environment

	<operating system> (POE) A definition containing {API} and
	{ABI} specifications based on the {PowerPC} architecture.  It
	is not an {operating system}.  The presence of the ABI
	specification in the POE distinguishes it from other open
	systems (POSIX, XPG4, etc.)  since it allows {platform}
	independent binary compatibility which is otherwise typically
	limited to particular hardware.

	The POE is an {open standard}, derived from {AIX} and
	conforming to industry open standards including {POSIX},
	{XPG4} and {Motif}.  The POE specification will be publicly
	available to anyone wishing to produce either {application
	programs} or hardware {platforms}.  The {PowerOpen
	Association} will provide the necessary {conformance test}ing
	and POE branding.

	The POE is hardware {bus} independent.  System implementations
	can range from {laptop computers} to {supercomputers}.  It
	requires a multi-user, {multitasking} {operating system}.  It
	provides networking support, an {X Window System} extension, a
	{Macintosh} Application Services extension and {Motif}.  It is
	{conformance test}ed and certified by an independent party
	(the {PowerOpen Association}).

	The POE specification is targeted for availability in the
	first quarter of 1994.  The {PowerOpen Association} will soon
	have some of the information material available on-line.

	(1994-11-08)

PowerPC

	<processor, standard> (PPC) A {RISC} {microprocessor} designed
	to meet a {standard} which was jointly designed by {Motorola},
	{IBM}, and {Apple Computer} (the PowerPC Alliance).  The
	PowerPC standard specifies a common {instruction set
	architecture} (ISA), allowing anyone to design and fabricate
	PowerPC processors, which will run the same code.  The PowerPC
	architecture is based on the IBM {POWER} architecture, used in
	IBM's {RS/6000} {workstations}.  Currently {IBM} and
	{Motorola} are working on PowerPC chips.

	The PowerPC standard specifies both 32-bit and 64-bit data
	paths.  Early implementations were 32-bit (e.g. {PowerPC
	601}); later higher-performance implementations were 64-bit
	(e.g. PowerPC 620).  A PowerPC has 32 integer {registers} (32-
	or 64 bit) and 32 {floating-point} (IEEE standard 64 bit)
	{floating-point} registers.

	The POWER CPU chip and PowerPC have a (large) common core, but
	both have instructions that the other doesn't.  The PowerPC
	offers the following features that POWER does not:

	Support for running in {little-endian} mode.

	Addition of single precision {floating-point} operations.

	Control of branch prediction direction.

	A hardware coherency model (not in Book I).

	Some other {floating-point} instructions (some optional).

	The real time clock (upper and lower) was replaced with the
	time base registers (upper and lower), which don't count in
	sec/ns (the decrementer also changed).

	64-bit instruction operands, registers, etc. (in 64 bit
	processors).

	See also {PowerOpen}, {PowerPC Platform} (PReP).

	{IBM PPC info
	(http://fnctsrv0.chips.ibm.com/products/ppc/index.html)}.

	{(gopher://info.hed.apple.com/)}, "Apple Corporate News/"
	(press releases), "Apple Technologies/" and "Product
	Information/".  {(gopher://ike.engr.washington.edu/)}, "IBM
	General News/", "IBM Product Announcements/", "IBM Detailed
	Product Announcements/", "IBM Hardware Catalog/".

	{Usenet} newsgroups: {news:comp.sys.powerpc},
	{news:comp.sys.mac.hardware}.

	["Microprocessor Report", 16 October 1991].

	(1994-09-30)

PowerPC 601

	<processor> A 32-bit {RISC} processor with 2.8 million
	transistors (~1.2 million in the core logic) and 32 kilobytes
	of on-chip {cache}.  Die size: 118.8 mm2.  Heat dissipation at
	66MHz: 9W.  Performance at 66MHz: integer >60 {SPECint92},
	{floating-point} >80 {SPECfp92}.  Estimated manufacturing
	cost: $76.  Maximum instructions per cycle: 3.  32 32-bit
	general-purpose registers.  32 64-bit {floating-point}
	registers.  Successors: PowerPC 603, 604, 620.

	(2000-01-12)

PowerPC G3

	<processor> A {processor} chip from {Apple Computer, Inc.}.

	Described by Apple as "the third generation in the development
	of advanced processor technology" the first PowerPC G3
	products were launched in 1997.  It is specifically optimised
	for the {Macintosh Operating System} and uses {backside cache}
	to improve performance.  The PowerPC G3 has been used by Apple
	in {notebook}, {desktop} and {server} products.

	{(http://apple.com/powermac/technologies/g3.html)}.

	(1998-10-03)

PowerPC Platform

	<architecture, standard> (PPCP, PReP - PowerPC Reference
	Platform, formerly CHRP - Common Hardware Reference Platform)
	An open system standard, designed by {IBM}, intended to ensure
	compatibility among {PowerPC}-based systems built by different
	companies.  The PReP standard specifies the {PCI} bus, but
	will also support {ISA}, {MicroChannel} and {PCMCIA}.

	PReP-compliant systems will be able to run the {Macintosh} OS,
	{OS/2}, {WorkplaceOS}, {AIX}, {Solaris}, {Taligent} and
	{Windows NT}.  IBM systems will (of course) be PReP-compliant.
	Apple's first {PowerPC} {Macintosh}es will not be compliant,
	but future ones may be.

	{IBM info
	(http://fnctsrv0.chips.ibm.com/products/ppc/L3ppcp.html)}.

	{(http://billboard.emedia.com.au/chipster/computers/CHRP/whatsCHRP.html)}.

	[Current OS statuses?]

	(1997-03-23)

PowerPC Reference Platform

	{PowerPC Platform}

Powerpoint

	<graphics, tool> A {Microsoft} application for creating
	presentations, speeches, slides, etc.

	(1996-08-26)

power save mode

	<architecture> A feature of a component or subsystem designed
	to actively reduce its power consumption when not in use.
	Almost any electronic device might benefit from having a power
	save mode but the most common application is for portable
	computers which attempt to conserve battery life by
	incorporating power saving modes in the {CPU}, display, disks,
	printer, or other units.

	(1995-10-14)

powerset

	<mathematics> The powerset of a set S is the set of possible
	subsets of S, usually written PS.

	(1994-11-08)

Powersoft Corporation

	<company> A leading vendor of {client/server} application
	development tools.

	In February 1994, {Watcom} became a wholly-owned subsidiary of
	Powersoft Corporation which merged with {Sybase} on 13
	February 1995.  In April 1995, the new company is the fastest
	growing top-ten software company and the seventh largest
	software company in the world.

	{(http://powersoft.com/)}.

	Headquarters: Concord, Massachusetts, USA.

	(1995-12-27)

power supply

	{power supply unit}

power supply unit

	<hardware> (PSU) An electronic module that converts high
	voltage (110 or 240 VAC) {alternating current} mains
	electricity into smoothed {direct current} at the various
	differnt voltages required by the {motherboard}; internal
	{peripheral} devices, cheifly storage devices: {hard disks},
	{CD} or {DVD}, {floppy disks} and external connections such as
	{USB}.  A PSU needs a high enough power output rating to
	supply all the devices connected to it and should output as
	little as possible electrical noise, both on the output wires
	and as {electromagnetic radiation}.

	See also {uninterruptable power supply}.

	(2007-09-20)

PP96

	<language> A parallel {Pascal} extension.

	[Details?  Any relation to {Parallel Pascal}?]

	(1998-04-29)

PPC

	{PowerPC}

PPCP

	{PowerPC Platform}

PPD

	{Parallel Presence Detect}

PPGA

	{Plastic Pin Grid Array}

ppi

	{pixels per inch}

PPL

	Polymorphic Programming Language.  An interactive, extensible
	language, based on {APL}, from {Harvard University}.

	["Some Features of PPL - A Polymorphic Programming Language",
	T.A. Standish, SIGPLAN Notices 4(8) (Aug 1969)].

	(1994-10-06)

PPLambda

	<language> essentially the {first-order predicate calculus}
	superposed upon the {simply-typed} {polymorphic
	lambda-calculus}.  PPLambda is the {object language} for
	{LCF}.

	["Logic and Computation: Interactive Proof with Cambridge
	LCF", L. Paulson, Cambridge U Press, 1987].

	(1995-05-01)

PPM

	{Portable Pixmap}

PPN

	Project-Programmer Number.

	A user-ID under {TOPS-10} and its various mutant progeny at
	{SAIL}, {BBN}, {CompuServe} and elsewhere.  Old-time hackers
	from the {PDP-10} era sometimes use this to refer to user IDs
	on other systems as well.

	[{Jargon File}]

	(1994-11-18)

PPP

	{Point-to-Point Protocol}

PPPoA

	{Point-to-Point Protocol over ATM}

PPPoE

	{Point-to-Point Protocol over Ethernet}

P-Prolog

	<language> A parallel {logic language}.

	["P-Prolog: A Parallel Logic Language Based on Exclusive
	Relation", R. Yang et al, Third Intl Conf on Logic Prog, 1986,
	pp. 255-269].

	(1994-11-18)

PPTP

	{Point-to-Point Tunneling Protocol}

PQS

	{Picture Quality Scale}

PR

	{Packet Radio}

pr

	<networking> The {country code} for Puerto Rico.

	(1999-01-27)

pr0n

	{pron}

PRA

	PRAgmatics.

	The language used by {COPS} for specification of {code
	generators}.

	["Metalanguages of the Compiler Production System COPS", J.
	Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
	W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

	(1994-11-18)

pragma

	<programming> (pragmatic information) A standardised form of
	{comment} which has meaning to the {compiler} or some other
	program.  It may use a special {syntax} or a specific form
	within the normal comment syntax.  A pragma usually conveys
	non-essential information, often intended to help the compiler
	to {optimise} the program or to generate formatted
	{documentation}.

	(2010-01-19)

PRAM

	<hardware> 1. {parallel random-access machine}.

	2. {parameter RAM}.

Praxis Critical Systems

	<company> The company that supplies {SPARK}.

	(2001-07-12)

pre\box

	<computer> {Phase 5}'s Amiga clone, announced on 1998-03-10.
	The pre\box will have a processor card with four {PowerPC}
	processors running in parallel.  The processors will range
	from four 200 MHz {PPC604e} chips to four 300MHz {PPC750}
	chips.  It will have a {Voodoo2} {video graphics card}, as
	well as a custom video chip working in concert, with 8 MB of
	{video ram}.  It will run {Amiga OS} 3.1 (or higher if
	{Gateway 2000} delivers the next upgrade before its release)
	and have {Motorola 68000} {CPU} {emulation} in software.

	Other features include {EIDE}, {Ultra Wide SCSI-II}, {PCI},
	{Ethernet} and {DIMM} sockets.  Extra RAM, hard disks and
	{CD-ROM} will be available.  The initial specification will
	probably be 32MB RAM, 32-speed CD and 4GB hard disk in an {ATX
	minitower}.  Systems should start at about $2000 for four
	parallel 200 MHZ CPUs and be available at the end of 1998.

	{Full press release
	(http://cucug.org/amiga/aminews/1998/980310-phase5.html)}.

	(1998-07-29)

PRE-CC

	PREttier Compiler-Compiler.

	An earlier version of {PRECCX}.

	(1995-01-24)

PRECCX

	<tool> (Pre-C-Compiler eXtended) An infinite-{lookahead}
	{compiler-compiler} by Peter Breuer <ptb@comlab.ox.ac.uk> for
	{context dependent grammars}.  PRECCX generates {ANSI C}.
	Specification scripts are in very {EBNF} with {inherited
	attributes} and {synthetic attributes} allowed.  Scripts can
	be compiled in separate {modules} and linked later.
	{Meta-production rules} are allowed.  Grammars can be
	essentially LL(oo) with optimisations.  A converter for {yacc}
	scripts is available.

	Versions 1.xx were known as "PRECC" and only had unbounded
	lookahead.  The 2.xx series added the "X" for "extended" and
	featured higher order parameterisation (inherited attributes).

	Version 2.42 integrates inherited and synthesized attributes
	by using a "monadic" model for parsing.  You can now synthsize
	attributes during the pass and inherit them in the remainder,
	e.g.

		@ foo = bar\x gum(x)

	synthesises an x in bar and passes it down into gum as a
	parameter.  Useful for @ what = ?\x did_you_say(x), for
	example.  It now compiles into {C} instead of running an
	{interpreter} at parse-time.

	Version 2.42 runs under {Unix} and {MS-DOS}.

	{(http://comlab.ox.ac.uk/archive/redo/precc.html)}.

	E-mail: Peter Breuer <ptb@comlab.ox.ac.uk>, Jonathan Bowen
	<J.P.Bowen@reading.ac.uk>.

	["The PRECC Compiler-Compiler" by P.T. Breuer and J.P. Bowen.
	In E. Davies and A. Findlay (eds.), Proc. UKUUG/SUKUG Joint
	New Year 1993 Conference, St. Cross Centre, Oxford, UK, 6-8
	January 1993, ISBN 1 873611 06 4 ({UKUUG}), 0 9520700 0 6
	(SUKUG) UKUUG/SUKUG Secretariat, Owles Hall, Buntingford,
	Herts SG9 9PL, UK, pp 167-182, 1993].

	(2000-04-24)

precedence

	{operator precedence}

precedence lossage

	/pre's*-dens los'*j/ A misunderstanding of {operator
	precedence} resulting in unintended grouping of arithmetic or
	logical {operators} when coding an {expression}.  Used
	especially of mistakes in {C} code due to the nonintuitively
	low precedence of "&", "|", "^", "<<" and ">>".  For example,
	the following C expression, intended to test the least
	significant bit of x,

		x & 1 == 0

	is parsed as

		x & (1 == 0)

	which is always zero (false).

	Some lazy programmers ignore precedence and parenthesise
	everything.  {Lisp} fans enjoy pointing out that this can't
	happen in *their* favourite language, which eschews precedence
	entirely, requiring one to use explicit parentheses
	everywhere.

	[{Jargon File}]

	(1994-12-16)

precharge

	<storage> The phase in the access cycle of {DRAM} during which
	the storage capacitors are charged to the appropriate value.

	(1997-02-23)

precision

	<mathematics> The number of decimal places to which a number
	is computed.

	Compare {accuracy}.

	(1998-04-19)

predecessor

	{parent}

predicate calculus

	{predicate logic}

predicate logic

	<logic> (Or "predicate calculus") An extension of
	{propositional logic} with separate symbols for {predicates},
	{subjects}, and {quantifiers}.

	For example, where propositional logic might assign a single
	symbol P to the proposition "All men are mortal", predicate
	logic can define the predicate M(x) which asserts that the
	subject, x, is mortal and bind x with the {universal
	quantifier} ("For all"):

		All x . M(x)

	Higher-order predicate logic allows predicates to be the
	subjects of other predicates.

	(2002-05-21)

predict

	1. <simulation> {simulation}, {predictive analytics}.

	2. <architecture> {branch prediction}.

	3. <audio, compression> {predictive audio compression}.

predomain

	<theory> A {domain} with no {bottom} element.

	(1995-05-04)

pre-emptive multitasking

	<operating system, parallel> A type of {multitasking} where
	the {scheduler} can interrupt and suspend ("swap out") the
	currently running task in order to start or continue running
	("swap in") another task.  The tasks under pre-emptive
	multitasking can be written as though they were the only task
	and the {scheduler} decides when to swap them.  The scheduler
	must ensure that when swapping tasks, sufficient state is
	saved and restored that tasks do not interfere.

	The length of time for which a process runs is known as its
	"{time slice}" and may depend on the task's priority or its
	use of resources such as memory and I/O.

	{OS/2}, {Unix} and the {Amiga} use pre-emptive multitasking.

	This contrasts with {cooperative multitasking} where each task
	must include calls to allow it to be {deschedule}d
	periodically.

	(1995-03-20)

prefetch

	{instruction prefetch}

prefix

	1. <unit> An {SI prefix} used to multiply the value of an {SI
	(Système International)} unit by some power of ten.

	2. <programming, mathematics> In mathematics or programming, a
	{prefix operator} is one that is written before its {operand}.  In
	a {programming language} using {prefix notation}, all operators
	are prefix operators.

	(2014-07-08)

prefix notation

	<language> (Or "prefix syntax") One of the possible orderings
	of {functions} and {operands}: in prefix notation the function
	precedes all its operands.  For example, what may normally be
	written as "1+2" becomes "(+ 1 2)".  A few languages (e.g.,
	{lisp}) have strictly prefix syntax, many more employ prefix
	notation in combination with {infix notation}.

	The opposite, {postfix notation}, is somewhat rarer.

	(2014-07-08)

prefix syntax

	{prefix notation}

pre-order

	1. <graph theory> {traversal}.

	2. <theory> A {relation} R is a pre-order if it is {reflexive}
	(x R x) and {transitive} (x R y R z => x R z).  If it is also
	{antisymmetric} (x R y R x => x = y) then it is a {partial
	ordering}.

	(2001-10-01)

pre-order traversal

	{traversal}

PREP

	1. (PReP) {PowerPC Reference Platform}.

	2. (PREP) PRogrammed Electronics Patterns.  Language for
	designing {integrated circuits}.  ["Computer Assisted Mask
	Production", R.L. Rosenfeld, Proc IEEE 57(9) Sep 1969].

prepaging

	<architecture> (Or "working set model") A technique whereby
	the {operating system} in a {paging} {virtual memory}
	{multitasking} environment loads all pages of a process's
	{working set} into memory before the process is restarted.

	Under {demand paging} a process accesses its working set by
	{page faults} every time it is restarted.  Under prepaging the
	system remembers the pages in each process's working set and
	loads them into physical memory before restarting the process.
	Prepaging reduces the {page fault} rate of reloaded processes
	and hence generally improves CPU efficiency.

	["Modern Operating Systems", Andrew S. Tanenbaum,
	pub. Prentice Hall, Inc.  1992].

	(1998-04-23)

prepend

	<jargon> /pree'pend'/ (by analogy with "append") To prefix or
	add to the beginning.

	[{Jargon File}]

	(1998-04-23)

preprocessor

	<programming> A program that transforms input data in some way
	before it is read by the main program.  In the case of a
	{compiler}, the input is {source code}.  The main advantage of
	using a preprocessor is that it is possible to change the
	specification of the input data without changing the main
	program.  The separation can also help to make the system's
	overall behaviour easier to understand.  The disadvantage is
	that performance may be reduced by the extra input and output
	performed between the two programs.

	For example, the {C} preprocessor, {cpp}, handles textual
	{macro} substitution (it acts as a "macro preprocessor"),
	{conditional compilation} and inclusion of other files.

	A preprocessor may be used to transform a program into a
	simpler language, e.g. to transform {C++} into {C}.

	(2007-04-05)

pre-sales support rep

	<job> A person who supports sales by analysing customer
	requirements, proposing and demonstrating technical solutions,
	ensuring acceptable product installations, training users and
	providing initial technical support.

	(2004-03-20)

presence detect

	<storage> A means of identifying a {memory chip} to the
	{memory controller} logic.  The original scheme, Parallel
	Presence Detect (PPD) used a separate pin for each bit of
	information.  The limited number of pins available only gave
	the density and the speed of the chips.  To pass more
	information, the Serial Presence Detect (SPD) scheme was
	introduced, storing the information in {serial EEPROM} with
	one pin to enable it and one for data.

	(2012-06-25)

presentation layer

	<networking> The second highest layer (layer 6) in the {OSI}
	seven layer model.  Performs functions such as text
	{compression}, code or format conversion to try to smooth out
	differences between {hosts}.  Allows incompatible processes in
	the {application layer} to communicate via the {session
	layer}.

	Documents: {ITU} Rec. X.226 ({ISO} 8823), ITU Rec. X.216 (ISO
	8822).

	(1996-07-20)

Presentation Manager

	The {elephantine} graphical user interface to the {OS/2}
	{operating system}.

prestidigitization

	/pres`t*-di"j*-ti:-zay"sh*n/ 1. A term coined by Daniel Klein
	<dvk@lonewolf.com> for the act of putting something into
	digital notation via sleight of hand.

	["Open Channel", IEEE "Computer", November 1981].

	2. Data entry through legerdemain.

	[{Jargon File}]

	(1994-11-01)

PRESTO

	A parallel language for shared-memory multiprocessors, built
	on top of C++ by Bershad et al, U Washington 1987.  PRESTO
	provides {class}es for {threads} and {spinlocks} as well as
	{Mesa}-style {monitors} and {condition variables}.

	{(ftp://cs.washington.edu/pub/presto1.0.tar.Z)}.  E-mail:
	<presto@cs.washington.edu>.

	["PRESTO: A Kernel for Parallel Programming Environments",
	B.N. Bershad et al, U Wash CS TR, Jan 1987].

Pretty Amazing New Stuff

	<humour, communications> (PANS) What {PSTN} is evolving into.

	(1996-10-16)

Pretty Good Privacy

	<tool, cryptography> (PGP) A high security {RSA} {public-key
	encryption} application for {MS-DOS}, {Unix}, {VAX/VMS}, and
	other computers.  It was written by {Philip R. Zimmermann}
	<pkz@acm.org> of Phil's Pretty Good(tm) Software and later
	augmented by a cast of thousands, especially including Hal
	Finney, Branko Lankester, and Peter Gutmann.

	PGP was distributed as "{guerrilla freeware}".  The authors
	don't mind if it is distributed widely, just don't ask Philip
	Zimmermann to send you a copy.  PGP uses a {public-key
	encryption} {algorithm} claimed by US patent #4,405,829.  The
	exclusive rights to this patent are held by a California
	company called {Public Key Partners}, and you may be
	infringing this patent if you use PGP in the USA.  This is
	explained in the PGP User's Guide, Volume II.

	PGP allows people to exchange files or messages with {privacy}
	and {authentication}.  Privacy and authentication are provided
	without managing the keys associated with conventional
	cryptographic software.  No secure channels are needed to
	exchange keys between users, which makes PGP much easier to
	use.  This is because PGP is based on {public-key
	cryptography}.

	PGP encrypts data using the {International Data Encryption
	Algorithm} with a random {session key}, and uses the {RSA}
	algorithm to encrypt the session key.

	In December 1994 Philip Zimmermann faced prosecution for
	"exporting" PGP out of the United States but in January 1996
	the US Goverment dropped the case.  A US law prohibits the
	export of {encryption} software out of the country.
	Zimmermann did not do this, but the US government hoped to
	establish the proposition that posting an encryption program
	on a {BBS} or on the {Internet} constitutes exporting it - in
	effect, stretching export control into domestic censorship.
	If the government had won it would have had a chilling effect
	on the free flow of information on the global network, as well
	as on everyone's privacy from government snooping.

	{FAQ (ftp://ftp.netcom.com/pub/mp/mpj/getpgp.asc)}.  {UK FTP
	(ftp://src.doc.ic.ac.uk/packages/pgp/)}.  {USA FTP
	(http://web.mit.edu/network/pgp-form.html)}.
	{(http://pegasus.esprit.ec.org/people/arne/pgp.html)}.

	{Justice Dept. announcement
	(http://eff.org/pub/Alerts/usatty_pgp_011196.announce)}.

	["Protect Your Privacy: A Guide for PGP Users", William
	Stallings, Prentice-Hall, ISBN 0-13-185596-4].

	(1996-04-07)

pretty pictures

	(scientific computation) The next step up from {numbers}.
	Interesting graphical output from a program that may not have
	any sensible relationship to the system the program is
	intended to model, but good for showing to {management}.

	[{Jargon File}]

	(1995-02-15)

prettyprint

	/prit'ee-print/ (Or "pretty-print") To generate "pretty"
	human-readable output from a {hairy} internal representation;
	especially used for the process of {grind}ing program code.

	[{Jargon File}]

	(1995-02-15)

pretzel key

	{feature key}

preventive maintenance

	(PM) To bring down a machine for inspection or test purposes.

	See {provocative maintenance}, {scratch monkey}.

	(1995-02-15)

PRI

	{ISDN} {Primary Rate Interface}.

	See also {BRI}

	(1994-12-08)

primary cache

	<hardware, architecture> (L1 cache, level one cache) A small,
	fast {cache} memory inside or close to the {CPU} chip.

	For example, an {Intel 80486} has an eight-{kilobyte} on-chip
	cache, and most {Pentiums} have a 16-KB on-chip level one
	cache that consists of an 8-KB {instruction cache} and an 8-KB
	{data cache}.

	The larger, slower {secondary cache} is normally connected to
	the CPU via its external {bus}.

	(1997-06-25)

Primary Domain Controller

	<networking> (PDC) Each {Windows NT} {domain} has a Primary
	Domain Controller and zero or more {Backup Domain
	Controllers}.  The PDC holds the {SAM} database and
	authenticates access requests from {workstations} and
	{servers} in the domain.

	(2003-07-16)

primary key

	<database> A unique {identifier}, often an {integer}, that
	labels a certain row in a table of a {relational database}.

	When this value occurs in other tables as a reference to a
	particular row in the first table it is called a "foreign
	key".

	Some {RDBMS}es can generate a new unique identifier each time
	a new row is inserted, others merely allow a column to be
	constrained to contain unique values.

	A table may have multiple {candidate keys}, from which the
	primary key is chosen.  The primary key should be an arbitrary
	value, such as an {autoincrementing} integer.  This avoids
	dependence on uniqueness, permanence and format of existing
	columns with real-world meaning (e.g. a person's name) or
	other external identifier (e.g. social security number).

	There should be enough possible primary key values to cater
	for the current and expected number of rows, bearing in mind
	that a wider column will generally be slower to process.

	(2006-05-29)

primary management domain

	<messaging> (PRMD) The component of an {X.400} {electronic
	mail address} that gives the organisation name, usually
	abbreviated to p= in written addresses.

	See also {ADMD}.

	(2003-05-15)

Primary Rate Interface

	(PRI) A type of {ISDN} connection.  In North America and
	Japan, this consists of 24 channels, usually divided into 23 B
	channels and 1 D channel, and runs over the same physical
	interface as {T1}.  Elsewhere the PRI has 31 user channels,
	usually divided into 30 B channels and 1 D channel and is
	based on the {E1} interface.

	PRI is typically used for connections such as one between a
	PBX (private branch exchange, a telephone exchange operated by
	the customer of a telephone company) and a CO (central office,
	of the telephone company) or IXC (inter exchange carrier, a
	long distance telephone company).

	(1995-01-18)

primary storage

	{main memory}

Prime Computer

	<company> (Or "Pr1ME") A {minicomputer} manufacturer.

	[Dates?  Status?  Products?  Addresses?]

	(1996-09-28)

Primenet, Inc.

	Arizona's {Internet provider}.

	(1994-12-08)

prime number theorem

	<mathematics> The number of {prime numbers} less than x is
	about x/log(x).  Here "is about" means that the ratio of the
	two things tends to 1 as x tends to infinity.  This was first
	conjectured by {Gauss} in the early 19th century, and was
	proved (independently) by Hadamard and de la Vall'ee Poussin
	in 1896.  Their proofs relied on {complex analysis}, but Erdös
	and Selberg later found an "elementary" proof.

	(1995-04-10)

prime time

	(From TV programming) Normal high-usage hours on a
	{time-sharing} system; the day shift.  Avoidance of prime time
	was traditionally given as a major reason for {night mode}
	hacking.  The rise of the personal workstation has rendered
	this term, along with {time-sharing} itself, almost obsolete.
	The hackish tendency to late-night {hacking runs} has changed
	not a bit.

	[{Jargon File}]

	(1995-01-18)

primitive

	<programming> A {function}, {operator}, or {type} which is
	built into a programming language (or {operating system}),
	either for speed of execution or because it would be
	impossible to write it in the language.  Primitives typically
	include the arithmetic and logical operations (plus, minus,
	and, or, etc.) and are implemented by a small number of
	{machine language} instructions.

	(1995-05-01)

Princeton University

	<body, education> Chartered in 1746 as the College of New
	Jersey, Princeton was British North America's fourth college.
	First located in Elizabeth, then in Newark, the College moved
	to Princeton in 1756.  The College was housed in Nassau Hall,
	newly built on land donated by Nathaniel and Rebeckah
	FitzRandolph.  Nassau Hall contained the entire College for
	nearly half a century.  The College was officially renamed
	Princeton University in 1896; five years later in 1900 the
	Graduate School was established.

	Fully coeducational since 1969, Princeton now enrolls
	approximately 6,400 students (4,535 undergraduates and 1,866
	graduate students).  The ratio of full-time students to
	faculty members (in full-time equivalents) is eight to one.

	Today Princeton's main campus in Princeton Borough and
	Princeton Township consists of more than 5.5 million square
	feet of space in 160 buildings on 600 acres.  The University's
	James Forrestal Campus in Plainsboro consists of one million
	square feet of space in four complexes on 340 acres.

	As Mercer County's largest private employer and one of the
	largest in the Mercer/Middlesex/Somerset County region, with
	approximately 4,830 permanent employees - including more than
	1,000 faculty members - the University plays a major role in
	the educational, cultural, and economic life of the region.

	{(http://princeton.edu/index.html)}.

	(1994-01-19)

principal type

	The most general {type} of an expression.  For example, the
	following are all valid types for the {lambda abstraction}
	(\ x . x):

		Int -> Int
		Bool -> Bool
		(a->b) -> (a->b)

	but any valid type will be an instance of the principal type:
	a -> a.  An instance is derived by substituting the same type
	expression for all occurences of some {type variable}.  The
	principal type of an expression can be computed from those of
	its subexpressions by Robinson's {unification} {algorithm}.

	(1994-12-16)

PRINT

	<language> PRe-edited INTerpreter.

	An early mathematics language for the {IBM 705}.

	[Sammet 1969, p. 134].

	(1995-05-01)

printed circuit board

	<hardware> (PCB) A thin board to which electronic components
	are fixed by solder.  Component leads and {integrated circuit}
	pins may pass through holes ("vias") in the board or they may
	be {surface mounted}, in which case no holes are required
	(though they may still be used to connect different layers).

	The simplest kind of PCB has components and wires on one side
	and interconnections (the printed circuit) on the other.  PCBs
	may have components mounted on both sides and may have many
	internal layers, allowing more connections to fit in the same
	board area.  Boards with internal conductor layers usually
	have "plated-through holes" to improve the electrical
	connection to the internal layers.

	The connections are metal strips (usually copper).  The
	pattern of connections is often produced using photo-resist
	and acid etching.  Boards, especially those for high frequency
	circuits such as modern {microprocessors}, usually have one or
	more "{ground planes}" and "power planes" which are large
	areas of copper for greater current carrying ability.

	A computer or other electronic system might be built from
	several PCBs, e.g. processor, memory, graphics controller, disk
	controller etc.  These boards might all plug into a
	{motherboard} or {backplane} or be connected by a {ribbon
	cable}.

	(1995-05-01)

printer

	<printer> A {peripheral} device for producing text and images
	on paper.  There are many different types, broadly grouped
	into "{impact printers}" and "{non-impact printers}".

	Compare {plotter}.  See also {Braille printer}, {tree-killer}.

	(1996-01-13)

Printer Access Protocol

	<networking, protocol, printer> (PAP) A {protocol} used in
	{Mac OS} {Appletalk} to provide bi-directional communication
	between {PostScript} printers and the client computer.

	(1999-03-02)

printer port

	<hardware, printer> A connector found on many {microcomputers}
	intended for attaching a printer.  This may be a
	general-purpose input/output {parallel port} or may be a
	special {Centronics} interface.

	Most printers can also be connected to a {serial port} but
	that is unlikely to be described as a "printer port".

	(1996-01-07)

printf

	<library> The standard function in the {C} programming
	language library for printing formatted output.

	The first argument is a format string which may contain
	ordinary characters which are just printed and "conversion
	specifications" - sequences beginning with '%' such as %6d
	which describe how the other arguments should be printed, in
	this case as a six-character decimal integer padded on the
	right with spaces.

	Possible conversion specifications are d, i or u (decimal
	integer), o ({octal}), x, X or p ({hexadecimal}), f
	({floating-point}), e or E ({mantissa} and {exponent},
	e.g. 1.23E-22), g or G (f or e format as appropriate to the
	value printed), c (a single character), s (a string), %
	(i.e. %% - print a % character).  d, i, f, e, g are signed,
	the rest are unsigned.

	The variant {fprintf} prints to a given output stream and
	sprintf stores what would be printed in a string variable.

	{Unix manual page}: printf(3).

	(1996-12-08)

PRINT I

	An early system on {IBM 705}.

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

printing discussion

	[XEROX PARC] A protracted, low-level, time-consuming,
	generally pointless discussion of something
	only peripherally interesting to all.

	[{Jargon File}]

print server

	<printer> A {server} device that is set up on a {network} to
	route print requests and status information between computers
	and {printers} connected by a network.  A typical print server
	routes print requests for multiple computers and printers on a
	network.

	For example, a networked {workstation} user submits a print
	command that includes a {print file} and information about the
	printer to be used, usually a nearby printer for convenience.
	The print server sends the print file to the requested
	printer.  The printer {spools} the print file and provides job
	status.  The print server relays the status of the printer
	back to the workstation and makes this status information
	available to other devices on the network.

	(1999-02-18)

Print Services Facility

	<printer> (PSF) {IBM}'s system software which generates
	{native} IBM printer language, {IPDS} and, depending on the
	version, {PostScript} and LaserJet {PCL}.

	See also: {Advanced Function Presentation}.

	(1998-06-28)

priority inheritance

	<parallel> A technique for avoiding {priority inversion} by
	temporarily raising the prioriry of all processes that want to
	access a shared resource to the highest priority level of any
	of them.  Priority inversion occurs where a low priority
	process, L is holding a resource required by a high priority
	process, H, but L is not running because a medium priority
	process, M is running.  Under priority inheritance, L
	temporarily inherits H's priority, allowing L to run and
	release the resource H is waiting for.

	For example, an ambulance (H) is stuck behind a lorry (L)
	waiting at a junction (the shared resource) for a gap in a
	line of cars (M) using the junction.  Applying priority
	inheritance, the cars give way to the lorry as they would to
	the ambulance, thus allowing the lorry and then the ambulance
	to use the junction.

	(2005-02-11)

priority interrupt

	<jargon> Any stimulus compelling enough to yank one right out
	of {hack mode}.  Classically used to describe being dragged
	away by an {SO} for immediate sex, but may also refer to more
	mundane interruptions such as a fire alarm going off in the
	near vicinity.  Also called an {NMI} (non-maskable interrupt),
	especially in PC-land.

	[{Jargon File}]

	(2005-02-13)

priority inversion

	<parallel> The state of a concurrent system where a high
	priority task is waiting for a low priority task which is
	waiting for a medium priority task.  The system may become
	unstable and {crash} under these circumstances.

	In an {operating system} that uses multiple tasks, each task
	(or {context}) may be given a priority.  These priorities help
	the {scheduler} decide which task to run next.  Consider
	tasks, L, M, and H, with priorities Low, Medium, and High.  M
	is running and H is blocked waiting for some resource that is
	held by L.  So long as any task with a priority higher than L
	is runable, it will prevent task L, and thus task H, from
	running.

	Priority inversion is generally considered either as a
	high-level design failure or an implementation issue to be
	taken into account depending on who is talking.  Most
	operating systems have methods in place to prevent or take
	inversion into account.  {Priority inheritance} is one method.

	The most public instance of priority inversion is the repeated
	'fail-safe' rebooting of the {Mars Pathfinder
	(http://research.microsoft.com/~mbj/Mars_Pathfinder/Mars_Pathfinder.html)}.
	base station ('Sagan Memorial Station').

	(2003-06-04)

priority queue

	<programming> A data structure with three operations: insert a
	new item, return the highest priority item, and remove the
	highest priority item.  The obvious way to represent priority
	queues is by maintaining a sorted list but this can make the
	insert operation very slow.  Greater efficiency can be
	achieved by using {heaps}.

	(1996-03-12)

priority scheduling

	<operating system> {Processes scheduling} in which the
	{scheduler} selects tasks to run based on their priority as
	opposed to, say, a simple {round-robin}.

	Priorities may be static or dynamic.  Static priorities are
	assigned at the time of creation, while dynamic priorities are
	based on the processes' behaviour while in the system.  For
	example, the scheduler may favour {I/O}-intensive tasks so
	that expensive requests can be issued as early as possible.

	A danger of priority scheduling is {starvation}, in which
	processes with lower priorities are not given the opportunity
	to run.  In order to avoid starvation, in preemptive
	scheduling, the priority of a process is gradually reduced
	while it is running.  Eventually, the priority of the running
	process will no longer be the highest, and the next process
	will start running.  This method is called {aging}.

PRISM

	A distributed {logic language}.

	["PRISM: A Parallel Inference System for Problem Solving",
	S. Kasif et al, Proc 1983 Logic Prog Workshop, pp. 123-152].

Prisoner of Bill

	<humour> (PoB) A derisory term, in use generally among {Unix}
	users, for anyone who uses {Microsoft} products either because
	they don't know there is anything better (i.e. Unix) or
	because they would be incapable of working anything more
	complex (i.e. Unix).

	The interesting and widespread presumption among users of the
	term is that (at least at the time of writing, 1998) using
	anything other than Unix or a Microsoft OS (whether {VMS},
	{Macintosh}, {Amiga}) is so eccentric a choice as to be at
	least somewhat praiseworthy.

	(1998-09-07)

privacy

	<security> An attribute of a system's {security} that ensures
	that only intended or desired people or bodies can read a
	message or piece of stored data.  Privacy is often enforced by
	some kind of {access control} or {encryption}.

	(2011-06-03)

Privacy Enhanced Mail

	<messaging< (PEM) {Internet} {electronic mail} which provides
	{confidentiality}, {authentication} and message {integrity}
	using various {encryption} methods.

	See also {Pretty Good Privacy}.

	(2009-06-03)

private

	{privacy}

Private Automatic Branch eXchange

	<communications> (PABX) A telephone exchange operated within
	an organisation, used for switching calls between internal
	lines and between internal and {PSTN} lines.  In contrast to a
	{PMBX}, a PABX can route calls without manual intervention,
	based entirely on the number dialed.  Not all PABXs can route
	external calls to internal numbers automatically however.

	(1998-08-07)

Private Branch Exchange

	<communications> (PBX) A telephone exchange local to a
	particular organisation who use, rather than provide,
	telephone services.  The earliest PBXs were manual ({Private
	Manual Branch EXchange}, PMBX) but are now more likely to be
	automatic ({Private Automatic Branch eXchange}).

	(1997-06-25)

private key

	<cryptography> A piece of data used in {private-key
	cryptography} and {public-key cryptography}.  In the former
	the private key is known by both sender and recipient whereas
	in the latter it is known only to the sender.

	(2008-02-07)

private-key cryptography

	<cryptography> As opposed to {public-key cryptography}, a
	cryptographic method in which the same key is used to encrypt
	and decrypt the message.  Private-key algorithms include the
	obsolescent {Data Encryption Standard} (DES), triple-DES
	(3DES), the {Advanced Encryption Standard} (AES), also known
	as Rijndael, Blowfish, Twofish RC2, {RC4}, RC5 and RC6.

	A problem with private-key cryptography is that the sender and
	the recipient of the message must agree on a common key via
	some alternative secure channel.

	{Public-key cryptography} gives an answer to this problem.

	(2008-02-07)

Private Manual Branch eXchange

	<communications> (PMBX) The original manual equivalent of a
	{PABX}; a PMBX involves company employed operators manually
	switching each call using a manual switchboard.

	(1998-08-07)

privileged instruction

	A {machine code} instruction that may only be executed when
	the processor is running in {supervisor mode}.  Privileged
	instructions include operations such as I/O and {memory
	management}.

	(1995-02-15)

PRL

	Proof Refinement Logic.

	Versions: {micro-PRL}, {lambda-PRL}, {nu-PRL}.

	["PRL: Proof Refinement Logic Programmer's Manual", CS Dept,
	Cornell, 1983].

	(1995-01-24)

PRMD

	{primary management domain}

PRML

	{Partial Response Maximum Likelihood}

probabilistic

	<probability> Relating to, or governed by, probability. The
	behaviour of a probabilistic system cannot be predicted
	exactly but the probability of certain behaviours is known.
	Such systems may be simulated using {pseudorandom} numbers.
	{Evolutionary computation} uses probabilistic processes to
	generate new (potential) solutions to a problem.

	See also {deterministic}, {non-probabilistic}.

	(1995-09-22)

probabilistic automaton

	{nondeterministic automaton}

Probability of Failure on Demand

	<systems> (POFOD) The likelihood that some system will fail
	when a service request is made.

	(2010-09-26)

Probe

	An {object-oriented} {logic language} based on {ObjVlisp}.

	["Proposition d'une Extension Objet Minimale pour Prolog",
	Actes du Sem Prog en Logique, Tregastel (May 1987),
	pp. 483-506].

problem state

	{IBM} jargon for {user mode}, the opposite of "supervisor
	state".

	On IBM {System 360}, 370 and 390 {mainframes} {privileged
	instructions} may only be executed in "supervisor state".
	{Application programs} request the {operating system} to
	perform these operations by using the Supervisor Call (SVC)
	instruction.

	(1995-02-15)

Problem Statement Language/Problem Statement Analyser

	<language> (PSL/PSA) A {CASE} system developed by
	D. Teichroew that allows computer-based development
	and analysis of a statement of {requirements},
	and assistance during the design phase.

	(2010-01-26)

PROC

	<language> The {job control language} used in the {Pick}
	{operating system}.

	["Exploring the Pick Operating System", J.E. Sisk et al,
	Hayden 1986].

	(1998-10-13)

procedural

	{procedural language}

procedural language

	<language> Any {programming language} in which the programmer
	specifies an explicit sequences of steps to follow to produce
	a result (an {algorithm}).

	The term should not be confused with "{imperative language}" -
	a language that specifies explicit manipulation of state.  An
	example (non-imperative) procedural language is {LOGO}, which
	specifies sequences of steps to perform but does not have an
	internal state.

	Other procedural languages include {Basic}, {Pascal}, {C}, and
	{Modula-2}.

	Both procedural and imperative languages are in contrast to
	{declarative languages}, in which the programmer specifies
	neither explicit steps nor explicit state manipulation.

	(2004-05-17)

Procedural Language/SQL

	<language> (PL/SQL) {Oracle Corporation}'s proprietary
	{procedural language} extension of industry-standard {SQL}.

	[Features?  Reference?  Any relation to {PL/I}?]

	(1999-09-14)

procedure

	{subroutine}

proceedings

	<publication> (Proc.) A printed collection of papers presented
	at a conference or meeting, e.g. "The Proceedings of the Fifth
	International Conference on Microelectronics for Neural
	Networks and Fuzzy Systems".  Along with learned journals,
	conference proceedings are a major repository of peer-reviewed
	research results.

	(2008-07-16)

process

	1. <operating system, software> The sequence of states of an
	executing {program}.  A process consists of the program {code}
	(which may be shared with other processes which are executing
	the same program), private data, and the state of the
	{processor}, particularly the values in its {registers}.  It
	may have other associated resources such as a {process
	identifier}, open files, {CPU time} limits, {shared memory},
	{child processes}, and {signal handlers}.

	One process may, on some {platforms}, consist of many
	{threads}.  A {multitasking} {operating system} can run
	multiple processes {concurrently} or in {parallel}, and allows
	a process to spawn "child" processes.

	(2001-06-16)

	2. <business> The sequence of activities, people, and systems
	involved in carrying out some business or achieving some
	desired result.  E.g. software development process, project
	management process, configuration management process.

	(2001-06-16)

Process and Experiment Automation Real-Time Language

	<language> (PEARL) A {real-time} language for programming
	{process control} systems, widely used in Europe.  Size and
	complexity exceeds {Ada}.  Defined in {DIN} 66253 Teil 2.

	["Programmiersprache PEARL", Beuth-Verlag, Nov 1980].

	(2000-08-16)

process data

	{data processing}

Process Design Language 2

	<language> (PDL2) A language developed for the {Texas
	Instruments} {ASC} computer.

	["Texas Instruments Process Design Methodology - Design
	Specification: Process Design Language", Volume I (Sep 1976)].

	[Mentioned in "An Overview of Ada" J.G.P. Barnes, Soft Prac &
	Exp 10:851-887 (1980)].

	(1995-08-13)

process ID

	{process identifier}

process identifier

	<operating system> (PID) An integer used by the {Unix}
	{kernel} to uniquely identify a process.  PIDs are returned by
	the {fork} {system call} and can be passed to wait() or
	kill() to perform actions on the given process.

	(1996-12-09)

processing

	<data processing, signal processing> Performing some
	predefined sequence of operations on an input to produce an
	output or change of internal state; activity specifically
	involving the computer's {CPU}.

	The term is often qualified: "{data processing}" treats
	{digital} data, "{signal processing}" treats {analog} data
	(possibly in digital form), "{word processing}" takes in typed
	human language input and produces digital documents, {image
	processing} transforms digital {images}.

	(2003-10-23)

processor

	{central processing unit}

Processor Direct Slot

	<hardware> (PDS) {Apple Computer}'s name for a {local bus}
	connection.  Most {Macintosh}es have only one PDS connector.
	Different Apple computers have different PDS specifications.

	(1995-05-02)

processor farm

	<computer, parallel> A {parallel processor} where tasks are
	distributed, or "farmed out", by one "farmer" processor to
	several "worker" processors, and results are sent back to the
	farmer.  This arrangement is suitable for {applications} which
	can be partitioned into many separate, independent tasks, the
	canonical examples being {ray tracing} and the {Mandelbrot
	set}.  In order to be efficient, the extra time spent on
	communications must be small compared to the time spent
	processing each task.

	(2001-05-28)

Processor System Modeling Language

	<language> (PSML) A language for simulating computer systems
	designs, implemented as a {preprocessor} to {SIMSCRIPT}.

	["Processor System Modeling - A Language and Simulation
	System", F. Pfisterer, Proc Symp on Simulation of Computer
	Systems, Aug 1976].

	(2009-05-11)

processor time

	<software> The amount of time a {process} takes to run, given
	that it has exclusive and uninterrupted use of the {CPU}.
	Note that in a modern computer, this would be very unusual,
	and so the processor time calculation for most processes
	involves adding up all the small amounts of time the CPU
	actually spends on the process.

	Some systems break processor time down into {user time} and
	{system time}.

	Compare {wall clock time}.

	(1998-03-13)

process scheduling

	{multitasking}

process table

	<operating system, process> A table containing all of the
	information that must be saved when the {CPU} switches from
	running one {process} to another in a {multitasking} system.

	The information in the process table allows the suspended
	process to be restarted at a later time as if it had never
	been stopped.  Every process has an entry in the table.  These
	entries are known as {process control blocks} and contain the
	following information:

	process state - information needed so that the process can be
	loaded into memory and run, such as the {program counter}, the
	{stack pointer}, and the values of {registers}.

	memory state - details of the memory allocation such as
	pointers to the various memory areas used by the program

	resource state - information regarding the status of files
	being used by the process such as {user ID}.

	Accounting and scheduling information.

	An example of a UNIX process table is shown below.

	 SLOT  ST  PID  PGRP  UID  PRI  CPU  EVENT  NAME  FLAGS
	  0    s    0     0     0   95   0  runout  sched load sys
	  1    s    1     0     0   66   1    u     init  load
	  2    s    2     0     0   95   0  10bbdc  vhand load sys

	SLOT is the entry number of the process.

	ST shows whether the process is paused or sleeping (s), ready
	to run (r), or running on a {CPU} (o).

	PID is the {process ID}.

	PGRP is the {process Group}.

	UID is the {user ID}.

	PRI is the priority of the process from 127 (highest) to 0
	(lowest).

	EVENT is the {event} on which a process is paused or
	sleeping.

	NAME is the name of the process.

	FLAGS are the process {flags}.

	A process that has died but still has an entry in the process
	table is called a {zombie process}.

	(1998-04-24)

PROCOL

	<language> A parallel {object language} with {protocols},
	{constraints} and distributed delegation by J. Van Den Bos of
	Erasmus University, Rotterdam.

	["PROCOL: A Parallel Object Language with Protocols", J. Van
	Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89), Oct
	1989].

	(1998-03-23)

Procomm

	<communications, product> A {terminal emulator} program,
	originally from {Datastorm Technologies}, used for connection
	to {BBS}es etc.

	Procomm Plus for Windows incorporates automatic {modem}
	detection, a custom log-on script generator and sophisticated
	{off-line} message managers for {CompuServe} and {MCI Mail}.
	It also has a fax send and receive capability.

	Version 2.0 was chosen as the Editors Choice in PC Magazine
	1995-03-14.

	Procomm Plus is now distributed by {Symantec, Inc.}.

	{Procomm Home (http://symantec.com/procomm/)}.

	{Version 2.4.3 1989-01-01
	(http://ftp.bauru.unesp.br/comunicacao/procomm/PRCM243.NEW)}.

	Current Version: Procomm Plus 4.8, as of 2004-06-29.

	(2004-06-29)

Procrustean string

	<programming> A fixed-length {string}.  If a string value is
	too long for the allocated space, it is truncated to fit; and
	if it is shorter, the empty space is padded, usually with
	space characters.

	This is an allusion to Procrustes, a legendary robber of ancient
	Attica.  He bound his victims to a bed, and if they were shorter
	than the bed, he stretched their limbs until they would fit; if
	their limbs were longer, he lopped them off.

	(1997-09-12)

Prodigy

	<networking> A commercial on-line conferencing service,
	co-developed by {IBM} and Sears, Roebuck, Inc.

	Prodigy's main competitors are {AOL} and {Compuserve}.

	(1995-03-01)

ProDoc

	<documentation> A set of tools for software {documentation}
	from {SPC}.

	(2006-10-12)

product

	<mathematics, programming> An {expression} in mathematics or
	computer programming consisting of two other expressions
	multiplied together.  In mathematics, multiplication is
	usually represented by {juxtaposition}, e.g. "x y", whereas in
	programming, "*" is used as an {infix} operator, e.g. "salary
	* tax_rate.

	In the most common type of product, each {operand} is a number
	({integer}, {real number}, {fraction} or {imaginary number})
	but the term extends naturally to cover more complex
	operations like multiplying a string by an integer (e.g., in
	{Perl}, "foo" x 2) or multiplying {vectors} and {matrices} or
	more than two operands.

	In {type systems}, a {tuple} is sometimes known as a "product
	type".

	(2006-10-12)

production system

	<programming> A production system consists of a collection of
	productions (rules), a {working memory} of {facts} and an
	{algorithm}, known as {forward chaining}, for producing new
	facts from old.  A rule becomes eligible to "fire" when its
	conditions match some set of elements currently in working
	memory.  A {conflict resolution strategy} determines which of
	several eligible rules (the {conflict set}) fires next.  A
	condition is a list of symbols which represent constants,
	which must be matched exactly; variables which bind to the
	thing they match and "<> symbol" which matches a field not
	equal to symbol.

	Example production systems are {OPS5}, {CLIPS}, {flex}.

	(2005-06-17)

Professional Graphics Adapter

	<graphics, specification> (PGA) A computer video {display
	standard} produced by {IBM} for early {CAD} applications.  It
	had a resolution of 640x400 {pixels}.

	(1997-04-25)

Professional Office System

	<messaging> (PROFS) An office messaging system from {IBM},
	used worldwide, mainly on IBM {mainframes}.

	(1996-03-23)

professional programming

	{paranoid programming}

professional services

	<job> A department of a supplier providing consultancy and
	programming manpower for the supplier's products.

	(2004-03-09)

PROFILE

	Simple language for matching and scoring data.  "User's Manual
	for the PROFILE System", Cambridge Computer Assoc (May 1974).

	[{Jargon File}]

profile

	1. A control file for a program, especially a text file
	automatically read from each user's home directory and
	intended to be easily modified by the user in order to
	customise the program's behaviour.  Used to avoid {hard-coded}
	choices (see also {dot file}, {rc file}).

	2. A report on the amounts of time spent in each routine of a
	program, used to find and {tune} away the {hot spots} in it.
	This sense is often verbed.  Some profiling modes report units
	other than time (such as call counts) and/or report at
	granularities other than per-routine, but the idea is similar.

PROFS

	{Professional Office System}

PROGENY

	1961.  Report generator for UNIVAX SS90.

proglet

	/prog'let/ [UK] A short extempore program written to meet an
	immediate, transient need.  Often written in BASIC, rarely
	more than a dozen lines long and containing no subroutines.
	The largest amount of code that can be written off the top of
	one's head, that does not need any editing, and that runs
	correctly the first time (this amount varies significantly
	according to one's skill and the language one is using).
	Compare {toy program}, {noddy}, {one-liner wars}.

	[{Jargon File}]

program

	{software}

Program Composition Notation

	(PCN) A specification language for parallelism between {C} and
	{Fortran} {modules}.  PCN provides a simple language for
	specifying {concurrent} {algorithms}, interfaces to {Fortran}
	and {C}, a portable toolkit that allows applications to be
	developed on a {workstation} or small parallel computer and
	run unchanged on {supercomputers} and integrated debugging and
	performance analysis tools.  PCN was developed at {Argonne
	National Laboratory} and the {California Institute of
	Technology}.  It has been used to develop a wide variety of
	applications, in areas such as climate modelling, fluid
	dynamics, computational biology, chemistry, and circuit
	simulation.

	Version 2.0 runs on networks of workstations: {Sun-4}, {NeXT},
	{RS/6000}, {SGI}; {multicomputers}: {iPSC}/860, {Touchstone
	DELTA}; and {shared memory} multiprocessors:
	{Symmetry}/{Dynix}.

	{(ftp://info.mcs.anl.gov/pub/pcn)}.

	E-mail: Ian Foster <pcn@mcs.anl.gov>, Steve Tuecke
	<tuecke@mcs.anl.gov>.

	["Productive Parallel Programming: The PCN Approach",
	I. Foster et al, Sci Prog 1(1):51-66 (1992)].

	(1993-02-12)

program counter

	<hardware> (PC) A {register} in the {central processing unit}
	that contains the addresss of the next {instruction} to be
	executed.  After each instruction is fetched, the PC is
	automatically incremented to point to the following
	instruction.  It is not normally manipulated like an ordinary
	{register} but instead, special instructions are provided to
	alter the {flow of control} by writing a new value to the PC,
	e.g. JUMP, CALL, {RTS}.

	{IBM} call it the {Instruction Address Register}.

	(1995-03-21)

Program Design Language

	Any of a large class of formal and profoundly useless
	pseudo-languages in which {management} forces one to design
	programs.  Too often, management expects PDL descriptions to
	be maintained in parallel with the code, imposing massive
	overhead of little or no benefit.

	See also {flow chart}.

	(1995-04-01)

Program Evaluation and Review Technique

	<programming> (PERT) A method used to size a software product
	and calculate the Standard Deviation (SD) for risk assessment.
	The PERT equation (beta distribution) estimates the Equivalent
	{Delivered Source Instructions} (EDSIs) and the SD based on
	the analyst's estimates of the lowest possible size, the most
	likely size, and the highest possible size of each computer
	program component (CPC).

	(1996-05-29)

Program Information File

	<file format> Under {Windows}, a file providing information on
	how a non-Windows {application program} should be run,
	including how much {memory} should be allocated to it and what
	graphics interface it requires.

	{Filename extension}: .pif

	(1997-10-11)

Programmable Airline Reservation System

	<application> (PARS) An {IBM} proprietary large scale airline
	reservation application, executing under the control of IBM's
	{ACP} (and later its successor, {TPF}).

	In the early days of automated reservations systems in the
	1960s and 1970s the combination of ACP and PARS provided
	unprecendented scale and performance from an on-line
	{real-time} system, and for a considerable period ranked among
	the largest networks and systems of the era.

	{IPARS} was the international version.

	(1999-01-18)

Programmable Array Logic

	<hardware> (PAL) A family of fuse-programmable logic
	{integrated circuits} originally developed by {MMI}.
	Registered or {combinatorial} output functions are modelled in
	a {sum of products} form.  Each output is a sum (logical or)
	of a fixed number of products (logical and) of the input
	signals.  This structure is well suited for automatic
	generation of programming patterns by logic compilers.

	PAL devices are programmed by blowing the fuses permanently
	using overvoltage.

	Today, more complex devices based on the same original
	architecture are available (CPLD's for Complex PLD's) that
	incorporate the equivalent of several original PAL chips.  PAL
	chips are, however, still popular due to their high speed.

	{Generic Array Logic} devices are reprogrammable and contain
	more {logic gates}.

	(1995-12-09)

Programmable Interrupt Controller

	<integrated circuit> {PIC} A special-purpose {integrated
	circuit} that functions as an overall manager in an
	{interrupt} driven system.  It accepts requests from the
	{peripheral} equipment, determines which of the incoming
	requests is of the highest priority, ascertains whether the
	incoming request has a higher priority value than the level
	currently being serviced, and issues an interrupt to the {CPU}
	based on this determination.

	PICs typically have eight interrupt lines, and two PICs are
	often cascaded to provide 15 available interrupt lines.

	See also: {Advanced Programmable Interrupt Controller}.

	(2003-03-18)

Programmable Logic Controller

	<hardware> (PLC) A device used to automate monitoring and
	control of industrial plant.  Can be used stand-alone or in
	conjunction with a {SCADA} or other system.

	(1997-02-11)

Programmable Read-Only Memory

	<storage> (PROM) A kind of {ROM} which can be written using a
	PROM programmer.  The contents of each bit is determined by a
	{fuse} or {antifuse}.  The memory can be programmed once after
	manufacturing by "blowing" the fuses, which is an irreversible
	process.  Blowing a fuse opens a connection while blowing an
	antifuse closes a connection (hence the name).  Programming is
	done by applying high-voltage pulses which are not encountered
	during normal operation.

	(1995-04-22)

Programmed Data Processor

	<computer> (PDP) Early (1960's?) {Digital Equipment
	Corporation} family of {minicomputers}.  The best known ranges
	were the {PDP-10} and {PDP-11}.  {PAL} was the {assembly
	language}.

	(1997-11-21)

PROgrammed Graph REwriting Systems

	<language> (PROGRES) A very high level language based on
	{graph grammars}, developed by Andy Scheurr
	<andy@i3.informatik.rwth-aachen.de> and Albert Zuendorf
	<albert@i3.informatik.rwth-aachen.de> of {RWTH}, Aachen in
	1991.

	PROGRES supports structurally {object-oriented specification}
	of {attributed graph} structures with {multiple inheritance}
	hierarchies and types of types (for {parametric
	polymorphism}).  It also supports declarative/relational
	specification of derived attributes, node sets, binary
	relationships (directed edges) and {Boolean} {constraints},
	rule-oriented/visual specification of parameterised graph
	rewrite rules with complex application conditions,
	{nondeterministic} and {imperative programming} of composite
	graph transformations (with built-in {backtracking} and
	cancelling arbitrary sequences of failing graph
	modifications).

	It is used for implementing {abstract data types} with
	graph-like internal structure, as a visual language for the
	{graph-oriented database} {GRAS}, and as a rule-oriented
	language for prototyping {nondeterministic}ally specified
	data/rule base transformations.

	PROGRES has a formally defined {semantics} based on
	"PROgrammed Graph Rewriting Systems".  It is an almost
	{statically typed} language which additionally offers "down
	casting" operators for run time checked type
	casting/conversion (in order to avoid severe restrictions
	concerning the language's expressiveness).

	Version RWTH 5.10 includes an integrated environment.

	[A. Scheurr, "Introduction to PROGRES, an Attribute Graph
	Grammar Based Specification Language", in Proc WG89 Workshop
	on Graphtheoretic Concepts in Computer Science", LNCS 411,
	Springer 1991].

	{(ftp://ftp.informatik.rwth-aachen.de/pub/Unix/PROGRES/)} for
	{Sun-4}.

	(1993-11-02)

programmer

	<job> (Or "computer programmer", "developer") Someone who
	writes or debugs {computer programs}, for a living or for fun.
	"Analyst/developer" is a common equivalent job title, implying
	the added role of {system analysis}.  The term may be
	qualified according to the type of software - "{application}
	programmer", "{system programmer}", etc.

	(2000-01-24)

Programmer Brain Damage

	<humour> (PBD) A classification of a {bug} which was obviously
	introduced by an incompetent or short-sighted programmer.

	Compare {UBD}.  See also {brain-damaged}.

	(1996-10-13)

Programmer's Cheer

	<humour>

	 "Shift to the left!
	 Shift to the right!
	 Pop up, push down!
	 Byte!  Byte!  Byte!"

	[Origin?]

	[{Jargon File}]

	(1996-10-13)

Programmers Hierarchical Interactive Graphics System

	(PHIGS) An {ANSI}/{ISO} {standard}.  Worked on by the
	{ISO}/{IEC} group {JTC1/SC24}.

	[More detail?]

	(1995-01-04)

PROgrammer's Microapplication Language

	<language> (PROMAL) An interpreted {C}-like language from
	{Systems Management Associates} for {MS-DOS}, {Commodore 64},
	and {Apple II}.

	[Computer Language, Mar 1986, pp. 128-134].

	(1996-03-21)

Programmer's Switch

	<hardware> A button on the front of some {Apple Macintosh}
	computers which, when pressed, causes a command line prompt to
	appear.  This gives access to the built-in mini-{debugger},
	which has commands to dump memory, return to the application
	that was broken out, and others.  A more sophisticated
	debugger must be installed in order to inspect {breakpoints},
	etc.

	(2000-11-01)

programming

	1. The art of debugging a blank sheet of paper (or, in these
	days of on-line editing, the art of {debugging an empty
	file}).

	2. A pastime similar to banging one's head against a wall, but
	with fewer opportunities for reward.

	3. The most fun you can have with your clothes on (although
	clothes are not mandatory).

	[{Jargon File}]

	(2003-02-12)

programming fluid

	<jargon> (Or "{wirewater}") Coffee, unleaded coffee
	(decaffeinated), Cola, or any caffeinacious stimulant.  Many
	hackers consider these essential for those all-night {hacking
	runs}.

	(1996-05-01)

programming language

	<language> A formal language in which computer programs are
	written.  The definition of a particular language consists of
	both {syntax} (how the various symbols of the language may be
	combined) and {semantics} (the meaning of the language
	constructs).

	Languages are classified as low level if they are close to
	{machine code} and high level if each language statement
	corresponds to many machine code instructions (though this
	could also apply to a low level language with extensive use of
	{macros}, in which case it would be debatable whether it still
	counted as low level).  A roughly parallel classification is
	the description as {first generation language} through to
	{fifth generation language}.

	The other major classification of languages distinguishes
	between {imperative languages}, {procedural language} and
	{declarative languages}.

	{Programming languages time-line/family tree
	(http://levenez.com/lang/history.html)}.

	(2004-05-17)

Programming Language/Cornell

	<language> (PL/C) A large subset of {PL/I} from {Cornell
	University}, aimed at novice programmers.

	["Introduction to PL/1 and PL/C programming", Kochenburger,
	Ralph J., Santa Barbara, Hamilton, c1974].

	["User's Guide to PL/C", S. Worona et al, Cornell, June 1974].

	["PL/C - A High Performance Compiler" H.L. Morgan et al, Proc
	SJCC, AFIPS 38:503-510 (1971)].

	(1999-05-26)

Programming Language/Systems

	<language> (PL/S) An {IBM} machine-oriented language derived
	from {PL/I}, in the late 1960s, for the {IBM 360} and {IBM
	370}.  PL/S permitted {inline} {assembly language} and control
	over {register} usage.

	Previous IBM 360 operating systems such as {OS/MFT} and
	{OS/MVT} had been written entirely in {assembly language}.
	The first IBM OS that had any significant portion written in
	PL/S was {MVS}, followed by {OS/VS1}, {OS/VS2} and {OS/SVS}.

	PL/S was part of IBM's {OCO
	(http://www.landley.net/history/mirror/ibm/oco.html)} (object
	code only) effort, started in 1983.  PL/S was used internally
	and never released to the public.  It is documented in various
	IBM internal ZZ-? publications.

	Versions: PLS1, PLSII.

	["PL/S, Programming Language/Systems", W.R. Brittenham, Proc
	GUIDE Intl, GUIDE 34, May 14, 1972, pp. 540-556].

	(2012-01-20)

Program Temporary Fix

	<programming> (PTF) (Colloquially: Probably This Fixes) An
	{IBM} sanctioned {patch}, often implemented using {ZAP} or
	{SUPERZAP}.

	(1998-07-08)

program transformation

	The systematic development of efficient programs from
	high-level specifications by meaning-preserving program
	manipulations.  Also known as optimisation.  See {fusion},
	{loop combination}, {peephole optimisation}, {register
	allocation}, {tupling}, {unfold/fold}.

Prograph

	<language>

	A visual {dataflow} programming language and environment from
	the {Technical University of Halifax}.

	Prograph is an entirely graphical {visual programming}
	language, other than for the text of {method} names, and
	supports the program development process in a
	highly-interactive fashion.  Operation icons are connected by
	data links through which information flows.  It supports
	{object orientation} via {class}-based {data abstraction} with
	{single inheritance}.

	Prograph is available for the {Macintosh}, and soon for
	Windows and Unix, from {TGS Systems}.

	(1995-03-31)

PROGRES

	<language> {PROgrammed Graph REwriting Systems}.

progressive coding

	<graphics, file format, algorithm> (Or "interlacing") An
	aspect of a {graphics} storage format or transmission
	{algorithm} that treats {bitmap} {image} data non-sequentially
	in such a way that later data adds progressively greater
	{resolution} to an already full-size image.  This contrasts
	with {sequential coding}.

	Progressive coding is useful when an image is being sent
	across a slow communications channel, such as the {Internet},
	as the low-resolution image may be sufficient to allow the
	user to decide not to wait for the rest of the file to be
	received.

	In an interlaced {GIF89} image, the {pixels} in a row are
	stored sequentially but the rows are stored in interlaced
	order, e.g. 0, 8, 4, 12, 2, 6, 8, 10, 14, 1, 3, 5, 7, 9, 11,
	13, 15.  Each vertical scan adds rows in the middle of the
	gaps left by the previous one.

	{PNG} interlaces both horizontally and vertically using the
	"{Adam7}" method, a seven pass process named after Adam
	M. Costello.

	Interlacing is also supported by other formats.  {JPEG}
	supports a functionally similar concept known as {Progressive
	JPEG}.  [How does the algorithm differ?]

	{JBIG} uses {progressive coding}.

	See also {progressive/sequential coding}.

	["Progressive Bi-level Image Compression, Revision 4.1",
	ISO/IEC JTC1/SC2/WG9, CD 11544, 1991-09-16].

	(2000-09-12)

Progressive JPEG

	<graphics, file format> (PJPEG) An implementation of {JPEG}
	that supports {progressive coding}.

	[Standards documents?]

	(1998-02-10)

progressive/sequential coding

	<compression, algorithm> The kind of image {compression}
	{algorithm} used in {JBIG} where an image coded using
	{progressive coding} can be decoded sequentially, and vice
	versa.

	(1995-03-01)

PROJECT

	Subsystem of ICES.  Sammet 1969, p.616.

project assurance

	The process of specifying the support system: techniques,
	internal standards, measurements, tools, and training for a
	project; counselling the project team in the application of
	these elements and monitoring the adherence to the standards.

Project Athena

	<project> A {distributed system} project for support of
	educational and research computing at {MIT}.  Much of the
	software developed is now in wider use, especially the {X
	Window System}.

	(2000-02-24)

Project Guardian

	<project, security> A project which grew out of the {ARPA}
	support for {Multics} and the sale of Multics systems to the
	US Air Force.  The USAF wanted a system that could be used to
	handle more than one security classification of data at a
	time.  They contracted with {Honeywell} and {MITRE
	Corporation} to figure out how to do this.  Project Guardian
	led to the creation of the {Access Isolation Mechanism}, the
	forerunner of the {B2} labeling and star property support in
	Multics.  The {DoD Orange Book} was influenced by the
	experience in building secure systems gained in Project
	Guardian.

	(1997-01-29)

projection

	<theory> In domain theory, a {function}, f, which is (a)
	{idempotent}, i.e.  f(f(x))=f(x) and (b) whose result is no
	more defined than its argument.  E.g. F(x)=bottom or F(x)=x.

	In {reduction} systems, a function which returns some
	{component} of its argument.  E.g. head, tail, \ (x,y) . x.
	In a {graph reduction} system the function can just return a
	pointer to part of its argument and does not need to build any
	new graph.

	(1997-01-29)

projective plane

	<mathematics> The space of {equivalence classes} of {vectors}
	under non-zero {scalar} multiplication.  Elements are sets of
	the form

		{kv: k != 0, k scalar, v != O, v a vector}

	where O is the origin.  v is a representative member of this
	equivalence class.

	The projective plane of a {vector space} is the collection of
	its 1-dimensional {subspaces}.  The properties of the vector
	space induce a {topology} and notions of {smoothness} on the
	projective plane.

	A projective plane is in no meaningful sense a plane and would
	therefore be (but isn't) better described as a "projective
	space".

	(1996-09-28)

Project MAC

	<project> A project suggested by J C R Licklider; its founding
	director was {MIT} Prof. Robert M Fano.  MAC stood for
	Multiple Access Computers on the 5th floor of Tech Square, and
	Man and Computer on the 9th floor.  The major efforts were
	Corbato's {Multics} development and {Marvin Minsky}'s
	{Artificial Intelligence} Laboratory.  In 1963 Project MAC
	hosted a summer study, which brought many well-known computer
	scientists to Cambridge to use {CTSS} and to discuss the
	future of computing.

	Funding for Project MAC was provided by the Information
	Processing Techniques Office of the {Advanced Research
	Projects Agency} (ARPA) of the US Department of Defense.

	See also {Early PL/I}, {MacLisp}, {MACSYMA}, {MDL},
	{Multipop-68}, {OCAL}.

	(1997-01-29)

project management

	<project, job> The process of planning, organising, staffing,
	directing and controlling the production of a system.
	Software tools are available to help with this, e.g. {PERT}
	chart editors.

	(1998-12-12)

project planning

	{project management}

Prolog

	<programming> Programming in Logic or (French) Programmation
	en Logique.  The first of the huge family of {logic
	programming} languages.

	Prolog was invented by Alain Colmerauer and Phillipe Roussel
	at the University of Aix-Marseille in 1971.  It was first
	implemented 1972 in {ALGOL-W}.  It was designed originally for
	{natural-language processing} but has become one of the most
	widely used languages for {artificial intelligence}.

	It is based on {LUSH} (or {SLD}) {resolution} {theorem
	proving} and {unification}.  The first versions had no
	user-defined functions and no control structure other than the
	built-in {depth-first search} with {backtracking}.  Early
	collaboration between Marseille and Robert Kowalski at
	{University of Edinburgh} continued until about 1975.

	Early implementations included {C-Prolog}, {ESLPDPRO},
	{Frolic}, {LM-Prolog}, {Open Prolog}, {SB-Prolog}, {UPMAIL
	Tricia Prolog}.  In 1998, the most common Prologs in use are
	{Quintus Prolog}, {SICSTUS Prolog}, {LPA Prolog}, {SWI
	Prolog}, {AMZI Prolog}, {SNI Prolog}.

	{ISO} draft standard at {Darmstadt, Germany
	(ftp://ftp.th-darmstadt.de/pub/programming/languages/prolog/standard/)}.
	or {UGA, USA (ftp://ai.uga.edu/ai.prolog.standard)}.

	See also {negation by failure}, {Kamin's interpreters},
	{Paradigms of AI Programming}, {Aditi}.

	A Prolog {interpreter} in {Scheme}.
	{(ftp://cpsc.ucalgary.ca/pub/prolog1.1)}.

	{A Prolog package
	(ftp://cpsc.ucalgary.ca/pub/prolog1.1/prolog11.tar.Z)} from
	the {University of Calgary} features {delayed goals} and
	{interval arithmetic}.  It requires {Scheme} with
	{continuations}.

	["Programming in Prolog", W.F. Clocksin & C.S. Mellish,
	Springer, 1985].

	(2001-04-01)

Prolog++

	(After {C++}) {Prolog} with {object-oriented} features added
	by Phil Vasey of {Logic Programming Associates}.  Prolog++ is
	available for {MS-DOS} and the {X Window System}.  It is
	distributed by {AI International} Ltd. in England and by
	{Quintus}.

Prolog-2

	An implementation of Edinburgh Prolog by Nick Henfrey, {ESL}.

	["An Advanced Logic Programming Language", Anthony Dodd].

Prolog-D-Linda

	Embeds the {Linda} parallel paradigm into {SISCtus Prolog}.

	{(ftp://ftp.cs.uwa.au/)}.  E-mail: <geoff@cs.uwa.edu.au>.

Prolog-II

	Prolog with two new predicates: "dif" for coroutines and
	"freeze" for delayed evaluation.

	Available from ExperIntelligence, Santa Barbara CA.

	["Prolog II Reference Manual and Theoretical Model",
	A. Colmerauer, Internal Report, GroupeIA, U Aix-Marseille (Oct
	1982)].

Prolog-III

	A. Colmerauer, U Aix-Marseille, ca 1984.  Marseille Prolog,
	with unification replaced by constraint resolution.  [deferred
	goals too?]  (Not to be confused with Prolog 3, a commercial
	product?)

	Version 1.2 for MS-DOS.

	["Opening the Prolog-III Universe", BYTE 12(9):177-182 (Aug
	1987)].

	["An Introduction to Prolog III", A. Colmerauer, CACM
	33(7):69-90 (1990)].

Prolog-Linda

	1. Prolog extended with Linda-style parallelism.  Proc 4th
	Australian Conf on Artif Intell.

	{(ftp://bison.cs.uwa.oz.au/)}.

	2. Neil MacDonald, U Edinburgh 1989.  Another Prolog extended
	with Linda, implemented on a Computing Surface.

Prolog/Mali

	<language> (PM) {Lambda-Prolog} for the {MALI}-V06 abstract
	memory system, developed by Pascal Brisset at IRISA, France.
	There is a compiler which compiles to {C}, a linker,
	libraries, {run-time system}, and documentation.  It runs
	under {Unix}.

	{(ftp://ftp.irisa.fr/pm/)}.

	Mailing list: prolog-mali-request@irisa.fr.  E-mail:
	<pm@irisa.fr>.

	(1992-07-06)

PROM

	{Programmable Read-Only Memory}

PROMAL

	{PROgrammer's Microapplication Language}

Prometheus

	<language> A programmaing language geared for logic,
	mathematics, {AI}, and string, list and database processing.
	Prometheus runs on a variety of {platforms} from {Macintosh}
	to {MS-DOS}

	{(http://aard.tracor.com/Jason/Prometheus/)}.

	(1996-03-04)

promiscuous mode

	<networking> Where a node on a network accepts all {packets},
	regardless of their destination address.

	(1996-03-04)

PROM monitor

	<operating system> a small program stored in {PROM} (or
	{ROM}), responsible for both loading the {OS} and providing
	some means to analyse OS {crashes}.  It may also have some
	sort of {user interface} which can be used to examine and
	change the contents of memory, control the boot process
	(specifying arguments to the {kernel}, or changing where to
	look for the it), and so forth.

	The main difference between a PROM monitor and a {bootstrap
	loader} is that the PROM monitor regains control when the OS
	terminates.  This may enable a {wizard} to find out what went
	wrong if the OS crashed, although it is usually of little help
	for the average {sysadmin}.

	(1996-12-03)

pron

	<jargon> (Or "pr0n") {B1FF}-speak for pornography.  Often seen
	on {IRC} in such desperate cries for help as "I WNAT
	PRON!!!!!"

	(1997-09-14)

Pronet

	<language>

	["The Design of a Programming Language Based on Connectivity
	Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp
	Sys, IEEE 1982, pp. 532-541].

	(1997-09-14)

Pronunciation

	In this dictionary slashes (/../) bracket phonetic
	pronunciations of words not found in a standard English
	dictionary.  The notation, and many of the pronunciations,
	were adapted from the Hacker's {Jargon File}.

	Syllables are separated by {dash} or followed {single quote}
	or {back quote}.  Single quote means the preceding syllable is
	stressed (louder), back quote follows a syllable with
	intermediate stress (slightly louder), otherwise all syllables
	are equally stressed.

	Consonants are pronounced as in English but note:

		ch	soft, as in "church"
		g	hard, as in "got"
		gh	aspirated g+h of "bughouse" or "ragheap"
		j	voiced, as in "judge"
		kh	guttural of "loch" or "l'chaim"
		s	unvoiced, as in "pass"
		zh	as "s" in "pleasure"

	Uppercase letters are pronounced as their English letter
	names; thus (for example) /H-L-L/ is equivalent to /aych el
	el/.  /Z/ is pronounced /zee/ in the US and /zed/ in the UK
	(elsewhere?).

	Vowels are represented as follows:

		a	back, that
		ah	father, palm (see note)
		ar	far, mark
		aw	flaw, caught
		ay	bake, rain
		e	less, men
		ee	easy, ski
		eir	their, software
		i	trip, hit
		i:	life, sky
		o	block, stock (see note)
		oh	flow, sew
		oo	loot, through
		or	more, door
		ow	out, how
		oy	boy, coin
		uh	but, some
		u	put, foot
		*r      fur, insert (only in stressed
			syllables; otherwise use just "r")
		y	yet, young
		yoo	few, chew
		[y]oo	/oo/ with optional fronting as
			in `news' (/nooz/ or /nyooz/)

	A /*/ is used for the `schwa' sound of unstressed or occluded
	vowels (often written with an upside-down `e').  The schwa
	vowel is omitted in unstressed syllables containing vocalic l,
	m, n or r; that is, "kitten" and "colour" would be rendered
	/kit'n/ and /kuhl'r/, not /kit'*n/ and /kuhl'*r/.

	The above table reflects mainly distinctions found in standard
	American English (that is, the neutral dialect spoken by TV
	network announcers and typical of educated speech in the Upper
	Midwest, Chicago, Minneapolis/St.Paul and Philadelphia).
	However, we separate /o/ from /ah/, which tend to merge in
	standard American.  This may help readers accustomed to
	accents resembling British Received Pronunciation.

	Entries with a pronunciation of `//' are written-only.

	(1997-12-10)

proof

	1. <logic> A {finite} sequence of {well-formed formulas}, F1,
	F2, ... Fn, where each Fi either is an {axiom}, or follows by
	some rule of inference from some of the previous F's, and Fn
	is the statement being proved.

	See also {proof theory}.

	2. A left-associative {natural language} {parser} by Craig
	R. Latta <latta@xcf.berkeley.edu>.  Ported to {Decstation
	3100}, {Sun-4}.

	{(ftp://scam.berkeley.edu/pub/src/local/proof/)}.

	E-mail: <proof@xcf.berkeley.edu>.  Mailing list:
	proof-requestf@xcf.berkeley.edu (Subject: add me).

	(1994-11-29)

PROOF/L

	A {functional}, {object-oriented language} with {implicit
	parallelism}.

	[J Parallel Dist Comp 12:202-212 (1991)].

	[Forthcoming Technical Report from {RADC}].

	(1994-10-31)

proof theory

	<logic> The branch of {logic} describing procedures for
	combining logical statements to show, by a series of
	truth-preserving transformations, that one statement is a
	consequence of some other statement or group of statements.

	(1994-10-31)

propeller head

	<jargon> Used by hackers, this is synonym with {computer
	geek}.  Non-hackers sometimes use it to describe all techies.
	Probably derives from SF fandom's tradition (originally
	invented by old-time fan Ray Faraday Nelson) of propeller
	beanies as fannish insignia (though nobody actually wears them
	except as a joke).

	[{Jargon File}]

	(1995-01-18)

propeller key

	{feature key}

proportionally spaced font

	{proportional font}

Proposal Writing

	Extension of {Fortran} for proposal writing.

	[Sammet 1969, p. 170].

	(1995-01-18)

proposition

	<logic> A statement in {propositional logic} which may be
	either true or false.  Each proposition is typically
	represented by a letter in a {formula} such as "p => q",
	meaning proposition p implies proposition q.

	(2006-03-14)

propositional calculus

	{propositional logic}

propositional logic

	<logic> (or "propositional calculus") A system of {symbolic
	logic} using symbols to stand for whole {propositions} and
	{logical connectives}.  Propositional logic only considers
	whether a proposition is true or false.  In contrast to
	{predicate logic}, it does not consider the internal structure
	of propositions.

	(2002-05-21)

Proposition of a Language Useable for Structured Specifications

	<language> (PLUSS)
	An {algebraic specification language}, built on top of {ASL}.

	["A First Introduction to PLUSS", M.C. Gaudel, TR, U Paris
	Sud, Orsay 1984].

	(2006-03-14)

proprietary

	1. In {marketroid}-speak, superior; implies a product imbued
	with exclusive magic by the unmatched brilliance of the
	company's own hardware or software designers.

	2. In the language of hackers and users, inferior; implies a
	product not conforming to {open-systems} {standards}, and thus
	one that puts the customer at the mercy of a vendor who can
	inflate service and upgrade charges after the initial sale has
	locked the customer in.

	[{Jargon File}]

PROSE

	1. PROblem Solution Engineering.  Numerical problems including
	differentiation and integration.  "Computing in Calculus",
	J. Thames, Research/Development 26(5) (May 1975).

	2. A constraints-and-sequencing system similar to
	Kaleidoscope.  "Reflexive Constraints for Dynamic Knowledge
	Bases", P. Berlandier et al in Proc First Intl CS Conf '88:
	AI: Theory and Appls, Dec 1988.

ProSet

	A derivative of {SETL} with {Ada}-like {syntax} developed at
	the {University of Essen} in 1990.  Formerly known as SETL/E.

	["SETL/E, A Prototyping System Based on Sets", E.E. Doberkat
	et al, in Tagungsband TOOL90, W. Zorn ed, pp. 109-118, U
	Karlsruhe, Nov 1990].

	["ProSet - A Language for Prototyping with Sets",
	E.-E. Doberkat et al, in Proc Third Intl Workshop on Rapid
	System Prototyping, N.  Kanopoulos ed, IEEE Comp Soc Press,
	June 1992, pp. 235-248].

PROSPER

	["PROSPER: A Language for Specification by Prototyping", J.
	Leszczylowski, Comp Langs 14(3):165-180 (1989)].

Prospero

	A tool for organising {Internet} resources.  Prospero allows
	each user to organise the contents of remote file servers into
	his own virtual file system with his own hierarchical name
	space consisting of links to remote objects.  Remote indexing
	services are made available by treating the results as a
	virtual directory.  A "union link" allows the contents of the
	link's target directory to appear as part of the directory
	containing the link.  Arbitrary filters can be associated with
	links to modify the representation of the target directory as
	desired.  Prospero directories can be shared between users.
	The Prospero protocol is used for communication between
	clients and servers in the archie system.

	A prototype of Prospero has been available since December
	1990.  It interfaces with Sun {NFS}, the {Andrew File System}
	and {FTP} (with local caching) and {Archie}.  Support for
	{World-Wide Web} and {WAIS} is planned (1992).

	E-mail: <info-prospero@isi.edu>.
	{(ftp://prospero.isi.edu/pub/prospero)}.

ProTalk

	{Quintus}.  An {object-oriented} {Prolog}.

protected mode

	An operating mode of {Intel 80x86} processors.  The opposite
	of real mode.  The {Intel 8088}, {Intel 8086}, {Intel 80188}
	and {Intel 80186} had only real mode, processors beginning
	with the {Intel 80286} feature a second mode called protected
	mode.

	In real mode, addresses are generated by adding an address
	offset to the value of a {segment register} shifted left four
	bits.  As the segment register and address offset are 16 bits
	long this results in a 20-bit address.  This is the origin of
	the one megabyte (2^20) limit in real mode.

	There are 4 segment registers on processors before the {Intel
	80386}.  The 80386 introduced two more segment registers.
	Which segment register is used depends on the instruction, on
	the {addressing mode} and of an optional instruction prefix
	which selects the segment register explicitly.

	In protected mode, the segment registers contain an index into
	a table of {segment descriptors}.  Each segment descriptor
	contains the start address of the segment, to which the offset
	is added to generate the address.  In addition, the segment
	descriptor contains {memory protection} information.  This
	includes an offset limit and bits for write and read
	permission.  This allows the processor to prevent memory
	accesses to certain data.  The {operating system} can use this
	to protect different processes' memory from each other, hence
	the name "protected mode".

	While the standard {register set} belongs to the {CPU}, the
	segment registers lie "at the boundary" between the CPU and
	MMU.  Each time a new value is loaded into a segment register
	while in protected mode, the corresponding descriptor is
	loaded into a descriptor cache in the (Segment-)MMU.  On
	processors before the {Pentium} this takes longer than just
	loading the segment register in real mode.  Addresses
	generated by the CPU (which are segment offsets) are passed to
	the MMU to be checked against the limit in the segment
	descriptor and are there added to the segment base address in
	the descriptor to form a {linear address}.

	On a 80386 or later, the linear address is further processed
	by the paged MMU before the result (the physical address)
	appears on the chip's address pins.  The 80286 doesn't have a
	paged MMU so the linear address is output directly as the
	physical address.

	The paged MMU allows for arbitrary remapping of four klilobyte
	memory blocks ({pages}) through a translation table stored in
	memory.  A few entries of this table are cached in the MMU's
	{Translation Lookaside Buffer} to avoid excessive memory
	accesses.

	After processor reset, all processors start in real mode.
	Protected mode has to be enabled by software.  On the 80286
	there exists no documented way back to real mode apart from
	resetting the processor.  Later processors allow switching
	back to real mode by software.

	Software which has been written or compiled to run in
	protected mode must only use segment register values given to
	it by the operating system.  Unfortunately, most application
	code for {MS-DOS}, written before the 286, will fail in
	protected mode because it assumes real mode addressing and
	writes arbitrary values to segment registers, e.g. in order to
	perform address calculations.

	Such use of segment registers is only really necessary with
	data structures that are larger than 64 kilobytes and thus
	don't fit into a single segment.  This is usually dealt with
	by the {huge memory model} in compilers.  In this model,
	compilers generate address arithmetic involving segment
	registers.  A solution which is portable to protected mode
	with almost the same efficiency would involve using a table of
	segments instead of calculating new segment register values ad
	hoc.

	To ease the transition to protected mode, {Intel 80386} and
	later processors provide "{virtual 86 mode}".

	(1995-03-29)

PROTEUS

	An extensible language, the core of {PARSEC}.

	["The Design of a Minimal Expandable Computer Language",
	J.R. Bell, PhD Thesis, CS, {Stanford University} (Dec 1968)].

protocal

	<spelling> It's spelled "{protocol}".

protocol

	A set of formal rules describing how to transmit data,
	especially across a {network}.  Low level protocols define the
	electrical and physical standards to be observed, bit- and
	byte-ordering and the transmission and {error detection and
	correction} of the bit stream.  High level protocols deal with
	the data formatting, including the {syntax} of messages, the
	terminal to computer dialogue, {character sets}, sequencing of
	messages etc.

	Many protocols are defined by {RFCs} or by {OSI}.

	See also {handshaking}.

	[{Jargon File}]

	(1995-01-12)

protocol analyser

	<communications, hardware, networking, testing, tool> Any
	device that captures and interprets the {network traffic}
	between two or more connected computer systems.  The traffic
	can then be {decoded} so that it is possible to see what
	{processes} are occurring.

	By examining the flow of traffic, protocol analysers can be
	used to find out where problems (such as {bottlenecks} or the
	failure of a network device) are on a {LAN}.

	Advanced protocol analysers can also provide statistics on
	the traffic that can help to identify trends that may in
	future lead to further problems with the network.

	(2000-07-24)

protocol converter

	<networking> A device or program to translate between
	different {protocols} which serve similar functions
	(e.g. {TCP} and {TP4}).

	Some call this a "{gateway}", though others use that term for
	other kinds of {internetworking} device.

	(1996-03-07)

Protocol Data Unit

	(PDU) A {packet} of data passed across a {network}.  The term
	implies a specific layer of the {OSI} seven layer model and a
	specific {protocol}.

	(1994-10-13)

protocol layer

	<networking> The {software} and/or {hardware} environment of
	two or more communications devices or computers in which a
	particular {network} {protocol} operates.  A network
	connection may be thought of as a set of more or less
	independent protocols, each in a different layer or level.
	The lowest layer governs direct host-to-host communication
	between the hardware at different hosts; the highest consists
	of user {application programs}.  Each layer uses the layer
	beneath it and provides a service for the layer above.  Each
	networking component {hardware or software} on one host uses
	{protocols} appropriate to its layer to communicate with the
	corresponding component (its "peer") on another host.  Such
	layered protocols are sometimes known as peer-to-peer
	protocols.

	The advantages of layered {protocols} is that the methods of
	passing information from one layer to another are specified
	clearly as part of the {protocol} suite, and changes within a
	protocol layer are prevented from affecting the other layers.
	This greatly simplifies the task of designing and maintaining
	communication systems.

	Examples of layered protocols are {TCP/IP}'s five layer
	{protocol stack} and the {OSI} seven layer model.

	(1997-05-05)

protocol stack

	<protocol> A layered set of {protocols} which work together to
	provide a set of network functions.  Each intermediate
	{protocol layer} uses the layer below it to provide a service
	to the layer above.

	The {OSI} seven layer model is an attempt to provide a
	standard framework within which to describe protocol stacks.

	(1997-12-07)

PROTON

	1. A home computer made by {Acorn Computers} under a contract
	won from the {BBC} in April 1981.

	[Details?]

	2. Something to do with {Microsoft} {SoftLib}?

	(1994-11-28)

Protosynthex

	A query system for English text.

	[Sammet 1969, p. 669].

prototype

	1. <systems> An early version of a product, designed to
	demonstrate feasability and elicit feedback.  A prototype
	usually has some subset of the functions, behaviour and
	appearance of the finished product.  It is usually made using
	a method suitable for producing a one-off rather than mass
	production.

	2. <programming> In {prototype-based programming}, an {object}
	that is intended to be cloned to create similar objects which
	may then be modified independantly and/or cloned themselves.

	(2010-03-02)

Prototyper

	An {interface builder} for the {Macintosh} from Smethers
	Barnes.

	(1994-11-28)

prototyping

	The creation of a model and the {simulation} of all aspects of
	a product.  {CASE} tools support different degrees of
	prototyping.  Some offer the end-user the ability to review
	all aspects of the {user interface} and the structure of
	documentation and reports before code is generated.

provably difficult

	The set or property of problems for which it can be proven
	that no {polynomial-time} {algorithm} exists, only
	{exponential-time} {algorithms}.

provably unsolvable

	The set or property of problems for which no {algorithm} at
	all exists.  E.g. the {Halting Problem}.  See also {provably
	difficult}.

provider

	{Internet Access Provider}

provocative maintenance

	[Common ironic mutation of "preventive maintenance"] Actions
	performed upon a machine at regularly scheduled intervals to
	ensure that the system remains in a usable state.  So called
	because it is all too often performed by a {field servoid} who
	doesn't know what he is doing; such "maintenance" often
	*induces* problems, or otherwise results in the machine's
	remaining in an *un*usable state for an indeterminate amount
	of time.  See also {scratch monkey}.

	[{Jargon File}]

prowler

	({Unix}) A {daemon} that is run periodically (typically once a
	week) to seek out and erase {core} files, truncate
	administrative logfiles, nuke "lost+found" directories, and
	otherwise clean up the {cruft} that tends to pile up in the
	corners of a file system.

	See also {GFR}, {reaper}, {skulker}.

	(1995-02-14)

proxy

	<networking> A process that accepts requests for some service
	and passes them on to the real {server}.  A proxy may run on
	dedicated {hardware} or may be purely {software}.  It may
	transform the request in some way or provide some additional
	layer of functionality such as {caching} or remote access.  A
	proxy may be intended to increase security, e.g. a {web proxy}
	that allows multiple clients inside an organisation to access
	the {Internet} through a single secure, shared connection.

	(2007-09-03)

proxy ARP

	<networking> The technique in which one {host}, usually a
	{router}, answers {Address Resolution Protocol} (ARP) requests
	intended for another machine.  By "faking" its identity, the
	router accepts responsibility for routing {packets} to the
	"real" destination.  Proxy ARP allows a site to use a single
	{IP address} with two physical networks.  {Subnet}ting would
	normally be a better solution.

	(2007-09-03)

proxy gateway

	{proxy server}

Proxy Server

	<software, security> (Capitalised) {Microsoft}'s {proxy
	server} and {proxy gateway}, designed to provide extensible
	{firewall} and network security.  Proxy Server is part of
	{BackOffice}.

	(1999-09-17)

proxy server

	<networking> A {server} process that intercepts requests from
	a client, passes them to an {origin server} and returns the
	response to the client while performing various other
	operations in the process.  An {HTTP proxy server} is a common
	example.

	A proxy may be used for purposes of {security}, performance
	({caching}) or anonymity.  It may be purely software or may
	run on its own hardware, either a standard {PC} or server
	machine or a custom hardware appliance.  A software proxy may
	be on the same computer as the client or the origin server,
	separate hardware may be anywhere on the network in between.

	The proxy may filter requests, rejecting some if the request
	or response matches certain conditions (e.g. an {antivirus}
	proxy).  It may cache requests and responses to reduce load on
	the origin server or data volume on the network or to provide
	quicker response to the client for common requests.  The proxy
	may modify the request or response, e.g. to convert between
	different protocols or interfaces.

	Proxy servers are often used in large companies as part of a
	{firewall} so that users within the company need have no
	direct connection to the Internet (and can use a {private IP
	address} range) but can still access the {World-Wide Web},
	{instant messenger}, etc via the proxy.  Usually this requires
	each client to be configured to use the proxy.

	The term "proxy gateway" may more imply transparency (less
	intervention) in the request-response process, though is often
	used as a synonym for proxy server.

	(2008-07-01)

PS

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

	2. <file format> {Physical Sequential}.

PS1

	{Sony Playstation}

PS2

	{Sony Playstation}

PS/2

	<computer> {IBM}'s second generation of {personal computers}.
	The PS/2 series introduced three advances over the PC series:
	3.5" 1.44 megabyte {microfloppy} disks, {VGA} and {8514}
	graphics {display standards}, and the {Micro Channel} bus
	architecture.  The 3.5" disks and VGA can be easily installed
	on other PCs and will become the standard for new compatible
	computers.  The Micro Channel bus allows for multiprocessing
	and less aggravation, but cannot be retrofitted to older PCs.

	PS/2 models 25 and 30 are {ISA}, other models have Micro
	Channel and {ESDI}.

	(1995-11-27)

PS 440

	<language> The system implementation language for the
	{Telefunken TR 440} computer, developed by K. Lagally in about
	1974.

	(2003-07-29)

PSA

	Problem Statement Analizer.  See {PSL/PSA}.

PS-ALGOL

	Persistent ALGOL.  ca 1981, released 1985.  A derivative of
	S-ALGOL.  Database capability derived from the longevity of
	data.  "The PS- Algol Reference Manual", TR PPR-12-85, CS
	Dept, U Glasgow 1985.  IBM PC version available from CS Dept,
	U Strathclyde, Glasgow.

pSather

	<language> A parallel extension of {Sather} for a clustered
	{shared memory} model.  It features {threads} synchronised by
	{monitor} objects ("gates"); {locality} {assertions} and
	placement operators.

	There is an implementation for the {CM-5}.

	["pSather Monitors: Design, Tutorial, Rationale and
	Implementation", J.A. Feldman et al, TR-91-031 and TR-93-028,
	ICSI, Berkeley, CA].

	(1995-03-13)

PSD

	<tool> {Portable Scheme Debugger}.

PSDN

	<communications> {Public Switched Data Network}.

pseudo

	<jargon> /soo'doh/ ({Usenet}) Pseudonym.

	1. An {electronic-mail} or {Usenet} persona adopted by a human
	for amusement value or as a means of avoiding negative
	repercussions of one's net.behaviour; a "nom de {Usenet}",
	often associated with forged postings designed to conceal
	message origins.  Perhaps the best-known and funniest hoax of
	this type is {BIFF}.

	2. Notionally, a {flamage}-generating {AI} program simulating
	a {Usenet} user.  Many flamers have been accused of actually
	being such entities, despite the fact that no AI program of
	the required sophistication yet exists.  However, in 1989
	there was a famous series of forged postings that used a
	phrase-frequency-based travesty generator to simulate the
	styles of several well-known flamers; it was based on large
	samples of their back postings (compare {Dissociated Press}).
	A significant number of people were fooled by the forgeries,
	and the debate over their authenticity was settled only when
	the perpetrator came forward to publicly admit the hoax.

	[{Jargon File}]

	(1995-03-13)

pseudocode

	<programming> A notation resembling a {programming language}
	but not intended for actual {compilation}.  It usually
	combines some of the structure of a programming language with
	an informal {natural language} description of the computations
	to be carried out.  Some {CASE} systems produce it as a basis
	for later {hand coding}.

	(2011-01-29)

pseudoprime

	A backgammon prime (six consecutive occupied points) with one
	point missing.  This term is an esoteric pun derived from a
	mathematical method that, rather than determining precisely
	whether a number is prime (has no divisors), uses a
	statistical technique to decide whether the number is
	"probably" prime.  A number that passes this test is called a
	pseudoprime.  The hacker backgammon usage stems from the idea
	that a pseudoprime is almost as good as a prime: it does the
	job of a prime until proven otherwise, and that probably won't
	happen.

	[{Jargon File}]

pseudorandom number

	<programming> One of a sequence of numbers generated by some
	{algorithm} so as to have an even distribution over some range
	of values and minimal {correlation} between successive
	values.

	Pseudorandom numbers are used in {simulation} and
	{encryption}.  They are pseudorandom not random because the
	sequence eventually repeats exactly and is entirely determined
	by the initial conditions.

	One of the simplest algorithms is

		x[i+1] = (a * x[i] + c) mod m

	but this repeats after at most m numbers and successive
	numbers are closely related.  Better algorithms generally use
	more previous numbers to calculate the next number.

	{(http://random.mat.sbg.ac.at/)}.

	(2007-06-29)

PseudoScheme

	A translator from {Scheme} to {Common Lisp} by Jonathan Rees
	<jar@cs.cornell.edu>.  Version 2.8.  It conforms to all of
	{R3RS} except {call/cc} and requires {Common Lisp}.  Runs on
	{Lucid}, {Symbolics CL}, {VAX Lisp}, {Explorer CL}.

	Mailing list: info-clscheme-request@mc.lcs.mit.edu.

	(1994-10-28)

pseudosuit

	/soo'doh-s[y]oot"/ A {suit} wannabee; a hacker who has decided
	that he wants to be in management or administration and begins
	wearing ties, sport coats, and (shudder!) suits voluntarily.
	It's his funeral.  See also {lobotomy}.

	[{Jargon File}]

pseudo-tty

	{Berkeley} {Unix} networking device which appears to an
	{application program} as an ordinary terminal but which is in
	fact connected via the network to a process running on a
	different {host} or a windowing system.  Pseudo-ttys have a
	slave half and a control half.  The slave tty (/dev/ttyp*) is
	the device that user programs use and the control tty
	(/dev/ptyp*) is used by {daemons} to talk to the net.

	(1994-11-08)

PSF

	{Print Services Facility}

PSI

	{Portable Scheme Interpreter}

Psion

	<company> The UK company that produced the {Psion Organiser}.
	They also wrote software for the {Sinclair} {QL}.

	{Psion Home (http://psionteklogix.com/)}.

	(2009-05-27)

Psion Organiser

	<computer> A popular {pocket computer} from the UK Company
	{Psion} plc.  The organiser uses a {graphical user interface}
	with windows, menus, icons and {dialog box}es.  There have
	been several versions so far: Series3a, Series3, HC, MC,
	OrgII.

	{Usenet} newsgroups: {news:comp.sys.psion},
	{news:comp.binaries.psion}.

	(1995-03-03)

PSK

	1. <communications> {Phase-Shift Keying}.

	2. <cryptography, networking> {Pre-Shared Key}.

PSL

	<language>

	1. {Portable Standard Lisp}.

	2. {Problem Statement Language}.

PSL/PSA

	{Problem Statement Language/Problem Statement Analyser}

PSML

	{Processor System Modeling Language}.

PSN

	{Packet Switch Node}

PSO

	{Oracle Parallel Server}

PSPP

	<statistics> A {GNU} version of {SPSS}.

	[URL?  Features?]

	(2010-03-21)

PSTN

	{Public Switched Telephone Network}

PSU

	{power supply unit}

psychedelicware

	/si:"k*-del"-ik-weir/ [UK] Synonym {display hack}.  See also
	{smoking clover}.

	[{Jargon File}]

psyton

	<humour> /si:'ton/ (From {TMRC}) The elementary particle
	carrying the sinister force.  The probability of a process
	losing is proportional to the number of psytons falling on it.
	Psytons are generated by observers, which is why demos are
	more likely to fail when lots of people are watching.  This
	term appears to have been largely superseded by {bogon}; see
	also {quantum bogodynamics}.

	(1997-04-26)

pt

	1. <text, unit> {point}.

	2. <networking> The {country code} for Portugal.

	(1999-01-27)

P-TAC

	Parallel Three Address Code.

	{Kid} is a refinement of {P-TAC}, used as an intermediate
	language for {Id}.

	["P-TAC: A Parallel Intermediate Language", Z. Ariola et al,
	Fourth Intl Conf Func Prog Langs and Comp Arch, ACM Sept
	1989].

ptc

	A {Pascal} to {C} translator.

	{(ftp://uxc.sco.uiuc.edu/languages/ptc)}.

PTF

	{Program Temporary Fix}

Pthreads

	{POSIX Threads}

PTI

	{Portable Tool Interface}

PTN

	{Physical Transport Network}

Ptolemy

	A flexible foundation for the specification, simulation, and
	rapid prototyping of systems.  It is an {object-oriented}
	framework within which diverse models of computation can
	co-exist and interact.  For example, using Ptolemy a
	{data-flow} system can be easily connected to a hardware
	simulator which in turn may be connected to a discrete-event
	system.  Because of this, Ptolemy can be used to model entire
	systems.  In addition, Ptolemy now has code generation
	capabilities.  From a {flow graph} description, Ptolemy can
	generate both {C} code and {DSP} {assembly code} for rapid
	prototyping.  Note that code generation is not yet complete,
	and is included in the current release for demonstration
	purposes only.

	Version 0.4.1 includes a graphical algorithm layout, code
	generator and simulator.  It requires {C++}, {C} and has been
	ported to {Sun-4}, {MIPS}/{Ultrix}; {DSP56001}, {DSP96002}.
	Ptolemy is an active research project.

	{(ftp://ptolemy.bekeley.edu/pub/ptolemy/)}.  Mailing list:
	ptolemy-hackers-request@ohm.berkeley.edu.  E-mail:
	<ptolemy@ohm.berkeley.edu>.

	(1993-04-22)

PTT

	{Post, Telephone and Telegraph administration}

PUB

	1. PUBlishing.  A 1972 text-formatting language for {TOPS-10},
	with syntax based on {SAIL}.  Influenced {TeX} and {Scribe}.
	["PUB: The Document Compiler", Larry Tesler, Stanford AI Proj
	Op Note, Sept 1972].

	2. /pub, the top-level, publicly accessible directory on most
	{anonymous FTP} archives.  This is usually where the
	interesting files are.  See {pubic directory}.

pubic directory

	[NYU] (also "pube directory" /pyoob' d*-rek't*-ree/) The "pub"
	(public) directory on a machine that allows {FTP} access.  So
	called because it is the default location for {SEX} (software
	exchange).

	[{Jargon File}]

public domain

	(PD) The total absence of {copyright} protection.  If
	something is "in the public domain" then anyone can copy it or
	use it in any way they wish.  The author has none of the
	exclusive rights which apply to a copyright work.

	The phrase "public domain" is often used incorrectly to refer
	to {freeware} or {shareware} (software which is copyrighted
	but is distributed without (advance) payment).  Public domain
	means no copyright -- no exclusive rights.  In fact the phrase
	"public domain" has no legal status at all in the UK.

	See also {archive site}, {careware}, {charityware},
	{copyleft}, {crippleware}, {guiltware}, {postcardware} and
	{-ware}.  Compare {payware}.

public domain software

	{public domain}

public-key cryptography

	{public-key encryption}

Public-Key Cryptography Standards

	<cryptography, standard> (PKCS) A set of {standards} for
	{public-key cryptography}, developed by {RSA Data Security,
	Inc.} in cooperation with an informal consortium, originally
	including {Apple}, {Microsoft}, {DEC}, {Lotus}, {Sun} and
	{MIT}.  The PKCS have been cited by the {OSI Implementers'
	Workshop} (OIW) as a method for implementation of {OSI}
	standards.

	PKCS includes both {algorithm}-specific and
	algorithm-independent implementation standards.  Many
	algorithms are supported, including {RSA} and {Diffie-Hellman}
	key exchange, however, only the latter two are specifically
	detailed.  PKCS also defines an algorithm-independent {syntax}
	for {digital signatures}, {digital envelopes}, and extended
	{digital certificates}; this enables someone implementing any
	cryptographic algorithm whatsoever to conform to a standard
	syntax, and thus achieve interoperability.

	E-mail: pkcs@rsa.com.

	(1999-02-16)

public-key encryption

	<cryptography> (PKE, Or "public-key cryptography") An
	{encryption} scheme, introduced by Diffie and Hellman in 1976,
	where each person gets a pair of keys, called the public key
	and the private key.  Each person's public key is published
	while the private key is kept secret.  Messages are encrypted
	using the intended recipient's public key and can only be
	decrypted using his private key.  This is often used in
	conjunction with a {digital signature}.

	The need for sender and receiver to share secret information
	(keys) via some secure channel is eliminated: all
	communications involve only public keys, and no private key is
	ever transmitted or shared.

	Public-key encryption can be used for {authentication},
	{confidentiality}, {integrity} and {non-repudiation}.

	{RSA encryption} is an example of a public-key cryptosystem.

	{alt.security FAQ
	(http://cis.ohio-state.edu/hypertext/faq/bngusenet/alt/security/top.html)}.

	See also {knapsack problem}.

	(1995-03-27)

Public Key Infrastructure

	<cryptography, communications> (PKI) A system of {public key
	encryption} using {digital certificates} from {Certificate
	Authorities} and other registration authorities that verify
	and authenticate the validity of each party involved in an
	electronic transaction.

	PKIs are currently evolving and there is no single PKI nor
	even a single agreed-upon standard for setting up a PKI.
	However, nearly everyone agrees that reliable PKIs are
	necessary before {electronic commerce} can become widespread.

	{US DOD PKI (http://www-pki.itsi.disa.mil/)}.

	{US NIST PKI (http://csrc.ncsl.nist.gov/pki/)}.

	{IETF PKIX Working Group (http://imc.org/ietf-pkix/)}.

	(1999-11-30)

Public Switched Telephone Network

	<communications> (PSTN, T.70) The collection of interconnected
	systems operated by the various telephone companies and
	administrations ({telcos} and {PTTs}) around the world.  Also
	known as the Plain Old Telephone System (POTS) in contrast to
	{xDSL} and {ISDN} (not to mention other forms of {PANS}).

	The PSTN started as human-operated analogue circuit switching
	systems (plugboards), progressed through electromechanical
	switches.  By now this has almost completely been made
	digital, except for the final connection to the subscriber
	(the "last mile"): The signal coming out of the phone set is
	analogue.  It is usually transmitted over a {twisted pair
	cable} still as an analogue signal.  At the {telco} office
	this analogue signal is usually digitised, using 8000 samples
	per second and 8 bits per sample, yielding a 64 kb/s data
	stream ({DS0}).  Several such data streams are usually
	combined into a fatter stream: in the US 24 channels are
	combined into a {T1}, in Europe 31 DS0 channels are combined
	into an {E1} line.  This can later be further combined into
	larger chunks for transmission over high-bandwidth core
	trunks.  At the receiving end the channels are separated, the
	digital signals are converted back to analogue and delivered
	to the received phone.

	While all these conversions are inaudible when voice is
	transmitted over the phone lines it can make digital
	communication difficult.  Items of interest include {A-law} to
	{mu-law} conversion (and vice versa) on international calls;
	{robbed bit} signalling in North America (56 kbps <--> 64
	kbps); data {compression} to save {bandwidth} on long-haul
	trunks; signal processing such as echo suppression and voice
	signal enhancement such as AT&T TrueVoice.

	(2000-07-09)

puff

	<algorithm> To decompress data that has been crunched by
	{Huffman coding}.  At least one widely distributed Huffman
	decoder program was actually *named* "PUFF", but these days it
	is usually packaged with the encoder.

	Opposite: {huff}.

	[{Jargon File}]

	(1996-10-16)

PUFFT

	["The Purdue University Fast Fortran Translator", Saul Rosen
	et al, CACM 8(11):661-666 (Nov 1965)].

	(1995-01-05)

pull

	{pull media}

pull-down list

	<operating system> (Or "drop-down list") A {graphical user
	interface} component that allows the user to choose one (or
	sometimes more than one) item from a list.  The current choice
	is visible in a small rectangle and when the user clicks on
	it, a list of items is revealed below it.  The user can then
	click on one of these to make it the current choice and the
	list disappears.  In some cases, by holding down a modifier
	key such as Ctrl when clicking, the selection is added to (or
	removed from) the set of current choices rather than replacing
	it.

	(1999-09-25)

pull-down menu

	<operating system> (Or "drop-down menu", "pop-down menu") A
	{menu} in a {graphical user interface}, whose title is
	normally visible but whose contents are revealed only when the
	user activates it, normally by pressing the {mouse} button
	while the {pointer} is over the title, whereupon the menu
	items appear below the title.  The user may then select an
	item from the menu or click elsewhere, in either case the menu
	contents are hidden again.  A menu item is selected either by
	dragging the mouse from the menu title to the item and
	releasing or by clicking the title and then the item.

	When a pull-down menu appears in the main area of a window, as
	opposed to the {menu bar}, it may have a small,
	downward-pointing triangle to the right.

	Compare: {scrollable list}.

	(1999-09-22)

pull media

	<messaging> A model of media distribution were the bits of
	content have to be requested by the user, e.g. normal use of
	{HTTP} on the {World-Wide Web}.

	Opposite: "{push media}".

	(1997-04-10)

Pulse Code Modulation

	<data> (PCM) A method by which an audio signal is represented
	as digital data.

	Virtually all digital audio systems use PCM, including, {CD},
	{DAT}, F1 format, 1630 format, DASH, DCC, and MD.  Many people
	get confused because "PCM" is also slang for Sony's F1 format
	which stores PCM digital audio on videotape.

	(1995-02-09)

pumpkin

	<jargon> A humourous term for the {token} - the object
	(notional or real) that gives its possessor (the "pumpking" or
	the "pumpkineer") exclusive access to something, e.g. applying
	{patches} to a master copy of {source} (for which the pumpkin
	is called a "patch pumpkin").

	Chip Salzenberg <chip@perl.com> wrote:

	David Croy once told me once that at a previous job, there was
	one tape drive and multiple systems that used it for backups.
	But instead of some high-tech exclusion software, they used a
	low-tech method to prevent multiple simultaneous backups: a
	stuffed pumpkin.  No one was allowed to make backups unless
	they had the "backup pumpkin".

	(1999-02-23)

pumpkineer

	{pumpkin}

pumpking

	{pumpkin}

punch card

	{punched card}

punched card

	<storage, history> (Or "punch card") The signature medium of
	computing's Stone Age, now long obsolete outside of a few
	{legacy systems}.  The punched card actually predates
	computers considerably, originating in 1801 as a control
	device for {Jacquard looms}.  {Charles Babbage} used them as a
	data and program storage medium for his {Analytical Engine}:

	"To those who are acquainted with the principles of the
	Jacquard loom, and who are also familiar with analytical
	formulæ, a general idea of the means by which the Engine
	executes its operations may be obtained without much
	difficulty.  In the Exhibition of 1862 there were many
	splendid examples of such looms. [...] These patterns are then
	sent to a peculiar artist, who, by means of a certain machine,
	punches holes in a set of pasteboard cards in such a manner
	that when those cards are placed in a Jacquard loom, it will
	then weave upon its produce the exact pattern designed by the
	artist.  [...]  The analogy of the Analytical Engine with this
	well-known process is nearly perfect.  There are therefore two
	sets of cards, the first to direct the nature of the
	operations to be performed -- these are called operation
	cards: the other to direct the particular variables on which
	those cards are required to operate -- these latter are called
	variable cards.  Now the symbol of each variable or constant,
	is placed at the top of a column capable of containing any
	required number of digits."

	-- from Chapter 8 of Charles Babbage's "Passages from the Life
	of a Philosopher", 1864.

	The version patented by {Herman Hollerith} and used with
	mechanical tabulating machines in the 1890 US Census was a
	piece of cardboard about 90 mm by 215 mm.  There is a
	widespread myth that it was designed to fit in the currency
	trays used for that era's larger dollar bills, but recent
	investigations have falsified this.

	{IBM} (which originated as a tabulating-machine manufacturer)
	married the punched card to computers, encoding binary
	information as patterns of small rectangular holes; one
	character per column, 80 columns per card.  Other coding
	schemes, sizes of card, and hole shapes were tried at various
	times.

	The 80-column width of most character terminals is a legacy of
	the IBM punched card; so is the size of the quick-reference
	cards distributed with many varieties of computers even today.

	See {chad}, {chad box}, {eighty-column mind}, {green card},
	{dusty deck}, {lace card}, {card walloper}.

	[{Jargon File}]

	(1998-10-19)

punt

	(From the punch line of an old joke referring to American
	football: "Drop back 15 yards and punt!") 1. To give up,
	typically without any intention of retrying.  "Let's punt the
	movie tonight."  "I was going to hack all night to get this
	feature in, but I decided to punt" may mean that you've
	decided not to stay up all night, and may also mean you're not
	ever even going to put in the feature.

	2. More specifically, to give up on figuring out what the
	{Right Thing} is and resort to an inefficient hack.

	3. A design decision to defer solving a problem, typically
	because one cannot define what is desirable sufficiently well
	to frame an algorithmic solution.  "No way to know what the
	right form to dump the graph in is - we'll punt that for
	now."

	4. To hand a tricky implementation problem off to some other
	section of the design.  "It's too hard to get the compiler to
	do that; let's punt to the run-time system."

	[{Jargon File}]

Purdue Compiler-Construction Tool Set

	<tool> (PCCTS) A highly integrated {lexical analser generator}
	and {parser generator} by Terence J. Parr <parrt@acm.org>,
	Will E. Cohen and Henry G. Dietz <hankd@ecn.purdue.edu>, both
	of {Purdue University}.

	ANTLR (ANother Tool for Language Recognition) corresponds to
	YACC and DLG (DFA-based Lexical analyser Generator) functions
	like {LEX}.  PCCTS has many additional features which make it
	easier to use for a wide range of translation problems.  PCCTS
	{grammars} contain specifications for lexical and syntactic
	analysis with selective {backtracking} ("infinite lookahead"),
	{semantic predicates}, intermediate-form construction and
	error reporting.  Rules may employ {Extended BNF} (EBNF)
	grammar constructs and may define parameters, return values,
	and have {local variables}.

	Languages described in PCCTS are recognised via {LLk} parsers
	constructed in pure, human-readable, {C} code.  Selective
	backtracking is available to handle non-LL(k) constructs.
	PCCTS {parsers} may be compiled with a {C++} compiler.  PCCTS
	also includes the {SORCERER} tree parser generator.

	Latest version: 1.10, runs under {Unix}, {MS-DOS}, {OS/2}, and
	{Macintosh} and is very portable.

	{(ftp://marvin.ecn.purdue.edu/pub/pccts/1.10)}.

	{UK FTP (ftp://src.doc.ic.ac.uk/
	computing/programming/languages/tools/pccts/)}.  {Macintosh
	FTP (ftp://maya.dei.unipd.it/pub/mac/)}.

	Mailing list: pccts-users-request@ahpcrc.umn.edu ("subscribe
	pccts-users your_name" in the message body).

	E-mail: Terence J. Parr <parrt@acm.org>, Roberto Avanzi
	<mocenigo@maya.dei.unipd.it> (Mac port).

	(2000-10-30)

Purdue University

	{(http://purdue.edu/)}.

	(1995-01-05)

pure functional language

	{purely functional language}

pure lambda-calculus

	{Lambda-calculus} with no constants, only functions expressed
	as {lambda abstractions}.

	(1994-10-27)

PureLink

	An incremental linker from {Pure Software}.

Pure Lisp

	A {purely functional language} derived from {Lisp} by
	excluding any feature which causes {side-effects}.

purely functional language

	<language> A language that supports only {functional
	programming} and does not allow functions to have
	{side-effects}.  Program execution consists of evaluation of
	an expression and all subexpressions are {referentially
	transparent}.

	(2003-03-25)

Purify

	A debugging tool from Pure Software.

Purple Book

	1. <publication> The "System V Interface Definition".  The
	covers of the first editions were an amazingly nauseating
	shade of off-lavender.

	2. <publication> The {Wizard Book}.

	See also {book titles}.

	[{Jargon File}]

purple wire

	<jargon, hardware> Wire installed by {IBM} Field Engineers to
	work around problems discovered during testing or debugging.
	These are called "purple wires" even when (as is frequently
	the case) they are yellow.

	Compare {blue wire}, {yellow wire}, and {red wire}.

	(1995-04-11)

Purveyor

	<World-Wide Web> A {World-Wide Web} {server} for {Windows NT}
	and {Windows 95} (when available).

	{(http://process.com/)}.

	E-mail: <info@process.com>.

	(1995-04-11)

push

	1. <programming> To put something onto a {stack} or {pdl}.

	Opposite: "{pop}".

	2. <communications> {push media}.

	[{Jargon File}]

	(1997-04-10)

push-button

	<electronics> A roughly fingertip-sized plastic cover attached
	to a spring-loaded, normally-open switch, which, when pressed,
	closes the switch.  Typical examples are the keys on a
	computer or calculator keyboard and {mouse} buttons.

	(1997-07-07)

Push Down List

	<programming> (PDL) In {ITS} days, the preferred {MIT}ism for
	{stack}.

	See {overflow pdl}.

	(1995-12-21)

push media

	<messaging> A model of media distribution where items of
	content are sent to the user (viewer, listener, etc.) in a
	sequence, and at a rate, determined by a {server} to which the
	user has connected.  This contrasts with {pull media} where
	the user requests each item individually.  Push media usually
	entail some notion of a "channel" which the user selects and
	which delivers a particular kind of content.

	Broadcast television is (for the most part) the prototypical
	example of push media: you turn on the TV set, select a
	channel and shows and commercials stream out until you turn
	the set off.

	By contrast, the {World-Wide Web} is (mostly) the prototypical
	example of pull media: each "page", each bit of content, comes
	to the user only if he requests it; put down the keyboard and
	the mouse, and everything stops.

	At the time of writing (April 1997), much effort is being put
	into blurring the line between push media and pull media.
	Most of this is aimed at bringing more push media to the
	{Internet}, mainly as a way to disseminate advertising, since
	telling people about products they didn't know they wanted is
	very difficult in a strict pull media model.

	These emergent forms of push media are generally variations on
	targeted advertising mixed in with bits of useful content.
	"At home on your computer, the same system will run soothing
	{screensavers} underneath regular news flashes, all while
	keeping track, in one corner, of press releases from companies
	whose stocks you own.  With frequent commercial messages, of
	course."  (Wired, March 1997, page 12).

	{Pointcast (http://pointcast.com)} is probably the best
	known push system on the Internet at the time of writing.

	As part of the eternal desire to apply a fun new words to
	boring old things, "push" is occasionally used to mean nothing
	more than email {spam}.

	(1997-04-10)

PVC

	1. <networking> {Permanent Virtual Circuit}.

	2. <hardware> {polyvinyl chloride}.

	(2001-03-26)

PVM

	{Parallel Virtual Machine}

PV-WAVE

	<graphics, tool> (Precision Visuals' Workstation Analysis and
	Visualization Environment) Interactive scientific
	{visualisation} software originally from Precision Visuals,
	Inc., but now owned by Visual Numerics, Inc. (VNI).

	(1999-07-18)

pw

	<networking> The {country code} for Palau.

	(1999-01-27)

PWM

	{pulse width modulation}

py

	<networking> The {country code} for Paraguay.

	(1999-01-27)

Pythagoras

	<person> (Pythagoras of Samos, Ionia; about 569-475 BC) The
	Greek mathematician who founded a philosophical and religious
	school in Croton (now Crotone) in southern Italy.

	Pythagoras is most famous for {Pythagoras's Theorem} but other
	important postulates are attributed to him, e.g. the sum of
	the angles of a triangle is equal to two right angles.

	(2004-02-12)

Pythagoras's Theorem

	<mathematics> The theorem of geometry, named after
	{Pythagoras}, of Samos, Ionia, stating that, for a
	right-angled triangle, the square of the length of the
	{hypotenuse} is equal to the sum of the squares of the lengths
	of the other two sides.  I.e. if the longest side has
	length A and the other sides have lengths B and C (in any
	units),

		A^2 = B^2 + C^2

	(2004-02-12)

Pythagoras' Theorem

	<spelling> It's {Pythagoras's Theorem}.

	(2007-06-07)

Pythagorean Theorem

	{Pythagoras's Theorem}

Python

	1. <language> A simple, high-level interpreted language
	invented by Guido van Rossum <guido@cwi.nl> in 1991.  Python
	combines ideas from {ABC}, {C}, {Modula-3} and {Icon}.  It
	bridges the gap between {C} and {shell} programming, making it
	suitable for {rapid prototyping} or as an extension language
	for C applications.  It is {object-oriented} and supports
	packages, {modules}, {classes}, user-defined exceptions, a
	good C interface, dynamic loading of C modules and has no
	arbitrary restrictions.

	Python is available for many {platforms}, including {Unix},
	{Windows}, {DOS}, {OS/2}, {Macintosh} and {Amoeba}.

	Latest version: 2.5, as of 2007-02-21.

	{(http://python.org/)}.

	{Usenet} newsgroup: {news:comp.lang.python}.

	(2007-02-21)

	2. <compiler> A {compiler} for {CMU Common LISP}.  Python is
	more sophisticated than other {Common Lisp} compilers.  It
	produces better code and is easier to use.  The programming
	environment based on the {Hemlock} editor is better integrated
	than {GNU} {Emacs} based environments.

	(1997-02-27)

Q

	<language> A very {high level language} by Per Bothner based
	on {lazy} generalised sequences.  Q has {lexical scope}, and
	some support for {logic programming}[?] and {constraint}
	programming.  The language includes small subsets of {Common
	Lisp} and {Scheme}.

	Q was a test-bed for programming language ideas.  Where {APL}
	uses {arrays} for looping, Q uses generalised sequences which
	may be infinite and may be stored or calculated on demand.  It
	has {macros}, {primitives} to run programs, and an
	{interactive} command language.

	Q is implemented in {C++}, and comes with an {interpreter},
	{compiler} framework, libraries, and documentation.  It runs
	on {Linux} and {SUN-4} and should work on any 32-bit {Unix}.

	Latest version: 1, as of 1993-06-07.  Development stopped in
	1994.

	{(http://kelso.bothner.com/~per/software/#Q )}.

	E-mail: Per Bothner <per@bothner.com>.

	(2000-05-22)

QA

	{Quality Assurance}

qa

	<networking> The {country code} for Qatar.

	(1999-01-27)

QA4

	Question-answering language.  A procedural calculus for
	intuitive reasoning.  A LISP-based pattern-matching language
	for theorem proving.  "QA4, A Language for Writing
	Problem-Solving Programs", J.F. Rulifson et al, Proc IFIP
	Congress 1968.

QAM

	1. {Quadrature Amplitude Modulation}.

	2. {Quality Assurance Management}.

Qbasic

	<language> Quick basic.

	A version of {BASIC} from {Microsoft}, later known as
	{MS-BASIC}.

	(1995-03-16)

QBE

	{Query By Example}

QCA

	{Quantum-dot Cellular Automata}

QCIF

	{Quarter CIF}

qdjanus

	A {Janus}-to-{Prolog} compiler by Saumya Debray
	<debray@cs.arizona.edu>.  It is meant to be used with {Sicstus
	Prolog} and is mostly compliant with "Programming in Janus" by
	Saraswat, Kahn, and Levy.

	Latest version: 1.3.

	{(ftp://cs.arizona.edu/janus/qdjanus/)}.

	(1992-05-18)

QDOS

	<operating system> The Sinclair {QL}'s proprietary {operating
	system}.  The origin of the name is uncertain (a weak pun on
	kudos, perhaps, as {Unix} was on {Multics}).  There was
	another OS around from the birth of personal computers called
	Q.D.O.S. - Quick And Dirty Operating System.  QDOS might also
	stand for QL Data/Disk/Drive/Device Operating System.

	QDOS did the usual OS sorts of things, as well as
	multitasking.  It was unusual in several ways.  It treated all
	devices (serial ports, mouse ports, screen, {microdrive},
	{disk drive}, keyboard, etc.) uniformly, so you could print a
	text file direct to disk or save a binary to the screen for
	example.

	Also logical channels could be assigned to particular physical
	devices.  Output directed to a channel would go to the
	appropriate in/output.  This also meant you could have many
	windows on screen (the QL booted up from internal ROMs with 3
	windows - command line, output and program listing) all
	independent to some extent.  Channels could be redirected
	without affecting the way the process sent or received the
	data.

	(1996-07-22)

QEMM386

	<software, storage> A combined {expanded memory manager} and
	{extended memory manager} for {IBM PCs} with an {Intel 80386}
	or higher processor from {Quarterdeck Office Systems}.
	QEMM386 can also act as an {UMB} provider and an {A20
	handler}.

	(1996-01-10)

QIC

	{Quarter-Inch Cartridge}

QL

	<computer> (Quantum Leap) Sir {Clive Sinclair}'s first
	{Motorola 68008}-based {personal computer}, developed from
	around 1981 and released about 1983.  The QL ran Sinclair's
	{QDOS} {operating system} which was the first {multitasking}
	OS on a home computer, though few programmers used this
	feature.  It had a structured, extended {BASIC} and a suite of
	integrated {application programs} written by {Psion}.  It
	featured innovative "{microdrives}" which were random-access
	tape drives.  It was not a success.

	The microdrives were innovative but probably a mistake.
	Though reliable and quite quick, they sounded like they were
	going to jam and explode, releasing a shower of plastic
	shavings and tape into your face.

	The QL and QDOS only supported two graphics modes - ominously
	named high res and low res.  High res had four (fixed) colours
	at a resolution of 512 by 256 {pixels}.  Low res had 8 colours
	(black, blue, red, magenta, green, cyan, yellow, white) plus a
	flash mode with 256 by 256 pixels.  The sound was next to
	useless - single channel single oscillator with various
	parameters for fuzz, pitch change.  There was one internal
	{font}, scalable to 2 heights and 3 widths.

	Peripherals and enhancements included a {GUI} on a plug-in
	{ROM}, accelerator cards ({Motorola 68020}, 4 MB RAM), {floppy
	disks} and {hard disks}.

	In 1996 there is still some interest in the QL, spread by the
	Internet of course.  {Emulation} software, {source code}, "The
	QL Hackers Journal" and similar are still available, and many
	QLs are on the net.

	{(http://imaginet.fr/~godefroy/english)}.

	(1996-08-01)

Qlambda

	<language> A {LISP} by {Richard Gabriel} and {John McCarthy}.

	["Queue-based Multi-processing Lisp", R. Gabriel &
	J. McCarthy, Proc 1984 Symp Lisp and Functional Prog,
	pp. 25-44].

	(1999-10-12)

QLISP

	1. SRI 1973.  General problem solving, influenced by PLANNER.
	QA4 features merged with INTERLISP.

	["QLISP - A Language for the Interactive Development of
	Complex Systems", E. Sacerdoti et al, NCC 45:349-356, AFIPS,
	1976].

	2. A parallel LISP.

	["Qlisp", R. Gabriel et al in Parallel Computation and
	Computers for AI, J. Kowalik ed, 1988, pp.63-89].

	(1999-10-12)

QLOG

	A version of {Prolog} implemented in {Lisp} which allows
	Prolog programs to call Lisp and vice versa.

	["QLOG - The Programming Environment for Prolog in LISP",
	H.J. Komorowski in Logic Prgramming, K.L. Clark et al eds,
	Academic Press 1982].

	(1995-01-25)

QMQP

	{Quick Mail Queueing Protocol}

QMTP

	{Quick Mail Transfer Protocol}

QMW

	{Queen Mary and Westfield College}

Q'NIAL

	A portable {incremental compiler} for {NIAL}, written in {C}
	at {Queen's University}, Canada.

	There aree versions for {Unix} and {MS-DOS}, from {NIAL
	Systems} Ltd.

	["The Q'NIAL Reference Manual", M.A. Jenkins, Queen's U
	Report, Dec 1983].

	(1995-01-25)

QNX

	<operating system> A {realtime}, network distributed,
	{POSIX}-certified, {microkernel}, multi-user, {multitasking},
	{ROMable}, {fault-tolerant}, embeddable {operating system}
	that supports {TCP/IP}, {NFS}, {FTP}, the {X Window System},
	{Microsoft Windows} as a guest process, {Ethernet}, {Token
	Ring}, {Arcnet} and {Watcom} {ANSI C}/{C++}.  Support for
	{Pentium}, {486}, {386}, {286}, {80x87}.  Developed and
	distributed by QNX Software Systems, Ltd.

	Latest version: 6.1, as of 2001-09-02.

	{QNX Home (http://qnx.com/)}.

	{OpenQNX: The QNX community portal (http://openqnx.com)}.

	{Papers (ftp://ftp.cse.ucsc.edu/pub/qnx/qnx-paper.ps.Z)}.
	(128.114.134.19).

	{Usenet} newsgroup: {news:comp.os.qnx}.

	E-mail: <info@qnx.com>.

	(2003-07-27)

QoS

	{Quality of service}

QPE

	<language> 1. A two-dimensional pictorial {query language}.

	["Pictorial Information Systems", S.K. Chang et al eds,
	Springer 1980].

	[Q-systems.  A. Colmerauer, 1969].

	2. A {rewrite system} with {one-way unification}, used for
	English-French translation.  It led to {Prolog}.

	["The Birth of Prolog" A. Colmerauer et al, SIGPLAN Notices
	28(3):37-52 March 1993].

	(2003-12-25)

QSAM

	{Physical Sequential}

QT-OBJECTS

	A library by Michael Travers <mt@media.mit.edu> and others
	providing an interface between {MCL} and {QuickTime}.

	(1992-12-20)

QTRADER

	<application> Analytical software for stock and commodity
	trading, released in July 1995 by {Caribou CodeWorks}.

	QTRADER allows dynamic automated analysis of current trends
	and features "Paper Trade" plotting, as well as "TradeSignal
	Bands" and "StudyMatrix" filter to screen potential trades.
	Projected ranges are handled with a "Tomorrow's Bar".

	QTRADER version 3.0 runs on {IBM PC}-compatibles, a
	{Macintosh} version is not available until late 1996.

	{Demo copy (http://winternet.com/~jottis)}.
	{(ftp://ftp.winternet.com/users/jottis)}.

	(1995-11-05)

quad

	<character> The rectangle or box {glyph} used in the {APL}
	language for various arcane purposes mostly related to {I/O}.

	[{Jargon File}]

	(2007-05-31)

Quadralay Corporation

	<company> The developers of {GWHIS}.

	{(http://quadralay.com/)}.

	Telephone: +1 512-346-9199.
	Fax: +1 512-346-8990.

	(2000-08-12)

Quadrature Amplitude Modulation

	(QAM) A method for encoding digital data in an analog signal
	in which each combination of phase and amplitude represents
	one of sixteen four bit patterns.  This is required for fax
	transmission at 9600 bits per second.

	(1995-02-02)

quadruple bucky

	Obsolete. 1. On an MIT {space-cadet keyboard}, use of all four
	of the shifting keys (control, meta, hyper, and super) while
	typing a character key.

	2. On a Stanford or MIT keyboard in {raw mode}, use of four
	shift keys while typing a fifth character, where the four
	shift keys are the control and meta keys on *both* sides of
	the keyboard.  This was very difficult to do!  One accepted
	technique was to press the left-control and left-meta keys
	with your left hand, the right-control and right-meta keys
	with your right hand, and the fifth key with your nose.

	Quadruple-bucky combinations were very seldom used in
	practice, because when one invented a new command one usually
	assigned it to some character that was easier to type.  If you
	want to imply that a program has ridiculously many commands or
	features, you can say something like: "Oh, the command that
	makes it spin the tapes while whistling Beethoven's Fifth
	Symphony is quadruple-bucky-cokebottle."  See {double bucky},
	{bucky bits}, {cokebottle}.

	[{Jargon File}]

quadruplex

	<communications> A kind of telegraphy system developed by
	Thomas A. Edison in the 1870s combining {diplex} and {duplex}
	communications to support simultaneous transmission of two
	messages in each direction.

	(2000-04-02)

Quake

	A string-oriented language designed to support the
	construction of {Modula-3} programs from {modules}, interfaces
	and libraries.  Written by Stephen Harrison of DEC SRC, 1993.

Qualcomm

	<company> A California-based technology company; their primary
	product is the {OMNITRACS} tractor-trailer-tracking system.
	They also develop the free and commercial versions of
	{Eudora} for {Macintosh} and {IBM PC}.

	(1995-10-05)

quality

	The totality of features and characteristics of a product or
	service that bear on its ability to satisfy stated or implied
	needs.  Not to be mistaken for "degree of excellence" or
	"fitness for use" which meet only part of the definition.

	[{ISO8402}].

	(1995-11-10)

quality assurance

	<testing> (QA) A planned and systematic pattern of all actions
	necessary to provide adequate confidence that the product
	optimally fulfils customers' expectations, i.e. that it is
	problem-free and well able to perform the task it was designed
	for.

	The QA of a commercial product usually involves {alpha
	testing}, where an early version of the product is tested at
	the developer's site, and is then improved accordingly.  Then,
	an almost complete version of the product is made available
	for {beta testing} by (selected) real users.  Faults
	identified during beta testing should be fixed before the
	product is released for full scale manufacturing and
	distribution.

	(2001-04-21)

quality control

	<testing> The assessment of product compliance with stated
	requirements.  Quality control should be independent from
	production.

	(2001-05-20)

quality of service

	<communications, networking> (QoS) The performance properties
	of a network service, possibly including {throughput},
	{transit delay}, {priority}.  Some {protocols} allow {packets}
	or {streams} to include QoS requirements.

	(1998-07-30)

Quality Systems & Software Ltd.

	<company> The company which produced the {DOORS} requirements
	engineering tool.  They also provide consultancy as
	Requirements Engineering Ltd.

	{(http://qss.co.uk/)}.

	E-mail: Ian Alexander <iany@easynet.co.uk>, Amanda
	Haisman-Baker <100023.44@compuserve.com>.

	(1995-11-11)

quantifier

	<logic> An operator in {predicate logic} specifying for which
	values of a variable a formula is true.  Universally
	quantified means "for all values" (written with an inverted A,
	{LaTeX} \forall) and existentially quantified means "there
	exists some value" (written with a reversed E, {LaTeX}
	\exists).  To be unambiguous, the set to which the values of
	the variable belong should be specified, though this is often
	omitted when it is clear from the context (the "universe of
	discourse").  E.g.

		Forall x . P(x)  <=>  not (Exists x . not P(x))

	meaning that any x (in some unspecified set) has property P
	which is equivalent to saying that there does not exist any x
	which does not have the property.

	If a variable is not quantified then it is a {free variable}.
	In {logic programming} this usually means that it is actually
	universally quantified.

	See also {first order logic}.

	(2002-05-21)

Quantify

	A performance analysis tool from {Pure Software}.

quantum

	{time slice}

quantum bogodynamics

	/kwon'tm boh"goh-di:-nam"iks/ A theory that characterises the
	universe in terms of {bogon} sources (such as politicians,
	used-car salesmen, TV evangelists, and {suits} in general),
	bogon sinks (such as taxpayers and computers), and bogosity
	potential fields.  Bogon absorption causes human beings to
	behave mindlessly and machines to fail (and may also cause
	both to emit secondary bogons); however, the precise mechanics
	of bogon-{computron} interaction are not yet understood.

	Quantum bogodynamics is most often invoked to explain the
	sharp increase in hardware and software failures in the
	presence of suits; the latter emit bogons, which the former
	absorb.

	[{Jargon File}]

	(1994-11-02)

quantum cell

	<electronics, computing> (Or "quantum dot cell") A structure
	comprising four {quantum dots} arranged in a square, with two
	diagonally opposed dots containing electron charges.  One
	diagonal containing charges is arbitrarily defined as
	representing a value of '1', the other as '0'.  In a five-dot
	cell, the fifth, central dot contains no charge.

	See also: {quantum cell wire}, {quantum-dot cellular}
	automata.

	{(http://mitre.org/research/nanotech/quantum_dot_cell.html)}.

	["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley
	& Sons Ltd., Dec 1998].

	[Implementations?]

	(2001-07-17)

quantum cell wire

	<electronics, computing> (Or "quantum wire", "binary wire")
	{Quantum cells} arranged in a line to carry signals.  Adjacent
	cells with the same orientation are at a low energy state and
	a change of orientation at one end of a quantum wire
	propagates along the wire, transmitting a signal.  However,
	unlike conventional wire, since only the orientation of charge
	pairs changes, no current flows.

	Circuits created using quantum cell wires are referred to as
	Quantum-dot Wireless Digital Circuits, see {quantum dot},
	{Quantum-dot Cellular Automata}.

	{(http://mitre.org/research/nanotech/quantum_dot_cell.html)}.

	["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley
	& Sons Ltd., Dec 1998]

	(2001-07-17)

quantum computer

	<computer> A type of computer which uses the ability of
	quantum systems, such as a collection of atoms, to be in many
	different states at once.  In theory, such superpositions
	allow the computer to perform many different computations
	simultaneously.  This capability is combined with interference
	among the states to produce answers to some problems, such as
	factoring integers, much more rapidly than is possible with
	conventional computers.  In practice, such machines have not
	yet been built due to their extreme sensitivity to noise.

	{Oxford University (http://eve.physics.ox.ac.uk/QChome.html)},
	{Stanford University (http://feynman.stanford.edu/qcomp/)}.

	A {quantum search algorithm
	(ftp://parcftp.xerox.com/pub/dynamics/quantum.html)} for
	{constraint satisfaction} problems exhibits the phase
	transition for {NP-complete} problems.

	(1997-02-11)

quantum computing

	{quantum computer}

quantum dot

	<physics> (Or "single-electron transistor") A location capable
	of containing a single electrical charge; i.e., a single
	electron of {Coulomb} charge.  Physically, quantum dots are
	nanometer-size {semiconductor} structures in which the
	presence or absence of a quantum electron can be used to store
	information.

	See also: {quantum cell}, {quantum cell wire}, {quantum-dot
	cellular automata}.

	{(http://www-mtl.mit.edu/MTL/bulletin/v6n2/Kumar.html)}.

	["Quantum Dot Heterostructures", D. Bimberg, et al, John
	Wiley & Sons Ltd., Dec 1998].

	(2001-07-17)

Quantum-dot Cellular Automata

	<electronics, computing> (QCA) Quantum logic circuits created
	by orientating pairs of {quantum cells} so that their relative
	positions determine their affect on each other.  This is
	functionally analogous but structurally different from how
	individual {gates} in {integrated circuits} are combined to
	create logical and memory circuitry.

	The advantages of quantum-dot cellular automata over
	conventional circuitry are extremely small size/high density,
	low power requirements, and potentially high processing
	speeds.  Disadvantages (in 2000) are difficulty of fabrication
	and low yield.

	See also: {quantum cell wire}.

	{(http://nd.edu/~qcahome/)}.

	{(http://mitre.org/research/nanotech/quantum_dot_cell.html)}.

	["Quantum Dot Heterostructures", D. Bimberg, et al, John Wiley
	& Sons Ltd., Dec 1998].

	(2001-07-17)

quarter

	{crumb}

Quarter CIF

	<communications, standard> (QCIF), a {video} format standard
	used in videoconferencing, that transfers one fourth as much
	data as {Common Intermediate Format} (CIF).

	QCIF is defined in ITU H.261 as having 144 lines and 176
	pixels per line, with half as many {chrominance} pixels in
	each direction.  QCIF is suitable for {videoconferencing}
	systems that use telephone lines.  The {codec} standard
	specifies that QCIF compatibility is mandatory, and CIF
	compatibility is optional.

	(1999-04-22)

Quarter Inch Cartridge

	<storage> /kwik/ (QIC) a type of {magnetic tape} and {tape
	drive}.  Development standards for QIC make it possible for
	tapes written on one QIC drive to be read on another.  QIC
	drives are made to work with different lengths of tape.  The
	model number of the drive consists of QIC followed by a number
	which indicates the drives tape capacity in {megabytes} (MB).

	(1996-12-09)

Quay Financial Software

	{CSK Software}

QUEASY

	An early system on the {IBM 701}.

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

	(1995-01-25)

Queen Mary and Westfield College

	(QMW) One of the largest of the multi-faculty schools of the
	{University of London}.  QMW has some 6000 students and over
	600 teaching and research staff organised into seven
	faculties.

	QMW was one of the first colleges in the University of London
	to develop fully the course-unit, or modular, approach to
	degree programmes.  Cross faculty courses are encouraged and
	the physical proximity of all the College buildings is a major
	factor in enabling students to adopt an interdisciplinary
	approach to their studies.

	{(http://qmw.ac.uk/)}.

	(1995-01-25)

Queens Problem

	{Eight Queens Puzzle}

Queens Puzzle

	{Eight Queens Puzzle}

Queen's University

	A Canadian University.  Source of {GVL}, {NIAL}, {Pasqual},
	{Q'NIAL} and {TXL}.

	{(ftp://ftp.qucis.queensu.ca/pub/)}.

	(1994-10-20)

QUEL

	The {query language} used by the {database management system}
	{INGRES}.

	(1995-01-31)

query

	1. <database, information science> A user's (or {agent}'s)
	request for information, generally as a formal request to a
	{database} or {search engine}.

	{SQL} is the most common {database query language}.

	2. <character> {question mark}.

	(1997-04-09)

Query By Example

	<database, language> (QBE) A {user-friendly} {query language}
	developed by Moshé Zloof of {IBM} in 1975.

	{(http://informatik.uni-trier.de/~ley/db/indices/a-tree/z/Zloof:Mosh=eacute=_M=.html)}.

	[Moshé M. Zloof, "Query By Example", AFIPS NCC 1975: 431-438].

	[Moshé M. Zloof, "Query-by-Example: A Data Base Language", IBM
	Systems Journal 16(4): 324-343, 1977].

	["QBE/OBE: A Language for Office and Business Automation",
	M.M. Zloof, Computer pp.13-22, May 1981].

	(2001-03-25)

query expansion

	<information science> Adding {search terms} to a user's
	search.  Query expansion is the process of a {search engine}
	adding {search terms} to a user's {weighted search}.  The
	intent is to improve {precision} and/or {recall}.  The
	additional terms may be taken from a {thesaurus}.  For example
	a search for "car" may be expanded to: car cars auto autos
	automobile automobiles.

	The additional terms may also be taken from documents
	that the user has specified as being relevant; this is the
	basis for the "more like this" feature of some search engines.

	The extra terms can have positive or negative weights.

	(1999-08-27)

ques

	{question mark}

Quest

	1. A language designed for its simple denotational semantics.
	"The Denotational Semantics of Programming Languages",
	R. Tennent, CACM 19(8):437-453 (Aug 1976).

	2. QUantifiers and SubTypes.  Language with a sophisticated
	type system.  Just as types classify values, "kinds" classify
	types and type operators.  Explicit universal and existential
	quantification over types, type operators, and subtypes.
	Subtyping is defined inductively on all type constructions,
	including higher-order functions and abstract types.
	User-definable higher-order type operators.

	"Typeful Programming", Luca Cardelli <luca@src.dec.com>, RR
	45, DEC SRC 1989.

	Implemented in Modula-3.

	{(ftp://gatekeeper.dec.com/pub/DEC/Quest/quest12A.tar.Z)}.

	3. <tool, text> A {multimedia} {authoring} system.  Quest has
	been available for {MS-DOS} for some time.  Version 3.5 for
	{Microsoft Windows} was released around March 1995.  It
	features an {Authorware}-style {flowchart} system with an
	{ANSI-C} {script language}.

	(1995-04-02)

question mark

	<character> "?", {ASCII} character 63.

	Common names: query; {ITU-T}: question mark; {ques}.  Rare:
	whatmark; {INTERCAL}: what; wildchar; huh; hook; buttonhook;
	hunchback.

	Question mark is used, along with {colon} for {C}'s {lazy}
	triadic "if" {operator} (similar to the {IIF} function in
	{Visual Basic}).  The expression x?y:z evaluates x, then if x
	is true it returns y else it returns z.

	In {Unix} {shell} file name patterns, question mark matches
	any single character.

	(2003-06-17)

queue

	<programming> A {first-in first-out} data structure used to
	sequence objects.  Objects are added to the tail of the queue
	("enqueued") and taken off the head ("dequeued").

	For example, an {operating system} might use a queue to
	serialise {concurrent} demands for a resource such as a
	{printer}, {processor} or communications channel.  Users might
	place files on a print queue and a {background} process or
	"{demon}" would take them off and print them.  Another common
	use is to pass data between an {interrupt handler} and a user
	process.

	(2007-05-18)

Queued Sequential Access Method

	{Physical Sequential}

QUICK

	<language> An early system on the {IBM 701}.

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

	(1995-05-11)

quick-and-dirty

	<jargon, programming> Describes a {crock} put together under
	time or user pressure.  Used especially when you want to
	convey that you think the fast way might lead to trouble
	further down the road.  "I can have a quick-and-dirty fix in
	place tonight, but I'll have to rewrite the whole module to
	solve the underlying design problem."

	See also {kluge}.

	[{Jargon File}]

	(1995-05-11)

QuickDraw

	<library, graphics> Part of the software in the {Apple
	Macintosh}'s {ROM} that performs graphics operations.

	(1995-05-11)

Quick Mail Queueing Protocol

	<communications> (QMQP) A {protocol} that provides a central
	{e-mail} queue for a {cluster} of {hosts}.  QMOP is supposed
	to provide fast transfers of messages with many recipients as
	it can batch them up as a single transaction.  It listens on
	port 628.

	{(http://cr.yp.to/mail.html)}

	(2007-05-25)

Quick Mail Transfer Protocol

	<communications> (QMTP) An {SMTP} replacement that works
	better over high {latency} links as it doesn't require as much
	interaction as SMTP.  QMTP listens on port 209 and is used by
	{qmail}.

	{(http://cr.yp.to/mail.html)}

	(2007-05-25)

Quicksilver

	<database> A {dBASE}-like compiler for {MS-DOS} from
	{WordTech}.

	(1995-05-11)

Quicksort

	A sorting {algorithm} with O(n log n) average time
	{complexity}.

	One element, x of the list to be sorted is chosen and the
	other elements are split into those elements less than x and
	those greater than or equal to x.  These two lists are then
	sorted {recursive}ly using the same algorithm until there is
	only one element in each list, at which point the sublists are
	recursively recombined in order yielding the sorted list.

	This can be written in {Haskell}:

		qsort               :: Ord a => [a] -> [a]
		qsort []             = []
		qsort (x:xs)         = qsort [ u | u<-xs, u<x ] ++
				       [ x ] ++
				       qsort [ u | u<-xs, u>=x ]

	[Mark Jones, Gofer prelude.]

QuickTime

	<graphics, standard, file format, product> {Apple Computer}'s
	software for playing {audio} and {video}.  The QuickTime
	{application} is a free {media player}.  QuickTime Pro is a
	paid-for version with editing ability.  QuickTime's native
	format for audio and video is .mov but it can handle many
	others.

	{(http://apple.com/quicktime/what-is)}

	(2011-01-04)

quiesce

	<networking> To render quiescent, i.e. temporarily inactive or
	disabled.  For example to quiesce a device (such as a digital
	modem).  It is also a system command in MAX TNT software which
	is used to "Temporarily disable a modem or DS0 channel".

	Also used as an adjective, in the expression "{quiesce time}".

	(2000-03-05)

quiesce time

	<jargon> The length of time taken to {quiesce} a system (to
	render it inactive), or the length of time between periods of
	inactivity.

	(2000-03-05)

QUIKSCRIPT

	Simulation language derived from {SIMSCRIPT}, based on
	{20-GATE}.

	["Quikscript - A Simpscript-like Language for the G-20",
	F.M. Tonge et al, CACM 8(6):350-354 (June 1965)].

QUIKTRAN

	Fortran-like, interactive with debugging facilities.  Sammet
	1969, p.226.

QUIN

	Pyle 1965.  Interactive language.  Sammet 1969, p.691.

quine

	<programming> /kwi:n/ (After the logician Willard V. Quine,
	via Douglas Hofstadter) A program that generates a copy of its
	own source text as its complete output.  Devising the shortest
	possible quine in some given programming language is a common
	hackish amusement.

	In most interpreted languages, any constant, e.g. 42, is a
	quine because it "evaluates to itself".  In certain {Lisp}
	dialects (e.g. {Emacs Lisp}), the symbols "nil" and "t" are
	"self-quoting", i.e. they are both a symbol and also the value
	of that symbol.  In some dialects, the function-forming
	function symbol, "lambda" is self-quoting so that, when
	applied to some arguments, it returns itself applied to those
	arguments.  Here is a quine in {Lisp} using this idea:

	 ((lambda (x) (list x x)) (lambda (x) (list x x)))

	Compare this to the {lambda expression}:

		(\ x . x x) (\ x . x x)

	which reproduces itself after one step of {beta reduction}.
	This is simply the result of applying the {combinator} {fix}
	to the {identity function}.  In fact any quine can be
	considered as a {fixed point} of the language's evaluation
	mechanism.

	We can write this in {Lisp}:

	 ((lambda (x) (funcall x x)) (lambda (x) (funcall x x)))

	where "funcall" applies its first argument to the rest of its
	arguments, but evaluation of this expression will never
	terminate so it cannot be called a quine.

	Here is a more complex version of the above Lisp quine, which
	will work in Scheme and other Lisps where "lambda" is not
	self-quoting:

	 ((lambda (x)
	   (list x (list (quote quote) x)))
	  (quote
	     (lambda (x)
	       (list x (list (quote quote) x)))))

	It's relatively easy to write quines in other languages such
	as {PostScript} which readily handle programs as data; much
	harder (and thus more challenging!) in languages like {C}
	which do not.  Here is a classic {C} quine for {ASCII}
	machines:

	 char*f="char*f=%c%s%c;main() {printf(f,34,f,34,10);}%c";
	 main(){printf(f,34,f,34,10);}

	For excruciatingly exact quinishness, remove the interior line
	break.  Some infamous {Obfuscated C Contest} entries have been
	quines that reproduced in exotic ways.

	{Ken Thompson}'s {back door} involved an interesting variant
	of a quine - a compiler which reproduced part of itself when
	compiling (a version of) itself.

	[{Jargon File}]

	(1995-04-25)

Quintec-Objects

	Based on {Quintec Prolog} (not {Quintus}).  British.

quintillion

	10^30 in Europe (this is called a {nonillion} in the United
	States and Canada).

	10^18 in the United States and Canada (this is called a
	trillion in Europe).

	[Collins dictionary].

Quintus Prolog

	<language, product> A version of {Prolog} developed by
	{Quintus}.  Development of Quintus Prolog had transferred to
	the {Swedish Institute of Computer Science} by December 1998.

	{(ftp://ftp.quintus.com/)}.

	Telephone: +1 (800) 542 1283.

	[More details?  Features?]

	(1998-12-12)

quote chapter and verse

	[by analogy with the mainstream phrase] To cite a relevant
	excerpt from an appropriate {bible}.  "I don't care if "rn"
	gets it wrong; "Followup-To: poster" is explicitly permitted
	by {RFC} 1036.  I'll quote chapter and verse if you don't
	believe me."  See also {legalese}, {language lawyer}, {RTFS}
	(sense 2).

	[{Jargon File}]

quotient

	The number obtained by dividing one number (the "numerator")
	by another (the "denominator").  If both numbers are
	{rational} then the result will also be rational.

Qu-Prolog

	An extension of {Prolog} which performs {meta-level
	computations} over {object languages}, such as {predicate
	calculi} and {lambda-calculi}, which have object-level
	variables, and {quantifiers} that create local {scopes} for
	those variables. Qu-Prolog is well suited as an implementation
	language for {theorem provers} and support notations typically
	found in texts on mathematics and logic.

Quty

	A functional plus logic language.  "Quty: A Functional
	Language Based on Unification", M. Sato et al, in Conf. Fifth
	Gen. Computer Systems, ICOT 1984, pp.157-165.

quux

	/kwuhks/ [Mythically, from the Latin semi-deponent verb quuxo,
	quuxare, quuxandum iri; noun form variously "quux" (plural
	"quuces", anglicised to "quuxes") and "quuxu" (genitive plural
	is "quuxuum", for four u-letters out of seven in all, using up
	all the "u" letters in Scrabble).]  1. Originally, a
	{metasyntactic variable} like {foo} and {foobar}.  Invented by
	{Guy Steele} for precisely this purpose when he was young and
	naive and not yet interacting with the real computing
	community.  Many people invent such words; this one seems
	simply to have been lucky enough to have spread a little.  In
	an eloquent display of poetic justice, it has returned to the
	originator in the form of a nickname.

	2. See {foo}; however, denotes very little disgust, and is
	uttered mostly for the sake of the sound of it.

	3. {Guy Steele} in his persona as "The Great Quux", which is
	somewhat infamous for light verse and for the "Crunchly"
	cartoons.

	4. In some circles, used as a punning opposite of "crux".
	"Ah, that's the quux of the matter!" implies that the point is
	*not* crucial (compare {tip of the ice-cube}).

	[{Jargon File}]

qux

	/kwuhks/ The fourth of the standard {metasyntactic variable},
	after {baz} and before the quu(u...)x series.  See {foo},
	{bar}, {baz}, {quux}.  This appears to be a recent mutation
	from {quux}, and many versions (especially older versions) of
	the standard series just run {foo}, {bar}, {baz}, {quux}, ...

QWERTY

	<hardware> /kwer'tee/ (From the top left row of letter keys of
	most keyboards) Pertaining to a standard English-language
	typewriter keyboard (sometimes called the Sholes keyboard
	after its inventor), as opposed to {Dvorak} or
	foreign-language layouts (e.g. "keyboard AZERTY" in
	french-speaking countries) or a {space-cadet keyboard} or {APL
	keyboard}.

	The QWERTY layout is a fine example of a {fossil}.  It is
	sometimes said that it was designed to slow down the typist,
	but this is wrong; it was designed to allow *faster* typing -
	under a constraint now long obsolete.  In early typewriters,
	fast typing using nearby type-bars jammed the mechanism.  So
	Sholes fiddled the layout to separate the letters of many
	common digraphs (he did a far from perfect job, though; "th",
	"tr", "ed", and "er", for example, each use two nearby keys).
	Also, putting the letters of "typewriter" on one line allowed
	it to be typed with particular speed and accuracy for {demos}.
	The jamming problem was essentially solved soon afterward by a
	suitable use of springs, but the keyboard layout lives on.

	[{Jargon File}]

	(1998-01-15)

QX

	(Meaning "OK", from E.E. Smith SF books) A language for
	{digital signal processing} of digitised speech, by Richard
	Gillmann of {SDC}, Santa Monica.  QX was part of SDC's {speech
	recognition} project.

	(1995-02-09)

R2000

	{MIPS R2000}

R2RS

	A revision of {RRS}, itself revised in {R3RS}.

	["The Revised Revised Report on the Algorithmic Language
	Scheme", Clinger, AI Memo 848, MIT Aug 1985].

	(1995-02-09)

R3.99RS

	{R4RS} without the {macros}.

R3RS

	A revision of {R2RS}, revised in {R4RS}.

	["The Revised^3 Report on the Algorithmic Language Scheme",
	J. Rees et al, SIGPLAN Notices 21(12):37-79 (Dec 1986)].

R4RS

	A revision of {R3RS}, revised in {R3.99RS}.

	{(ftp://altdorf.ai.mit.edu/)}.

	["The Revised^4 Report on the Algorithmic Language Scheme", W.
	Clinger et al, MIT (Nov 1991)].

	(1994-10-28)

	[Later revisions?]

rabbit job

	(Cambridge) A batch job that does little, if any, real work,
	but creates one or more copies of itself, breeding like
	rabbits.

	Compare {wabbit}, {fork bomb}.

	[{Jargon File}]

	(1994-11-09)

RACE

	<programming> {Requirements Acquisition and
	Controlled Evolution}.

	(1995-11-21)

race condition

	Anomalous behavior due to unexpected critical dependence on
	the relative timing of events.

	For example, if one process writes to a file while another is
	reading from the same location then the data read may be the
	old contents, the new contents or some mixture of the two
	depending on the relative timing of the read and write
	operations.

	A common remedy in this kind of race condition is {file
	locking}; a more cumbersome remedy is to reorganize the system
	such that a certain processes (running a {daemon} or the like)
	is the only process that has access to the file, and all other
	processes that need to access the data in that file do so only
	via interprocess communication with that one process.

	As an example of a more subtle kind of race condition,
	consider a {distributed} {chat} {network} like {IRC}, where a
	{user} is granted channel-operator {privileges} in any channel
	he starts.  If two users on different {servers}, on different
	ends of the same network, try to start the same-named channel
	at the same time, each user's respective server will grant
	channel-operator privileges to each user, since neither will
	yet have received the other's signal that that channel has
	been started.

	In this case of a race condition, the "shared resource" is the
	conception of the {state} of the network (what channels exist,
	as well as what users started them and therefore have what
	privileges), which each server is free to change as long as it
	signals the other servers on the network about the changes so
	that they can update their conception of the state of the
	network.  However, the {latency} across the network makes
	possible the kind of race condition described.  In this case,
	heading off race conditions by imposing a form of control over
	access to the shared resource -- say, appointing one server to
	be in charge of who holds what privileges -- would mean
	turning the distributed network into a centralized one (at
	least for that one part of the network operation).  Where this
	is not acceptable, the more pragmatic solution is to have the
	system recognize when a race condition has occurred and to
	repair the ill effects.

	Race conditions also affect electronic circuits where the
	value output by a {logic gate} depends on the exact timing of
	two or more input signals.  For example, consider a two input
	AND gate fed with a logic signal X on input A and its
	negation, NOT X, on input B.  In theory, the output (X AND NOT
	X) should never be high.  However, if changes in the value of
	X take longer to propagate to input B than to input A then
	when X changes from false to true, there will be a brief
	period during which both inputs are true, and so the gate's
	output will also be true.  If this output is fed to an
	edge-sensitive component such as a counter or flip-flop then
	the temporary effect ("{glitch}") will become permanent.

	(2002-08-03)

RACF

	{Resource Access Control Facility}

RAD

	<programming> {Rapid Application Development}.

Raddle

	<parallel>

	["On the Design of Large Distributed Systems", I.R. Forman,
	Proc 1st IEEE Intl Conf Comp Langs, pp.25-27 (Oct 1986)].

	(2008-07-30)

Radio-frequency identification

	<hardware> (RFID) Small {radio} {transponders} or "tags"
	designed to be attached to items like products in a
	supermarket to allow the items to be identified and tracked by
	a remote system.  Typically an RFID tag includes an
	{integrated circuit} that stores data and interfaces to the
	antenna, allowing the stored data to be retrieved by the
	remote system.

	(2008-07-30)

Radio Frequency Interference

	<hardware, testing> (RFI) Electromagnetic radiation which is
	emitted by electrical circuits carrying rapidly changing
	signals, as a by-product of their normal operation, and which
	causes unwanted signals (interference or noise) to be induced
	in other circuits.

	The most important means of reducing RFI are: use of bypass or
	"decoupling" {capacitors} on each active device (connected
	across the power supply, as close to the device as possible),
	risetime control of high speed signals using series resistors
	and {VCC filtering}.  Shielding is usually a last resort after
	other techniques have failed because of the added expense of
	RF gaskets and the like.

	The efficiency of the radiation is dependant on the height
	above the ground or power plane (at RF one is as good as the
	other) and the length of the conductor in relationship to the
	wavelength of the signal component (fundamental, harmonic or
	transient (overshoot, undershoot or ringing)).  At lower
	frequencies, such as 133 MHz, radiation is almost exclusively
	via I/O cables; RF noise gets onto the power planes and is
	coupled to the line drivers via the VCC and ground pins.  The
	Rf is then coupled to the cable through the line driver as
	common node noise.  Since the noise is common mode, shielding
	has very little effect, even with differential pairs.  The RF
	energy is capacitively coupled from the signal pair to the
	shield and the shield itself does the radiating.

	At higher frequencies, usually above 500 Mhz, traces get
	electrically longer and higher above the plane.  Two
	techniques are used at these frequencies: wave shaping with
	series resistors and embedding the traces between the two
	planes.  If all these measures still leave too much RFI,
	sheilding such as RF gaskets and copper tape can be used.
	Most digital equipment is designed with metal, or coated
	plastic, cases.

	Switching power supplies can be a source of RFI, but have
	become less of a problem as design techniques have improved.

	Most countries have legal requirements that electronic and
	electrical hardware must still work correctly when subjected
	to certain amounts of RFI, and should not emit RFI which could
	interfere with other equipment (such as radios).

	See also {Electrostatic Discharge}, {Electromagnetic
	Compatibility}.

	(1998-01-26)

radio in the loop

	{Wireless Local Loop}

radiosity

	<graphics> A method for rendering a view of a
	three-dimensional scene that provides realistic lighting
	effects, such as interobject reflections and {color bleeding}.
	Radiosity methods are computationally intense, due to the use
	of linear systems of equations and the spatial complexity of
	large scenes.

	{Usenet} newsgroup: {news:comp.graphics}.

	[Is radiosity more accurate than {ray tracing}?  Does it take
	more computing power?  How does compute time scale with scene
	complexity?]

	(2003-06-01)

RADIUS

	{Remote Authentication Dial-In User Service}

radix

	<mathematics> The ratio, R, between the weights of adjacent
	digits in {positional representation} of numbers.  The
	right-most digit has weight one, the digit to its left has
	weight R, the next R^2, R^3, etc.  The radix also determines
	the set of digits which is zero to R-1.  E.g. decimal (radix
	ten) uses 0-9 and each digit is worth ten times as much as you
	move left along the number.

	(2006-11-10)

RAID

	{Redundant Arrays of Independent Disks}

RAIL

	<robotics> Automatix.  High-level language for industrial
	robots.

	(2006-11-10)

rainbow series

	<publication> Any of several series of technical manuals
	distinguished by cover colour.  The original rainbow series
	was the NCSC security manuals (see {Orange Book}, {crayola
	books}); the term has also been commonly applied to the
	PostScript reference set (see {Red Book}, {Green Book}, {Blue
	Book}, {White Book}).  Which books are meant by ""the" rainbow
	series" unqualified is thus dependent on one's local technical
	culture.

	[{Jargon File}]

	(1996-12-03)

rain dance

	1. Any ceremonial action taken to correct a hardware problem,
	with the expectation that nothing will be accomplished.  This
	especially applies to reseating {printed circuit boards},
	reconnecting cables, etc.  "I can't boot up the machine.
	We'll have to wait for Greg to do his rain dance."

	2. Any arcane sequence of actions performed with computers or
	software in order to achieve some goal; the term is usually
	restricted to rituals that include both an {incantation} or
	two and physical activity or motion.

	Compare {magic}, {voodoo programming}, {black art}, {cargo
	cult programming}, {wave a dead chicken}.

	[{Jargon File}]

	(1995-02-09)

RAIS

	{Redundant Array of Inexpensive Servers}

RAISE

	{Rigorous Approach to Industrial Software Engineering}

RAISE Specification Language

	<language> (RSL) (RAISE = Rigorous Approach to Industrial
	Software Engineering).  A wide-spectrum specification and
	design language developed by {ESPRIT} Project 315 at {CRI}
	A/S, Denmark.  Systems may be modular, {concurrent} and
	{nondeterministic}.  Specifications may be {applicative} or
	{imperative}, explicit or implicit, abstract or concrete.

	["The RAISE Specification Language", RAISE Language Group, P-H
	1992, ISBN 0-13-752833-7].

	(2007-10-02)

RAL

	1. Rutherford Appleton Laboratory (UK).

	2. An {expert system}.

RAM

	{Random Access Memory}

Rambus DRAM

	<storage> (RDRAM) A high bandwidth {DRAM}, designed by
	{Rambus, Inc.} of Mountain View, CA.

	RDRAM is used mainly for {video accelerators}, and also in the
	{Ultra 64} from {Nintendo}.  It offers sustained {transfer
	rates} of around 1000 Mbps, compared to 200 Mbps for ordinary
	DRAM.  Although it cannot be used as a direct replacement for
	existing memory, it is likely that it will replace DRAM and
	{SDRAM} as the main memory system in {personal computers} as
	the {bus} speeds required by these machines increase.  SDRAM
	can operate up to around 100MHz, but RDRAM has been
	demonstrated by the manufacturers running at 600MHz.

	The memory is also only 8 or 9 {bits} wide, so the bandwidth
	would increase enormously if it were used in parallel to give
	32 or 64-bit memory.

	{RDRAM Installation
	(http://www.cheapestrdram.com/rdram_install.php)}.

	(2007-06-13)

Rambus, Inc.

	<company> The company which designed {Rambus DRAM}.

	{(http://rambus.com/)}.

	Address: Mountain View, CA., USA.

	(1996-12-15)

RAMDAC

	{Random Access Memory Digital-to-Analog Converter}

RAM disk

	<operating system, storage> A memory-resident program which
	mimics a {hard disk} drive.  It uses part of computer's {RAM}
	to store data which can be accessed as files.  Unlike a real
	disk drive, this drive forgets all stored data when the
	computer is turned off.

	(1995-03-14)

RAM drive

	{RAM disk}

RAMIS II

	Rapid Access {Management Information System}.

	A {database} from {On-Line Software International}.

	(1994-11-14)

RAMTRON

	<company> The company which holds the patents for {FRAM} and
	licenses the technology to other companies.

	The licensees are currently (Feb 1997) {Hitachi}, {Rohm},
	{Samsung}, {SGS-Thomson} and {Toshiba}, none of who offer FRAM
	products of their own yet.

	{(http://csn.net/ramtron/)}.

	(1997-02-19)

random

	1. Unpredictable (closest to mathematical definition); weird.
	"The system's been behaving pretty randomly."

	2. Assorted; undistinguished.  "Who was at the conference?"
	"Just a bunch of random business types."

	3. (pejorative) Frivolous; unproductive; undirected.  "He's
	just a random loser."

	4. Incoherent or inelegant; poorly chosen; not well organised.
	"The program has a random set of misfeatures."  "That's a
	random name for that function."  "Well, all the names were
	chosen pretty randomly."

	5. In no particular order, though {deterministic}.  "The I/O
	channels are in a pool, and when a file is opened one is
	chosen randomly."

	6. Arbitrary.  "It generates a random name for the scratch
	file."

	7. Gratuitously wrong, i.e. poorly done and for no good
	apparent reason.  For example, a program that handles file
	name defaulting in a particularly useless way, or an assembler
	routine that could easily have been coded using only three
	registers, but redundantly uses seven for values with
	non-overlapping lifetimes, so that no one else can invoke it
	without first saving four extra registers.  What {randomness}!

	8.  A random hacker; used particularly of high-school students
	who soak up computer time and generally get in the way.

	9.  Anyone who is not a hacker (or, sometimes, anyone not
	known to the hacker speaking).  "I went to the talk, but the
	audience was full of randoms asking bogus questions".

	10.  (occasional MIT usage) One who lives at Random Hall.  See
	also {J. Random}, {some random X}.

	[{Jargon File}]

	(1995-12-05)

random-access memory

	<storage> (RAM) (Previously "direct-access memory").  A data
	storage device for which the order of access to different
	locations does not affect the speed of access.  This is in
	contrast to, say, a {magnetic disk}, {magnetic tape} or a
	{mercury delay line} where it is very much quicker to access
	data sequentially because accessing a non-sequential location
	requires physical movement of the storage medium rather than
	just electronic switching.

	In the 1970s {magnetic core} memory was used and some
	old-timers still call RAM "core".  The most common form of RAM
	in use today is {semiconductor} {integrated circuits}, which
	can be either {static random-access memory} (SRAM) or {dynamic
	random-access memory} (DRAM).

	The term "RAM" has gained the additional meaning of
	read-write.  Most kinds of semiconductor {read-only memory}
	(ROM) are actually "random access" in the above sense but are
	never referred to as RAM.  Furthermore, memory referred to as
	RAM can usually be read and written equally quickly
	(approximately), in contrast to the various kinds of
	{programmable read-only memory}.  Finally, RAM is usually
	volatile though {non-volatile random-access memory} is also
	used.

	Interestingly, some {DRAM} devices are not truly random access
	because various kinds of "{page mode}" or "column mode" mean
	that sequential access is faster than random access.

	The humorous expansion "Rarely Adequate Memory" refers to the
	fact that programs and data always seem to expand to fill the
	memory available.

	(2007-10-12)

Random Access Memory Digital-to-Analog Converter

	<hardware> (RAMDAC) A combination of three fast {DACs} with a
	small {SRAM} used in graphics {display adapters} to store the
	{colour palette} and to generate the analog signals to drive a
	colour {monitor}.  The logical colour number from the display
	memory is fed into the address inputs of the SRAM to select a
	palette entry to appear on the output of the SRAM.  This entry
	is composed of three separate values corresponding to the
	three components (red, green, and blue) of the desired
	physical colour.  Each component value is fed to a separate
	DAC, whose analog output goes to the monitor, and ultimately
	to one of its three {electron guns} (or equivalent in
	non-{CRT} displays).

	DAC word lengths range usually from 6 to 10 bits.  The SRAM's
	wordlength is three times the DAC's word length.  The SRAM
	acts as a {colour lookup table}.  It usually has 256 entries
	(and thus an 8-bit address).  If the DAC's word length is also
	8 bits, we have a 256 x 24-bit SRAM which allows a selection
	of 256 out of 16777216 possible colours for the display.  The
	contents of the SRAM can be changed while the display is not
	active (during {display blanking} times).  The SRAM can
	usually be bypassed and the DACs can be fed directly by
	display data (for {true colour} modes).

	(1996-03-24)

randomness

	1. An inexplicable misfeature; gratuitous inelegance.

	2. A {hack} or {crock} that depends on a complex combination
	of coincidences (or, possibly, the combination upon which the
	crock depends for its accidental failure to malfunction).
	"This hack can output characters 40--57 by putting the
	character in the four bit accumulator field of an XCT and then
	extracting six bits - the low 2 bits of the XCT opcode are
	the right thing."  "What randomness!"

	3. Of people, synonymous with "flakiness".  The connotation is
	that the person so described is behaving weirdly,
	incompetently, or inappropriately for reasons which are (a)
	too tiresome to bother inquiring into, (b) are probably as
	inscrutable as quantum phenomena anyway, and (c) are likely to
	pass with time. "Maybe he has a real complaint, or maybe it's
	just randomness.  See if he calls back."

	[{Jargon File}]

random number

	{pseudorandom number}

random testing

	<programming, testing> A {black-box testing} approach in which
	{software} is tested by choosing an arbitrary subset of all
	possible input values.  Random testing helps to avoid the
	problem of only testing what you know will work.

	(2001-04-30)

range

	{image}

Rapid Application Development

	<programming> (RAD) A loose term for any {software life-cycle}
	designed to give faster development and better results and to
	take maximum advantage of recent advances in development
	software.

	RAD is associated with a wide range of approaches to software
	development: from hacking away in a {GUI builder} with little
	in the way of analysis and design to complete {methodologies}
	expanding on an {information engineering} framework.

	Some of the current RAD techniques are: {CASE} tools,
	{iterative life-cycles}, {prototyping}, {workshops}, {SWAT
	teams}, {timebox development}, and {Re-use} of applications,
	templates and code.

	{RAD at BSO/Den Haag
	(http://riv.nl/origin/company/denhaag/RAD.HTM)}.

	["Rapid Application Development", James Martin].

	(1995-09-23)

RapidCAD

	<processor> A specially packaged {Intel 486DX} and a dummy
	{floating point unit} (FPU) designed as pin-compatible
	replacements for an {Intel 80386} processor and {80387} FPU.
	Since the DX variant has a working on-chip FPU, a dummy FPU
	package is supplied to go in the {387} FPU socket.

	(1995-05-10)

Rapidly Extensible Language, English

	<language> (REL English) A {formal language} based on English.

	["Practical Natural Language Processing: The REL System as
	Prototype", Adv in Computers 13, Academic Press 1975].

	(1997-04-09)

rapid prototyping

	<programming> The creation of a working model of a software module
	to demonstrate the feasibility and suitability of the function.
	The prototype is expected to be replaced or refined before
	inclusion in the final product.

	Rapid prototyping contrasts with a {DIRFT} approach which
	emphasises careful design and implementation to avoid the
	overheads of debugging and testing prototype code.  Rapid
	prototyping is appropriate when the requirements are unclear or
	likely to change (which is most of the time).

	(2012-11-17)

Rapidwrite

	<language, tool> A method for translating set of abbreviations
	into the much more verbose {COBOL} code.

	[Sammet 1969, p. 338].

	(1995-05-10)

RAPT

	["An Interpreter for a Language for Describing Assemblies",
	R.J. Popplestone et al, Artif Intell 14:79-107 (1980)].

	(1995-05-10)

RARE

	{Réseaux Associés pour la Recherche Européenne}

rare mode

	<operating system> {Unix} CBREAK mode (character-by-character
	with keyboard {interrupts} enabled).  Distinguished from {raw
	mode} and {cooked mode}; the phrase "a sort of half-cooked
	(rare?) mode" is used in the V7/BSD manuals to describe the
	mode.  Usage: rare.

	[{Jargon File}]

	(1995-05-10)

RARP

	{Reverse Address Resolution Protocol}

RAS

	1. <hardware, storage> {Row Address Strobe}.

	2. <communications> {Remote Access Services}.

	3. <system> {Reliability, Availability, Serviceability}.

	(2000-08-13)

RASP

	<language> ["RASP - A Language with Operations on Fuzzy Sets",
	D.D. Djakovic, Comp Langs 13(3):143-148 (1988)].

	(1995-05-10)

raster

	<hardware> The area of a video display that is covered by
	sweeping the electron beam of the display in a series of
	horizontal lines from top to bottom.  The beam then returns to
	the top during the vertical flyback interval.

	See also {CRT}, {frame buffer}.

	(1995-03-22)

raster blaster

	<hardware, jargon> (Cambridge) Specialised hardware for
	{bitblt} operations (a {blitter}).  Allegedly inspired by
	"Rasta Blasta", British slang for the sort of portable stereo
	Americans call a "boom box" or "ghetto blaster".

	[{Jargon File}]

	(1995-03-22)

raster burn

	1. (Or terminal illness) Eyestrain brought on by too many
	hours of looking at low-resolution, poorly tuned, or
	glare-ridden monitors, especially graphics monitors.

	2. The "burn-in" condition your {CRT} tends to get if you
	don't use a {screen saver}.

	[{Jargon File}]

raster font

	{bitmap font}

rastergram

	{Single Image Random Dot Stereogram}

raster graphics

	<graphics> Computer graphics in which an {image} is composed
	of an array of pixels arranged in rows and columns.

	Opposite: {vector graphics}.

	(1995-03-22)

Raster Image Processor

	<application, printer> (RIP) A device (usually {hardware} but
	can be {software}) that takes a {Page Description Language}
	description of a page and converts it into a {bitmap} for
	printing.

	(2003-09-10)

rasterising

	<algorithm> A transformation that can be applied to an image
	to prepare it for printing.  Rasterising reduces resolution by
	a factor of typically four to eight.  It also reduces
	sensitivity to paper properties.  Rasterising can be combined
	with {dithering}.

	[How does it work?]

	(2003-07-20)

rasterizing

	{rasterising}

raster subsystem

	<graphics> The part of a graphics system concerned with an
	{image} after it has been transformed and scaled to screen
	coordinates.  It includes scan conversion and display.

	(1995-03-22)

Ratatosk

	An {SLR parser} generator written in {Gofer} (a {Haskell}
	variant) by Torben AEgidius Mogensen <torbenm@diku.dk>.
	Ratatosk generates {purely functional} {backtracking} {LR0
	grammar} {parsers} (also in Gofer).

	Even though the {sematic} value of a {production} is a
	function of the attributes of its right-hand side (and thus
	apparently purely synthesised), inherited attributes are
	easily simulated by using {higher-order functions}.

	{(ftp://ftp.diku.dk/pub/diku/dists/Ratatosk.tar.Z)}.

rat belt

	A cable tie, especially the sawtoothed, self-locking plastic
	kind that you can remove only by cutting (as opposed to a
	random twist of wire or a twist tie or one of those humongous
	metal clip frobs).  Small cable ties are "mouse belts".

	[{Jargon File}]

RatC

	{Rationalized C}

RATEL

	Raytheon Automatic Test Equipment Language.  For analog and
	digital computer controlled test centres.  "Automatic Testing
	via a Distributed Intelligence Processing System", S.J. Ring,
	IEEE AUTOTESTCON 77 (Nov 1977).

Rate monotonic scheduling

	<algorithm> A means of {scheduling} the time allocated to
	periodic {hard-deadline} {real-time} users of a resource.  The
	users are assigned priorities such that a shorter fixed period
	between deadlines is associated with a higher priority.

	Rate monotonic scheduling provides a low-overhead, reasonably
	resource-efficient means of guaranteeing that all users will
	meet their deadlines provided that certain analytical
	equations are satisfied during the system design.  It avoids
	the design complexity of {time-line scheduling} and the
	overhead of dynamic approaches such as {earliest-deadline
	scheduling}.

	[D. R. Wilcox, Naval Ocean Systems Center Technical Report
	1310, August 1989, "Periodic Phase Adjustment Distributed
	Clock Synchronization in the Hard Realtime Environment",
	p. 9].

	(1996-03-23)

RATFIV

	<language> An enhancement to the {RATFOR} programming
	language, developed by Bill Wood while at the Institute for
	Cancer Research (Philadelphia PA, now the Fox Chase Cancer
	Center) in 1980-1981.  RATFIV was released on several {DECUS}
	(Digital Equipment Corporation User's Group) tapes for
	{VAX/VMS}.  Among its enhancements were: optional {Fortan 77}
	output, an enhanced Format statement and enhanced {macros}.

	(2007-05-16)

RATFOR

	{RATional Fortran}

rational

	[Mathematics] a fractional number n/d, where n and d are
	integers, n is the numerator and d is the denominator.  The
	set of all rational numbers is usually called Q.
	Computers do not usually deal with rational numbers but
	instead convert them to {real} numbers which are represented
	(approximately in some cases) as {floating-point} numbers.
	Compare {irrational}.

RATional Fortran

	<language> (RATFOR) {Brian Kernighan}'s {Fortran}
	{preprocessor} that allows programming with {C}-like {control
	flow}.  RATFOR is mainly of historical significance.

	A translator from Ratfor to Fortran IV was posted to
	comp.sources.Unix volume 13.

	{(ftp://ftp.wustl.edu/mirrors/Unix-c/languages/ratfor.tar-z)}.

	["Ratfor - A Preprocessor for a Rational Fortran",
	B.W. Kernighan, Soft Prac & Exp 5:395-406, Oct 1975].

	["Software Tools", B.W. Kernighan & P.J. Plauger, A-W, 1976].

	(2001-07-31)

Rationalized C

	<language> (RatC, after "{RATFOR}") A version of Ron Cain's
	original {Small-C} {compiler}.

	["A Book on C", R.E. Berry and B.A. Meekings, 1984, ISBN
	0-333-36821-5].

	[In what way was it "rationalized"?]

	(1999-06-28)

rave

	[WPI] 1. To persist in discussing a specific subject.

	2. To speak authoritatively on a subject about which one knows
	very little.

	3. To complain to a person who is not in a position to correct
	the difficulty.

	4. To purposely annoy another person verbally.

	5. To evangelise.  See {flame}.

	6. Also used to describe a less negative form of blather, such
	as friendly bullshitting.  "Rave" differs slightly from
	{flame} in that "rave" implies that it is the persistence or
	obliviousness of the person speaking that is annoying, while
	{flame} implies somewhat more strongly that the tone or
	content is offensive as well.

	[{Jargon File}]

rave on!

	Sarcastic invitation to continue a {rave}, often by someone
	who wishes the raver would get a clue but realises this is
	unlikely.

ravioli code

	<jargon, humour> {Object-oriented} code consisting of a number of
	small and {loosely-coupled} software components.  Presumably, the
	term is a compliment, contrasting the code with {spaghetti code}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-10-28)

raw data

	{data}

raw mode

	<operating system> A mode that allows a program to transfer
	{bits} directly to or from an {I/O} device without any
	processing, abstraction, or interpretation by the {operating
	system}.

	Systems that make this distinction for a disk file are
	generally regarded as broken.

	Compare {rare mode}, {cooked mode}.

	[{Jargon File}]

	(2002-04-14)

RAWOOP-SNAP

	<language> An early system on the {IBM 1130}.

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

	(1996-05-29)

ray casting

	<graphics> A simplified form of {ray tracing}.  A ray is fired
	from each {pixel} in the view plane, and information is
	accumulated from all the {voxels} in the volume data it
	intersects.

	Each voxel is first given an associated colour and opacity.
	The ray is sampled at a fixed number of evenly spaced
	locations and the colour and opacity are trilinearly
	interpolated from the eight nearest voxels.  These are then
	composed linearly back to front to give a single colour for
	the pixel.

	Ray casting was invented by John Carmack for the game
	{Wolfenstein 3D}.  It is faster and lower quality than ray
	tracing, and is ideal for interactive applications.  It
	parallelises well, although random access is needed to the
	voxels.

	(2004-01-06)

Rayleigh distribution

	<mathematics> A curve that yields a good approximation to the
	actual labour curves on software projects.

	[Details?  Equation?]

	(1996-05-29)

Ray Tomlinson

	<person> An engineer at {Bolt Beranek and Newman} who, in July
	1972 while designing the first[?] {electronic mail} program,
	chose the {commercial at} symbol "@" to separate the user name
	from the computer name.

	(2004-08-22)

ray tracing

	<graphics> A technique used in {computer graphics} to create
	realistic {images} by calculating the paths taken by rays of
	light entering the observer's eye at different angles.  The
	paths are traced backward from the viewpoint, through a point
	(a {pixel}) in the image plane until they hit some object in
	the scene or go off to infinity.  Objects are modelled as
	collections of abutting surfaces which may be rectangles,
	triangles, or more complicated shapes such as 3D {splines}.
	The optical properties of different surfaces (colour,
	reflectance, transmitance, refraction, texture) also affect
	how it will contribute to the colour and brightness of the
	ray.  The position, colour, and brightness of light sources,
	including ambient lighting, is also taken into account.

	Ray tracing is an ideal application for {parallel processing}
	since there are many pixels, each of whose values is
	independent and can thus be calculated in parallel.

	Compare: {radiosity}.

	{Usenet} newsgroup: {news:comp.graphics.raytracing}.

	{(http://directory.google.com/Top/Computers/Software/Graphics/3D/Ray_Tracing/)}.

	(2003-09-11)

R:BASE

	<database> An {MS-DOS} {4GL} from {Microrim} based on the
	{minicomputer} {DBMS} {RIM}.

	[Was Wayne Erickson the author?]

	(2004-09-01)

RBASIC

	Database language for Revelation, by Cosmos, Inc.  Combines
	features of BASIC, Pascal and Fortran.

RBCSP

	Roper and Barter's CSP.

	["A Communicating Sequential Process Language and
	Implementation", T. Roper & J. Barter, Soft Prac & Exp
	11(11):1215-1234 (Nov 1981)].

RBOC

	{Regional Bell Operating Company}

rc

	1. <filename extension> (run commands) The {filename
	extension} common to many {Unix} configuration files, e.g.
	{.newsrc}, {.cshrc}, {.twmrc}, elmrc, etc.

	The suffix "rc" derives from a script-creation utility in
	{CTSS} called "{runcom}" (for "run commands").

	{Unix FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/unix-faq/faq/top.html)}.

	2. A {shell} from {AT&T}'s {Plan 9}, by Tom Duff.  rc offers
	much the same capabilities as a traditional {Bourne shell},
	but with a much cleaner {syntax}.

	An open source reimplementation was made by Byron Rakitzis,
	and is now maintained by Tim Goodwin <tjg@star.le.ac.uk>.

	Latest version: 1.6, as of 2000-06-15.

	{(http://star.le.ac.uk/~tjg/rc)}.

	(2000-06-17)

RC4

	<cryptography> A {cipher} designed by {RSA Data Security,
	Inc.} which can accept {keys} of arbitrary length, and is
	essentially a {pseudo random number generator} with the output
	of the generator being {XOR}ed with the data stream to produce
	the encrypted data.  For this reason, it is very important
	that the same RC4 key never be used to encrypt two different
	data streams.  The encryption mechanism used to be a trade
	secret, until someone posted source code for an {algorithm}
	onto {Usenet News}, claiming it to be equivalent to RC4.  The
	algorithm is very fast, its security is unknown, but breaking
	it does not seem trivial either.  There is very strong
	evidence that the posted algorithm is indeed equivalent to
	RC4.

	The United States government routinely approves RC4 with
	40-bit keys for export.  Keys this small can be easily broken
	by governments, criminals, and amateurs.  The exportable
	version of {Netscape}'s {Secure Socket Layer}, which uses
	RC4-40, was broken by at least two independent groups.
	Breaking it took about eight days; in many universities or
	companies the same computing power is available to any
	computer science student.

	See also {Damien Doligez's SSL cracking page
	(http://pauillac.inria.fr/~doligez/ssl/)}, {RC4 Source and
	Information (http://cs.hut.fi/crypto/rc4)}, {SSLeay
	(http://cs.hut.fi/crypto/software.html#ssleay)}, {Crypto++
	(http://cs.hut.fi/crypto/software.html#crypto++)}, {Ssh
	(http://cs.hut.fi/crypto/software.html#ssh)}, {A
	collection of articles
	(http://cs.hut.fi/crypto/rc4-breaking)}.

	(1996-10-28)

RCA 1802

	<processor> An extremely simple {microprocessor} fabricated in
	{CMOS}, running at 6.4 MHz at 10V (very fast for 1974).  It
	could be suspended with the clock stopped.  It was an 8-bit
	processor, with 16-bit addressing.  Simplicity was the primary
	design goal, and in that sense it was one of the first {RISC}
	chips.  It had sixteen 16-bit {registers}, which could be
	accessed as thirty-two 8-bit registers, and an {accumulator} D
	used for arithmetic and memory access - memory to D, then D to
	registers and vice versa, using one 16-bit register as an
	address.  This led to one person describing the 1802 as having
	32 bytes of {RAM} and 65535 I/O ports.  A 4-bit control
	register P selected any one general register as the {program
	counter}, while control registers X and N selected registers
	for I/O Index and the operand for the current instruction.
	All instructions were 8 bits - a 4-bit {op code} (total of 16
	operations) and 4-bit {operand register} stored in N.  There
	was no real {conditional branching}, no {subroutine} support
	and no actual {stack} but these could be implemented by clever
	use of registers, e.g. changing P to another register allowed
	jump to a subroutine.  Similarly, on an interrupt P and X were
	saved, then R1 and R2 were selected for P and X until an {RTI}
	restored them.

	The {RCA 1805} was an enhanced version.

	The 1802 was used in the {COSMAC} (VIP?) {microcomputer} kit,
	some video games from {RCA} and {Radio Shack}, and the
	{ETI-660} computer.  It was chosen for the Voyager, Viking and
	Galileo space probes as it was also fabricated in {Silicon on
	Sapphire}, giving radiation and static resistance, ideal for
	space operation.

	{More history (http://cosmacelf.com)}.

	(2002-04-09)

RCA 1805

	A later, enhanced version of the {RCA 1802}.  It added several
	{Forth} language primitives.

	(1994-11-16)

RCC

	An extensible language.

	[More detail?]

rc file

	/R C fi:l/ [Unix: from the startup script "/etc/rc", but this
	is commonly believed to have been named after older scripts to
	"run commands"] Script file containing startup instructions
	for an application program (or an entire operating system),
	usually a text file containing commands of the sort that might
	have been invoked manually once the system was running but are
	to be executed automatically each time the system starts up.
	See also {dot file}, {profile} (sense 1).

	[{Jargon File}]

RCL

	Reduced Control Language.  A simplified job control language
	for OS360, translated to IBM JCL.  "Reduced Control Language
	for Non- Professional Users", K. Appel in Command Languages,
	C. Unger ed, N-H 1973.

rcp

	<networking, tool> (Remote copy) The {Unix} utility for
	copying files over {Ethernet}.  Rcp is similar to {FTP} but
	uses the {hosts.equiv} user authentication method.

	{Unix manual page}: rcp(1).

	(1997-01-12)

RCS

	{Revision Control System}

Rdb

	{Oracle Rdb}

rdb

	A roll-your-own {database}, created in the {Unix} toolkit
	philosophy.  It appears to be written in the {awk} language,
	and is very compatible with awk.  It uses awk's syntax and can
	be combined with awk commands.

	The definitive introduction is "Unix Relational Database
	Management: Application Development in the Unix Environment",
	by Rod Manis, Evan Schaeffer, and Robert Jorgensen, published
	by Prentice Hall.  The book tells how to use rdb to create
	database/spreadsheets in the awk tradition, only easier. It's
	a good way to get into programming for novices.  It's also a
	good way to learn DB theory and construction quite painlessly.

RDBA

	{Remote Database Access}

RDBMS

	{relational database}

RDF

	{Resource Description Framework}

RDI

	{Receiver Data Interface}

RDL

	Requirements and Development Language.

	["RDL: A Language for Software Development", H.C. Heacox,
	SIGPLAN Notices 14(9):71-79 (Sep 1979)].

RDOS

	{Realtime Disk Operating System}

RDP

	<protocol>

	1. {Reliable Data Protocol}.

	2. {Remote Desktop Protocol}.

	(2004-09-14)

RDRAM

	{Rambus DRAM}

RDS

	{Random Dot Stereogram}

RE

	{regular expression}

re

	1. <networking> The {country code} for Reunion.

	2. <chat> /re-/ (From "rehi") Hello again.  A greeting
	originating in, and most often heard on, {Internet}
	interactive conversation services.

	[{Jargon File}]

	(1999-02-08)

read-eval-print loop

	<language, LISP, programming> (REPL) A programming {structure}
	within {LISP} which repeatedly reads a {form} from the {user},
	evaluates it, and displays the result.

	A read-eval-print {loop} forms the basis of the {Top-Level}
	{shell} that programmers of the LISP family of languages
	interact with.

	In many dialects of LISP a very simple REPL could be
	implemented as:

		(loop (print (eval (read)))).

	(2003-06-23)

README file

	<convention> An introduction traditionally included in the
	top-level directory of a {Unix} {source} distribution,
	containing a pointer to more detailed documentation, credits,
	miscellaneous revision history, notes, etc.  The file may be
	named README, or READ.ME, or rarely ReadMe or readme.txt or
	some other variant.

	In the {Macintosh} and {IBM PC} worlds, software is not
	usually distributed in source form, and the README is more
	likely to contain user-oriented material like last-minute
	documentation changes, error workarounds, and restrictions.

	The README convention probably follows the famous scene in
	Lewis Carroll's "Alice's Adventures In Wonderland" in which
	Alice confronts magic munchies labelled "Eat Me" and "Drink
	Me".

	[{Jargon File}]

	(1995-02-28)

Read-Only Memory

	<storage> (ROM) A type of data storage device which is
	manufactured with fixed contents.  In its most general sense,
	the term might be used for any storage system whose contents
	cannot be altered, such as a gramophone record or a printed
	book; however, the term is most often applied to
	{semiconductor} {integrated circuit} memories, of which there
	are several types, and {CD-ROM}.

	ROM is inherently {non-volatile storage} - it retains its
	contents even when the power is switched off, in contrast to
	{RAM}.

	ROM is often used to hold programs for {embedded systems}
	since these usually have a fixed purpose.  ROM is also used
	for storage of the lowest level {bootstrap} software
	(firmware) in a computer.

	See also {Programmable Read-Only Memory}.

	(1995-05-09)

read-only user

	<jargon> Describes a {luser} who uses computers almost
	exclusively for reading {Usenet}, {bulletin boards}, and/or
	{electronic mail}, rather than writing code or purveying
	useful information.

	See {twink}, {terminal junkie}, {lurker}.

	[{Jargon File}]

	(1995-02-28)

real

	1. Not simulated.  Often used as a specific antonym to
	{virtual} in any of its jargon senses.

	2. <mathematics> {real number}.

	[{Jargon File}]

	(1997-03-12)

RealAudio

	<tool, communications> A program from {Real Media} for playing
	{audio} over the {Internet}, and the {lossy} audio compression
	format it uses.

	The system is implemented as a {client/server} architecture.
	The RealAudio server incorporates an {encoder} which
	compresses sound into RealAudio files.  The client side is a
	{web browser} {plug-in} or {add-on} (a recent version of
	{Internet Explorer} apparently has built-in support for
	RealAudio) which allows the stream of data sent from the
	server to be uncompressed and output using the normal sound
	facilities of the computer, such as a {sound card}.

	A 14.4 {KBps} or better {modem} is required, and a 28.8 KBps
	connection is recommended for music-quality sound.

	{(http://realaudio.com/)}.

	(2001-12-13)

real estate

	<jargon> May be used for any critical resource measured in
	units of area.  Most frequently used of "chip real estate",
	the area available for logic on the surface of an {integrated
	circuit} (see also {nanoacre}).  May also be used of floor
	space in a {dinosaur pen}, or even space on a crowded desktop
	(whether physical or electronic).

	[{Jargon File}]

	(1996-11-06)

real hack

	A {crock}.  This is sometimes used affectionately; see {hack}.

	[{Jargon File}]

reality check

	<testing> The simplest kind of {functional test} of {software} or
	{hardware}; doing the equivalent of asking it what 2 + 2 is and
	seeing if it says four.  The software equivalent of a {smoke
	test}.  A reality check may include letting a {real user} try out
	{prototype} software.

	A {sanity check} is even more basic, the equivalent of checking
	that the above addition was implemented with an addition operator
	rather than subtraction.

	(2007-03-15)

realization

	<specification> A {UML} {semantic} relationship between a
	{classifier} that specifies a contract and another classifier
	that guarantees to carry it out.

	[Handout by Mr. David Gillibrand].

	(2007-03-15)

Really Simple Syndication

	{Rich Site Summary}

real mode

	An operating mode of {Intel 80x86} processors.  The opposite
	of {protected mode}.

	(1995-03-29)

real number

	<mathematics> One of the infinitely divisible range of values
	between positive and negative {infinity}, used to represent
	continuous physical quantities such as distance, time and
	temperature.

	Between any two real numbers there are infinitely many more
	real numbers.  The {integers} ("counting numbers") are real
	numbers with no fractional part and real numbers ("measuring
	numbers") are {complex numbers} with no imaginary part.  Real
	numbers can be divided into {rational numbers} and {irrational
	numbers}.

	Real numbers are usually represented (approximately) by
	computers as {floating point} numbers.

	Strictly, real numbers are the {equivalence classes} of the
	{Cauchy sequences} of {rationals} under the {equivalence
	relation} "~", where a ~ b if and only if a-b is {Cauchy} with
	limit 0.

	The real numbers are the minimal {topologically closed}
	{field} containing the rational field.

	A sequence, r, of rationals (i.e. a function, r, from the
	{natural numbers} to the rationals) is said to be Cauchy
	precisely if, for any tolerance delta there is a size, N,
	beyond which: for any n, m exceeding N,

	 | r[n] - r[m] | < delta

	A Cauchy sequence, r, has limit x precisely if, for any
	tolerance delta there is a size, N, beyond which: for any n
	exceeding N,

	 | r[n] - x | < delta

	(i.e. r would remain Cauchy if any of its elements, no matter
	how late, were replaced by x).

	It is possible to perform addition on the reals, because the
	equivalence class of a sum of two sequences can be shown to be
	the equivalence class of the sum of any two sequences
	equivalent to the given originals: ie, a~b and c~d implies
	a+c~b+d; likewise a.c~b.d so we can perform multiplication.
	Indeed, there is a natural {embedding} of the rationals in the
	reals (via, for any rational, the sequence which takes no
	other value than that rational) which suffices, when extended
	via continuity, to import most of the algebraic properties of
	the rationals to the reals.

	(1997-03-12)

real operating system

	<operating system, abuse> The sort the speaker is used to.
	People from the {BSD}ophilic academic community are likely to
	issue comments like "{System V}?  Why don't you use a *real*
	operating system?", people from the commercial/industrial
	{Unix} sector are known to complain "BSD?  Why don't you use a
	*real* operating system?", and people from {IBM} object "Unix?
	Why don't you use a *real* operating system?"

	See {holy wars}, {religious issues}, {proprietary}, {Get a
	real computer!}.

	[{Jargon File}]

	(1997-03-12)

Real Programmer

	<job, humour> (From the book "Real Men Don't Eat Quiche") A
	variety of hacker possessed of a flippant attitude toward
	complexity that is arrogant even when justified by experience.
	The archetypal "Real Programmer" likes to program on the {bare
	metal} and is very good at it, remembers the binary {op codes}
	for every machine he has ever programmed, thinks that
	{high-level languages} are sissy, and uses a {debugger} to
	edit his code because full-screen editors are for wimps.  Real
	Programmers aren't satisfied with code that hasn't been
	{bum}med into a state of {tense}ness just short of rupture.

	Real Programmers never use {comments} or write
	{documentation}: "If it was hard to write", says the Real
	Programmer, "it should be hard to understand."  Real
	Programmers can make machines do things that were never in
	their spec sheets; in fact, they are seldom really happy
	unless doing so.  A Real Programmer's code can awe with its
	fiendish brilliance, even as its crockishness appals.

	Real Programmers live on junk food and coffee, hang
	line-printer art on their walls, and terrify the crap out of
	other programmers - because someday, somebody else might have
	to try to understand their code in order to change it.  Their
	successors generally consider it a {Good Thing} that there
	aren't many Real Programmers around any more.

	For a famous (and somewhat more positive) portrait of a Real
	Programmer, see "{The Story of Mel}".  The term itself was
	popularised by a 1983 Datamation article "{Real Programmers
	Don't Use Pascal}" by Ed Post, still circulating on {Usenet}
	and Internet in on-line form.

	[{Jargon File}]

	(1997-08-29)

Real Programmers Don't Use Pascal

	<humour> Back in the good old days - the "Golden Era" of
	computers, it was easy to separate the men from the boys
	(sometimes called "Real Men" and "Quiche Eaters" in the
	literature).  During this period, the Real Men were the ones
	that understood computer programming, and the Quiche Eaters
	were the ones that didn't.  A real computer programmer said
	things like "DO 10 I=1,10" and "ABEND" (they actually talked
	in capital letters, you understand), and the rest of the world
	said things like "computers are too complicated for me" and "I
	can't relate to computers - they're so impersonal".  (A
	previous work [1] points out that Real Men don't "relate" to
	anything, and aren't afraid of being impersonal.)

	But, as usual, times change.  We are faced today with a world
	in which little old ladies can get computers in their
	microwave ovens, 12-year-old kids can blow Real Men out of the
	water playing Asteroids and Pac-Man, and anyone can buy and
	even understand their very own Personal Computer.  The Real
	Programmer is in danger of becoming extinct, of being replaced
	by high-school students with {TRASH-80s}.

	There is a clear need to point out the differences between the
	typical high-school junior Pac-Man player and a Real
	Programmer.  If this difference is made clear, it will give
	these kids something to aspire to -- a role model, a Father
	Figure.  It will also help explain to the employers of Real
	Programmers why it would be a mistake to replace the Real
	Programmers on their staff with 12-year-old Pac-Man players
	(at a considerable salary savings).

	LANGUAGES

	The easiest way to tell a Real Programmer from the crowd is by
	the programming language he (or she) uses.  Real Programmers
	use {Fortran}.  Quiche Eaters use {Pascal}.  Nicklaus Wirth,
	the designer of Pascal, gave a talk once at which he was asked
	how to pronounce his name.  He replied, "You can either call
	me by name, pronouncing it 'Veert', or call me by value,
	'Worth'."  One can tell immediately from this comment that
	Nicklaus Wirth is a Quiche Eater.  The only parameter passing
	mechanism endorsed by Real Programmers is
	call-by-value-return, as implemented in the {IBM 370}
	{Fortran-G} and H compilers.  Real programmers don't need all
	these abstract concepts to get their jobs done - they are
	perfectly happy with a {keypunch}, a {Fortran IV} {compiler},
	and a beer.

	Real Programmers do List Processing in Fortran.

	Real Programmers do String Manipulation in Fortran.

	Real Programmers do Accounting (if they do it at all) in
	Fortran.

	Real Programmers do {Artificial Intelligence} programs in
	Fortran.

	If you can't do it in Fortran, do it in {assembly language}.
	If you can't do it in assembly language, it isn't worth doing.

	STRUCTURED PROGRAMMING

	The academics in computer science have gotten into the
	"structured programming" rut over the past several years.
	They claim that programs are more easily understood if the
	programmer uses some special language constructs and
	techniques.  They don't all agree on exactly which constructs,
	of course, and the examples they use to show their particular
	point of view invariably fit on a single page of some obscure
	journal or another - clearly not enough of an example to
	convince anyone.  When I got out of school, I thought I was
	the best programmer in the world.  I could write an unbeatable
	tic-tac-toe program, use five different computer languages,
	and create 1000-line programs that WORKED.  (Really!) Then I
	got out into the Real World.  My first task in the Real World
	was to read and understand a 200,000-line Fortran program,
	then speed it up by a factor of two.  Any Real Programmer will
	tell you that all the Structured Coding in the world won't
	help you solve a problem like that - it takes actual talent.
	Some quick observations on Real Programmers and Structured
	Programming:

	Real Programmers aren't afraid to use {GOTOs}.

	Real Programmers can write five-page-long DO loops without
	getting confused.

	Real Programmers like Arithmetic IF statements - they make the
	code more interesting.

	Real Programmers write self-modifying code, especially if they
	can save 20 {nanoseconds} in the middle of a tight loop.

	Real Programmers don't need comments - the code is obvious.

	Since Fortran doesn't have a structured IF, REPEAT ... UNTIL,
	or CASE statement, Real Programmers don't have to worry about
	not using them.  Besides, they can be simulated when necessary
	using {assigned GOTOs}.

	Data Structures have also gotten a lot of press lately.
	Abstract Data Types, Structures, Pointers, Lists, and Strings
	have become popular in certain circles.  Wirth (the
	above-mentioned Quiche Eater) actually wrote an entire book
	[2] contending that you could write a program based on data
	structures, instead of the other way around.  As all Real
	Programmers know, the only useful data structure is the Array.
	Strings, lists, structures, sets - these are all special cases
	of arrays and can be treated that way just as easily without
	messing up your programing language with all sorts of
	complications.  The worst thing about fancy data types is that
	you have to declare them, and Real Programming Languages, as
	we all know, have implicit typing based on the first letter of
	the (six character) variable name.

	OPERATING SYSTEMS

	What kind of operating system is used by a Real Programmer?
	CP/M?  God forbid - CP/M, after all, is basically a toy
	operating system.  Even little old ladies and grade school
	students can understand and use CP/M.

	Unix is a lot more complicated of course - the typical Unix
	hacker never can remember what the PRINT command is called
	this week - but when it gets right down to it, Unix is a
	glorified video game.  People don't do Serious Work on Unix
	systems: they send jokes around the world on {UUCP}-net and
	write adventure games and research papers.

	No, your Real Programmer uses OS 370.  A good programmer can
	find and understand the description of the IJK305I error he
	just got in his JCL manual.  A great programmer can write JCL
	without referring to the manual at all.  A truly outstanding
	programmer can find bugs buried in a 6 megabyte {core dump}
	without using a hex calculator.  (I have actually seen this
	done.)

	OS is a truly remarkable operating system.  It's possible to
	destroy days of work with a single misplaced space, so
	alertness in the programming staff is encouraged.  The best
	way to approach the system is through a keypunch.  Some people
	claim there is a Time Sharing system that runs on OS 370, but
	after careful study I have come to the conclusion that they
	were mistaken.

	PROGRAMMING TOOLS

	What kind of tools does a Real Programmer use?  In theory, a
	Real Programmer could run his programs by keying them into the
	front panel of the computer.  Back in the days when computers
	had front panels, this was actually done occasionally.  Your
	typical Real Programmer knew the entire bootstrap loader by
	memory in hex, and toggled it in whenever it got destroyed by
	his program.  (Back then, memory was memory - it didn't go
	away when the power went off.  Today, memory either forgets
	things when you don't want it to, or remembers things long
	after they're better forgotten.)  Legend has it that {Seymore
	Cray}, inventor of the Cray I supercomputer and most of
	Control Data's computers, actually toggled the first operating
	system for the CDC7600 in on the front panel from memory when
	it was first powered on.  Seymore, needless to say, is a Real
	Programmer.

	One of my favorite Real Programmers was a systems programmer
	for Texas Instruments.  One day he got a long distance call
	from a user whose system had crashed in the middle of saving
	some important work.  Jim was able to repair the damage over
	the phone, getting the user to toggle in disk I/O instructions
	at the front panel, repairing system tables in hex, reading
	register contents back over the phone.  The moral of this
	story: while a Real Programmer usually includes a keypunch and
	lineprinter in his toolkit, he can get along with just a front
	panel and a telephone in emergencies.

	In some companies, text editing no longer consists of ten
	engineers standing in line to use an 029 keypunch.  In fact,
	the building I work in doesn't contain a single keypunch.  The
	Real Programmer in this situation has to do his work with a
	"text editor" program.  Most systems supply several text
	editors to select from, and the Real Programmer must be
	careful to pick one that reflects his personal style.  Many
	people believe that the best text editors in the world were
	written at Xerox Palo Alto Research Center for use on their
	Alto and Dorado computers [3].  Unfortunately, no Real
	Programmer would ever use a computer whose operating system is
	called SmallTalk, and would certainly not talk to the computer
	with a mouse.

	Some of the concepts in these Xerox editors have been
	incorporated into editors running on more reasonably named
	operating systems - {Emacs} and {VI} being two.  The problem
	with these editors is that Real Programmers consider "what you
	see is what you get" to be just as bad a concept in Text
	Editors as it is in women.  No the Real Programmer wants a
	"you asked for it, you got it" text editor - complicated,
	cryptic, powerful, unforgiving, dangerous.  TECO, to be
	precise.

	It has been observed that a TECO command sequence more closely
	resembles transmission line noise than readable text [4].  One
	of the more entertaining games to play with TECO is to type
	your name in as a command line and try to guess what it does.
	Just about any possible typing error while talking with TECO
	will probably destroy your program, or even worse - introduce
	subtle and mysterious bugs in a once working subroutine.

	For this reason, Real Programmers are reluctant to actually
	edit a program that is close to working.  They find it much
	easier to just patch the binary {object code} directly, using
	a wonderful program called SUPERZAP (or its equivalent on
	non-IBM machines).  This works so well that many working
	programs on IBM systems bear no relation to the original
	Fortran code.  In many cases, the original source code is no
	longer available.  When it comes time to fix a program like
	this, no manager would even think of sending anything less
	than a Real Programmer to do the job - no Quiche Eating
	structured programmer would even know where to start.  This is
	called "job security".

	Some programming tools NOT used by Real Programmers:

	Fortran preprocessors like {MORTRAN} and {RATFOR}.  The
	Cuisinarts of programming - great for making Quiche.  See
	comments above on structured programming.

	Source language debuggers.  Real Programmers can read core
	dumps.

	Compilers with array bounds checking.  They stifle creativity,
	destroy most of the interesting uses for EQUIVALENCE, and make
	it impossible to modify the operating system code with
	negative subscripts.  Worst of all, bounds checking is
	inefficient.

	Source code maintenance systems.  A Real Programmer keeps his
	code locked up in a card file, because it implies that its
	owner cannot leave his important programs unguarded [5].

	THE REAL PROGRAMMER AT WORK

	Where does the typical Real Programmer work?  What kind of
	programs are worthy of the efforts of so talented an
	individual?  You can be sure that no Real Programmer would be
	caught dead writing accounts-receivable programs in {COBOL},
	or sorting {mailing lists} for People magazine.  A Real
	Programmer wants tasks of earth-shaking importance
	(literally!).

	Real Programmers work for Los Alamos National Laboratory,
	writing atomic bomb simulations to run on Cray I
	supercomputers.

	Real Programmers work for the National Security Agency,
	decoding Russian transmissions.

	It was largely due to the efforts of thousands of Real
	Programmers working for NASA that our boys got to the moon and
	back before the Russkies.

	Real Programmers are at work for Boeing designing the
	operating systems for cruise missiles.

	Some of the most awesome Real Programmers of all work at the
	Jet Propulsion Laboratory in California.  Many of them know
	the entire operating system of the Pioneer and Voyager
	spacecraft by heart.  With a combination of large ground-based
	Fortran programs and small spacecraft-based assembly language
	programs, they are able to do incredible feats of navigation
	and improvisation - hitting ten-kilometer wide windows at
	Saturn after six years in space, repairing or bypassing
	damaged sensor platforms, radios, and batteries.  Allegedly,
	one Real Programmer managed to tuck a pattern-matching program
	into a few hundred bytes of unused memory in a Voyager
	spacecraft that searched for, located, and photographed a new
	moon of Jupiter.

	The current plan for the Galileo spacecraft is to use a
	gravity assist trajectory past Mars on the way to Jupiter.
	This trajectory passes within 80 +/-3 kilometers of the
	surface of Mars.  Nobody is going to trust a Pascal program
	(or a Pascal programmer) for navigation to these tolerances.

	As you can tell, many of the world's Real Programmers work for
	the U.S. Government - mainly the Defense Department.  This is
	as it should be.  Recently, however, a black cloud has formed
	on the Real Programmer horizon.  It seems that some highly
	placed Quiche Eaters at the Defense Department decided that
	all Defense programs should be written in some grand unified
	language called "ADA" ((C), DoD).  For a while, it seemed that
	ADA was destined to become a language that went against all
	the precepts of Real Programming - a language with structure,
	a language with data types, {strong typing}, and semicolons.
	In short, a language designed to cripple the creativity of the
	typical Real Programmer.  Fortunately, the language adopted by
	DoD has enough interesting features to make it approachable --
	it's incredibly complex, includes methods for messing with the
	operating system and rearranging memory, and Edsgar Dijkstra
	doesn't like it [6].  (Dijkstra, as I'm sure you know, was the
	author of "GoTos Considered Harmful" - a landmark work in
	programming methodology, applauded by Pascal programmers and
	Quiche Eaters alike.)  Besides, the determined Real Programmer
	can write Fortran programs in any language.

	The Real Programmer might compromise his principles and work
	on something slightly more trivial than the destruction of
	life as we know it, providing there's enough money in it.
	There are several Real Programmers building video games at
	Atari, for example.  (But not playing them - a Real Programmer
	knows how to beat the machine every time: no challenge in
	that.)  Everyone working at LucasFilm is a Real Programmer.
	(It would be crazy to turn down the money of fifty million
	Star Trek fans.)  The proportion of Real Programmers in
	Computer Graphics is somewhat lower than the norm, mostly
	because nobody has found a use for computer graphics yet.  On
	the other hand, all computer graphics is done in Fortran, so
	there are a fair number of people doing graphics in order to
	avoid having to write COBOL programs.

	THE REAL PROGRAMMER AT PLAY

	Generally, the Real Programmer plays the same way he works -
	with computers.  He is constantly amazed that his employer
	actually pays him to do what he would be doing for fun anyway
	(although he is careful not to express this opinion out loud).
	Occasionally, the Real Programmer does step out of the office
	for a breath of fresh air and a beer or two.  Some tips on
	recognizing Real Programmers away from the computer room:

	At a party, the Real Programmers are the ones in the corner
	talking about operating system security and how to get around
	it.

	At a football game, the Real Programmer is the one comparing
	the plays against his simulations printed on 11 by 14 fanfold
	paper.

	At the beach, the Real Programmer is the one drawing
	flowcharts in the sand.

	At a funeral, the Real Programmer is the one saying "Poor
	George, he almost had the sort routine working before the
	coronary."

	In a grocery store, the Real Programmer is the one who insists
	on running the cans past the laser checkout scanner himself,
	because he never could trust keypunch operators to get it
	right the first time.

	THE REAL PROGRAMMER'S NATURAL HABITAT

	What sort of environment does the Real Programmer function
	best in?  This is an important question for the managers of
	Real Programmers.  Considering the amount of money it costs to
	keep one on the staff, it's best to put him (or her) in an
	environment where he can get his work done.

	The typical Real Programmer lives in front of a computer
	terminal.  Surrounding this terminal are:

	Listings of all programs the Real Programmer has ever worked
	on, piled in roughly chronological order on every flat surface
	in the office.

	Some half-dozen or so partly filled cups of cold coffee.
	Occasionally, there will be cigarette butts floating in the
	coffee.  In some cases, the cups will contain Orange Crush.

	Unless he is very good, there will be copies of the OS JCL
	manual and the Principles of Operation open to some
	particularly interesting pages.

	Taped to the wall is a line-printer Snoopy calendar for the
	year 1969.

	Strewn about the floor are several wrappers for peanut butter
	filled cheese bars - the type that are made pre-stale at the
	bakery so they can't get any worse while waiting in the
	vending machine.

	Hiding in the top left-hand drawer of the desk is a stash of
	double-stuff Oreos for special occasions.

	Underneath the Oreos is a flowcharting template, left there by
	the previous occupant of the office.  (Real Programmers write
	programs, not documentation.  Leave that to the maintenance
	people.)

	The Real Programmer is capable of working 30, 40, even 50
	hours at a stretch, under intense pressure.  In fact, he
	prefers it that way.  Bad response time doesn't bother the
	Real Programmer - it gives him a chance to catch a little
	sleep between compiles.  If there is not enough schedule
	pressure on the Real Programmer, he tends to make things more
	challenging by working on some small but interesting part of
	the problem for the first nine weeks, then finishing the rest
	in the last week, in two or three 50-hour marathons.  This not
	only impresses the hell out of his manager, who was despairing
	of ever getting the project done on time, but creates a
	convenient excuse for not doing the documentation.  In
	general:

	No Real Programmer works 9 to 5 (unless it's the ones at
	night).

	Real Programmers don't wear neckties.

	Real Programmers don't wear high-heeled shoes.

	Real Programmers arrive at work in time for lunch [9].

	A Real Programmer might or might not know his wife's name. He
	does, however, know the entire {ASCII} (or EBCDIC) code table.

	Real Programmers don't know how to cook.  Grocery stores
	aren't open at three in the morning.  Real Programmers survive
	on Twinkies and coffee.

	THE FUTURE

	What of the future?  It is a matter of some concern to Real
	Programmers that the latest generation of computer programmers
	are not being brought up with the same outlook on life as
	their elders.  Many of them have never seen a computer with a
	front panel.  Hardly anyone graduating from school these days
	can do hex arithmetic without a calculator.  College graduates
	these days are soft - protected from the realities of
	programming by source level debuggers, text editors that count
	parentheses, and "user friendly" operating systems.  Worst of
	all, some of these alleged "computer scientists" manage to get
	degrees without ever learning Fortran!  Are we destined to
	become an industry of Unix hackers and Pascal programmers?

	From my experience, I can only report that the future is
	bright for Real Programmers everywhere.  Neither OS 370 nor
	Fortran show any signs of dying out, despite all the efforts
	of Pascal programmers the world over.  Even more subtle
	tricks, like adding structured coding constructs to Fortran
	have failed.  Oh sure, some computer vendors have come out
	with Fortran 77 compilers, but every one of them has a way of
	converting itself back into a Fortran 66 compiler at the drop
	of an option card - to compile DO loops like God meant them to
	be.

	Even Unix might not be as bad on Real Programmers as it once
	was.  The latest release of Unix has the potential of an
	operating system worthy of any Real Programmer - two different
	and subtly incompatible user interfaces, an arcane and
	complicated teletype driver, virtual memory.  If you ignore
	the fact that it's "structured", even 'C' programming can be
	appreciated by the Real Programmer: after all, there's no type
	checking, variable names are seven (ten?  eight?)  characters
	long, and the added bonus of the Pointer data type is thrown
	in - like having the best parts of Fortran and assembly
	language in one place.  (Not to mention some of the more
	creative uses for #define.)

	No, the future isn't all that bad.  Why, in the past few
	years, the popular press has even commented on the bright new
	crop of {computer nerds} and hackers ([7] and [8]) leaving
	places like Stanford and M.I.T. for the Real World.  From all
	evidence, the spirit of Real Programming lives on in these
	young men and women.  As long as there are ill-defined goals,
	bizarre bugs, and unrealistic schedules, there will be Real
	Programmers willing to jump in and Solve The Problem, saving
	the documentation for later.  Long live Fortran!

	ACKNOWLEGEMENT

	I would like to thank Jan E., Dave S., Rich G., Rich E., for
	their help in characterizing the Real Programmer, Heather
	B. for the illustration, Kathy E. for putting up with it, and
	atd!avsdS:mark for the initial inspiration.

	REFERENCES

	[1] Feirstein, B., "Real Men don't Eat Quiche", New York,
	Pocket Books, 1982.

	[2] Wirth, N., "Algorithms + Data Structures Programs",
	Prentice Hall, 1976.

	[3] Ilson, R., "Recent Research in Text Processing", IEEE
	Trans. Prof. Commun., Vol.  PC-23, No. 4, Dec. 4, 1980.

	[4] Finseth, C., "Theory and Practice of Text Editors - or - a
	Cookbook for an EMACS", B.S. Thesis, MIT/LCS/TM-165,
	Massachusetts Institute of Technology, May 1980.

	[5] Weinberg, G., "The Psychology of Computer Programming",
	New York, Van Nostrand Reinhold, 1971, p.  110.

	[6] Dijkstra, E., "On the GREEN language submitted to the
	DoD", Sigplan notices, Vol. 3 No.  10, Oct 1978.

	[7] Rose, Frank, "Joy of Hacking", Science 82, Vol. 3 No.  9,
	Nov 82, pp.  58-66.

	[8] "The Hacker Papers", Psychology Today, August 1980.

	[9] sdcarl!lin, "Real Programmers", UUCP-net, Thu Oct 21
	16:55:16 1982.

	Ed Post, "Real Programmers Don't Use Pascal", DATAMATION, July
	1983, pp. 263-265 (Readers' Forum).

	(1997-08-29)

Real Simple Syndication

	<spelling> Illiterate form of {Really Simple Syndication}.

	(2013-08-15)

Real Soon Now

	<jargon, humour> (RSN) A phrase used ironically when you believe
	an event will take a long or unknown time to occur.  The term
	originated in SF's fanzine community, popularised by Jerry
	Pournelle's column in {BYTE}.

	The phrase can be used, for example, when a manager asks how long
	it will take you to {debug} some {software} and you have no idea.
	"I'll have it working Real Soon Now."

	[{Jargon File}]

	(2013-08-22)

real-time

	1. Describes an application which requires a program to
	respond to stimuli within some small upper limit of response
	time (typically milli- or microseconds).  Process control at a
	chemical plant is the classic example.  Such applications
	often require special operating systems (because everything
	else must take a back seat to response time) and speed-tuned
	hardware.

	2. In jargon, refers to doing something while people are
	watching or waiting.  "I asked her how to find the calling
	procedure's program counter on the stack and she came up with
	an algorithm in real time."

	Used to describe a system that must guarantee a response to an
	external event within a given time.

	(1997-11-23)

Real-Time Common Design Language

	<language> (RT-CDL) A {real-time} language for the design of
	reliable {reactive systems}.

	["RT-CDL: A Real-Time Description Language and Its Semantics",
	L.Y. Lin et al, 11th World Computer Congress IFIP '89 pp.19-26
	Sep 1989].

	(2003-06-07)

Realtime Disk Operating System

	<operating system> A {Data General} {operating system}
	developed in the 1970s or 1980s.  When used in conjuction with
	a {BASIC} (e.g. {Business Basic}) it could support 16
	concurrent users at the {record locking} level and two
	printers all on 128K memory.

	Reputedly {IBM} wanted to license this for the first {IBM PC}
	but DG turned them down so they went to {Microsoft} instead.
	How different the world could have been.

	[Before or after IBM wanted {CP/M}?]

	(1997-11-23)

Real-Time Euclid

	Real-time language, restriction to time-bounded constructs.
	["Real-Time Euclid: A Language for Reliable Real-Time
	Systems", E. Kligerman et al, IEEE Trans Software Eng
	SE-12(9):941-1986-09-949].

Real-Time Mentat

	An extension of C++.  "Real-Time Mentat: A Data-Driven
	Object-Oriented System", A.S. Grimshaw et al, Proc IEEE
	Globecom, Nov 1989 pp.232-241.

Real-Time Object-Oriented Modeling

	<programming> (ROOM Methodology)

	{(http://objectime.on.ca/ROOM.HTML)}.

	[Summary?]

	(1997-02-17)

Real-Time Operating System

	<operating system> (RTOS) Any {operating system} where
	interrupts are guaranteed to be handled within a certain
	specified maximum time, thereby making it suitable for control
	of hardware in {embedded systems} and other time-critical
	applications.  RTOS is not a specific product but a class of
	operating systems.

	[Other criteria?]

	(1998-02-27)

Real-Time Operating System Nucleus

	{The Real-Time Operating System Nucleus}

Real-Time Pascal

	<language> A later name for {Pascal-80} by {RC International},
	Denmark.

	(1995-05-09)

Real Time Streaming Protocol

	<multimedia, networking, protocol> (RTSP) An {application
	layer} {protocol} for controlling delivery of a {stream} of
	{real-time} {multimedia} content.  RTSP allows users to start
	playing from a certain position.  It does not actually deliver
	the data, but works alongside existing delivery channels such
	as {UDP}, {TCP}, or IP {multicast}.

	RTSP was developed by {RealNetworks}, {Netscape
	Communications}, and {Columbia University}, and is described
	in {RFC 2326}, April 1998.  RTSP is an {IETF} proposed
	{standard}.

	{FAQ
	(http://real.com/devzone/library/fireprot/rtsp/faq.html)}.

	(1999-08-26)

real-time structured analysis

	<programming> (RTSA) Any version of {structured analysis}
	capable of modelling {real-time} aspects of software.

	(1995-04-06)

Real-Time Transport Protocol

	<protocol> (RTP) An {Internet} {protocol} for transmitting
	{real-time} data such as {audio} and {video}.  RTP itself does
	not guarantee real-time delivery of data, but it does provide
	mechanisms for the sending and receiving applications to
	support {streaming} data.  Typically, RTP runs on top of the
	{UDP} protocol, although the specification is general enough
	to support other {transport protocols}.

	RTP has received wide industry support.  {Netscape} intends to
	base its {LiveMedia} technology on RTP, and {Microsoft} claims
	that its {NetMeeting} product supports RTP.

	(2003-07-06)

real user

	1. A commercial user.  One who is paying *real* money for his
	computer usage.

	2. A non-hacker.  Someone using the system for an explicit
	purpose (a research project, a course, etc.)  other than pure
	exploration.  See {user}.  Hackers who are also students may
	also be real users.  "I need this fixed so I can do a problem
	set.  I'm not complaining out of randomness, but as a real
	user."  See also {luser}.

	[{Jargon File}]

Real Video

	<video, compression> A {lossy} video compression format from
	{Real Media}.

	(2001-12-13)

Real World

	1. Those institutions at which "programming" may be used in
	the same sentence as "Fortran", "{COBOL}", "RPG", "{IBM}",
	"DBASE", etc.  Places where programs do such commercially
	necessary but intellectually uninspiring things as generating
	payroll checks and invoices.

	2. The location of non-programmers and activities not related
	to programming.

	3. A bizarre dimension in which the standard dress is shirt
	and tie and in which a person's working hours are defined as 9
	to 5 (see {code grinder}).

	4. Anywhere outside a university.  "Poor fellow, he's left MIT
	and gone into the Real World."  Used pejoratively by those not
	in residence there.  In conversation, talking of someone who
	has entered the Real World is not unlike speaking of a
	deceased person.  It is also noteworthy that on the campus of
	Cambridge University in England, there is a gaily-painted
	lamp-post which bears the label "REALITY CHECKPOINT".  It
	marks the boundary between university and the Real World;
	check your notions of reality before passing.  This joke is
	funnier because the Cambridge "campus" is actually coextensive
	with the centre of Cambridge.

	See also {fear and loathing}, {mundane}, {uninteresting}.

reaper

	A {prowler} that {GFRs} files.  A file removed in this way is
	said to have been "reaped".

	[{Jargon File}]

reassembly

	{segmentation}

reboot

	<operating system> (From {boot}) A {boot} with the implication
	that the computer has not been down for long, or that the
	{boot} is a {bounce} intended to clear some state of
	{wedgitude}.

	See {warm boot}.

	(1995-11-27)

REC

	{CONVERT}

recent changes

	{Recent changes to FOLDOC (/new.html)}.

recipe

	{suspension}

recipient

	<communications> One who receives; receiver.  E.g. "No
	recipient of the {e-mail} message will know about the other
	{addressees} who were listed in the {BCC} header."

	(2000-03-22)

Recital

	{dBASE}-like language and {DBMS} from Recital Corporation.
	Versions include {Vax} {VMS}.

RECOL

	REtrieval COmmand Language.  CACM 6(3):117-122 (Mar 1963).

Recommended Standard

	<standard> (RS) A series of {EIA} {standards} including
	{EIA-232}.

	(1995-03-28)

record

	<data, database, programming> An {ordered set} of {fields},
	usually stored contiguously.  The term is used with similar
	meaning in several different contexts.  In a file, a "record"
	probably has some fixed length, in contrast to a "line" which
	may have any length and is terminated by some {End Of Line}
	sequence).  A {database} record is also called a "row".  In a
	{spreadsheet} it is always called a "row".  Some programming
	languages use the term to mean a type composed of fields of
	several other types ({C} calls this a "{struct}").

	In all these cases, a record represents an entity with certain
	field values.

	Fields may be of a fixed width ({bits} or {characters}) or
	they may be separated by a {delimiter} character, often
	{comma} ({CSV}) or {HT} ({TSV}).

	In a database the list of values of a given field from all
	records is called a column.

	(2002-03-22)

Record Management Services

	<operating system> (RMS) Procedures in the {VMS} {operating
	system} that {programs} call to process {files} and {records}
	within files.  RMS allows programs to issue GET and PUT
	requests at the record level (record I/O) as well as read and
	write {blocks} (block I/O).  VMS RMS is an integral part of
	the system software; its procedures run in {executive mode}.

	(2003-11-11)

records

	{record}

Record Separator

	<character> (RS) {ASCII} character 30.

rectangle slinger

	{polygon pusher}

recurrence relation

	<mathematics> An {equation} that defines each element of a
	{sequence} in terms of one or more earlier elements.  E.g. The
	{Fibonacci sequence},

	 X[1] = 1
	 X[2] = 1
	 X[n] = X[n-1] + X[n-2]

	Some recurrence relations can be converted to "closed form"
	where X[n] is defined purely in terms of n, without reference
	to earlier elements.

	(2008-01-14)

recurse

	{recursion}

recursion

	<mathematics, programming> When a {function} (or {procedure})
	calls itself.  Such a function is called "recursive".  If the
	call is via one or more other functions then this group of
	functions are called "mutually recursive".

	If a function will always call itself, however it is called,
	then it will never terminate.  Usually however, it first
	performs some test on its arguments to check for a "base case"
	- a condition under which it can return a value without
	calling itself.

	The {canonical} example of a recursive function is
	{factorial}:

		factorial 0 = 1
		factorial n = n * factorial (n-1)

	{Functional programming languages} rely heavily on recursion,
	using it where a {procedural language} would use {iteration}.

	See also {recursion}, {recursive definition}, {tail recursion}.

	[{Jargon File}]

	(1996-05-11)

recursion theory

	<theory> The study of problems that, in principle, cannot be
	solved by either computers or humans.

	[Proper definition?]

	(1999-03-01)

recursive

	{recursion}

recursive acronym

	<convention> A hackish (and especially {MIT}) tradition is to
	choose acronyms and abbreviations that refer humorously to
	themselves or to other acronyms or abbreviations.  The classic
	examples were two MIT editors called {EINE} ("EINE Is Not
	{Emacs}") and {ZWEI} ("ZWEI Was EINE Initially").  More
	recently, there is a {Scheme} compiler called {LIAR} (Liar
	Imitates Apply Recursively), and {GNU} stands for "GNU's Not
	Unix!" - and a company with the name {CYGNUS}, which expands
	to "Cygnus, Your GNU Support".

	See also {mung}.

	[{Jargon File}]

	(1995-04-28)

recursive definition

	See {recursive definition}.

recursive descent parser

	<grammar> A "top-down" {parser} built from a set of
	{mutually-recursive} procedures or a non-recursive equivalent
	where each such procedure usually implements one of the
	{productions} of the {grammar}.  Thus the structure of the
	resulting program closely mirrors that of the grammar it
	recognises.

	["Recursive Programming Techniques", W.H. Burge, 1975, ISBN
	0-201-14450-6].

	(1995-04-28)

Recursive Functional Algorithmic Language

	<language> (REFAL) A language developed by V.F. Turchin (later
	at {CUNY}?) in Moscow in about 1972.

	See also {supercompilation}.

	[V.F. Turchin, "An algorithm of generalisation in the
	supercompiler", Workshop on partial evaluation and mixed
	computations, Oct 1987, Denmark, Eds. D. Bjorner, A.P. Ershov,
	N.D. Jones].

	[V. Turchin, "Supercompiler System Based on the Language
	Refal", V. Turchin, SIGPLAN Notices 14(2):46-54 (Feb 1979)].

	(1998-06-29)

Recursive Macro Actuated Generator

	<tool> (RMAG) Robert A. Magnuson, NIH ca 1970.

	A stand-alone macroprocessor for IBM 360/370 under VS or
	OS. Many built-in features and a library of several hundred
	macros.  Several large systems were written in RMAG to
	generate source code for languages such as IBM JCL, IBM
	assembly language, COBOL.

	There was also a system (SLANG: Structured LANGuage compiler)
	which would generate 370 assembly language from a
	pseudo-structured-programming language, based on Michael
	Kessler's structure programming macros developed at IBM.

	["Project RMAG--RMAG22 User's Guide", R.A. Magnuson,
	NIH-DCRT-DMB-SSS-UG103, NIH, DHEW, Bethesda, MD 20205 (1977)].

	(1995-11-23)

recursive type

	A data type which contains itself.  The commonest example is
	the list type, in {Haskell}:

		data List a = Nil | Cons a (List a)

	which says a list of a's is either an empty list or a {cons
	cell} containing an 'a' (the "head" of the list) and another
	list (the "tail").

	Recursion is not allowed in {Miranda} or Haskell {synonym
	types}, so the following {Haskell} types are illegal:

		type Bad = (Int, Bad)
		type Evil = Bool -> Evil

	whereas the seeminly equivalent {algebraic data types} are
	acceptable:

		data Good = Pair Int Good
		data Fine = Fun (Bool->Fine)

Red

	(Or "REDL") A language proposed by {Intermetrics} to meet the
	{Ironman} requirements which led to {Ada}.

	["On the RED Language Submitted to the DoD", E.W. Dijkstra,
	SIGPLAN Notices 13(10):27 (Oct 1978)].

	["RED Language Reference Manual", J. Nestor and M. van Deusen,
	Intermetrics 1979].

	(1995-01-19)

Red Book

	1.  <publication> Informal name for one of the four standard
	references on {PostScript}.  The other three official guides
	are known as the {Blue Book}, the {Green Book}, and the {White
	Book}.

	["PostScript Language Reference Manual", Adobe Systems,
	Addison-Wesley, 1985 (ISBN 0-201-10174-2); second edition
	1990 (ISBN 0-201-18127-4)].

	2. <publication> Informal name for one of the three standard
	references on Smalltalk.  This book also has blue and green
	siblings.

	["Smalltalk-80: The Interactive Programming Environment",
	Adele Goldberg, Addison-Wesley, 1984; (ISBN 0-201-11372-4)].

	3.  <publication> Any of the 1984 standards issued by the
	{ITU-T} eighth plenary assembly.  These include, among other
	things, the {X.400} {electronic mail} specification, the Group
	1 through 4 fax standards, {ISDN}, the R2 signalling system
	(Q.400 series recommendations), data communication via the
	{PSTN} (the V series recommendations) and tariffs and metering
	principles (the D series).

	4.  <publication> The new version of the {Green Book} - IEEE
	1003.1-1990, also known as ISO 9945-1 - is (because of the
	colour and the fact that it is printed on A4 paper) known in
	the USA. as "the Ugly Red Book That Won't Fit On The Shelf"
	and in Europe as "the Ugly Red Book That's A Sensible Size".

	5.  <publication> The NSA "Trusted Network Interpretation"
	companion to the {Orange Book}.

	See also {book titles}.

	[{Jargon File}]

Red Brick Intelligent SQL

	<database> (RISQL) A vendor-specific extension to {SQL}
	designed specifically for business managers.  It augments SQL
	with a variety of operations appropriate to data analysis and
	{decision support} applications such as ranking, moving
	averages, comparisons, market share, this year vs. last year,
	etc.  It was developed to simplify the creation of complex
	business queries.

	{Home
	(http://redbrick.com/products/white/papers/risql/risql.html)}.

	(1998-10-15)

Redcode

	<language> The {ICWS} standard language for {Core War} "battle
	programs".

	[Spec?]

	(1998-10-30)

redex

	Reducible Expression.  An expression matching the left hand
	side of a {reduction rule} or definition.

Red Hat

	<operating system> A distribution of {Linux}.

	{(http://redhat.com/)}.

	(1996-12-21)

RediLisp

	R.M. Keller, U Utah.  Dialect of Lisp used on the Rediflow
	machine, a derivative of FEL.

redirection

	1. <operating system> {input/output redirection}.

	2. <World-Wide Web> {URL redirection}.

	(1997-07-15)

redirector

	{network redirector}

RedNet Ltd.

	<company> A systems integration company who also provide
	"onLine", an {Internet} service aimed at both hobbyists and
	corporate end-users.  The service offers {dial-in} with {slip}
	or {PPP}, {POP3} {electronic mail}.

	{(http://rednet.co.uk)}.

	E-mail: <info@rednet.co.uk> (with INFO in the body).

	{Snail mail}: RedNet Ltd., 6 Cliveden Office Village, Lancaser
	Road, High Wycombe, Bucks, HP12 3YZ, UK.  Telephone: +44
	(1494) 513 333.  Fax: +44 (494) 443 374.

	(1994-11-08)

redocumentation

	The creation or revision of a semantically equivalent
	representation within the same relative abstraction level.
	The resulting forms of representation are usually considered
	alternate views intended for a human audience.

REDUCE

	<language, mathematics> A {symbolic mathematics} language with
	{ALGOL}-like {syntax}, written in {Lisp} by Anthony Hearn in
	1963.

	Reduce 2 is a version based on {Portable Standard LISP}.

	{(http://rrz.uni-koeln.de/REDUCE/)}.

	E-mail: <reduce@rand.org>.

	Server: reduce-netlib@rand.org.

	["REDUCE, Software for Algebraic Computation", G. Rayna,
	Springer 1987].

	(1994-10-31)

Reduced Instruction Set Computer

	<processor> (RISC) A {processor} whose design is based on the
	rapid execution of a sequence of simple instructions rather
	than on the provision of a large variety of complex
	instructions (as in a {Complex Instruction Set Computer}).

	Features which are generally found in RISC designs are uniform
	instruction encoding (e.g. the {op-code} is always in the same
	bit positions in each instruction which is always one word
	long), which allows faster decoding; a homogenous {register
	set}, allowing any register to be used in any context and
	simplifying {compiler} design; and simple {addressing modes}
	with more complex modes replaced by sequences of simple
	arithmetic instructions.

	Examples of (more or less) RISC processors are the {Berkeley
	RISC}, {HP-PA}, {Clipper}, {i960}, {AMD 29000}, {MIPS R2000}
	and {DEC Alpha}.  {IBM}'s first RISC computer was the {RT/PC}
	({IBM 801}), they now produce the RISC-based {RISC
	System/6000} and {SP/2} lines.

	Despite {Apple Computer}'s bogus claims for their
	{PowerPC}-based {Macintosh}es, the first RISC processor used
	in a {personal computer} was the {Advanced RISC Machine} (ARM)
	used in the {Acorn} {Archimedes}.

	(1997-06-03)

reduction

	(Or "contraction") The process of transforming an expression
	according to certain reduction rules.  The most important
	forms are {beta reduction} (application of a {lambda
	abstraction} to one or more argument expressions) and {delta
	reduction} (application of a mathematical function to the
	required number of arguments).

	An {evaluation strategy} (or {reduction strategy}), determines
	which part of an expression (which redex) to reduce first.
	There are many such strategies.

	See {graph reduction}, {string reduction}, {normal order
	reduction}, {applicative order reduction}, {parallel
	reduction}, {alpha conversion}, {beta conversion}, {delta
	conversion}, {eta conversion}.

	(1995-02-21)

reduction strategy

	<theory> An {algorithm} for deciding which {redex}(es) to
	reduce next.  Different strategies have different termination
	properties in the presence of {recursive} functions or values.

	See {string reduction}, {normal order reduction}, {applicative
	order reduction}, {parallel reduction}

	(1995-05-09)

redundancy

	1. <architecture, parallel> The provision of multiple
	interchangeable components to perform a single function in
	order to provide resilience (to cope with failures and
	errors).  Redundancy normally applies primarily to hardware.
	For example, a {cluster} may contain two or three computers
	doing the same job.  They could all be active all the time
	thus giving extra performance through {parallel processing}
	and {load balancing}; one could be active and the others
	simply monitoring its activity so as to be ready to take over
	if it failed ("warm standby"); the "spares" could be kept
	turned off and only switched on when needed ("cold standby").
	Another common form of hardware redundancy is {disk
	mirroring}.

	2. <data, communications, storage> {data redundancy}.

	(1995-05-09)

Redundant Array of Independent Disks

	<storage, architecture> (RAID) A standard naming convention
	for various ways of using multiple disk drives to provide
	redundancy and distributed I/O.

	The original ("..Inexpensive..") term referred to the 3.5 and
	5.25 inch disks used for the first RAID system but no longer
	applies.  As {solid state drives} are becoming a practical
	repacement for magnetic disks, "RAID" is sometimes expanded as
	"Redundant Array of Independent Drives".

	The following standard RAID specifications exist:

	 RAID 0	Non-redundant striped array
	 RAID 1	Mirrored arrays
	 RAID 2	Parallel array with ECC
	 RAID 3	Parallel array with parity
	 RAID 4	Striped array with parity
	 RAID 5	Striped array with rotating parity

	RAID originated in a project at the computer science
	department of the {University of California at Berkeley},
	under the direction of Professor Katz, in conjunction with
	Professor {John Ousterhout} and Professor {David Patterson}.
	A prototype disk array file server with a capacity of 40
	GBytes and a sustained bandwidth of 80 MBytes/second was
	interfaced to a 1 Gb/s {local area network}.  It was planned
	to extend the storage array to include automated {optical
	disks} and {magnetic tapes}.

	{(ftp://wuarchive.wustl.edu/doc/techreports/berkeley.edu/raid/raidPapers)}.
	{(http://HTTP.CS.Berkeley.EDU/projects/parallel/research_summaries/14-Computer-Architecture/)}.

	["A Case for Redundant Arrays of Inexpensive Disks (RAID)",
	"D. A. Patterson and G. Gibson and R. H. Katz", Proc ACM
	SIGMOD Conf, Chicago, IL, Jun 1988].

	["Introduction to Redundant Arrays of Inexpensive Disks
	(RAID)", "D. A. Patterson and P. Chen and G. Gibson and
	R. H. Katz", IEEE COMPCON 89, San Francisco, Feb-Mar 1989].

	(2012-08-26)

Redundant Array of Independent Drives

	{Redundant Arrays of Independent Disks}

Redundant Array of Inexpensive Disks

	{Redundant Arrays of Independent Disks}

Redundant Array of Inexpensive Servers

	<architecture> (RAIS) The use of multiple {servers} to provide
	the same service in such a way that service will still be
	available if one or more of the servers fails.  The term may
	or may not imply some kind of {load balancing} between the
	servers.  See {cluster}.

	The term "RAIS" follows {RAID}, which describes schemes for
	resilient disk storage.

	(2007-02-28)

Redundant Arrays of Inexpensive Disks

	{Redundant Arrays of Independent Disks}

red wire

	<jargon, hardware> (IBM) Patch wires installed by programmers
	who have no business mucking with the hardware.  It is said
	that the only thing more dangerous than a hardware guy with a
	code patch is a {softy} with a soldering iron.

	Compare {blue wire}, {yellow wire}, {purple wire}.

	[{Jargon File}]

	(1994-12-23)

red zone

	<networking> An environment located between internal and
	external {firewalls} where software and hardware are deployed
	to enable access to {extranet} applications.

	Compare {De-Militarised Zone}.

	(1997-11-05)

re-engineering

	The examination and modification of a system to reconstitute
	it in a new form and the subsequent implementation of the new
	form.

	{(http://erg.abdn.ac.uk/users/brant/sre)}.

	(1994-12-23)

re-entrant

	<programming> Used to describe code which can have multiple
	simultaneous, interleaved, or nested invocations which will
	not interfere with each other.  This is important for
	{parallel processing}, {recursive} functions or subroutines,
	and {interrupt handling}.

	It is usually easy to arrange for multiple invocations
	(e.g. calls to a subroutine) to share one copy of the code and
	any read-only data but, for the code to be re-entrant, each
	invocation must use its own copy of any modifiable data (or
	synchronised access to shared data).  This is most often
	achieved using a {stack} and allocating local variables in a
	new {stack frame} for each invocation.  Alternatively, the
	caller may pass in a pointer to a block of memory which that
	invocation can use (usually for outputting the result) or the
	code may allocate some memory on a {heap}, especially if the
	data must survive after the routine returns.

	Re-entrant code is often found in system software, such as
	{operating systems} and {teleprocessing monitors}.  It is also
	a crucial component of {multithreaded} programs where the term
	"thread-safe" is often used instead of "re-entrant".

	(1996-12-21)

refactoring

	<object-oriented, programming> Improving a computer {program}
	by reorganising its internal structure without altering its
	external behaviour.

	When software developers add new features to a program, the
	code degrades because the original program was not designed
	with the extra features in mind.

	This problem could be solved by either rewriting the existing
	code or working around the problems which arise when adding
	the new features.  Redesigning a program is extra work, but
	not doing so would create a program which is more complicated
	than it needs to be.  Refactoring is a collection of
	techniques which have been designed to provide an alternative
	to the two situations mentioned above.

	The techniques enable programmers to restructure code so
	that the design of a program is clearer.  It also allows
	programmers to extract {reusable components}, streamline a
	program, and make additions to the program easier to
	implement.

	Refactoring is usually done by renaming {methods}, moving
	{fields} from one {class} to another, and moving code into a
	separate method.

	Although it is done using small and simple steps,
	refactoring a program will vastly improve its design and
	structure, making it easier to maintain and leading to
	more robust code.

	{"Refactoring, Reuse & Reality" by Bill Opdyke
	(http://st-www.cs.uiuc.edu/users/opdyke/wfo.990201.refac.html)}.

	{"Refactoring, a first example" by Martin Fowler
	(http://aw.com/cseng/titles/0-201-89542-0/vidrefact/vidrefact.html)}.

	(2001-05-02)

REFAL

	{Recursive Functional Algorithmic Language}

REF-ARF

	["REF-ARF: A System for Solving Problems Stated as
	Procedures", R.E. Fikes, Artif Intell J 1(1), Spring 1970].

	(1998-06-29)

reference

	{pointer}

reference counting

	<programming> A {garbage collection} technique where each
	{memory cell} contains a count of the number of other cells
	which point to it.  If this count reaches zero the cell is
	freed and its {pointers} to other cells are followed to
	decrement their counts, and so on {recursively}.

	This technique cannot cope with {circular data structures}.
	Cells in such structures refer (indirectly) to themselves and
	so will never have a zero reference count.  This means they
	would never be reclaimed, even when there are no references
	from outside the structure.

	(1995-02-22)

referential integrity

	<database> A collection of properties which should be
	possessed by data in a {relational database}.

	For example, in a database of family members, if we enter A as
	a spouse of B, we should also enter B as a spouse of A.
	Similarly, if we remove one end of the relationship we should
	also remove the other.

	(1998-02-18)

referentially transparent

	{referential transparency}

referential transparency

	<programming> An expression E is referentially transparent if
	any subexpression and its value (the result of evaluating it)
	can be interchanged without changing the value of E.  This is
	not the case if the value of an expression depends on global
	state which can change value.  The most common example of
	changing global state is assignment to a global variable.  For
	example, if y is a global variable in:

		f(x)
		{ return x+y; }

		g(z)
		{
		  a = f(1);
		  y = y + z;
		  return a + f(1);
		}

	function g has the "{side-effect}" that it alters the value of
	y.  Since f's result depends on y, the two calls to f(1) will
	return different results even though the argument is the same.
	Thus f is not referentially transparent.  Changing the order
	of evaluation of the statements in g will change its result.

	{Pure functional languages} achieve referential transparency
	by forbidding {assignment} to global variables.  Each
	expression is a constant or a function application whose
	evaluation has no side-effect, it only returns a value and
	that value depends only on the definition of the function and
	the values of its arguments.

	We could make f above referentially transparent by passing in
	y as an argument:

		f(x, y) = x+y

	Similarly, g would need to take y as an argument and return
	its new value as part of the result:

		g(z, y)
		{
		  a = f(1, y);
		  y' = y+z;
		  return (a + f(1, y'), y');
		}

	Referentially transparent programs are more amenable to
	{formal methods} and easier to reason about because the
	meaning of an expression depends only on the meaning of its
	subexpressions and not on the order of evaluation or
	side-effects of other expressions.

	We can stretch the concept of referential transparency to
	include input and output if we consider the whole program to
	be a function from its input to its output.  The program as a
	whole is referentially transparent because it will always
	produce the same output when given the same input.  This is
	stretching the concept because the program's input may include
	what the user types, the content of certain files or even the
	time of day.  If we do not consider global state like the
	contents of files as input, then writing to a file and reading
	what was written behaves just like assignment to a global
	variable.  However, if we must consider the state of the
	universe as an input rather than global state then any
	{deterministic} system would be referentially transparent!

	See also {extensional equality}, {observational equivalence}.

	(1997-03-25)

referer

	<World-Wide Web> A misspelling of "referrer" which somehow
	made it into the {HTTP} standard.  A given {web page}'s
	referer (sic) is the {URL} of whatever web page contains the
	link that the user followed to the current page.  Most
	browsers pass this information as part of a request.

	(1998-10-19)

referrer

	{referer}

REFINE

	1. "Research on Knowledge-Based Software Environments at
	Kestrel Institute", D.R. Smith et al, IEEE Trans Soft Eng,
	SE-11(11) (1985).  E-mail: <maria@kestrel.edu>.

	2. Cordell Green et al, Stanford U.  Uses logic to specify and
	evolve programs.  [same as 1?] Reasoning Systems, Inc.
	E-mail: <help@reasoning.com>.

Refined C

	(RC) An extension of C to directly specify data access rights
	so that flow analysis, and hence automatic parallelisation, is
	more effective.  Research implementations only.  "Refining A
	Conventional Language For Race-Free Specification Of Parallel
	Algorithms," H.G. Dietz et al, Proc 1984 Intl Conf Parallel
	Proc, pp.380-382.

Refined Fortran

	(RF) Similar to Refined C.  Research implementations only.
	"Refined Fortran: Another Sequential Language for Parallel
	Programming," H.G. Dietz et al, Proc 1986 Intl Conf Parallel
	Proc, pp.184-191.

reflexive

	<theory> A {relation} R is reflexive if, for all x, x R x.

	{Equivalence relations}, {pre-orders}, {partial orders} and
	{total orders} are all reflexive.

	(1999-01-28)

reflexive domain

	A domain satisfying a recursive domain equation.
	E.g. D = D -> D.

Reflexive transitive closure

	Two elements, x and y, are related by the reflexive transitive
	closure, R+, of a relation, R, if they are related by the
	transitive closure, R*, or they are the same element.

RefLisp

	<language> A small {Lisp} {interpreter} written in {C++} by
	Bill Birch of {Bull}, UK.  RefLisp has a built-in {web
	server}, {Wiki}, {LISP server pages}, {SQL Databases}, {XML
	parser}, {MD5} hashing, {regular expressions}, {reference
	counting} and {mark-sweep garbage collection}.

	RefLisp has {shallow-binding} and {dynamic scope} with
	optional support for {lexical scope}, {Common Lisp}
	compatibility and for {indefinite extent} {Scheme} programs.

	RefLisp is distributed under the {GPL}.

	Latest version: 5.0 Beta, as of 2005-01-19.

	{RefLisp Home (http://sourceforge.net/projects/reflisp/)}.

	(2005-02-08)

refresh

	1. <storage> {DRAM refresh}.

	2. <hardware> {screen refresh}.

	(1998-10-19)

refreshable braille display

	{braille display}

refreshable display

	{braille display}

refresh rate

	<hardware> (Or "vertical refresh rate", "vertical scan rate")
	The maximum number of {frames} that can be displayed on a
	{monitor} in a second, expressed in {Hertz}.

	The scan rate is controlled by the vertical sync signal
	generated by the {video controller}, ordering the monitor to
	position the {electron gun} at the upper left corner of the
	{raster}, ready to paint another frame.  It is limited by the
	monitor's maximum {horizontal scan rate} and the {resolution},
	since higher resolution means more {scan lines}.  Increasing
	the refresh rate decreases flickering, reducing eye strain,
	but few people notice any change above 60-72 Hz.

	(1999-08-01)

refuctoring

	<humour, programming> Taking a well-designed piece of {code} and,
	through a series of small, reversible changes, making it
	completely unmaintainable by anyone except yourself.  The term is
	a humourous play on the term {refactoring} and was coined by Jason
	Gorman in a pub in 2002.

	Refuctoring techniques include:

	Using Pig Latin as a naming convention.

	Stating The Bleeding Obvious - writing comments that paraphrase
	the code (e.g., "declare an integer called I with an initial value
	of zero").

	Module Gravity Well - adding all new code to the biggest module.

	Unique Modeling Language - inventing your own visual notation.

	Treasure Hunt - Writing code consisting mostly of references to
	other code and documents that reference other documents.

	Rainy Day Module -  writing spare code just in case somebody needs
	it later.

	{Waterfall 2006 presentation
	(http://www.waterfall2006.com/gorman.html)}.

	(2013-12-01)

refutable

	<programming> In {lazy functional languages}, a refutable pattern
	is one which may fail to match.  An expression being matched
	against a refutable pattern is first evaluated to {head normal
	form} (which may fail to terminate) and then the top-level
	constructor of the result is compared with that of the pattern.
	If they are the same then any arguments are matched against the
	pattern's arguments otherwise the match fails.

	An irrefutable pattern is one which always matches.  An attempt to
	evaluate any {variable} in the pattern forces the pattern to be
	matched as though it were refutable which may fail to match
	(resulting in an error) or fail to terminate.

	Patterns in {Haskell} are normally refutable but may be made
	irrefutable by prefixing them with a tilde (~).  For example,

		(\ (x,y) -> 1) undefined	==>	undefined
		(\ ~(x,y) -> 1) undefined	==>	1

	Patterns in {Miranda} are refutable, except for {tuples} which are
	irrefutable.  Thus

		g [x] = 2
		g undefined			==>	undefined

		f (x,y) = 1
		f undefined			==>	1

	Pattern bindings in local definitions are irrefutable in both
	languages:

		h = 1 where [x] = undefined	==>	1

	Irrefutable patterns can be used to simulate {unlifted products}
	because they effectively ignore the top-level constructor of the
	expression being matched and consider only its components.

	(2013-11-03)

regex

	The {GNU} {regular expression} matching library.  See also
	{Rx}.

regexp

	1. {regular expression}.

	2. Name of a well-known PD regexp-handling package in portable
	C, written by revered {Usenet}ter Henry Spencer
	<henry@zoo.toronto.edu>.

	[{Jargon File}]

Regina

	<standard> A widely-used {open source} {Rexx} {interpreter} by
	Anders Christensen <anders@pvv.unit.no>, ported to many
	{platforms} including {Unix}, {Windows 95}, {Windows NT},
	{OS/2}.  Regina is currently maintained by Mark Hessling.

	Regina conforms almost completely to Rexx Language Level 4.00,
	with some Rexx SAA API extensions.  It is distributed under
	the GNU {General Public License}.

	Latest version: 2.0+, as of 2001-03-30.

	{Home {http://lightlink.com/hessling/)}.

	{Usenet} newsgroup: {news:comp.lang.rexx}.

	(2001-03-30)

regional network

	{mid-level network}

register

	1. One of a small number of high-speed memory locations in a
	computer's {CPU}.  Registers differ from ordinary
	{random-access memory} in several respects:

	There are only a small number of registers (the "register
	set"), typically 32 in a modern processor though some,
	e.g. {SPARC}, have as many as 144.  A register may be directly
	addressed with a few bits.  In contrast, there are usually
	millions of words of main memory (RAM), requiring at least
	twenty bits to specify a memory location.  Main memory
	locations are often specified indirectly, using an {indirect
	addressing} mode where the actual memory address is held in a
	register.

	Registers are fast; typically, two registers can be read and a
	third written -- all in a single cycle.  Memory is slower; a
	single access can require several cycles.

	The limited size and high speed of the register set makes it
	one of the critical resources in most computer architectures.
	{Register allocation}, typically one phase of the {back-end},
	controls the use of registers by a compiled program.

	See also {accumulator}, {FUBAR}, {orthogonal}, {register
	dancing}, {register allocation}, {register spilling}.

	2. An addressable location in a {memory-mapped} peripheral
	device.  E.g. the transmit data register in a {UART}.

register allocation

	<compiler, algorithm> The phase of a {compiler} that
	determines which values will be placed in {registers}.
	Register allocation may be combined with {register
	assignment}.

	This problem can be shown to be isomorphic to {graph
	colouring} by relating values to nodes in the graph and
	registers to colours.  Values (nodes) which must be valid
	simultaneously are linked by edges and cannot be stored in the
	same register (coloured the same).

	See also {register dancing} and {register spilling}.

	[Preston Briggs, PhD thesis, Rice University, April 1992
	{"Register Allocation via Graph Coloring"
	(ftp://ftp.cs.rice.edu/public/preston/thesis.ps.gz)}].

	(2000-12-04)

register assignment

	<compiler, algorithm> The phase of a {compiler} that
	determines which {register} to use for each program value
	selected during {register allocation}.

	(2000-12-04)

register dancing

	Many older processor architectures suffer from a serious
	shortage of general-purpose registers.  This is especially a
	problem for compiler-writers, because their generated code
	needs places to store temporaries for things like intermediate
	values in expression evaluation.  Some designs with this
	problem, like the Intel 80x86, do have a handful of
	special-purpose registers that can be pressed into service,
	providing suitable care is taken to avoid unpleasant side
	effects on the state of the processor: while the
	special-purpose register is being used to hold an intermediate
	value, a delicate minuet is required in which the previous
	value of the register is saved and then restored just before
	the official function (and value) of the special-purpose
	register is again needed.

	[{Jargon File}]

registered port

	<networking> Any {TCP} or {UDP} {port} with a number in the
	range 1025 to 65535 (i.e. not a {well-known port}) that is
	registered with {IANA}.

register set

	All a processor's {registers}.  The size and arrangement of a
	processor's register set is one of the crucial factors in its
	performance.

register spilling

	<programming, compiler> (By analogy with spilling the contents
	of an overfull container) When a {compiler} is generating
	{machine code} and there are more {live variables} than the
	machine has {registers} and it has to transfer or "spill" some
	variables from registers to memory.

	(1997-06-24)

Register Transfer Language

	(RTL) 1. A kind of {hardware description language} (HDL) used
	in describing the {registers} of a computer or digital
	electronic system, and the way in which data is transferred
	between them.

	2.  An intermediate code for a machine with an infinite number
	of {registers}, used for machine-independent optimisation.
	RTL was developed by Chris Fraser <cwf@research.att.com> and
	J. Davidson <jwd@virginia.edu> at the {University of Arizona}
	in the early 1980s.  RTL is used by the {GNU} C compiler,
	{gcc} and by Davidson's {VPCC} (Very Portable C compiler).

	["Quick Compilers Using Peephole Optimisation", Davidson et
	al, Soft. Prac. & Exp. 19(1):79-97 (Jan 1989)].

	(1994-11-16)

registry

	{Windows Registry}

regression

	1. <mathematics> A mathematical method where an {empirical
	function} is derived from a set of experimental data.

	2. {regression testing}.

	(1995-03-14)

regression testing

	<programming> Part of the test phase of software development
	where, as new {modules} are integrated into the system and the
	added functionality is tested, previously tested functionality
	is re-tested to assure that no new module has corrupted the
	system.

	[Bennatan, E.M., "Software Project Management", 2nd edition,
	McGraw-Hill International, 1992].

	(1995-12-04)

REG-SYMBOLIC

	An early system on the {IBM 704}.

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

	(1994-12-02)

REGTRAL

	Mentioned in Attribute Grammars, LNCS 323, p.108.

	Relational Language.  Clark & Gregory.  First parallel logic
	language to use the concept of committed choice.  Forerunner
	of PARLOG.  "A Relational Language for Parallel Programming",
	K.L. Clark et al, Proc ACM Conf on Functional Prog Langs and
	Comp Arch, pp.171-178, ACM 1981.

regular expression

	1. <text, operating system> (regexp, RE) One of the {wild
	card} patterns used by {Perl} and other languages, following
	{Unix} utilities such as {grep}, {sed}, and {awk} and editors
	such as {vi} and {Emacs}.  Regular expressions use conventions
	similar to but more elaborate than those described under
	{glob}.  A regular expression is a sequence of characters with
	the following meanings (in Perl, other flavours vary):

	An ordinary character (not one of the special characters
	discussed below) matches that character.

	A backslash (\) followed by any special character matches the
	special character itself.  The special characters are:

	"." matches any character except {newline}; "RE*" (where the
	"*" is called the "{Kleene star}") matches zero or more
	occurrences of RE.  If there is any choice, the longest
	leftmost matching string is chosen.

	"^" at the beginning of an RE matches the start of a line and
	"$" at the end of an RE matches the end of a line.

	[CHARS] matches any one of the characters in CHARS.  If the
	first character of the string is a "^" it matches any
	character except the remaining characters in the string (and
	also usually excluding newline).  "-" may be used to indicate
	a range of consecutive {ASCII} characters.

	(RE) matches whatever RE matches and \N, where N is a digit,
	matches whatever was matched by the RE between the Nth "(" and
	its corresponding ")" earlier in the same RE.  Many flavours
	use \(RE\) instead of just (RE).

	The concatenation of REs is a RE that matches the
	concatenation of the strings matched by each RE.  RE1 | RE2
	matches whatever RE1 or RE2 matches.

	\< matches the beginning of a word and \> matches the end of a
	word.  Many flavours use "\b" instead as the special character
	for "word boundary".

	RE\{M\} matches M occurences of RE.  RE\{M,\} matches M or more
	occurences of RE.  RE\{M,N\} matches between M and N occurences.
	Other flavours use RE\\{M\\} etc.

	Perl provides several "quote-like" {operators} for writing
	REs, including the common // form and less common {??}.

	A comprehensive survey of regexp flavours is found in Friedl
	1997 (see below).

	[Jeffrey E.F. Friedl, "{Mastering Regular Expressions
	(http://enterprise.ic.gc.ca/~jfriedl/regex/index.html)},
	O'Reilly, 1997].

	2. Any description of a {pattern} composed from combinations
	of {symbols} and the three {operators}:

	Concatenation - pattern A concatenated with B matches a match
	for A followed by a match for B.

	Or - pattern A-or-B matches either a match for A or a match
	for B.

	Closure - zero or more matches for a pattern.

	The earliest form of regular expressions (and the term itself)
	were invented by mathematician {Stephen Cole Kleene} in the
	mid-1950s, as a notation to easily manipulate "regular sets",
	formal descriptions of the behaviour of {finite state
	machines}, in {regular algebra}.

	[S.C. Kleene, "Representation of events in nerve nets and
	finite automata", 1956, Automata Studies. Princeton].

	[J.H. Conway, "Regular algebra and finite machines", 1971, Eds
	Chapman & Hall].

	[Sedgewick, "Algorithms in C", page 294].

	(2004-02-01)

Regular Expression Converter

	{CONVERT}

regular graph

	<mathematics> A {graph} in which all {nodes} have the same
	{degree}.

	(1995-03-07)

rehi

	<chat> Hello again.

	(1995-02-28)

Reid, Brian

	{Brian Reid}

reify

	To regard (something abstract) as a material thing.

	(1995-03-07)

re-image

	<system administration> To re-install a computer's {operating
	system}, and possibly other software, by writing a {disk
	image} to the {hard disk}, replacing the entire contents.
	Re-imaging is quicker, easier and more reliable than going
	through a complete install but it relies on having a disk
	image available.

	"Sometimes if your {PC} has a {virus}, the only cure is to
	re-image it."

	(2007-06-26)

reincarnation, cycle of

	{cycle of reincarnation}

reinvent the wheel

	<jargon> To design or implement a tool equivalent to an
	existing one or part of one, with the implication that doing
	so is silly or a waste of time.  This is often a valid
	criticism.  On the other hand, automobiles don't use wooden
	rollers, and some kinds of wheel have to be reinvented many
	times before you get them right.  On the third hand, people
	reinventing the wheel do tend to come up with the moral
	equivalent of a trapezoid with an offset axle.

	[{Jargon File}]

	(1997-04-12)

relation

	1. <mathematics> A subset of the {product} of two sets, R : A
	x B.  If (a, b) is an element of R then we write a R b,
	meaning a is related to b by R.  A relation may be:
	{reflexive} (a R a), {symmetric} (a R b => b R a),
	{transitive} (a R b & b R c => a R c), {antisymmetric} (a R b
	& b R a => a = b) or {total} (a R b or b R a).

	See {equivalence relation}, {partial ordering}, {pre-order},
	{total ordering}.

	2. <database> A {table} in a {relational database}.

	(1995-02-28)

relational algebra

	<database, theory> A family of {algebra} with a {well-founded}
	{semantics} used for modelling the data stored in {relational
	databases}, and defining queries on it.  The main operations
	of the relational algebra are the {set} operations (such as
	{union}, {intersection}, and {cartesian product}), selection
	(keeping only some lines of a {table}) and the {projection}
	(keeping only some columns).

	The {relational data model} describes how the data is
	structured.

	{Codd's reduction algorithm} can convert from {relational
	calculus} to {relational algebra}.

	(1997-02-17)

relational calculus

	<database> An operational methodolgy, founded on {predicate
	calculus}, dealing with descripitive expressions that are
	equivalent to the operations of {relational algebra}.  {Codd's
	reduction algorithm} can convert from {relational calculus} to
	{relational algebra}.

	Two forms of the relational calculus exist: the {tuple
	calculus} and the {domain calculus}.

	["An Introduction To Database Systems" (6th ed), C. J. Date,
	Addison Wesley].

	(1998-10-05)

relational database

	<database> (RDBMS - relational database management system) A
	{database} based on the {relational model} developed by
	{E.F. Codd}.  A relational database allows the definition of
	data structures, storage and retrieval operations and
	{integrity constraints}.  In such a database the data and
	relations between them are organised in {tables}.  A table is
	a collection of rows or {records} and each row in a table
	contains the same {fields}.  Certain fields may be designated
	as {keys}, which means that searches for specific values of
	that field will use indexing to speed them up.

	Where fields in two different tables take values from the same
	set, a {join} operation can be performed to select related
	records in the two tables by matching values in those fields.
	Often, but not always, the fields will have the same name in
	both tables.  For example, an "orders" table might contain
	(customer_id, product_code) pairs and a "products" table might
	contain (product_code, price) pairs so to calculate a given
	customer's bill you would sum the prices of all products
	ordered by that customer by joining on the product-code fields
	of the two tables.  This can be extended to joining multiple
	tables on multiple fields.  Because these relationships are
	only specified at retreival time, relational databases are
	classed as {dynamic database management system}.

	The first commercial RDBMS was the {Multics Relational Data
	Store}, first sold in 1978.

	{INGRES}, {Oracle}, {Sybase, Inc.}, {Microsoft Access}, and
	{Microsoft SQL Server} are well-known database products and
	companies.  Others include {PostgreSQL}, {SQL/DS}, and {RDB}.

	["Managing Data Bases, Four Critical Factors" Michael
	M. Gorman, QED Information Sciences, Inc.].

	["An Introduction To Database Systems" (6th ed) C. J. Date,
	Addison Wesley (an excellent source of detailed info)].

	["An End-User's Guide to Data Base" James Martin, Prentice
	Hall (excellent place to begin learning about DBMS)].

	(2002-06-10)

relational database management system

	{relational database}

relational data model

	<database> (Or "relational model") A {data model} introduced
	by {E.F. Codd} in 1970, particularly well suited for business
	data management.  In this model, data are organised in
	{tables}.  The set of names of the columns is called the
	"schema" of the table.

	Here is an example table with the schema (account number,
	amount) and 3 lines.

	 account number     amount
	 --------------  ---------
	 12343243546456  +30000.00
	 23149875245824   +2345.33
	 18479827492874    -123.25

	The data can be manipulated using a {relational algebra}.
	{SQL} is a standard language for talking to a database built
	on the relational model (a "{relational database}").

	["A relational model for large shared data banks"
	Communications of ACM 13:6, pp 377-387].

	(1998-10-05)

relational DBMS

	{relational database}

relational language

	<language> Any kind of {programming language} that specifies
	output in terms of some property and some arguments.  For
	example, if Tom has two brothers, Dick and Harry, a relational
	language will respond to the query "Who is Tom's brother?"
	with either Dick or Harry.  Notice that unlike {functional
	languages}, relational languages do not require a unique
	output for each {predicate}/argument pair.  {Prolog} is the
	best known relational language.

	(2004-05-17)

relational model

	{relational data model}

RELATIVE

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

relatively prime

	<mathematics> Having no common divisors (greater than 1).

	Two numbers are said to be relativey prime if there is no
	number greater than unity that divides both of them evenly.

	For example, 10 and 33 are relativly prime.  15 and 33 are not
	relatively prime, since 3 is a {divisor} of both.

	(1997-03-11)

relative pathname

	<file system> A {path} relative to the {working directory}.
	Its first character can be anything but the {pathname
	separator}.

	(1996-11-21)

Relative Record Data Set

	<database> (RRDS) One of the access methods used by {IBM}'s
	{VSAM}.

	[What is it?]

	(1999-01-12)

RELCODE

	Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
	1959).

release

	<programming> (Or "released version", "baseline") A version of
	a piece of software which has been made public (as opposed to
	a version that is in development, or otherwise unreleased).

	A release is either a {major release}, a {revision}, or a
	{bugfix}.

	Pre-release versions may be called {alpha test}, or {beta
	test} versions.

	See {change management}.

	(1996-08-04)

released version

	{release}

REL English

	{Rapidly Extensible Language, English}

relevance

	<information science> A measure of how closely a given object
	(file, {web page}, database {record}, etc.) matches a user's
	search for information.

	The relevance {algorithms} used in most large web {search
	engines} today are based on fairly simple word-occurence
	measurement: if the word "daffodil" occurs on a given page,
	then that page is considered relevant to a {query} on the word
	"daffodil"; and its relevance is quantised as a factor of the
	number of times the word occurs in the page, on whether
	"daffodil" occurs in title of the page or in its META
	keywords, in the first {N} words of the page, in a heading,
	and so on; and similarly for words that a {stemmer} says are
	based on "daffodil".

	More elaborate (and resource-expensive) relevance algorithms
	may involve thesaurus (or {synonym ring}) lookup; e.g. it
	might rank a document about narcissuses (but which may not
	mention the word "daffodil" anywhere) as relevant to a query
	on "daffodil", since narcissuses and daffodils are basically
	the same thing.  Ditto for queries on "jail" and "gaol", etc.

	More elaborate forms of thesaurus lookup may involve
	multilingual thesauri (e.g. knowing that documents in Japanese
	which mention the Japanese word for "narcissus" are relevant
	to your search on "narcissus"), or may involve thesauri (often
	auto-generated) based not on equivalence of meaning, but on
	word-proximity, such that "bulb" or "bloom" may be in the
	thesaurus entry for "daffodil".

	{Word spamming} essentially attempts to falsely increase a web
	page's relevance to certain common searches.

	See also {subject index}.

	(1997-04-09)

reliability

	<system> An attribute of any system that consistently produces
	the same results, preferably meeting or exceeding its
	specifications.  The term may be qualified, e.g {software
	reliability}, {reliable communication}.

	Reliability is one component of {RAS}.

	(2000-08-13)

Reliability, Availability, Serviceability

	<system, design, hardware, software> (RAS) Three key
	attributes of a computing system design.  See {reliability},
	{availability}, and {serviceability}.

	The term "RAS" is fairly common in the computing industry
	(particularly computers and storage) as computing becomes more
	fundamental.  For example, a vehicle may depend on dozens of
	computers, and the consequences of the failure can be
	significant (e.g., an ambulance's engine won't start).

	(2000-08-13)

reliable communication

	<communications> Communication where messages are guaranteed
	to reach their destination complete and uncorrupted and in the
	order they were sent.  This reliability can be built on top of
	an unreliable {protocol} by adding sequencing information and
	some kind of {checksum} or {cyclic redundancy check} to each
	message or {packet}.  If the communication fails, the sender
	will be notified.  {Transmission Control Protocol} is a
	reliable protocol used on {Ethernet}.

	(2004-09-14)

Reliable Data Protocol

	<protocol> (RDP) A {protocol} designed to provide a reliable
	data transport service for {packet}-based applications such as
	remote loading and {debugging}.  RDP is intended to be simple
	to implement but still be efficient in environments where
	there may be long transmission delays and loss or
	non-sequential delivery of message segments.

	RDP is defined in {RFC 908}.

	(2004-09-14)

religion of CHI

	/ki:/ [Case Western Reserve University] Yet another hackish
	parody religion (see also {Church of the SubGenius},
	{Discordianism}).  In the mid-70s, the canonical "Introduction
	to Programming" courses at CWRU were taught in {ALGOL}, and
	student exercises were punched on cards and run on a Univac
	1108 system using a homebrew operating system named CHI.  The
	religion had no doctrines and but one ritual: whenever the
	worshipper noted that a digital clock read 11:08, he or she
	would recite the phrase "It is 11:08; ABS, ALPHABETIC, ARCSIN,
	ARCCOS, ARCTAN."  The last five words were the first five
	functions in the appropriate chapter of the ALGOL manual; note
	the special pronunciations /obz/ and /ark'sin/ rather than the
	more common /ahbz/ and /ark'si:n/.  Using an alarm clock to
	warn of 11:08's arrival was {considered harmful}.

	[{Jargon File}]

religious issues

	Questions which seemingly cannot be raised without touching
	off {holy wars}, such as "What is the best operating system
	(or editor, language, architecture, shell, mail reader, news
	reader)?", "What about that Heinlein guy, eh?", "What should
	we add to the new Jargon File?"  See {holy wars}; see also
	{theology}, {bigot}.

	This term is a prime example of {ha ha only serious}.  People
	actually develop the most amazing and religiously intense
	attachments to their tools, even when the tools are
	intangible.  The most constructive thing one can do when one
	stumbles into the crossfire is mumble {Get a life!} and leave
	- unless, of course, one's *own* unassailably rational and
	obviously correct choices are being slammed.

	(1996-08-16)

REM

	<programming> (From "remark") The {keyword} used in {BASIC} to
	introduce a {comment} (which continues to the end of the
	line).  {MS-DOS} probably borrowed it from {BASIC}.  Might be
	used in the form "REM out" meaning to {comment out}.

	(1998-04-27)

remailer

	{anonymous remailer}

Remote Access Services

	<communications> (RAS) A service provided by {Windows NT}
	which allows most of the services which would be available on
	a {network} to be accessed over a {modem} link.  The service
	includes support for {dialup} and {logon}, and then presents
	the same network interface as the normal network drivers
	(albeit slightly slower!).  It is not necessary to run Windows
	NT on the {client} - there are client versions for other
	{Windows} {operating systems}.

	[What services?]

	(1996-08-14)

Remote Database Access

	<database, standard> (RDBA) A standard permitting the exchange
	of information between different {DBMS} systems.

	(1998-09-23)

Remote Desktop Protocol

	<protocol> (RDP) A {Microsoft} {protocol} that provides remote
	display and input for {Windows}.

	RDP's {video driver} renders display output by sending packets
	to the client which translates them into corresponding
	Microsoft Win32 graphics device interface API calls.  Client
	mouse and keyboard events are redirected from the client to
	virtual keyboard and mouse drivers on the server.

	RDP 4.0 was introduced with {Windows NT} Server 4.0, Terminal
	Server Edition.  Windows 2000 Terminal Services included RDP
	5.0.  The Terminal Services Advanced Client (TSAC), an RDP
	client based on an {ActiveX control}, also supports RDP 5.0.
	RDP 5.0 provides enhanced performance over low-speed
	connections.  Windows XP uses RDP 5.1 and includes Remote
	Desktop Web Connection, which is an updated version of the
	TSAC.

	RDP extends the {ITU T.120} protocols, allowing separate
	virtual channels for device communication and presentation
	data from the server, as well as encrypted mouse and keyboard
	data.

	Compare: {VNC}.

	{MSDN RDP
	(http://msdn.microsoft.com/library/en-us/termserv/termserv/remote_desktop_protocol.asp)}.

	{thinclient.net
	(http://thinclient.net/technology/RDP_Features_and_Performance.htm)}.

	(2004-09-14)

remote echo

	<communications> (Obsolete: "full-duplex") A mode of operation
	of communicating programs or devices in which the sending
	system does not display the characters the user enters, but
	only sends them to the remote system which then "echoes" them
	back to be displayed to the user.  This lets the operator see
	not only typing errors, but also transmission errors.  This is
	now the usual mode of most systems with remote users.

	Contrast: {local echo}.

	(2000-03-30)

Remote Job Entry

	<operating system> (RJE) A system, widely used in the mid/late
	1960s, for submitting {jobs} to {mainframes} like the {IBM
	360} under {OS/MFT}.  Communication with the {computer
	operator} was via the keyboard and later via {CRTs}.

	(1999-03-26)

remote login

	<networking> A {client-server} program and {protocol} that
	provides an interactivel {command line interface} to a remote
	computer, using a {protocol} over a computer network,
	simulating a locally attached {terminal}.

	{rlogin} is the {BSD Unix} program and protocol for this,
	{telnet} is an earlier, more widely implemented protocol.

	(1999-03-26)

Remote Method Invocation

	<programming> (RMI) Part of the {Java} {programming language}
	{library} which enables a Java program running on one computer
	to access the {objects} and {methods} of another Java program
	running on a different computer.

	{Home
	(http://java.sun.com/products/jdk/1.1/docs/guide/rmi/index.html)}.

	(1997-09-04)

remote monitoring

	<protocol> (RMON) A {network management} {protocol} that
	allows network information to be gathered at a single
	computer.  Whereas {SNMP} gathers network data from a single
	type of {Management Information Base} (MIB), RMON 1 defines
	nine additional MIBs that provide a much richer set of data
	about network usage.  For RMON to work, network devices, such
	as {hubs} and {switches}, must be designed to support it.

	The newest version of RMON, RMON 2, provides data about
	{traffic} at the {network layer} in addition to the {physical
	layer}.  This allows administrators to analyse traffic by
	protocol.

	(2003-09-15)

Remote Operations Service Element

	<networking> (ROSE) A sub-layer of {protocol layer} six
	({presentation layer}) in the {OSI} seven layer model which
	provides {SASE} for remote operations.

	Documents: {ITU} Rec. X.229 ({ISO} 9072-2), ITU Rec. X.219
	(ISO 9072-1).

	(1997-12-07)

Remote Procedure Call

	<networking, programming> (RPC) A {protocol} which allows a
	program running on one {host} to cause code to be executed on
	another host without the programmer needing to explicitly code
	for this.  RPC is an easy and popular paradigm for
	implementing the {client-server} model of {distributed
	computing}.  An RPC is initiated by the caller (client)
	sending request message to a remote system (the server) to
	execute a certain procedure using arguments supplied.  A
	result message is returned to the caller.  There are many
	variations and subtleties in various implementations,
	resulting in a variety of different (incompatible) RPC
	{protocols}.

	{Sun} RPC is defined in {RFC 1057} and {ONC} RPC in {RFC
	1831}.

	(2003-06-04)

Remote Reference Layer

	<protocol> (RRL) Part of {Java}'s {Remote Method Invocation}
	protocol.  RRL exists in both the RMI {client} and {server}.
	It is used by the {stub} or {skeleton} {protocol layer} and
	uses the {transport layer}.  RRL is reponsible for
	transport-independent functioning of RMI, such as {connection
	management} or {unicast}/{multicast} {object invocation}.

	[Specification URL?]

	(1997-12-03)

Remote Spooling Communication Subsystem

	<communications> (RSCS) A {networking} {protocol} used
	primarily on {Bitnet}.

	[Details?]

	(1996-02-04)

Remote Write Protocol

	<chat, protocol> (RWP) A proposed {Internet} {protocol} for
	exchanging short messages between terminals.

	The RWP proposal is detailed in {RFC 1756}.

	(1996-09-08)

removable disk

	{removable hard disk}

removable hard disk

	<storage> A type of {magnetic disk}, or possibly
	{magneto-optical disk} which is not permanently attached to
	the {disk drive} (not a {fixed disk}) but which can be taken
	out and replaced, allowing many disks to be used in the same
	drive.

	The term "removable disk" would seem to be applicable to
	{floppy disks} but is generally reserved for {hard disks} in
	suitable cartridges such as those made by {Syquest}, {Iomega}
	and others.

	Removable disk packs were common on {minicomputers} such as
	the {PDP-11} in use in the 1970s except that the drives were
	the size of {washing machines} and the disk packs as big as
	car wheels.  Removable disks became popular on
	{microcomputers} in the 1990s as a cheap way of expanding disk
	space, transporting large amounts of data between computers
	and storing {backups}.  Large, cheap fixed hard disks and {USB
	memory sticks} have made removable disks less attractive.

	(2007-06-14)

rendering

	<graphics, text> The conversion of a high-level object-based
	description into a graphical image for display.

	For example, {ray-tracing} takes a mathematical model of a
	three-dimensional object or scene and converts it into a
	{bitmap} image.  Another example is the process of converting
	{HTML} into an image for display to the user.

	(2001-02-06)

RenderMan Shading Language

	["The RenderMan Companion", S. Upstill, A-W 1989, chaps
	13-15].

rendezvous

	1. In {Ada}, the method of synchronising the activity of
	different tasks.

	2. Query language, close to natural English.

	["Seven Steps to Rendezvous with the Casual User", E. Codd in
	Data Base Management, J.W.  Klimbie et al eds, N-H 1974,
	pp.179-199].

REP

	<programming> A directive used in {IBM} {object code} {card
	decks} (and later {PTF Tapes}) to REPlace fragments of already
	assembled or compiled object code prior to {link edit}.
	Recompiling or reassembling the {source code} to produce a
	whole new object module was only possible if the {source code}
	was available, which it rarely was (if you had the object you
	were lucky!)  It was also quicker to apply incremental changes
	with REP cards and they also circumvented the {checksums} and
	{card sequence numbers} present in the object code.

	(1998-07-16)

repeat

	{repeat loop}

repeater

	<networking, communications> A network or communications
	device which propagates electrical signals from one cable to
	another, amplifying them to restore them to full strength in
	the process.  Repeaters are used to counter the attenuation
	which occurs when signals travel long distances (e.g. across
	an ocean).

	A network repeater is less intelligent than a {bridge},
	{gateway} or {router} since it works at the {physical layer}.

	(1998-07-16)

repeating group

	<database> Any {attribute} that can have multiple values
	associated with a single instance of some {entity}.  For
	example, a book might have multiple authors.

	Such a "-to-many" relationship might be represented in an
	unnormalised {relational database} as multiple author columns
	in the book table or a single author(s) column containing a
	string which was a list of authors.  Converting this to "first
	normal form" is the first step in {database normalisation}.
	Each author of the book would appear in a separate {row} along
	with the book's {primary key}.  Later nomalisation stages
	would move the book-author relationship into a separate table
	to avoid repeating other book attibutes (e.g. title,
	publisher) for each author.

	(2005-07-28)

repeat loop

	<programming> (Or "do loop") A {loop} construct found in many
	{procedural languages} which repeatedly executes some
	instructions while a {condition} is true.

	Repeat loops are found in {Perl}, {Pascal}, {BASIC} and {C}.
	The initial {keyword} may be "repeat" or "do" and the
	condition may be introduced with a "while" or "until" keyword.

	In constrast to a {while} loop, the "loop body" is executed
	once before the condition is tested.  This is useful when the
	condition depends on the action of the loop body.  In the
	following BASIC loop "Hello" is printed once despite the fact
	that the condition is false;

	 i = 2
	 repeat
	   print "Hello"
	   i = i+1
	 until i>0

	See also {while loop} and {for loop}.

	(1999-05-06)

repetitive strain disorder

	{overuse strain injury}

repetitive strain injury

	{overuse strain injury}

REPL

	1. <language, LISP, programming> {read-eval-print loop}.

	2. <language> {Restricted EPL}.

	(2003-06-23)

replacement algorithm

	The method used to determine which entry in an associative
	{cache} to flush to main memory when it is desired to cache a
	new block of data.  The "least recently used" algorithm
	flushed the block which has not been accessed for the longest
	time.  A random replacement algorithm picks any block with
	equal probability.

Replay

	{Acorn Computers}' {full-motion video} system written by Roger
	Wilson.  Video and sound information are stored in compressed
	form.  Compression is relatively slow but decompression is
	done in {real-time} with quality and {frame-rate} varying with
	the processing power available, the size of the picture and
	whether it appears in a {window} or uses the whole screen.

	(1994-11-09)

replication

	<database, networking> Creating and maintaining a duplicate
	copy of a database or file system on a different computer,
	typically a {server}.  The term usually implies the
	intelligent copying of parts of the source database which have
	changed since the last replication with the destination.

	Replication may be one-way or two-way.  Two-way replication is
	much more complicated because of the possibility that a
	replicated object may have been updated differently in the two
	locations in which case some method is needed to reconcile the
	different versions.

	For example, {Lotus Notes} can automatically distribute
	document databases across telecommunications networks.  Notes
	supports a wide range of network {protocols} including {X25}
	and {Internet} {TCP/IP}.

	Compare {mirror}.  See also {rdist}.

	(1997-12-12)

replicator

	Any construct that acts to produce copies of itself; this
	could be a living organism, an idea (see {meme}), a program
	(see {quine}, {worm}, {wabbit}, {fork bomb}, and {virus}), a
	pattern in a {cellular automaton} (see {life}), or
	(speculatively) a robot or {nanobot}.  It is even claimed by
	some that {Unix} and {C} are the symbiotic halves of an
	extremely successful replicator; see {Unix conspiracy}.

	[{Jargon File}]

reply

	{followup}

Repondez s'il vous plait

	{Répondez s'il vous plait}

Report Program Generator

	<tool> (RPG) An {IBM} programming language developed by {Wilf
	Hey} at {IBM} in 1965 for easy production of sophisticated
	large system reports.

	RPG is a {3GL} similar to {COBOL}, but more concise and
	supposedly easier for non-programmers to use.  It processes
	its input one line at a time and does not treat tables as
	{conceptual entities}.

	It was popular on {System 34}/36 {minicomputers}.

	Versions: RPG II, RPG III, RPG/400 for IBM {AS/400}.  {MS-DOS}
	versions by {California Software} and {Lattice}.  {Unix}
	version by {Unibol}.  {Cross-platform} version by {J & C
	Migrations} runs on {MS-DOS}, {Windows}, {AIX}, {HP-UX}, and
	{OS/390}.

	See also {CL}, {OCL}.

	(2004-08-24)

repository

	1. <database> See {data dictionary}.

	2. <programming> The core of a {CASE} tool, typically a {DBMS}
	where all development documents are stored.

	(1999-04-27)

Representation Language Language

	<language> (RLL) A {frame language}.

	["A Representation Language Language", R. Greiner and
	D.B. Lenat, Proc AAAI-80, 1980].

	(2003-06-02)

Request For Comments

	<standard> (RFC) One of a series, begun in 1969, of numbered
	{Internet} informational documents and {standards} widely
	followed by commercial software and {freeware} in the
	{Internet} and {Unix} communities.  Few RFCs are standards but
	all Internet standards are recorded in RFCs.  Perhaps the
	single most influential RFC has been {RFC 822}, the Internet
	{electronic mail} format standard.

	The RFCs are unusual in that they are floated by technical
	experts acting on their own initiative and reviewed by the
	Internet at large, rather than formally promulgated through an
	institution such as {ANSI}.  For this reason, they remain
	known as RFCs even once adopted as standards.

	The RFC tradition of pragmatic, experience-driven,
	after-the-fact standard writing done by individuals or small
	working groups has important advantages over the more formal,
	committee-driven process typical of {ANSI} or {ISO}.

	Emblematic of some of these advantages is the existence of a
	flourishing tradition of "joke" RFCs; usually at least one a
	year is published, usually on April 1st.  Well-known joke RFCs
	have included 527 ("ARPAWOCKY", R. Merryman, UCSD; 22 June
	1973), 748 ("Telnet Randomly-Lose Option", Mark R. Crispin; 1
	April 1978), and 1149 ("A Standard for the Transmission of IP
	Datagrams on Avian Carriers", D. Waitzman, BBN STC; 1 April
	1990).  The first was a Lewis Carroll pastiche; the second a
	parody of the {TCP/IP} documentation style, and the third a
	deadpan skewering of standards-document legalese, describing
	protocols for transmitting Internet data packets by carrier
	pigeon.

	The RFCs are most remarkable for how well they work - they
	manage to have neither the ambiguities that are usually rife
	in informal specifications, nor the committee-perpetrated
	{misfeatures} that often haunt formal standards, and they
	define a network that has grown to truly worldwide
	proportions.

	{rfc.net (http://rfc.net/)}.
	{W3
	(http://w3.org/hypertext/DataSources/Archives/RFC_sites.html)}.
	{JANET UK FTP (ftp://nic.ja.net/pub/newsfiles/JIPS/rfc)}.
	{Imperial College, UK FTP (ftp://src.doc.ic.ac.uk/rfc/)}.
	{Nexor UK (http://nexor.com/public/rfc/index/rfc.html)}.
	{Ohio State U
	(http://cis.ohio-state.edu/hypertext/faq/usenet/top.html)}.

	See also {For Your Information}, {STD}.

	(1997-11-10)

request for proposal

	<programming> (RFP) The publication by a prospective software
	purchaser of details of the required system in order to
	attract offers by software developers to supply it.  Software
	development under contract starts with the selection of the
	software developer by the customer.  A request for proposal
	(also called in Britain an "invitation to tender") is the
	beginning of the selection process.

	[Bennatan, E.M., "Software Project Management", 2nd edition,
	McGraw-Hill International, 1992].

	(1995-12-04)

Request For Technology

	(RFT) The process established by the {OSF} to get proposals
	for new standards.

	(1994-11-30)

Required-COBOL

	A minimal subset of {COBOL} developed in 1961.  It was later
	dropped entirely.

	[Sammet 1969, p. 339].

	(1994-11-30)

requirements

	<programming> The first stage of software development which
	defines what the potential users want the system to do.  In
	modern methods these requirements should be testable, and will
	usually be traceable in later development stages.  A common
	feature of nearly all software is that the requirements change
	during its lifetime.

	See {software life-cycle}.

	(1995-11-11)

Requirements Acquisition and Controlled Evolution

	<programming, project> (RACE) A "back to basics" approach to
	{requirements engineering}.  The method, is being pieced
	together through a series of intermediate research studies.
	In essence, the approach has been to establish requirements
	for RACE, identify individual techniques that meet those
	requirements, experiment with the combined use of the
	techniques, and finally assemble the method.  In practice,
	RACE has been influenced significantly by Checkland and
	Wilson's {Soft Systems Methodology} (SSM) and this forms the
	core of the method.

	(1995-11-21)

requirements analysis

	<project> The process of reviewing a business's processes to
	determine the business needs and {functional requirements}
	that a system must meet.

	(1996-08-01)

Requirements Engineering

	<programming> The task of capturing, structuring, and
	accurately representing the user's {requirements} so that they
	can be correctly embodied in systems which meet those
	requirements (i.e. are of good quality).

	{DOORS} is one product to help with this task.

	(1995-11-11)

Research Systems, Inc.

	(RSI) Distributors of {Interactive Data Language} (IDL).

	{(ftp://gateway.rs.inc.com/pub/)}.  E-mail: <info@rsinc.com>.

	(1994-10-07)

ResEdit

	<programming, tool> A free {resource editor} for {Win32}
	programs.  ResEdit can create {dialogs}, {icon}, {version
	information} or other types of resources.  Output files can be
	compiled by any Win32 {compiler} like {MinGW} and Microsoft
	{Visual C++}.

	Latest version: 1.3.5, as of 2007-03-24.

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

	(2007-03-24)

reserved memory

	<storage> The address range 640-1024 {kilobytes} on an {IBM
	PC}, reserved for {BIOS}, {video cards}, and add-on cards.
	Depending on the configuration some of the address space may
	be unused in which case it can be used by {EMS} or {UMB}.

	(1996-01-10)

resolution

	1. <hardware> the maximum number of {pixels} that can be
	displayed on a {monitor}, expressed as (number of horizontal
	pixels) x (number of vertical pixels), i.e., 1024x768.  The
	ratio of horizontal to vertical resolution is usually 4:3, the
	same as that of conventional television sets.

	2. <logic> A mechanical method for proving statements of
	{first order logic}, introduced by J. A. Robinson in 1965.
	Resolution is applied to two {clauses} in a {sentence}.  It
	eliminates, by {unification}, a {literal} that occurs
	"positive" in one and "negative" in the other to produce a new
	clause, the {resolvent}.

	For example, given the sentence:

		(man(X) => mortal(X))  AND  man(socrates).

	The literal "man(X)" is "negative".  The literal
	"man(socrates)" could be considered to be on the right hand
	side of the degenerate implication

		True => man(socrates)

	and is therefore "positive".  The two literals can be unified
	by the binding X = socrates.

	The {truth table} for the implication function is

		A | B | A => B
		--+---+-------
		F | F |   T
		F | T |   T
		T | F |   F
		T | T |   T

	(The implication only fails if its premise is true but its
	conclusion is false).  From this we can see that

		A => B   ==   (NOT A) OR B

	Which is why the left hand side of the implication is said to
	be negative and the right positive.  The sentence above could
	thus be written

		((NOT man(socrates)) OR mortal(socrates))
		AND
		man(socrates)

	Distributing the AND over the OR gives

		((NOT man(socrates)) AND man(socrates))
		OR
		mortal(socrates) AND man(socrates)

	And since (NOT A) AND A == False, and False OR A == A we can
	simplify to just

		mortal(socrates) AND man(socrates)

	So we have proved the new literal, mortal(socrates).

	Resolution with {backtracking} is the basic control mechanism
	of {Prolog}.

	See also {modus ponens}, {SLD Resolution}.

	3. <networking> {address resolution}.

	(1996-02-09)

resolver

	<networking> The {TCP/IP} {protocol} library software that
	formats requests to be sent to the {Domain Name Server} for
	{hostname} to {IP address} conversion.

	(1995-03-28)

Resource Access Control Facility

	(RACF) {IBM}'s large system security product.  It originally
	ran only under {MVS} but has since been ported to run under
	{VM}.

	(1995-02-07)

Resource Description Framework

	<World-Wide Web, specification, data> (RDF) A specification
	being developed in 2000 by the {W3C} as a foundation for
	processing {meta-data} regarding resources on the {Internet},
	including the {World-Wide Web}.

	Resource Description Framework data consists of resources
	({nodes}), and property/value pairs describing the resource.
	A node is any object which can be pointed to by a {URI},
	properties are attributes of the node, and values can be
	either atomic values for the attribute, or other nodes.  For
	example, information about a particular {web page} (a node),
	might include the property "Author".  The value for the Author
	property could be either a string giving the name of the
	author, or a {link} to a resource describing the author.

	Resource Description Framework only specifies a mechanism for
	encoding and transferring meta-data.  It does not specify what
	that meta-data should, or can be.  RDF does not, for example,
	define an "Author" attribute.  Sets of properties are defined
	within RDF Vocabularies (or Schemas).  Anynone can create an
	RDF schema, describing a specialized set of properties, by
	creating a resource, referenced by the Schema URI, which
	provides a human- and machine-understandable definition of the
	schema's properties.  The description of a node may include
	properties defined in different schemas.  The properties
	within a resource description are associated with a certain
	schema definition using the {XML} {namespace} mechanism.
	Schemas currently being developed include a content screening
	system modeled after {PICS}, and a bibliographic vocabulary,
	such as the {Dublin Core Initiative}.

	{(http://w3c.org/RDF/)}.

	{W3C Resource Description Framework-RDF Model and Syntax
	Specification (http://w3.org/TR/REC-rdf-syntax/)}.

	(2000-03-25)

resource fork

	{Macintosh file system}

Resource Reservation Protocol

	<protocol> (RSVP) A {protocol} that supports {quality of
	service}.

	{(http://zdnet.com/pcweek/stories/news/0,4153,389107,00.html)}.

	(2001-03-18)

Restricted EPL

	<language> (REPL) The efficient {subset} of {EPL} used to
	write the core of {Multics}.

	(2003-06-23)

restriction

	A {bug} or design error that limits a program's capabilities,
	and which is sufficiently egregious that nobody can quite work
	up enough nerve to describe it as a {feature}.  Often used
	(especially by {marketroid} types) to make it sound as though
	some crippling bogosity had been intended by the designers all
	along, or was forced upon them by arcane technical constraints
	of a nature no mere user could possibly comprehend (these
	claims are almost invariably false).

	Old-time hacker Joseph M. Newcomer advises that whenever
	choosing a quantifiable but arbitrary restriction, you should
	make it either a power of 2 or a power of 2 minus 1.  If you
	impose a limit of 17 items in a list, everyone will know it is
	a random number - on the other hand, a limit of 15 or 16
	suggests some deep reason (involving 0- or 1-based indexing in
	binary) and you will get less {flamage} for it.  Limits which
	are round numbers in base 10 are always especially suspect.

	[{Jargon File}]

Restructured EXtended eXecutor

	<language> (REXX, or "System Product Interpreter", originally
	known as "REX") A {script}ing language for {IBM VM} and {MVS}
	systems, developed by M. Cowlishaw at {IBM} ca. 1979,
	replacing {EXEC2}.

	Versions: PC-Rexx for {MS-DOS}, {AREXX} for the {Amiga}, the
	{OS/2} implementation from IBM, WINREXX (Rexx for Windows,
	from {Quercus systems}) and Personal Rexx (Rexx for MS-DOS,
	from Quercus systems).

	See also {Regina}, {freerexx}, {imc}.

	{REXXWARE} is an implementation of {REXX} for {Novell
	NetWare}.

	{Usenet} newsgroup: {news:comp.lang.rexx}.

	["The REXX Language: A Practical Approach to Programming",
	M.F. Cowlishaw, 1985].

	(1992-05-13)

restructuring

	The transformation from one representation form to another at
	the same relative abstraction level, while preserving the
	subject system's external behaviour (functionality and
	semantics).

retcon

	/ret'kon/ retroactive continuity.

	The common situation in fiction where a new story "reveals"
	things about events in previous stories, usually leaving the
	"facts" the same (thus preserving continuity) while completely
	changing their interpretation.  For example, revealing that a
	whole season of "Dallas" was a dream was a retcon.

	This term was once thought to have originated on the {Usenet}
	newsgroup {news:rec.arts.comics} but is now believed to have
	been used earlier in comic fandom.

	[{Jargon File}]

	(1994-12-08)

rete

	<artificial intelligence> /Re'te/ (From Latin "net") A net or
	network; a plexus; particularly, a network of blood vessels or
	nerves, or a part resembling a network.

	[How is it used in AI?  What is a "rete procedure "?]

	(2002-03-14)

RETI

	{RTI}

Retrieve

	<language> A {query language} inspired {JPLDIS} which led to
	{Vulcan} and then to {dBASE II}, developed by {Tymshare Corp}
	in the 1960s.

	(1998-04-29)

retrocomputing

	/ret'-roh-k*m-pyoo'ting/ Refers to emulations of
	way-behind-the-state-of-the-art hardware or software, or
	implementations of never-was-state-of-the-art; especially if
	such implementations are elaborate practical jokes and/or
	parodies, written mostly for {hack value}, of more "serious"
	designs.  Perhaps the most widely distributed retrocomputing
	utility was the "pnch(6)" or "bcd(6)" program on V7 and other
	early Unix versions, which would accept up to 80 characters of
	text argument and display the corresponding pattern in
	{punched card} code.  Other well-known retrocomputing hacks
	have included the programming language {INTERCAL}, a
	{JCL}-emulating shell for Unix, the card-punch-emulating
	editor named 029, and various elaborate {PDP-11} hardware
	emulators and RT-11 OS emulators written just to keep an old,
	sourceless {Zork} binary running.

	[{Jargon File}]

retronym

	<jargon> A term invented to distinguish a subclass of things
	from new members of the superclass, where the distinction was
	previously not necessary, since the old subclass had been all
	there was of the superclass.

	For example, the retronyms "{snail mail}" and "{paper mail}"
	were coined by those for who "mail" was likely to mean
	{electronic mail}.

	While the English language in general has a few retronyms
	("whole milk", "snow skiing", "acoustic guitar"), hacker
	jargon is necessarily (at points capriciously) rich in
	retronyms, e.g. {plaintext}, {natural language}, {impact
	printer}, {eyeball search}, biological {virus}.

	[More examples?]

	(2001-02-25)

return from interrupt

	<programming> (RTI) An instruction {mnemonic} on many
	computers including the {6502} and {6800}.  The variant "RETI"
	is found among former {Zilog Z80} hackers (almost nobody
	programs these things in {assembly code} anymore).  The {Intel
	80x86} equivalent is "IRET".

	(1994-10-31)

return from the dead

	<jargon> To regain access to the net after a long absence.

	Compare {person of no account}.

	[{Jargon File}]

	(1999-01-14)

Return To Zero

	<communications> A class of encoding methods for physical
	circuits in which the carrier (current, voltage) returns to
	zero after each transmitted bit, i.e. the data is carried in
	pulse width or polarity, not in the level of the signal.

	Contrast {NRZ}.

	(1995-11-11)

reusability

	{reuse}

reuse

	Using code developed for one {application program} in another
	application.  Traditionally achieved using program libraries.
	{Object-oriented programming} offers reusability of code via
	its techniques of {inheritance} and {genericity}.  {Class}
	libraries with {intelligent browsers} and {application
	generators} are under development to help in this process.
	{Polymorphic} {functional languages} also support reusability
	while retaining the benefits of {strong typing}.

	See also {DRAGOON}, {National Software Reuse Directory},
	{RLF}.

Reverse Address Resolution Protocol

	<networking, protocol> (RARP) A {protocol} defined in {RFC
	903} which provides the reverse function of {ARP}.  RARP maps
	a hardware address ({MAC address}) to an {IP address}.
	It is used primarily by {diskless nodes}, when they first
	initialise, to find their {IP address}.

	See also {BOOTP}.

	(1994-12-08)

Reverse ARP

	{Reverse Address Resolution Protocol}

reverse engineering

	<system, product, design> The process of analysing an existing
	system to identify its components and their interrelationships
	and create representations of the system in another form or at
	a higher level of abstraction.  Reverse engineering is usually
	undertaken in order to redesign the system for better
	maintainability or to produce a copy of a system without
	access to the design from which it was originally produced.

	For example, one might take the {executable} code of a
	computer program, run it to study how it behaved with
	different input and then attempt to write a program oneself
	which behaved identically (or better).  An {integrated
	circuit} might also be reverse engineered by an unscrupulous
	company wishing to make unlicensed copies of a popular chip.

	(1995-10-06)

Reverse Polish Notation

	{postfix notation}

reverse polish syntax

	{postfix notation}

Revised ALGOL 60

	{ALGOL 60 Revised}

revision

	<programming> A {release} of a piece of software which is not
	a {major release} or a {bugfix}, but only introduces small
	changes or new features.

	(1996-08-04)

Revision Control System

	<software, tool> (RCS) A {version control} system that
	automates the storing, retrieval, logging, identification, and
	merging of revisions.  RCS is useful for text that is revised
	frequently, for example programs, documentation, graphics,
	papers, and form letters.

	{Unix manual page}: rcs(1).

	["RCS -- A System for Version Control", Walter F. Tichy,
	Software--Practice & Experience 15, 7, July 1985, 637-654].

	[Features?  Availability?  URL?]

	(1994-12-23)

Revolutionary Surrealist Vandal Party

	<body> (RSVP)
	{(http://impropaganda.com/kultcha.html#bullet21)}.

	(1996-12-01)

revolutions per minute

	<unit> (rpm, rarely: rotations per minute) A unit of {angular
	velocity}.

	(2004-04-18)

REX

	The original name for {Restructured EXtended eXecutor}.

REXX

	{Restructured EXtended eXecutor}

REXXWARE

	An implementation of {REXX} for {Novell NetWare} produced by
	{Simware, Inc.} in January 1994.  It is used by {LAN} managers
	to automate LAN administration chores on a Novell NetWare
	{server}.

	As a scripting language, REXXWARE is an NLM ({NetWare Loadable
	Module}) that runs on {Novell NetWare} servers.  It includes
	more than 275 NetWare-specific functions, plus the standard
	{REXX} {keywords}, instructions, built-in functions,
	{flow-control}, tracing, and error trapping and recovery
	features.

	REXXWARE is certified by Novell for use with NetWare.

	E-mail: <rexxware@simware.com>.

	(1995-01-11)

RF

	{radio frequency}

RFC

	{Request For Comments}

RFC 1014

	<programming, networking, standard> The {RFC} defining
	{eXternal Data Representation}.

	{(rfc:1014)}.

	(1994-12-13)

RFC 1034

	<networking, standard> One of the {RFCs} defining the {Domain
	Name System}.

	{(rfc:1034)}.

	(1997-12-15)

RFC 1035

	<networking, standard> One of the {RFCs} defining the {Domain
	Name System}.

	{(rfc:1035)}.

	(1997-12-15)

RFC 1057

	<networking, standard> The {RFC} defining {Sun} {RPC}.

	{(rfc:1057)}.

	(2003-06-04)

RFC 1058

	<networking, standard> The {RFC} defining {Routing Information
	Protocol}.  Updated by {RFC 1388}.

	{(rfc:1058)}.

	(1994-11-30)

RFC 1081

	<messaging, standard> The {RFC} defining {POP3}, {Post Office
	Protocol} version 3.

	{(rfc:1081)}.

	(1994-12-12)

RFC 1094

	<standard, networking, storage> The {RFC} defining {Sun
	Microsystems}'s {Network File System} (NFS).

	{(rfc:1094)}.

	(1994-12-12)

RFC 1112

	<networking, standard> The {RFC} describing {MBONE}.

	{(rfc:1112)}.

	(1994-11-11)

RFC 1119

	<networking, standard> The {RFC} defining {Network Time
	Protocol}.

	{(rfc:1119)}.

	(1994-11-30)

RFC 1123

	<networking, standard> The {RFC} "Requirements for Internet
	Hosts Application and Support" which clarifies or changes the
	specification of protocols given in earlier RFCs.

	RFC 1123 defines the terms "MUST", "SHOULD", "MAY",
	"unconditionally compliant", "conditionally compliant".
	Capitals are used to emphasise that the official definition of
	the word is being used.

	MUST or REQUIRED means an absolute requirement for
	conformance.

	SHOULD or RECOMMENDED means the item can be ignored under
	certain circumstances, although the full implications should
	be understood.

	MAY or OPTIONAL means the implementor can choose, usually
	depending on whether it is needed or not.

	Something "unconditionally compliant" meets all the MUST and
	SHOULD requirements, "conditionally compliant" meets all the
	MUST requirements and "not compliant" - does not meet some
	MUST requirement.

	For example, RFC 1123 amends RFC952 to say software MUST
	handle either a letter or a digit as the first character of a
	{hostname}.

	{(rfc:1123)}.

	(1996-01-13)

RFC 1156

	<standard> The {RFC} which established the MIB I {Management
	Information Base} standard.

	{(rfc:1156)}.

	(1994-11-14)

RFC 1157

	<networking, standard> The {RFC} defining {Simple Network
	Management Protocol}.

	{(rfc:1157)}.

	(1994-11-14)

RFC 1171

	<protocol, standard> The {RFC} defining the {Point-to-Point
	Protocol}.

	{(rfc:1171)}.

	(1994-12-13)

RFC 1208

	<networking, standard> The {RFC} defining many of the
	network-related terms in this dictionary.

	{(rfc:1208)}.

	["A Glossary of Networking Terms", Jacobsen, O., and D. Lynch,
	RFC 1208, Interop, Inc., March 1991.]

	(1996-08-06)

RFC 1213

	<networking, standard> The {RFC} which definied the MIB II
	{Management Information Base}.

	{(rfc:1213)}.

	(1994-11-14)

RFC 1267

	<networking, standard> One of the {RFCs} describing {Border
	Gateway Protocol}.

	{(rfc:1267)}.

RFC 1268

	<networking, standard> One of the {RFCs} describing {Border
	Gateway Protocol}.

	{(rfc:1268)}.

RFC 1304

	<networking, standard> One of the {RFCs} describing {SMDS
	Interface Protocol}.

	{(rfc:1304)}.

	(2000-09-02)

RFC 1321

	<messaging, standard> The {RFC} defining the {Message Digest
	5} {algorithm}.

	{(rfc:1321)}.

	(1996-08-04)

RFC 1334

	<networking, security, standard, protocol> The {RFC} defining
	{Challenge-Handshake Authentication Protocol} and {Password
	Authentication Protocol}.

	{(rfc:1334)}.

	(1996-03-23)

RFC 1341

	<messaging, standard> The June 1992 {RFC} defining
	{Multipurpose Internet Mail Extensions} (MIME).  This {RFC}
	has been obsoleted by {RFC 2045}, {RFC 2046}, {RFC 2047}, {RFC
	2048}, {RFC 2049}, and {BCP0013}.

	{(rfc:1341)}.

	(1997-08-30)

RFC 1347

	<networking, protocol> One of the {RFCs} describing the {TUBA}
	{protocol}.

	{(rfc:1347)}.

	(1997-08-30)

RFC 1350

	<networking, protocol> The {RFC} defining {TFTP}.

	{(rfc:1350)}.

	(1997-08-30)

RFC 1388

	<networking, standard> An update to {RFC 1058}, the {RFC}
	defining {Routing Information Protocol}.

	{(rfc:1388)}.

	(1994-11-30)

RFC 1436

	<networking, standard> The {RFC} defining the {Internet}
	{Gopher} {protocol}.

	{(rfc:1436)}.

	(1995-11-16)

RFC 1441

	<networking, standard> The {RFC} introducing {SNMP v2}.

	{(rfc:1441)}.

	(1997-11-23)

RFC 1442

	<networking, standard> The {RFC} defining {SMI} for {SNMP v2}.

	{(rfc:1442)}.

	(1997-11-23)

RFC 1443

	<networking, standard> The {RFC} defining textual conventions
	for {SNMP v2}.

	{(rfc:1443)}.

	(1997-11-23)

RFC 1444

	<networking, standard> The {RFC} defining conformance
	statements for {SNMP v2}.

	{(rfc:1444)}.

	(1997-11-23)

RFC 1445

	<networking, standard> The {RFC} defining the administrative
	model for {SNMP v2}.

	{(rfc:1445)}.

	(1997-11-23)

RFC 1446

	<networking, standard> The {RFC} defining security protocols
	for {SNMP v2}.

	{(rfc:1446)}.

	(1997-11-23)

RFC 1447

	<networking, standard> The {RFC} defining {Party MIB} for
	{SNMP v2}.

	{(rfc:1447)}.

	(1997-11-23)

RFC 1448

	<networking, standard> The {RFC} defining protocol operations
	for {SNMP v2}.

	{(rfc:1448)}.

	(1997-11-23)

RFC 1449

	<networking, standard> The {RFC} defining {transport mappings}
	for {SNMP v2}.

	{(rfc:1449)}.

	(1997-11-23)

RFC 1450

	<networking, standard> The {RFC} defining {MIB} for {SNMP v2}.

	{(rfc:1450)}.

	(1997-11-23)

RFC 1451

	<networking, standard> The {RFC} defining {Manager to Manger
	MIB}.

	{(rfc:1451)}.

	(1997-11-23)

RFC 1452

	<networking, standard> The {RFC} describing coexistance
	between {SNMP} v1 and {SNMP v2}.

	{(rfc:1452)}.

	(1995-02-15)

RFC 1475

	<networking, protocol> The {RFC} describing the {TP/IX}
	{protocol}.

	{(rfc:1475)}.

	(1995-04-03)

RFC 1508

	<security, standard> One of the {RFCs} defining {GSS-API}.

	{(rfc:1508)}.

	(1996-05-19)

RFC 1509

	<security, standard> One of the {RFCs} defining {GSS-API}.

	{(rfc:1509)}.

	(1996-05-19)

RFC 1520

	<networking, standard> The {RFC} defining {Classless
	Inter-Domain Routing}.

	{(rfc:1520)}.

	(1996-10-01)

RFC 1521

	<messaging, standard> An {RFC} defining {Multipurpose Internet
	Mail Extensions} (MIME).  This {RFC} has been obsoleted by
	{RFC 2045}, {RFC 2046}, {RFC 2047}, {RFC 2048}, {RFC 2049},
	and {BCP0013}.

	{(rfc:1521)}.

	(1997-11-23)

RFC 1526

	<networking, protocol> One of the {RFCs} describing the {TUBA}
	{protocol}.

	{(rfc:1526)}.

	(1997-11-23)

RFC 1531

	<networking, protocol> The original {RFC} defining {DHCP},
	obsoleted by {RFC 2131}.

	{(rfc:1531)}.

	(1998-11-20)

RFC 1550

	<networking, protocol> An {RFC} {white paper} on {IPng}.

	{(rfc:1550)}.

	(1995-04-03)

RFC 1561

	<networking, protocol> One of the {RFCs} describing the {TUBA}
	{protocol}.

	{(rfc:1561)}.

	(1997-11-23)

RFC 1568

	<messaging, standard> An {RFC} defining the {Simple Network
	Paging Protocol} (SNPP) which is designed to support
	{Internet} access to {paging} services such as those based on
	the {Telocator Alphanumeric Protocol}.  See also {RFC 1861}.

	{(rfc:1568)}.

	(1996-06-24)

RFC 1591

	<networking, standard> The {RFC} defining the {Domain Name
	System}.  Written by J. Postel in March 1994.

	(2001-05-14)

RFC 1630

	<networking, standard> The {RFC} defining the {Universal
	Resource Identifier}.

	{(rfc:1630)}.

	(1995-01-13)

RFC 1661

	<networking, standard> The {RFC} defining {Point-to-Point
	Protocol}.

	{(rfc:1661)}.

	(1997-02-05)

RFC 1700

	<networking, standard> The original {RFC} defining "Assigned
	Numbers" such as standard "well-known" {TCP} and {UDP} {port}
	numbers, now superseded by {RFC 3232}.

	{(rfc:1700)}.

	(2001-04-08)

RFC 1701

	<networking, standard> The {RFC} defining {Generic Routing
	Encapsulation}.

	See also {RFC 1702}.

	{(rfc:1701)}.

	(1997-04-02)

RFC 1702

	<networking, standard> The {RFC} defining {Generic Routing
	Encapsulation} over {IP}.

	{(rfc:1702)}.

	(1997-04-02)

RFC 1707

	<networking, standard> The {RFC} defining {CATNIP}.

	{(rfc:1707)}.

	(1996-03-23)

RFC 1730

	<messaging, standard> An old {RFC} defining {IMAP}, obsoleted
	by {RFC 2060}, {RFC 2061} and others.

	{(rfc:1730)}.

	(1996-03-11)

RFC 1756

	<messaging> The {RFC} describing {Remote Write Protocol}.

	{(rfc:1756)}.

	(1996-09-08)

RFC 1760

	<security> The {RFC} describing the S/KEY {One-Time Password}
	system.

	{(rfc:1760)}.

	(2000-01-31)

RFC 1777

	<networking, standard> The {RFC} defining {Lightweight
	Directory Access Protocol}.

	{(rfc:1777)}.

	(1996-08-23)

RFC 1778

	<networking, standard> The {RFC} that defines the requirements
	that must be satisfied by encoding rules used to render {X.500}
	Directory attribute syntaxes into a form suitable for use in
	{LDAP}.

	{(rfc:1778)}.

	(2002-03-02)

RFC 1795

	<networking, standard> The {RFC} that defines {Data Link
	Switching}.

	{(rfc:1795)}.

	(2008-01-11)

RFC 1823

	<networking, standard> The {RFC} defining the {C} language
	{application program interface} to the {Lightweight Directory
	Access Protocol}.

	{(rfc:1823)}.

	(1996-11-28)

RFC 1825

	<networking, standard> The {RFC} describing security
	mechanisms for {Internet Protocol} version 4 and {IP version
	6} and the services that they provide.

	{(rfc:1825)}.

	(1997-07-09)

RFC 1831

	<networking, standard> The {RFC} describing {ONC} {RPC}.

	(2003-06-04)

RFC 1861

	<networking, standard> The {RFC} defining {Simple Network
	Paging Protocol}.  See also {RFC 1568}.

	{(rfc:1861)}.

	(1997-04-25)

RFC 1938

	<security, standard> The {RFC} describing a proposed
	{standard} for a {One-Time Password} system, obsoleted by {RFC
	2289}.

	["A One-Time Password System.", N. Haller & C. Metz].

	{(rfc:1938)}.

	(2000-03-05)

RFC 1951

	<standard> The {RFC} describing {deflate} {compression}.

	{(rfc:1951)}.

	(1997-06-21)

RFC 1959

	<networking, standard> The {RFC} defining a {URL} format for
	the {Lightweight Directory Access Protocol}.

	{(rfc:1959)}.

	(1996-11-28)

RFC 1960

	<networking, standard> The {RFC} defining the human-readable
	format of search filters used with the {Lightweight Directory
	Access Protocol}.

	{(rfc:1960)}.

	(2002-03-02)

RFC 2045

	<messaging, standard> One of the {RFCs} defining {MIME}.

	{(rfc:2045)}.

	(1999-10-29)

RFC 2046

	<messaging, standard> One of the {RFCs} defining {MIME}.

	{(rfc:2046)}.

	(1999-10-29)

RFC 2047

	<messaging, standard> One of the {RFCs} defining {MIME}.

	{(rfc:2047)}.

	(1999-10-29)

RFC 2048

	<messaging, file format, standard> The {RFC} explaining
	registration of {MIME types}.

	{(rfc:2048)}.

	(1998-02-11)

RFC 2049

	<messaging, standard> One of the {RFCs} defining {MIME}.

	{(rfc:2049)}.

	(1999-10-29)

RFC 2060

	<messaging> One of the {RFCs} describing {IMAP}.

	{(rfc:2060)}.

	(1999-03-14)

RFC 2061

	<messaging> One of the {RFCs} describing {IMAP}.

	{(rfc:2061)}.

	(1999-03-14)

RFC 2068

	<networking, standard> The {RFC} defining {HTTP} version 1.1.

	{(rfc:2068)}.

	(1997-05-03)

RFC 2093

	<networking, standard> The {RFC} specifying the {Inverse
	Address Resolution Protocol}.

	{(rfc:2093)}.

	(2000-01-15)

RFC 2131

	<networking, protocol> The {RFC} defining {DHCP}.  Obsoletes
	{RFC 1531}.

	{(rfc:2131)}.

	(1998-11-22)

RFC 2234

	<standard> The {RFC} defining {Augmented Backus-Naur Form}.

	{(rfc:2234)}.

	(1997-11-23)

RFC 2236

	<networking, standard> The {RFC} describing {IGMP} version 2.

	{(rfc:2236)}.

	(1999-11-08)

RFC 2246

	<networking, standard> The {RFC} that defines {TLS} protocol
	Version 1.0.  Written by T. Dierks and C. Allen in January
	1999.

	{(rfc:2246)}.

	(2003-10-25)

RFC 2279

	<standard> The {RFC} defining {UTF-8}.

	{(rfc:2279)}.

	(1998-07-29)

RFC 2281

	<networking, standard> The {RFC} describing {CISCO} {Hot
	Standby Routing Protocol}.

	{(rfc:2281)}.

	(2005-01-26)

RFC 2298

	<security, standard> The {RFC} proposing a {standard}
	{One-Time Password} system.

	{(rfc:2298)}.

	(2000-03-05)

RFC 2326

	<standard> The {RFC} defining {RTSP}.

	{(rfc:2326)}.

	(1999-10-12)

RFC 2364

	The {RFC} defining {PPPoA}.

	{(rfc:2364)}.

	(2007-06-15)

RFC 2408

	<standard, security> The {RFC} proposing {ISAKMP}.

	{(rfc:2408)}.

	(2000-02-08)

RFC 2516

	<standard, security> The {RFC} defining {Point-to-Point
	Protocol over Ethernet} (PPPoE).

	{(rfc:2516)}.

	(2006-09-20)

RFC 2543

	<networking, standard> One of the {RFCs} describing {Session
	Initiation Protocol}.

	{(rfc:2543)}.

	(2000-07-08)

RFC 2795

	<networking, standard> The {RFC} describing The {Infinite
	Monkey Protocol Suite }.

	{(rfc:2795)}.

RFC 2821

	<networking, standard> The {RFC} describing {SMTP}.  RFC 2821
	supersedes {RFC 821}.

	{(rfc:2821)}.

	(2007-06-01)

RFC 3232

	<networking, standard> The {RFC} describing {TCP} {port}
	numbers.  RFC 3232 supersedes RFC 1700.

	{(rfc:3232)}.

	See also {IANA}, {STD 2}.

	(2004-12-30)

RFC 4213

	<networking, standard> The {RFC} defining mechanisms for
	transitioning to {IPv6}, such as {dual-stack} versus {tunnelling}.

	{(rfc:4213)}.

	(2013-11-12)

RFC 792

	<networking, standard> The {RFC} defining {Internet Control
	Message Protocol}.

	{(rfc:792)}.

	(1996-08-23)

RFC 821

	<messaging, standard> The original {RFC} defining {SMTP}.
	Updated by {RFC 2821}.

	{(rfc:821)}.

	(2007-06-01)

RFC 822

	<messaging, standard> The {RFC} defining the {Internet}
	standard format for {electronic mail} message headers.  Also
	{STD 11}, evolved from RFC 733.

	{(rfc:822)}.

	(1997-03-08)

RFC 826

	<networking, standard> The {RFC} defining the {Address
	Resolution Protocol}.

	{(rfc:826)}.

	(1997-11-21)

RFC 854

	<networking, standard> The {RFC} defining the {telnet}
	protocol.

	["Telnet Protocol specification", J. Postel, J.K. Reynolds,
	1983-05-01].

	{(rfc:854)}.

	(2000-03-18)

RFC 903

	<networking, standard> The {RFC} defining {Reverse Address
	Resolution Protocol}.

	{(rfc:903)}.

	(1994-12-08)

RFC 908

	<networking, standard> The July 1984 {RFC} defining {Reliable
	Data Protocol} (RDP).

	{(rfc:908)}.

	(2004-09-14)

RFC 959

	<networking, standard> The {RFC} containing the official
	specification of {File Transfer Protocol} (FTP).

	{(rfc:959)}.

	(1995-01-12)

RFCOMM

	<protocol> (RS232 Serial Cable Emulation Profile) A
	{Bluetooth} transport {protocol} in the {Core Protocol Stack}
	based on the {ETSI} standard.

	{RFCOMM Layer Tutorial
	(http://palowireless.com/infotooth/tutorial/rfcomm.asp)}.

	(2002-06-28)

RFE

	1. {Request For Enhancement} (compare {RFC}).

	2. (From "Radio Free Europe", {Bellcore} and {Sun}) Radio Free
	Ethernet.

	A system originated by Peter Langston for broadcasting audio
	among Sun {SPARCstations} over the {Ethernet}.

	[{Jargon File}]

	(1994-12-06)

RFI

	{radio frequency interference}

RFID

	{Radio-frequency identification}

RFP

	1. <business> {Request for Proposal}.

	2. <Debian> {Request for Package}.

	(2001-01-15)

RFT

	{Request For Technology}

RG58

	<networking, hardware> A common, low-impedance (52 ohm),
	quarter-inch diameter {coaxial cable} with {BNC} connectors,
	used for {10base2} {Ethernet} wiring, sometimes called
	"{cheapernet}" in comparison with "full spec" {RG8} cabling.
	A member of the "Radio Guide" series.

	(2002-06-17)

RG8

	<networking, hardware, cable> (Or "thicknet" - "thick
	{Ethernet}") The original "full spec" cable, used for
	{10base5} {Ethernet} networks.  RG8 is stiff, large diameter
	{coaxial} cable with an {impedance} of 50 ohms, a member of
	the "Radio Guide" series.  The outer sheath is usually yellow,
	to indicate double shielding, so it is often just called
	"yellow cable".

	10base5 cable is designed to allow transceivers to be added
	while existing connections are live.  This is achieved using a
	"{vampire tap}".

	{RG58} is a cheaper, more flexible alternative.

	(2002-06-17)

RGB

	Red, Green, Blue.  The three colours of light which can be
	mixed to produce any other colour.  Coloured images are often
	stored as a sequence of RGB triplets or as separate red, green
	and blue overlays though this is not the only possible
	representation (see {CMYK} and {HSV}).  These colours
	correspond to the three "guns" in a colour {cathode ray tube}
	and to the colour receptors in the human eye.

	Often used as a synonym for colour, as in "RGB monitor" as
	opposed to {monochrome} (black and white).

Rhapsody

	<operating system> {Apple Computer, Inc.}'s next-generation
	{operating system} for {PowerPC} processor-based systems
	capable of running {Mac OS}.  Rhapsody includes four
	components: the Core OS, the {Blue Box} (the implementation of
	the Mac OS within Rhapsody), the {Yellow Box}, and the Advanced
	Mac Look and Feel.

	"Rhapsody for Intel" runs on {Intel} processors [which ones?].
	It includes the Core OS, the {Yellow Box}, and the Advanced
	Mac Look and Feel, but lacks the {Blue Box} and therefore is
	unable to run Mac OS software.

	"Rhapsody Developer Release" is a developer-only release of
	{Rhapsody}, scheduled for release in late 1997.  It will go to
	all members of the Macintosh Developer Program and the Apple
	Media Program worldwide who have signed nondisclosure
	agreements.

	"Rhapsody Premier Release" will be the second release of
	{Rhapsody}, scheduled for early 1998.  It is meant for early
	adopters and will include a partially finished human interface
	and a partial implementation of the {Blue Box}.

	"Rhapsody Unified Release" will be the third release,
	scheduled for mid-1998.  It will be the first public release,
	and it will include the first full implementation of the
	{Rhapsody} human interface and the {Blue Box}.

	{FAQ (http://devworld.euro.apple.com/rhapsody/faqsec1.html)}.

	(1997-10-15)

ribbon cable

	<hardware> A type of flat multicore cable with cores
	positioned side-by-side, making it quick and relatively easy
	to clamp an {Insulation Displacement Connector} (IDC) across
	all cores.

	Ribbon cables typically have grey insulation with cores on a
	0.050" pitch and a red stripe marking Pin 1.  They are less
	resilient than screened, multicore cable and are usually used
	inside equipment where little movement or plugging and
	unplugging are expected.  A common use is connecting a {disk
	drive} to the {motherboard} in a {PC}.

	(2007-07-21)

rib site

	<networking> (By analogy with {backbone site}) A {host} with
	an on-demand high-speed link to a {backbone site} that serves
	as a regional distribution point for lots of third-party
	traffic in {electronic mail} and {Usenet} news.

	Compare {leaf site}.

	[{Jargon File}]

	(1994-11-30)

rice box

	<jargon> (From ham radio slang) Any Asian-made commodity
	computer, especially an {80x86}-based machine built to {IBM
	PC}-compatible {ISA} or {EISA}-bus standards.

	[{Jargon File}]

	(1994-11-30)

Richard Gabriel

	<person> (Dick, RPG) Dr. Richard P. Gabriel.  A noted {SAIL}
	{LISP} {hacker} and volleyball fanatic.

	Consulting Professor of Computer Science at {Stanford
	University}.  Richard Gabriel is a leader in the {Lisp} and
	{OOP} community, with years of contributions to
	{standardisation}.  He founded the successful company, {Lucid
	Technologies, Inc.}.

	In 1996 he was Distinguished Computer Scientist at
	ParcPlace-Digitalk, Inc. (later renamed {ObjectShare, Inc.}).

	See also {gabriel}, {Qlambda}, {QLISP}, {saga}.

	(1999-10-12)

Richard Hamming

	<person> Professor Richard Wesley Hamming (1915-02-11 -
	1998-01-07).  An American mathematician known for his work in
	{information theory} (notably {error detection and
	correction}), having invented the concepts of {Hamming code},
	{Hamming distance}, and {Hamming window}.

	Richard Hamming received his B.S. from the University of
	Chicago in 1937, his M.A. from the University of Nebraska in
	1939, and his Ph.D. in mathematics from the University of
	Illinois at Urbana-Champaign in 1942.  In 1945 Hamming joined
	the Manhattan Project at Los Alamos.

	In 1946, after World War II, Hamming joined the {Bell
	Telephone Laboratories} where he worked with both {Shannon}
	and {John Tukey}.  He worked there until 1976 when he accepted
	a chair of computer science at the Naval Postgraduate School
	at Monterey, California.

	Hamming's fundamental paper on error-detecting and
	error-correcting codes ("{Hamming codes}") appeared in 1950.

	His work on the {IBM 650} leading to the development in 1956
	of the {L2} programming language.  This never displaced the
	workhorse language {L1} devised by Michael V Wolontis.  By
	1958 the 650 had been elbowed aside by the 704.

	Although best known for error-correcting codes, Hamming was
	primarily a numerical analyst, working on integrating
	{differential equations} and the {Hamming spectral window}
	used for smoothing data before {Fourier analysis}.  He wrote
	textbooks, propounded aphorisms ("the purpose of computing is
	insight, not numbers"), and was a founder of the {ACM} and a
	proponent of {open-shop} computing ("better to solve the right
	problem the wrong way than the wrong problem the right way.").

	In 1968 he was made a fellow of the {Institute of Electrical
	and Electronics Engineers} and awarded the {Turing Prize} from
	the {Association for Computing Machinery}.  The Institute of
	Electrical and Electronics Engineers awarded Hamming the
	Emanuel R Piore Award in 1979 and a medal in 1988.

	{(http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Hamming.html)}.

	{(http://zapata.seas.smu.edu/~gorsak/hamming.html)}.

	{(http://webtechniques.com/archives/1998/03/homepage/)}.

	[Richard Hamming.  Coding and Information Theory.
	Prentice-Hall, 1980.  ISBN 0-13-139139-9].

	(2003-06-07)

Richard Korf

	<person> A Professor of computer science at the University of
	California, Los Angeles.  Richard Korf received his B.S. from
	{MIT} in 1977, and his M.S. and Ph.D. in computer science from
	Carnegie-Mellon University in 1980 and 1983.  From 1983 to
	1985 he served as Herbert M. Singer Assistant Professor of
	Computer Science at Columbia University.

	Dr. Korf studies problem-solving, {heuristic search} and
	{planning} in {artificial intelligence}.  He wrote "Learning
	to Solve Problems by Searching for Macro-Operators" (Pitman,
	1985).  He serves on the editorial boards of Artificial
	Intelligence, and the Journal of Applied Intelligence.
	Dr. Korf is the recipient of several awards and is a Fellow of
	the {American Association for Artificial Intelligence}.

	{Richard Korf home page (http://www.cs.ucla.edu/~korf/)}.

	(2007-05-01)

Richard P. Feynman

	<person, computing, architecture> /fayn'mn/ 1918-1988.  A US
	physicist, computer scientist and author who graduated from
	{Massachusetts Institute of Technology} and {Princeton}.
	Feynmane was a key figure in helping Oppenheimer and team
	develop atomic bomb.  In 1950 he became a professor at
	{Caltech} and in 1965 became Nobel Prize Laureate in Physics
	for QED (quantum electrodynamics).  He was a primary figure in
	"solving" the Challenger disaster O-ring problem.  He
	"rediscovered" the former Soviet Socialist Republic of Tuva.
	The 2001 film "Infinity" about Feynman's early life featured
	Matthew Broderick and Patricia Arquette.  In 2001, "QED", a
	play about Feynman's life featuring Alan Alda opened.

	{(http://www.feynman.com/)}.

	(2008-01-14)

Richard P. Gabriel

	{Richard Gabriel}

Richard Stallman

	<person> Richard M. Stallman.  Founder of the {GNU} project.
	He resigned from the {AI lab} at {MIT} so he would be free to
	produce {free software} which he could then distribute on his
	own terms.  He went on to establish the {Free Software
	Foundation} to support the production of free software and
	ensure its free distribution.

	E-mail: <rms@gnu.ai.mit.edu>.

	(1994-10-28)

rich object

	In {artificial intelligence}, an object which cannot be
	completely described or represented but about which assertions
	can be made.

	(1994-12-14)

Rich Site Summary

	<World-Wide Web, standard> (RSS, blog, feed) A family of
	{standard} {World-Wide Web} document types containing regularly
	updated, short articles or news items.

	RSS documents (generally called "RSS feeds", "news feeds" or just
	"feeds") can be read with an RSS reader like {BottomFeeder} or
	{Feedly}.  These are sometimes called "{aggregators}" because they
	combine multiple RSS feeds which the user can browse as a single
	list.  The RSS reader tracks which articles the use has read, and
	is typically set to show only new articles, hence the idea of a
	"feed" or flow of new items.

	Most RSS feeds are based on {RDF}.  {RDF} is a structured document
	format for describing textual resources such as news articles
	available on the web.  RSS originally stood for "RDF Site Summary"
	as it was designed to provide short descriptions of (changes to) a
	{web site}.

	Because it provides a standard way to deliver, or "syndicate",
	news or updates from one site to another, RSS is sometimes
	expanded as "Really Simple Syndication".  It is closely associated
	with {blogs}, most of which provide an RSS feed of articles.

	(2013-08-15)

Rich Text Format

	(RTF) An interchange format from {Microsoft} for exchange of
	documents between {Word} and other document preparation
	systems.

	(1994-12-08)

RIFF

	<file format> {Microsoft}'s equivalent to the {Amiga}'s {IFF}
	files format.  RIFF is used for {WAV} and {AVI} files.

	(1995-04-21)

RIGAL

	A language for compiler writing.  Data strucures are atoms,
	lists/trees.  Control is based on {pattern matching}.

	["Programming Language RIGAL as a Compiler Writing Tool",
	M.I. Augustson, Inst of Math and CS of Latvia U, 1987].

	(1994-10-28)

Rigel

	A {database} language?  Based on {Pascal}.  Listed by
	M.P. Atkinson & J.W. Schmidt in a tutorial presented in
	Zurich, 1989.

	(1994-10-28)

right brace

	<character> "}".  {ASCII} character 125.

	Common names: close brace; right brace; right squiggly; right
	squiggly bracket/brace; right curly bracket/brace; {ITU-T}:
	closing brace.  Rare: unbrace; uncurly; rytit ("{" = leftit);
	right squirrelly; {INTERCAL}: bracelet ("{" = embrace).

	Paired with {left brace}

	(1995-03-30)

right bracket

	<character> "]".  {ASCII} character 93.

	Common names: right square bracket; {ITU-T}: closing bracket;
	unbracket.  Rare: unsquare; {INTERCAL}: U turn back.

	Paired with {left bracket}.

	(1997-11-23)

right-click

	<hardware> To {click} the right-most {mouse} button on a mouse
	with more than one button.  This usually performs a different
	function from the left button, e.g. displaying a
	{context-sensitive menu} ({Microsoft Windows}), extending the
	{selection} ({X}).

	When used as a verb it is often written as two words with a
	space instead of a hyphen.

	(2006-07-09)

right join

	{outer join}

right outer join

	{outer join}

right parenthesis

	<character> ")".  {ASCII} character 41.

	Common names: right paren; right parenthesis; right; close;
	thesis ("(" = paren); close paren; close parenthesis; right
	parenthesis; right banana.  Rare: already ("(" = so); rparen;
	{ITU-T}: closing parenthesis; close round bracket, right round
	bracket, {INTERCAL}: wane ("(" = wax); unparenthisey ("(" =
	parenthisey); right ear.

	Paired with {left parenthesis}.

	(1995-03-06)

Right Thing

	That which is *compellingly* the correct or appropriate thing
	to use, do, say, etc.  Always capitalised, always emphasised
	in speech as though capitalised.  Use of this term often
	implies that in fact reasonable people may disagree.  "What's
	the Right Thing for {Lisp} to do when it sees "(mod a 0)"?
	Should it return "a", or give a divide-by-0 error?"

	Opposite: {Wrong Thing}.

	[{Jargon File}]

	(1994-10-28)

Rijndael

	{Advanced Encryption Standard}

ring network

	<networking, topology> A network topology in which all {nodes}
	are connected to a single wire in a ring or {point-to-point}.
	There are no endpoints.  This topology is used by {token ring}
	networks.

	Compare: {bus network}, {star network}.

	(2000-11-16)

ring topology

	{ring network}

Riordan's Internet Privacy Enhanced Mail

	<messaging> (RIPEM) A (not yet complete, but useful)
	implementation of {Privacy Enhanced Mail} (PEM).  RIPEM allows
	your {electronic mail} to have the four security facilities
	provided by PEM: {disclosure protection} (optional),
	originator authenticity, message {integrity} measures and
	{non-repudiation} of origin (always).

	RIPEM was written primarily by Mark Riordan
	<mrr@scss3.cl.msu.edu>.  Most of the code is in the {public
	domain}, except for the {RSA} routines, which are a library
	called RSAREF licensed from {RSA Data Security, Inc}.

	The current (November 1993) version of RIPEM is 1.1a; the
	current version of the {Macintosh} {port} of RIPEM is 0.8b1.

	(1998-07-03)

RIP

	1. <networking> {Routing Information Protocol}.

	2. <application, printer> {Raster Image Processor}.

	(2003-09-10)

rip

	<audio, video, legal> (From "rip off" - to steal) To copy
	audio or video, typically from a {compact disc} or {DVD}, to a
	{file} on a {computer} {hard disk}.  A dedicated program to do
	this is called a "ripper" though it is often a function of
	player software.

	Ripping usually includes converting the data to a format that
	is more suitable for computer playback, e.g. {MP3} {digital
	audio} or {DivX} video.  The process is entirely digital so it
	is possible to make a perfect copy of the data.  However the
	resulting files are large (a few {megabytes} for an audio
	track, a few {gigabytes} for a film) so the conversion often
	includes {compression} to reduce the file size at the cost of
	some loss of quality.

	While it may be legal to do this for personal use,
	distributing a ripped copyright work to others could result in
	prosecution.

	See also {ripcording}.

	(2008-01-21)

ripcording

	<audio> (From "{ripping}" and "recording") Encoding
	{streaming} {digital audio} from the {Internet} to an {MP3}
	file or similar.  Ripcording is commononly used to copy
	commercial music from a free stream instead of paying to
	download.

	(2006-01-27)

RIPE

	{Réseaux IP Européens}

RIPEM

	{Riordan's Internet Privacy Enhanced Mail}

ripper

	{rip}

RISC

	{Reduced Instruction Set Computer}

RISCiX

	<operating system> /risk-icks/ (Or "RISC iX") {BSD}-based
	{Unix} developed by {Acorn Computers Ltd.} (Cambridge, UK) to
	run on 32-bit {ARM} {RISC} processors.

	RISCiX was launched circa 1989 for three production machines -
	the R140, R260, the discless R225; and other prototypes.

	(2003-09-24)

RISC OS

	<operating system> (Reduced Instruction Set Computer Operating
	System) The {operating system} originally developed by {Acorn
	Computers} for their {Archimedes} family of {personal
	computers}.

	RISC OS replaced the {Arthur} operating system used on the
	first Archimedeses.

	It is written in {ARM} {assembly code} and distributed on
	{ROM} so it takes up no disk space and takes no time to load.
	It supports {cooperative multitasking} with memory management
	and includes a {graphical user interface} or "WIMP".  It is
	written in a highly modular style and makes extensive use of
	{vectors} so it is easy to modify and extend by loading new
	modules in {RAM}.  Many {system calls} (called "SWIs" -
	software interrupts) are available to application programmers
	and some of these are available as user comands via a built-in
	{command-line interpreter}.  RISC OS also supported {outline
	fonts} when only {bitmap fonts} were available on most other
	{platforms}.

	Following the virtual demise of Acorn, development of RISC OS
	4 was taken over by {RISCOS Ltd} on 1999-03-05 and released on
	1999-07-01.

	Latest version: 4.39, as of 2004-09-21.

	(2004-09-21)

RiscPC

	<computer> The final addition to {Acorn}'s {Archimedes} family
	of {personal computers}, released in April 1994.  The RiscPC
	allowed a second processor, e.g. an {Intel 486} or a second
	{ARM}, to share the {bus}, memory and {peripherals} with the
	main processor.  It also had full 24-bit colour graphics
	support.

	The Risc PC 600 (the first to be launched) had the new
	{ARM600} processor and {RISC OS} 3.5.  The RiscPC 700 had an
	{ARM710} processor and RISC OS 3.6, and the SA had the
	{StrongARM} processor and RISC OS 3.7.

	{Castle Technology Ltd} later introduced the {IYONIX pc} with
	the 32-bit {X-Scale} processor and {USB} sockets.  USB and
	StrongArm can also be retrofitted to earlier RiscPCs.

	RiscPCs are among the most energy efficient home computers.

	{Acorn Computer Museum
	(http://pages.zoom.co.uk/acorn.computer/riscpc.html)}.

	(2004-09-21)

RISC System/6000

	<computer> (Or "RS/6000") {IBM}'s current {RISC}-based {Unix}
	computer.  The RS/6000, announced in 1990, replaced the
	{RT-PC}.  It runs {AIX} 3.x and 4.x.  Most models have an
	{MCA} bus.  A wide range of models are available.

	(1995-04-06)

Risk Based Testing

	<testing> Testing based on identification of potential risks
	(or "candidate risks"), which should be analysed by the
	project stakeholder or which might appear during the project's
	development.

	(2006-09-07)

RISQL

	{Red Brick Intelligent SQL}

RITL

	{Wireless Local Loop}

RJ-11

	<hardware, communications> An American-style telephone jack
	with six possible connections.  A telephone normally uses two
	pairs of wires.  Often found on the back of US-manufactured
	{modems} or for connection to a {leased line}.

	(1998-06-30)

RJ-45

	<hardware> A {serial} connector which looks very much like a
	standard telephone connector, except it houses eight wires
	instead of four.

	RJ-45s are typically found on {computers} either integrated
	into the {mother board} or on a {NIC}.  Because they are so
	small they are often used on devices such as {terminal
	servers} that have many {ports}.

	{Ethernet} ({10baseT}) and {Token Ring} sometimes use four
	wires of an RJ-45 plug, {100baseVG} uses all eight.
	{100BaseTX} uses the same four wires of the RJ-45 connector as
	10baseT but the wire must be {category 5} instead of {category
	3}.

	[Would the cable normally be {shielded twisted pair} or
	{unshielded twisted pair}?]

	(2004-05-22)

RJE

	{Remote Job Entry}

RKM

	{Rom Kernel Manual}

RL

	(MUD community) Real Life.

	"Firiss laughs in RL" means that Firiss's player is laughing.

	Opposite: {VR}.

	[{Jargon File}]

	(1995-05-09)

rl

	Kent Wittenburg <kentw@bellcore.com>.

	The RL files contain code for defining {relational grammars}
	and using them in a bottom-up parser to recognise and/or parse
	expressions in Relational Languages.

	The approach is a simplification of that described in
	Wittenburg, Weitzman, and Talley (1991), Unification-Based
	Grammars and Tabular Parsing for Graphical Languages, Journal
	of Visual Languages and Computing 2:347-370.  This code is
	designed to support the definition and parsing of Relational
	Languages, which are characterised as sets of objects standing
	in user-defined relations.

	Correctness and completeness is independent of the order in
	which the input is given to the parser.  Data to be parsed can
	be in many forms as long as an interface is supported for
	queries and predicates for the relations used in grammar
	productions.

	To date, this software has been used to parse recursive
	pen-based input such as math expressions and {flow charts}; to
	check for {data integrity} and design conformance in
	databases; to automatically generate constraints in
	drag-and-drop style graphical interfaces; and to generate
	graphical displays by parsing relational data and generating
	output code.

	requires:	Common Lisp

	ports: Allegro Common Lisp 4.1, Macintosh Common Lisp 2.0

	{(ftp://flash.bellcore.com/rl/)}.

	(1992-10-31)

RLaB

	A {MATLAB}-like matrix-oriented programming language/toolbox.
	RLaB focusses on creating a good experimental environment (or
	laboratory) in which to do matrix mathematics.  Currently RLaB
	has numeric scalars and matrices (real and complex), and
	string scalars, and matrices.  RLaB also contains a list
	variable type, which is a heterogeneous associative array.

	Version 0.95 includes an interpreter, libraries and
	documentation.  E-mail: Ian Searle <ians@eskimo.com>.
	{(ftp://evans.ee.adfa.oz.au)}.  Requires {GNUPLOT},
	lib[IF]77.a (from f2c).  Ported to many {platforms} including
	{Unix}, {OS/2},	{Amiga}.

	(1993-10-27)

RLDRAM

	<storage> (Reduced Latency DRAM) A kind of {dynamic random
	access memory}.  RLDRAM comes in "common IO" and "separate IO"
	configurations.  It supports {broadside addressing}.  It is
	typically used in networking gear and set-top boxes that
	require high {bandwidth} memory.

	[What is the latency, and how does it compare to ordinary DRAM?]

	(2007-03-20)

RLE

	{run-length encoding}

RLF

	{Reuse Library Framework} of the {DoD}.

RLL

	1. <language> {Representation Language Language}.

	2. <storage> {Run Length Limited}.

	(2003-07-24)

rlogin

	<networking, tool> (Remote login) The {4.2BSD} {Unix} utility
	to allow a user to log in on another {host} via a network.
	Rlogin communicates with a {daemon} on the remote host.

	{Unix manual page}: rlogin(1).

	See also {telnet}.

	(1997-01-12)

RMAG

	{Recursive Macro Actuated Generator}

RMAIL

	<messaging> A {MUA} written in {Emacs Lisp} to run within
	{Emacs}.

	(1996-03-21)

RMI

	{Remote Method Invocation}

RM-ODP

	<programming> The {ISO Reference Model} for {Open
	Distributed Environments}.

	{(http://pepper.open.ac.uk/~armsarms/sa.html)}.

	(1995-11-23)

RMON

	1. <networking> {remote monitoring}.

	2. {Remote Monitor}.

	(2003-09-15)

RMS

	1. {Record Management Services}.

	2. {Richard Stallman}.

RNF

	{root normal form}

ro

	<networking> The {country code} for Romania.

	(1999-01-27)

roach

	<jargon> A {Bell Labs} term meaning destroy, especially of a
	data structure.  Hardware gets {toast}ed or {fried}, software
	gets roached.

	[Why?]

	[{Jargon File}]

	(1999-02-08)

ROADS

	Subsystem of ICES.  Sammet 1969, p.616.

Robert T. Morris

	The creator of the "{Internet Worm}" that wreaked havoc on
	many {Internet} systems for a day or two.

	Morris, the son of an NSA spook, did some jail time for
	releasing the worm.

	(1995-01-12)

ROBEX

	ROBot EXapt.  Aachen Tech College.  Based on EXAPT.  Version:
	ROBEX-M for micros.

RoboHELP

	<tool> A {Microsoft} {Windows} Help authoring tool from {Blue
	Sky Software}.  Used with {Microsoft Word} to create Help
	files for inclusion in a Windows application or for stand
	alone use.

	(1997-01-19)

robot

	1. <robotics> A mechanical device for performing a task which
	might otherwise be done by a human, e.g. spraying paint on
	cars.

	See also {cybernetics}.

	2. <chat> An {IRC} or {MUD} user who is actually a program.
	On IRC, typically the robot provides some useful service.
	Examples are {NickServ}, which tries to prevent random users
	from adopting {nicks} already claimed by others, and MsgServ,
	which allows one to send {asynchronous} messages to be
	delivered when the recipient signs on.  Also common are
	"annoybots", such as KissServ, which perform no useful
	function except to send cute messages to other people.
	Service robots are less common on {MUDs}; but some others,
	such as the "Julia" robot active in 1990--91, have been
	remarkably impressive {Turing test} experiments, able to pass
	as human for as long as ten or fifteen minutes of
	conversation.

	3. <World-Wide Web> {spider}.

	[{Jargon File}]

	(1996-03-23)

robot exclusion standard

	{standard for robot exclusion}

robots.txt

	{standard for robot exclusion}

robust

	Said of a system that has demonstrated an ability to recover
	gracefully from the whole range of exceptional inputs and
	situations in a given environment.  One step below
	{bulletproof}.  Carries the additional connotation of elegance
	in addition to just careful attention to detail.  Compare
	{smart}, opposite: {brittle}.

	[{Jargon File}]

Rockwell Protocol Interface

	(RPI) A cost-cutting feature of some {modems} allowing data
	{compression} and {error correction} (e.g. {ITU-T} {V.42bis},
	{V.42}) to be provided in software instead of hardware.

	Usually an RPI modem comes with RPI-aware software (e.g. the
	low-end RPI models of Supra come with the {COMit} which
	supports RPI, providing {MNP} 2,4,5,7, V.42 and V.42bis).  RPI
	is not supported by many commercial packages nor by current
	releases of popular {shareware} communication programs
	({Telix} v3.22 and {Telemate} v4.12).  {ProComm Plus} for
	{Windows 2.0} will support RPI.

	Currently {Rockwell} produce two classes of RPI chip set.  The
	original is capable of 2400 bit/s data, 9600 bit/s class
	1-only fax.  The newer one is capable of 14400 bit/s data/fax.
	Currently there are no RPI chipset from Rockwell supporting
	speeds higher than 14400 bit/s.

	(1994-07-01)

Rocky Mountain Basic

	<language> The {BASIC} language used by {Hewlett Packard} on
	their {680x0}-based computers.  Rocky Mountain Basic is good
	for interfaces to {IEEE 488} controls and contains many
	mathematical and matrix functions.  It has about 600 commands.
	Typical applications include automatic test stations.

	(1996-04-28)

rococo

	<jargon, abuse> {Baroque} in the extreme.  Used to imply that
	a program has become so encrusted with the software equivalent
	of gold leaf and curlicues that they have completely swamped
	the underlying design.  Called after the later and more
	extreme forms of Baroque architecture and decoration prevalent
	during the mid-1700s in Europe.  Alan Perlis said: "Every
	program eventually becomes rococo, and then rubble."

	Compare {critical mass}.

	[{Jargon File}]

	(1996-04-06)

ROCOF

	{Rate of Occurrence of Failures}

roff

	<text, tool> A text formatting language associated with
	{Unix}.  See {groff}, {nroff}, {troff}.

	[Was roff the original?  Platform(s)?]

	(1998-11-14)

ROFL

	{ROTFL}

ROFLMAO

	{ROTFLMAO}

rogue

	<games> [Unix] A Dungeons-and-Dragons-like game using
	character graphics, written under BSD Unix and subsequently
	ported to other Unix systems.  The original BSD "curses(3)"
	screen-handling package was hacked together by Ken Arnold to
	support "rogue(6)" and has since become one of Unix's most
	important and heavily used application libraries.  Nethack,
	Omega, Larn, and an entire subgenre of computer dungeon games
	all took off from the inspiration provided by "rogue(6)".  See
	also {nethack}.

	[{Jargon File}]

rollback

	<database> Reverting data in a {database} to an earlier state,
	usually in response to an error or aborted operation.

	In a {transaction} based database system, transactions are
	considered {atomic}.  If an error occurs while performing a
	transaction, the database is automatically rolled back
	to the state at the previous {commit}.

	Rollback may also be performed by an explicit rollback
	transaction.

	(2000-01-15)

ROM

	{Read-Only Memory}

ROM BIOS

	{Basic Input/Output System}

ROME

	An experimental {object-oriented} language.

	["The Point of View Notion for {Multiple Inheritance}",
	B. Carre et al, SIGPLAN Notices 25(10):312-321 (OOPSLA/ECOOP
	'90) (Oct 1990)].

	(1994-11-30)

Rom Kernel Manual

	<publication> (RKM) A series of books or files for developers
	for the {Amiga} computer, containing information about the
	{operating system} {kernel} stored in {ROM}.

	(1996-04-06)

room

	{channel}

ROOM Methodology

	{Real-Time Object-Oriented Modeling}

room-temperature IQ

	<abuse> (IBM) 80 or below.  Used in describing the expected
	intelligence range of the {luser}.  "Well, but how's this
	interface going to play with the room-temperature IQ crowd?"
	This is a much more insulting phrase in countries that use
	Celsius thermometers.

	See {drool-proof paper}.

	[{Jargon File}]

	(1996-04-06)

root

	1. <operating system> The {Unix} {superuser} account (with
	user name "root" and user ID 0) that overrides file
	permissions.  The term {avatar} is also used.  By extension,
	the privileged system-maintenance login on any {operating
	system}.

	See {root mode}, {go root}, {wheel}.

	[{Jargon File}]

	(1994-10-27)

	2. <operating system> {root directory}.

	(1996-11-21)

	3. <data> {root node}.

	(1998-11-14)

root bridge

	<communications, hardware, networking> A {bridge} which
	continuously transmits {network} {topology} information to
	other bridges, using the {spanning tree protocol}, in order to
	notify all other bridges on the network when topology changes
	are required.

	This means that a network is able to reconfigure itself
	whenever a network link (e.g. another bridge) fails, so an
	alternative path can be found.  The presence of a root
	bridge also prevents {loops} from forming in the network.

	The root bridge is where the paths that {frames} take through
	the network they are assigned.  It should be located centrally
	on the network to provide the shortest path to other links on
	the network.  Unlike other bridges, the root bridge always
	forwards frames out over all of its {ports}.

	Every network should only have one root bridge.  It should
	have the lowest bridge ID number.

	(2000-11-26)

root directory

	<file system> The topmost node of a {hierarchical file
	system}.

	(1996-11-21)

root mode

	Synonym with {wizard mode} or "wheel mode".  Like these, it is
	often generalised to describe privileged states in systems
	other than {operating systems}.

	[{Jargon File}]

root node

	<mathematics, data> In a {tree}, a node with no {parents}, but
	which typically has {daughters}.

	(1998-11-14)

Root Normal Form

	(RNF) {Head Normal Form} in {graph rewriting}.

root version

	The initial value of an object in a {change management}
	system.

ROSE

	{Remote Operations Service Element}

Rosette

	<language> A {concurrent} {object-oriented language} from
	{MCC}.

	[Details?]

	(1997-11-26)

Roskind grammars

	<tool> {Yacc}-based {parsers} for {C} and {C++} by Jim
	Roskind.  It does not use the %prec and %assoc YACC features
	so conflicts are never hidden.  The C {grammar} has only one
	{shift-reduce conflict}, the C++ grammar has a few more.  With
	{byacc} it can produce graphical {parse trees} automatically.
	The C grammar conforms to {ANSI C} and the C++ grammar
	supports {cfront} 2.0 constructs.

	Latest version: cpp5 (cf2.0).

	{(ftp://ftp.infoseek.com/pub/c++grammar/)}.

	(2003-10-09)

rot13

	/rot ther'teen/ [{Usenet}: from "rotate alphabet 13 places"],
	v. The simple Caesar-cypher encryption that replaces each
	English letter with the one 13 places forward or back along
	the alphabet, so that "The butler did it!" becomes "Gur ohgyre
	qvq vg!"  Most {Usenet} news reading and posting programs
	include a rot13 feature.  It is used to enclose the text in a
	sealed wrapper that the reader must choose to open - e.g. for
	posting things that might offend some readers, or {spoilers}.
	A major advantage of rot13 over rot(N) for other N is that it
	is self-inverse, so the same code can be used for encoding and
	decoding.

	[{Jargon File}]

rotary debugger

	(Commodore) Essential equipment for those late-night or
	early-morning debugging sessions.  Mainly used as sustenance
	for the hacker.  Comes in many decorator colours, such as
	Sausage, Pepperoni, and Garbage.

	(1995-01-11)

rotational latency

	<storage, hardware> The time for the start of the required
	{sector} on a {disk} to appear underneath the {read/write
	head}.  The worst case is where it has just passed the head
	when the request is received.  For a {disk drive} with N heads
	per surface, rotating at R revolutions per minute, the average
	rotational latency will be

		L = 30/NR seconds.

	Rotational latency is one component of {access time}.

	(2009-11-06)

rotations per minute

	{revolutions per minute}

ROTFL

	<chat> (Or "ROFL") Rolling on the floor laughing (or rolls...).

	Used in {chat}, {MUD}, {news}.

	See also {ROTFLMAO}, {ROTFLOL}.

	(1996-02-22)

ROTFLMAO

	<chat> Rolling on the floor laughing my ass (arse) off.  An
	extreme form of {ROTFL}.

	(2000-11-12)

ROTFLMAOASTC

	<chat> Rolling on the floor laughing my ass (or arse) off and scaring
	the cat.  The superlative form of {ROTFL}.

	(2004-04-06)

ROTFLOL

	<chat> Rolling on the floor laughing out loud.  See {ROTFL}.

	(1997-03-06)

round-robin

	<algorithm> A {scheduling} {algorithm} in which processes are
	activated in a fixed cyclic order.  Those which cannot proceed
	because they are waiting for some event (e.g. termination of a
	{child process} or an input/output operation) simply return
	control to the scheduler.  The virtue of round-robin
	scheduling is its simplicity - only the processes themselves
	need to know what they are waiting for or how to tell if it
	has happened.  However, if a process goes back to sleep just
	before the event for which it is waiting occurs then the event
	will not get handled until all the other processes have been
	activated.

	Compare {priority scheduling}.

	(1996-02-10)

round tape

	<storage, jargon> Industry-standard 1/2-inch {magnetic tape}
	(7- or 9-track) on traditional circular reels.

	See {macrotape}, opposite: {square tape}.

	[{Jargon File}]

	(1996-02-03)

round-trip time

	(RTT) A measure of the current delay on a network, found by
	timing a packet bounced off some remote host.  This can be
	done with {ping} -s.

	(1994-11-30)

route

	<networking> /root/ The sequence of {hosts}, {routers},
	{bridges}, {gateways}, and other devices that network traffic
	takes, or could take, from its source to its destination.  As
	a verb, to determine the link down which to send a {packet},
	that will minimise its total journey time according to some
	{routeing algorithm}.

	You can find the route from your computer to another using the
	program {traceroute} on {Unix} or tracert on {Microsoft
	Windows}.

	(2001-05-26)

routed

	<networking> /root dee/ Route Daemon.  A program which runs
	under {4.2BSD} {Unix} systems and derivatives to propagate
	routes among machines on a {local area network}, using the
	{Routing Information Protocol}.  See also {gated}.

	(2002-07-31)

route flapping

	{flapping router}

routeing

	<networking> (US "routing") /roo'ting/ The process, performed
	by a {router}, of selecting the correct interface and next
	{hop} for a {packet} being forwarded.

	This is the British and international standard spelling.

	See also {Exterior Gateway Protocol}, {Interior Gateway
	Protocol}.

	(2001-05-28)

routeing domain

	<networking> (US "routing") A set of {routers} that exchange
	routeing information within an {administrative domain}.

	(1994-12-14)

router

	<networking> /roo't*/ A device which forwards {packets}
	between {networks}.  The forwarding decision is based on
	{network layer} information and routing tables, often
	constructed by routing {protocols}.

	{Unix manual page}: route(8).

	See also {bridge}, {gateway}, {Exterior Gateway Protocol},
	{Interior Gateway Protocol}, {flapping router}.

	(1999-08-24)

routine

	{subroutine}

routing

	<tool> /row'ting/ Using a kind of rotating cutting tool called
	a router, pronounced /row't*/.  In the USA a {router},
	pronounced /row't*/, is also a network device that performs
	"routing".  In the UK, the network device is pronounced
	/roo't*/ and what it does is spelled "{routeing}".

	(2002-07-31)

Routing Information Protocol

	1. <networking> (RIP) A {distance vector}, as opposed to {link
	state}, {routing} {protocol}.  RIP is an {Internet} {standard}
	{Interior Gateway Protocol} defined in {STD} 34, {RFC 1058}
	and updated by {RFC 1388}.

	See also {Open Shortest Path First}.

	2. <networking> (RIP) A companion {protocol} to {IPX} for
	exchange of {routing} information in a {Novell} {network}.
	RIP has been partly superseded by {NLSP}.  It is not related
	to the {Internet} protocol of the same name.

	(1997-03-04)

routing policy

	<networking> Rules implemented on a {router} or other network
	device to select routes from peers, customers, and upstream
	providers; select and modify routes you send to peers,
	customers and upstream providers and identify routes within
	your own {Autonomous System}.

	{(http://www.nanog.org/mtg-0202/ppt/golding/sld005.htm)}.

	(2008-12-12)

Routing Table Maintenance Protocol

	<protocol> (RTMP) A {protocol} used by {AppleTalk} to ensure
	that all {routers} on the network have consistent routing
	information.

	(1997-05-11)

row

	{record}

Row Address Strobe

	<storage> (RAS) An input to a {dynamic random-access memory}
	(DRAM) to indicate that the row address lines are valid.

	(2004-02-15)

row-level locking

	<database> A technique used in {database management systems},
	where a {row} is locked for writing to prevent other users
	from accessing data being while it is being updated.

	Other techniques are {table locking} and {MVCC}.

	(1999-06-18)

Royal Veterinary and Agricultural University

	Address: Thorvaldsensvej 40, DK-1871 Frederiksberg C, Denmark.

	(1994-12-12)

RPC

	{Remote Procedure Call}

RPG

	1. <games> {Role-Playing Game}.

	2. <tool> {Report Program Generator}.

	3. <person> {Richard Gabriel}.

	(1999-10-12)

RPG-II

	{Report Program Generator}

RPI

	{Rockwell Protocol Interface}

RPL

	Reverse Polish LISP.  Language used by HP-28 and HP-48
	calculators.

RPL-1

	Data reduction language.  Proc SJCC 30:571-575, AFIPS (Spring
	1967).

RPM

	<operating system, tool> A {Unix} {package}-management system
	that helps installation of software packages; similar to an
	install program.

	[More details?  Reference?  Expansion?]

	(1996-03-07)

rpm

	{rotation per minute}

RPN

	{postfix notation}

Répondez s'il vous plait

	<chat> (RSVP) French for "please reply", commonly found
	(abbreviated) on invitations.

	(1996-12-02)

RPT

	Unify.  Report Writer Language.

RRL

	{Remote Reference Layer}

RRS

	An early definition of {Scheme}.  Revised in {R2RS}.

	["The Revised Report on Scheme", G.L. Steele et al, AI Memo
	452, MIT, Jan 1978].

	(1994-10-28)

	[Was the original "Report on Scheme" published?]

RS

	1. <character> {Record Separator}

	2. <standard> Recommended Standard, a series of {EIA}
	{standards} including {EIA-232}.

RS-232

	{EIA-232}

RS-232C

	Renamed {EIA-232C}

	(2004-08-02)

RS-232D

	<communications, standard> The {EIA} equivalent of {ITU-T}
	{standard} {V.28}.

	[Difference from EIA-232/EIA-232C?]

	(1995-03-02)

RS-422

	{EIA-422}

RS-423

	{EIA-423}

RS-449

	{EIA-449}

RS-485

	{EIA-485}

RS6000

	{RISC System/6000}

RS/6000

	{RISC System/6000}

RS6K

	{RISC System/6000}

RSA

	<cryptography, company> (The initials of the authors)

	1. {RSA Data Security, Inc.}

	2. Their {cryptography} systems, especially {RSA encryption}.

	The RSA {algorithm} was first described in the paper:

	[R. Rivest, A. Shamir, L. Adleman, "A Method for Obtaining
	Digital Signatures and Public-key Cryptosystems". CACM 21,2;
	1978]

	(1995-03-21)

RSA Data Security, Inc.

	<cryptography, company> (After Rivest, Shamir, Adleman - see
	{RSA}) A recognised world leader in {cryptography}, with
	millions of copies of its software encryption and
	authentication installed and in use worldwide.  RSA's
	technologies are the global {de facto standard} for {public
	key cryptography} and {digital signatures}, and are part of
	existing and proposed {standards} for the {Internet}, {ITU-T},
	{ISO}, {ANSI}, {PKCS}, {IEEE} and business and financial
	networks around the world.

	{(http://rsa.com/)}.

	(1994-12-08)

RSA encryption

	<cryptography, algorithm> A {public-key cryptosystem} for both
	{encryption} and {authentication}, invented in 1977 by Ron
	Rivest, Adi Shamir, and Leonard Adleman.  Its name comes from
	their initials.

	The RSA {algorithm} works as follows.  Take two large {prime
	numbers}, p and q, and find their product n = pq; n is called
	the modulus.  Choose a number, e, less than n and {relatively
	prime} to (p-1)(q-1), and find its reciprocal mod (p-1)(q-1),
	and call this d.  Thus ed = 1 mod (p-1)(q-1); e and d are
	called the public and private exponents, respectively.  The
	public key is the pair (n, e); the private key is d.  The
	factors p and q must be kept secret, or destroyed.  It is
	difficult (presumably) to obtain the private key d from the
	public key (n, e).  If one could factor n into p and q,
	however, then one could obtain the private key d.  Thus the
	entire security of RSA depends on the difficulty of factoring;
	an easy method for factoring products of large prime numbers
	would break RSA.

	{RSA FAQ (http://rsa.com/rsalabs/faq/faq_home.html)}.

	(2004-07-14)

RSCS

	<communications> {Remote Spooling Communication
	Subsystem}.

	(1996-02-04)

Réseaux Associés pour la Recherche Européenne

	(RARE) An association of national and international European
	networks and users.

	See also {CCIRN}.

	(1994-11-30)

Réseaux IP Européens

	(RIPE) A collaboration between European networks which use the
	{TCP/IP} {protocol} suite to provide {Internet} services.

	(1994-11-30)

RS flip-flop

	{SR flip-flop}

rsh

	Remote shell.

	A {Berkeley Unix} networking command to execute a given
	command on a remote {host}, passing it input and receiving its
	output.  Rsh communicates with a {daemon} on the remote host.
	It is sometimes called remsh to avoid confusion with the
	{restricted shell}, also called "rsh".

	{Unix manual page}: rsh(1).

	(1994-12-08)

RSI

	1. <medical> {overuse strain injury}.

	2. <company> {Research Systems, Inc.}.

	(1999-01-08)

RSL

	{RAISE Specification Language}

RSN

	{Real Soon Now}

RSS

	{Rich Site Summary}

RSS feed

	{Rich Site Summary}

rstat

	{netstat}

RSTS/E

	<operating system> A {multi-user}, general purpose
	{timesharing} {operating system} produced by {Mentec, Inc.}
	and licensed bu {Digital Equipment Corporation}.

	RSTS/E can be used for interactive timesharing, {batch
	processing}, indirect command file processing, program
	development using a variety of languages and tools, and a wide
	variety of special purpose applications.  Up to 127 concurrent
	{terminal} users in both local and remote locations through
	multi-terminal services can interact with application tasks.
	Without multi-terminal services, 63 users are the maximum.
	Tasks can share computational, storage, and input/output
	services provided by the RSTS/E system.

	{Full description
	(http://pyrfect.ico.olivetti.com/SPD/13-01-37.txt)}.

	(1996-06-04)

RSVP

	1. <chat> {Répondez s'il vous plait}.

	2. <protocol> {Resource Reservation Protocol}.

	3. <body> {Revolutionary Surrealist Vandal Party}.

	(2001-03-18)

RT-11

	<operating system> A {real time} {operating system} for the
	{DEC} {PDP-11} computers, used in the early 1980s and still in
	2005 found occasionally in old {embedded systems}.

	(2005-01-26)

RTBM

	({Unix}) Read The Bloody Manual.

	{Commonwealth Hackish} variant of {RTFM}.  RTBM is often the
	entire text of the first reply to a question from a {newbie};
	the *second* would escalate to "RTFM".

	[{Jargon File}]

	(1994-12-08)

RTC++

	A {real-time} extension of {C++}.

	["Object-Oriented Real-Time Language Design: Constructs for
	Timing Constraints", Y. Ishikawa et al, SIGPLAN Notices
	25(10):289-298 (OOPSLA/ECOOP '90) (Oct 1990)].

	(1994-12-08)

RT-CDL

	{Real-Time Common Design Language}

RTEE

	Real Time Engineering Environment: a set of CASE tools
	produced by Westmount Technology B.V.

RTF

	{Rich Text Format}

RTFAQ

	({Usenet}, primarily written, by analogy with {RTFM}) Read the
	FAQ!

	An exhortation that the person addressed ought to read the
	newsgroup's {FAQ list} before posting questions.

	[{Jargon File}]

	(1994-12-08)

RTFB

	<jargon> (By analogy with {RTFM}) Read The Fucking
	Binary.

	Used when neither {documentation} nor {source} for the problem
	at hand exists, and the only thing to do is use some
	{debugger} or {monitor} and directly analyse the {assembler}
	or even the {machine code}.

	"RTFB" is the least pejorative of the RTF? forms, the anger is
	directed at the absence of both source *and* adequate
	documentation rather than at the person asking a question.

	[{Jargon File}]

	(1995-08-20)

RTFM

	<jargon> /R T F M/ Read The Fucking Manual (always
	abbreviated, sometimes bowdlerised to "Fine" or "Friendly") An
	(unhelpful) {guru}'s traditional response when someone asks a
	question in a {newsgroup} or {mailing list} which he could
	have easily answered for himself had he bothered to RTFM.

	The term may also be used to indicate that you couldn't find
	the answer in the manual.  E.g. "How do I interface Unix to my
	toaster?  And yes, I did RTFM but the {FM} didn't help and I
	can't {RTFS}."

	Other derived forms include {RTFAQ}, {RTFB}, {RTM}, {RYFM}
	and, more recently, {STFW}.  Compare: {UTSL}.

	[Earliest use?]

	[{Jargon File}]

	(2003-06-07)

RTFS

	<jargon> 1. Read The Fucking Source.  Variant form of {RTFM},
	used when the problem at hand is not necessarily obvious and
	not answerable from the manuals - or the manuals are not yet
	written and maybe never will be.  For even trickier
	situations, see {RTFB}.  Unlike RTFM, the anger inherent in
	RTFS is not usually directed at the person asking the
	question, but rather at the people who failed to provide
	adequate documentation.

	2. Read The Fucking Standard; this oath can only be used when
	the problem area (e.g. a language or operating system
	interface) has actually been codified in a ratified standards
	document.  The existence of these standards documents (and the
	technically inappropriate but politically mandated compromises
	that they inevitably contain, and the impenetrable {legalese}
	in which they are invariably written, and the unbelievably
	tedious bureaucratic process by which they are produced) can
	be unnerving to hackers, who are used to a certain amount of
	ambiguity in the specifications of the systems they use.
	(Hackers feel that such ambiguities are acceptable as long as
	the {Right Thing} to do is obvious to any thinking observer;
	sadly, this casual attitude toward specifications becomes
	unworkable when a system becomes popular in the {Real World}.)
	Since a hacker is likely to feel that a standards document is
	both unnecessary and technically deficient, the deprecation
	inherent in this term may be directed as much against the
	standard as against the person who ought to read it.

	[{Jargon File}]

RTI

	{Return from interrupt}

RTL

	1. <hardware> {Resistor-Transistor Logic}.

	2. <language> {Register Transfer Language}.

RTL/1

	<language> Real Time Language.

	A {real-time} language written by J.G.P. Barnes of {ICI} in
	1971.  It was the predecessor of {RTL/2}.

	["Real Time Languages for Process Control", J.G.P. Barnes,
	Computer J 15(1):15-17, Feb 1972].

	(1994-11-09)

RTL/2

	Real Time Language.

	A small {real-time} language based on {ALGOL 68}, with
	{separate compilation} designed by J.G.P. Barnes of ICI in
	1972 as a successor to {RTL/1}.

	A program is composed of separately compilable modules called
	"bricks" which may be datablocks, procedures or stack.  A
	stack is a storage area for use as a workspace by a task.  The
	language is {block-structured} and {weakly typed}.  Simple
	types are byte, int, frac and real.  There are no {Booleans}.
	Compound types may be formed from {arrays}, {records} and
	{refs} (pointers).  There are no user-defined types.  Control
	statements are if-then-elseif-else-end, for-to-by-do-rep,
	block-endblock, switch, goto, and label variables.

	["RTL/2: Design and Philosophy", J.G.P. Barnes, Hayden & Son,
	1976].

RTM

	1. [{Usenet}] Read The Manual.  Politer variant of {RTFM}.

	2. Robert T. Morris Jr.

	The perpetrator of the great Internet worm of 1988 (see {Great
	Worm}); villain to many, naive hacker gone wrong to a few.
	Morris claimed that the worm that brought the Internet to its
	knees was a benign experiment that got out of control as the
	result of a coding error.  After the storm of negative
	publicity that followed this blunder, Morris's user name on ITS
	was hacked from RTM to {RTFM}.

	[{Jargon File}]

	(1995-03-31)

RTMP

	{Routing Table Maintenance Protocol}

RTOS

	{Real-Time Operating System}

RTP

	{Real-Time Transport Protocol}

RT-PC

	<computer> RISC Technology Personal Computer.

	(Commonly, but incorrectly, known as the "PC-RT", later
	changed to just "RT") {IBM}'s first {RISC}-based {Unix}
	computer.  The RT-PC was the predecessor to IBM's {RS/6000}.
	It ran {AIX} 1.x and 2.x and had a {PC-AT} bus and IBM's
	{ROMP} {microprocessor}.  It was withdrawn from the marketing
	around 1989 or 1990.

	(1995-04-06)

RTS

	1. <operating system> {run-time system}.

	2. <programming> {return from subroutine}.

	(1999-07-26)

RTSA

	{real-time structured analysis}

RTSP

	{Real Time Streaming Protocol}

RTT

	{Round-Trip Time}

RTTI

	{Run Time Type Information}

RTTY

	{radio teletypewriter}

ru

	<networking> The {country code} for the Russian Federation.

	(1999-01-27)

rubi

	{furigana}

Ruby

	<language>

	1. A {relational language} designed by Jones and M. Sheeran in
	1986 for describing and designing circuits (a {hardware
	description language}).  Ruby programs denote {binary
	relations} and programs are built-up inductively from
	primitive relations using a pre-defined set of {relational
	operators}.  Ruby programs also have a geometric
	interpretation as networks of primitive relations connected by
	wires, which is important when layout is considered in circuit
	design.

	Ruby has been continually developed since 1986, and has been
	used to design many different kinds of circuits, including
	{systolic arrays}, {butterfly networks} and arithmetic
	circuits.

	{(ftp://ftp.cs.chalmers.se/pub/misc/ruby/)}.

	E-mail: <graham@cs.chalmers.se>.

	["Ruby - A Language of Relations and Higher-Order Functions",
	M. Sheeran, Proc 3rd Banff Workshop on Hardware Verification,
	Springer 1990].

	(1994-10-27)

	2. One of five pedagogical languages based on {Markov
	algorithms}, used in Higman's report (below).  The other
	languages are {Brilliant}, {Diamond}, {Nonpareil}, and
	{Pearl}.

	["Nonpareil, a Machine Level Machine Independent Language for
	the Study of Semantics", B. Higman, ULICS Intl Report No ICSI
	170, U London (1968)].

	(1994-10-27)

	3. A fully {object oriented} {interpreted} {scripting
	language} by Yukihiro Matsumoto <matz@netlab.co.jp>.

	Similar in scope to {Perl} and {Python}, Ruby has high-level
	{data types}, automatic {memory management}, {dynamic typing},
	a {module} system, {exceptions}, and a rich standard library.
	Other features are {CLU}-style {iterators} for {loop
	abstraction}, {singleton classes}/{methods} and {lexical
	closures}.

	In Ruby, everything is an {object}, including the basic data
	types.  For example, the number 1 is an instance of {class}
	Fixnum.

	Current version (stable): 1.6.7, as of 2002-03-01.

	{Ruby Home (http://ruby-lang.org/)}.

	{Ruby Central (http://rubycentral.com/)}.

	["Programming Ruby - The Pragmatic Programmer's Guide", David
	Thomas, Andrew Hunt, Yukihiro Matsumoto pub. Addison Wesley
	2000].

	(2002-06-19)

rude

	[WPI] 1. Badly written or functionally poor, e.g. a program
	that is very difficult to use because of gratuitously poor
	design decisions.  Opposite: {cuspy}.

	2. Anything that manipulates a shared resource without regard
	for its other users in such a way as to cause a (non-fatal)
	problem.  Examples: programs that change tty modes without
	resetting them on exit, or windowing programs that keep
	forcing themselves to the top of the window stack.  Compare
	{all-elbows}.

	[{Jargon File}]

	(1994-10-27)

RUFL

	Rhodes University Functional Language.  A {Miranda}-like
	functional language from Rhodes University, Grahamstown, South
	Africa with a {SPARC} {code generator}.

	(1994-10-27)

run

	{execution}

RUNCIBLE

	Early system for mathematics on {IBM 650}.

	See also {FORTRUNCIBLE}, {IT}.

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

	(1994-10-27)

runes

	1. Anything that requires {heavy wizardry} or {black art} to
	{parse}: core dumps, {JCL} commands, {APL} or code in a
	language you haven't a clue how to read.  Not quite as bad as
	{line noise}, but close.

	Compare {casting the runes}, {Great Runes}.

	2. Special display characters (for example, the high-half
	graphics on an {IBM PC}).

	[{Jargon File}]

runic

	<jargon> Obscure, consisting of {runes}.

	{VMS} fans sometimes refer to {Unix} as "RUnix".  Unix fans
	return the compliment by expanding VMS to "Very Messy Syntax"
	or "Vachement Mauvais Systeme" (French; literally "Cowlike Bad
	System", idiomatically "Bitchy Bad System").

	(1996-09-17)

run-length encoding

	A kind of {compression} {algorithm} which replaces sequences
	("runs") of consecutive repeated characters (or other units of
	data) with a single character and the length of the run.  This
	can either be applied to all input characters, including runs
	of length one, or a special character can be used to introduce
	a run-length encoded group.  The longer and more frequent the
	runs are, the greater the compression that will be achieved.
	This technique is particularly useful for encoding black and
	white {images} where the data units would be single bit
	{pixels}.

	(1994-10-27)

Run Length Limited

	<storage> (RLL) The most popular scheme for encoding data on
	{magnetic disks}.  RLL packs up to 50% more data on a disk
	than {MFM}.

	{IBM} invented RLL encoding and used it in {mainframe} disk
	drives.  During the late 1980s, {PC} hard disks began using
	RLL.  Today, virtually every drive on the market uses some
	form of RLL.

	Groups of bits are mapped to specific patterns of flux.  The
	density of flux transitions is limited by the spatial
	resolution of the disk and frequency response of the head and
	electronics.  However, transitions must be close enough to
	allow reliable {clock recovery}.  RLL implementations vary
	according to the minimum and maximum allowed numbers of
	{transition cells} between transitions.  For example, the most
	common variant today, RLL 1,7, can have a transition in every
	other cell and must have at least one transition every seven
	cells.  The exact mapping from bits to transitions is
	essentially arbitrary.

	Other schemes include {GCR}, {FM}, {Modified Frequency
	Modulation} (MFM).  See also: {PRML}.

	{(http://cma.zdnet.com/book/upgraderepair/ch14/ch14.htm)}.

	(2003-08-12)

run time

	1. The elapsed time to perform a computation on a particular
	computer.

	2. The amount of time a processor actually spent on a
	particular process and not on other processes or overhead (see
	{time-sharing}).

	3. The period of time during which a program is being
	executed, as opposed to {compile-time} or load time.  The term
	should be hyphenated when used as an adjective.

	4. {run-time support}.

	(2001-09-14)

run-time environment

	<operating system> A collection of subroutines and
	{environment variables} that provide commonly used functions
	and data for a program while it is running.

	Compare {run-time support}.

	(1995-03-22)

run-time error

	<programming> An {error} in the execution of a program which
	occurs at {run time}, as opposed to a {compile-time error}.

	A good programming language should, among other things, aim to
	replace run-time errors by compile-time errors.  Language
	features such as {strong typing} help.

	A good program should attempt to avoid run-time errors by, for
	example, checking that their input data is sensible.  Where
	this is not possible, the program should attempt to detect the
	error and handle it gracefully rather than just exiting via
	the language or operating system's default handler.  Here
	again, a good language will make this easy to do (or at least
	possible).

	See also {abort}, {core dump}, {GPF}.

	(1997-01-13)

run-time library

	<operating system, programming, library> A file containing
	routines which are linked with a program at {run time} rather
	than at {compile-time}.  The advantage of such {dynamic
	linking} is that only one copy of the library needs to be
	stored, rather than a copy being included with each
	{executable} that refers to it.  This can greatly reduce the
	disk space occupied by programs.  Furthermore, it means that
	all programs immediately benefit from changes (e.g. {bug}
	fixes) to the single copy of the library without requiring
	recompilation.  Since the library code is normally classified
	as read-only to the {memory management} system, it is possible
	for a single copy of the library to be loaded into memory and
	shared by all active programs, thus reducing {RAM} and
	{virtual memory} requirements and program load time.

	(1997-07-16)

run-time support

	{run-time system}

run-time system

	<programming> (RTS, run-time support, run-time) Library code
	and processes which support software written in a particular
	language running on a particular {platform}.  The RTS
	typically deals with details of the interface between the
	program and the {operating system} such as {system calls},
	program start-up and termination, and {memory management}.

	(1999-07-26)

Run-Time Type Information

	<compiler> (RTTI) Facilities included in {C++} {compilers} to
	allow the {type} of an object to be determined at {run time}.

	This facility, found in good C++ compilers and some other
	{high level languages}, adds type information to memory
	resident objects (i.e. type name or unique type-id).  This
	allows the {run-time system} to determine if an object is of a
	specific type, for example, to ensure that a {cast} of an
	object is valid.

	(1996-04-15)

ruptime

	{Unix} {Berkeley networking} command to report the status of
	all hosts on the net.  See also rwho.  See ruptime(1N).

RUSH

	1. <language> An interactive dialect of {PL/I}, related to
	{CPS}, dated about 1966.  The name is the abbreviation of
	"Remote Use of Shared Hardware".

	["Introduction to RUSH", Allen-Babcock Computing 1969.  Sammet
	1969, p.309.]

	2. <language> A {high-level language} that closely resembles
	{Tcl} but aimed to provide substantially faster execution.
	See {An Introduction to the Rush Language
	(ftp://ginsberg.cs.berkeley.edu/pub/papers/asah/rush-tcl94.ps.gz)}.
	by Adam Sah, Jon Blow, and Brian Dennis (1994).

	(1996-12-17)

Russell

	<language> (After {Bertrand Russell}) A compact,
	{polymorphical}ly typed {functional language} by A. Demers &
	J. Donahue with {bignums} and {continuations}.  {Types} are
	themselves {first-class} values and may be passed as
	{arguments}.

	{(ftp://parcftp.xerox.com/pub/russell/russell.tar.Z)}.

	["An Informal Description of Russell", H. Boehm et al, Cornell
	CS TR 80-430, 1980].

	["Understanding Russell: A First Attempt", J.G. Hook in LNCS
	173, Springer].

	(1995-03-27)

Russell, Bertrand

	{Bertrand Russell}

Russell's Attic

	<mathematics> An imaginary room containing {countably many}
	pairs of shoes (i.e. a pair for each {natural number}), and
	countably many pairs of socks.  How many shoes are there?
	Answer: countably many (map the left shoes to even numbers and
	the right shoes to odd numbers, say).  How many socks are
	there?  Also countably many, we want to say, but we can't
	prove it without the {Axiom of Choice}, because in each pair,
	the socks are indistinguishable (there's no such thing as a
	left sock).  Although for any single pair it is easy to select
	one, we cannot specify a general method for doing this.

	(1995-03-29)

Russell's Paradox

	<mathematics> A {paradox} (logical contradiction) in {set
	theory} discovered by {Bertrand Russell}.  If R is the set of
	all sets which don't contain themselves, does R contain
	itself?  If it does then it doesn't and vice versa.

	The paradox stems from the acceptance of the following
	{axiom}: If P(x) is a property then

		{x : P}

	is a set.  This is the {Axiom of Comprehension} (actually an
	{axiom schema}).  By applying it in the case where P is the
	property "x is not an element of x", we generate the paradox,
	i.e. something clearly false.  Thus any theory built on this
	axiom must be inconsistent.

	In {lambda-calculus} Russell's Paradox can be formulated by
	representing each set by its {characteristic function} - the
	property which is true for members and false for non-members.
	The set R becomes a function r which is the negation of its
	argument applied to itself:

		r = \ x . not (x x)

	If we now apply r to itself,

		r r = (\ x . not (x x)) (\ x . not (x x))
		    = not ((\ x . not (x x))(\ x . not (x x)))
		    = not (r r)

	So if (r r) is true then it is false and vice versa.

	An alternative formulation is: "if the barber of Seville is a
	man who shaves all men in Seville who don't shave themselves,
	and only those men, who shaves the barber?"  This can be taken
	simply as a proof that no such barber can exist whereas
	seemingly obvious axioms of {set theory} suggest the existence
	of the paradoxical set R.

	{Zermelo Fränkel set theory} is one "solution" to this
	paradox.  Another, {type theory}, restricts sets to contain
	only elements of a single type, (e.g. {integers} or sets of
	integers) and no type is allowed to refer to itself so no set
	can contain itself.

	A message from Russell induced {Frege} to put a note in his
	life's work, just before it went to press, to the effect that
	he now knew it was inconsistent but he hoped it would be
	useful anyway.

	(2000-11-01)

rusty iron

	<jargon, hardware> Synonym {tired iron}.  It has been claimed
	that this is the inevitable fate of {water MIPS}.

	[{Jargon File}]

	(1995-03-25)

rusty memory

	<storage, humour> {Mass-storage} that uses iron-oxide-based
	magnetic media (especially {magnetic tape} and the
	pre-{Winchester} {removable disk packs} used in {washing
	machines}).

	Compare {donuts}.

	[{Jargon File}]

	(1997-07-20)

RUTH

	D.A. Harrison at Newcastle University.  Real-time language
	based on LispKit.  Uses timestamps and real-time clocks.

	["RUTH: A Functional Language for Real-Time Programming",
	D. Harrison in PARLE: Parallel Architectures and Languages
	Europe, LNCS 259, Springer 1987, pp.297-314].

rw

	<networking> The {country code} for Rwanda.

	(1999-01-27)

rwho

	<networking> The {Berkeley Unix} networking command to report
	who is logged in on all {hosts} on the local {network
	segment}.

	{Unix manual page}: rwho(1).

	(1996-09-08)

RWP

	{Remote Write Protocol}

Rx

	A pattern matcher compatible with {GNU} {regex}, but generally
	faster.

	Version 0.05, released 1994-05-18, contained substantial
	changes from the version last distributed with GNU {sed}.
	These changes provide low-level support for searching across
	arbitrarily fragmented strings and suspendable searches.

RYFM

	<abuse> 1. "Read Your Fucking Manual".  Uncommon variant of
	{RTFM}.

	2. "Read Your Fucking Mail".  A gentle reminder to someone to
	check their corresponence and, who knows, maybe even respond.

	(2012-10-27)

S

	<language> A statistical analysis language from {AT&T}.

	["S: An Interactive Environment for Data Analysis and
	Graphics", Richard A. Becker, Wadsworth 1984].

	(1997-01-21)

s///

	<chat> s/{foo}/{bar}/ is an idiom which means "I didn't mean
	to type 'foo', I meant to type 'bar'".

	Its use in {talk} systems, especially {irc}, comes from the
	use of s/// as a substitution operator in {Perl}, {sed} and
	{ed}.  In these languages and tools, s/foo/bar/ would replace
	any substring matching the {regular expression} "foo" with the
	string "bar".

	(1997-03-16)

S3

	1. <language> An {ALGOL 68}-like system language for the {ICL
	2900} computer.

	2. <graphics, hardware> A video chipset.

	3. <graphics> An {X Window System} {screen server}.

	(2003-02-28)

SA

	{Structured Analysis}

sa

	<networking> The {country code} for Saudi Arabia.

	(1999-01-27)

SA-110

	<processor> The first member of the {StrongARM} family
	resulting from the architecture license agreement between
	{Digital Equipment Corporation} and {Advanced RISC Machines}
	Ltd. (ARM), developer of the {ARM} 32-bit {RISC} architecture.

	The SA-110 combines ARM's low-power architecture with
	Digital's processor design and {CMOS} process expertise, and
	is targetted at {embedded} consumer electronics products.

	(1996-02-06)

SAA

	{Systems Application Architecture}

Saber-C

	Renamed to {CodeCenter}.

Saber-C++

	Renamed to {ObjectCenter}.

SAC

	1. An early system on the {Datatron 200} series.

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

	(1995-04-12)

	2. {Service Access Controller}.

	(2002-12-30)

SAC-1

	<mathematics, tool> An early {symbolic mathematics} system,
	written in {Fortran} by G.E. Collins.

	[Proc 2nd Symp Symb Alg Manip pp.144-152 (1971)].

	(1995-04-12)

SAC2

	<mathematics, tool> A {symbolic mathematics} system which
	compiles to {Fortran} or {Common Lisp}.

	E-mail: <jma@poly.polytechnique.fr>.

	(1995-04-12)

sacadm

	<operating system> (Service Access Controller Administration)
	A {Unix} (Solaris?) command for administering both {ttymon}
	and {listen}.  It can be used to add and remove, start and
	stop, and enable and disable {port monitors}.

	(2002-12-30)

sacred

	<jargon> Reserved for exclusive use by something.  The term
	might mean only writable by whatever it is sacred to.

	For example, "Register 7 is sacred to the interrupt handler"
	would mean that if any other code changed the contents of
	register 7, dire consequences would ensue.

	[{Jargon File}]

	(2002-12-30)

SAD

	{Systems Analysis Definition}

SAD SAM

	Query language by Lindsay.  Sammet 1969, p.669.

SADT

	{Structured Analysis and Design Technique}

SAFARI

	ON-line text editing system by {MITRE Corporation}.

	Sammet 1969, p.685.

safe

	A safe program analysis is one which will not reach invalid
	conclusions about the behaviour of the program.  This may
	involve making safe approximations to properties of parts of
	the program.  A safe approximation is one which gives less
	information.

	For example, strictness analysis aims to answer the question
	"will this function evaluate its argument"?.  The two possible
	results are "definitely" and "don't know".  A safe
	approximation for "definitely" is "don't know".  The two
	possible results correspond to the two sets: "the set of all
	functions which evaluate their argument" and "all functions".
	A set can be safely approximated by another which contains it.

safe mode

	<operating system> An alternative way to start {Microsoft
	Windows} such that only a minimal set of software components
	({drivers} and {background processes}) are loaded, making it
	easier to diagnose problems.  Safe mode loads a standard low
	{resolution} {video driver} and does not support connection to
	the {Internet}.

	Windows will sometimes restart in safe mode automatically
	following a {crash}.  All Windows versions except {Windows
	3.1} can be started in safe mode, usually by holding the Ctrl
	or F8 key while the computer is restarting.  To start {Windows
	NT} in safe mode you need to edit C:\boot.ini.

	Once the problem is fixed you need to restart Windows normally
	to load all the installed components.

	(2004-12-31)

safety

	See {safe}, {safety-critical system}.

safety-critical system

	A computer, electronic or electromechanical system whose
	failure may cause injury or death to human beings.  E.g. an
	aircraft or nuclear power station control system.  Common
	tools used in the design of safety-critical systems are
	{redundancy} and {formal methods}.

	See also {aeroplane rule}.

saga

	<jargon> (WPI) A {cuspy} but bogus raving story about N
	{random} broken people.

	Here is a classic example of the saga form, as told by {Guy
	Steele} (GLS):

	Jon L. White (login name JONL) and I (GLS) were office mates
	at {MIT} for many years.  One April, we both flew from Boston
	to California for a week on research business, to consult
	face-to-face with some people at {Stanford}, particularly our
	mutual friend {Richard Gabriel} (RPG).

	RPG picked us up at the San Francisco airport and drove us
	back to {Palo Alto} (going {logical} south on route 101,
	parallel to {El Camino Bignum}).  Palo Alto is adjacent to
	Stanford University and about 40 miles south of San Francisco.
	We ate at The Good Earth, a "health food" restaurant, very
	popular, the sort whose milkshakes all contain honey and
	protein powder.  JONL ordered such a shake - the waitress
	claimed the flavour of the day was "lalaberry".  I still have
	no idea what that might be, but it became a running joke.  It
	was the colour of raspberry, and JONL said it tasted rather
	bitter.  I ate a better tostada there than I have ever had in
	a Mexican restaurant.

	After this we went to the local Uncle Gaylord's Old Fashioned
	Ice Cream Parlor.  They make ice cream fresh daily, in a
	variety of intriguing flavours.  It's a chain, and they have a
	slogan: "If you don't live near an Uncle Gaylord's - MOVE!"
	Also, Uncle Gaylord (a real person) wages a constant battle to
	force big-name ice cream makers to print their ingredients on
	the package (like air and plastic and other non-natural
	garbage).  JONL and I had first discovered Uncle Gaylord's the
	previous August, when we had flown to a computer-science
	conference in {Berkeley}, California, the first time either of
	us had been on the West Coast.  When not in the conference
	sessions, we had spent our time wandering the length of
	Telegraph Avenue, which (like Harvard Square in Cambridge) was
	lined with picturesque street vendors and interesting little
	shops.  On that street we discovered Uncle Gaylord's Berkeley
	store.  The ice cream there was very good.  During that August
	visit JONL went absolutely bananas (so to speak) over one
	particular flavour, ginger honey.

	Therefore, after eating at The Good Earth - indeed, after
	every lunch and dinner and before bed during our April visit
	--- a trip to Uncle Gaylord's (the one in Palo Alto) was
	mandatory.  We had arrived on a Wednesday, and by Thursday
	evening we had been there at least four times.  Each time,
	JONL would get ginger honey ice cream, and proclaim to all
	bystanders that "Ginger was the spice that drove the Europeans
	mad!  That's why they sought a route to the East!  They used
	it to preserve their otherwise off-taste meat."  After the
	third or fourth repetition RPG and I were getting a little
	tired of this spiel, and began to paraphrase him: "Wow!
	Ginger!  The spice that makes rotten meat taste good!"  "Say!
	Why don't we find some dog that's been run over and sat in the
	sun for a week and put some *ginger* on it for dinner?!"
	"Right!  With a lalaberry shake!"  And so on.  This failed to
	faze JONL; he took it in good humour, as long as we kept
	returning to Uncle Gaylord's.  He loves ginger honey ice
	cream.

	Now RPG and his then-wife KBT (Kathy Tracy) were putting us up
	(putting up with us?) in their home for our visit, so to thank
	them JONL and I took them out to a nice French restaurant of
	their choosing.  I unadventurously chose the filet mignon, and
	KBT had je ne sais quoi du jour, but RPG and JONL had lapin
	(rabbit).  (Waitress: "Oui, we have fresh rabbit, fresh
	today."  RPG: "Well, JONL, I guess we won't need any
	*ginger*!")

	We finished the meal late, about 11 P.M., which is 2 A.M
	Boston time, so JONL and I were rather droopy.  But it wasn't
	yet midnight.  Off to Uncle Gaylord's!

	Now the French restaurant was in Redwood City, north of Palo
	Alto.  In leaving Redwood City, we somehow got onto route 101
	going north instead of south.  JONL and I wouldn't have known
	the difference had RPG not mentioned it.  We still knew very
	little of the local geography.  I did figure out, however,
	that we were headed in the direction of Berkeley, and
	half-jokingly suggested that we continue north and go to Uncle
	Gaylord's in Berkeley.

	RPG said "Fine!" and we drove on for a while and talked.  I
	was drowsy, and JONL actually dropped off to sleep for 5
	minutes.  When he awoke, RPG said, "Gee, JONL, you must have
	slept all the way over the bridge!", referring to the one
	spanning San Francisco Bay.  Just then we came to a sign that
	said "University Avenue".  I mumbled something about working
	our way over to Telegraph Avenue; RPG said "Right!" and
	maneuvered some more.  Eventually we pulled up in front of an
	Uncle Gaylord's.

	Now, I hadn't really been paying attention because I was so
	sleepy, and I didn't really understand what was happening
	until RPG let me in on it a few moments later, but I was just
	alert enough to notice that we had somehow come to the Palo
	Alto Uncle Gaylord's after all.

	JONL noticed the resemblance to the Palo Alto store, but
	hadn't caught on.  (The place is lit with red and yellow
	lights at night, and looks much different from the way it does
	in daylight.)  He said, "This isn't the Uncle Gaylord's I went
	to in Berkeley!  It looked like a barn!  But this place looks
	*just like* the one back in Palo Alto!"

	RPG deadpanned, "Well, this is the one *I* always come to when
	I'm in Berkeley.  They've got two in San Francisco, too.
	Remember, they're a chain."

	JONL accepted this bit of wisdom.  And he was not totally
	ignorant - he knew perfectly well that University Avenue was
	in Berkeley, not far from Telegraph Avenue.  What he didn't
	know was that there is a completely different University
	Avenue in Palo Alto.

	JONL went up to the counter and asked for ginger honey.  The
	guy at the counter asked whether JONL would like to taste it
	first, evidently their standard procedure with that flavour,
	as not too many people like it.

	JONL said, "I'm sure I like it.  Just give me a cone."  The
	guy behind the counter insisted that JONL try just a taste
	first.  "Some people think it tastes like soap."  JONL
	insisted, "Look, I *love* ginger.  I eat Chinese food.  I eat
	raw ginger roots.  I already went through this hassle with the
	guy back in Palo Alto.  I *know* I like that flavour!"

	At the words "back in Palo Alto" the guy behind the counter
	got a very strange look on his face, but said nothing.  KBT
	caught his eye and winked.  Through my stupor I still hadn't
	quite grasped what was going on, and thought RPG was rolling
	on the floor laughing and clutching his stomach just because
	JONL had launched into his spiel ("makes rotten meat a dish
	for princes") for the forty-third time.  At this point, RPG
	clued me in fully.

	RPG, KBT, and I retreated to a table, trying to stifle our
	chuckles.  JONL remained at the counter, talking about ice
	cream with the guy b.t.c., comparing Uncle Gaylord's to other
	ice cream shops and generally having a good old time.

	At length the g.b.t.c. said, "How's the ginger honey?"  JONL
	said, "Fine!  I wonder what exactly is in it?"  Now Uncle
	Gaylord publishes all his recipes and even teaches classes on
	how to make his ice cream at home.  So the g.b.t.c. got out
	the recipe, and he and JONL pored over it for a while.  But
	the g.b.t.c. could contain his curiosity no longer, and asked
	again, "You really like that stuff, huh?"  JONL said, "Yeah,
	I've been eating it constantly back in Palo Alto for the past
	two days.  In fact, I think this batch is about as good as the
	cones I got back in Palo Alto!"

	G.b.t.c. looked him straight in the eye and said, "You're *in*
	Palo Alto!"

	JONL turned slowly around, and saw the three of us collapse in
	a fit of giggles.  He clapped a hand to his forehead and
	exclaimed, "I've been hacked!"

	[My spies on the West Coast inform me that there is a close
	relative of the raspberry found out there called an
	"ollalieberry" - ESR]

	[Ironic footnote: it appears that the {meme} about ginger vs.
	rotting meat may be an urban legend.  It's not borne out by an
	examination of mediaeval recipes or period purchase records
	for spices, and appears full-blown in the works of Samuel
	Pegge, a gourmand and notorious flake case who originated
	numerous food myths. - ESR]

	[{Jargon File}]

	(1994-12-08)

sagan

	<jargon> /say'gn/ (From Carl Sagan's TV series "Cosmos")
	Billions and billions.  A large quantity of anything.

	"There's a sagan different ways to tweak Emacs."  "The US
	Government spends sagans on bombs and welfare - hard to say
	which is more destructive."

	[{Jargon File}]

	(1999-10-12)

SAGE

	1. <body, job> {Systems Administrators Guild}.

	2. <project> {Semi-Automatic Ground Environment}.

	(2001-01-27)

SAIC

	{(http://saic.com)}.

	(1996-03-21)

SAID

	{Security Association ID}

SAIL

	1. <body, education> {Stanford Artificial Intelligence
	Laboratory}.

	2. <language> {Stanford Artificial Intelligence Language}.

	3. <language> An early system on the {Larc} computer.

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

	[{Jargon File}]

	(2001-06-22)

SAINT

	1. <language> {Symbolic Automatic INTegrator}.

	2. <networking, security, tool> {Security Administrator's
	Integrated Network Tool}.

Saint Andrews Static Language

	{St Andrews Static Language}

SAL

	<language>

	1. {Simple Actor Language}.

	2. {SPARK Annotation Language}.

SALEM

	["SALEM - A Programming System for the Simulation of Systems
	Described by Partial Differential Equations", S.M. Morris et
	al, Proc SJCC 33(1), 1968].

	(1994-12-08)

Sales Automation

	{Sales Force Automation}

salescritter

	/sayls'kri"tr/ Pejorative hackerism for a computer
	salesperson.  Hackers tell the following joke:

	Q. What's the difference between a used-car dealer and a
	computer salesman?

	A. The used-car dealer knows he's lying.  [Some versions add:
	...and probably knows how to drive.]

	This reflects the widespread hacker belief that salescritters
	are self-selected for stupidity (after all, if they had brains
	and the inclination to use them, they'd be in programming).
	The terms "salesthing" and "salesdroid" are also common.

	Compare {marketroid}, {suit}.

	[{Jargon File}]

	(1994-12-08)

Sales Force Automation

	<business> (Sales Automation, SFA, SFFA, Sales & Field Force
	Automation) Software to support sales reps.  The software
	gives sales representitives access to contacts, appointments
	and e-mail.  It is likely to be integrated with {Customer
	Relationship Management} systems and {Opportunity Management
	Systems}.

	(1999-08-20)

S-ALGOL

	Orthogonal data structures on ALGOL 60.  "S-Algol Language
	Reference Manual", R. Morrison, TR CS/79/1 U St Andrews, 1979.
	"An Introduction to Programming with S-Algol", A.J. Cole &
	R. Morrison, Cambridge U Press 1982.

SALT

	1. Symbolic Assembly Language Trainer.  Assembly-like language
	implemented in BASIC by Kevin Stock, now at Encore in France.

	2. Sam And Lincoln Threaded language.  A threaded extensible
	variant of BASIC.  "SALT", S.D. Fenster et al, BYTE (Jun 1985)
	p.147.

	[{Jargon File}]

salt

	A tiny bit of near-random data inserted where too much
	regularity would be undesirable; a data {frob} (sense 1).  For
	example, the Unix crypt(3) manual page mentions that "the salt
	string is used to perturb the DES algorithm in one of 4096
	different ways."

salt mines

	Dense quarters housing large numbers of programmers working
	long hours on grungy projects, with some hope of seeing the
	end of the tunnel in N years.  Noted for their absence of
	sunshine.  Compare {playpen}, {sandbox}.

	[{Jargon File}]

salt substrate

	[MIT] Collective noun used to refer to potato chips, pretzels,
	saltines, or any other form of snack food designed primarily
	as a carrier for sodium chloride.  From the technical term
	"chip substrate", used to refer to the silicon on the top of
	which the active parts of integrated circuits are deposited.

SAM

	{System Account Manager}

sam

	<tool> A multi-file {screen editor} with structural {regular
	expressions}.  Sam runs under the {X Window System}.

	(2000-07-16)

SAM76

	A {macro} language by Claude Kagan descended from {TRAC}.
	There is a version for {CP/M}.

	[Dr Dobbs J ca 1977].

Samba

	<networking> A free suite of programs which implement the
	{Server Message Block} (SMB) protocol.

	Originally developed for {Unix} by Andrew Tridgell at the
	{Australian National University}, the Samba {server} allows
	files and printers on the {host} {operating system} to be
	shared with {clients} such as {Windows for Workgroups}, {DOS},
	{OS/2}, {Windows NT} and others.

	For example, instead of using {telnet} to log in to a Unix
	machine to edit a file there, a {Windows 95} user might
	connect a drive in the Windows {Explorer} to a Samba server on
	the Unix machine and edit the file in a Windows editor.

	A Unix client called smbclient, built from the same {source
	code}, allows {ftp}-like access to SMB resources.

	Samba is available for many Unix variants, OS/2, and {VMS}.
	Porting to {Novell Netware} is in progress (August 1996).

	smblib is a {portable} generic library for making SMB calls
	for implementing {client/server} functions from within any
	program.  {Linux} implements a complete file system (based on
	smbclient) so by default Linux users have full access to
	resources on {LAN Server}, Windows NT and {LAN Manager}
	networks.

	{(http://samba.org/samba/samba.html)}.

	(1998-11-22)

SAME

	1. {Standard ANSI Module language with Extensions}.

	2. <architecture> {Stripe And Mirror Everything}.

same-day service

	<humour, operating system> An ironic term used to describe
	long response time, particularly with respect to {MS-DOS}
	{system calls} (which ought to require only a tiny fraction of
	a second to execute).  Such response time is a major incentive
	for programmers to write programs that are not {well-behaved}.

	See also {PC-ism}.

	[{Jargon File}]

	(1996-12-17)

SAMeDL

	{SQL} {Ada} Module Description Language.  Used to interface
	{Ada} {application programs} to {SQL}-based {DBMSs}.

	E-mail: Marc Graham <marc@sei.cmu.edu>.
	{(ftp://ajpo.sei.cmu.edu/public/atip/samedl/)}.

	["Rationale for SQL Ada Module Description Language SAMeDL",
	SEI-92-TR-016].

samizdat

	<publication> (Russian, literally "self publishing") The
	process of disseminating documentation via underground
	channels.  Originally referred to photocopy duplication and
	distribution of banned books in the former Soviet Union; now
	refers by obvious extension to any less-than-official
	promulgation of textual material, especially rare, obsolete,
	or never-formally-published computer documentation.  Samizdat
	is obviously much easier when one has access to
	high-{bandwidth} {networks} and high-quality {laser printers}.

	Strictly, "samizdat" only applies to distribution of needed
	documents that are otherwise unavailable, and not to
	duplication of material that is available for sale under
	{copyright}.

	See {Lions Book} for a historical example.

	See also: {hacker ethic}.

	[{Jargon File}]

	(2000-03-23)

SAML

	<security> An {XML} framework for communicating user
	{authentication}, {entitlement}, and attribute information,
	developed by the Security Services Technical Committee of
	{OASIS}.

	SAML supports {federation}, allowing business entities to make
	assertions regarding the identity, attributes and entitlements
	of a subject (an entity that is often a human user) to other
	entities, such as a partner company or another enterprise
	application.

	(2011-05-12)

Sammet, Jean E.

	{Jean E. Sammet}

sample

	<digital signal processing> The result of measuring the
	amplitude of an analog signal at a specified time.  In
	{digital signal processing} a sample is a signed or unsigned
	number and the number of samples per second is called the
	{sample rate}.

	(2001-06-06)

sample rate

	<digital signal processing> The number of times an analog
	signal is measured (sampled) per second.  The unit of sample
	rate is "samples per second".  This is often expressed in
	{kiloHertz} (kHz).  For example, "CD quality" sound has a
	sample rate of 44 kHz.

	Compare {data rate}.  See {Nyquist frequency}.

	[Is it correct to use Hertz for things other than the
	frequency of a sine wave?]

	(2001-06-06)

sampling

	<DSP> The process of taking a {sample} of a signal at evenly
	spaced intervals of time.  This is the first step in {Digital
	Signal Processing}.

	(2001-06-06)

sampling frequency

	{sample rate}

samurai

	A hacker who hires out for legal cracking jobs, snooping for
	factions in corporate political fights, lawyers pursuing
	privacy-rights and First Amendment cases, and other parties
	with legitimate reasons to need an electronic locksmith.  In
	1991, mainstream media reported the existence of a loose-knit
	culture of samurai that meets electronically on BBS systems,
	mostly bright teenagers with personal micros; they have
	modelled themselves explicitly on the historical samurai of
	Japan and on the "net cowboys" of William Gibson's {cyberpunk}
	novels.  Those interviewed claim to adhere to a rigid ethic of
	loyalty to their employers and to disdain the vandalism and
	theft practiced by criminal crackers as beneath them and
	contrary to the hacker ethic; some quote Miyamoto Musashi's
	"Book of Five Rings", a classic of historical samurai
	doctrine, in support of these principles.

	See also {Stupids}, {social engineering}, {cracker}, {hacker
	ethic}, and {dark-side hacker}.

	[{Jargon File}]

SAN

	{Storage Area Network}

sandbender

	[IBM] A person involved with silicon lithography and the
	physical design of {integrated circuits}.  Compare
	{ironmonger}, {polygon pusher}.

sandbox

	(UK: "sandpit")

	1. <operating system> A protected, limited environment where
	applications (e.g. {Java} programs downloaded from the
	{Internet}) are allowed to "play" without risking damage to
	the rest of the system.

	2. <jargon> A term for the R&D department at many software and
	computer companies (where hackers in commercial environments
	are likely to be found).  The term is half-derisive, but
	reflects the truth that research is a form of creative play.

	Compare {playpen}.

	3. <operating system> {link farm}.

	[{Jargon File}]

	(2001-02-08)

Sandman

	The {DoD} requirements that led to {APSE}.

San Francisco

	<project, library> {IBM}'s {Java} component {framework}
	application template.

	The San Francisco Project, started in 1998(?), aims to create
	a generic set of {java} building blocks to provide the core
	functions of general business processes such as sales order
	processing, general ledger, inventory management and product
	distribution.

	The project aims to use component based design allowing easy
	vendor customisation and Java code generation allowing
	applications to be built and run across multiple platforms.
	It also aims to be compatible with third party development
	tools.

	{(http://ibm.com/Java/Sanfrancisco/)}.

	(1998-08-16)

sanity check

	<programming> 1. Checking {code} (or anything else, e.g. a
	{Usenet} posting) for completely stupid mistakes.  Implies
	that the check is to make sure the author was sane when it was
	written; e.g. if a piece of scientific software relied on a
	particular formula and was giving unexpected results, one
	might first look at the nesting of parentheses or the coding
	of the formula, as a "sanity check", before looking at the
	more complex I/O or data structure manipulation routines, much
	less the {algorithm} itself.

	Compare {reality check}.

	2. A run-time test, either validating input or ensuring that
	the program hasn't screwed up internally (producing an
	inconsistent value or state).

	[{Jargon File}]

	(1998-08-29)

Santa Cruz Operation

	(SCO) A supplier of {Unix} systems for {Intel}
	{microprocessors}.  They supply {Xenix} and {Open Desktop}.

	Founded in 1979, SCO became a public company in May, 1993 and
	trades on the Nasdaq National Market System under the symbol
	SCOC.  SCO maintains its world headquarters in Santa Cruz,
	California, USA; a European headquarters in Watford, England;
	a Government Systems Group in Reston, Virginia; and offices in
	Asia, Australia, Canada, Latin America, and throughout Europe
	and the United States.  In February 1993, SCO acquired {IXI}
	Limited of Cambridge, England, the leading supplier of {Unix}
	System windowing software.

	{(http://websco.sco.com/)}.

	(1994-10-28)

	[Addresses?]

SAP

	1. <company> {SAP AG} (Systems, Applications and Products in
	Data Processing).

	2. <protocol> {Service Advertising Protocol}.

	3. <networking> {Service Access Point}.

	4. <language> {Symbolic Assembler Program}.

	(1999-05-26)

SAP AG

	<company> (Systeme, Anwendungen, Produkte in der
	Datenverarbeitung - German for "Systems, Applications and
	Products in Data Processing") A company from Germany that
	sells the leading suite of {client-server} business software.
	The US branch is called SAP America.

	{(http://sap.com/)}.

	[Details?]

	(1998-07-28)

SAPI

	1. <programming> {Speech Application Programming Interface}.

	2. <programming> {Scheduling Application Programming
	Interface}.

	3. <networking> {Service Access Point Identifier}.

	(1996-10-03)

SAR

	{segmentation and reassembly}

SAS

	1. <language> {Statistical Analysis System}.

	2. <tool> {SAS System}.

	(1998-11-06)

SASD

	{Structured Analysis, Structured Design}

SASE

	{Specific Application Service Element}.  Opposite: {CASE}.

SASI

	{Small Computer System Interface}

SASL

	1. <language> {St Andrews Static Language}.

	2. <networking> {Simple Authentication and Security Layer}.

SASL+LV

	Unifies logic and functional programming.  A more complete
	version of FGL+LV, in SASL syntax.  "Combinator Evaluations of
	Functional Programs with Logical Variables", G. Bage et al, TR
	UUCS-87-027, U Utah, Oct 1987.

SASL-YACC

	A version of {Yacc} written in {SASL} by Simon Peyton-Jones.

SAS System

	<tool> (SAS) Integrated software to access, manage, analyze,
	and present data.  The SAS System can be used to perform data
	entry, retrieval and management; report writing and graphics
	design; statistical and mathematical analysis; business
	forecasting and decision support; operations research; project
	management and applications development.

	(1998-11-06)

SATA

	{Serial Advanced Technology Attachment}

SATAN

	{Security Administrator's Integrated Network Tool}

Sather

	<language> /Say-ther/ (Named after the Sather Tower at {UCB},
	as opposed to the Eiffel Tower).

	An interactive {object-oriented} language designed by Steve
	M. Omohundro at {ICSI} in 1991.  Sather has simple {syntax},
	similar to {Eiffel}, but it is non-proprietary and faster.

	Sather 0.2 was nearly a subset of Eiffel 2.0, but Sather 1.0
	adds many distinctive features: parameterised {class}es,
	{multiple inheritance}, statically-checked {strong typing},
	{garbage collection}.  The compiler generates {C} as an
	{intermediate language}.  There are versions for most
	{workstations}.

	Sather attempts to retain much of {Eiffel}'s theoretical
	cleanliness and simplicity while achieving the efficiency of
	{C++}.  The compiler generates efficient and portable C code
	which is easily integrated with existing code.

	A variety of development tools including a debugger and
	{browser} based on {gdb} and a {GNU Emacs} development
	environment have also been written.  There is also a {class
	library} with several hundred classes that implement a variety
	of basic data structures and numerical, geometric,
	connectionist, statistical, and graphical abstractions.  The
	authors would like to encourage contributions to the library
	and hope to build a large collection of efficient,
	well-written, well-tested classes in a variety of areas of
	computer science.

	Sather runs on {Sun-4}, {HP9000}/300, {Decstation} 5000,
	{MIPS}, {Sony News} 3000, {Sequent}/{Dynix}, {SCO} {SysV}R3.2,
	{NeXT}, {Linux}.

	See also {dpSather}, {pSather}, {Sather-K}.

	{(ftp://ftp.icsi.berkeley.edu/pub/sather)}.

	E-mail: <sather-admin@icsi.berkeley.edu>.

	Mailing list: sather-request@icsi.berkeley.edu.

	(1995-04-26)

Sather-K

	<language> Karlsruhe Sather.

	A sublanguage of {Sather} used for introductory courses in
	{object-oriented design} and {typesafe programming}.

	E-mail: <trapp@karlsruhe.gmd.de>.

	(1994-11-11)

satisfiability problem

	A problem used as an example in {complexity theory}.  It can
	be stated thus:

	 Given a Boolean expression E, decide if there is some
	 assignment to the variables in E such that E is true.

	A {Boolean} expression is composed of Boolean variables,
	(logical) negation (NOT), (logical) {conjunction} (AND) and
	parentheses for grouping.  The satisfiability problem was the
	first problem to be proved to be {NP-complete} (by Cook).

	["Introduction to Automata Theory, Languages, and Computation"
	by Hopcroft and Ullman, pub. Addison-Wesley].

	(1994-11-11)

saturation

	1. <graphics> In colour theory, the "colourfulness" of a
	stimulus relative to its {brightness}, the amount of the
	dominant wavelength relative to other wavelengths in the
	colour, one of the three coordinates in the {hue, saturation,
	value} (HSV) and {hue, saturation, brightness} (HSB) {colour
	models}.

	White, black and grey contain equal amounts of red, green and
	blue light and are completely unsaturated.  A pure colour with
	very little gray in it is highly saturated.  The amount of
	saturation does not affect the {hue} of a colour and is
	unrelated to the {value} (total amount of light in a colour).

	There are several competing mathematical definitions of
	saturation.

	{(http://www.ncsu.edu/scivis/lessons/colormodels/color_models2.html#saturation)}.

	{(http://www.pomona.edu/academics/courserelated/classprojects/visual-lit/saturation/saturation.html)}.

	2. The state of any system that is operating at its maximum
	capacity, e.g. a network connection that is carry a continuous
	stream of data with no idle time.  {Capacity planning} aims to
	monitor load and increase resources before saturation is
	reached.

	(2008-05-09)

Saturday-night special

	<jargon> (From police slang for a cheap handgun) A
	{quick-and-dirty} program or feature {kluge}d together during off
	hours, under a deadline, and in response to pressure from a
	{salescritter}.  Such hacks are dangerously unreliable, but all
	too often sneak into a production release after insufficient
	review.

	[{Jargon File}]

	(1994-11-11)

sausage code

	<humour, programming> Code which, once you know the details of how
	it's made, you'll never want to use again.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-11-22)

SAVE

	An {assembler} for the {Burroughs 220} by Melvin Conway (see
	{Conway's Law}).  The name "SAVE" didn't stand for anything,
	it was just that you lost fewer card decks and listings
	because they all had SAVE written on them.

	(1995-01-16)

save

	<editor, programming, storage> To copy {data} to a more
	permanent form of storage.  The term is commonly used for when
	some kind of document editing {application program} writes the
	current document from {RAM} to a {file} on {hard disk} at the
	request of the user.  The implication is that the user might
	later {load} the file back into the editor again to view it,
	print it, or continue editing it.  Saving a document makes it
	safe from the effects of power failure.

	The "document" might actually be anything, e.g. a {word
	processor} document, the current state of a game, a piece of
	music, a {website}, or a memory image of some program being
	executed (though the term "dump" would probably be more common
	here).

	Data can be saved to any kind of (writable) storage: hard
	disk, {floppy disk}, {CD-R}; either locally or via a
	{network}.

	A program might save its data without any explicit user
	request, e.g. periodically as a precaution ("auto save"), or
	if it forms part of a {pipeline} of processes which pass data
	via intermediate files.  In the latter case the term suggests
	all data is written in a single operation whereas "output"
	might be a continuous flow, in true pipeline fashion.

	When copying several files from one storage medium to another,
	the terms "backup", "dump", or "archive" would be used rather
	than "save".  The term "store" is similar to "save" but
	typically applies to copying a single item of data, e.g. a
	number, from a {processor}'s {register} to {RAM}.

	A "save" operation saves the document in its native format,
	e.g. a proprietary word processor format, whereas "save as"
	(or "export") saves the same data in a different format,
	e.g. a {plain text} file.

	(2002-06-07)

save as

	<editor, programming, storage> A variant of {save} that saves
	the current document in an alternative format.

	(2005-02-15)

say

	A human may "say" things to a computer by typing them on a
	terminal.  "To list a directory verbosely, say "ls -l"."
	Tends to imply a {newline}-terminated command (a "sentence").

	A computer may "say" things to you, even if it doesn't have a
	speech synthesiser, by displaying them on a terminal in
	response to your commands.  This usage often confuses
	{mundanes}.

	[{Jargon File}]

sb

	<networking> The {country code} for the Solomon Islands.

	(1999-01-27)

SB AWE32

	<multimedia, music, hardware> A standard {SB16 MultiCD} {sound
	card} with the {EMU8000} "Advanced WavEffect" music
	synthesizer {integrated circuit}.  The card includes all the
	standard SB16 features as well as the {Advanced Signal
	Processor} and multiple interfaces supporting {Creative},
	{Mitsumi} and {Sony} {CD-ROM} drives.

	The EMU8000 comes integrated with 1MB of {General MIDI}
	samples and 512kB of {DRAM} for additional sample downloading.
	It can address up to 28 MB of external DRAM.  The SB AWE32
	supports General MIDI, Roland GS, and Sound Canvas MT-32
	{emulation}.

	(1996-12-16)

SBCS

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

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

	(1995-03-21)

SBD

	{Smart Battery Data}

SBE

	{Microsoft Office Small Business Edition}

SBM

	{Solution Based Modelling}

SB-Prolog

	Stony Brook Prolog.  A {public domain} {Prolog} {interpreter}
	for {Unix}.  Version 3.1.  Distributed under the {GNU}
	{General Public License}.

	{(ftp://sbcs.sunysb.edu/pub/sbprolog/)}.

	{Amiga version 2.3.2
	(ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff140)} and
	{(ftp://ftp.cso.uiuc.edu/amiga/fish/f1/ff141)}.

	E-mail: <warren@sbcs.sunysb.edu>.

	(1995-01-16)

SBR

	{Spectral Band Replication}

SBus

	<hardware> The hardware interface for add-in boards in later
	{Sun-3} (and {Sun-4}?) {workstations}.

	[Reference?]

	(2001-09-07)

SC

	<body> Subcommittee (of {ISO}, {JTC}?).

sc

	<networking> The {country code} for the Seychelles.

	(1999-01-27)

SCA

	{Single Connection Attach}

SCADA

	{Supervisory Control and Data Acquisition}

scag

	To destroy the data on a disk, either by corrupting the
	file system or by causing media damage.

	Compare {scrog}, {roach}.

	[{Jargon File}]

	(1995-01-16)

scalability

	How well a solution to some problem will work when the size of
	the problem increases.

	For example, a central {server} of some kind with ten
	{clients} may perform adequately but with a thousand clients
	it might fail to meet response time requirements.  In this
	case, the average response time probably scales linearly with
	the number of clients, we say it has a {complexity} of O(N)
	("order N") but there are problems with other complexities.
	E.g. if we want N nodes in a network to be able to communicate
	with each other, we could connect each one to a central
	exchange, requiring O(N) wires or we could provide a direct
	connection between each pair, requiring O(N^2) wires (the
	exact number or formula is not usually so important as the
	highest power of N involved).

	(1995-03-29)

Scalable Coherent Interface

	<hardware, protocol> (SCI) The {ANSI}/{IEEE} 1596-1992
	{standard} that defines a point-to-point {interface} and a set
	of {packet} {protocols}.  The SCI protocols use packets with a
	16-byte {header} and 16, 64, or 256 data bytes.  Each packet
	is protected by a 16-bit {CRC} code.

	The standard defines 1 Gbit/second {serial} {fiber-optic}
	links and 1 Gbyte/second {parallel} copper links.  SCI has two
	unidirectional links that operate concurrently.

	The SCI protocols support {shared memory} by encapsulating
	{bus} requests and responses into SCI request and response
	packets.  Packet-based {handshake} protocols guarantee
	reliable data delivery.  A set of {cache coherence} protocols
	are defined to maintain cache coherence in a {shared memory
	system}.

	{Message passing} is supported by a compatible subset of the
	SCI protocols.  This protocol subset does not invoke SCI cache
	coherency protocols.

	SCI uses 64-bit {addressing} and the most significant 16 bits
	are used for addressing up to 64K {nodes}.

	{http://uni-paderborn.de/pc2/systems/sci/}.

	[Applications?]

	(1999-03-22)

Scalable Processor ARChitecture

	<computer> (SPARC) An {instruction set architecture} designed
	by {Sun Microsystems} for their own use in 1985.  Sun was a
	maker of {680x0}-based {Unix} {workstations}.  Research
	versions of {RISC} processors had promised a major step
	forward in speed but existing manufacturers were slow to
	introduce a RISC type processor, so Sun went ahead and
	developed its own, based on the {University of California at
	Berkley}'s {RISC I} and {RISC II} 1980-2.  In keeping with
	their open philosophy, they licenced it to other companies,
	rather than manufacture it themselves.  The evolution and
	standardisation of SPARC is now directed by the non-profit
	consortium {SPARC International, Inc.}

	SPARC was not the first {RISC} processor.  The {AMD 29000}
	came before it, as did the {MIPS R2000} (based on {Stanford}'s
	design) and {Hewlett-Packard} {Precision Architecture} {CPU},
	among others.  The SPARC design was radical at the time, even
	omitting multiple cycle multiply and divide instructions (like
	a few others), while most RISC CPUs are more conventional.

	SPARC implementations usually contain 128 or 144 {registers},
	({CISC} designs typically had 16 or less).  At each time 32
	registers are available - 8 are global, the rest are allocated
	in a "window" from a stack of registers.  The window is moved
	16 registers down the stack during a function call, so that
	the upper and lower 8 registers are shared between functions,
	to pass and return values, and 8 are local.  The window is
	moved up on return, so registers are loaded or saved only at
	the top or bottom of the register stack.  This allows
	functions to be called in as little as 1 cycle.  Like some
	other RISC processors, reading global register zero always
	returns zero and writing it has no effect.  SPARC is
	{pipelined} for performance, and like previous processors, a
	dedicated {condition code register} holds comparison results.

	SPARC is "scalable" mainly because the register stack can be
	expanded (up to 512, or 32 windows), to reduce loads and saves
	between functions, or scaled down to reduce {interrupt} or
	{context switch} time, when the entire register set has to be
	saved.  Function calls are usually much more frequent, so the
	large register set is usually a plus.

	SPARC is not a chip, but a specification, and so there are
	various implementations of it.  It has undergone revisions,
	and now has multiply and divide instructions.  Most versions
	are 32 bits, but there are designs for 64-bit and
	{superscalar} versions.  SPARC was submitted to the {IEEE}
	society to be considered for the {P1754} microprocessor
	standard.

	SPARC(R) is a registered trademark of SPARC International,
	Inc. in the United States and other countries.

	[The SPARC Architecture Manual, v8, ISBN 0-13-825001-4].

	(1994-11-01)

Scalable Sampling Rate

	<compression, standard, algorithm> (SSR) See, e.g., {MPEG-4
	AAC SSR}.

	(2001-12-08)

Scalable Vector Graphics

	<graphics, World-Wide Web> A {W3C} standard for {vector
	graphics}, based on {XML}.

	{(http://w3.org/Graphics/SVG/)}.

	(2001-02-06)

scalar

	1. <mathematics> A single number, as opposed to a {vector} or
	{matrix} of numbers.  Thus, for example, "scalar
	multiplication" refers to the operation of multiplying one
	number (one scalar) by another and is used to contrast this
	with "matrix multiplication" etc.

	2. <architecture> In a {parallel processor} or {vector
	processor}, the "scalar processor" handles all the sequential
	operations - those which cannot be parallelised or vectorised.

	See also {superscalar}.

	3. <programming> Any data type that stores a single value
	(e.g. a number or {Boolean}), as opposed to an {aggregate}
	data type that has many elements.  A {string} is regarded as a
	scalar in some languages (e.g. {Perl}) and a vector of
	{characters} in others (e.g. {C}).

	(2002-06-12)

SCALLOP

	<language, history> A medium-level language for {CDC}
	computers, used to {bootstrap} the first {Pascal} {compiler}.

	(1994-11-01)

SCAN

	1. ["A Parallel Implementation of the SCAN Language",
	N.G. Bourbakis, Comp Langs 14(4):239-254 (1989)].

	2. A {real-time} language from {DEC}.

	[Are these the same language?]

	(1994-11-01)

scan

	1. (computer peripheral) See {scanner}.

	2. (circuit design) See {scan design}.

	3. ({functional programming}) See {scanl}, {scanr}.

	4. <storage, algorithm> An algorithm for scheduling multiple
	accesses to a disk.  A number of requests are ordered
	according to the data's position on the storage device.  This
	reduces the disk arm movement to one "scan" or sweep across
	the whole disk in the worst case.  The serivce time can be
	estimated from the disk's track-to-track {seek} time, maximum
	seek time (one scan), and maximum {rotational latency}.

	{Scan-EDF} is a variation on this.

	(1995-11-15)

scan design

	<electronics> (Or "Scan-In, Scan-Out") A electronic circuit
	design technique which aims to increase the controllability
	and observability of a digital {logic circuit} by
	incorporating special "{scan registers}" into the circuit so
	that they form a {scan path}.

	Some of the more common types of scan design include the
	{multiplexed register} designs and {level-sensitive scan
	design} (LSSD) used extensively by {IBM}.  {Boundary scan} can
	be used alone or in combination with either of the above
	techniques.

	["Digital Systems Testing and Testable Design" by Abramovici,
	Breuer, and Friedman, ISBN 0-7167-8179-4].

	["Design of Testable Logic Circuits" by R.G. Bennetts,
	(Brunel/Southhampton Universities), ISBN 0-201-14403-4].

	(1995-02-23)

SCANDISK

	<operating system, storage> An {MS-DOS} command to check for
	faults on a disk and provide a graphical representation the
	results.  Scandisk was introduced with MS-DOS version 6 to
	replace CHKDSK.

	[What kinds of disk?  What faults?]

	(1997-07-16)

Scan-EDF

	<storage, algorithm> A variation of the {Scan} disk aceess
	algorithm for use in a {real-time} environment where, in
	general, requests are served according to {Earliest Deadline
	First}.  If two requests share the same deadline, they may be
	reorganised according to Scan.

	A typical example is a video server that retrieves video data
	from a hard disk.  The playback of a video impose tight
	real-time constraints but if the server retrieves data once
	every second for each video channel, Scan-EDF can be applied,
	reducing the {seek} {overhead}.

	(1995-11-15)

scanf

	The {C} library routine that reads data from the {standard
	input} {stream} {stdin} into the locations given by each entry
	in its argument list.  The first argument is a format string
	which controls interpretation of the input and each subsequent
	argument points to a variable with a type that corresponds to
	a type specifier in the format-string.

	{Unix manual page}: scanf(3).

	(1995-02-23)

Scan-In, Scan-Out

	{scan design}

scan line

	<hardware> A horizontal line of {pixels} generated by a single
	horizontal sweep of the beam from a {monitor}'s {electron
	gun}.  The number of scanlines that make up a {frame} is the
	vertical {resolution}.

	(1996-02-09)

scanner

	1. An input device that takes in an optical image and
	digitises it into an electronic image represented as binary
	data.  This can be used to create a computerised version of a
	photo or illustration.

	A scanner may be linked to {optical character recognition}
	software allowing printed documents to be converted to
	electronic text without having to type them in at a keyboard.

	2. {lexical analyser}.

	(1995-02-14)

scanno

	/skan'oh/ An error in a document caused by a {scanner} glitch,
	analogous to a typo or {thinko}.

	[{Jargon File}]

	(1995-02-14)

scan path

	(circuit design) A technique used to increase the
	controllability and observability of a {logic circuit} by
	incorporating "{scan registers}" into the circuit.  Normally
	these act like {flip-flops} but they can be switched into a
	"test" mode where they all become one long {shift register}.
	This allows data to be clocked serially through all the scan
	registers and out of an output pin at the same time as new
	data is clocked in from an input pin.

	Using this technique, the state of certain points in the
	circuit can be examined and modified at any time by suspending
	normal operation and switching to test mode.  If the scan path
	is placed adjacent to the circuit's input and output pins then
	this is known as "{boundary scan}".

	(1995-02-14)

scan register

	<electronics, testing> A {digital logic} circuit which can
	act either as a {flip-flop} or as a serial {shift register}
	and which is used to form a {scan path} for testing.

	The most common design is a multiplexed {flip-flop}:

		      ___	  ____
	 normal in --|	 \	 |    |
		     |mux |------|D  Q|---- normal/scan
	 scan in ----|___/    	 |    |     output
		       |	 |flip|
	 test mode ----+         |flop|
			         |    |
	 clk --------------------|>   |
				 |____|

	The addition of a {multiplexor} (mux) to each {flip-flop}'s
	input allows operation in either normal or test mode.  The
	output of each flip-flop goes to the normal functional logic
	as well as to the scan input of the next multiplexor in the
	scan path.

	The other common design is {level-sensitive scan design}
	(LSSD).

	(2011-12-16)

scar tissue code

	<humour, programming> Old {code} that is {commented out} but still
	included in the current {release}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-01-04)

SCC

	{strongly connected component}

SCCS

	<software> Source Code Control System: a popular {source code
	management} system found on {Unix} since early versions.

	{Unix manual page}: sccs(1).

	(2011-12-16)

SCEPTRE

	Designing and analysing circuits.

	["SCEPTRE: A Computer Program for Circuit and Systems
	Analysis", J.C. Bowers et al, P-H 1971].

Schachter's Hypothesis

	<World-Wide Web> The observation that "Given two unrelated
	technical terms, an {Internet} {search engine} will retrieve
	only résumés".  This was first formulated by {Joshua Eli
	Schachter (http://burri.to/~joshua/)} in about 1998, while
	poring over the uniformly irrelevant pages that resulted from
	a search he'd run on "+{Perl} +{MAPI}" in {Altavista}.

	(2002-02-04)

scheduler

	{scheduling}

scheduling

	<algorithm> The arrangement of a number of related operations
	in time.

	There are several kinds of scheduling related to computers:

	{instruction scheduling} - sequencing the instructions
	executed by the {CPU}

	{multitasking} ("process scheduling") - sharing a CPU between
	several processes

	{application} {software} to help organise your daily meetings
	etc.

	{task scheduling} - {algorithms} to solve the general problem
	of satisfying time and resource {constraints} between a number
	of tasks.

	Compare {planning}.

	(1998-04-25)

Scheduling API

	{Scheduling Application Programming Interface}

Scheduling Application Programming Interface

	(SAPI, Scheduling API) An {API} aimed at {software} which aids
	humans in arranging their (business) activities.

	{Microsoft} has defined a SAPI for its {Schedule+}
	application.

	(1995-01-11)

Schelog

	<language, Scheme, Prolog> (Previously "slog"?) A {Prolog} to
	{Chez Scheme} {macro} translator by <dorai@cs.rice.edu>.
	Schelog relies on continuations.

	{(http://cs.rice.edu/CS/PLT/packages/schelog)}.

	(2000-11-20)

schema

	1. <database> {database schema}.

	2. <logic> {axiom schema}.

	3. <data> {XML schema}.

Schema Definition Set

	(SDS) Something in {Portable Common Tool Environment}.

	[What?]

	(2001-03-03)

Schema Representation language

	(SRL)

	["SRL/2 Users Manual", J.M. Wright et al, Robotics Inst, CMU,
	1984].

schematic capture

	The process of entering the logical design of an electronic
	circuit into a CAE system by creating a schematic
	representation of components and interconnections.

schematic type variable

	{generic type variable}

Schematik

	A {NeXT} front-end to {MIT Scheme} for the NeXT by Chris Kane
	and Max Hailperin <max@nic.gac.edu>.  Schematik provides
	syntax-knowledgeable text editing, graphics windows and a
	user-interface to an underlying MIT Scheme process.  It comes
	with MIT Scheme 7.1.3 ready to install on the NeXT and
	requires {NEXTSTEP}.

	Version: 1.1.5.2.

	{USA FTP (ftp://ftp.gac.edu/pub/next/scheme/)}.  {Germany
	(ftp://ftp.informatik.uni-muenchen.de/pub/next/ProgLang)}.

	 E-mail: <schematik@gac.edu>.

	 (1993-03-11)

Scheme

	<programming> (Originally "Schemer", by analogy with {Planner}
	and {Conniver}).  A small, uniform {Lisp} dialect with clean
	{semantics}, developed initially by {Guy Steele} and {Gerald
	Sussman} in 1975.  Scheme uses {applicative order reduction}
	and {lexical scope}.  It treats both {functions} and
	{continuations} as {first-class} objects.

	One of the most used implementations is {DrScheme}, others
	include {Bigloo}, {Elk}, {Liar}, {Orbit}, {Scheme86} (Indiana
	U), {SCM}, {MacScheme} (Semantic Microsystems), {PC Scheme}
	(TI), {MIT Scheme}, and {T}.

	See also {Kamin's interpreters}, {PSD}, {PseudoScheme},
	{Schematik}, {Scheme Repository}, {STk}, {syntax-case}, {Tiny
	Clos}, {Paradigms of AI Programming}.

	There have been a series of revisions of the report defining
	Scheme, known as {RRS} (Revised Report on Scheme), {R2RS}
	(Revised Revised Report ..), {R3RS}, {R3.99RS}, {R4RS}.

	{Scheme resources (http://schemers.org/)}.

	Mailing list: scheme@mc.lcs.mit.edu.

	[IEEE P1178-1990, "IEEE Standard for the Scheme Programming
	Language", ISBN 1-55937-125-0].

	(2003-09-14)

Scheme84

	{Scheme} from {Indiana University}.  It requires {Franz Lisp}
	on a {VAX} under {VMS} or {BSD}.

	E-mail: Nancy Garrett <nlg@indiana.edu>.

	Send a tape with return postage to Scheme84 Distribution,
	Nancy Garrett, c/o Dan Friedman, Department of Computer
	Science, Indiana University, Bloomington, Indiana.  Telephone:
	+1 (812) 335 9770.

Scheme88

	{(ftp://nexus.yorku.ca/pub/scheme/)}.

	[Description?]

Scheme->C

	{Scheme-to-C}

Scheme Library

	<library> (SLIB) A portable {Scheme} library providing
	compatibiliy and utility functions for all standard Scheme
	implementations.

	Version 2c5 supports {Bigloo}, {Chez}, {ELK}, {GAMBIT},
	{MacScheme}, {MITScheme}, {PocketScheme}, {RScheme},
	{Scheme->C}, {Scheme48}, {SCM}, {SCSH}, {T3.1}, {UMB-Scheme},
	and {VSCM}.

	{(http://swissnet.ai.mit.edu/~jaffer/SLIB.html)}.

	(1999-06-07)

Scheme-Linda

	A {Scheme} interface to {Linda} written by Ulf Dahlen of
	{University of Edinburgh} in 1990.  It runs on the {Computing
	Surface} and the {Symmetry}.

	["Scheme-Linda", U. Dahlen et al, EPCC-TN-90-01 Edinburgh
	1990].

	(1994-12-15)

Scheme Object System

	(SOS) Chris Hanson?

	{(ftp://altdorf.ai.mit.edu/archive/cph/sos.tar.gz)}.

	[Description?]

Scheme Repository

	A collection of free {Scheme} programs.

	{(ftp://nexus.yorku.ca/pub/scheme/)}.

Scheme-to-C

	<language> A {Scheme} {compiler} written in {C} that emits C
	and is embeddable in C.  Scheme-to-C was written by Joel
	Bartlett of {Digital Western Research Laboratory}.  Version
	15mar93 translates a superset of Revised**4 Scheme to C that
	is then compiled by the {native} {C} compiler for the {target
	machine}.  This design results in a portable system that
	allows either stand-alone Scheme programs or programs written
	in both compiled and interpreted Scheme and other languages.
	It supports "{expansion passing style}" {macros}, {foreign
	function} calls, {records}, and interfaces to {Xlib} ({Ezd}
	and {Scix}).

	Scheme-to-C runs on {VAX}, {ULTRIX}, {DECstation}, {Alpha AXP}
	{OSF}/1, {Windows 3.1}, {Apple Macintosh} 7.1, {HP 9000/300},
	{HP 9000/700}, {Sony News}, {SGI} {Iris} and {Harris}
	{Nighthawk}, and other {Unix}-like {88000} systems.  The
	earlier 01nov91 version runs on {Amiga}, {SunOS}, {NeXT}, and
	{Apollo} systems.

	{(ftp://gatekeeper.dec.com/pub/DEC/Scheme-to-C/)}.

	(2000-05-24)

Schlaer-Mellor

	An {object-oriented analysis} (OOA), design and modelling
	method that addresses the integration of structural and
	behavioural properties.  It also allows an animation of the
	design.

	{I-OOA} is a tool that supports the Schlaer Mellor Design
	Method.

	(1995-01-31)

Schoonschip

	<mathematics, tool> (From the Dutch for "beautiful ship" or
	"clean ship") A program for {symbolic mathematics}, especially
	High Energy Physics, written by M. Veltman of CERN in 1964.
	Schoonschip only does algebra, no derivatives.  It was
	implemented originally in {CDC 6600} and {CDC 7600} {assembly
	language} and currently in {680x0} {assembly language}.
	Latest versions run on {Amiga}, {Atari ST}, {Sun-3} and
	{NeXT}.

	It was once maintained by David Williams at the {University of
	Michigan} Physics Department.

	{(ftp://archive.umich.edu/physics/schip)}.

	(2000-11-14)

schrödinbug

	<jargon, programming> /shroh'din-buhg/ ({MIT}, from the
	Schrödinger's Cat thought-experiment in quantum physics) A design
	or implementation {bug} that doesn't manifest until someone
	reading the {source code} or using the program in an unusual way
	notices that it never should have worked, at which point it stops
	working until fixed.

	Though (like {bit rot}) this sounds impossible, it happens; some
	programs have harboured schrödinbugs for years.

	Compare {heisenbug}, {Bohr bug}, {mandelbug}.

	[{Jargon File}]

	(1995-02-28)

SCI

	<hardware> 1. {Scalable Coherent Interface}.

	2. {UART}.

	(1998-02-14)

Science and Engineering Research Council

	<body> (SERC) Formerly the largest of the five research
	councils funded by the British Government through the Office
	of Science and Technology.  SERC funded higher education
	research in science and engineering, including computing and
	was responsible for the Rutherford Appleton Laboratory, near
	Oxford; the Daresbury Laboratory, near Warrington; the Royal
	Greenwich Observatory at Cambridge and the Royal Observatory,
	Edinburgh.

	In April 1994 SERC was split into the Engineering and Physical
	Sciences Research Council and the Particle Physics and
	Astronomy Research Council.  SERC's remote sensing efforts
	have been transferred to the Natural Environment RC and its
	biotechnology efforts merged with the Agriculture and Food RC
	to make the new Biotechnology and Biological Sciences RC.  The
	two major SERC laboratories - {Rutherford Appleton Laboratory}
	and Daresbury Laboratory are now independent.

	{(http://unixfe.rl.ac.uk/serc/serc.html)}.

	(1994-12-15)

Scientific Data Systems

	<company> (SDS) The company that produced the SDS 940 (later
	renamed {XDS 940}).  Around 1968 {Xerox} bought out SDS and
	renamed the SDS machines to XDS.

	[What else?]

	(2001-03-03)

SCL

	<language> 1. {System Control Language}.

	2. Symbolic Communication Language.  Designed primarily for
	the manipulation of symbolic formulas.  Featured pattern
	matching (which was partly the inspiration for SNOBOL), string
	operations in buffers, and automatic storage management.  "A
	Language for Symbolic Communication", C.Y. Lee et al, Tech Mem
	62-3344-4, Bell Labs, Sept 1962.

SCM

	1. <business> {Supply Chain Management}.

	(2003-10-09)

	2. <language> A {Scheme} {interpreter} in {C} by Aubrey Jaffer
	and others.  SCM conforms to {R4RS} and {IEEE} {P1178} and
	includes a {conformance test}.  It is distributed under {GPL}.
	Version 5d0 runs under {Amiga}, {Atari-ST}, {MacOS}, {MS-DOS},
	{OS/2}, {NOS/VE}, {Unicos}, {VMS}, {Unix}, and similar
	systems.

	{x-scm} provides an {X Window System} interface for SCM
	programs.

	{(http://swissnet.ai.mit.edu/~jaffer/SCM.html)}.

	(1999-06-07)

SC/MP

	<processor> (Nicknamed "Scamp") A typical 8-bit
	{microprocessor} from {National Semiconductor} released in
	April 1976.  It was intended for control applications (a
	simple {BASIC} in a 2.5K {ROM} was added to one version).  It
	featured 16 bit addressing, with 12 address lines and 4 lines
	borrowed from the data bus (it was common to borrow lines from
	the data bus for addressing).  Internally, it included three
	{index registers} (P1 to P3) and two 8-bit general-purpose
	{registers}.  It had a {PC}, but no {stack pointer} or
	{subroutine} instructions (though they could be emulated with
	index registers).  During {interrupts}, the {PC} was saved in
	P3.  It was meant for embedded control, and these features
	were omitted for cost reasons.  It was also {bit serial}
	internally to keep it cheap.

	The unique feature was the ability to completely share a
	system bus with other processors.  Most processors of the time
	assumed they were the only ones accessing memory or I/O
	devices.  Multiple SC/MPs could be hooked up to the bus, as
	well as other intelligent devices, such as {DMA controllers}.
	A control line (ENOUT (Enable Out) to ENIN) could be chained
	along the processors to allow cooperative processing.  This
	was very advanced for the time, compared to other {CPUs}.

	In addition to I/O ports like the {Intel 8080}, the SC/MP also
	had instructions and one pin for serial input and one for
	output.

	(1994-11-16)

SCO

	{Santa Cruz Operation}

Scode

	The internal representation used by the {Liar} compiler for
	{MIT Scheme}.

	(1994-11-01)

SCOOP

	Structured Concurrent Object-Oriented Prolog.

	["SCOOP, Structured Concurrent Object-Oriented Prolog",
	J. Vaucher et al, in ECOOP '88, S. Gjessing et al eds, LNCS
	322, Springer 1988, pp.191-211].

SCOOPS

	Scheme Object-Oriented Programming System.  Developed at
	{Texas Instruments} in 1986.  It supports {multiple
	inheritance} and {class variables}.

	{(ftp://altdorf.ai.mit.edu/archive/scheme-library/unsupported/CScheme)}.

	(1994-11-01)

SCOPE

	<project> Software Evaluation and Certification Programme
	Europe.

	An {ESPRIT} project.

	(1995-04-12)

scope

	<programming> The scope of an identifier is the region of a
	program source within which it represents a certain thing.
	This usually extends from the place where it is declared to
	the end of the smallest enclosing block (begin/end or
	procedure/function body).  An inner block may contain a
	redeclaration of the same identifier in which case the scope
	of the outer declaration does not include (is "shadowed" or
	"{occlude}d" by) the scope of the inner.

	See also {activation record}, {dynamic scope}, {lexical
	scope}.

	(1994-11-01)

Scorpion

	Twenty tools that can be used to construct specialised
	programming environments.  The Scorpion Project was started by
	Prof. Richard Snodgrass <rts@cs.arizona.edu> as an outgrowth
	of the {SoftLab} Project (which produced the {IDL Toolkit})
	that he started when he was at the {University of North
	Carolina}.  The Scorpion Project is directed by him at the
	{University of Arizona} and by Karen Shannon at the
	{University of North Carolina} at Chapel Hill.

	Version 6.0 runs on {Sun-3}, {Sun-4}, {VAX}, {Decstation},
	{Iris}, {Sequent}, {HP9000}.

	See also {Candle}.

	{(ftp://cs.arizona.edu/scorpion/)}.

	Mailing list: info-scorpion-request@cs.arizona.edu.

	E-mail: <scorpion-project@cs.arizona.edu>.

	(1993-11-04)

Scott-closed

	A set S, a subset of D, is Scott-closed if

	(1) If Y is a subset of S and Y is {directed} then lub Y is in
	S and

	(2) If y <= s in S then y is in S.

	I.e. a Scott-closed set contains the {lubs} of its {directed}
	subsets and anything less than any element.  (2) says that S
	is downward {closed} (or left closed).

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

	(1995-02-03)

Scott domain

	An {algebraic}, {boundedly complete}, {complete partial
	order}.  Often simply called a {domain}.

	(1994-11-01)

SCPI

	{Standard Commands for Programmable Instruments}

SCPI Consortium

	<body> A body established to promote {Standard Commands for
	Programmable Instruments}.

	Address: 8380 Hercules Drive, Suite P3, La Mesa, CA 91942,
	USA.

	{SCPI in Europe
	(http://ourworld.compuserve.com/homepages/acea/scpi_uk.htm)}.
	Address: ACEA, P.O. Box 134, 7640 AC Wierden The Netherlands.
	Telephone: +31 546 577 994.  E-mail: <ACEA@compuserve.com>.

	(1999-01-05)

scram switch

	<jargon> (From the nuclear power industry) An emergency
	power-off switch (see {Big Red Switch}), especially one
	positioned to be easily hit by evacuating personnel.  In
	general, this is *not* something you {frob} lightly; these
	often initiate expensive events (such as Halon dumps) and are
	installed in a {dinosaur pen} for use in case of electrical
	fire or in case some luckless {field servoid} should put 120
	volts across himself while {Easter egging}.

	SCRAM stands for Safety Control Rod Ax Man.  In the early days
	of nuclear power, boron moderator rods were raised and lowered
	on ropes.  In the event of a runaway chain reaction, a man
	with an axe would chop the rope and drop the rods into the
	nuclear pile to stop the reaction.

	See also {molly-guard}, {TMRC}.

	[{Jargon File}]

	(2003-05-17)

SCRAP

	Something written at {CSIR}, Pretoria, South Africa in the
	late 1970s.  It ran on {Interdata} and {Perkin-Elmer}
	computers and was in use until the late 1980s.

	[But what was it?]

	(1994-12-15)

scratch

	1. (From "scratchpad") Describes a data structure or recording
	medium attached to a machine for testing or temporary-use
	purposes; one that can be {scribble}d on without loss.
	Usually in the combining forms "scratch memory", "scratch
	register", "scratch disk", "scratch tape", "scratch volume".

	See also {scratch monkey}.

	2. (primarily {IBM}) To delete (as in a file).

	[{Jargon File}]

	(1994-12-15)

scratch disk

	1. <storage> See {scratch}.

	2. <operating system> Unallocated space on {Windows 95}'s
	primary {hard disk} {partition}, used for {virtual memory}.

	Shortage of space on this partition can result in the error
	"scratch disk full".

	(2000-03-07)

scratch monkey

	<humour> As in "Before testing or reconfiguring, always mount
	a {scratch monkey}", a proverb used to advise caution when
	dealing with irreplaceable data or devices.  Used to refer to
	any scratch volume hooked to a computer during any risky
	operation as a replacement for some precious resource or data
	that might otherwise get trashed.

	This term preserves the memory of Mabel, the Swimming Wonder
	Monkey, star of a biological research program at the
	University of Toronto.  Mabel was not (so the legend goes)
	your ordinary monkey; the university had spent years teaching
	her how to swim, breathing through a regulator, in order to
	study the effects of different gas mixtures on her physiology.
	Mabel suffered an untimely demise one day when a DEC engineer
	troubleshooting a crash on the program's VAX inadvertently
	interfered with some custom hardware that was wired to Mabel.

	It is reported that, after calming down an understandably
	irate customer sufficiently to ascertain the facts of the
	matter, a DEC troubleshooter called up the {field circus}
	manager responsible and asked him sweetly, "Can you swim?"

	Not all the consequences to humans were so amusing; the sysop
	of the machine in question was nearly thrown in jail at the
	behest of certain clueless droids at the local "humane"
	society.  The moral is clear: When in doubt, always mount a
	scratch monkey.

	{ESR} notes: There is a version of this story, complete with
	reported dialogue between one of the project people and DEC
	field service, that has been circulating on Internet since
	1986.  It is hilarious and mythic, but gets some facts wrong.
	For example, it reports the machine as a {PDP-11} and alleges
	that Mabel's demise occurred when DEC {PM}ed the machine.
	Earlier versions of this entry were based on that story; this
	one has been corrected from an interview with the hapless
	sysop.

	A corespondent adds: The details you give are somewhat
	consistent with the version I recall from the Digital "War
	Stories" notesfile, but the name "Mabel" and the swimming bit
	were not mentioned, IIRC.  Also, there's {a very detailed
	account (http://mv.com/ipusers/arcade/monkey.htm)} that
	claims that three monkies died in the incident, not just one.
	I believe Eric Postpischil wrote the original story at DEC, so
	his coming back with a different version leads me to wonder
	whether there ever was a real Scratch Monkey incident.

	[{Jargon File}]

	(2004-08-22)

Scratchpad I

	<language> A general-purpose language originally for
	interactive {symbolic mathematics} by Richard Jenks, Barry
	Trager, Stephen M. Watt and Robert S. Sutor of {IBM Research},
	ca 1971.  It features abstract parametrised data types,
	{multiple inheritance} and {polymorphism}.  There were
	implementations for {VM/CMS} and {AIX}.

	["Scratchpad User's Manual", RA 70, IBM (June 1975)].

	(1994-12-15)

Scratchpad II

	See {Scratchpad I}, {AXIOM}.

	["Scratchpad II Programming Language Manual", R.D. Jenks et
	al, IBM, 1985].

	[Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box
	218, Yorktown Hts, NY 10598].

scream and die

	Synonym {cough and die}, but connotes that an error message
	was printed or displayed before the program crashed.

	[{Jargon File}]

Screamer

	An extension of {Common Lisp} providing {nondeterministic}
	{backtracking} and {constraint} programming.

	{(ftp://ftp.ai.mit.edu/pub/screamer.tar.Z)}.

	[Isn't all backtracking nondeterministic by definition?]

screaming tty

	[Unix] A terminal line which spews an infinite number of
	random characters at the operating system.  This can happen if
	the terminal is either disconnected or connected to a
	powered-off terminal but still enabled for login;
	misconfiguration, misimplementation, or simple bad luck can
	start such a terminal screaming.  A screaming tty or two can
	seriously degrade the performance of a vanilla Unix system;
	the arriving "characters" are treated as userid/password pairs
	and tested as such.  The Unix password encryption algorithm is
	designed to be computationally intensive in order to foil
	brute-force crack attacks, so although none of the logins
	succeeds; the overhead of rejecting them all can be
	substantial.

	[{Jargon File}]

screen

	1. <hardware> A generic term for a {display device} that shows
	text and/or images on a roughly flat rectangular surface.  The
	most common type is usually refered to as a "{monitor}" and is
	based on a {cathode-ray tube}, though {flat panel} displays
	have, since around 2000, become increasingly competitive in
	price and performance.

	(2005-07-28)

	2. A {screen multiplexer} utility which lets you run multiple
	{interactive} {terminal sessions} (and {curses} programs)
	through a single terminal connection (on one {virtual
	console}, one terminal, through one {modem} link, {telnet}
	session or {xterm}).

	Screen can detach processes from one terminal and attach them
	to another.  "Auto-detach" lets you continue working after
	being disconnected and reconnected.  It supports keyboard
	driven cut and paste from any text and/or curses application
	(like {Lynx}) to any other (like {xemacs}).

	Screen comes with many {Linux} distributions and is available
	(free) on many other {Unix} {platforms}.

	(2005-07-29)

screen blanker

	{screen saver}

screen dump

	<graphics> (Or "screen shot") An {image}, often stored in a
	file, of what was displayed on a computer's screen at some
	time.  Sending someone a screen dump can be very useful for
	remote support and diagnosis because it may show important
	details that the user didn't realise were significant,
	e.g. which {web browser} they were using.

	(2009-01-05)

Screen Peace

	<tool> A {screen saver} for {Microsoft Windows} by Anthony
	Andersen.  Released as {charityware}.  It can load extension
	modules with {filename extension} ".SPX".

	{Some modules
	(ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/windows3/desktop/spx2.zip)}.

	(1997-11-23)

screen popping

	<communications> The use of {CTI} to make customer data appear
	on a call centre terminal at the same time as the customer
	call is transferred.

	(2003-12-04)

screen reader

	<application> A {text-to-speech} system, intended for use by
	blind or low-vision users, that speaks the text content of a
	computer display.

	(1998-10-19)

screen refresh

	{refresh rate}

screen saver

	<tool> A program which displays either a completely black
	image or a constantly changing image on a computer monitor to
	prevent a stationary image from "burning" into the phosphor of
	the screen.  Screen savers usually start automatically after
	the computer has had no user input for a preset time.  Some
	screen savers come with many different modules, each giving a
	different effect.

	Approximately pre-1990, many {cathode ray tubes}, in TVs,
	computer {monitors} or elsewhere, were prone to "burn-in";
	that is, if the same pattern (e.g., the {WordPerfect} status
	line; the {Pong} score readout; or a TV channel-number
	display) were shown at the same position on the screen for
	very long periods of time, the phosphor on the screen would
	"fatigue" and that part of the screen would seem greyed out,
	even when the CRT was off.

	Eventually CRTs were developed which were resistant to burn-in
	(and which sometimes went into {sleep} mode after a period of
	inactivity); but in the meantime, solutions were developed:
	home video game systems of the era (e.g., Atari 2600s) would,
	when not being played, change the screen every few seconds, to
	avoid burn-in; and computer screen saver programs were
	developed.

	The first screen savers were simple screen blankers - they
	just set the screen to all black, but, in the best case of
	{creeping featurism} ever recorded, these tiny (often under 1K
	long) programs grew without regard to efficiency or even basic
	usefulness.  At first, small, innocuous {display hacks}
	(generally on an almost-black screen) were added.  Later, more
	complex effects appeared, including {animations} (often with
	sound effects!) of arbitrary length and complexity.

	Along the way, avoiding repetitive patterns and burn-in was
	completely forgotten and "screen savers" such as {Pointcast}
	were developed, which make no claim to save your monitor, but
	are simply bloated {browsers} for {push media} which
	self-start after the machine has been inactive for a few
	minutes.

	(1997-11-23)

screen scraper

	<tool> A piece of software used to automate interaction
	between two computer systems through the terminal interface
	(designed for human use) of one of those systems.

	Typically, the screen scraper interacts with {terminal
	emulation} software to generate input to and process output
	from the "host" system through terminal screens.  Screen
	scrapers are advantageous when modifications to the host
	system are undesireable, when it is desireable to make use of
	the existing business and data integrity logic on the host,
	and when no other (peer-to-peer) interface method is
	available.

	Some products employ screen scraping combined with additional
	functionality which provides a {DBMS}-like or other
	specialised interface to the host.  The host system is often
	called a "{legacy} system" because it usually the older of the
	systems involved and based on older technology.

	(1995-04-19)

screen server

	<spelling> Do you mean "{screen saver}"?

	(2004-08-21)

screen sharing

	{Audiographic Teleconferencing}

Screenwrite

	<language> A columnar format {third generation programming
	language} similar in layout to {assembler} and used for
	{transaction processing}, solely on the {Honeywell} {Bull}
	{TPS6} {database}/transaction management system on their Level
	6 {DPS6} {minicomputers} running under the {GCOS6} {operating
	system}.  In the UK it was mainly used by local authorities
	and the Ministry of Defense.  Being proprietary technology,
	its popularity waned with the introduction of {open systems}
	standards, {relational databases} and {fourth generation
	languages} but it is believed that some systems made it
	through {Y2K}.

	[Dates?]

	(2003-05-15)

screw

	<jargon> (MIT) A failure, usually in software.  Especially
	used for user-visible misbehaviour caused by a {bug} or
	{misfeature}.  This use has become quite widespread outside
	{MIT}.

	[{Jargon File}]

	(1994-12-01)

screwage

	/skroo'*j/ Like {lossage} but connotes that the failure is due
	to a designed-in misfeature rather than a simple inadequacy or
	a mere bug.

	[{Jargon File}]

	(1994-12-01)

scribble

	To modify a data structure in a random and unintentionally
	destructive way.  "Bletch! Somebody's disk-compactor program
	went berserk and scribbled on the i-node table."  "It was
	working fine until one of the allocation routines scribbled on
	low core."  Synonymous with {trash}; compare {mung}, which
	conveys a bit more intention, and {mangle}, which is more
	violent and final.

	[{Jargon File}]

Scribe

	A text-formatting language by Brian Reid.

	(1994-12-01)

SCRIPT

	1. An early system on the {IBM 702}.

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

	2. A {real-time} language.

	["A Communication Abstraction Mechanism and its Verification",
	N. Francez et al, Sci Comp Prog 6(1):35-88 (1986)].

	(1994-12-01)

script

	<language> A program written in a {scripting language}, but
	see {Ousterhout's dichotomy}.

	(1999-02-22)

Scriptics

	<company> {John Ousterhout}'s company that is the home of
	{Tcl} development and the {TclPro} tool suite.

	{(http://scriptics.com/)}.

	(1998-11-27)

scripting language

	<language> (Or "glue language") A loose term for any language
	that is {weakly typed} or {untyped} and has little or no
	provision for complex {data structures}.  A program in a
	scripting language (a "{script}") is often {interpreted} (but
	see {Ousterhout's dichotomy}).

	Scripts typically interact either with other programs (often
	as {glue}) or with a set of functions provided by the
	interpreter, as with the {file system} functions provided in a
	{UNIX shell} and with {Tcl}'s {GUI} functions.  Prototypical
	scripting languages are {AppleScript}, {C Shell}, {MS-DOS}
	{batch files} and {Tcl}.

	(2001-03-06)

scrog

	/skrog/ [Bell Labs] To damage, trash, or corrupt a data
	structure.  "The list header got scrogged."  Also reported as
	"skrog", and ascribed to the comic strip "The Wizard of Id".
	Compare {scag}; possibly the two are related.  Equivalent to
	{scribble} or {mangle}.

	[{Jargon File}]

SCROLL

	String and Character Recording Oriented Logogrammatic
	Language.

	["SCROLL - A Pattern Recording Language", M. Sargent, Proc
	SJCC 36 (1970)].

	(1994-12-01)

scroll

	<interface> (From a scroll of paper) To change the portion of
	a document displayed in a window or on a {VDU} screen.  In a
	{graphical user interface}, scrolling is usually controlled by
	the user via {scroll bars}, whereas on a VDU the text scrolls
	up automatically as lines of data are output at the bottom of
	the screen.

	(2001-04-27)

scrollable list

	<operating system> A list of information in a {graphical user
	interface} with a {scroll bar}, often used to present a list
	of choices.

	(1999-10-03)

scroll bar

	<graphics> A {widget} found in {graphical user interfaces} and
	used to show and control ("scroll") which portion of a
	document is currently visible in a window.  A window may have
	a horizontal or, most often, vertical scroll bar or both.

	A vertical scroll bar is a narrow strip drawn up the side of
	the window containing a "bubble" whose position in the scroll
	bar represents the position of the visible part within the
	whole document.  By dragging the bubble with the mouse the
	user can scroll the view over the entire document.  Arrow
	buttons are usually provided at the end(s) of the scroll bar
	to allow the window to be scrolled by a small amount, e.g. one
	line of text, in either direction by clicking them with the
	mouse.  Some programs provide a second pair of buttons for
	scrolling a page at a time or some other unit.  Clicking on
	the scroll bar outside the bubble will either, depending on
	the particular {WIMP}, move the bubble to that point or move
	it some amount (typically a screenful) in that direction.

	Different {WIMP} systems define different standards for
	whether scroll bars appear on the left or right, top or bottom
	of the window, and for their behaviour.

	To reduce mouse movement, the up and down scroll buttons
	should either be next to each other at one end of the scroll
	bar (as in {NEXTSTEP}) or should reverse their effect when
	clicked with the right-hand mouse button (as in the {X Window
	System} and {RISC OS}).  The fraction of the scroll bar filled
	by the bubble should indicate the fraction of the document
	visible in the window.

	(1998-06-26)

scrolling

	<chat, games> To flood a {chat room} or {Internet game} with
	text or {macros} in an attempt to annoy the occupants.  This
	can often cause the chat room to be "uninhabitable" due to the
	"noise" created by the scroller.  Compare {spam}.

	(2001-03-27)

scrool

	/skrool/ [The pioneering Roundtable chat system in Houston
	ca. 1984; probably originated as a typo for "scroll"] The log
	of old messages, available for later perusal or to help one
	get back in synch with the conversation.  It was originally
	called the "scrool monster", because an early version of the
	roundtable software had a bug where it would dump all 8K of
	scrool on a user's terminal.

	[{Jargon File}]

scrozzle

	/skroz'l/ Used when a {self-modifying code} segment runs
	incorrectly and corrupts the running program or vital data.

	(1994-11-24)

scruffies

	{neats vs. scruffies}

SCSI

	{Small Computer System Interface}

SCSI-1

	<hardware> The original {SCSI}, as opposed to
	{SCSI-2} or {SCSI-3}.

	(1995-04-20)

SCSI-2

	<hardware> A version of the {SCSI} command
	specification.

	SCSI-2 shares the original SCSI's {asynchronous} and
	{synchronous} modes and adds a "{Fast SCSI}" mode (<10MB/s)
	and "{Wide SCSI}" (16 bit, <20MB/s or rarely 32 bit).

	Another major enhancement was the definition of command sets
	for different device classes.  SCSI-1 was rather minimalistic
	in this respect which led to various incompatibilities
	especially for devices other than {hard-disks}.  SCSI-2
	addresses that problem. allowing {scanners}, {hard disk
	drives}, {CD-ROM} drives, tapes and many other devices to be
	connected.

	Normal SCSI-2 equipment (not wide or {differential}) can be
	connected to a SCSI-1 bus and vice versa.

	(1995-04-19)

SCSI-3

	<hardware> An ongoing standardisation effort to
	extend the capabilities of {SCSI-2}.  SCSI-3's goals are more
	devices on a bus (up to 32); faster data transfer; greater
	distances between devices (longer cables); more device classes
	and command sets; structured documentation; and a structured
	{protocol} model.

	In SCSI-2, data transmission is parallel (8, 16 or 32 bit
	wide).  This gets increasingly difficult with higher data
	rates and longer cables because of varying signal delays on
	different wires.  Furthermore, wiring cost and drive power
	increases with wider data words and higher speed.  This has
	triggered the move to serial interfacing in SCSI-3.  By
	embedding clock information into a serial data stream signal
	delay problems are eliminated.  Driving a single signal also
	consumes less driving power and reduces connector cost and
	size.

	To allow for backward compatibility and for added flexibility
	SCSI-3 allows the use of several different transport
	mechanisms, some serial and some parallel.  The software
	{protocol} and command set is the same for each transport.
	This leads to a layered protocol definition similar to
	definitions found in networking.

	SCSI-3 is therefore in fact the sum of a number of separate
	standards which are defined by separate groups.  These
	standards and groups are currently:

	 X3T9.2/91-13R2   SCSI-3 Generic Packetized Protocol
	 X3T9.2/92-141    SCSI-3 Queuing Model
	 X3T9.2/92-079    SCSI-3 Architecture Model
	 IEEE P1394       High Performance Serial Bus
	 X3T9.2/92-106    SCSI-3 Block Commands
	 X3T9.2/91-189    SCSI-3 Serial Bus Protocol
	 X3T9.2/92-105    SCSI-3 SCSI-3 Core Commands
			  SCSI-3 Common Command Set
	 X3T9.2/92-108    SCSI-3 Graphic Commands
	 X3T9.2/92-109    SCSI-3 Medium Changer Commands
	 X3T9.2/91-11     SCSI-3 Interlocked Protocol
	 X3T9.2/91-10     SCSI-3 Parallel Interface
	 X3T9.2/92-107    SCSI-3 Stream Commands
			  SCSI-3 Scanner Commands

	Additional Documents for the Fibre Channel are also meant to
	be included in the SCSI-3 framework, i.e.:

			  Fibre Channel SCSI Mapping
			  Fibre Channel Fabric Requirements
			  Fibre Channel Low Cost Topologies
	 X3T9.3/92-007    Fibre Channel Physical and Signalling Interface
			  Fibre Channel Single Byte Commands
			  Fibre Channel Cross Point Switch Topology
	 X3T9.2/92-103    SCSI-3 Fibre Channel Protocol (GPP & SBP)

	As all of this is an ongoing effort of considerable
	complexity, document structure and workgroups may change.  No
	final standard is issued yet.

	In the meantime a group of manufacturers have proposed an
	extension of {SCSI-2} called {Ultra-SCSI} which doubles the
	transfer speed of {Fast-SCSI} to give 20MByte/s on an 8 bit
	connection and 40MByte/s on a 16-bit connection.

	[Hermann Strass: "SCSI-Bus erfolgreich anwenden",
	Franzis-Verlag Muenchen 1993].

	(1995-04-19)

SCSI adaptor

	<hardware> (Or "host adaptor") A device that communicates
	between a computer and its {SCSI} {peripherals}.  The SCSI
	adaptor is usually assigned {SCSI ID} 7.  It is often a
	separate card that is connected to the computer's {bus}
	(e.g. {PCI}, {ISA}, {PCMCIA}) though increasinly, SCSI
	adaptors are built in to the {motherboard}.  Apart from being
	cheaper, busses like PCI are too slow to keep up with the
	newer SCSI standards like {Ultra SCSI} and {Ultra-Wide SCSI}.

	There are several varieties of SCSI (and their connectors) and
	an adaptor will not support them all.

	The performance of SCSI devices is limited by the speed of the
	SCSI adaptor and its connection to the computer.  An adaptor
	that plugs into a parallel port is unlikely to be as fast as
	one incorporated into a motherboard.  Fast adaptors use {DMA}
	or {bus mastering}.

	Some SCSI adaptors include a {BIOS} to allow PCs to {boot}
	from a SCSI hard disk, if their own BIOS supports it.

	{Adaptec} make the majority of SCSI {chipsets} and many of the
	best-selling adaptors.

	Note that it is not a "SCSI controller" - it does not control
	the devices, and "SCSI interface" is redundant - the "I" of
	"SCSI" stands for "interface".

	(1999-11-24)

SCSI controller

	{SCSI adaptor}

SCSI ID

	<hardware> The unique address of a {SCSI} device.  SCSI IDs
	range from 0 to 7 for 8-bit SCSI systems, 0 to 15 for 16-bit
	and 0 to 31 for 32-bit systems.  The {SCSI adaptor} is
	usually assigned ID 7.  A device's SCSI ID is often set by
	switches on the device.

	(1999-09-01)

SCSI initiator

	<hardware> A device that begins a {SCSI} transaction by
	issuing a command to another device (the {SCSI target}),
	giving it a task to perform.  Typically a SCSI host adapter is
	the initiator but targets may also become initiators.

	(1999-02-10)

SCSI interface

	{SCSI adaptor}

SCSI reconnect

	<hardware> The ability of a {SCSI initiator} to initiate new
	transactions before earlier ones have completed.  A target or
	initiator can disconnect from the bus when it experiences a
	delay in completing a task so that another device can use the
	bus.  It can reconnect later and complete the task.

	(1999-02-16)

SCSI target

	<hardware> A {SCSI} device that executes a command from a
	{SCSI initiator} to perform some task.  Typically the target
	is a SCSI peripheral device but the {host adapter} can also be
	a target.

	(1999-02-10)

ScumOS

	<abuse, operating system> /skuhm'os/ or /skuhm'O-S/ An
	Unflattering hackerism for {SunOS}, the {Unix} variant once
	supported on {Sun Microsystems}'s Unix {workstations}.

	Despite what this term might suggest, Sun was founded by
	hackers and still enjoys excellent relations with hackerdom;
	usage is more often in exasperation than outright loathing.

	See also {sun-stools}.  Compare {AIDX}, {Macintrash}, {Nominal
	Semidestructor}, {Open DeathTrap}, {HP-SUX}.

	[{Jargon File}]

	(1995-04-19)

scuzzy

	The usual pronunciation of {SCSI}.

SD

	{Structured Design}

sd

	<networking> The {country code} for the Sudan.

	(1999-01-27)

SDDI

	{Sony Digital Data Interface}

SDE

	Software Development Environment: equivalent to SEE.

SDF

	Syntax Definition Formalism.  A language for lexical and
	syntactic specification.

	["The Syntax Definition Formalism SDF - Reference Manual",
	J. Heering et al, Centre for Math & CS, Amsterdam].

	["Algebraic Specification", J.A. Bergstra et al eds, ACM Press
	1989, Chap 6.  To appear].

	(1994-10-27)

SDH

	{Synchronous Digital Hierarchy}

SDI

	1. <library> {Selective Dissemination of Information}.

	2. <programming> {Single Document Interface}.

	(1999-03-30)

SDK

	{Software Developers Kit} (or "Software Development Kit").

SDL

	Specification and Design Language.

	Defined by the {ITU-T} (recommendation Z100) to provide a tool
	for unambiguous specification and description of the behaviour
	of telecommunications systems.  The area of application also
	includes process control and real-time applications.  SDL
	provides a Graphic Representation (SDL/GR) and a textual
	Phrase Representation (SDL/PR), which are equivalent
	representations of the same semantics.  A system is specified
	as a set of interconnected {abstract machines} which are
	extensions of the {Finite State Machine} (FSM).

	1. System Software Development Language.  System software for
	the B1700.  "System Software Development Language Reference
	Manual", 1081346, Burroughs Corp (Dec 1974).

	2. Specification and Description Language.  {ITU-T}.
	Specification language with both graphical and character-based
	syntaxes for defining interacting extended finite state
	machines.  Used to specify discrete interactive systems such
	as industrial process control, traffic control, and
	telecommunication systems.  Proc Plenary Assembly, Melbourne
	14-1988-11-25, Fasc X.1, CCITT.  "Telecommunications Systems
	Engineering Using SDL", R. Saracco et al, N-H 1989.  Available
	from Verilog, MD.  (See XDL).

	3. Shared Dataspace Language.  "A Shared Dataspace Language
	Supporting Large-Scale Concurrency", G. Roman et al, Proc 8th
	Intl Conf Distrib Comp Sys, IEEE 1988, pp.265-272.

	4. Structure Definition Language.  Used internally by DEC to
	define and generate the symbols used for VAX/VMS internal data
	structures in various languages.

	5. System Description Language.  language used by the Eiffel/S
	implementation of Eiffel to assemble clusters into a system.
	(see Lace).

SDL 92

	SDL[2] with object-orientation.

SDLC

	1. <communications> {Synchronous Data Link Control}.

	2. <programming> {Systems Development Life Cycle}.

	(2000-12-24)

SDM

	{Schematic Data Model}

SDMS

	A {query language}.

SDP

	{Service Discovery Protocol}

SDRAM

	{Synchronous Dynamic Random Access Memory}

SDRC

	<company> The company behind {VGX}.

	{(http://sdrc.com/)}.

	[More details?]

	(1998-02-06)

SDR-RAM

	{Single Data Rate Random Access Memory}

SDR-SDRAM

	{Single Data Rate Random Access Memory}

SDS

	1. <company> {Scientific Data Systems}.

	2. <tool> {Schema Definition Set}.

	(2001-03-03)

SDS 92

	<computer> A 12-bit computer from {Scientific Data Systems}
	which preceded the {Xerox Data Systems Model 940}.

	(2001-03-03)

SDS 940

	{Xerox Data Systems Model 940}

SDSL

	{Single-line Digital Subscriber Line}

SE

	1. <software> {software engineering}.

	2. {IBM Systems Engineer}.

	(1998-07-08)

se

	<networking> The {country code} for Sweden.

	(1999-01-27)

SEA

	{Self Extracting Archive}

Seagate Technology

	<company> A major manufacturer of {hard disk drives}, founded
	in 1979 as "Shugart Technology" by {Alan F. Shugart} and
	{Finis Conner}.  That name is on the original patents for the
	5.25" hard disk drive.  They changed the name to Seagate
	Technology soon after to avoid confusion, and also to avoid
	friction with {Xerox}, which had since purchased Alan's
	earlier company, {Shugart Associates}.

	{(http://seagate.com/)}.

	{Technical information at Impediment
	(http://impediment.com/seagate/)}.

	Address: 920 Disc Drive, Scotts Valley, CA 95066, USA.

	Fax: +1 (408) 438 3320.

	(2000-02-09)

SEAL

	Semantics-directed Environment Adaptation Language.

	{(ftp://ftp.cwi.nl/pub/gipe/0092b.ps.Z)}.

search

	1. <World-Wide Web> {web search}.

	2. <computability> {search problem}.

	3. <theory> {search algorithm}.

search algorithm

	<theory> Any {algorithm} for identifying a solution to a
	problem (a {search problem}) out of a {space} of potential
	solutions by considering several potential solutions until one
	is found that meets certain criteria.

	See {A* search}, {beam search}, {best-first search},
	{breadth-first search}, {depth-first search}.

	(2007-11-03)

search-and-destroy mode

	Hackerism for a noninteractive search-and-replace facility in
	an editor, so called because an incautiously chosen match
	pattern can cause {infinite} damage.

	[{Jargon File}]

search engine

	<World-Wide Web, tool, information science> A remotely
	accessible program that lets you do keyword searches for
	information on the {Internet}.  There are several types of
	search engine; the search may cover titles of documents,
	{URLs}, headers, or the {full text}.

	{A list of search engines
	(http://cuiwww.unige.ch/meta-index.html#MISC)}, Centre
	Universitaire d'Informatique at the University of Geneva

	(1995-11-28)

search problem

	<computability> A computational problem that requires
	identifying a solution from some, possibly infinite, solution
	{space} (set of possible solutions).  E.g. "What is the
	millionth {prime number}?".  This contrasts with a {decision
	problem} which merely asks whether a given answer is a
	solution or not.

	(1999-02-15)

search term

	<information science> An element of a search or query.  A
	search term is the basic building block of a {boolean search}
	or a {weighted search}.  In a search engine a search term is
	typically a word, phrase, or pattern match expression.  For
	example: cosmonaut or "space travel" or astronaut*

	In a {database} a term is typically the comparison of a column
	with a constant or with another column.  For example:
	last_name like 'Smith%'

	(1999-08-27)

Search The Fucking Web

	<World-Wide Web, jargon> (Always abbreviated STFW) A response
	implying that an inquirer could have easily found an answer to his
	question using {Google} or some other {World-Wide Web} {search
	engine}.  It is now often quicker and more productive to search
	the {World-Wide Web} than to {RTFM}.

	{JFGI}, {GIYF} and {lmgtfy.com} convey the same message.

	(2014-05-23)

SEC

	{Single Edge Contact Cartridge}

SECC

	{Single Edge Contact Cartridge}

SECD machine

	{Stack Environment Control Dump machine}

secondary cache

	<memory management> (Or "second level cache", "level two
	cache", "L2 cache") A larger, slower {cache} between the
	{primary cache} and main memory.  Whereas the {primary cache}
	is often on the same {integrated circuit} as the {central
	processing unit} (CPU), a secondary cache is usually external.

	(1997-06-25)

secondary damage

	When a fatal error occurs (especially a {segfault}) the
	immediate cause may be that a pointer has been trashed due to
	a previous {fandango on core}.  However, this fandango may
	have been due to an *earlier* fandango, so no amount of
	analysis will reveal (directly) how the damage occurred.  "The
	data structure was clobbered, but it was secondary damage."

	By extension, the corruption resulting from N cascaded
	fandangoes on core is "Nth-level damage".  There is at least
	one case on record in which 17 hours of {grovel}ling with
	"adb" actually dug up the underlying bug behind an instance of
	seventh-level damage!  The hacker who accomplished this
	near-superhuman feat was presented with an award by his
	fellows.

	[{Jargon File}]

secondary key

	<database> A {candidate key} which is not selected as a
	{primary key}.

	(1997-04-26)

secondary storage

	<storage> Any {non-volatile} storage medium that is not
	directly accessible to the {processor}.  Memory directly
	accessible to the processor includes {main memory}, {cache}
	and the {CPU} {registers}.  Secondary storage includes {hard
	drives}, {magnetic tape}, {CD-ROM}, {DVD drives}, {floppy
	disks}, {punch cards} and {paper tape}.

	Secondary storage devices are usually accessed via some kind
	of controller.  This contains registers that can be directly
	accessed by the CPU like main memory ("{memory mapped}").
	Reading and writing these registers can cause the device to
	perform actions like reading a block of data off a disk or
	rewinding a tape.  See also {DMA}.

	Programs and data stored in secondary storage must first be
	loaded into main memory before the processor can use them.

	(1997-11-05)

second generation

	1. <language> {second generation language}.

	2. <architecture> {second generation computer}.

second generation computer

	<architecture> A computer built from {transistors}, designed
	between the mid-1950s and mid-1960s.

	{Ferrite core memory} and {magnetic drums} replaced {cathode
	ray tubes} and {delay-line storage} for main {memory}.  {Index
	registers} and {floating point} arithmetic hardware became
	widespread.  Machine-independent {high level programming
	languages} such as {ALGOL}, {COBOL} and {Fortran} were
	introduced to simplify programming.

	{I/O processors} were introduced to supervise input-output
	operations independently of the {CPU} thus freeing the CPU
	from time-consuming housekeeping functions.  The CPU would
	send the I/O processor an initial instruction to start
	operating and the I/O processor would then continue
	independently of the CPU.  When completed, or in the event of
	an error, the I/O processor sent an {interrupt} to the CPU.

	{Batch} processing became feasible with the improvement in I/O
	and storage technology in that a batch of jobs could be
	prepared in advance, stored on magnetic tape and processed on
	the computer in one continuous operation placing the results
	on another magnetic tape.  It became commonplace for
	auxiliary, small computers to be used to process the input and
	output tapes off-line thus leaving the main computer free to
	process user programs.  Computer manufacturers began to
	provide system software such as {compilers}, {subroutine}
	libraries and batch monitors.

	With the advent of second generation computers it became
	necessary to talk about computer systems, since the number of
	memory units, processors, I/O devices, and other system
	components could vary between different installations, even
	though the same basic computer was used.

	The instruction repertoire of the {IBM 7094} (a typical second
	generation machine) had over 200 instructions including data
	transfer instructions for transferring a {word} of information
	between the CPU and memory or between two CPU registers;
	fixed-point and floating point arithmetic instructions;
	{logic} instructions (AND, OR etc.); instructions for
	modifying {index registers}; conditional and unconditional
	branching; {subroutines}; input-output operations for
	transferring data between I/O devices and main memory.

	(1996-11-25)

second generation language

	{assembly language}

	See also {first generation language}, {third generation
	language}.

second level cache

	{secondary cache}

second normal form

	{database normalisation}

Second-Order Lambda-calculus

	<language> (SOL) A {typed lambda-calculus}.

	["Abstract Types have Existential Type", J. Mitchell et al,
	12th POPL, ACM 1985, pp. 37-51].

	(1995-07-29)

second-system effect

	(Sometimes, more euphoniously, "second-system syndrome") When
	one is designing the successor to a relatively small, elegant,
	and successful system, there is a tendency to become grandiose
	in one's success and design an {elephantine} feature-laden
	monstrosity.  The term was first used by Fred Brooks in his
	classic "{The Mythical Man-Month}.  It described the jump from
	a set of nice, simple operating systems on the {IBM 70xx}
	series to {OS/360} on the 360 series.  A similar effect can
	also happen in an evolving system; see {Brooks's Law},
	{creeping elegance}, {creeping featurism}.  See also
	{Multics}, {OS/2}, {X}, {software bloat}.

	[{Jargon File}]

sector interleave

	(Or sector map) The mapping from logical to physical sector
	numbers on a {magnetic disk} designed to optimise sequential
	reads and writes.  Data is usually transferred to and from the
	disk in {blocks} or {sectors} where one sector lies within a
	continuous range of rotational angle of the disk.  If logical
	sectors are assigned sequentially to physical sectors
	(0,1,2,...) then by the time one sector has been read and
	processed (e.g. writen to main memory) the start of the next
	logical sector will have passed the read/write head and will
	not be accessible until the disk's rotation brings it back
	under the head.

	Staggering the physical sectors (e.g. 0,3,6,1,4,7,2,5,8) aims
	to allow just enough time deal with one sector before the next
	is accessible.  This obviously depends on the relative speed
	of the rotation of the disk, sector size, sectors per track
	and the speed of transfer of sectors to main memory.

sector interleaving

	{sector interleave}

sector map

	{sector interleave}

sector mapping

	In this scheme the memory and {cache} are divided into blocks
	of 2^m bytes (the {cache line} size).  A sector consists of
	2^n consecutive blocks.

	When a block is cached, it is read into the correct position
	in any sector of the cache, given by discarding the bottom m
	address bits and taking the next n as the block number within
	the sector.

	That whole sector is then tagged with the remaining upper
	address bits and the other blocks in the sector are marked as
	invalid.  This scheme takes advantage of locality of reference
	to consecutive blocks and needs fewer tags thus reducing the
	cost of associative access to the tags.

Secure File Transfer Protocol

	{SSH File Transfer Protocol}

Secure Hash Algorithm

	<algorithm, cryptography} (SHA)	A {one-way hash function}
	developped by {NIST} and defined in standard {FIPS} 180.
	SHA-1 is a revision published in 1994; it is also described
	in {ANSI} standard X9.30 (part 2).

	(2003-04-12)

Secure Multipurpose Internet Mail Extensions

	<messaging, standard> (S-MIME) A specification for secure
	{electronic mail}.  S-MIME was designed to add security to
	e-mail messages in {MIME} format.  The security services
	offered are {authentication} (using {digital signatures}) and
	{privacy} (using {encryption}).

	{(http://rsa.com/rsa/S-MIME/)}.

	(1997-05-10)

Secure Shell

	<operating system> (ssh) A {Unix} {shell} program for logging
	into, and executing commands on, a remote computer.  ssh is
	intended to replace {rlogin} and {rsh}, and provide secure
	encrypted communications between two untrusted hosts over an
	insecure network.  {X11} connections and arbitrary {TCP/IP}
	{ports} can also be forwarded over the secure channel.

	{(http://cs.hut.fi/ssh/)}.

	(1997-01-07)

Secure Sockets Layer

	<networking, security> (SSL) A {protocol} designed by
	{Netscape Communications Corporation} to provide secure
	communications over the {Internet} using {asymmetric key
	encryption}.  SSL is layered beneath application {protocols}
	such as {HTTP}, {SMTP}, {Telnet}, {FTP}, {Gopher} and {NNTP}
	and is layered above the connection protocol {TCP/IP}.  It is
	used by the {HTTPS} {access method}.

	(2007-05-25)

security

	<security> Protection against unauthorized access to, or
	alteration of, information and system resources including
	{CPUs}, {storage devices} and programs.

	Security includes:

	* {confidentiality} - preventing unauthorized access;
	{integrity} - preventing or detecting unauthorized
	modification of information.

	* {authentication} - determining whether a user is who they
	claim to be.

	* {access control} - ensuring that users can access the
	resources, and only the resources, that they are authorised
	to.

	* {nonrepudiation} - proof that a message came from a certain
	source.

	* availability - ensuring that a system is operational and
	accessible to authorised users despite hardware or software
	failures or attack.

	* privacy - allowing people to know and control how
	information is collected about them and how it is used.

	Security can also be considered in the following terms:

	* physical security - who can touch the system to operate or
	modify it, protection against the physical environment - heat,
	earthquake, etc.

	* operational/procedural security - who is authorised to do or
	responsible for doing what and when, who can authorise others
	to do what and who has to report what to who.

	* personnel security - hiring employees, background screening,
	training, security briefings, monitoring and handling
	departures.

	* System security - User access and authentication controls,
	assignment of privilege, maintaining file and {filesystem}
	integrity, {backup}, monitoring processes, log-keeping, and
	{auditing}.

	* {network security} - protecting network and
	telecommunications equipment, protecting network servers and
	transmissions, combatting eavesdropping, controlling access
	from untrusted networks, firewalls, and intrusion detection.

	{Encryption} is one important technique used to improve data
	security.

	{OWASP} is the {free} and {open} application security
	community.

	(2007-10-05)

Security Administrator's Integrated Network Tool

	<networking, security, tool> (SAINT, originally "Security
	Administrator Tool for Analyzing Networks", SATAN) A tool
	written by Dan Farmer and Wietse Venema which remotely probes
	systems via the {network} and stores its findings in a
	{database}.  The results can be viewed with an {web browser}.
	SAINT requires {Perl} 5.000 or better.

	In its simplest mode, SAINT gathers as much information about
	remote hosts and networks as possible by examining such
	network services as {finger}, {NFS}, {NIS}, {FTP}, {TFTP},
	{rexd}, and other services.  The information gathered includes
	the presence of various network information services as well
	as potential security flaws - usually in the form of
	incorrectly setup or configured network services, well-known
	{bugs} in system or network utilities, or poor or ignorant
	policy decisions.  It can then either report on this data or
	use a simple rule-based system to investigate any potential
	security problems.  Users can then examine, query, and analyze
	the output with a {web browser}.  While the program is
	primarily geared toward analysing the security implications
	of the results, a great deal of general network information
	can be gained when using the tool - network topology, network
	services running, and types of hardware and software being
	used on the network.

	SAINT can also be used in exploratory mode.  Based on the
	initial data collection and a user configurable ruleset, it
	will examine the avenues of trust and dependency and iterate
	further data collection runs over secondary hosts.  This not
	only allows the user to analyse his own network, but also to
	examine the real implications inherent in network trust and
	services and help them make reasonably educated decisions
	about the security level of the systems involved.

	{(http://wwdsi.com/saint/)}.

	{Old SATAN page (http://fish.com/satan/)}.

	{Mailing list (http://wwdsi.com/saint/list_server.html)}.

	(2000-08-12)

Security Association

	<networking> The relationship between two or more entities
	(typically, a computer, but could be a user on a computer, or
	software component) which describes how the entities will use
	security services, such as {encryption}, to communicate.

	See {RFC 1825}.

	(1997-07-09)

Security Association ID

	<networking> (SAID) A 32-bit field added to {packet} headers
	for {encryption} and {authentication} in the proposed
	{Internet Protocol Version 6}.

	(1997-07-09)

security through obscurity

	<security> Or "security by obscurity".  A term applied by
	hackers to most {operating system} vendors' favourite way of
	coping with security holes - namely, ignoring them,
	documenting neither any known holes nor the underlying
	security {algorithms}, trusting that nobody will find out
	about them and that people who do find out about them won't
	exploit them.  This never works for long and occasionally sets
	the world up for debacles like the {RTM} worm of 1988 (see
	{Great Worm}), but once the brief moments of panic created by
	such events subside most vendors are all too willing to turn
	over and go back to sleep.  After all, actually fixing the
	bugs would siphon off the resources needed to implement the
	next user-interface frill on marketing's wish list - and
	besides, if they started fixing security bugs customers might
	begin to *expect* it and imagine that their warranties of
	merchantability gave them some sort of rights.

	Historical note: There are conflicting stories about the
	origin of this term.  It has been claimed that it was first
	used in the {Usenet} newsgroup in {news:comp.sys.apollo}
	during a campaign to get {HP}/{Apollo} to fix security
	problems in its {Unix}-{clone} {Aegis}/{DomainOS} (they didn't
	change a thing).  {ITS} fans, on the other hand, say it was
	coined years earlier in opposition to the incredibly paranoid
	{Multics} people down the hall, for whom security was
	everything.  In the ITS culture it referred to (1) the fact
	that by the time a {tourist} figured out how to make trouble
	he'd generally got over the urge to make it, because he felt
	part of the community; and (2) (self-mockingly) the poor
	coverage of the documentation and obscurity of many commands.
	One instance of *deliberate* security through obscurity is
	recorded; the command to allow patching the running ITS system
	({altmode} altmode control-R) echoed as $$^D.  If you actually
	typed alt alt ^D, that set a flag that would prevent patching
	the system even if you later got it right.

	[{Jargon File}]

	(1994-12-15)

SED

	{smoke-emitting diode}

Sed

	<tool, text> Stream editor.

	The {Unix} stream editor.  It has a powerful but cryptic
	command language and is based on {regular expressions}.

	There is a {GNU} version called {GNU Sed}.

	[{Jargon File}]

	(1994-11-03)

SEE

	1. {Simultaneous Engineering Environment}.

	2. {Software Engineering Environment}.

	(1999-04-26)

seed

	{BitTorrent}

seek

	1. <storage> To move the head of a {disk drive} radially,
	i.e., to move from one {track} to another.

	2. <storage> To wind the {tape} to a given location.

	3. <programming> To move the pointer that marks the next {byte}
	to be read from or written to a {file}.

	(1997-07-15)

seeking

	{seek}

seek time

	<storage> The time it takes for a {disk drive} to move its
	head(s) from one {track} to another.  The seek time depends on
	the power of the servo, the mass of the heads, the number of
	tracks traversed and the time taken to position the heads over
	the target track accurately enough to start data transfer.

	See also: {average seek time}, {minimum seek time}, {maximum
	seek time}.

	(1997-07-15)

SEESAW

	<language> An early system on the {IBM 701}.

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

	(1994-12-15)

see u see me

	{CU-SeeMe}

SEGA

	<company, games> manufacturer of video game hardware and
	software.

	{Usenet} newsgroup: {news:rec.games.video.sega}.

	(1995-03-01)

Sega Genesis/MegaDrive

	<games> A {games console} made by {SEGA}.

	The Genesis used a {Zilog Z80} for its sound generator.  This
	made the Genesis compatible with {Sega Master System} games
	through a device called a "Power Base Converter" which
	basically shut down the Genesis/MegaDrive's {68000} {CPU} and
	made the Z80 the CPU.

	(2008-07-28)

segfault

	{segmentation fault}

seggie

	/seg'ee/ British shorthand for a {Unix} {segmentation fault}.

	[{Jargon File}]

	(1994-12-15)

segment

	/seg'ment/ 1. <architecture> A collection of {pages} in a
	{memory management} system.

	2. <programming> A separately relocatable section of an
	executable program.  {Unix} executables have a {text segment}
	(executable {machine instructions}), a {data segment}
	(initialised data) and a {bss segment} (uninitialised data).

	3. <networking> {network segment}.

	4. To experience a {segmentation fault}.  Confusingly, the stress
	is often put on the first syllable, like the noun "segment",
	rather than the second like mainstream verb "segment".  This
	is because it is actually a noun shorthand that has been
	verbed.

	5. A block of memory in a {segmented address space}.

	[{Jargon File}]

	(2004-02-27)

segmentation

	<networking> (Or "segmentation and reassembly", SAR) Breaking
	an arbitrary size {packet} into smaller pieces at the
	transmitter.  This may be necessary because of restrictions in
	the communications channel or to reduce {latency}.  The pieces
	are joined back together in the right order at the receiver
	("reassembly").  Segmentation may be performed by a {router}
	when routing a packet to a network with a smaller maximum
	packet size.

	The term "segmentation" is used in {ATM}, in {TCP/IP}, it is
	called "fragmentation" an is performed at the {IP} layer
	before the "fragments" are passed to the {transport layer}.

	See for example {ATM forum} {UNI} 4.0 specification.

	[Better reasons?]

	(1999-06-14)

segmentation and reassembly

	{segmentation}

segmentation fault

	An error in which a running {Unix} program attempts to access
	memory not allocated to it and terminates with a segmentation
	violation error and usually a {core dump}.

	[{Jargon File}]

	(1994-12-15)

segmented address space

	<architecture> An addressing scheme where all memory
	references are formed by adding an offset to a base address
	held in a segment {register}.

	The effect is to segment memory into blocks, which may overlap
	either partially or completely, depending on the contents of
	the segment registers but normally they would be distinct to
	give access to the maximum total range of addresses.  In this
	case the scheme does provide some degree of {memory
	protection} within a single process since, for example, a data
	reference cannot affect an area of memory containing code.
	However, compilers must either generate slower code or code
	with artificial limits on the size of {data structures}.

	The best known implementation is that used on the {Intel 8086}
	and later Intel {microprocessors}, where a 16-bit {offset} is
	added to a 16-bit base address held in one of four segment
	base registers.  Each instruction has a default segment (code
	(CS), data (DS), stack (SS), ? (ES)) which determines which
	segment register is used.  Special prefix instructions allow
	this default to be overridden.

	Other computers, such as {GE-645}/{Honeywell Multics},
	{Burroughs} large systems ({B-5500}, {B-6600}), and others,
	have used segmentation to good effect.

	Opposite: {flat address space}.  See also {addressing mode}.

	[In what way were the others better than Intel's {brain
	damaged} implementation?].

	(2004-06-01)

segv

	/seg'vee/ segmentation violation.

	{segmentation fault}

	(1994-12-15)

SEI

	Software Engineering Institute.

	(Carnegie Mellon University).

Seiko RC-4000

	A wristwatch with an {EIA-232} interface.  A clip fitted round
	the watch and made electrical contact.  This clip had a socket
	for a stereo style jack lead the other end of which was a
	25-way {D-type} connector.  The lead allowed you to enter
	phone numbers etc. into the watch without having to play with
	tiny buttons.  It also meant if the battery on your watch ran
	out you could restore the data without having to type it all
	in again.

	It was around the era of the 8-bit home computers like the
	{Spectrum}, {BBC Microcomputer}, {Apple II}, {C64} - the
	1980s.

	(1995-01-30)

SEL

	1. {Self-Extensible Language}.

	2. {Subset-Equational Language}.

Selective Dissemination of Information

	<library> (SDI) (From Library Science) SDI is a current
	awareness system which alerts you to the latest publications
	in your specified field(s) of interest.

	A user registers at such a system with keywords representing
	his or her fields of interest, called a search profile.  When
	new publications matching the search profile appear, the
	system informs the user of them instantly, periodically or
	upon request.  Some systems may also be able to inform the
	user if changes in already notified publications occur.

	{Health Science Library SDI
	(http://www-hsl.mcmaster.ca/sdi.html)}.  {FIZ Karlsruhe
	Scientific Service Institution
	(http://fiz-karlsruhe.de/mc-sdi.html)}.

	(1997-03-10)

selector

	<programming> 1. In {Smalltalk} or {Objective C}, the {syntax}
	of a message which selects a particular {method} in the target
	{object}.

	2. An operation that returns the state of an object but does
	not alter that state.  Selector {functions} or {methods} often
	have names which begin with "get" and corresponding {modifier}
	methods or {procedures} whose names begin with "set".

	(1998-01-12)

Self

	<language> A small, {dynamically typed} {object-oriented
	language}, based purely on {prototypes} and {delegation}.
	Self was developed by the Self Group at {Sun Microsystems
	Laboratories, Inc.} and {Stanford University}.  It is an
	experimental {exploratory programming} language.

	Release 2.0 introduces full {source-level debugging} of
	optimised code, adaptive optimisation to shorten compile
	pauses, {lightweight threads} within Self, support for
	dynamically linking {foreign functions}, changing programs
	within Self and the ability to run the experimental Self
	graphical browser under {OpenWindows}.  Designed for
	expressive power and malleability, Self combines a pure,
	{prototype}-based object model with uniform access to state
	and behaviour.  Unlike other languages, Self allows objects to
	inherit state and to change their patterns of inheritance
	dynamically.  Self's customising compiler can generate very
	efficient code compared to other dynamically-typed
	object-oriented languages.

	Version: 3.0 runs on {Sun-3} (no optimiser) and {Sun-4}.

	{(http://sunlabs.com/research/self/)}.

	["Self: The Power of Simplicity", David Ungar
	<ungar@sun.eng.com> et al, SIGPLAN Notices 22(12):227-242,
	OOPSLA '87, Dec 1987].

	(1999-06-09)

Self-Extensible Language

	["SEL - A Self-Extensible Programming Language", G. Molnar,
	Computer J 14(3):238-242 (Aug 1971)].

	(1994-12-15)

Self Extracting Archive

	<file format> (SEA) An {archive} format used on the {Apple
	Macintosh}.  {Double-click}ing a file of this type should
	extract its contents.

	(1995-05-02)

self-reference

	See {self-reference}.

	[{Jargon File}]

selvage

	{chad}

SEM

	The semantic specification language for {COPS}.

	["Metalanguages of the Compiler Production System COPS",
	J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
	W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

semantic gap

	The difference between the complex operations performed by
	{high-level language} constructs and the simple ones provided
	by computer {instruction sets}.  It was in an attempt to try
	to close this gap that computer architects designed
	increasingly {complex instruction set computers}.

	(1994-10-10)

semantic network

	<data> A {graph} consisting of {nodes} that represent physical
	or conceptual objects and arcs that describe the relationship
	between the nodes, resulting in something like a data flow
	diagram.  Semantic nets are an effective way to represent data
	as they incorporate the inheritance mechanism that prevents
	duplication of data.  That is, the meaning of a concept comes
	from its relationship to other concepts and the information is
	stored by interconnecting nodes with labelled arcs.

	(1999-01-07)

semantics

	<theory> The meaning of a string in some language, as opposed
	to {syntax} which describes how symbols may be combined
	independent of their meaning.

	The semantics of a programming language is a function from
	programs to answers.  A program is a {closed term} and, in
	practical languages, an answer is a member of the syntactic
	category of values.  The two main kinds are {denotational
	semantics} and {operational semantics}.

	(1995-06-21)

semaphore

	<programming, operating system> The classic method for
	restricting access to shared resources (e.g. storage) in a
	{multi-processing} environment.  They were invented by
	{Dijkstra} and first used in {T.H.E} {operating system}.

	A semaphore is a {protected variable} (or {abstract data
	type}) which can only be accessed using the following
	operations:

		P(s)
		Semaphore s;
		{
		  while (s == 0) ;	/* wait until s>0 */
		  s = s-1;
		}

		V(s)
		Semaphore s;
		{
		  s = s+1;
		}

		Init(s, v)
		Semaphore s;
		Int v;
		{
		  s = v;
		}

	P and V stand for Dutch "Proberen", to test, and "Verhogen",
	to increment.  The value of a semaphore is the number of units
	of the resource which are free (if there is only one resource
	a "binary semaphore" with values 0 or 1 is used).  The P
	operation {busy-waits} (or maybe {sleeps}) until a resource is
	available whereupon it immediately claims one.  V is the
	inverse, it simply makes a resource available again after the
	process has finished using it.  Init is only used to
	initialise the semaphore before any requests are made.  The P
	and V operations must be {indivisible}, i.e. no other process
	can access the semaphore during the their execution.

	To avoid {busy-wait}ing, a semaphore may have an associated
	{queue} of processes (usually a {FIFO}).  If a process does a
	P on a semaphore which is zero the process is added to the
	semaphore's queue.  When another process increments the
	semaphore by doing a V and there are tasks on the queue, one
	is taken off and resumed.

	(1995-02-01)

semi

	/se'mee/ or /se'mi:/ A spoken abbreviation for semicolon.

	"Commands to {grind} are prefixed by semi semi star" means
	that the prefix is ";;*", not 1/4 of a star.

	[{Jargon File}]

	(1995-01-31)

Semi-Automatic Ground Environment

	<project> (SAGE) The computer system of the old US Norad air
	defence system.  SAGE was ground-breaking in many ways, such
	as being one of the first very large software projects and the
	first {real-time} system.

	{MIT Lincoln Laboratory} developed SAGE and {MITRE
	Corporation} was responsible for system engineering and
	implementation oversight.

	{(http://togger.com/)},
	{(http://jps.net/ethelen/sage.html)},
	{(http://eskimo.com/%7Ewow-ray/sage28.html)}.

	[Confirm?  Dates?  Connection with MIT Research Laboratory for
	Electronics?]

	(1999-12-16)

semicolon

	;

	Common: {ITU-T}: semicolon; {semi}.  Rare: weenie; {INTERCAL}:
	hybrid, pit-thwong.

semiconductor

	<electronics> A material, typically crystaline, which allows
	{current} to flow under certain circumstances.  Common
	semiconductors are silicon, germanium, gallium arsenide.
	Semiconductors are used to make {diodes}, {transistors} and
	other basic "solid state" electronic components.

	As crystals of these materials are grown, they are "doped"
	with traces of other elements called {donors} or {acceptors}
	to make regions which are n- or p-type respectively for the
	{electron model} or p- or n-type under the {hole model}.
	Where n and p type regions adjoin, a junction is formed which
	will pass {current} in one direction (from p to n) but not the
	other, giving a {diode}.

	One {model} of semiconductor behaviour describes the doping
	elements as having either {free electrons} or {holes} dangling
	at the points in the crystal lattice where the doping elements
	replace one of the atoms of the foundation material.  When
	external electrons are applied to n-type material (which
	already has free electrons present) the repulsive force of
	like charges causes the free electrons to migrate toward the
	junction, where they are attracted to the holes in the p-type
	material.  Thus the junction conducts current.

	In contrast, when external electrons are applied to p-type
	material, the attraction of unlike charges causes the holes to
	migrate away from the junction and toward the source of
	external electrons.  The junction thus becomes "depleted" of
	its charge carriers and is non-conducting.

	(1995-10-04)

Semidetached Mode

	<programming> A term used by {COCOMO} to describe a project
	development somewhere between organic and embedded.  The team
	members have a mixture of experienced and inexperienced
	personnel.  The software to be developed has some
	characteristics of both organic and embedded modes.
	Semidetached software can be as large as 300K {DSIs}.

	(1996-05-29)

SENDIT

	Systems Engineering for Network Debugging, Integration and
	Test.  A two-year European Commission funded project to
	produce software tools for distributed applications running on
	networks of microcontrollers.

	(1994-07-21)

sendmail

	<messaging> The {BSD} Unix {Message Transfer Agent} supporting
	mail transport via {TCP/IP} using {SMTP}.  Sendmail is
	normally invoked in the {background} via a {Mail User Agent}
	such as the {mail} command.

	Sendmail was written by {Eric Allman} at the {University of
	California at Berkeley} during the late 1970s.  He now has his
	own company, {Sendmail Inc.}

	Sendmail was one of the first programs to route messages
	between {networks} and today is still the dominant e-mail
	transfer software.  It thrived despite the awkward {ARPAnet}
	transition between {NCP} to TCP protocols in the early 1980s
	and the adoption of the new SMTP Simple Mail Transport
	Protocol, all of which made the business of mail routing a
	complex challenge of backward and forward compatibility for
	several years.  There are now over one million copies of
	Sendmail installed, representing over 75% of all Internet mail
	servers.

	Simultaneously with the announcement of the company in
	November 1997, Sendmail 8.9 was launched, featuring new tools
	designed to limit {junk e-mail}.  SendMail 8.9 is still
	distributed as {source code} with the rights to modify and
	distribute.

	Latest version: 8.9.1, as of 1998-08-25.

	The command

		sendmail -bv ADDRESS

	can be used to learn what the local mail system thinks of
	ADDRESS.  You can also talk to the Sendmail {daemon} on a
	remote host FOO with the command

		telnet FOO 25

	(1998-08-25)

sendmail.cf

	<messaging> {sendmail}'s configuration file, which it reads
	once when starting up, usually found in the /etc directory.

	Only real {Unix Gurus} can understand, let alone modify, this
	file since it consists moslty of {header} {rewrite rules}
	written as {M4} {macros}, as well as various other one- or
	two-character commands.

	(1996-12-09)

Sendmail Inc.

	<company> The company, announced in November 1997 and launched
	in March 1998, created by {Eric Allman}, the original author
	of {Sendmail}.  Allman is Chief Technology Officer, {Greg
	Olson} is President and CEO.

	Sendmail Inc. will sell commercial upgrades, service and
	support to {Internet Service Providers} and corporations
	running critical {e-mail} applications, while still continuing
	{freeware} development.

	{Sun Microsystems} founders {Bill Joy} and Andy Bechtolscheim
	are among the investors in the company, along with Tim
	O'Reilly of publishers O'Reilly & Associates and John Funk of
	e-mail company {InfoBeat Inc.}.

	Allman said that he devoted the fist six months of the life of
	Sendmail Inc. to finalising the freeware release.  A
	commercial version was due in summer 1998, at around $1000 per
	server.  The company is expected to reach $40m annual sales
	within three years.  Funding is in the region of $1.25m.

	{(http://sendmail.com/)}.

	Address: Emeryville, California, USA.

	(1998-08-25)

Seneca

	{Oberon-V}

senior bit

	[IBM]  Synonym {meta bit}.

	[{Jargon File}]

sense

	<human language> A meaning of a word.

	(2007-05-03)

sensor

	<hardware> An electronic device used to measure a physical
	quantity such as temperature, pressure or loudness and convert
	it into an electronic signal of some kind (e.g a voltage).
	Sensors are normally components of some larger electronic
	system such as a computer control and/or measurement system.

	Analog sensors most often produce a voltage proportional to
	the measured quantity.  The signal must be converted to
	digital form with a {ADC} before the CPU can process it.

	Digital sensors most often use serial communication such as
	{EIA-232} to return information directly to the controller or
	computer through a {serial port}.

	(1997-04-15)

sentence

	<logic> A collection of {clauses}.

	See also {definite sentence}.

	(2003-12-04)

SE-ODP

	Support Environment for Open Distributed Processing.  An
	{ECMA} {standard}.

SEP

	1. Someone Else's Problem.

	2. <tool> A {SASD} tool from {IDE}.

	(1995-10-12)

separate compilation

	<programming> A feature of most modern programming languages
	that allows each program {module} to be compiled on its own to
	produce an {object file} which the {linker} can later combine
	with other object files and {libraries} to produce the final
	{executable}.  Separate compilation avoids processing all the
	source code every time the program is built, thus saving
	development time.  The object files are designed to require
	minimal processing at {link time}.  They can also be collected
	together into {libraries} and distributed commercially without
	giving away source code (though they can be disassembled).

	Examples of the output of separate compilation are {C} object
	files (extension ".o") and {Java} ".class" files.

	(2005-02-19)

SEPIA

	Standard ECRC Prolog Integrating Applications.  Prolog with
	many extensions including attributed variables ("metaterms")
	and declarative coroutining.  "SEPIA", Micha Meier
	<micha@ecrc.de> et al, TR-LP-36 ECRC, March 1988.  Version 3.1
	available for Suns and VAX.  (See ECRC-Prolog).  E-mail:
	<sepia-request@ecrc.de>.

SEPP

	{Single Edge Processor Package}

Seque

	"Seque: A Programming Language for Manipulating Sequences",
	R.E.  Griswold et al, Comp Langs 13(1):13-22 (1988).

Sequel

	1. Precursor to SQL.

	["System R: Relational Approach to Database Management", IBM
	Res Lab, San Jose, reprinted in Readings in Database Systems].

	2. U Leeds.  Theorem prover specification language.  Pattern
	matching notation similar to Prolog.  Compiled into Lisp.

	[Proc ICJAI 13].

	{(ftp://agora.leeds.ac.uk/scs/logic/)}.

Sequenced Packet Exchange

	<networking, protocol> (SPX) A {transport layer} {protocol}
	built on top of {IPX}.  SPX is used in {Novell NetWare}
	systems for communications in {client/server} {application
	programs}, e.g. {BTRIEVE} ({ISAM} manager).

	SPX is not used for connections to the {file server} itself;
	this uses {NCP}.  It has been extended as SPX-II.  SPX/IPX
	perform equivalent functions to {TCP/IP}.

	{(http://developer.novell.com/research/appnotes/1995/december/03/04.htm)}.

	[Better reference?]

	(1999-05-27)

sequencer

	<music> Any system for recording and/or playback of music via
	a programmable memory which stores music not as audio data,
	but as some representation of notes.  The most common modern
	usage of "sequencer" is to refer to systems (whether in
	software, or as a feature of devices like synthesizers or drum
	machines) that deal with {MIDI} data.

	(1999-06-04)

Sequent

	<company> A computer manufacturer.

	Quarterly sales $109M, profits $7M (Aug 1994).

	Sequent computers was acquired by {IBM} in 1999.

	[History?]

	(2003-10-21)

sequential coding

	<graphics, file format, algorithm> The usual {bitmap} {image}
	data storage format or transmission {algorithm} where the
	resoluton is constant and later data adds only more area.
	This contrasts with {progressive coding}.

	(2000-09-12)

sequential file matching

	A programming technique that matches records in one sequential
	file with records in another sequential file.  The records are
	accessed in the physical order in which they are stored.

	(1994-11-02)

Sequential Parlog Machine

	(SPM) The {virtual machine} (and its machine code) for the
	{Parlog} {logic programming} language.

	{(ftp://nuri.inria.fr/lang/Parlog.tar.Z)}.

	["Parallel Logic Programming in PARLOG", Steve Gregory,
	Addison-Wesely, UK, 1987].

sequential processing

	<architecture> (Or "serial processing") Running a single
	{task} to completion on a single {processor}, in contrast to
	{parallel processing} or {multitasking}.

	(1995-04-23)

SERC

	{Science and Engineering Research Council}

SERCOS

	{serial real-time communications system}

	[What is it?]

	["More choices link motors and drives to controls", by
	L. Langnau.  Power Transmission Design, vol. 37, no. 7,
	pp. 33-36].

	(1996-01-23)

serial

	1. <communications> {serial communications}

	2. <architecture> {serial processor}.

Serial Advanced Technology Attachment

	<storage> (SATA, Serial ATA) A computer {bus} technology
	primarily designed for transfer of data to and from a {hard
	disk}.  SATA is the successor to {Advanced Technology
	Attachment} (ATA), which was given the {retronym} Parallel ATA
	(PATA) to distinguish it from Serial ATA.

	Serial ATA is designed to be scalable.  The original SATA/150
	or "SATA 1" can transfer up to 150 {MBps} and "SATA 3.0
	Gbit/s" has a maximum data rate of 300 {MBps}.

	Both SATA and PATA drives have built-in low level control
	electronics but the term {IDE} is usually restricted to
	parallel ATA drives.

	{(http://www.serialata.org/)}.

	(2007-02-23)

Serial ATA

	{Serial Advanced Technology Attachment}

serial communications

	<communications> Communication via a single channel that
	delivers one bit of data at a time, in contrast to {parallel}
	communications where multiple serial channels are combined,
	either physically (e.g. multiple cores in a cable) or by
	{multiplexing}.

Serial Communications Interface

	{UART}

Serial Interface Adaptor

	(SIA) The {Ethernet} driver chip used on a {Filtabyte}
	Ethernet card.

serial IO chip

	{UART}

serialise

	<programming> To represent an arbitrarily complex {data
	structure} in a location-independent way so that it can be
	communicated or stored elsewhere.

	For example, an {object} representing a time, with
	{attributes} for year, month, timezone, etc., could be
	serialised as the {string} "2002-02-24T14:33:52-0800", or an
	{XML} element "<dateobj year='2002' month='02' day='24'
	hour='14' minute='33' second='52' timezone='-0800' />", or as
	a {binary} string.

	As well as providing an external data representation
	(e.g. representing an {integer} as a string of {ASCII}
	digits) and {marshalling} components into a single block of
	data, a serialisation {algorithm} needs to follow {pointers}
	to include objects referred to by the initial object.  This is
	further complicated by the possible presence of cycles in the
	{object graph}.

	It should be possible to store the serialised representation
	on disk, or transmit it across a network, and then restore it
	as an object (graph) that is the same as the original.

	(2001-09-28)

serialize

	{serialise}

serial line

	<communications> Wires which connect two {serial ports}
	carrying serial data consisting of sequential bits represented
	by one of two voltages.

	A common electrical specification for the signals on a serial
	line is {RS-423}.

	{(ftp://ftp.acorn.co.uk/pub/documents/appnotes/231-245/234.ps)}.

	(1995-02-02)

Serial Line Internet Protocol

	<communications, protocol> (SLIP) Software allowing the
	{Internet Protocol} (IP), normally used on {Ethernet}, to be
	used over a {serial line}, e.g. an {EIA-232} {serial port}
	connected to a {modem}.  It is defined in {RFC} 1055.

	SLIP modifies a standard {Internet} {datagram} by appending a
	special SLIP END character to it, which allows datagrams to be
	distinguished as separate.  SLIP requires a port configuration
	of 8 data bits, no {parity}, and {EIA} or {hardware flow
	control}.  SLIP does not provide {error detection}, being
	reliant on other high-layer protocols for this.  Over a
	particularly error-prone {dial-up} link therefore, SLIP on its
	own would not be satisfactory.

	A SLIP connection needs to have its {IP address} configuration
	set each time before it is established whereas {Point-to-Point
	Protocol} (PPP) can determine it automatically once it has
	started.

	See also {SLiRP}.

	(1995-04-30)

Serial Line IP

	(SLIP) {Serial Line Internet Protocol}.

Serial Peripheral Interface

	<communications, hardware> (SPI) A {serial interface} in which
	a master device supplies {clock} pulses to exchanges data
	serially with a slave over two data wires (Master-Slave and
	Slave-Master).  This term probably originated with Motorola in
	about 1979 with their first all-in-one {microcontroller}.

	(2003-07-13)

serial port

	<hardware, communications> (Or "com port") A connector on a
	computer to which you can attach a {serial line} connected to
	peripherals which communicate using a serial (bit-stream)
	{protocol}.  The most common type of serial port is a 25-pin
	D-type connector carrying {EIA-232} signals.  Smaller
	connectors (e.g. 9-pin {D-type}) carrying a subset of EIA-232
	are often used on {personal computers}.  The serial port is
	usually connected to an {integrated circuit} called a {UART}
	which handles the conversion between serial and parallel data.

	In the days before bit-mapped displays, and today on
	{multi-user} systems, the serial port was used to connect one
	or more terminals ({teletypewriters} or {VDUs}), printers,
	{modems} and other serial peripherals.  Two computers
	connected together via their serial ports, possibly via
	{modems}, can communicate using a {protocol} such as {UUCP} or
	{CU} or {SLIP}.

	(1995-01-12)

Serial Presence Detect

	{presence detect}

serial processing

	{sequential processing}

serial processor

	<architecture> A computer whose {central processing unit}
	performs a single machine-level operation at a time.  This
	term would be used mostly in contrast to a {parallel
	processor}.

	(2008-03-14)

serial scanning

	<medicine> Performing more than two CT scans on a patient in
	24 hours.

	(2007-12-22)

Serial Storage Architecture

	<storage> (SSA) IBM's proposed ANSI standard for a standard
	high-speed interface to disk clusters and arrays.  SSA allows
	{full-duplex} {packet multiplexed} serial data transfers at
	rates of 20Mb/sec in each direction.

	According to John Taylor, programme manager at IBM's Storage
	Division at Havant, SSA will be used in arrays of discs
	working with high-end computers ranging from mainframes down
	to LAN servers.  Taylor said that SSA differs from the {IEEE}
	proposed {P1394} serial interface specification in its ability
	to offer simultaneous multiplexed transfers from more than one
	disk or array.  IBM also supports the P1394 standard which
	will be used primarily by desktop PCs for {multimedia}
	applications.

	SSA has received backing from a number of companies including
	connector makers Molex, ITT Cannon and AMP, disk drive makers
	Conner and Western Digital and RAID array suppliers like
	Dynatech and NCR.  IBM expects to see the first SSA products
	released at Comdex in Autumn 1994 but it will be 1995 before
	the products ship in volume.

	Under an agreement signed with {ASIC} maker and {ARM} licencee
	{VLSI Technology}, IBM will use ARM-based chips made by VLSI
	to implement the SSA interface and VLSI will make these cores
	available to third parties as one of its Functional System
	Blocks.

serve

	<networking> To be a {server}, to provide a {service}.

	E.g., "The {shttpd} serves requested documents to clients over
	a secure link."

	(1997-09-11)

servelet

	{Java servlet}

server

	1. A program which provides some service to other ({client})
	programs.  The connection between client and server is
	normally by means of {message passing}, often over a
	{network}, and uses some {protocol} to encode the client's
	requests and the server's responses.  The server may run
	continuously (as a {daemon}), waiting for requests to arrive
	or it may be invoked by some higher level daemon which
	controls a number of specific servers ({inetd} on {Unix}).

	There are many servers associated with the {Internet}, such as
	those for {HTTP}, {Network File System}, {Network Information
	Service} (NIS), {Domain Name System} (DNS), {FTP}, {news},
	{finger}, {Network Time Protocol}.  On Unix, a long list can
	be found in /etc/services or in the {NIS} database "services".
	See {client-server}.

	2. A computer which provides some service for other computers
	connected to it via a network.  The most common example is a
	{file server} which has a local disk and services requests
	from remote clients to read and write files on that disk,
	often using {Sun}'s {Network File System} (NFS) {protocol} or
	{Novell Netware} on {PCs}.  Another common example is a {web
	server}.

	[{Jargon File}]

	(2003-12-29)

serverlet

	{Java Servlet}

Server Message Block

	<protocol> (SMB) A {client/server} {protocol} that provides
	file and printer sharing between computers.  In addition SMB
	can share {serial ports} and communications abstractions such
	as {named pipes} and {mail slots}.  SMB is similar to {remote
	procedure call} (RPC) specialised for file system access.

	SMB was developed by {Intel}, {Microsoft}, and {IBM} in the
	early 1980s.  It has also had input from {Xerox} and {3Com}.
	It is the native method of file and print sharing for
	Microsoft {operating systems}; where it is called {Microsoft
	Networking}.  {Windows for Workgroups}, {Windows 95}, and
	{Windows NT} all include SMB clients and servers.  SMB is also
	used by {OS/2}, {Lan Manager} and {Banyan} {Vines}.  There are
	SMB servers and clients for {Unix}, for example {Samba} and
	{smbclient}.

	SMB is a {presentation layer} protocol structured as a large
	set of commands (Server Message Blocks).  There are commands
	to support file sharing, printer sharing, {user
	authentication}, resource browsing, and other miscellaneous
	functions.  As clients and servers may implement different
	versions ("dialects") of the protocol they negotiate before
	starting a session.

	The {redirector} packages SMB requests into a {network control
	block} (NBC) structure that can be sent across the network to
	a remote device.

	SMB originally ran on top of the lower level protocols
	{NetBEUI} and {NetBIOS}, but now typically runs over {TCP/IP}.

	Microsoft have developed an extended version of SMB for the
	{Internet}, the {Common Internet File System} (CIFS), which in
	most cases replaces SMB.  {CIFS} runs only runs over TCP/IP.

	{Just what is SMB?
	(http://samba.anu.edu.au/cifs/docs/what-is-smb.html)}.

	{IBM protocols
	(http://protocols.com/pbook/ibm.htm)}.

	{Microsoft SMB/CIFS documents
	(ftp://ftp.microsoft.com/developr/drg/CIFS/)}.

	(1999-08-08)

server-parsed HTML

	<file format, World-Wide Web> (SPML, SHTML) A kind of {HTML}
	file containing server-specific, non-standard commands which
	are interpreted by the {HTTP server} and replaced by standard
	HTML or text before the data is returned to the client.

	Different servers use different command syntax and support
	different sets of commands.  The most common example is a
	{server-side include} command which simply expands to the
	contents of some given file and allows bits of HTML or text to
	be shared between pages for ease of updating.  Other commands
	insert the value of an {environment variable} or the output of
	a {shell command}.  These allow pages to be different each
	time they are served without requiring a {CGI} script.

	Some servers distinguish SPML from HTML with a different
	{filename extension}, others use the execute bit of the file's
	{permissions}.

	(1996-09-29)

server room

	<hardware> The room where all the {server} computers are
	housed.  The {workstations} at which people sit and program
	are usually located elsewhere.

	Compare: {sun lounge}, {dinosaur pen}, {play pen}, {salt
	mines}, {disk farm}.

	(1998-07-06)

servers

	{server}

server-side

	<World-Wide Web> Processing or content generation that is done
	on the {web server} or other server, as opposed to on the
	{client} computer where the {web browser} is running.

	An example is {server-side include} where one file is inserted
	in another before it is served, rather than, say, having the
	browser request the files separately and combine them using an
	{iframe}.  A very common kind of server-side processing is the
	inclusion of data from a {database} in a web page.

	There are many software environments and technologies designed
	for server-side processing, e.g. {CGI}, {ISAPI}, {WebObjects}
	and {ASP}.

	The greatest advantage of server-side processing is that it is
	independent of the many different client software environments
	that exist on the {Internet}, chiefly different {web browsers}
	and {operating systems}.  The disadvantage is that the user
	must wait for a response from the server which is a much
	slower form of interaction than is possible with client-side
	processing using, e.g., {JavaScript}.

	(2003-12-29)

server-side include

	<World-Wide Web> (SSI) The facility provided by most {web
	servers}, e.g. {NCSA httpd}, to replace special {tags} in an
	{HTML} file with the contents of another file before the file
	is sent out by the server, i.e. an {HTML} {macro}.

	{NCSA httpd tutorial
	(http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html)}.

	(1996-09-08)

service

	<networking, programming> Work performed (or offered) by a
	{server}.  This may mean simply serving simple requests for
	data to be sent or stored (as with {file servers}, {gopher} or
	{http} servers, {e-mail} servers, {finger} servers, {SQL}
	servers, etc.); or it may be more complex work, such as that
	of {irc} servers, print servers, {X Windows} servers, or
	process servers.

	E.g. "Access to the finger {service} is restricted to the
	local {subnet}, for security reasons".

	(1997-09-11)

serviceability

	<system> The ease with which {corrective maintenance} or
	{preventative maintenance} can be performed on a system
	(e.g. by a {hardware} service technician).  Higher
	serviceability improves availability and reduces service cost.

	Serviceability is one component of {RAS}.

	(2000-08-13)

Service Access Point

	<networking> (SAP) The {OSI} term for the component of a
	network address which identifies the individual application on
	a host which is sending or receiving a {packet}.

	{TCP/IP}'s equivalent term is "{port}".

	Different SAPs distinguish between different services or
	applications on a host, e.g. {electronic mail}, {FTP}, {HTTP}.

	(1996-12-23)

Service Advertising Protocol

	<networking> (SAP) A {Novell NetWare} {protocol}.  SAP follows
	the spirit of the {Xerox} {Clearinghouse} protocol, it permits
	file, print, and gateway servers to advertise their services
	and addresses.

	(1996-01-13)

Service Discovery Protocol

	<protocol> (SDP) A {Bluetooth} {protocol} in the {Core
	Protocol Stack} that allows {devices} to connect to
	other {services}.

	{Bluetooth SDP
	(http://bluetooth.org/assigned-numbers/sdp.htm)}.

	(2002-06-28)

service-oriented architecture

	<software, architecture> (SOA) Systems built from
	loosely-coupled {software} modules deployed as {services},
	typically communicating via a {network}.  This allows
	different modules to be implemented and deployed in different
	ways, e.g. owned by different organisations, developed by
	different teams, written in different {programming languages},
	running on different {hardware} and {operating systems}.  The
	key to making it work is {interoperability} and {standards} so
	that modules can exchange data.

	SOAs often support {service discovery}, allowing a service to
	be changed without having to explicitly reconnect all its
	clients.

	Many different frameworks have been developed for SOA,
	including {SOAP}, {REST}, {RPC}, {DCOM}, {CORBA}, {web
	services} and {WCF}.

	(2009-01-23)

service provider

	<communications> An organisation that provides a service by
	telephone, such as an 0800 (toll free) number.  The service
	provider buys the services of a telecom supplier (e.g. BT) but
	advertises the service and deals with the calls itself.
	Increasingly, service providers are now also managing their
	advanced {call-routing}.

	(1996-08-27)

Service Set Identifier

	<networking> (SSID) A 32-{character} unique identifier that
	distinguishes one wireless network from another.  All devices
	attempting to connect to a specific network use the same SSID,
	which appears in the header of {packets}.  Because an SSID can
	be intercepted, it does not supply any security to the
	network.

	(2009-01-23)

servlet

	{Java servlet}

session

	<networking> 1. A lasting connection between a user (or user
	agent) and a {peer}, typically a {server}, usually involving
	the exchange of many packets between the user's computer and
	the server.  A session is typically implemented as a layer in
	a network {protocol} (e.g. {telnet}, {FTP}).

	In the case of protocols where there is no concept of a
	session layer (e.g. {UDP}) or where sessions at the {session
	layer} are generally very short-lived (e.g. {HTTP}), {virtual}
	sessions are implemented by having each exchange between the
	user and the remote host include some form of {cookie} which
	stores state (e.g. a unique session ID, information about the
	user's preferences or authorisation level, etc.).

	See also {login}.

	2. A lasting connection using the {session layer} of a
	networking protocol.

	(1997-08-03)

Session Initiation Protocol

	<protocol> (SIP) A very simple text-based application-layer
	control {protocol}.  It creates, modifies, and terminates
	{sessions} with one or more participants.  Such sessions
	include {Internet telephony} and {multimedia} conferences.

	It is described in {RFC 2543}.

	(2000-05-31)

session layer

	<networking> The third highest {protocol layer} (layer 5) in the {OSI}
	seven layer model.  The session layer uses the {transport
	layer} to establish a {connection} between processes on
	different {hosts}.  It handles {security} and creation of the
	session.  It is used by the {presentation layer}.

	Documents: {ITU} Rec. X.225 ({ISO} 8327), ITU Rec. X.215 (ISO
	8326).

	[Examples?]

	(1997-12-07)

SES/workbench

	<tool, simulation> An iconic {simulation} and design tool,
	linked to some of the major {CASE} systems now available or in
	development.

	(1996-03-28)

SET

	1. <security> {Secure Electronic Transaction}.

	2. <electronics> {Single Electron Tunneling}.

	3. <standard> {Standard d'Echange et de Transfert}.

	(1999-03-26)

set

	A collection of objects, known as the elements of the set,
	specified in such a way that we can tell in principle whether
	or not a given object belongs to it.  E.g. the set of all prime
	numbers, the set of zeros of the cosine function.

	For each set there is a {predicate} (or property) which is
	true for (possessed by) exactly those objects which are
	elements of the set.  The predicate may be defined by the set
	or vice versa.  Order and repetition of elements within the
	set are irrelevant so, for example, {1, 2, 3} = {3, 2, 1} =
	{1, 3, 1, 2, 2}.

	Some common set of numbers are given the following names:

	N = the {natural numbers} 0, 1, 2, ...

	Z = the {integers} ..., -2, -1, 0, 1, 2, ...

	Q = the {rational numbers} p/q where p, q are in Z and q /= 0.

	R = the {real numbers}

	C = the {complex numbers}.

	The empty set is the set with no elements.  The intersection
	of two sets X and Y is the set containing all the elements x
	such that x is in X and x is in Y.  The union of two sets is
	the set containing all the elements x such that x is in X or x
	is in Y.

	See also {set complement}.

	(1995-01-24)

set abstraction

	{list comprehension}

set associative cache

	<architecture> A compromise between a {direct mapped cache}
	and a {fully associative cache} where each address is mapped
	to a certain set of cache locations.  The address space is
	divided into blocks of 2^m bytes (the {cache line} size),
	discarding the bottom m address bits.  An "n-way set
	associative" cache with S sets has n cache locations in each
	set.  Block b is mapped to set "b mod S" and may be stored in
	any of the n locations in that set with its upper address bits
	as a tag.  To determine whether block b is in the cache, set
	"b mod S" is searched associatively for the tag.

	A direct mapped cache could be described as "one-way set
	associative", i.e. one location in each set whereas a fully
	associative cache is N-way associative (where N is the total
	number of blocks in the cache).  Performance studies have
	shown that it is generally more effective to increase the
	number of entries rather than associativity and that 2- to
	16-way set associative caches perform almost as well as fully
	associative caches at little extra cost over direct mapping.

	(2004-10-18)

set complement

	<theory> The complement of set A in set U is all elements of U
	which are not elements of A.

	(1995-01-24)

set comprehension

	{list comprehension}

Setext

	A markup scheme intended for documents that are both human-
	and computer-readable.

SETL

	SET Language.  A very high level language based on sets,
	designed by Jack Schwartz at the {Courant Institute} in the
	early 1970s.  It was possibly the first use of {list
	comprehension} notation.

	Data types include sets (unordered collections), {tuples}
	(ordered collections) and maps (collections of ordered pairs).
	Expressions may include {quantifiers} ('for each' and
	'exists').  The first {Ada} translator was written in SETL.

	See also {ISETL}, {ProSet}, {SETL2}.

	["Programming With Sets - An Introduction to SETL", Jacob
	T. Schwartz et al, Springer 1986].

SETL2

	{SETL} with more conventional {Ada}-like syntax, {lexical
	scope}, full block structure, {first-class functions} and a
	package and library system.  Ported to {OS/2}, {MS-DOS} (3.1
	up), Extended {MS-DOS} (80286 and higher processors with
	extended memory), {Macintosh} (with the {MPW} environment),
	Sun-3 (SunOS 4), Sun-4 (SunOS 4), IBM RS/6000 (AIX 3.1), DEC
	RISC product line (Ultrix 4.0), DEC Vaxen (Mt. Xinu Unix or
	VMS).

	{(ftp://cs.nyu.edu/pub/languages/setl2)}.  Please e-mail Kirk
	Snyder <snyder@spunky.cs.nyu.edu> if you take a copy.

	["The SETL2 Programming Language", W. Kirk Snyder, Courant
	Inst TR 490, Jan 1990].

SETL/E

	{ProSet}

Set Priority Level

	(SPL) The way traditional {Unix} {kernels} implement {mutual
	exclusion} by running code at high {interrupt priority levels}
	and thus blocking lower level interrupts.

	(1994-11-23)

SETS

	Set Equation Transformation System.

	Symbolic manipulation of Boolean equations.  "Efficient
	Ordering of Set Expressions for Symbolic Expansion",
	R.G. Worrell et al, J ACM 20(3):482-488 (Jul 1973).

set theory

	<mathematics> A mathematical formalisation of the theory of
	"sets" (aggregates or collections) of objects ("elements" or
	"members").  Many mathematicians use set theory as the basis
	for all other mathematics.

	Mathematicians began to realise toward the end of the 19th
	century that just doing "the obvious thing" with sets led to
	embarrassing {paradox}es, the most famous being {Russell's
	Paradox}.  As a result, they acknowledged the need for a
	suitable {axiomatisation} for talking about sets.  Numerous
	such axiomatisations exist; the most popular among ordinary
	mathematicians is {Zermelo Fränkel set theory}.

	{The beginnings of set theory
	(http://www-groups.dcs.st-and.ac.uk/~history/HistoryTopics.html)}.

	(1995-05-10)

set-top box

	<communications, networking> (STB) Any electronic device
	designed to produce output on a conventional televesion set
	(on top of which it nominally sits) and connected to some
	other communications channels such as telephone, {ISDN},
	{optical fibre} or cable.  The STB usually runs software to
	allow the user to interact with the programmes shown on the
	television in some way.

	{Online Media} are one STB manufacturer.

	(1997-05-16)

SEUS

	R. Weyrauch et al.  Language allowing functions to return
	multiple values.  Implemented but never published.  Mentioned
	in "Evolution of Lisp", G.L. Steele et al, SIGPLAN Notices
	28(3):231-270 (March 1993).

seven layer model

	{Open Systems Interconnect}

Seven-Segment Display

	<electronics> (SSD) A kind of display element consisting of seven
	independently controllable lines arranged as a rectangular figure
	eight. A seven-segment display is the simplest device that can
	display any of the digits zero to nine (and some other characters)
	by lighting different combinations of lines.  They are often seen
	in electronic calculators or measuring equipment.

	(2013-04-27)

SEX

	/seks/ [Sun Users' Group & elsewhere] 1. Software EXchange.  A
	technique invented by the blue-green algae hundreds of
	millions of years ago to speed up their evolution, which had
	been terribly slow up until then.  Today, SEX parties are
	popular among hackers and others (of course, these are no
	longer limited to exchanges of genetic software).  In general,
	SEX parties are a {Good Thing}, but unprotected SEX can
	propagate a {virus}.  See also {pubic directory}.

	2. The {mnemonic} often used for Sign EXtend, a machine
	instruction found in the {PDP-11} and many other
	architectures.  The {RCA 1802} chip used in the early {Elf}
	and SuperElf {personal computers} had a "SEt X register" SEX
	instruction, but this seems to have had little folkloric
	impact.

	DEC's engineers nearly got a {PDP-11} {assembler} that used
	the "SEX" mnemonic out the door at one time, but (for once)
	marketing wasn't asleep and forced a change.  That wasn't the
	last time this happened, either.  The author of "The Intel
	8086 Primer", who was one of the original designers of the
	{Intel 8086}, noted that there was originally a "SEX"
	instruction on that processor, too.  He says that Intel
	management got cold feet and decreed that it be changed, and
	thus the instruction was renamed "CBW" and "CWD" (depending on
	what was being extended).  The {Intel 8048} (the
	{microcontroller} used in {IBM PC} keyboards) is also missing
	straight "SEX" but has logical-or and logical-and instructions
	"ORL" and "ANL".

	The {Motorola 6809}, used in the UK's "{Dragon 32}" {personal
	computer}, actually had an official "SEX" instruction; the
	{6502} in the {Apple II} with which it competed did not.
	British hackers thought this made perfect mythic sense; after
	all, it was commonly observed, you could (on some theoretical
	level) have sex with a dragon, but you can't have sex with an
	apple.

	[{Jargon File}]

	(1998-03-03)

sexadecimal

	{hexadecimal}

sex changer

	{gender mender}

SEXI

	{SNOBOL}

Seymour Cray

	<person> The founder of {Cray Research} and designer of
	several of their {supercomputers}.

	Cray has been a charismatic yet somewhat reclusive figure.  He
	began Cray Research in Minnesota in 1972.  In 1988, Cray moved
	his {Cray-3} project to Colorado Springs.  The next year, Cray
	Research spun it off to create {Cray Computer}.  In 1989, Cray
	left Cray Research and started Cray Computer Corporation in Colorado
	Springs.

	His quest to build a faster computer using new-generation
	materials failed in 1995, and his bankruptcy cost half a
	billion dollars and more than 400 jobs.  The company was
	unable to raise $20 million needed to finish the {Cray-4} and
	filed for bankruptcy in March 1995.

	In the summer of 1996, Cray started a Colorado Springs-based
	company called {SRC Computers, Inc.}  "We think we'll build
	computers, but who knows what kind or how," Cray said at the
	time.  "We'll talk it over and see if we can come up with a
	plan."

	On 1996-09-22, aged 70, Cray broke his neck in a car
	accident.  Surgery for massive head injuries and swelling of
	the brain leaving him in a critical and unstable condition.

	(1997-03-02)

SFA

	{Sales Force Automation}

SFBI

	Shared Frame Buffer Interconnect (Intel)

SFD-ALGOL

	System Function Description-ALGOL.  Extension of ALGOL for
	synchronous systems.  Sammet 1969, p.625.

SFFA

	{Sales Force Automation}

SFL

	System Function Language.  Assembly language for the ICL2900.
	"SFL Language Definition Manual", TR 6413, Intl Computers Ltd.

SFLV

	Unifies logic and functional programming.  SASL+LV with
	unification moved from actual/formal parameter matching to
	equational clauses.  "Static Analysis of Functional Programs
	with Logical Variables", G. Lindstrom in Programming Languages
	Implementation and Logic Programming, P. Deransart et al eds,
	LNCS 348, Springer 1988.

sFTP

	{Secure File Transfer Protocol}

sg

	<networking> The {country code} for Singapore.

	(1999-01-27)

SGCP

	{Simple Gateway Control Protocol}

SGI

	{Silicon Graphics, Inc.}

SGML

	{Standard Generalized Markup Language}

sgmls

	<language, tool> Sgmls is an {SGML} {parser} derived from the
	{ARCSGML} parser materials which were written by Charles
	Goldfarb.  It outputs a simple, easily parsed, line oriented,
	{ASCII} representation of an SGML document's Element Structure
	Information Set (see pp 588-593 of "The SGML Handbook").  It
	is intended to be used as the front end for
	structure-controlled SGML {application programs}.

	Version 1.1 for {Unix} and {MS-DOS} by James J. Clark
	<jjc@jclark.com> and Charles Goldfarb.

	{(ftp://ftp.uu.net/pub/text-processing/sgml/sgmls-1.0.tar.Z)},
	{(ftp://ftp.jclark.com/sgmls/sgmls-1.1.tar.Z)}.

	E-mail: James Clark <jjc@jclark.com>.

	(1993-02-22)

SGML Tagger

	<tool> A tool to assist with adding {SGML} to a piece of text.
	The Tagger only lets the user insert a mark-up tag which is
	correct in that particular context.

	{(http://www1.oup.co.uk/cite/oup/E-P/Humanities/The_SGML_Tagger/)}.

	(1997-03-18)

SGRAM

	{Synchronous Graphics Random Access Memory}

sh

	1. <operating system> {Bourne shell}.

	2. <networking> The {country code} for St. Helena.

	(1999-01-27)

SHA

	{Secure Hash Algorithm}

SHACO

	An early system on the {IBM 701}.

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

	(1995-10-25)

SHADOW

	<language> A {syntax}-directed {compiler} written by Barnett
	and Futrelle in 1962.  It was the predecessor to {SNOBOL}(?)

	[Sammet 1969, p. 448, 605].

	(1995-01-16)

shadowing

	{aliasing}

shadow ram

	<operating system> A memory area in {PC-AT} compatibles used
	to store frequently accessed {ROM} code to speed up operation.

	(1995-01-16)

shallow binding

	A method of storing variable bindings where the current value
	of a variable can be found at a known location rather than by
	searching an environment or association list.  When a new
	binding is made, the old value is copied into the environment.

shambolic link

	/sham-bol'ik link/ A Unix symbolic link, particularly when it
	confuses you, points to nothing at all, or results in your
	ending up in some completely unexpected part of the
	file system.

	[{Jargon File}]

Shape_VC

	A {code management} system which offers version control
	functionality similar to systems like {RCS} or {SCCS} with
	some extensions and a more {Unix}-like command interface.

	(1994-11-04)

ShapeTools

	<tool, programming> A {code management} system for {Unix} from
	The {Technical University of Berlin}.

	(1995-05-11)

shar

	<tool, file format> ("Shell archive", after {ar} and {tar})
	Any of the many {Unix} programs that creates a {flatten}ed
	representation of one or more files, with the unique property
	that it can be unflattened (the original files extracted)
	merely by feeding it through a standard {Unix} {shell}.  The
	output of shar, known as a "shar file" or "sharchive", can be
	distributed to anyone running {Unix}, and no special unpacking
	software is required.

	Sharchives are intriguing in that they are typically created
	by shell scripts; the script that produces sharchives is thus
	a script which produces self-unpacking scripts, which may
	themselves contain scripts.  The disadvantage of sharchives
	are that they are an ideal venue for {Trojan horse} attacks
	and that, for recipients not running Unix, no simple
	un-sharchiving program is possible; sharchives can and do make
	use of arbitrarily-powerful shell features and other Unix
	commands.

	Different implementations of shar vary in sophistication.
	Some just {uuencode} each input file and output commands to
	{uudecode} the result, others include extensive checking to
	make sure the files have been transferred without corruption
	and that all parts of a multi-file sharchive have been
	unpacked.

	The {unshar} utility strips off mail and news headers before
	passing the remainder of its input to sh.

	(1996-10-18)

sharchive

	{shar}

sharding

	<database> A form of {data partitioning} in which a large
	{database} {table} is split over multiple {servers} in order
	to {balance load (load balancing)}.  Some property of the data
	is used to select which server should handle a given row,
	e.g. the {primary id} {modulo} the number of servers.

	Sharding should be a last resort in database performance
	optimisation because of the difficulty of changing the
	allocation of data to servers, e.g. if the number of servers
	changes or the distribution is found to be uneven.

	{Sharding Your Database, Ovid, perl.org
	(http://blogs.perl.org/users/ovid/2010/05/sharding-your-database.html)}.

	(2010-05-16)

Share and enjoy!

	1. Commonly found at the end of software release announcements
	and {README files}, this phrase indicates allegiance to the
	hacker ethic of free information sharing (see {hacker ethic}).

	2. The motto of the Sirius Cybernetics Corporation (the
	ultimate gaggle of incompetent {suits}) in Douglas Adams's
	"Hitch Hiker's Guide to the Galaxy".  The irony of using this
	as a cultural recognition signal appeals to {freeware}
	hackers.

	[{Jargon File}]

shared memory

	1. Memory in a {parallel computer}, usually {RAM}, which can
	be accessed by more than one processor, usually via a shared
	{bus} or network.

	It usually takes longer for a processor to access shared
	memory than to access its own private memory because of
	contention for the processor-to-memory connections and because
	of other overheads associated with ensuring synchronised
	access.  Computers using shared memory usually have some kind
	of local {cache} on each processor to reduce the number of
	accesses to shared memory.  This requires a {cache
	consistency} {protocol} to ensure that one processor's cached
	copy of a shared memory location is invalidated when another
	processor writes to that location.

	The alternative to shared memory is {message passing} where
	all memory is private to some particular processor and
	processors communicate by sending messages down special
	links.  This is usually slower than shared memory but it
	avoids the problems of contention for memory and can be
	implemented more cheaply.

	2. Memory which can be access by more than one process in a
	{multitasking} {operating system} with memory protection.
	Some {Unix} variants, e.g. {SunOS} provide this kind of shared
	memory.

	{Unix manual pages}: shmop(2), shmctl(2), shmget(2).

	(1994-10-20)

Shared Time Repair of Big Electronic Systems

	<language> (STROBES) A language for computer testing.

	[Sammet 1969, p. 699].

	(1995-02-06)

shareware

	<software> /sheir'weir/ {Software} that, like {freeware}, can
	be usually obtained ({download}ed) and redistributed for free,
	but most often is under {copyright} and does legally require a
	payment in the {EULA}, at least beyond the {evaluation} period
	or for commercial applications.  This payment, as well as
	fulfilling the {user}'s legal obligations, may buy additional
	support, documentation, or functionality.  Generally, {source
	code} for shareware programs is not available.  Shareware is
	sometimes also {nagware} and/or {crippleware}, which muddles
	the term and is frowned upon in the community.

	See also {careware}, {charityware}, {guiltware},
	{postcardware}, and {-ware}; compare {payware}.

	[{Jargon File}]

	(2002-01-30)

shar file

	{shar}

sharp

	<character> {hash}.

Sharp APL

	<language> (Or "Dictionary APL")

	["A Dictionary of the APL Language", K. Iverson, Pub 0402,
	Sharp Assocs, Toronto, 1985].

	{(ftp://watserv1.waterloo.edu/languages/apl/sharp.apl)}.

	(1997-09-02)

S-HDSL

	{Single-pair High Speed Digital Subscriber Line}

shebang

	<operating system> (Or "shebang line", "{bang path}")
	/sh*-bang'/ (From "{sharp}" and "{bang}") The {magic cookie}
	"#!" used in {Unix} to mark the start of a {script}, e.g. a
	{shell script} or {Perl script}.

	Under {Unix}, if the first two bytes of an {executable} file
	are "#!", the {kernel} treats the file as a script rather than
	a {machine code} program.  The word following the "!" (i.e.,
	everything up to the first {whitespace}) is used as the
	{pathname} of the {interpreter}.  For example, if the first
	line of an executable is

	 #!/usr/local/bin/perl

	the script will be treated as a {Perl} script and passed as an
	argument to /usr/local/bin/perl to be interpreted.  Some
	variants of Unix also allow one or more parameters to be
	passed to the interpreter, for example, you can write

	 #!/usr/bin/perl -w

	and the script will be started as if you typed

	 /usr/bin/perl -w <filename>

	on the command line.  Also, most modern kernels ignore any
	whitespace between the "!" and the interpreter pathname.  Even
	some modern kernels have fairly small limits (e.g. 32) on the
	length of line they will accept, making long pathnames and
	arguments somewhat unportable.

	[Does anyone call this a "magic string"?]

	(1998-05-06)

SHEEP

	<mathematics, tool> A package for {symbolic mathematics},
	especially {tensor analysis} and General Relativity, developed
	by Inge Frick in Stockholm in the late 1970s to early 1980s.
	SHEEP was implemented in {DEC-10} {assembly language}, then in
	several {LISPs}.  The current version runs on {Sun}-3 and is
	based on {Portable Standard LISP}.

	["Sheep, a Computer Algebra System for General Relativity",
	J.E.F. Skea et al in Proc First Brazilian School on Comp Alg,
	W. Roque et al eds, Oxford U Press 1993, v2].

	{(http://riaca.win.tue.nl/archive/can/SystemsOverview/Special/Tensoranalysis/SHEEP/index.html)}.

	(2002-12-28)

shelf

	A public library of {class}es for the {Eiffel} language.

shelfware

	<jargon> /shelfweir/ {Software} which is never used and so
	ends up on the shelf.  Shelfware may be purchased on a whim by
	an individual, or in accordance with corporate policy, but not
	actually required for any particular use.  Alternatively, it
	may be software that has been developed (unlike {vaporware}),
	but is never released as a product -- a common occurrence at
	{DEC}.

	[{Jargon File}]

	(1997-07-20)

SHELL

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

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

	[{Jargon File}]

	(1995-05-11)

shell

	1. <operating system> (Originally from {Multics}, widely
	propagated via {Unix}) The {command interpreter} used to pass
	commands to an {operating system}; so called because it is the
	part of the operating system that interfaces with the outside
	world.

	The commonest Unix shells are the c shell ({csh}) and the
	Bourne shell ({sh}).

	2. (Or "wrapper") Any interface program that mediates access
	to a special resource or {server} for convenience, efficiency,
	or security reasons; for this meaning, the usage is usually "a
	shell around" whatever.

	[{Jargon File}]

	(1995-05-11)

shell out

	[Unix] To spawn an interactive subshell from within a program
	(e.g. a mailer or editor).  "Bang foo runs foo in a subshell,
	while bang alone shells out."

	[{Jargon File}]

	(1995-05-11)

shell script

	<programming, operating system> A {program} written to be
	interpreted by the {shell} of an {operating system},
	especially {Unix}.

	Compare: {script}, {glue language}.

	(1999-02-22)

shell variable

	<programming, operating system> One of the {variables}
	accessible to a {Unix} {shell} process, including {environment
	variables} (e.g. $HOME), {command line arguments} (e.g. $1)
	and local variables (e.g. $input_file).  Other {operating
	systems} have similar variables.

	(1999-01-26)

shielded twisted pair

	<hardware> (STP) A kind of cable {used} for most {Ethernet}
	cabling, especially fast ethernet connections such as 100
	{Mbps}.

	Compare: {unshielded twisted pair}.

	(1999-11-15)

SHIFT

	Scalable Heterogeneous Integrated Facility Testbed.  A
	parallel processing project at CERN.

Shift In

	<character> (SI, Control-O, {ASCII} 15) The character used on
	some ancient {teletypes} to start using an alternative
	{character set}.

	(1996-06-24)

shift left logical

	{logical shift}

Shift Out

	<character> (SO, Control-N, {ASCII} 14) The character which
	was used to "shift out" of an alternate character set on some
	ancient {teletypes}, reversing the effect of the {Shift In}
	(SI, ASCII 15) character.

	(1996-06-24)

shift right logical

	{logical shift}

shim

	<jargon, memory management> A small piece of data inserted in
	order to achieve a desired {memory alignment} or other
	addressing property.

	For example, the {PDP-11} {Unix} {linker}, in split I&D
	(instructions and data) mode, inserts a two-{byte} shim at
	location 0 in data space so that no data object will have an
	address of 0 (and be confused with the {C} null pointer).

	See also {loose bytes}.

	[{Jargon File}]

	(1994-12-21)

shit hit the fan

	<chat> (SHTF) A slang expression for a chaotic or otherwise
	unfavourable outcome.

	(2000-11-07)

shitogram

	/shit'oh-gram/ A *really* nasty piece of e-mail.

	Compare {nastygram}, {flame}.

	[{Jargon File}]

	(1994-12-21)

Shockwave

	<tool> A program from {Macromedia} for viewing files created
	with {Macromedia Director}.  Shockwave is freely available as
	a {plug-in} for the {Netscape Navigator} web {browser}.

	"Shocked" pages that incorporate documents created in Director
	can usually only be enjoyed by users with an {ISDN} or faster
	connection.

	{(http://macromedia.com/shockwave/)}.

	[Filetypes?  More detail?]

	(1998-07-07)

shockwave

	<networking> The propagation of failure, shutdown, {meltdown},
	net overload, or a {virus} from one network node to another,
	resulting in a wave of inactivity across the net.

	(1997-05-16)

Shockwave Flash

	{Flash}

shopbot

	<World-Wide Web> A kind of {bot} that searches the {World-Wide
	Web} to find the best price for a product you're looking for.

	[Examples?]

	(1999-06-19)

short card

	<hardware> A half-length {IBM PC expansion card} or adaptor
	that will fit in one of the two short slots located toward
	the right rear of a standard chassis (tucked behind the
	{floppy disk} drives).

	See also: {tall card}.

	[What bus?]

	[{Jargon File}]

	(1998-07-08)

Short Code

	<language> (SHORTCODE) A {pseudocode} {interpreter} for
	mathematics problems, designed by {John Mauchly} in 1949 to
	execute on Eckert and Mauchly's {BINAC} and later on {UNIVAC
	I} and II.  Short Code was possibly the first attempt at a
	{high level language}.

	[Sammet 1969, p. 129].

	(1996-11-01)

shortcut

	<file system> {Microsoft Corporation}'s term for a {symbolic
	link}, stored as a file with extension ".lnk".  Shortcuts
	first appeared in 1996 in the {Windows 95} {operating system}.
	Windows shortcuts can link to any file or directory
	("folder"), including those on remote computers, using {UNC}
	paths.  Each shortcut can also have its own {icon}.  A
	shortcut that links to an executable file can pass {arguments}
	and specify the directory in which the command should run.
	Unlike a {Unix} {symbolic link}, a shortcut does not always
	behave exactly like the target file or directory.

	Compare {pif}.

	(2001-12-18)

Shorten

	<audio, compression> A form of {lossless} {audio}
	{compression}.

	[Details?]

	(2001-12-17)

shortest job first

	<algorithm> A scheduling {algorithm} used in {multitasking}
	{operating systems} that favours processes with the shortest
	estimated running time.

	(1998-04-25)

Short Message Service

	<messaging> (SMS) A message service offered by the {GSM}
	digital {cellular telephone} system.

	Using SMS, a short alphanumeric message (160 alphanumeric
	characters) can be sent to a mobile phone to be displayed
	there, much like in an {alphanumeric pager} system.  The
	message is buffered by the GSM network until the phone becomes
	active.

	(1996-02-18)

shotgun debugging

	The software equivalent of {Easter egging}; the making of
	relatively undirected changes to software in the hope that a
	bug will be perturbed out of existence.  This almost never
	works, and usually introduces more bugs.

	[{Jargon File}]

shoulder surfing

	<security> Secretly watching someone perform some supposedly
	secure action; looking over their shoulder.  The canonical example
	is watching what keys someone presses when they enter a password.
	Other examples include using binoculars to watch someone across
	the street enter their PIN in a cash machine or simply reading
	sensitive information off somebody's screen without them
	realising.

	(2013-11-06)

shovelware

	/shuh'v*l-weir"/ Extra software dumped onto a CD-ROM or tape
	to fill up the remaining space on the medium after the
	software distribution it's intended to carry, but not
	integrated with the distribution.

Show-And-Tell

	A visual {dataflow} language designed for use by elementary
	school children.

	["A Visual Language for Keyboardless Programming", T. Kimura
	et al, TR WUCS-86-6, CS Dept Washington U, Mar 1986].

	["Show and Tell: A Visual Language", T.D. Kimura et al in
	Visual Programming Environments: Paradigms and Systems,
	E.P. Glinert ed, IEEE Comp Sci Press, 1990, pp. 397-404].

	(1995-01-31)

showstopper

	A hardware or (especially) software {bug} that makes an
	implementation effectively unusable; one that absolutely has
	to be fixed before development can go on.  Opposite in
	connotation from its original theatrical use, which refers to
	something stunningly *good*.

	[{Jargon File}]

	(1995-01-31)

shriek

	{exclamation mark}

shrug report

	<humour> A {bug report} with no error message or reproduction
	steps and only a vague description of the problem.  Usually
	contains the phrase "doesn't work."

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}]

	(2012-02-04)

sht

	{server-parsed HTML}

SHTF

	{shit hit the fan}

shtml

	{server-parsed HTML}

Shub-Internet

	/shuhb in't*r-net/ (MUD, from H. P. Lovecraft's evil fictional
	deity "Shub-Niggurath", the Black Goat with a Thousand Young)
	The harsh personification of the {Internet}, Beast of a
	Thousand Processes, Eater of Characters, Avatar of Line Noise,
	and Imp of Call Waiting; the hideous multi-tendriled entity
	formed of all the manifold connections of the net.  A sect of
	{MUD}ders worships Shub-Internet, sacrificing objects and
	praying for good connections.  To no avail - its purpose is
	malign and evil, and is the cause of all network slowdown.
	Often heard as in "Freela casts a tac nuke at Shub-Internet
	for slowing her down."  (A forged response often follows along
	the lines of: "Shub-Internet gulps down the tac nuke and burps
	happily.")  Also cursed by users of {FTP} and {telnet} when
	the system slows down.  The dread name of Shub-Internet is
	seldom spoken aloud, as it is said that repeating it three
	times will cause the being to wake, deep within its lair
	beneath the Pentagon.

	[{Jargon File}]

	(1994-11-04)

SHUG

	{Scottish Hypermedia Users' Group}

Shugart, Alan F.

	{Alan F. Shugart}

Shugart Associates

	<company> The {disk drive} company, founded by Alan
	F. Shugart, which developed {SCSI}.  Alan left Shugart
	Associates in 1974 [did he quit or was he fired?].  Shugart
	Associates was bought, and eventually shut down by {Xerox}.

	(2000-02-09)

Shugart Technology

	{Seagate Technology}

SI

	1. <unit> {Système International}.

	2. <character> {Shift In}.

si

	<networking> The {country code} for Slovenia.

	(1999-01-27)

SIA

	{Serial Interface Adaptor}

SIBO

	{SIxteen Bit Organisers}

SICL

	{Standard Instrument Control Library}

SICS

	{Swedish Institute for Computer Science}

SICStus Prolog

	A {Prolog} from the SICS (Swedish Inst of Comp Sci).

	E-mail: <sicstus-request@sics.se>.
	Mailing list: sicstus-users@sics.se.

	(1995-01-05)

sidecar

	1. Synonym {slap on the side}.  Especially used of add-ons for
	the late and unlamented {IBM PCjr}.

	2. The {IBM PC} compatibility box that could be bolted onto
	the side of an {Amiga}.  Designed and produced by {Commodore},
	it broke all of the company's own design rules.  If it worked
	with any other peripherals, it was by {magic}.

	[{Jargon File}]

side-effect

	A language construct that modifies the state of the system.
	The most common side-effects are {assignment}, input and
	output.  A language without side-effects is
	{purely-functional} - execution consists of the evaluation of
	an expression and all subexpressions are {referentially
	transparent}.

	(1995-02-16)

Siemens

	A German semiconductor and electronics manufacturer.

	{(http://siemens.de/)}.

	[Summary?]

	(1995-07-26)

Siemens Nixdorf Informationssteme, AG

	<company> (SNI) A separate company within {Siemens}, the
	largest {IT} company in Europe.  SNI sells the {BS2000}
	{operating system}, a wide variety of {databases}, {servers}
	and other products.

	(1997-06-13)

Sierra

	<company, games> (Or "Sierra On-Line") A computer game
	developer founded in the early 1980s by Ken and Roberta
	Willams in the small mountain town of Oakhurst California.
	Sierra was named after the local mountian range, 15 miles from
	the famous Yosemite National Park.

	In 1997 Sierra was purchased by {CUC} and its main office is
	now in Seattle, WA, USA.

	Products include Kings Quest, Space Quest, Police Quest, Quest
	for Glory, Robin Hood, Phantasmagoria, Leisure Suit Larry, Eco
	Quest and many more.

	{(http://sierra.com /)}.

	(1997-11-23)

SIFT

	SHARE Internal Fortran Translator.  Translation utility
	designed for converting Fortran II to Fortran IV.  The word
	"sift" was often used as a verb to describe converting code
	from one language to another.  Sammet 1969, p.153.

SIG

	{Special Interest Group}

Sig

	Signal Processing, Analysis, and Display program.  An
	environment with an associated programming language by Jan
	Carter of {Argonne National Lab}.  Telephone +1 (312) 972
	7250.

	[{Jargon File}]

sig

	{signature}

sig block

	/sig blok/ [Unix; often written ".sig" there].  See
	{signature}.

	[{Jargon File}]

SIGBUS

	{bus error}

SIGhyper

	Special Interest Group on Hypertext and Multimedia of the
	{SGML} Users' Group.

SIGLA

	<robotics> SIGma LAnguage.  A language for industrial robots
	from {Olivetti}.

	["SIGLA: The Olivetti Sigma Robot Programming Language",
	M. Salmon, Proc 8th Intl Symp on Industrial Robots, 1978,
	pp. 358-363].

SIGMA

	A scientific {visual programming} environment from NASA.

	{(http://fi-www.arc.nasa.gov/fia/projects/sigma/)}.

SIGNAL

	<language> A synchronous language by Le Guernic et al of
	{INRIA}.

	["SIGNAL - A Data Flow-Oriented Language for Signal
	Processing," P. le Guernic, IEEE Trans Acoustics Speech &
	Signal Proc, ASSP-34(2):362-1986-04-374].

	(1996-12-10)

signal

	<operating system> A predefined message sent between two
	{Unix} {processes} or from the {kernel} to a process.  Signals
	communicate the occurrence of unexpected external events such
	as the forced termination of a process by the user.  Each
	signal has a unique number associated with it and each process
	has a signal handler set for each signal.  Signals can be sent
	using the {kill} {system call}.

	(1996-12-10)

signalling rate

	<communications> The number of times per second the
	{amplitude}, {frequency} or {phase} of the signal transmitted
	down a communications channel changes each second.  The
	signalling rate is measured in {baud}.

	(1998-02-14)

Signalling System 7

	<protocol> (SS7) A {protocol} suite used for communication
	with, and control of, telephone central office switches and
	their attached processors.

	(1995-03-01)

signal-to-noise ratio

	1. <communications> (SNR, "s/n ratio", "s:n ratio") "Signal"
	refers to useful information conveyed by some communications
	medium, and "noise" to anything else on that medium.  The
	ratio of these is usually expressed logarithmically, in
	{decibels}.

	2. <networking> The term is often applied to {Usenet}
	newsgroups though figures are never given.  Here it is quite
	common to have more noise (inappropriate postings which
	contribute nothing) than signal (relevant, useful or
	interesting postings).  The signal gets {lost in the noise}
	when it becomes too much effort to try to find interesting
	articles among all the crud.  Posting "noise" is probably the
	worst breach of {netiquette} and is a waste of {bandwidth}.

	[{Jargon File}]

	(1996-01-29)

signature

	1. A set of function symbols with {arities}.

	2. <messaging> (Or sig) A few lines of information about the
	sender of an {electronic mail} message or {news} {posting}.
	Most {Unix} mail and news software will {automagically} append
	a signature from a file called .signature in the user's {home
	directory} to outgoing mail and news.

	A signature should give your real name and your {e-mail
	address} since, though these appear in the {headers} of your
	messages, they may be {munged} by intervening software.  It is
	currently (1994) hip to include the {URL} of your {home page}
	on the {World-Wide Web} in your sig.

	The composition of one's sig can be quite an art form,
	including an {ASCII} logo or one's choice of witty sayings
	(see {sig quote}, {fool file}).  However, large sigs are a
	waste of {bandwidth}, and it has been observed that the size
	of one's sig block is usually inversely proportional to one's
	prestige on the net.

	See also {doubled sig}, {sig virus}.

	2. <programming> A concept very similar to {abstract base
	classes} except that they have their own {hierarchy} and can
	be applied to compiled {classes}.  Signatures provide a means
	of separating {subtyping} and {inheritance}.  They are
	implemented in {C++} as patches to {GCC} 2.5.2 by Gerald
	Baumgartner <gb@cs.purdue.edu>.

	{(ftp://ftp.cs.purdue.edu/pub/gb/)}.

	(2001-01-05)

sig quote

	<messaging> /sig kwoht/ A maxim, quote, proverb, joke, or slogan
	embedded in one's {sig block} (as used in {Usenet} news) and
	intended to convey something of one's philosophical stance,
	pet peeves, or sense of humour.  "Calm down, it's only ones
	and zeroes."

	[{Jargon File}]

	(1994-11-04)

sig virus

	A parasitic {meme} embedded in a {sig block}.  There was a
	{meme plague} or fad for these on {Usenet} in late 1991.  Most
	were equivalents of "I am a .sig virus.  Please reproduce me
	in your .sig block.".  Of course, the .sig virus's memetic
	hook is the giggle value of going along with the gag; this,
	however, was a self-limiting phenomenon as more and more
	people picked up on the idea.  There were creative variants on
	it; some people stuck "sig virus antibody" texts in their
	sigs, and there was at least one instance of a sig virus
	eater.

	[{Jargon File}]

SIL

	1. "SIL - A Simulation Language", N. Houbak, LNCS 426,
	Springer 1990.

	2. SNOBOL Implementation Language.  Intermediate language
	forming a virtual machine for the implementation of portable
	interpreters.

	["The Design of Transportable Interpreters", F. Druseikis,
	SNOBOL4 Project Document S4D49, U Arizona (Feb 1975)].

	Version 3.11.  {(ftp://cs.arizona.edu/snobol4/)}.  E-mail:
	<snobol4@arizona.edu>.

	(1986-07-29)

Silage

	Synchronous DSP specification language.

	["Silage Reference Manual, Draft 1.0", D.R. Genin &
	P.N. Hilfinger, Silvar-Lisco, Leuven 1989].

silicon

	1. <electronics> The material used as the base (or
	"substrate") for most {integrated circuits}.

	2. <jargon> {Hardware}, especially {integrated circuits} or
	{microprocessor}-based computer systems (compare {iron}).

	Contrast: {software}.  See also {sandbender}.

	[{Jargon File}]

	(1996-05-28)

silicon chip

	{integrated circuit}

Silicon Graphics, Inc.

	<company> (SGI) Manufacturer of {workstations} and {software}
	for {graphics} and {image processing}.  SGI was founded by
	{Dr. James H.  Clark}, who left some time before May 1994 to
	head {Mosaic Communications Corporation}.

	Quarterly sales $433M, profits $44M (Aug 1994).

	{(http://sgi.com/)}.

	(1994-09-26)

Siliwood

	<jargon> (Or "Hollywired") The coming convergence of film,
	{interactive TV} and computers.

	(1999-01-15)

silly walk

	[Monty Python's Flying Circus] 1. A ridiculous procedure
	required to accomplish a task.  Like {grovel}, but more
	{random} and humorous.  "I had to silly-walk through half the
	/usr directories to find the maps file."

	2. Synonym {fandango on core}.

	[{Jargon File}]

silo

	The {FIFO} input-character buffer in an {EIA-232} serial line
	card.  So called from {DEC} terminology used on DH and DZ line
	cards for the {VAX} and {PDP-11}, presumably because it was a
	storage space for fungible stuff that went in at the top and
	came out at the bottom.

Silver Book

	<publication> Jensen and Wirth's infamous "Pascal User Manual
	and Report", so called because of the silver cover of the
	widely distributed Springer-Verlag second edition of 1978
	(ISBN 0-387-90144-2).

	See also {book titles}, {Pascal}.

	[{Jargon File}]

	(1996-12-03)

silver bullet

	{magic bullet}

SIM

	{Subscriber Identity Module}

SIMAN

	{SIMulation ANalysis}

SimCity

	<games> {Maxis Software}'s simulation game which lets you
	design and build your own city, which must be administered
	well if it is to thrive.  Land must be zoned, transportation
	systems built, and police and fire protection provided.  Once
	you've zoned some land, and provided electrical power, the
	simulation takes over, and simcitizens move in.  If you
	perform your mayoral duties poorly, however, they will move
	out again.  If you don't provide enough police, crime will
	rise and sims will vote with their feet.  Try to save money on
	fire protection, and your city may burn to the ground.  There
	is no predefined way to win the game, building the largest
	city you can is just one possible strategy.

	SimCity runs on {Archimedes}, {Amiga}, {Atari ST}, {IBM PC}
	and {Macintosh}.  There was also a {NeWS} version for {Sun}
	{SPARC} {workstations} running {OpenWindows}.

	{SimCity 2000} is an upgrade of SimCity.

	(1995-06-11)

SimCity 2000

	<games> An upgraded version of the game/simulation {SimCity}
	by {Maxis Software}.  In the new version you can raise, lower
	and level terrain; build roads and railways at 45-degree
	angles; name things in your city by planting "signs"; build
	raised highways, subways, and train and bus stations, schools,
	colleges, hospitals, electricity, water, recreational marinas
	and zoos.

	There are three levels of zoom, and the view may be rotated to
	look at your city from any of the four directions.  A query
	feature which will tell you the zoning, land value, etc. of
	any square.  You get newspapers, advice from council members,
	graphs, and charts.

	(1995-02-08)

SIMD

	{Single Instruction/Multiple Data}

Similix

	An autoprojector (self-applicable partial evaluator) for a
	higher order subset of the strict functional language Scheme.
	Similix handles programs with user defined primitive abstract
	data type operators which may process global variables (such
	as input/output operators).

	Version 5.0.

	Anders Bondorf <anders@diku.dk>

	conformance: extension of large subset of R4RS Scheme.

	requires: Scheme

	ports: Scm, Chez Scheme

	portability: high

	E-mail: Anders Bondorf <anders@diku.dk>

	{(ftp://ftp.diku.dk/pub/diku/dists/Similix.tar.Z)}.

	(1993-05-18)

SIML/I

	Simulation language, descendant of ASPOL.

	["The Simulation Language SIML/I", M.H. MacDougall, Proc NCC
	1979, pp. 39-44].

SIMM

	{Single in-line memory module}

Simone

	<language> A {simulation} language by A. Hoare et al. based on
	{Pascal}.

	["Quasiparallel Programming", W.H. Kaubisch et al, Soft Prac &
	Exp 6:341-356 1976].

	[C.A.R. Hoare?]

	(1996-01-18)

Simonyi, Charles

	{Charles Simonyi}

SIMPAC

	Early simulation language with fixed time steps.

	"Simpac User's Manual", R.P. Bennett et al, TM-602/000/000,
	Sys Devel Corp, Apr 1962.

SIMPAS

	Event scheduling language, implemented as Pascal preprocessor.

	"SIMPAS - A Simulation Language Based on Pascal", R.M. Bryant
	in Proc 1980 Winter Sim Conf, T.I Oren et al eds, pp.559-572.

SIMPL

	Simulation language, descendant of OPS-4, compiled into PL/I
	on Multics.

	"The SIMPL Primer", M.W. Jones et al, Oct 1971.

SIMPLE

	1. Early system on Datatron 200 series.  Listed in CACM
	2(5):16 (May 1959).

	2. Simulation of Industrial Management Problems with Lots of
	Equations.  R.K. Bennett, 1958.  Predecessor to DYNAMO, for
	IBM 704.

Simple Actor Language

	<language> (SAL) A minimal {actor language}, used for teaching
	in:

	["Actors, A Model of Concurrent Computation in Distributed
	Systems", G. Agha, MIT Press 1986].

	(1994-12-08)

Simple Authentication and Security Layer

	<networking> (SASL)

	{(http://asg2.web.cmu.edu/sasl/)}.

	[Summary?]

	(2001-08-24)

Simple Gateway Control Protocol

	<communications, protocol> (SGCP) An {IETF} work in progress,
	superseded by {MGCP}.

	(1999-04-26)

Simple Mail Transfer Protocol

	<messaging> (SMTP) A {protocol} defined in {STD} 10, {RFC}
	821, used to transfer {electronic mail} between computers,
	usually over {Ethernet}.  It is a server to server protocol,
	so other protocols are used to access the messages.  The SMTP
	dialog usually happens in the background under the control of
	the {message transfer agent}, e.g. {sendmail} but it is
	possible to interact with an SMTP server using {telnet} to
	connect to the normal SMTP {port}, 25.  E.g.

		telnet mhs-relay.ac.uk 25

	You should normally start by identifying the local {host}:

		HELO wombat.doc.ic.ac.uk

	You can then issue commands to verify an address or expand an
	alias:

		VRFY fred@doc.ic.ac.uk
		VRFY postmaster

	or expand a {mailing list}:

		EXPN c-help

	You can even send a message:

		MAIL From:<fred@doc.ic.ac.uk>
		RCPT To:<fred@mailway.doc.ic.ac.uk>
		DATA
		What is the point?
		.
		QUIT

	This is useful if you want to find out exactly what is
	happening to your message at a certain point.

	See also {Post Office Protocol}, {RFC 822}, {sendmail}.

	(1995-10-17)

simple multicast protocol

	<communications, protocol> A proposed {mulitcast} {protocol}
	that would ease the requirements for {IP} Multicast, such as
	no longer mandating that routers be able to calculate the
	source of a multicast stream.  This has not been adopted by
	the {IETF}.

	{(http://infoworld.com/cgi-bin/displayStory.pl?981125.whmulti.htm)}.

	[Reference?]

	(2001-07-02)

Simple Network Management Protocol

	<protocol> (SNMP) The {Internet} {standard} {protocol},
	defined in {STD 15}, {RFC 1157}, developed to manage {nodes}
	on an {IP} {network}.  SNMP is not limited to {TCP/IP}.  It
	can be used to manage and monitor all sorts of equipment
	including computers, {routers}, {wiring hubs}, {toasters} and
	{jukeboxes}.

	See also {Management Information Base}, {Simple Network
	Management Protocol version 2}.

	(1995-02-15)

Simple Network Management Protocol version 2

	<protocol> (SNMP v2) A revision of {Simple Network Management
	Protocol} (not just a new {MIB}) which includes improvements
	in the areas of performance, security, confidentiality, and
	manager-to-manager communications.

	The major components of SNMPv2 are defined in the following
	{RFCs}:

	 {RFC 1089} - SNMP over Ethernet
	 {RFC 1140} - IAB Official Protocol Standards
	 {RFC 1155} - Structure and Identification of Management
		      Information for TCP/IP based internets
	 {RFC 1156} (H) - Management Information Base Network
			  Management of TCP/IP based internets
	 {RFC 1157} - A Simple Network Management Protocol
	 {RFC 1158} - Management Information Base Network
		      Management of TCP/IP based internets: MIB-II
	 {RFC 1161} (H) - SNMP over OSI
	 {RFC 1187} - Bulk Table Retrieval with the SNMP
	 {RFC 1212} - Concise MIB Definitions
	 {RFC 1213} - Management Information Base for Network
		      Management of TCP/IP-based internets: MIB-II
	 {RFC 1215} (I) - A Convention for Defining
			  Traps for use with the SNMP
	 {RFC 1224} - Techniques for Managing
		      Asynchronously Generated Alerts
	 {RFC 1270} (I) - SNMP Communication Services
	 {RFC 1303} (I) - A Convention for Describing
			  SNMP-based Agents
	 {RFC 1470} (I) - A Network Management Tool Catalog
	 {RFC 1298} - SNMP over IPX
	 {RFC 1418} - SNMP over OSI
	 {RFC 1419} - SNMP over IPX
	 {RFC 1441} - Introduction to SNMP v2
	 {RFC 1442} - SMI For SNMP v2
	 {RFC 1443} - Textual Conventions for SNMP v2
	 {RFC 1444} - Conformance Statements for SNMP v2
	 {RFC 1445} - Administrative Model for SNMP v2
	 {RFC 1446} - Security Protocols for SNMP v2
	 {RFC 1447} - Party MIB for SNMP v2
	 {RFC 1448} - Protocol Operations for SNMP v2
	 {RFC 1449} - Transport Mappings for SNMP v2
	 {RFC 1450} - {MIB} for SNMP v2
	 {RFC 1451} - Manager to Manger MIB
	 {RFC 1452} - Coexistance between SNMP v1 and SNMP v2

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/usenet/snmp-faq)}.

	{Introduction
	(http://gt-er.cg.org.br/documentacao/buffer/gerencia/faq1.html)}.

	{Cisco
	(http://cisco.com/cpropub/univ-src/ccdcp/data/doc/software/11_1/mib/mover.htm)}.

	(1997-12-02)

Simple Network Paging Protocol

	<protocol> (SNPP) A standard for sending one- and two-way
	wireless messages to {pagers}.  In its simplest form, SNPP
	provides a simple way to make a link between the {Internet}
	and a {Telocator Alphanumeric input Protocol} (TAP) paging
	terminal.  SNPP is defined in {RFC 1861}.

	(1997-04-25)

Simple Object Access Protocol

	<protocol> (SOAP) A minimal set of conventions for invoking
	{code} using {XML} over {HTTP}.

	{DevelopMentor}, {Microsoft Corporation}, and {UserLand
	Software} submitted SOAP to the {IETF} as an internal draft in
	December 1999.

	Latest version: SOAP 1.1 defined by {World Wide Web
	Consortium}.

	{(http://w3.org/TR/SOAP/)}.

	(2000-01-08)

simplex

	1. <communications> Used to describe a communications channel
	that can only ever carry a signal in one direction, like a
	one-way street.  Television is an example of ({broadcast})
	simplex communication.

	Opposite: {duplex}.

	2. <algorithm> The {simplex method}.

	(2001-07-21)

simplex method

	<algorithm> An {algorithm} for solving the classical {linear
	programming} problem; developed by George B. Dantzig in 1947.

	The simplex method is an {iterative} procedure, solving a
	system of {linear equations} in each of its steps, and
	stopping when either the optimum is reached, or the solution
	proves infeasible.  The basic method remained pretty much the
	same over the years, though there were many refinements
	targeted at improving performance (eg. using {sparse matrix}
	techniques), numerical {accuracy} and stability, as well as
	solving special classes of problems, such as {mixed-integer}
	programming.

	(2003-07-09)

simplex printer

	<communications> A term applied by Western Union Telegraph
	Company to {teletypewriters} that are not part of a
	{multiplex} system.  They usually provided for alternate
	transmission in both directions.  If working {simplex} or
	{half-duplex}, what was keyed in at the keyboard would be
	typed out at the printing portion.  If working {full-duplex},
	sending would be blind as the printing portion was being used
	only for reception.

	(2000-04-02)

SIMPL/I

	A {simulation} language implemented as a {PL/I}
	{preprocessor}.

	["SIMPL/I (Simulation Language Based on PL/I).  Program
	Reference Manual", IBM SH19- 5060-0 (June 1972)].

	(1994-12-07)

Simplified Multicast Routing Protocol

	<communications, protocol> (SMRP) A {transport-layer}
	{protocol} to route {multimedia} data streams over {AppleTalk}
	networks.  SMRP supports {Apple}'s {QuickTime Conferencing}
	(QTC).

	{Documentation
	(http://cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/smrp.htm)}.

	(2001-07-02)

SIMPL-T

	The base language for a family of languages and compilers.

	["SIMPL-T, A Structured Programming Language", V.R. Basili,
	Paladin House 1976].

	(1994-12-07)

SIMSCRIPT

	A free-form, English-like general-purpose {simulation}
	language produced by Harry Markowitz et al of {Rand} Corp in
	1963.  It was implemented as a {Fortran} {preprocessor} on
	{IBM 7090} and was designed for large discrete simulations.
	It influenced {Simula}.  Later versions included {SIMSCRIPT
	I.5} and {SIMSCRIPT II.5}.

SIMSCRIPT I.5

	A version of {SIMSCRIPT} developed at {CACI} in 1965.  It
	produced {assembly language}.

SIMSCRIPT II.5

	Another version of {SIMSCRIPT} from {CACI}.

	["SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat
	et al, CACI, 1973].

simship

	{simultaneous shipment}

SIMULA

	<language> SIMUlation LAnguage.

	See {Lund Simula}, {SIMULA 67}, {SIMULA I}.  See also
	{Association for SIMULA Users}, {C++SIM}, {FLEX}, {MODSIM},
	{SIMSCRIPT}.

	A simula-to-{C} {compiler} project is underway.  E-mail:
	Harald Thingelstad <harald.thingelstad@basalmed.uio.no>.

	{Usenet} newsgroup: {news:bit.listserv.simula}.

	(1995-03-29)

SIMULA 67

	<language> A version of {SIMULA I}?

	{Association for SIMULA Users}

	Simula a.s., Postboks 4403 - Torshov, N-0402 Oslo 4, Norway,
	versions for almost every computer.

	E-mail: Henry Islo <hio@helios.sunet.se>.

	{(ftp:/lund.se:/mac/misc/simula/)},
	{(ftp://ftp.fenk.wau.nl/pub/simula/compilers)},
	{(ftp://ftp.ifi.uio.no/cim/)}.

	["Object-Oriented Programming with SIMULA", Bjorn Kirkerud,
	A-W 1989].

	["Data Processing - Programming Languages - SIMULA", Swedish
	Standard SS 63 61 14 (1987), available through ANSI].

	[Difference from SIMULA I?]

	(1995-03-29)

SIMULA I

	<language> SIMUlation LAnguage.

	An extension to {ALGOL 60} for the {Univac 1107} designed in
	1962 by Kristen Nygaard and Ole-Johan Dahl and implemented in
	1964.  SIMULA I was designed for {discrete simulation}.  It
	introduced the {record} {class}, leading the way to {data
	abstraction} and {object-oriented programming} languages like
	{Smalltalk}.  It also featured {coroutines}.

	SIMULA's philosophy was the result of addressing the problems
	of describing complex systems for the purpose of simulating
	them.  This philosophy proved to be applicable for describing
	complex systems generally (not just for simulation) and so
	SIMULA is a general-purpose object-oriented application
	programming language which also has very good discrete event
	simulation capability.  Virtually all OOP products are derived
	in some manner from SIMULA.

	For a description of the evolution of SIMULA and therefore the
	fundamental concepts of OOP, see Dahl and Nygaard in ["History
	of Programming Languages".  Ed. R. W. Wexelblat.
	Addison-Wesley, 1981].

	(1995-03-29)

simulate

	{simulation}

simulated annealing

	A technique which can be applied to any minimisation or
	learning process based on successive update steps (either
	random or {deterministic}) where the update step length is
	proportional to an arbitrarily set parameter which can play
	the role of a temperature.  Then, in analogy with the
	annealing of metals, the temperature is made high in the early
	stages of the process for faster minimisation or learning,
	then is reduced for greater stability.

Simulating Digital Systems

	Fortran-like language for describing computer
	logic design.  Sammet 1969, p.622.

simulation

	<simulation, system> Attempting to predict aspects of the
	behaviour of some system by creating an approximate
	(mathematical) model of it.  This can be done by physical
	modelling, by writing a special-purpose computer program or
	using a more general simulation package, probably still aimed
	at a particular kind of simulation (e.g. structural
	engineering, fluid flow).  Typical examples are aircraft
	flight simlators or electronic circuit simulators.  A great
	many simulation languages exist, e.g. {Simula}.

	See also {emulation}, {Markov chain}.

	{Usenet} newsgroup: {news:comp.simulation}.

	(1995-02-23)

SIMulation ANalysis

	<language, simulation> (SIMAN) A {simulation} language,
	especially for manufacturing systems, developed by C. Dennis
	Pegden in 1983.

	["Introduction to Simulation using SIMAN", C.D. Pegden et al,
	McGraw-Hill 1990].

	(1999-01-13)

Simulation Language for Alternative Modeling

	<language> (SLAM) A {simulation} language descended from
	{GASP}.  Implemented as a {Fortran} {preprocessor}.

Simulation Oriented Language

	<language> (SOL) An {ALGOL} extension for {discrete
	simulation} by {Donald Knuth} and McNeley.

	["SOL - A Symbolic Language for General Purpose System
	Simulation", D.E. Knuth et al, IEEE Trans Elec Comp,
	EC-13(4):401-408 (Aug 1964)].

	[Sammet 1969, p. 656].

	(1995-07-26)

Simultaneous Engineering Environment

	(SEE) A {CAE} framework from {DAZIX}.

	(1994-11-03)

Simultaneous Peripheral Operation On-Line

	<operating system, history> (SPOOL) Accessing {peripheral}
	devices with the help of an {off-line} {tape drive}.  The term
	was derived by {IBM} for use with the {IBM 360} {operating
	systems}.

	In the early days of computing (early 1960s), before
	{multitasking} was invented, computers (e.g. {IBM 704}) could
	run only one job at a time.  As peripheral devices such as
	{printers} or {card readers} were much slower than the {CPU},
	devoting the computer (the only computer in many cases) to
	controlling such devices was impractical.

	To free the CPU for useful work, the output was sent to a
	{magnetic tape} drive, which was much faster than a printer
	and much cheaper than a computer.  After the job was finished
	the tape was removed from the tape drive attached to the
	computer and mounted on a tape drive connected to a printer
	(such as the {IBM 1403}).  The printer could then print the
	data without holding up the computer.  Similarly, instead of
	inputting the program from the card reader it was first copied
	to a tape and the tape was read by the computer.

	(1999-01-12)

simultaneous shipment

	<programming> (simship) The release of international,
	{localised} versions of software at the same time, or within a
	short period of time of the original release.

	Major software publishers can release as many as 30 different
	localised versions within a month or two of the original
	version.  These products may have thousands of pages of
	{documentation}.

	(1999-06-09)

Simware, Inc.

	<company> The producers of {REXXWARE}.

	E-mail: <rexxware@simware.com>.

	Address: Ottawa, Canada.

	(1995-01-11)

SINA

	["An Implementation of the Object-Oriented Concurrent
	Programming Language SINA", A. Tripathi et al, Soft Prac & Exp
	19(3):235-256 (1989)].

since time T equals minus infinity

	A long time ago; for as long as anyone can remember; at the
	time that some particular frob was first designed.  Usually
	the word "time" is omitted.  See also {time T}; contrast
	{epoch}.

	[{Jargon File}]

Sinclair, Clive

	{Clive Sinclair}

Sinclair PC200

	<computer>

	{(http://nonowt.demon.co.uk/magfold/articfol/the_miss.htm)}.

	[Summary?]

	1998-07-28

Sinclair Radionics

	{Sinclair Research}

Sinclair Research

	<company> A British microelectronics developer and
	manufacturer.  Evolving from Sinclair Radionics in 1979,
	Sinclair Research was owned by Sir {Clive Sinclair}.  Sinclair
	Radionics produced electronic components and devices (such as
	calculators and pocket radios and televisions), but Sinclair
	Research began by producing some of the first {8-bit} home
	{microcomputers}.

	Sinclair produced five microcomputers from 1980 to 1987, all
	based on the {Zilog Z80} {microprocessor} (except for the
	{QL}, which used the {Motorola 68008} - a variant on the
	{68000}).  The 1K kit-build {ZX80}, introduced in 1980, was
	followed by the 1K {ZX81} (expandable to 16K) in 1981, the 16K
	(expandable to 48K) {ZX Spectrum} in 1982 (then superseded by
	two distinct 48K models and a 128K model in 1986) and the {QL}
	(Quantum Leap) in 1984.  A portable {laptop computer}, the
	{Z88}, was released in 1987 under the {Cambridge Computers}
	banner.

	Of them all, the ZX Spectrum was the best known, and it went
	on to become the most popular microcomputer of its time in the
	United Kingdom and in many other territories.  This was partly
	due to its ease of use, and also due to its enormous
	{software} catalogue, covering games, {word processing},
	music, {programming} and {graphics}.  Glorious
	"mine's-better-than-yours" battles were fought (and still are
	today) between owners of Spectrums and {Commodore 64s} over
	who had the best machine.

	Sir Clive's financial problems in the mid-80s led him to sell
	the rights to the Sinclair brand to {Amstrad} in April 1986.
	This led to further models of the Spectrum being released from
	1986 to 1988 and also an {IBM} {PC}-compatible based
	internally on Amstrad's own PC range.  Sir Clive was not
	involved with the production of these computers, and no
	computer with the Sinclair name has been produced since.

	{(http://sinclair-research.co.uk/)}.
	{Planet Sinclair (http://nvg.ntnu.no/sinclair/)}.
	{comp.sys.sinclair FAQ
	(http://kendalls.demon.co.uk/cssfaq/)}.

	(1998-12-09)

sine wave

	<mathematics> A waveform of a single constant frequency and
	amplitude that continues for all time.

	Compare {wavelet}.

	(1994-11-09)

single assignment

	<programming> A property of {variables} in a {functional
	language}.  If a {variable} is only assigned a value once then
	an instance of that variable is thereafter semantically
	equivalent to the value.  {SISAL} is an example of a language
	with this property.

	See also {zero assignment}.

	(2003-12-22)

single assignment language

	<language> Any programming language with the {single
	assignment} property.

	(2007-03-21)

single-attached

	Connected to only one of the two rings of an {FDDI} network.
	This is the kind of connection normally used for a {host}
	computer, as opposed to {routers} and {concentrators} which
	are normally "{dual-attached}".

	(1994-12-13)

Single Connection Attach

	<hardware> (SCA, "Single Connector Attachment") A non-standard
	type of {SCSI} connector, used mostly by {OEMs}, which carries
	both power and data on one 80-pin connector.  SCA SCSI drives
	tend to be cheaper but use with standard SCSI cables requires
	an adaptor and external termination.

	{(http://pcmech.com/show/harddrive/152/)}.

	(2003-06-21)

Single Connector Attachment

	{Single Connection Attach}

Single Data Rate Random Access Memory

	<storage> (SDR-RAM, SDR-SDRAM, Single Data Rate Synchronous
	Dynamic Random Access Memory) {RAM} or {SDRAM} that transfers
	data on only one {clock} transition (0-1 or 1-0), in contrast
	to {DDR-RAM}.

	(2001-05-24)

Single Data Rate Synchronous Dynamic Random Access Memory

	{Single Data Rate Random Access Memory}

Single Document Interface

	<programming> (SDI) A limitation applying to an {application
	program} that only shows a single windows giving a view of one
	document at a time.

	The opposite is {Multiple Document Interface} (MDI).

	(1999-03-30)

single-duplex

	<communications> (From {telegraphy}) A {full-duplex} link with
	one telegrapher at each end, transmitting alternately in each
	direction.

	(2000-03-30)

Single Edge Contact

	<hardware> (SEC) The type of cartridge in which a {Pentium II}
	is packaged.

	[Other uses?]

	(1999-02-15)

Single Edge Contact Cartridge

	<hardware> (SEC, SECC) The cased {daughterboard} housing
	{Intel}'s {Pentium II}, {Pentium III}, and {Xeon}
	{microprocessors}.

	A SECC fits into a {Slot 1} or {Slot 2} connector.

	[SECC 2?]

	(1999-08-05)

Single Edge Processor Package

	<hardware> (SEPP) The caseless {daughterboard} containing
	{Intel}'s {Celeron} {processor}.  A SEPP fits into a {Slot 1}
	connector.

	(1999-08-04)

single-electron transistor

	{quantum dot}

Single Electron Tunneling

	<electronics> (SET) A New electrical standard for capacitance.

	SET devices can be used to construct circuits which process
	information by manipulating individual electrons.  SET devices
	are small, dissipate little power, and can detect exquisitely
	small quantities of charge.  The small size and low power
	dissipation of SET circuits makes them potentially useful for
	the {Information Technology} industry.

	(1999-01-06)

Single Electron Tunneling Technology

	<hardware> A {neural network} hardware concept based on
	{single electron tunneling}.  {Single electron tunneling
	transistors} have some properties which make them attractive
	for neural networks, among which their small size, low power
	consumption and potentially high speed.

	Simulations have been performed on some small circuits of SET
	transistors that exhibit functional properties similar to
	those required for neural networks.

	{(http://computer.org/conferen/proceed/mn96/ABSTRACT.HTM#125)}.

	[Proceedings of the Fifth International Conference on
	Microelectronics for Neural Networks and Fuzzy Systems
	(MicroNeuro '96).  Martijn J. Goossens, Chris J.M. Verhoeven,
	and Arthur H.M. van Roermund].

	(1999-01-06)

single ended

	<hardware> An electrical connection where one wire carries the
	signal and another wire or shield is connected to electrical
	ground.  This is in contrast to a {differential} connection
	where the second wire carries an inverted signal.

Single Image Random Dot Stereogram

	<graphics> (SIRDS, originally "autostereogram") A {stereogram}
	composed of (coloured) dots which when viewed correctly
	appears three-dimensional.  SIRDs were invented by
	Dr. Christoper Tyler, Associate Director of the
	Smith-Kettlewell Eye Research Institute in San Francisco
	(1999).

	{FAQ (http://cs.waikato.ac.nz/~singlis/sirds.html)}.
	{Nice pictures
	(http://eleves.ens.fr:8080/home/massimin/index.ang.html)}.
	{Picture Gallery (http://h2.ph.man.ac.uk/gareth/sirds.html)}.
	{Vern Hart's SIRDS Gallery (http://vern.com/)}.  {SGI
	Gallery (http://sgi.com/free/gallery.html)}.

	(1996-11-06)

single inheritance

	The property of an {object-oriented language} which restricts
	a sub-{class} to be derived from only one parent.  Opposite of
	{multiple inheritance}.

Single In-line Memory Module

	<storage> (SIMM) A small circuit board or substrate, typically
	about 10cm x 2cm, with {RAM} {integrated circuits} or die on
	one or both sides and a single row of pins along one long
	edge.  Several SIMMs are mounted with their substrates at
	right-angles to the main circuit board (the {motherboard}).
	This configuration allows greater packing density than direct
	mounting of, e.g. DIL ({dual in-line}) RAM packages on the
	motherboard.  In 1993 one SIMM typically held one or four
	megabytes, by early 1997 one could hold 8, 16, or 32 MB.

	(1997-01-05)

Single Inline Pin Package

	<hardware> (SIPP) An {integrated circuit} package with a
	single line of pins.

	Compare {Dual Inline Package}, {Single In-line Memory Module}.

	(1995-03-01)

Single Instruction Multiple Data

	{Single Instruction/Multiple Data}

Single Instruction/Multiple Data

	(SIMD) (Or "data parallel") The classification under {Flynn's
	taxonomy} for a {parallel processor} where many processing
	elements ({functional units}) perform the same operations on
	different data.  There is often a central controller which
	broadcasts the instruction stream to all the processing
	elements.

	Contrast {Multiple Instruction/Multiple Data}.

	(1994-11-04)

Single-line Digital Subscriber Line

	<communications, protocol> (SDSL, or Single-pair High Speed
	Digital Subscriber Line, S-HDSL) A form of {Digital Subscriber
	Line} similar to {HDSL} but providing {T1} or {E1} connections
	over a single {twisted-pair} copper line.

	(1998-05-18)

Single-pair High Speed Digital Subscriber Line

	{Single-line Digital Subscriber Line}

single program/multiple data

	<parallel, architecture> (SPMD) A kind of {parallel
	processing} where the same program is run on multiple
	processors.  Every instance of the program knows which part of
	the computation it should perform and the results of the
	computation are combined somehow.

	(2002-04-21)

single quote

	<character> "'" {ASCII} character 39.

	Common names include single quote; quote; {ITU-T}: apostrophe.
	Rare: prime; glitch; tick; irk; pop; {INTERCAL}: spark;
	{ITU-T}: closing single quotation mark; {ITU-T}: acute accent.

	Single quote is used in {C} and derived languages to introduce
	a single character {literal value} which is represented
	internally by its ASCII code.  In the {Unix} {shells} and
	{Perl} single quote is used to delimit strings in which
	variable substitution is not performed (in contrast to
	{double-quote}-delimited strings).

	Single quote is often used in text for both open and close
	single quotation mark and apostrophe.  Typesetters use two
	different symbols - open has a tail going up, close and
	apostrophe have tails hanging down (like a raised {comma}).
	Some people use {back quote} (`) for open single quotation
	mark.

	(1998-04-04)

single sign-on

	<security> (SSO) Any user authentication system permiting
	users to access multiple data sources through a single point
	of entry.  Part of an integrated access management framework.

	(2003-12-31)

single sourcing

	<publication> Using a single original document set to generate
	{dead tree} and on-line {documentation}, and usually also
	on-line help.  In practice, it most often refers to a
	{FrameMaker} file set with {conditional text} which, when the
	conditions are set appropriately, allows you to create
	variants of the original document (e.g., for a product that
	runs on different {Unix} {platforms}) as well as for different
	media -- typically task-oriented on-line help to be accessed
	under {Microsoft Windows} or from a {web browser}, linear
	printed document, and {HTML} delivered via the {WWW} and/or
	{CD-ROM}.

single static assignment

	<compiler> (Also known as SSA form) A special form of code
	where each variable has only one single definition in the
	program code. "Static" comes from the fact that the definition
	site may be in a loop, thus dynamically executed several
	times.

	SSA form is used for program optimization or {static analysis}
	and {optimisation}.

	(2003-04-12)

singleton variable

	<programming> A {variable} which is only referred to once in a
	piece of code, probably because of a programming mistake.  To
	be useful, a variable must be set and read from, in that
	order.  If it is only referred to once then it cannot be both
	set and read.

	There are various exceptions.  {C}-like {assignment
	operators}, e.g. "x += y", read and set x and return its new
	value (they are abbreviations for "x = x+y", etc).  A
	{function} {argument} may be passed only for the sake of
	uniformity or to support future enhancements.  A good
	{compiler} or a {syntax} checker like {lint} should report
	singleton variables but also allow specific instances to be
	marked as deliberate by the programmer.

	(1997-12-20)

Single Virtual Storage

	{OS/VS2}

siod

	<language> (Scheme In One Defun or Scheme In One Day)
	A small {Scheme} implementation in {C} by George Carrette
	<gjc@world.std.com>, <gjc@mitech.com>.  SIOD is arranged as a
	set of subroutines that can be called from any main program
	for the purpose of introducing an interpreted extension
	language.  It compiles to 20 kbytes of executable
	({VAX}/{VMS}).  {Lisp} calls {C} and C calls Lisp
	transparently.

	SIOD supports symbols, strings, {arrays}, {hash coding}, file
	i/o (binary, text, seek), data save/restore in binary and
	text, interface to commercial {databases} such {Oracle} and
	{Digital} {RDB}.

	Version 3.0 runs on {VAX}/{VMS},{Unix}, {Sun-3}, {Sun-4},
	{Amiga}, {Macintosh}, {MIPS}, {Cray}, {ALPHA}/{VMS}, {Windows
	NT} and {OS/2}.  It can be compiled by most {ANSI C} compilers
	and {C++} compilers, e.g. {gcc} -Wall.

	{(ftp://world.std.com/pub/gjc/)},
	{(ftp://world.std.com/src/lisp/)}.

	{Usenet} newsgroup: {news:comp.lang.scheme}.

	(1994-02-18)

SIP

	1. <protocol> {Session Initiation Protocol}.

	2. <text, standard> {Supplementary Ideographic Plane}.

	(2003-12-26)

SIPB

	Student Information Processing Board, {MIT}.

	{(http://mit.edu:8001/afs/athena.mit.edu/user/r/e/rei/WWW/GAME/sipbroom.html)}.

SIPLAN

	SIte PLANning computer language.  Interactive language for
	space planning.  "Formal Languages for Site Planning",
	C.I. Yessios in Spatial Synthesis for Computer-Aided Design,
	C. Eastman ed, Applied Science Publ 1976.

SIPP

	{Single Inline Pin Package}

SI prefix

	<unit, standard> The {standard} metric prefixes used in the
	{Système International d'Unités} (SI) conventions for
	scientific measurement.

	Here are the SI magnifying prefixes, along with the
	corresponding binary interpretations in common use:

	 prefix abr decimal  binary

	 yocto-     1000^-8
	 zepto-     1000^-7
	 atto-      1000^-6
	 femto-  f  1000^-5
	 pico-   p  1000^-4
	 nano-   n  1000^-3
	 micro-  *  1000^-2          * Abbreviation: Greek mu
	 milli-  m  1000^-1

	 kilo- 	 k  1000^1  1024^1 = 2^10 = 1,024
	 mega- 	 M  1000^2  1024^2 = 2^20 = 1,048,576
	 giga- 	 G  1000^3  1024^3 = 2^30 = 1,073,741,824
	 tera- 	 T  1000^4  1024^4 = 2^40 = 1,099,511,627,776
	 peta- 	    1000^5  1024^5 = 2^50 = 1,125,899,906,842,624
	 exa-  	    1000^6  1024^6 = 2^60 = 1,152,921,504,606,846,976
	 zetta-     1000^7  1024^7 = 2^70 = 1,180,591,620,717,411,303,424
	 yotta-     1000^8  1024^8 = 2^80 = 1,208,925,819,614,629,174,706,176

	"Femto" and "atto" derive not from Greek but from Danish.

	The abbreviated forms of these prefixes are common in
	electronics and physics.

	When used with bytes of storage, these prefixes usually denote
	multiplication by powers of 1024 = 2^10 (K, M, G and T are
	common in computing).  Thus "MB" stands for megabytes (2^20
	bytes).  This common practice goes against the edicts of the
	{BIPM} who deprecate the use of these prefixes for powers of
	two.  The formal SI prefix for 1000 is lower case "k"; some,
	including this dictionary, use this strictly, reserving upper
	case "K" for multiplication by 1024 (KB is thus "kilobytes").

	Also, in data transfer rates the prefixes stand for powers of
	ten so, for example, 28.8 kb/s means 28,800 bits per second.

	The unit is often dropped so one may talk of "a 40K salary"
	(40000 dollars) or "2 meg of disk space" (2*2^20 bytes).

	The accepted pronunciation of the initial G of "giga-" is
	hard, /gi'ga/.

	Confusing 1000 and 1024 (or other powers of 2 and 10 close in
	magnitude) - for example, describing a memory in units of 500K
	or 524K instead of 512K - is a sure sign of the {marketroid}.
	For example, 3.5" {microfloppies} are often described as
	storing "1.44 MB".  In fact, this is completely specious.  The
	correct size is 1440 KB = 1440 * 1024 = 1474560 bytes.  Alas,
	this point is probably lost on the world forever.

	In 1993, hacker Morgan Burke proposed, to general approval on
	{Usenet}, the following additional prefixes: groucho (10^-30),
	harpo (10^-27), harpi (10^27), grouchi (10^30).  This would
	leave the prefixes zeppo-, gummo-, and chico- available for
	future expansion.  Sadly, there is little immediate prospect
	that Mr. Burke's eminently sensible proposal will be ratified.

	(2009-09-01)

Siprol

	Signal Processing Language.  A DSP language.

	["SIPROL: A High Level Language for Digital Signal
	Processing", H. Gethoffer, Proc ICASSP-80, 1980,
	pp.1056-1059].

SIR

	1. <language> An early system on the {IBM 650}.

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

	2. <standard> Serial Infrared.  An {infrared} {standard} from
	{IrDA}, part of {IrDA Data}.  SIR supports {asynchronous}
	communications at 9600 bps - 115.2 Kbps, at a distance of up
	to 1 metre.

	[Reference?]

	(1999-10-14)

SIRDS

	{Single Image Random Dot Stereogram}

Siri

	An {object-oriented} {constraint language} using a single
	abstraction mechanism developed by Bruce Horn of {CMU} in
	1991.  Siri is a conceptual blend of {BETA} and {Bertrand}.
	It is similar to {Kaleidoscope}.

	["Constraint Patterns as a Basis for Object-Oriented
	Constraint Programming", B. Horn, OOPSLA '92 (Sept 1992)].

	(1994-11-04)

SIRTS

	{Single Image Random Text Stereogram}.  (Or {ASCII}
	{stereogram}).

SISAL

	<language> (Streams and Iteration in a Single Assignment
	Language) A general-purpose {single assignment} {functional
	programming language} with {strict} semantics, automatic
	parallelisation and efficient {arrays}.  Outputs a dataflow
	graph in {IF1} (Intermediary Form 1).  Derived from {VAL},
	adds {recursion} and finite {streams}.  {Pascal}-like syntax.
	Designed to be a common high-level language for numerical
	programs on a variety of {multiprocessors}.

	Implementations exist for {Cray X-MP}, {Cray Y-MP}, {Cray-2},
	{Sequent}, {Encore Alliant}, {dataflow} architectures,
	{transputers} and {systolic arrays}.

	Defined in 1983 by James McGraw et al, {Manchester
	University}, {Lawrence Livermore National Laboratory},
	{Colorado State University} and {DEC}.  Revised in 1985.
	First compiled implementation in 1986.  Performance superior
	to {C} and competitive with {Fortran}, combined with efficient
	and automatic parallelisation.

	Not to be confused with {SASL}.

	E-mail: John Feo <feo@llnl.gov>, Rod Oldehoeft
	<rro@cs.colostate.edu>.

	David C. Cann has written an {Optimising SISAL Compiler
	(ftp://sisal.llnl.gov/pub/sisal)} (OSC) which attempts to make
	efficient use of {parallel processors} such as {Crays}.

	Latest version: 12.0, SISAL 1.2.

	["A Report on the SISAL Language Project", J.T. Feo et al, J
	Parallel and Distrib Computing 10(4):349-366 (Dec 1990)].

	(2000-07-07)

sit

	{Stuffit}

SITBOL

	<language> A {SNOBOL4} {interpreter} for the {PDP-10}.

	["SITBOL Version 3.0", J.F. Gimpel, TRS4D30b, Bell Labs,
	1973].

	(1997-09-14)

site map

	<World-Wide Web> A {web page} listing the other main pages on
	a {web site} to help users find pages they want and see what
	areas are available.

	FOLDOC doesn't really have a site map but it does have a
	{contents page (/contents.html)}.

	(2009-03-07)

sitename

	{hostname}

SIxteen Bit Organisers

	<communications> (SIBO) {Psion}'s family of {PDA}s running
	{EPOC}, including the MC200, MC400, Series 3 (1991-1998),
	Series 3a, Series 3c, Series 3mx, Siena, Workabout and
	Workabout mx.

	(2009-05-26)

sj

	<networking> The {country code} for Svalbard and Jan Mayen
	Islands.

	(1999-01-27)

sk

	<networking> The {country code} for Slovakia.

	(1999-01-27)

Skel-ML

	A parallel variant of {ML} using {skeletons} being developed
	(April 1994) as part of Tore Bratvold's PhD in the Department
	of Computing and Electronic Engineering, Heriot-Watt
	University, Edinburgh, UK.  Programs are written in a subset
	of {Standard ML}, and parallelism is extracted from the use of
	certain {higher-order functions}.  The SkelML compiler uses
	profiling information together with skeleton performance
	models to distinguish useful from non-useful parallelism.  An
	important feature is the ability to perform transformations
	between skeletons to improve performance.  Skeletons currently
	supported are map, filter, fold, pipe (implicitly extracted
	from function application) and various combinations of these.

	See also {paraML}.

	E-mail: Tore A Bratvold <tore@cee.hw.ac.uk>.

Sketchpad

	A program that allowed users to draw on a screen with a {light
	pen}.  It supported constraints (e.g. drawing a constrained
	ellipse produced a circle).  It also had some {computer aided
	design} features (e.g. computing loads on beams).

	Sketchpad was the subject of {Ivan E. Sutherland}'s 1963 {MIT}
	PhD thesis, which opened the field of {computer graphics}.  It
	was the progenitor of computer drawing packages like {MacDraw}
	or {Adobe Illustrator}.  There is a film of Sketchpad in
	action.

	It solved {constraints} using {value inference} and introduced
	the "{ring}" list structure.

	["Sketchpad: A Man-Machine Graphical Communication System",
	I.e. Sutherland, MIT Lincoln Lab, TR 296 (Jan 1963)].

	[Sammet 1969, p. 678].

	(1995-02-14)

S/Key

	{One-Time Password}

Skill

	A somewhat peculiar blend between {Franz-Lisp} and {C}, with a
	large set of various {CAD} primitives.  It is owned by
	{Cadence Design Systems} and has been used in their CAD
	frameworks since 1985.  It's an {extension language} to the
	CAD framework (in the same way that {Emacs-Lisp} extends {GNU
	Emacs}), enabling you to automate virtually everything that
	you can do manually in for example the graphic editor.  Skill
	accepts {C}-syntax, fun(a b), as well as {Lisp} syntax, (fun a
	b), but most users (including Cadence themselves) use the
	C-style.

	[Jonas Jarnestrom <etxjojm@eua.ericsson.se>].

	(1995-02-14)

Skim

	<language> A {Scheme} implementation with {packages} and other
	enhancements, by Alain Deutsch et al, France.

	(2000-11-02)

SkipJack

	<cryptography> An {encryption} {algorithm} created by the NSA
	(National Security Agency) which encrypts 64-bit blocks of
	data with an 80-bit key.  It is used in the {Clipper} chip, a
	{VLSI} device with an {ARM} processor core, which is intended
	to perform cryptographic operations while allowing the
	security agencies listen in.

	There are (apparently) two agencies, both of whom have to
	agree that there is a valid reason to decode a message.  Don't
	laugh, they are serious.

	[Algorithm?]

	(1995-12-07)

SKOL

	{Fortran} pre-processor for {COS} (Cray Operating System).

skolemisation

	A means of removing {quantifiers} from {first order logic}
	formulas.

	[Details?]

S-K reduction machine

	An {abstract machine} defined by Professor {David Turner} to
	evaluate {combinator} expressions represented as {binary
	graphs}.  Named after the two basic combinators, S and K.

skrog

	{scrog}

SKsh

	Steve Koren/Korn shell.  A {Unix} {ksh}-like {shell} which
	runs under {AmigaDos} by Steve Koren
	<koren@hpfcogv.fc.hp.com>.  SKsh provides a {Unix}-like
	environment but supports many {AmigaDos} features such as
	{resident commands} and {ARexx}.  Scripts can be written to
	run under either {ksh} or SKsh and many of the useful {Unix}
	commands such as {xargs}, {grep} and {find} are provided.

	Latest version: 2.1.

	{(ftp://hubcap.clemson.edu/pub/amiga/incom*/utils/SKsh021.lzh)}.

	(1992-12-16)

SKU

	{stock-keeping unit}

skulker

	{prowler}

SL

	<processor> Features of some {Intel} processors, including the
	{Pentium}, for reducing power consumption.  These features
	operate at two levels: the {microprocessor} and the system.
	The processor can enter a low power state during
	non-{processor intensive} tasks (such as {word processing}),
	or a very low-power state when the computer is not in use
	("sleep" mode).  At the system level, {system management mode}
	can slow down, suspend, or completely shut down various system
	components to save energy.

	(1995-05-06)

sl

	<networking> The {country code} for Sierra Leone.

	(1999-01-27)

SL5

	String and list processing language with expression-oriented
	syntax.  Coroutines.

	["An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices
	12(4):40-50 (Apr 1977)].

slack

	1. <operating system> Internal fragmentation.  Space allocated
	to a disk file but not actually used to store useful
	information.

	2. <jargon> In the theology of the {Church of the SubGenius},
	a mystical substance or quality that is the prerequisite of
	all human happiness.

	Since {Unix} files are stored compactly, except for the
	unavoidable wastage in the last block or fragment, it might be
	said that "Unix has no slack".

	See {ha ha only serious}.

	[{Jargon File}]

	(1995-03-01)

slackware

	<operating system> A distribution of the {Linux} {operating
	system} by Patrick Volkerding
	<volkerdi@mhd1.moorhead.msus.edu>, <volkerdi@ftp.cdrom.com>.

	{cdrom.com (ftp://ftp.cdrom.com/pub/linux/)}.

	{FAQ
	(ftp://sunsite.unc.edu/pub/Linux/distributions/slackware/SLAKWARE.FAQ)}.

	{Sunsite Linux archives
	(http://sunsite.unc.edu/pub/Linux/distributions/slackware/)}.

	{Sunsite mirrors
	(http://sunsite.unc.edu/pub/Linux/MIRRORS.html)}.

	(1995-03-01)

SLAM

	1. <language> {Simulation Language for Alternative
	Modeling}.

	2. A continuous simulation language.

	["SLAM - A New Continuous Simulation Language",
	N.A. Wallington et al, in SCS Simulation Council Proc Series:
	Toward Real-Time Simulation (Languages, Models and Systems),
	R.E. Crosbie et al eds, 6(1):85-89 (Dec 1976)].

	(1995-03-03)

SLANG

	1. R.A. Sibley.  CACM 4(1):75-84 (Jan 1961).

	2. Set LANGuage.  Jastrzebowski, ca 1990.  C extension with
	set-theoretic data types and garbage collection.  "The SLANG
	Programming Language Reference Manual, Version 3.3",
	W. Jastrzebowski <wojtek@loml.math.yale.edu>, 1990.

	3. Structured LANGuage.  Michael Kessler, IBM.  A language
	based on structured programming macros for IBM 370 assembly
	language.  "Project RMAG: SLANG (Structured Language)
	Compiler", R.A. Magnuson, NIH-DCRT-DMB-SSS-UG105, NIH, DHEW,
	Bethesda, MD 20205 (1980).

	4. "SLANG: A Problem Solving Language for Continuous-Model
	Simulation and Optimisation", J.M. Thames, Proc 24th ACM Natl
	Conf 1969.

S-Lang

	<language> A small but highly functional {embedded}
	{interpreter}.  S-Lang was a stack-based {postfix} language
	resembling {Forth} and {BC}/{DC} with limited support for
	{infix notation}.  Now it has a {C}-like infix syntax.
	{Arrays}, stings, integers, {floating-point} and {autoloading}
	are all suported.  The editor {JED} embeds S-lang.

	S-Lang is available under the {GNU Library General Public
	License}.  It runs on {MS-DOS}, {Unix}, and {VMS}.

	Latest version: 0.94, as of 1993-06-12.

	{(ftp://amy.tch.harvard.edu/)}.

	E-mail: John E. Davis <davis@tch.harvard.edu>.

	(2000-10-30)

slap on the side

	(Also called a {sidecar}, or abbreviated "SOTS").  A type of
	external expansion hardware marketed by computer manufacturers
	(e.g. {Commodore} for the {Amiga} 500/1000 series and {IBM} for
	the hideous failure called {IBM PCjr}).  Various SOTS boxes
	provided necessities such as memory, hard drive controllers,
	and conventional expansion slots.

	[{Jargon File}]

slash

	{oblique stroke}

slashdot effect

	<jargon> An effect where a document on a {WWW} {server} is
	linked to from another, popular, site, with the resultant
	traffic overloading the server so that a connection cannot be
	made to it.  This is especially likely if the server is
	running {Microsoft IIS}.

	The term was coined by readers of the {Unix} advocacy {web
	site} {slashdot.org (http://slashdot.org/)}.

	(1998-10-24)

slave tty

	(/dev/ttyp*) The half of a {pseudo-tty} which programs
	(e.g. getty) read from and write to as though it was an
	ordinary {serial line}.

SLD resolution

	<logic, programming> (Selected, Linear, Definite) {Linear
	resolution} with a {selection function} for {definite
	sentences}.

	A definite sentence has exactly one {positive literal} in each
	{clause} and this literal is selected to be resolved upon,
	i.e. replaced in the {goal} clause by the {conjunction} of
	{negative literals} which form the body of the clause.

	[Why is SLD resolution important?]

	(2003-12-04)

sleep

	1. <operating system, multitasking> (Or "{block}") When a
	{process} on a {multitasking} system asks the {scheduler} to
	deactivate it until some given external event (e.g. an
	{interrupt} or a specified time delay) occurs.

	The alternative is to {poll} or "{busy wait}" for the event
	but this uses processing power.

	Also used in the phrase "sleep on" (or "block on") some
	external event, meaning to wait for it.

	E.g. the {Unix} command of the same name which pauses the
	current process for a given number of seconds.

	2. <hardware> To go into partial deactivation to save power.

	[{Jargon File}]

	(2000-09-25)

SLIB

	{Scheme Library}

Slide

	<project> A now-retired {Jakarta} project to develop a
	repository for content management.  Slide is no longer in
	development.  It featured {WebDAV}, DeltaV WebDAV versioning,
	different databases and file system storage, transactions and
	locking, flexible permissions per file and more.

	{Slide home (http://jakarta.apache.org/slide/)}.

	(2008-06-04)

sliding-window

	<networking> A method of {flow control} in which a {receiver}
	gives a {transmitter} permission to transmit {data} until a
	{window} is full.  When the window is full, the transmitter
	must stop transmitting until the receiver advertises a larger
	window.

	{TCP}, other transport {protocols}, and several {link-layer
	protocols} use this method of flow control.

	(2002-12-02)

SLIM

	A VLSI language for translating DFA's into circuits.
	J.L. Hennessy, "SLIM: A Simulation and Implementation Language
	for VLSI Microcode", Lambda, Apr 1981, pp.20-28.

	[{Jargon File}]

slim

	<jargon> A small, derivative change (e.g. to code).

	(2003-05-13)

Slingshot

	<networking, business, tool, product, protocol> {CSK
	Software}'s {real time} financial server for the {Internet}.

	Slingshot allows the delivery of real time market data across
	the {Internet} and private {intranets} quickly, cheaply and
	securely.  The first beta-test version was released free to
	the Internet on 6 August 1996.  Slingshot allows any financial
	institution, regardless of size, to publish their rates and
	associated information to a global audience using standard
	Internet protocols and software.  The {real-time} data can be
	seamlessly integrated into any standard {World-Wide Web}
	application and thus combined with static text, database
	queries and even audio and video objects, to create services.

	The Slingshot protocol enables the delivery of other forms of
	real time data over the Internet, thus making Slingshot useful
	in industries as varied as manufacturing, betting, telemetry,
	weather, transport and medicine.

	Version 2's improved protocol minimises the required
	{bandwidth} and can go through {firewalls}, {proxies}, and
	{virus scanners}, making Slingshot real-time data accessible
	everywhere where normal web access is possible.

	(2003-05-13)

SLIP

	1. {Serial Line Internet Protocol}.

	2. Symmetric LIst Processsor.  Early 1960's list processing
	subroutine package for {Fortran} by J. Weizenbaum.  Later also
	embedded in {MAD} and {ALGOL}.  ["Symmetric List Processor",
	J. Weizenbaum CACM 6:524-544(1963).  Sammet 1969, p.387].

SlipKnot

	<web> A graphical {World-Wide Web} {browser} specifically
	designed for {Microsoft Windows} users who have {Unix} {shell
	accounts} with their service providers.  Its primary feature
	is that it does not require {SLIP} or {PPP} or {TCP/IP}
	services.  SlipKnot is distributed as restricted shareware.

	Version: 1.0.

	{SlipKnot home (http://micromind.com/slipknot.htm)}.

	E-mail: <slipknot@micromind.com>.

	(2003-03-25)

SLIPS

	"An Interpreter for SLIPS - An Applicative Language Based on
	Lambda-Calculus", V. Gehot et al, Comp Langs 11(1):1-14
	(1986).

SLiRP

	<networking, tool> A {SLIP emulator} by Danny Gasparovski,
	faster than {TIA}.

	Version: 0.95H 12 Sep 95.

	{(http://webcom.com/~llarrow/slirp.html)}.

	(1995-09-15)

SLLIC

	<language> An intermediate language developed at {HP}.  An
	infinite-register version of the {Precision Architecture}
	{instruction set}?

	(1995-05-28)

slog

	{Schelog}

Sloop

	"Parallel Programming in a Virtual Object Space", S. Lucco,
	SIGPLAN Notices 22(12):26-34 (OOPSLA '87) (Dec 1987).

slop

	<jargon> 1. A one-sided {fudge factor}, that is, an allowance
	for error but in only one of two directions.  For example, if
	you need a piece of wire 10 feet long and have to guess when
	you cut it, you make very sure to cut it too long, by a large
	amount if necessary, rather than too short by even a little
	bit, because you can always cut off the slop but you can't
	paste it back on again.  When discrete quantities are
	involved, slop is often introduced to avoid the possibility of
	being on the losing side of a {fencepost error}.

	2. The percentage of "extra" code generated by a compiler over
	the size of equivalent {assembly code} produced by
	{hand-hacking}; i.e. the space (or maybe time) you lose because
	you didn't do it yourself.  This number is often used as a
	measure of the quality of a compiler; slop below 5% is very
	good, and 10% is usually acceptable.  Modern compilers,
	especially on {RISCs}, may actually have *negative* slop; that
	is, they may generate better code than humans.  This is one of
	the reasons assembler programming is becoming less common.

	[{Jargon File}]

	(1995-05-28)

slopsucker

	/slop'suhk-r/ A lowest-{priority} task that only runs when the
	computer would otherwise be idle.  Also called a "hungry
	puppy" or "bottom feeder" (after the fishermen's and
	naturalists' term for finny creatures who subsist on the
	primordial ooze).

	One common variety of slopsucker hunts for large {prime
	numbers}.

	Compare {background}.

	[{Jargon File}]

	(2003-09-29)

slosh

	{backslash}

Slot 1

	<hardware, standard> The physical and electrical specification
	for the connector used by some of {Intel}'s {microprocessor}
	cards, currently (August 1999) the {SEPP} {Celeron} and the
	{SECC} {Pentium II}.

	Slot 1 is a departure from the square {ZIF} {PGA}/{SPGA}
	sockets used by {Pentium} and earlier processors, the
	processor being mounted on a card, with a 242-lead
	edge-connector.

	The Slot 1 specification allows for higher {bus rates} than
	{Socket 7}.  Slot 1 motherboards use the {GTL+} {bus
	protocol}.

	See also {Slot 2}, {Slot A}.

	[bus rates?]

	(1999-08-04)

Slot 2

	<hardware, standard> A physical and electrical specification
	for the 330-lead edge-connector used by some of {Intel}'s
	{microprocessor} cards, currently (August 1999) the {SECC}
	{Pentium III}/{Xeon}.

	Slot 2 is intended for use in high end multi-processor
	{workstations} and {servers}.

	See also {Slot A}, {Slot 1}.

	[Multi processor support?]

	(1999-08-04)

Slot A

	<hardware> The physical and electrical specification for the
	edge-connector used by {AMD}'s {Athlon} processor.

	The connector allows for a higher {bus rate} than {Socket 7}
	or {Super 7}.  Slot A motherboards use {Compaq}'s {EV6} {bus
	protocol}.  Slot A is mechanically compatible but electrically
	incompatible with {Intel}'s {Slot 1}.

	(1999-08-05)

slurp

	To read a large data file entirely into {core} before working
	on it.  This may be contrasted with the strategy of reading a
	small piece at a time, processing it, and then reading the
	next piece.  "This program slurps in a 1K-by-1K matrix and
	does an FFT."  See also {sponge}.

	[{Jargon File}]

sm

	<networking> The {country code} for San Marino.

	(1999-01-27)

smail

	{snail-mail}

SMALGOL

	SMall ALGOL.

	A subset of {ALGOL 60}.

	["SMALGOL-61", G.A. Bachelor et al CACM 4(11):499-502 (Nov
	1961)].

	[Sammet 1969].

	(1995-01-31)

SMALL

	1. Functional, lazy, untyped.

	["SMALL - A Small Interactive Functional System",
	L. Augustsson, TR 28, U Goteborg and Chalmers U, 1986].

	2. A {toy language} used to illustrate {denotational
	semantics}.

	["The Denotational Description of Programming Languages",
	M.J.C. Gordon, Springer 1979].

Small Business Edition

	{Microsoft Office Small Business Edition}

Small-C

	A subset of {C}.  The original compiler, written in {C} by Ron
	Cain, appeared in Dr. Dobb's Journal.  James E. Hendrix
	improved and extended the original compiler and published "The
	Small-C Handbook".  Both these compilers produced {8080}
	{assembly code}.

	A Small-C compiler based on {RatC} produced {6502} {assembly
	code} for the {BBC Microcomputer}.  It was written in Small-C
	and {bootstrap}ped using {Zorland C} on an {Amstrad PC1512}
	under {MS-DOS} 3.2, then transferred onto a {BBC Micro} using
	{Kermit}.  The compiler can be used to cross-compile {6502}
	code from an {MS-DOS} host, or as a {resident} Small-C
	compiler on a BBC Micro.  It runs on {68000}, {6809}, {VAX},
	{8080}, {BBC Micro} and {Zilog Z80}.

	Posted to comp.sources.unix volume 5.

	{(ftp://apple.com/ArchiveVol1/Unix_lang)}.

	["Small-C"?, Ron Cain, Dr. Dobb's Journal, May 1980, Dec
	1982?]

	["The Small-C Handbook," James Hendrix, Reston 1984, ISBN
	0-8359-7012-4].

	(1989-01-05)

Small Computer System Interface

	<hardware, standard> (SCSI) /skuh'zee/, /sek'si/ The most
	popular processor-independent standard, via a parallel bus,
	for system-level interfacing between a computer and
	intelligent devices including {hard disks}, {floppy disks},
	{CD-ROM}, {printers}, {scanners}, and many more.

	SCSI can connect multiple devices to a single {SCSI adaptor}
	(or "host adaptor") on the computer's bus. SCSI transfers bits
	in parallel and can operate in either {asynchronous} or
	{synchronous} modes.  The synchronous transfer rate is up to
	5MB/s.  There must be at least one {target} and one
	{initiator} on the SCSI {bus}.

	SCSI connections normally use "{single ended}" drivers as
	opposed to {differential drivers}.  Single ended SCSI can
	suport up to six metres of cable.  Differential ended SCSI can
	support up to 25 metres of cable.

	SCSI was developed by {Shugart Associates}, which later became
	{Seagate}.  SCSI was originally called SASI for "Shugart
	Associates System Interface" before it became a standard.

	Due to SCSI's inherent protocol flexibility, large support
	infrastructure, continued speed increases and the acceptance
	of SCSI Expanders in applications it is expected to hold its
	market.

	The original standard is now called "SCSI-1" to distinguish it
	from {SCSI-2} and {SCSI-3} which include specifications of
	{Wide SCSI} (a 16-bit bus) and {Fast SCSI} (10 MB/s transfer).

	SCSI-1 has been standardised as {ANSI} X3.131-1986 and
	{ISO}/{IEC} 9316.

	A problem with SCSI is the large number of different
	connectors allowed.  Nowadays the trend is toward a 68-pin
	{miniature D-type} or "high density" connector (HD68) for
	{Wide SCSI} and a 50-pin version of the same connector (HD50)
	for 8-bit SCSI (Type 1-4, pin pitch 1.27 mm x 2.45 mm).
	50-pin {ribbon cable} connectors are also popular for internal
	wiring (Type 5, pin pitch 2.54 mm x 2.54 mm).  {Apple
	Computer} used a 25-pin connector on the {Macintosh} computer
	but this connector causes problems with high-speed equipment.
	Original SCSI implementations were highly incompatible with
	each other.

	{ASPI} is a standard {Microsoft Windows} interface to SCSI
	devices.

	{Usenet} newsgroup: {news:comp.periphs.scsi}.

	{(news:comp.periphs.scsi)}.
	SCSI Trade Association & FAQ {(http://scsita.org/)}.

	["System" or "Systems"?]

	(1999-03-30)

small-office/home-office

	(SoHo) A term describing the market for certain computer goods.

	(1995-01-11)

Small Outline DIMM

	<storage> (SO-DIMM) A smaller kind of {DIMM} with 72 pins
	(supporting 32-bit transfers) or 144 pins (64-bit transfers).
	Regular DIMMs have 168 pins and support 64-bit transfers.
	Being roughly half the size of the regular DIMM, SO-DIMMs are
	often used in {notebook computers}.

	{Kingston Memory Guide
	(http://kingston.com/tools/umg/newumg05a.asp)}.

	(2001-02-16)

Smalltalk

	<language> The pioneering {object-oriented programming} system
	developed in 1972 by the Software Concepts Group, led by {Alan
	Kay}, at {Xerox PARC} between 1971 and 1983.  It includes a
	language, a programming environment, and an extensive object
	library.

	Smalltalk took the concepts of {class} and {message} from
	{Simula-67} and made them all-pervasive.  Innovations included
	the {bitmap display}, windowing system, and use of a {mouse}.

	The {syntax} is very simple.  The fundamental construction is
	to send a message to an {object}:

		object message

	or with extra parameters

		object message: param1 secondArg: param2 .. nthArg: paramN

	where "secondArg:" etc. are considered to be part of the
	message name.

	Five pseudo-variables are defined: "self", "super", "nil",
	"true", "false".  "self" is the receiver of the current
	message.  "super" is used to delegate processing of a message
	to the {superclass} of the receiver.  "nil" is a reference to
	"nothing" (an instance of UndefinedObject).  All variables
	initially contain a reference to nil.  "true" and "false" are
	{Booleans}.

	In Smalltalk, any message can be sent to any object.  The
	recipient object itself decides (based on the message name,
	also called the "message selector") how to respond to the
	message.  Because of that, the {multiple inheritance} system
	included in the early versions of Smalltalk-80 appeared to be
	unused in practice.  All modern implementations have single
	inheritance, so each class can have at most one superclass.

	Early implementations were {interpreted} but all modern ones
	use {dynamic translation} (JIT).

	Early versions were Smalltalk-72, Smalltalk-74, Smalltalk-76
	(inheritance taken from Simula, and concurrency), and
	Smalltalk-78, {Smalltalk-80}.  Other versions include {Little
	Smalltalk}, {Smalltalk/V}, {Kamin's interpreters}.  Current
	versions are {VisualWorks}, {Squeak}, {VisualAge}, {Dolphin
	Smalltalk}, {Object Studio}, {GNU Smalltalk}.

	See also: {International Smalltalk Association}.

	{UIUC Smalltalk archive (http://st-www.cs.uiuc.edu/)}.
	{FAQ (http://XCF.Berkeley.EDU/pub/misc/smalltalk/FAQ/)}.

	{Usenet} newsgroup: {news:comp.lang.smalltalk}.

	["The Smalltalk-76 Programming System Design and
	Implementation", D.H. Ingalls, 5th POPL, ACM 1978, pp. 9-16].

	(2001-09-11)

Smalltalk-80

	<language> The classic standard {Smalltalk} dialect, described
	in Adele's book, cited below, commonly known as "The Blue
	Book".

	["Smalltalk-80: The Language and Its Implementation", Adele
	Goldberg et al, A-W 1983].

	[BYTE 6(8), Aug 1981].

	{(ftp://st.cs.uiuc.edu/pub/ISA)},
	{(ftp://st.cs.uiuc.edu/pub/Smalltalk/MANCHESTER)},
	{(ftp://gnu.org/pub/gnu)}.

	Mail server: goodies-lib@r5.cs.man.ac.uk.

	(2004-12-14)

Smalltalk/V

	The first widely available version of {Smalltalk}, developed
	by {Digitalk} in 1986 for {IBM PC} and {Macintosh}.

	(1995-02-14)

SmallVDM

	<tool>

	["SmallVDM: An Environment for Formal Specification and
	Prototyping in Smalltalk", in Object Oriented Specification
	Case Studies, K. Lano et al eds, P-H 1993].

	(1996-04-20)

SMALLWORLD

	<legal> A trademark of {Smallworldwide
	Plc. (http://smallworld.co.uk/)}.

	(1999-08-26)

SmallWorld

	<language> An {object-oriented} language.

	["SW 2 - An Object-based Programming Environment", M.R. Laff
	et al, IBM TJWRC, 1985].

	(1996-04-20)

Smarandache logic

	{neutrosophic logic}

SMART

	For {MS-DOS}?

	[{Jargon File}]

smart

	1. <programming> Said of a program that does the {Right Thing}
	in a wide variety of complicated circumstances.  There is a
	difference between calling a program smart and calling it
	intelligent; in particular, there do not exist any intelligent
	programs (yet - see {AI-complete}).

	Compare {robust} (smart programs can be {brittle}).

	2. <hardware> Incorporating some kind of digital electronics.

	(1995-03-28)

Smart Battery Data

	<hardware, protocol> (SBD) A method to monitor a rechargeable
	battery pack, initiated by {Duracell} and {Intel}.  An special
	{IC} in the battery pack monitors the battery and reports
	information to the {SMBus}.  This information might include:
	type, model number, manufacturer, characteristics, discharge
	rate, predicted remaining capacity, almost-discharged alarm so
	that the PC can shut down gracefully; temperature and voltage
	to provide safe fast-charging.

	{Smart Battery System Implementers Forum
	(http://sbs-forum.org/)}.

	(1999-08-08)

smart card

	Any plastic card (like a credit card) with an embedded
	{integrated circuit} for storing information.

	Smart cards are being incorporated into soldier's dog-tags and
	used to store hospital patients' medical records.  This way
	they are always instantly accessible.

	Other uses are as a form of token in banking systems.  You
	could store electronic money on the card or less valuable
	tokens such as those given away by petrol companies which you
	collect to exchange for free gifts at a later date.  The idea
	being that one smart card is easier to carry around than a
	multitude of paper tokens.

	{news:alt.technology.smartcards}

	(1995-01-06)

Smartdrive

	<storage, product> A {Microsoft} {MS DOS} {disk cache} program
	to speed up disk access.

	For most users, a 1MB cache is sufficient.  Devoting more
	memory to the cache offers diminishing returns, since the
	additional cache hits become fewer (and the extra memory could
	be better used to reduce {swapping}).

	Typing SMARTDRV /S at a DOS prompt shows the cache size, a
	hit-and-miss report, and information about which drives are
	being cached.  The hit-and-miss statistics are crucial for
	gauging the effectiveness of SmartDrive settings.  A score in
	the high 80s shows that SmartDrive is well configured.  Run
	SMARTDRV /S several times during a Windows session and note
	the-hit-and-miss figures each time.  If your percentage
	usually falls below 80 percent, you should consider increasing
	the cache size.  You can edit the SMARTDRV line in your
	{AUTOEXEC.BAT} file to increase both the InitCacheSize and the
	WinCacheSize parameters.

	SmartDrive Monitor is an undocumented Windows program that
	comes with DOS 6.0 for logging and controling the cache.

	(1995-11-22)

SMARTdrv

	{Smartdrive}

smart terminal

	{intelligent terminal}

smash case

	{case sensitivity}

smash sum

	{coalesced sum}

smash the stack

	<jargon> In {C} programming, to corrupt the execution stack by
	writing past the end of a local array or other data structure.
	Code that smashes the stack can cause a return from the
	routine to jump to a random address, resulting in insidious
	data-dependent {bugs}.

	Variants include "trash" the stack, {scribble} the stack,
	{mangle} the stack.

	See {spam}; see also {aliasing bug}, {fandango on core},
	{memory leak}, {memory smash}, {precedence lossage}, {overrun
	screw}.

	[{Jargon File}]

	(1995-03-16)

SMB

	1. <protocol> {Server Message Block}.

	2. <hardware, protocol> {System Management Bus}.

	(1999-08-08)

smbclient

	{Samba}

smblib

	{Samba}

SMBus

	{System Management Bus}

SMCC

	{Sun Microsystems} Computer Corporation.

SMDS

	{Switched Multimegabit Data Service}

SMG

	Screen Management Guidelines.  A {VMS} package of run-time
	library routines providing windows on {DEC} {VT100} terminals.

SMI

	{Structure of Management Information}

SMIL

	1. <language> The {machine language} for a Swedish computer.

	{(ftp://ftp.wustl.edu/mirrors/info-mac/lang/smil-emulator.hqx)}.

	2. <hypertext, language, multimedia, text, World-Wide Web>
	{Synchronized Multimedia Integration Language}.

	(2000-04-21)

smiley

	{emoticon}

smilies

	{emoticon}

S-MIME

	{Secure Multipurpose Internet Mail Extensions}

SML

	1. {Standard ML}.

	2. Small Machine Language.  Barnes, ICI 1969.  Real-time
	language, an ALGOL variant, and the predecessor of RTL.  "SML
	User's Guide", J.G.P.  Barnes, ICI, TR JGPB/69/35 (1969).

SML#

	An extension of SML/NJ with polymorphic field selection and
	nondestructive field update.  "A Compilation Method for
	ML-style Polymorphic Record Calculi", A. Ohori, POPL 1992.

	{(ftp://ftp.cis.upenn.edu/pub/sml#/)}.

sml2c

	A Standard ML to C compiler.  sml2c is a batch compiler and
	compiles only module-level declarations, i.e. signatures,
	structures and functors.  It provides the same pervasive
	environment for the compilation of these programs as SML/NJ.
	As a result, module-level programs that run on SML/NJ can be
	compiled by sml2c without any changes.  Based on SML/NJ
	version 0.67 and shares front end and most of its run-time
	system, but does not support SML/NJ style debugging and
	profiling.

	School of Computer Science, Carnegie Mellon University

	{(ftp://dravido.soar.cs.cmu.edu/usr/nemo/sml2c/sml2c.tar.Z)}.
	{Linux
	(ftp://ftp.dcs.glasgow.ac.uk/pub/linux/smlnj-0.82-linux.tar.Z)}.

	conformance:	superset
		+ first-class continuations,
		+ asynchronous signal handling
		+ separate compilation
		+ freeze and restart programs

	ports: IBM-RT Decstation3100 Omron-Luna-88k Sun-3 Sun-4
	386(Mach)

	portability:	easy, easier than SML/NJ

	E-mail: <david.tarditi@cs.cmu.edu>, <peter.lee@cs.cmu.edu>

	(1991-06-27)

SML/NJ

	{Standard ML of New Jersey}

SMM

	{System Management Mode}

SMNP

	Do you mean "{SNMP}"?  If not, please tell me.

smoke

	1. To {crash} or blow up, usually spectacularly. "The new
	version smoked, just like the last one."  Used for both
	hardware (where it often describes an actual physical event),
	and software (where it's merely colourful).

	2. [Automotive slang] To be conspicuously fast.  "That
	processor really smokes."  Compare {magic smoke}.

	[{Jargon File}]

smoke and mirrors

	Marketing deceptions.  The term is mainstream in this general
	sense.  Among hackers it's strongly associated with bogus
	demos and crocked {benchmarks} (see also {MIPS},
	{machoflops}).  "They claim their new box cranks 50 MIPS for
	under $5000, but didn't specify the instruction mix - sounds
	like smoke and mirrors to me."  The phrase has been said to
	derive from carnie slang for magic acts and "freak show"
	displays that depend on "trompe l"oeil' effects, but also
	calls to mind the fierce Aztec god Tezcatlipoca (lit. "Smoking
	Mirror") for whom the hearts of huge numbers of human
	sacrificial victims were regularly cut out.  Upon hearing
	about a rigged demo or yet another round of fantasy-based
	marketing promises, hackers often feel analogously
	disheartened.

smoke-emitting diode

	<humour, electronics> (From "{light-emitting diode}") An
	incorrectly connected {diode}, probably a {light-emitting
	diode}, in the process of losing its {magic smoke} and
	becoming a {friode}.

	See also {LER}.

	(1996-04-28)

smoke test

	1. A rudimentary form of testing applied to electronic
	equipment following repair or reconfiguration, in which power
	is applied and the tester checks for sparks, smoke, or other
	dramatic signs of fundamental failure.  See {magic smoke}.

	2. By extension, the first run of a piece of software after
	construction or a critical change.  See and compare {reality
	check}.

	There is an interesting semi-parallel to this term among
	typographers and printers: When new typefaces are being
	punch-cut by hand, a "smoke test" (hold the letter in candle
	smoke, then press it onto paper) is used to check out new
	dies.

	[{Jargon File}]

smoking clover

	[ITS] A {display hack} originally due to Bill Gosper.  Many
	convergent lines are drawn on a colour monitor in {AOS} mode
	(so that every pixel struck has its colour incremented).  The
	lines all have one endpoint in the middle of the screen; the
	other endpoints are spaced one pixel apart around the
	perimeter of a large square.  The colour map is then
	repeatedly rotated.  This results in a striking, rainbow-hued,
	shimmering four-leaf clover.  Gosper joked about keeping it
	hidden from the FDA (the US's Food and Drug Administration)
	lest its hallucinogenic properties cause it to be banned.

SMoLCS

	Specification metalanguage used for a formal definition of
	Ada.  "An Introduction to the SMoLCS Methodology",
	E. Astesiano, U Genova 1986.

SMOP

	/S-M-O-P/ [Simple (or Small) Matter of Programming] 1. A piece
	of code, not yet written, whose anticipated length is
	significantly greater than its complexity.  Used to refer to a
	program that could obviously be written, but is not worth the
	trouble.  Also used ironically to imply that a difficult
	problem can be easily solved because a program can be written
	to do it; the irony is that it is very clear that writing such
	a program will be a great deal of work.  "It's easy to enhance
	a Fortran compiler to compile COBOL as well; it's just an
	SMOP."  2. Often used ironically by the intended victim when a
	suggestion for a program is made which seems easy to the
	suggester, but is obviously (to the victim) a lot of work.

	[{Jargon File}]

SMP

	1. {Symbol Manipulation Program}.

	2. <computer, parallel> {symmetric multiprocessing}.

	(1995-03-19)
SMPS

	{switch mode power supply}

SMPT

	<spelling> Do you mean {SMTP}?

	(2003-11-24)

SMRP

	{Simplified Multicast Routing Protocol}

SMS

	1. <messaging> {Short Message Service}.

	2. <storage> {Storage Management Services}.

	3. <operating system> {System Management Server}.

	(1999-05-02)

SMT

	{Station Management}

SMTP

	{Simple Mail Transfer Protocol}

smug report

	<humour> A {bug report} submitted by a user who thinks he
	knows more about the system's design than he really does,
	filled with irrelevant technical details and (incorrect)
	suggestions about the cause and solution of the problem.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2011-11-30)

smurf

	<jargon> /smerf/ (From the {news:soc.motss} {Usenet}
	newsgroup, after some obnoxiously gooey cartoon characters) A
	newsgroup regular with a habitual style that is irreverent,
	silly, and cute.  Like many other hackish terms for people,
	this one may be praise or insult depending on who uses it.  In
	general, being referred to as a smurf is probably not going to
	make your day unless you've previously adopted the label
	yourself in a spirit of irony.

	Compare {old fart}.

	[{Jargon File}]

	(1995-10-25)

sn

	<networking> The {country code} for Senegal.

	(1999-01-27)

SNA

	{Systems Network Architecture}

snacc

	<tool> (Sample Neufeld {ASN.1} to {C/C++} Compiler) A program
	by Mike Sample <msample@opentext.com> which compiles 1990
	{ASN.1} data structures (including some {macros}) into {C},
	{C++} or type tables.  The generated {C/C++} includes a .h
	file with the equivalent data struct and a .c/.C file for the
	{BER} encode and decode, print and free routines.

	snacc includes the compiler, run-time BER libraries, and
	utility programs.  snacc is compiled under {GNU} {General
	Public License}.  It requires {yacc} or {bison}, {lex} or
	{flex}, and {cc} (ANSI or non-ANSI).

	ITU TS X.208/ISO 8824.

	Latest version: 1.1, as of 1993-07-12.

	{Home
	(http://fokus.gmd.de/ovma/freeware/snacc/entry.html)}.

	E-mail: <snacc-bugs@cs.ubc.ca>.

	[Michael Sample and Gerald Neufeld, "Implementing Efficient
	Encoders and Decoders for Network Data Representations", IEEE
	INFOCOM '93 Proceedings, Vol 3, pp. 1143-1153, Mar 1993].

	[Michael Sample, "How Fast Can ASN.1 Encoding Rules Go?",
	M.Sc. Thesis, University of British Columbia, Apr 1993].

	(1998-08-09)

snaf

	{chad}

SNAFU principle

	/sna'foo prin'si-pl/ [WWII Army acronym for "Situation Normal:
	All Fucked Up"] "True communication is possible only between
	equals, because inferiors are more consistently rewarded for
	telling their superiors pleasant lies than for telling the
	truth." - a central tenet of {Discordianism}, often invoked
	by hackers to explain why authoritarian hierarchies screw up
	so reliably and systematically.  The effect of the SNAFU
	principle is a progressive disconnection of decision-makers
	from reality.  This lightly adapted version of a fable dating
	back to the early 1960s illustrates the phenomenon perfectly:

	 In the beginning was the plan,
	       and then the specification;
	 And the plan was without form,
	       and the specification was void.

	 And darkness
	       was on the faces of the implementors thereof;
	 And they spake unto their leader,
	       saying:
	 "It is a crock of shit,
	       and smells as of a sewer."

	 And the leader took pity on them,
	       and spoke to the project leader:
	 "It is a crock of excrement,
	       and none may abide the odor thereof."

	 And the project leader
	       spake unto his section head, saying:
	 "It is a container of excrement,
	       and it is very strong, such that none may abide it."

	 The section head then hurried to his department manager,
	       and informed him thus:
	 "It is a vessel of fertilizer,
	       and none may abide its strength."

	 The department manager carried these words
	      to his general manager,
	 and spoke unto him
	      saying:
	 "It containeth that which aideth the growth of plants,
	      and it is very strong."

	 And so it was that the general manager rejoiced
	      and delivered the good news unto the Vice President.
	 "It promoteth growth,
	      and it is very powerful."

	 The Vice President rushed to the President's side,
	      and joyously exclaimed:
	 "This powerful new software product
	      will promote the growth of the company!"

	 And the President looked upon the product,
	      and saw that it was very good.

	After the subsequent disaster, the {suits} protect themselves
	by saying "I was misinformed!", and the implementors are
	demoted or fired.

	[{Jargon File}]

snag

	{bug}

snail mail

	<messaging> (Or "snailmail", "smail" from "US Mail" via
	"USnail"; "paper mail").  Bits of {dead tree} sent via the
	postal service as opposed to {electronic mail}.  One's postal
	address is, correspondingly, a "snail (mail) address".  There
	have even been parody USnail posters and stamps made.

	The variant "paper-net" is a hackish way of referring to the
	postal service, comparing it to a very slow, low-reliability
	{network}.  {Sig blocks} sometimes include a "Paper-Net:"
	header just before the sender's postal address; common
	variants of this are "Papernet" and "P-Net".  Note that the
	standard {netiquette} guidelines discourage this practice as a
	waste of bandwidth, since netters are quite unlikely to
	casually use postal addresses and if they really wanted your
	{snail mail} address they could always ask for it by e-mail.

	Compare {voice-net}, {sneakernet}, {P-mail}.

	(1995-01-31)

SNAP

	<language> 1. An early ({IBM 360}?) interpreted
	text-processing language for beginners, close to basic
	English.

	["Computer Programming in English", M.P. Barnett, Harcourt
	Brace 1969].

	2. ["Some Proposals for SNAP, A Language with Formal Macro
	Facilities", R.B. Napper, Computer J 10(3):231-243, 1967].

	[Same as 1?]

	(2006-05-27)

snap

	1. <programming> To remove indirection, e.g. by replacing a
	{pointer} to a pointer with a pointer to the final target (see
	{chase pointers}).

	The underlying metaphor may be a rubber band stretched through
	a number of points; if you release it from the intermediate
	points, it snaps to a straight line from first to last.

	Often a {trampoline} performs an error check once and then
	snaps the pointer that invoked it so subsequent calls will
	bypass the trampoline (and its one-shot error check).  In this
	context one also speaks of "snapping links".  For example, in
	a {Lisp} implementation, a function interface trampoline might
	check to make sure that the caller is passing the correct
	number of arguments; if it is, and if the caller and the
	callee are both compiled, then snapping the link allows that
	particular path to use a direct procedure-call instruction
	with no further overhead.

	[{Jargon File}]

	(2006-05-27)

	2. <operating system> {snap dump}.

	(2006-05-27)

snap dump

	<operating system> A {memory dump}, often partial, requested
	by a program to display its current status for debugging.
	Program execution often continues normally following a snap
	dump, as opposed to a {crash dump}.

	[Short for "snapshot"?]

	(2006-05-27)

Snappy

	{Snappy Video Snapshot}

Snappy Video Snapshot

	<hardware> (registered trademark) A {frame grabber} for the
	{IBM PC} designed and marketed by {Play, Inc.}.

	(1997-07-11)

snarf

	/snarf/ 1. To grab, especially to grab a large document or
	file for the purpose of using it with or without the author's
	permission.

	See also {BLT}.

	2. ({Unix}) To fetch a file or set of files across a network.

	See also {blast}.

	3. To acquire, with little concern for legal forms or
	politesse (but not quite by stealing).  "They were giving away
	samples, so I snarfed a bunch of them."

	4. Synonym for {slurp}.  "This program starts by snarfing the
	entire database into core."

	5. ({GEnie}) To spray food or {programming fluids} due to
	laughing at the wrong moment.  This sense appears to be
	widespread among mundane teenagers - ESR.

	6. This term was mainstream in the late 1960s, meaning "to eat
	piggishly".  It may still have this connotation in context.

	7. A creature on the Thundercats, fond of eating, usually
	covertly.

	[{Jargon File}]

	(1995-02-21)

snarf & barf

	/snarf'n-barf`/ Under a {WIMP} environment, the act of
	grabbing a region of text and then stuffing the contents of
	that region into another region (or the same one) to avoid
	retyping a command line.  In the late 1960s, this was a
	mainstream expression for an "eat now, regret it later" cheap
	restaurant expedition.

	[{Jargon File}]

	(1994-11-04)

snarf down

	To {snarf}, with the connotation of absorbing, processing, or
	understanding.  "I'll snarf down the latest version of the
	{nethack} user's guide - it's been a while since I last
	played."

	[{Jargon File}]

	(1994-11-04)

snark

	[Lewis Carroll, via the Michigan Terminal System] 1. A system
	failure.  When a user's process bombed, the operator would get
	the message "Help, Help, Snark in MTS!"

	2. More generally, any kind of unexplained or threatening
	event on a computer (especially if it might be a boojum).
	Often used to refer to an event or a log file entry that might
	indicate an attempted security violation.  See {snivitz}.

	3. UUCP name of snark.thyrsus.com, home site of the Hacker
	{Jargon File} versions 2.*.*.

	[{Jargon File}]

sneakernet

	/snee'ker-net/ Term used (generally with ironic intent) for
	transfer of electronic information by physically carrying
	tape, disks, or other media from one machine to another.

	"Never underestimate the bandwidth of a station wagon filled
	with magtape, or a 747 filled with CD-ROMs."

	Also called tennis-net, armpit-net, floppy-net, shoe-net,
	walk-net, foot-net.

	(2003-07-02)

sneck

	<jargon> The sound made by {deboursification}, according to
	Sam Spade anti-{spam} software.

	(1999-09-15)

snert

	<abuse> A derogatory term commonly used on the {Internet}
	{ECHO} {BBS}, echonyc.com, meaning to "make overtures of a
	sexual nature".  It implies terminal cluelessness.

	(1995-03-01)

SNI

	{Siemens Nixdorf Informationssteme, AG}

Sniff

	A {C++}/{C} programming environment providing browsing,
	cross-referencing, design visualisation, documentation and
	editing support.  Developed by UBS Switzerland and marketed by
	takeFive Salzburg.

	[{Jargon File}]

sniff

	{poll}

sniffer

	{packet sniffer}

snivitz

	<jargon> /sniv'itz/ A hiccup in hardware or software; a small,
	transient problem of unknown origin (less serious than a
	{snark}).

	Compare {glitch}.

	[{Jargon File}]

	(1995-03-28)

SNMP

	{Simple Network Management Protocol}

SNMP agent

	<networking> A software process that responds to queries using
	the {Simple Network Management Protocol} to provide status and
	statistics about a network {node}.

	(1995-11-11)

SNMPv2

	{Simple Network Management Protocol version 2}

SNOBOL

	{String Oriented Symbolic Language}

SNOBOL2

	A {SNOBOL} variant which existed only briefly.  It featured
	built-in functions, but not programmer-defined ones.

	["SNOBOL2", D.J. Farber, R.E. Griswold and I.P. Polonsky, TR
	Bell Labs, Apr 1964].

SNOBOL3

	{SNOBOL} with user-defined functions.  Written in 1965.  The
	SNOBOL 6.3 compiler for the {PDP-6} and {PDP-10} was written
	in SNOBOL.

	["The SNOBOL3 Programming Language", D.J. Farber et al, Bell
	Sys Tech J 45(6):895-944 (Jul 1966)].

	(1994-11-04)

SNOBOL4

	<language> A quite distinct descendant of {SNOBOL}, developed
	by Griswold et al in 1967.  SNOBOL4 is {declarative} with
	{dynamic scope}.  Patterns are {first-class} data objects that
	can be constructed by concatenation and alternation.  Success
	and failure are used for {flow control}.  Delayed
	(unevaluated) expressions can be used to implement
	{recursion}.  It has a table data type.  Strings generated at
	run time can be treated as programs and executed.

	See also {vanilla}.

	{SNOBOL 4 (http://snobol4.org/)}.

	{(ftp://apple.com/ArchiveVol1/Unix_lang)}.

	{A FOLDOC parser in SNOBOL4
	(http://www.topcat.hypermart.net/foldoc.html)}!

	["The SNOBOL4 Programming Language", Ralph E. Griswold et al,
	P-H 1971].

	(2011-01-05)

SNOOPS

	Craske, 1988.  An extension of SCOOPS with meta-objects that
	can redirect messages to other objects.  "SNOOPS: An
	Object-Oriented language Enhancement Supporting Dynamic
	Program Reeconfiguration", N. Craske, SIGPLAN Notices 26(10):
	53-62 (Oct 1991).

'Snooze

	/snooz/ [FidoNet] Fidonews, the weekly official on-line
	newsletter of FidoNet.  As the editorial policy of Fidonews is
	"anything that arrives, we print", there are often large
	articles completely unrelated to FidoNet, which in turn tend
	to elicit {flamage} in subsequent issues.

	[{Jargon File}]

SNPP

	{Simple Network Paging Protocol}

SNR

	{signal-to-noise ratio}

S/N ratio

	{signal-to-noise ratio}

SNR bandwidth product

	<communications> The {integral} of the {SNR} over {frequency}.
	The SNR bandwidth product is an important limit in the
	capacity of a communication channel.

	(2003-07-20)

SO

	1. <character> {Shift Out}

	2. Significant Other, almost invariably written abbreviated
	and pronounced /S-O/ by hackers.  Used to refer to one's
	primary relationship, especially a live-in to whom one is not
	married.

	[{Jargon File}]

so

	<networking> The {country code} for Somalia.

	(1999-01-27)

SO 2

	An early system on {IBM 701}.

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

	(1994-11-04)

SOA

	1. <architecture> {service-oriented architecture}.

	2. <networking> {start of authority}.

SOAP

	1. <protocol> {Simple Object Access Protocol}.

	2. <language> {Symbolic Optimal Assembly Program}.

	(2001-03-23)

SOAR

	1. State, Operator And Result.  A general problem-solving
	{production system} architecture, intended as a model of human
	intelligence.  Developed by A. Newell in the early 1980s.
	SOAR was originally implemented in {Lisp} and {OPS5} and is
	currently implemented in {Common Lisp}.  Version: Soar6.

	E-mail: <soar@cs.cmu.edu>.

	["The SOAR Papers", P.S. Rosenbloom et al eds, MIT Press
	1993].

	(1994-11-04)

	2. Smalltalk On A RISC.  A {RISC} {microprocessor} designed by
	David Patterson's at Berekeley.

	(1994-11-04)

social engineering

	<jargon, security> A term used among {crackers} and {samurai}
	for cracking techniques that rely on weaknesses in {wetware}
	rather than software; the aim is to trick people into
	revealing passwords or other information that compromises a
	target system's security.  Classic scams include phoning up a
	mark who has the required information and posing as a field
	service tech or a fellow employee with an urgent access
	problem.  See also the {tiger team} story in the {patch}
	entry.

	[{Jargon File}]

	(2006-11-22)

social network

	<communications> Any {website} designed to allow multiple
	users to publish content themselves.  The information may be
	on any subject and may be for consumption by (potential)
	friends, mates, employers, employees, etc.  The sites
	typically allow users to create a "profile" describing
	themselves and to exchange public or private messages and list
	other users or groups they are connected to in some way.
	There may be editorial content or the site may be entirely
	user-driven.  Content may include text, images
	(e.g. {(http://flickr.com/)}), video
	(e.g. {(http://youtube.com/)}) or any other media.

	Social networks on the the web are a natural extension of
	{mailing lists} and {buletin boards}.  They are related to
	{wikis} like {(http://wikipedia.org/)} but typically do not
	allow users to modify content once it has been submitted,
	though usually you can publish comments on others'
	submissions.

	Different sites have different emphasis.  For example,
	{(http://friendsreunited.co.uk/)} (one of the earliest such
	sites) focusses on listing former acquaintances;
	{(http://myspace.com/)} is music-oriented;
	{(http://linkedin.com/)} aims to connect business partners;
	{(http://del.icio.us/)}, {(http://stumbleupon.com/)} and
	{(http://digg.com/)} are for exchanging links to favouirite
	web sites.  There are many more.

	Sometimes the social aspects are a side-effect of bringing
	together people with shared interests,
	e.g. {(http://slashdot.org/)} (IT), other times they become
	more important than the original purpose,
	e.g. {(http://worldofwarcraft.com/)} (fantasy gaming).

	(2006-12-05)

social networking

	{social network}

social science number

	(IBM) A statistic that is {content-free}, or nearly so.  A
	measure derived via methods of questionable validity from data
	of a dubious and vague nature.  Predictively, having a social
	science number in hand is seldom much better than nothing, and
	can be considerably worse.  {Management} loves them.

	See also {numbers}, {math-out}, {pretty pictures}.

	(1994-11-04)

socket

	<networking> The {Berkeley Unix} mechansim for creating a
	virtual connection between processes.  Sockets interface
	{Unix}'s {standard I/O} with its {network} communication
	facilities.  They can be of two types, stream (bi-directional)
	or {datagram} (fixed length destination-addressed messages).
	The socket library function socket() creates a communications
	end-point or socket and returns a {file descriptor} with which
	to access that socket.  The socket has associated with it a
	socket address, consisting of a {port} number and the local
	host's network address.

	{Unix manual page}: socket(2).

	(1995-01-31)

Socket 1

	{x86 processor socket}

Socket 2

	{x86 processor socket}

Socket 3

	{x86 processor socket}

Socket 370

	<hardware, standard, processor> (PGA370) A physical and
	electrical specification for a {motherboard} {processor}
	socket.  Socket 370 uses a square {SPGA} {ZIF} socket with 370
	pins, arranged 37x37 (sometimes described as 19x19).

	{Intel} originally designed Socket 370 for {PPGA} Celeron
	processors.  Newer Socket 370 motherboards additionally
	support {FC-PGA} Celeron and {Pentium III} processors.

	The difference between the two versions is electrical;
	some pins are used differently and voltage requirements have
	been changed from Intel's {VRM 8.2} to {VRM 8.4}.  In
	addition, Celeron processors require a 66 MHz front side bus
	({FSB}), and Pentium III processors require a 100/133 MHz FSB.

	Some older Socket 370 motherboards support VRM 8.4 and
	variable bus speeds, so adapters are available that convert
	the socket pinout to allow FC-PGA processors to work.

	{VIA}'s {Cyrix III} processor was designed to work with
	Socket 370 motherboards.

	{Intel Celeron Processor in PPGA form factor - Integration
	(http://pentium.com/design/quality/celeron/ppga/integration.htm)}.

	{Pentium III Processors - Design Guidelines
	(http://intel.com/design/PentiumIII/designgd/)}.

	(2000-08-26)

Socket 4

	{x86 processor socket}

Socket 5

	{x86 processor socket}

Socket 6

	{x86 processor socket}

Socket 7

	<hardware, standard> A physical and electrical specification
	for the {x86 processor socket} matching the pins on {Pentium}
	{microprocessors} manufactured by {Intel}, and compatibles
	made by {Cyrix}, {AMD} and others.  Any {CPU} chip conforming
	to this specification can be plugged into any conforming
	{motherboard}.

	Supported processors include: 2.5V - 3.5V {Pentiums} 75-233
	MHz, AMD {K5} through {K6}, Cyrix {6x86} (and MX) P120 - P233.

	Socket 7 uses a {SPGA} socket, either a 296 pin {LIF} or a 321
	pin {ZIF} arranged as 37x37 or 19x19 (depending on who you
	speak to!).

	See also {Super 7}.

	Intel's {Pentium II} processor uses {Slot 1} mounting.

	[Pin-out?]

	(1999-08-29)

Socket 8

	<hardware, standard> A physical and electrical specification
	for the {x86 processor socket} matching the pins on a {Pentium
	Pro} {microprocessor}.

	Socket 8 uses a {dual pattern} {PGA}/{SPGA} {LIF}/{ZIF} socket
	with 387 pins, arranged 24x26.

	(1999-08-04)

SOCKS

	<security> A security package that allows a {host} behind a
	{firewall} to use {finger}, {FTP}, {telnet}, {Gopher}, and
	{Mosaic} to access resources outside the firewall while
	maintaining the security requirements.

	[The Security FAQ, {Usenet} newsgroups
	{news:comp.security.misc}, {news:comp.security.unix},
	{news:alt.security}].

	(1995-01-31)

SOCRATIC

	An early interactive learning system (not a language(?))
	developed at {Bolt, Beranek & Newman}.

	[Sammet 1969, p. 702].

	(1994-11-04)

SODA

	{Symbolic Optimum DEUCE Assembly Program}

SODAS

	[D.L. Parnas & J.A. Darringer.  Proc FJCC 31:449-474, AFIPS
	(Fall 1967)].

	(1994-11-04)

SO-DIMM

	{Small Outline DIMM}

Sod's Law

	<humour> {Murphy's Law}.

	[Or is it "Sodd"?]

	(1995-12-29)

SOE

	{Standard Operating Environment}

SoftBench

	An {IPSE} from {Hewlett-Packard}.

soft boot

	<operating system> A {boot} which resets only part of the
	{system}.

	For example, "If you're running the {mess-dos} {emulator},
	control-alt-insert will cause a soft boot of the emulator,
	while leaving the rest of the system running".

	Contrast {hard boot}.

	[{Jargon File}]

	(1995-11-27)

softcopy

	/soft'kop-ee/ (by analogy with "hardcopy") A machine-readable
	("{machinable}") form of corresponding {hardcopy}.

	[{Jargon File}]

	(1994-11-04)

Softlab

	<company> A {software engineering} company strong in the UK
	and Germany.

	[Details?]

soft link

	{symbolic link}

SoftModem

	The integration of {modem} controller and {data pump}
	{algorithms} into a single {RAM}-based {DSP} hardware
	architecture.  These integrated algorithms are stored on the
	computer's hard disk, from which they are downloaded into the
	DSP board's random-access memory (RAM).  This downloading, or
	"booting" process of the PC-installed software algorithms
	occurs as part of the computer's power-up initialisation
	process in less than 100 milliseconds, making it transparent
	to the user.

	[Digicom Modem FAQ version 2.03].

SoftVelocity Inc.

	<company> The distributors of the {Clarion} family of
	application development systems.

	{SoftVelocity, Inc. (http://softvelocity.com)}.

	(2003-10-15)

software

	<programming> (Or "computer program", "program", "code") The
	instructions executed by a computer, as opposed to the
	physical device on which they run (the "{hardware}").

	The term was coined by the eminent statistician, {John Tukey}.

	Programs stored on {non-volatile storage} built from
	{integrated circuits} (e.g. {ROM} or {PROM}) are usually
	called {firmware}.

	Software can be split into two main types - {system software}
	and application software or {application programs}.  System
	software is any software required to support the production or
	execution of application programs but which is not specific to
	any particular application.  Examples of system software would
	include the {operating system}, {compilers}, editors and
	sorting programs.

	Examples of application programs would include an accounts
	package or a {CAD} program.  Other broad classes of
	application software include {real-time} software, {business
	software}, scientific and engineering software, {embedded
	software}, personal computer software and {artificial
	intelligence} software.

	Software includes both {source code} written by humans and
	executable {machine code} produced by {assemblers} or
	{compilers}.  It does not usually include the data processed
	by programs unless this is in a format such as {multimedia}
	which depends on the use of computers for its presentation.
	This distinction becomes unclear in cases such as {spread
	sheets} which can contain both instructions (formulae and
	{macros}) and data.  There are also various intermediate
	compiled or {semi-compiled}, forms of software such as
	{library} files and {byte-code}.

	Some claim that {documentation} (both paper and electronic) is
	also software.  Others go further and define software to be
	programs plus documentation though this does not correspond
	with common usage.

	The noun "program" describes a single, complete and
	more-or-less self-contained list of instructions, often stored
	in a single {file}, whereas "code" and "software" are
	uncountable nouns describing some number of instructions which
	may constitute one or more programs or part thereof.  Most
	programs, however, rely heavily on various kinds of {operating
	system} software for their execution.  The nounds "code" and
	"software" both refer to the same thing but "code" tends to
	suggest an interest in the implementation details whereas
	"software" is more of a user's term.

	(2002-07-21)

Software AG

	<company> A German {software engineering} company that started
	with the {ADABAS} {database}.  {Natural} is their {4GL}
	development environment, {EntireX} is their {DCOM} for {Unix}
	and {IBM}.  {BOLERO}, is an {object-oriented} development
	environment and {application server} specially made for
	Electronic Business applications.

	{(http://softwareag.com/)}.

	Mailing-list: <sag-l@uafsysb.uark.edu>.

	(1999-03-06)

software audit

	<legal> A regular investigation of the software installed on
	all computers in an organisation to ensure that it is
	authorised or licensed.

	Software audits minimise the risk of prosecution for {software
	theft}, minimise the risk of {viruses} through uncontrolled
	software copying, and ensure technical support is available to
	all users.

	The {Business Software Alliance} {Guide To Software Management
	(http://bsa.org/bsa)}.

	(1996-05-19)

Software BackPlane

	<programming, tool> A {CASE} framework from {Atherton}.

	(1996-05-19)

software bloat

	<jargon, abuse> The result of adding new features to a program
	or system to the point where the benefit of the new features
	is outweighed by the extra resources consumed ({RAM}, disk
	space or performance) and complexity of use.  Software bloat
	is an instance of Parkinson's Law: resource requirements
	expand to consume the resources available.  Causes of software
	bloat include {second-system effect} and {creeping
	featuritis}.  Commonly cited examples include Unix's "{ls}(1)"
	command, the {X Window System}, {BSD}, {Missed'em-five},
	{OS/2} and any {Microsoft} product.

	[{Jargon File}]

	(1995-10-16)

Software bus

	A support environment for heterogeneous distributed
	processing, such as the ANSA Testbench.

software copyright

	<legal> {Copyright} on a piece of {software}.  Software raises
	interesting questions in relation to copyright, such as what
	constitutes a "performance" of a piece of software and which
	aspects of software are restricted.

	(2008-05-22)

Software Description Database

	<networking> {Archie}'s database of names and short
	descriptions of many of the software packages, documents (like
	{RFCs} and educational material), and data files that are
	available via the {Internet}.

	(1995-11-12)

Software Developers Kit

	<jargon, product> (SDK, or "Software Development Kit")
	Software provided by a software vendor to allow their products
	to be used with those of other software vendors.

	(1995-03-01)

software development life cycle

	{software life cycle}

software enabling

	<programming> (Or "enabling") Modification of the design or
	implementation of software to allow {internationalisation} to
	take place.

	In particular, enabling may refer to the modification of
	software to support double-byte character sets, hence
	"{Unicode} enabling" and "double-byte enabling".

	(1999-06-28)

software engineering

	<programming> (SE) A systematic approach to the analysis,
	design, implementation and maintenance of {software}.  It
	often involves the use of {CASE} tools.  There are various
	models of the {software life-cycle}, and many {methodologies}
	for the different phases.

	(1994-11-03)

Software Engineering Environment

	(SEE) A set of management and technical tools to support
	software development, usually integrated in a coherent
	framework; equivalent to an {IPSE}.

	(1994-11-03)

software handshaking

	<communications> The transmission of extra data on a channel
	in order to control the device sending data in the other
	direction on that channel.  For an {EIA-232} connection, this
	means sending {Control-S} and {Control-Q} characters to stop
	and start transmission.

	Since software handshaking requires the transmission and
	processing of extra data it can be less efficient than
	{hardware handshaking}.

	(1996-10-16)

software interrupt

	An {interrupt} caused by a specific {machine language}
	operation code (e.g. the {Motorola 68000}'s TRAP, the {IBM
	System/390}'s SVC or the {ARM}'s SWI) rather than by a
	hardware event.

	As with a hardware interrupt, this causes the processor to
	store the current state, store identifying information about
	the particular interrupt, and pass control to a first level
	{interrupt handler}.

	A {trap} is similar except that it is caused by an unexpected
	software condition or error (e.g. divide by zero, undefined
	instruction) rather than a deliberate instruction.

	(1995-02-14)

Software in the Public Interest, Inc.

	<company> (SPI) A non-profit corporation which helps
	organisations develop and distribute {open hardware} and {open
	software}.  SPI's goals are:

	* to create, form and establish an organization to formulate
	and provide software systems for use by the general public
	without charge;

	* to teach and train individuals regarding the use and
	application of such systems;

	* to hold classes, seminars and workshops concerning the
	proper use and application of computers and computer systems;

	* to endeavor to monitor and improve the quality of currently
	existing publicly available software;

	* to support, encourage and promote the creation and
	development of software available to the general public;

	* to provide information and education regarding the proper
	use of the Internet;

	* to organize, hold and conduct meetings, discussions and
	forums on contemporary issues concerning the use of computers
	and computer software;

	* to foster, promote and increase access to software systems
	available to the general public;

	* to solicit, collect and otherwise raise money and to expend
	such funds in furtherance of the goals and activities of the
	corporation;

	* to aid, assist, cooperate, co-sponsor and otherwise
	engage in concerted action with private, educational and
	governmental organisations and associations on all issues
	and matters concerning the use of computers and computer
	software and;

	* generally to endeavor to promote, foster and advance
	interest in computers and computer software by all available
	means and methods.

	SPI currently supports {Berlin}, {Debian}, {GNOME}, {LSB},
	{Open Source}.

	{SPI Home (http://spi-inc.org/)}.

	(2002-04-14)

software laser

	An optical laser works by bouncing photons back and forth
	between two mirrors, one totally reflective and one partially
	reflective.  If the lasing material (usually a crystal) has
	the right properties, photons scattering off the atoms in the
	crystal will excite cascades of more photons, all in lockstep.
	Eventually the beam will escape through the partially
	reflective mirror.

	One kind of {sorcerer's apprentice mode} involving {bounce
	messages} can produce closely analogous results, with a
	{cascade} of messages escaping to flood nearby systems.  By
	mid-1993 there had been at least two publicised incidents of
	this kind.

	[{Jargon File}]

software law

	<legal> Software may, under various circumstances and in
	various countries, be restricted by patent or {copyright} or
	both.  Most commercial software is sold under some kind of
	{software license}.

	A patent normally covers the design of something with a
	function such as a machine or process.  Copyright restricts
	the right to make and distribute copies of something written
	or recorded, such as a song or a book of recipies.  Software
	has both these aspects - it embodies functional design in the
	{algorithms} and data structures it uses and it could also be
	considered as a recording which can be copied and "performed"
	(run).

	"{Look and feel}" lawsuits attempt to monopolize well-known
	command languages; some have succeeded.  {Copyrights} on
	command languages enforce gratuitous incompatibility, close
	opportunities for competition, and stifle incremental
	improvements.

	{Software patents} are even more dangerous; they make every
	design decision in the development of a program carry a risk
	of a lawsuit, with draconian pretrial seizure.  It is
	difficult and expensive to find out whether the techniques you
	consider using are patented; it is impossible to find out
	whether they will be patented in the future.

	The proper use of {copyright} is to prevent {software piracy}
	- unauthorised duplication of software.  This is completely
	different from copying the idea behind the program in the same
	way that photocopying a book differs from writing another book
	on the same subject.

	{Usenet} newsgroup: {news:misc.legal.computing}.

	["The Software Developer's and Marketer's Legal Companion",
	Gene K. Landy, 1993, AW, 0-201-62276-9].

	(1994-11-16)

software life-cycle

	<programming> The phases a software product goes through
	between when it is conceived and when it is no longer
	available for use.  The software life-cycle typically includes
	the following: {requirements analysis}, {design},
	construction, testing ({validation}), installation, operation,
	maintenance, and retirement.

	The development process tends to run iteratively through these
	phases rather than linearly; several models (spiral, waterfall
	etc.) have been proposed to describe this process.

	Other processes associated with a software product are:
	quality assurance, marketing, sales and support.

	(1996-12-27)

Software Method

	{Software Methodology}

Software Methodology

	<programming> The study of how to navigate through each phase
	of the software process model (determining data, control, or
	uses hierarchies, partitioning functions, and allocating
	requirements) and how to represent phase products (structure
	charts, stimulus-response threads, and {state transition
	diagrams}).

	(1996-05-29)

software metric

	<programming> A measure of software quality which indicates
	the complexity, understandability, testability, description
	and intricacy of code.

	(1994-11-16)

software patent

	<legal> A patent intended to prevent others from using some
	programming technique.

	There have been several infamous patents for software
	techniques which most experienced programmers would consider
	fundamental or trivial, such as the idea of using
	{exclusive-or} to plot a cursor on a {bitmap display}.  The
	spread of software patents could stifle innovation and make
	programming much harder because programmers would have to
	worry about patents when designing or choosing {algorithms}.

	There are over ten thousand software patents in the US, and
	several thousand more are issued each year.  Each one may be
	owned by, or could be bought by, a grasping company whose
	lawyers carefully plan to attack people at their most
	vulnerable moments.  Of course, they couch the threat as a
	"reasonable offer" to save you miserable years in court.
	"Divide and conquer" is the watchword: pursue one group at a
	time, while advising the rest of us to relax because we are in
	no danger today.

	Compuserve developed the {GIF} format for graphical images
	many years ago, not knowing about {Unisys}'s 1985 patent
	covering the {LZW} data compression {algorithm} used in GIF.
	GIF was subsequently adopted widely on the {Internet}.  In
	1994 Unisys threatened to sue Compuserve, forcing them to
	impose a sublicensing agreement for GIF on their users.
	Compuserve users can accept this agreement now, or face Unisys
	later on their own.  The rest of us don't have a choice -- we
	get to face Unisys when they decide it's our turn.  So much
	trouble from just one software patent.

	Patents in the UK can't describe {algorithms} or mathematical
	methods.

	See also {LPF}, {software law}.

	{patent search
	(http://sunsite.unc.edu/patents/intropat.html)}.

	(1995-01-06)

software piracy

	<software> Making or distributing unauthorised copies of
	{software}, either for kudos or for profit.  See {software
	theft}.

	(2010-02-03)

software pirate

	<software, legal> Someone engaged in {software piracy}.

	(2010-02-03)

Software Practice and Experience

	<publication> (SPE) A journal about {software}.

	{(http://columbus.cs.nott.ac.uk/compsci/spe/)}.

	[Publisher?  UK?]

	(1997-12-12)

Software Productivity Centre

	<body> (SPC) A non-profit organisation based in Vancouver, BC,
	Canada with the mandate to assist software developers to
	improve their {software engineering} process.

	(1998-10-13)

Software Publishing Certificate

	<security> (SPC) A {public key certification standard} (PKCS)
	#7 signed data object containing {X.509} {certificates}.  SPCs
	are used for {digital signatures} as applicable to computer
	software.

	(2007-05-16)

Software Publishing Corporation

	<company> (SPC) The company that produces {Harvard Graphics}.

	{(http://spco.com/)}.

	(1998-10-13)

software reliability

	See also {formal methods}, {safety-critical system}.

	{(ftp://ftp.sei.cmu.edu/pub/depend-sw)}.  Mailing list:
	depend-sw@sei.cmu.edu.

	[Summary?]

software rot

	<programming> The tendency of software that has not been used
	in a while to fail; such failure may be semi-humorously
	ascribed to {bit rot}.  More commonly, "software rot" strikes
	when a program's assumptions become out of date.  If the
	design was insufficiently {robust}, this may cause it to fail
	in mysterious ways.

	For example, owing to shortsightedness in the design of some
	COBOL programs, many would have succumbed to software rot when
	their 2-digit year counters wrapped around at the beginning of
	the year 2000.  A related incident made the news in 1990, when
	a gentleman born in 1889 applied for a driver's licence
	renewal in Raleigh, North Carolina.  The system refused to
	issue the card, probably because with 2-digit years the ages
	101 and 1 cannot be distinguished.

	Historical note: Software rot in an even funnier sense than
	the mythical one was a real problem on early research
	computers (e.g. the {R1}; see {grind crank}).  If a program
	that depended on a peculiar instruction hadn't been run in
	quite a while, the user might discover that the {opcodes} no
	longer did the same things they once did.  ("Hey, so-and-so
	needs an instruction to do such-and-such.  We can {snarf} this
	opcode, right?  No one uses it.")

	Another classic example of this sprang from the time an {MIT}
	hacker found a simple way to double the speed of the
	unconditional jump instruction on a {PDP-6}, so he patched the
	hardware.  Unfortunately, this broke some fragile timing
	software in a music-playing program, throwing its output out
	of tune.  This was fixed by adding a defensive initialisation
	routine to compare the speed of a timing loop with the
	real-time clock; in other words, it figured out how fast the
	PDP-6 was that day, and corrected appropriately.

	[{Jargon File}]

	(2002-02-22)

software theft

	<legal> Unauthorised duplication and/or use of computer
	{software}.  This usually means unauthorised copying, either
	by individuals for use by themselves or their friends or by
	companies who then sell the illegal copies to users.  Many
	kinds of {software protection} have been invented to try to
	reduce software theft but, with sufficient effort, it is
	always possible to bypass or "crack" the protection, and
	{software protection} is often annoying for legitimate users.

	Software theft in 1994 was estimated to have cost $15 billion
	in worldwide lost revenues to software publishers.  It is an
	offence in the UK under the Copyright, Designs and Patents Act
	1988, which states that "The owner of the copyright has the
	exclusive right to copy the work."

	It is estimated that European software houses alone lose $6
	billion per year through the unlawful copying and distribution
	of software, with much of this loss being through business
	users rather than "basement hackers".  One Italian pirating
	operation employed over 100 staff and had a turnover of $10M.

	It is illegal to: 1. Copy or distribute software or its
	documentation without the permission or licence of the
	copyright owner.  2. Run purchased software on two or more
	computers simultaneously unless the licence specifically
	allows it.  3. Knowingly or unknowingly allow, encourage or
	pressure employees to make or use illegal copies sources
	within the organisation.  4. Infringe laws against
	unauthorised software copying because someone compels or
	requests it.  5. Loan software in order that a copy be made of
	it.

	When software is upgraded it is generally the case that the
	licence accompanying the new version revokes the old version.
	This means that it is illegal to run both the old and new
	versions as only the new version is licensed.

	Both individuals and companies may be convicted of piracy
	offences.  Officers of a company are also liable to conviction
	if the offences were carried out by the company with their
	consent.  On conviction, the guilty party can face
	imprisonment for up to two years (five in USA), an unlimited
	fine or both as well as being sued for copyright infringement
	(with no limit) by the copyright owner.

	Because copying software is easy, some think that it is less
	wrong than, say, stealing it from a shop.  In fact, both
	deprive software producers of income.

	Software theft should be reported to the {Federation Against
	Software Theft} (FAST).

	See also {Business Software Alliance}, {software audit},
	{software law}.

	(2003-06-17)

Software through Pictures

	<programming, tool> (StP) A set of {CASE} tools distributed by
	{Aonix (http://aonix.com/)}.

	(1999-05-21)

software tool

	<programming> A program that aids in the development of other
	programs.  It may assist the programmer in the design, code,
	compile, link, edit, or debug phases.

	(1996-05-28)

Software Verification Research Centre

	<body> (SVRC) A Special Research Centre of the Australian
	Research Council.  Its mission is to create improved methods
	and tools, of industrial significance, for developing
	{verified software}.  Two of the SVRC's core projects are the
	{Cogito} methodology and the {Ergo} {proof tool}.

	(1995-11-14)

Software Writer's Language

	<language> (SWL) /swil/ An industrial strength dialect of
	{Pascal} that allowed multiple {source code} files, originally
	developed at {Control Data Corporation} (CDC) prior to 1973.
	Development continued at the {Integrated Systems Laboratory}.
	SWL was adopted by NCR as its corporate {operating system} and
	{compiler} implementation language (1978-1982+).  The NCR SWL
	dialect was renamed NCRL (NCR Language) in 1981 and continued
	development [until ?].

	(2003-12-31)

softwarily

	/soft-weir'i-lee/ In a way pertaining to software.  "The
	system is softwarily unreliable."  The adjective "softwary" is
	*not* used.  See {hardwarily}.

	[{Jargon File}]

softy

	(IBM) {Hardware} hackers' term for a {software} expert who is
	largely ignorant of the mysteries of hardware.

	(1995-01-11)

SOH

	{Start Of Header}

SOHIO

	An early system on the {IBM 705}.

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

	(1995-01-11)

SoHo

	{small-office/home-office.}

SOIF

	{Summary Object Interchange Format}

SOJ

	{Small Outline J}

SOL

	1. <language> {Simulation Oriented Language}.

	2. {Second-Order lambda-calculus}.

	3. Semantic Operating Language.  Language for manipulating
	semantic networks for building cognitive models, particularly
	for natural language understanding.  "Explorations in
	Cognition", D.A. Norman et al, W.H.  Freeman 1974.

	4. Shit Outta Luck.

Solaris

	<operating system> {Sun Microsystems, Inc.}'s version of the
	{Unix} {operating system}.  As well as the core operating
	system, Solaris inludes networking software, the {Java Virtual
	Machine}, the {CDE}/Desktop that includes an {X11}-based
	{windowing environment} and {graphical user interface}.

	Sun claim that Solaris is not just an operating system but an
	"operating environment".

	Solaris 1.x was a retroactive (marketing?) name for {SunOS}
	4.1.x (where x>=1).

	Solaris 2.x (which is the first version most people call
	"Solaris") includes SunOS5.x, which is an SVR4-derived Unix,
	{OpenWindows} 3.x, and {tooltalk}.

	Version 2.7 ("Solaris 7") was around in 1999-03-02.  Version
	2.8 was released in June 2000.  Latest version: 9, as of
	2002-07-15.

	{(http://sun.com/solaris/)}.

	(2002-07-15)

solid state

	<electronics> (Often hyphenated when used as an adjective) A
	term describing any device that uses {semiconductor}
	components rather than {electron tubes} or {relays}.
	Semiconductors are "solid" in that they contain no gas
	("vacuum" tubes contain a small amount as the vacuum is not
	perfect) or moving parts (like relays), but probably more
	important is the connotation of reliability and durability
	that made possible things like portable radios.

	(2007-09-21)

Solid State Disk

	(SSD) <storage> Any kind of {solid-state storage device} that
	appears to the system as a disk drive.  SSDs are more expensive
	that the same capacity of magnetic disk but have much shorter
	{access time}.

	(2013-04-27)

solid-state storage device

	<storage> Any memory component with no moving parts, typically
	built around some kind of semiconductor {integrated circuit}.
	An example is {bubble memory}.

	See also: {RAM disk}.

	(2001-12-31)

SOLO

	[SOL (Semantic Operating Language) + LOGO].  A variant of
	{LOGO} with primitives for dealing with {semantic networks}
	and {pattern matching} rather than lists.

	["A User-Friendly Software Environment for the Novice
	Programmer", M. Eisenstadt <marc@open.ac.uk>, CACM
	27(12):1056-1064 (1983)].

solution

	<jargon> A {marketroid} term for something he wants to sell
	you without bothering you with the often dizzying distinctions
	between {hardware}, {software}, {services}, {applications},
	{file formats}, companies, brand names and {operating
	systems}.

	"{Flash} is a perfect image-streaming solution."  "What is
	it?"  "Um...  about a thousand dollars."

	See also: {technology}.

	(1998-07-07)

Solution Based Modelling

	(SBM) A software development process described in the book
	"Developing Object-Oriented Software for the Macintosh"
	written by Neal Goldstein and Jeff Alger, published by Addison
	Wesley in 1992.

Solve

	Parallel object-oriented language.  "Message Pattern
	Specifications: A New Technique for Handling Errors in
	Parallel Object- Oriented Systems", J.A. Purchase et al,
	SIGPLAN Notices 25(10):116-125 (OOPSLA/ECOOP '90) (Oct 1990).

SOM

	System Object Model.  An implementation of CORBA by IBM.

Somar DumpAcl

	<tool> A utilty which provides a concise report of {Windows
	NT} file system permissions, to help find holes in system
	security.

	(1995-04-10)

Somar Software

	<company> The distributors of {Somar DumpAcl} and other
	utilities for {Windows NT}.

	{(http://somar.com/)}.

	Address: Washington, DC, USA.

	(1995-04-10)

some random X

	<jargon> Used to indicate a member of class X, with the
	implication that Xs are interchangeable.  "I think some random
	cracker tripped over the guest timeout last night."

	See also {J. Random}.

	[{Jargon File}]

	(1995-03-03)

Sonata

	<operating system> The code name for the major {Mac OS}
	release due in mid-1999.

	{(http://devworld.apple.com/mkt/informed/appledirections/mar97/roadmap.html)}.

	(1997-10-15)

SONET

	{Synchronous Optical NETwork}

Sony Playstation

	{Playstation}

SORCERER

	<tool> A simple tree {parser generator} by Terence Parr
	<parrt@s1.arc.umn.edu>.

	SORCERER is suitable for translation problems lying between
	those solved by {code generator} generators and by full
	source-to-source translator generators.  SORCERER generates
	simple, flexible, top-down, tree {parsers} that, in contrast
	to code generators, may execute actions at any point during a
	tree walk.  SORCERER accepts {extended BNF} notation, allows
	{predicates} to direct the tree walk with {semantic} and
	{syntactic} context information, and does not rely on any
	particular intermediate form, parser generator, or other
	pre-existing application.

	SORCERER is included in the {Purdue Compiler-Construction Tool
	Set}.

	Version: 1.00B

	{(ftp://marvin.ecn.purdue.edu/pub/pccts/sorcerer/)}.

	E-mail: <parrt@acm.org> ("e-mail sor.tar.Z.uu" in subject).

	Mailing list: pccts-users-request@ahpcrc.umn.edu (message
	body: "subscribe pccts-users YOUR-NAME", where YOUR-NAME can
	be your name or e-mail address).

	(1994-02-15)

sorcerer's apprentice mode

	<networking> (From Johann Wolfgang von Goethe's "Der
	Zauberlehrling", via the Walt Disney film "Fantasia") A {bug}
	in a {protocol} where, under some circumstances, the receipt
	of a message causes multiple messages to be sent, each of
	which, when received, triggers the same bug.  Used especially
	of such behaviour caused by {bounce message} loops in
	{electronic mail} software.

	Compare {broadcast storm}, {network meltdown}, {software
	laser}, {ARMM}.

	{Der Zauberlehrling
	(http://unix-ag.uni-kl.de/~conrad/lyrics/zauber.html)}.

	[{Jargon File}]

	(1999-10-08)

sort

	1. <application, algorithm> To arrange a collection of items
	in some specified order.  The items - {records} in a file or
	data structures in memory - consist of one or more {fields} or
	members.  One of these fields is designated as the "sort key"
	which means the records will be ordered according to the value
	of that field.  Sometimes a sequence of key fields is
	specified such that if all earlier keys are equal then the
	later keys will be compared.  Within each field some ordering
	is imposed, e.g. ascending or descending numerical, {lexical
	ordering}, or date.

	Sorting is the subject of a great deal of study since it is a
	common operation which can consume a lot of computer time.
	There are many well-known sorting {algorithms} with different
	time and space behaviour and programming {complexity}.

	Examples are {quicksort}, {insertion sort}, {bubble sort},
	{heap sort}, and {tree sort}.  These employ many different
	data structures to store sorted data, such as {arrays},
	{linked lists}, and {binary trees}.

	2. <tool> The {Unix} utility program for sorting lines of
	files.

	{Unix manual page}: sort(1).

	(1997-02-12)

sorting

	{sort}

SOS

	1. {Scheme Object System}.

	2. An infamously {losing} text editor.  Once, back in the
	1960s, when a text editor was needed for the {PDP-6}, a hacker
	{crufted} together a {quick-and-dirty} "stopgap editor" to be
	used until a better one was written.  Unfortunately, the old
	one was never really discarded when new ones (in particular,
	{TECO}) came along.  SOS is a descendant ("Son of Stopgap") of
	that editor, and many {PDP-10} users gained the dubious
	pleasure of its acquaintance.  Since then other programs
	similar in style to SOS have been written, notably the early
	font editor BILOS /bye'lohs/, the Brother-In-Law Of Stopgap
	(the alternate expansion "Bastard Issue, Loins of Stopgap" has
	been proposed).

	3. The {PDP-10} instruction to decrease a value.  Oppose
	{AOS}.

	[{Jargon File}]

sound

	1. {audio}.

	2. <logic> An {inference system} A is sound with respect to
	another system B if A can only reach conclusions which are
	true in B.  A {type inference} system is considered sound with
	respect to a {semantics} if the type inferred for an
	expression is the same as the type inferred for the meaning of
	that expression under the semantics.

	The dual to soundness is {complete}ness.

	(1995-03-01)

Sound Blaster

	<hardware> The best known family of {sound cards} for the {IBM
	PC} from {Creative Labs}.

	[Features?  Models?  Reference?]

	(1998-04-28)

sound card

	A plug-in optional circuit card for an {IBM PC}.  It provides
	high-quality stereo sound output under program control.  A
	"{multimedia}" PC usually includes a sound card.  One of the
	best known is the {Sound Blaster}.

	[Other kinds?]

	(1995-03-01)

soundex

	<algorithm, text> An {algorithm} for encoding a word so that
	similar sounding words encode the same.  The first letter is
	copied unchanged then subsequent letters are encoded as
	follows:

		bfpv	 -> "1"
		cgjkqsxz -> "2"
		dt	  	 -> "3"
		l	  	 -> "4"
		mn	  	 -> "5"
		r	  	 -> "6"

	Other characters are ignored and repeated characters are
	encoded as though they were a single character.  Encoding
	stops when the resulting string is four characters long,
	adding trailing "0"s if it is shorter.  For example, "SMITH"
	or "SMYTHE" would both be encoded as "S530".

	(1995-01-05)

soundness

	The quality of being {sound} (2).

source

	{source code}

source code

	<language, programming> (Or "source", or rarely "source language")
	The form in which a {computer program} ({software}) is written by
	the {programmer}.  Source code is written in some formal
	{programming language} which can be {compiled} automatically into
	{object code} or {machine code} or executed by an {interpreter}.

	Source code might be stored in a {source code management} system.

	If you have the source code for a program rather than just its
	compiled, executable form, then you can, with the right tools,
	modify it to fix {bugs} or add new {features}.  This is the basis
	of the {open source} philosophy - empowering people to improve the
	software they use for the benefit of themselves and others.

	The {Jargon File} would have us believe that an old-time hacker
	might refer to source code informally as "English", with the
	implication that to him his favourite {programming language} is at
	least as readable as English.

	(2014-06-27)

source code control

	{source code management}

source code escrow

	<software> An arrangement where some {source code} is held in
	{escrow} by a third party as long as it is supported by the
	vendors, but should they cease to support it, it becomes the
	property of the purchasers so that they can arrange for its
	continued maintenance.

	(1999-12-14)

source code management

	<software> The use of software systems to help program
	developers keep track of version history of {source code}
	{modules} as well as {releases}, parallel versions ({code
	branches}), etc.  The free {CVS} was an early example, mostly
	replaced by {Subversion} and {git}.  {Perforce} is a powerful
	commercial product.  {SCCS} was once popular on {Unix} and
	{VSS} is {Microsoft}'s offering.

	(2011-12-16)

source language

	{source code}

source-level debugger

	<programming, tool> A {debugger} that shows the programmer the
	line or {expression} in the {source code} that resulted in a
	particular {machine code} instruction of a running program
	loaded in memory.  This helps the programmer to analyse a
	program's behaviour in the high-level terms like source-level
	{flow control} constructs, {procedure} calls, named
	{variables}, etc instead of {machine instructions} and memory
	locations.  Source-level debugging also makes it possible to
	step through execution a line at a time and set source-level
	{breakpoints}.

	In order to support source-level debugging, the program must
	be compiled with this option enabled so that extra information
	is included in the executable code to identify the
	corresponding positions in the source code.

	A {symbolic debugger} is one level lower - it displays symbols
	(procedure and variable names) stored in the executable but
	not individual source code lines.

	{GDB} is a widely used example of a source-level debugger.

	(2007-04-03)

source of all good bits

	<jargon, job> A person from whom (or a place from which)
	useful information may be obtained.  If you need to know about
	a program, a {guru} might be the source of all good bits.  The
	title is often applied to a particularly competent secretary.

	[{Jargon File}]

	(2001-01-27)

source package

	<software> A collection (usually an {archive} file) containing
	all the files necessary to build and modify a piece of
	software.

	A {Debian} source package includes the original source archive
	(.orig.tar.gz), Debianisation diffs
	(-<debian-version>.diff.gz) and a Debian source control file
	(-<debian-version>.dsc).

	(2000-05-31)

source route

	<messaging> An {electronic mail address} which specifies the
	route the message should take as a sequence of {hostnames}.
	It is called a source route because the route is determined at
	the source of the message rather than at each stage as is now
	more common.  The most common kind of source route is a {UUCP}
	style {bang path}, "foo!bar!baz!fred'.  The {RFC 822} syntax,
	"@foo:@bar:fred@baz", is seldom seen because most systems
	which understand RFC 822 also perform automatic routing based
	on the destination hostname.  A third, intermediate, form is
	sometimes seen: "fred%baz%bar@foo.com".

source routing

	{source route}

southbridge

	<architecture> The {integrated circuit} in a {core logic}
	{chip set} that controls the {IDE} bus, {USB}, {plug-n-play}
	support, the {PCI}-{ISA} bridge, keyboard/mouse controller,
	{power management}, and various other features.  One brand
	provides {sound card} functions.

	Other functions are provided by the {northbridge} chip.

	{(http://maximumpc.com/terminator/terminator_s.html)}.

	(2000-01-15)

SP

	Simplicity and Power.

	A {Prolog}-like language.

	["Simplicity and Power - Simplifying Ideas in Computing",
	J.G. Wolff, Computer J 33(6):518-534 (Dec 1990)].

	(1994-12-01)

SP2

	{SP/2}

	[Which is correct?]

SP/2

	Scalable POWERparallel 2.

	A line of {RISC}-based processors from {IBM} using {symmetric
	multi-processing}.  SP/2 replaced SP/1.

	The SP2 is a classical {MPP} design, based on a {Shared
	Nothing} architecture.  The SP2 is an example of the
	{Distributed Memory Processor} (DMP) parallel model, with
	individual nodes interconnected over a {LAN}, or a
	High-Performance Switch (HPS).  SP2 systems can have from 2 to
	512 nodes.  Each node is a {RISC system/6000} running {IBM}'s
	{AIX} {operating system}.

	The SP2 supports applications in both technical and commercial
	environments.  In terms of commercial applications, the SP2 is
	typically being used in support of, {MIS}/{DSS} including
	{data mining}, {business applications} e.g. {SAP}, {Alternative
	Mainframe}/{Mainframe Offload}, {LAN Server Consolidation}.

	(1995-03-07)

space

	<character> The space character, {ASCII} 32.

	See {octal forty}.

	(2007-01-29)

space bar

	<hardware> (Or "space key") The extra-wide {key} at the near
	edge of every {keyboard} that is used to enter a {space}
	character.

	In some {Graphical User Interfaces}, the space bar can be used
	to select the current item where the context does not allow
	text entry, e.g. when the {input focus} is on a {push button}
	or {tick box}.

	(2007-01-29)

space-cadet keyboard

	A now-legendary device used on {MIT} {Lisp} machines, which
	inspired several still-current jargon terms and influenced the
	design of {Emacs}.  It was equipped with no fewer than *seven*
	shift keys: four keys for {bucky bits} ("control", "meta",
	"hyper", and "super") and three like regular shift keys,
	called "shift", "top", and "front".  Many keys had three
	symbols on them: a letter and a symbol on the top, and a Greek
	letter on the front.  For example, the "L" key had an "L" and
	a two-way arrow on the top, and the Greek letter lambda on the
	front.  By pressing this key with the right hand while playing
	an appropriate "chord" with the left hand on the shift keys,
	you could get the following results:

	 L		lowercase l

	 shift-L	uppercase L

	 front-L	lowercase lambda

	 front-shift-L	uppercase lambda

	 top-L		two-way arrow

	(front and shift are ignored) And of course each of these
	might also be typed with any combination of the control, meta,
	hyper, and super keys.  On this keyboard, you could type over
	8000 different characters!  This allowed the user to type very
	complicated mathematical text, and also to have thousands of
	single-character commands at his disposal.  Many hackers were
	actually willing to memorise the command meanings of that many
	characters if it reduced typing time (this attitude obviously
	shaped the interface of {Emacs}).  Other hackers, however,
	thought that many {bucky bits} was overkill, and objected that
	such a keyboard can require three or four hands to operate.

	See {cokebottle}, {double bucky}, {meta bit}, {quadruple
	bucky}.

	Note: early versions of this entry incorrectly identified the
	space-cadet keyboard with the "Knight keyboard".  Though both
	were designed by Tom Knight, the latter term was properly
	applied only to a keyboard used for {ITS} on the {PDP-10} and
	modelled on the Stanford keyboard (as described under {bucky
	bits}).  The true space-cadet keyboard evolved from the Knight
	keyboard.

	[{Jargon File}]

	(1994-12-05)

space complexity

	<complexity> The way in which the amount of storage space
	required by an {algorithm} varies with the size of the problem
	it is solving.  Space complexity is normally expressed as an
	order of magnitude, e.g. O(N^2) means that if the size of the
	problem (N) doubles then four times as much working storage
	will be needed.

	See also {computational complexity}, {time complexity}.

	(1996-05-08)

space key

	{space bar}

space leak

	A data structure which grows bigger, or lives longer, than
	might be expected.  Such unexpected memory use can cause a
	program to require more {garbage collections} or to run out of
	{heap}.  Space leaks in {functional programs} usually result
	from excessive laziness.  For example, the {Haskell} function

		sum []     = 0
		sum (x:xs) = x + sum xs

	when applied to a list will build a chain of closures for the
	additions and only when it reaches the end of the list will it
	perform the additions and free the storage.  Another example
	is the function

		mean l = sum l / length l

	The sum function forces the entire list l to be evaluated and
	built in the heap.  None of it can be garbage collected until
	the length function has consumed it.

SPACEWAR

	<games> A space-combat simulation game for the {PDP-1} written
	in 1960-61 by Steve Russell, an employee at {MIT}.  SPACEWAR
	was inspired by E. E. "Doc" Smith's "Lensman" books, in which
	two spaceships duel around a central sun, shooting torpedoes
	at each other and jumping through hyperspace.  MIT were
	wondering what to do with a new {vector video display} so
	Steve wrote the world's first video game.  Steve now lives in
	California and still writes software for {HC12} {emulators}.

	SPACEWAR aficionados formed the core of the early hacker
	culture at {MIT}.  Nine years later, a descendant of the game
	motivated {Ken Thompson} to build, in his spare time on a
	scavenged {PDP-7}, the {operating system} that became {Unix}.
	Less than nine years after that, SPACEWAR was commercialised
	as one of the first video games; descendants are still
	{feep}ing in video arcades everywhere.

	["SPACEWAR" or "Space Travel"?]

	[{Jargon File}]

	(2004-07-19)

SPADE

	Specification Processing And Dependency Extraction.
	Specification language.  G.S. Boddy, ICL Mainframes Div,
	FLAG/UD/3DR.003

spaghetti code

	<programming> A pejorative term for code with a complex and
	tangled {control structure}, especially one using many
	{GOTOs}, {exceptions}, or other "unstructured" branching
	constructs.  The synonym "kangaroo code" has been reported,
	doubtless because such code has so many jumps in it.

	{Object-oriented programming} may also feature {spaghetti
	inheritance} or {spaghetti with meatballs code}.

	[{Jargon File}]

	(2013-07-31)

spaghetti inheritance

	<humour, programming> A term used by users of {object-oriented}
	languages with inheritance, such as {Smalltalk} for a convoluted
	{class}-subclass graph, often resulting from carelessly deriving
	subclasses from other classes just for the sake of reusing their
	code.  Coined to discourage such practice, through
	guilt-by-association with {spaghetti code}.

	[{Jargon File}]

	(2013-07-31)

spaghetti with meatballs code

	<humour, programming> {Object-oriented code} that depends on messy
	procedural {spaghetti code}.  May also feature {spaghetti
	inheritance}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-07-31)

spam

	1. <messaging> (From Hormel's Spiced Ham, via the Monty Python
	"Spam" song) To post irrelevant or inappropriate messages to
	one or more {Usenet} {newsgroups}, {mailing lists}, or other
	messaging system in deliberate or accidental violation of
	{netiquette}.

	It is possible to spam a newsgroup with one well- (or ill-)
	planned message, e.g. asking "What do you think of abortion?"
	on soc.women.  This can be done by {cross-post}ing, e.g. any
	message which is crossposted to alt.rush-limbaugh and
	alt.politics.homosexuality will almost inevitably spam both
	groups.  (Compare {troll} and {flame bait}).

	Posting a message to a significant proportion of all
	newsgroups is a sure way to spam Usenet and become an object
	of almost universal hatred.  Canter and Siegel spammed the net
	with their Green card post.

	If you see an article which you think is a deliberate spam, DO
	NOT post a {follow-up} - doing so will only contribute to the
	general annoyance.  Send a polite message to the poster by
	private e-mail and CC it to "postmaster" at the same address.
	Bear in mind that the posting's origin might have been forged
	or the apparent sender's account might have been used by
	someone else without his permission.

	The word was coined as the winning entry in a 1937 competition
	to choose a name for Hormel Foods Corporation's "spiced meat"
	(now officially known as "SPAM luncheon meat").  Correspondant
	Bob White claims the modern use of the term predates Monty
	Python by at least ten years.  He cites an editor for the
	Dallas Times Herald describing Public Relations as "throwing a
	can of spam into an electric fan just to see if any of it
	would stick to the unwary passersby."

	{Usenet} newsgroup: {news:news.admin.net-abuse}.

	See also {netiquette}.

	2. (A narrowing of sense 1, above) To indiscriminately send
	large amounts of unsolicited {e-mail} meant to promote a
	product or service.  Spam in this sense is sort of like the
	electronic equivalent of junk mail sent to "Occupant".

	In the 1990s, with the rise in commercial awareness of the
	net, there are actually scumbags who offer spamming as a
	"service" to companies wishing to advertise on the net.  They
	do this by mailing to collections of {e-mail} addresses,
	Usenet news, or mailing lists.  Such practises have caused
	outrage and aggressive reaction by many net users against the
	individuals concerned.

	3. (Apparently a generalisation of sense 2, above) To abuse
	any network service or tool by for promotional purposes.

	"AltaVista is an {index}, not a promotional tool.  Attempts to
	fill it with promotional material lower the value of the index
	for everyone.  [...] We will disallow {URL} submissions from
	those who spam the index.  In extreme cases, we will exclude
	all their pages from the index." -- {Altavista}.

	4. <jargon, programming> To crash a program by overrunning a
	fixed-size {buffer} with excessively large input data.

	See also {buffer overflow}, {overrun screw}, {smash the stack}.

	5. <chat, games> (A narrowing of sense 1, above) To flood any
	{chat} forum or {Internet game} with purposefully annoying
	text or macros.  Compare {Scrolling}.

	(2003-09-21)

spamdex

	<World-Wide Web> (Presumably from "{spam}", "index") {word
	spamming}.

	"Spamdexing has come a long way from the halcyon days of the
	summer of 1995.  Back then, all one needed to do was add the
	word 'sex' a thousand times at the end of a Web page to
	attract attention from the likes of Lycos.  The search-engine
	operators caught on fast" -- {Andrew Leonard, Hotwired 1996
	(http://packet.com/packet/leonard/96/32/index3a.html)}.

	(1997-04-09)

spamming

	{spam}

spanning tree algorithm

	<networking, standard> An {IEEE 802.1} standard providing
	distributed {routing} over multiple {LAN}s connected by
	{bridges}.

	(2010-09-26)

SPAR

	Early system on Datatron 200 series.  Listed in CACM 2(5):16
	(May 1959).

SPARC

	1. <processor> {Scalable Processor ARChitecture}.

	2. <database> {ANSI/SPARC Architecture}.

	(1999-02-27)

SPARC International, Inc.

	<body> An organisation established to promote the {Scalable
	Processor ARChitecture} (SPARC).  Their main service is
	conformance testing.  They also produce the "SPARC flash"
	newsletter and publish lists of SPARC compliant machines
	tested by SPARC International to be {binary compatible} with
	other compliant machines.

	{(http://sparc.com/)}.

	SPARC(R) is a registered trademark of SPARC International,
	Inc. in the United States and other countries.

	(1995-01-04)

SPARCStation

	<computer> A family of {workstations} from {Sun Microsystems}
	based on the {SPARC} architecture.  Models include the
	{SPARCStation 1}, 1+, SLC, {SPARCStation ELC}, IPX,
	{SPARCStation 5}, {SPARCStation 10} and {SPARCStation 20}.

	(1994-11-23)

SPARCstation 10

	<computer> A {SPARCStation} with a 4-way associative {data
	cache} and a five-way associative {instruction cache}.  The
	10/31, 10/41 and 10/51 also have a {secondary cache} not
	present on earlier {SPARCStations}.

	(1994-12-02)

SPARCstation 20

	<computer> A {SPARCStation} based on the {HyperSPARC}
	processor.  The 20 is compatible with the earlier
	{SPARCstation 10}.  It has a {clock rate} of 100MHz and
	delivers a {SPECfp92} of 127.6.

	The SPARCstation 20 Model 71 and 712MP uses the 75MHz
	{SuperSPARC} processors that give a 35% and 14% boost to
	SPECint92 and SPECfp92 respectively compared to the 61/612MP.

	(1994-12-02)

SPARCsystem 4

	<computer> A computer built with the {MicroSPARC ii} 70MHz
	{CPU} as used in the {SPARC 5} Model 70.  The SPARCsystem 4 is
	basically a cheaper, cut-down SPARC 5.  It has an 8-bit {pixel
	accelerator} instead of the SBus Turbo GX card.  Memory
	expansion is limited to 160 MB.  Availability was planned for
	March/April 1995.

	(1995-02-07)

SPARC Xterminal 1

	<computer> {Sun}'s lowest cost networked {Unix} desktop, it is
	board-upgradeable to a {SPARC 4}.  It comes with a choice of
	{frame buffers}: 8-bit colour, {Turbo GX}, or Turbo GX plus.
	This product was expected to replace the {SPARCclassic X}.  UK
	availability was planned for March 1995.

	(1995-02-08)

SPARK

	<language> An annotated subset of {Ada} supported by tools
	supplied by {Praxis Critical Systems} (originally by PVL).

	{(http://sparkada.com)}.

	(2001-07-12)

SPARK Annotation Language

	<language> (SAL) {ICL}, Ltd.  Used in the verification of
	{SPARK} programs against {Z} specifications.

	(1994-12-08)

SPARKS

	<language> Fortran superset, used in Fundamentals of Data
	Structures, E.  Horowitz & S. Sahni, Computer Science Press
	1976.

	(2007-03-21)

sparse

	A sparse {matrix} (or {vector}, or {array}) is one in which
	most of the elements are zero.  If storage space is more
	important than access speed, it may be preferable to store a
	sparse matrix as a list of (index, value) pairs or use some
	kind of {hash} scheme or {associative memory}.

	(1995-01-16)

Spatial Technologies

	<company> Distributors of the {ACIS} {solid modelling} engine.

	[More info?]

	(1999-06-29)

spawn

	<operating system> To create a {child process} in a
	{multitasking} {operating system}.  E.g. {Unix}'s {fork}
	{system call} or one of the spawn() library routines provided
	by most {MS-DOS}, {Novell NetWare} and {OS/2} {C} compilers -
	spawnl(), spawnle(), etc.

	(1995-03-28)

SPC

	1. <business> {Statistical Process Control}.  Something to do
	with {quality management}.

	[What is it?]

	2. <body> {Software Productivity Centre}.

	3. <company> {Software Publishing Corporation}.

	4. <security> {Software Publishing Certificate}.

SPD

	{Serial Presence Detect}

SPDL

	Standard Page Description Language

	A draft within the ODA standard.

	(1995-03-28)

SPE

	{Software Practice and Experience}

Speakeasy

	Simple array-oriented language with numerical integration and
	differentiation, graphical output, aimed at statistical
	analysis.

	["Speakeasy", S. Cohen, SIGPLAN Notices 9(4), (Apr 1974)].

	["Speakeasy-3 Reference Manual", S. Cohen et al. 1976].

speaker

	1. <audio, hardware> {loudspeaker}.

	2. The person who is (assumed to be) talking.

	(1996-12-01)

SPEC

	<benchmark, body> Standard Performance Evaluation Corporation.

	A non-profit corporation registered in California formed to
	"establish, maintain and endorse a standardized set of
	relevant {benchmarks} that can be applied to the newest
	generation of high-performance computers" (from SPEC's
	bylaws).  The founders believe that the user community will
	benefit greatly from an objective series of
	applications-oriented tests, which can serve as common
	reference points and be considered during the evaluation
	process.

	SPEC develops suites of {benchmarks} intended to measure
	computer performance.  These are available to the public for a
	fee covering development and administration costs.

	The current (14 Nov 94) SPEC benchmark suites are: {CINT92}
	(CPU intensive integer benchmarks); {CFP92} (CPU intensive
	floating-point benchmarks); SDM (UNIX Software Development
	Workloads); SFS (System level file server (NFS) workload).

	{Results (ftp://ftp.cdf.toronto.edu/pub/spectable)}.

	SPEC also publishes a quarterly report of SPEC news and
	results, The SPEC Newsletter.  Some issues are {here
	(http://performance.netlib.org/performance/html/spec.html)}.

	There is a {FAQ} about SPEC {here
	(http://performance.netlib.org/performance/html/specfaq.html)}.

	(1994-11-14)

Spec

	A specification language.  It expresses {black box} interface
	specifications for large distributed systems with {real-time}
	constraints.  It incorporates conceptual models, {inheritance}
	and the event model.  It is a descendant of {MSG.84}.

	["An Introduction to the Specification Language Spec",
	V. Berzins et al, IEEE Software 7(2):74-84 (Mar 1990)].

spec

	{specification}

SPECbase_fp92

	A variant of {SPECfp92} that reports "baseline" results, using
	stricter run rules.

	(1994-11-14)

SPECbase_int92

	A variant of {SPECint92} that reports "baseline" results,
	using stricter run rules.

	(1994-11-14)

SPECbaserate

	A variant of {SPECrate} that reports "baseline" results, using
	stricter run rules.

	See {SPECrate_base_fp92}, {SPECrate_base_int92}.

	(1994-11-14)

SPEC CFP92

	<benchmark> A {benchmark} suite from {SPEC} containing 14
	programs performing {floating-point} computations.  12 are
	written in {Fortran} and two in {C}.  They can be used to
	estimate the performance of CPU, memory system, and compiler
	code generation.

	The individual programs are Circuit Design, Simulation (2x),
	Quantum Chemistry (3x), Electromagnetism, Geometric
	Translation, Optics, Robotics, Medical Simulation, Quantum
	Physics, Astrophysics, NASA Kernels.

	The benchmark suite can be used either for speed measurement,
	resulting in {SPEC ratios}, or for throughput measurement,
	resulting in {SPEC rates}

	(1994-11-15)

SPEC CINT92

	<benchmark> A {benchmark} suite from {SPEC}, which contains
	six benchmarks in {C} performing integer computations. They
	can be used to estimate the performance of CPU, memory system,
	and compiler code generation.

	The individual programs are Logic Design (2x), Interpreter,
	Data Compression, Spreadsheet.  The approximate size of the
	suite is 85500 lines of source code without comments.

	The benchmark suite can be used either for speed measurement,
	resulting in {SPEC ratios}, or for throughput measurement,
	resulting in {SPEC rates}

	(1994-11-15)

SPECfp92

	<benchmark> A {benchmark} result derived from the results of a
	set of CPU intensive floating-point benchmarks from {SPEC}
	(the {geometric mean} of the 14 {SPEC ratios} of {CFP92}).
	SPECfp92 can be used to estimate a machine's single-tasking
	performance on {floating-point} code.

	{Results (ftp://ftp.nosc.mil/pub/aburto/specfp92.tbl)}.

	(1994-11-14)

SPECIAL

	<language, specification> A specification language, developed
	at {SRI} around 1976, used to specify the {abstract machines}
	in {Hierarchical Design Methodology} (HDM).

	["SPECIAL - A Specification and Assertion Language",
	L. Robinson et al, TR CSL-46, SRI, Jan 1977].

	(2012-07-08)

special-case

	To write unique code to handle input to or situations arising
	in a program that are somehow distinguished from normal
	processing.  This would be used for processing of mode
	switches or interrupt characters in an interactive interface
	(as opposed, say, to text entry or normal commands), or for
	processing of {hidden flags} in the input of a batch program
	or {filter}.

	[{Jargon File}]

Special Interest Group

	(SIG) One of several technical areas, sponsored by the
	{Association for Computing Machinery}.  Well-known SIGs
	include SIGPLAN (the Special Interest Group on Programming
	Languages), SIGARCH (the Special Interest Group for Computer
	Architecture) and SIGGRAPH (the Special Interest Group for
	Computer Graphics).

	(1994-10-27)

specialisation

	A reduction in generality, usually for the sake of increased
	efficiency.  If a piece of code is specialised for certain
	values of certain variables (usually function arguments), this
	is known as "{partial evaluation}".  In a language with
	{overloading} (e.g. {Haskell}), an overloaded function might be
	specialised to a non-overloaded instance at compile-time if
	the types of its arguments are known.

specification

	<jargon> (spec) A document describing how some system should
	work.

	(2001-02-06)

specific markup

	In computerised document preparation, a method of adding
	formatting commands to the text to control layout, such as new
	line, new page, centre text etc.

	Compare {generic markup}.

	(2001-02-06)

SPECint92

	<benchmark> A {benchmark} result derived from the results of a
	set of integer benchmarks from {SPEC} (geometric mean of the 6
	{SPEC ratios} of {CINT92}) which can be used to estimate a
	machine's single-tasking performance on integer code.

	SPECint92 obsoletes SPECint89.

	{Results (ftp://ftp.nosc.mil/pub/aburto/specin92.tbl)}.

	See also {SPECbase_int92}.

	(1994-11-14)

SPECmark

	<benchmark> The average of a set of {floating-point} and
	integer {SPEC} {benchmark} results.

	While the old average {SPECmark89} has been popular with the
	industry and the press, {SPEC} has intentionally *not* defined
	an average "SPECmark92" over all {CPU} {benchmarks} of the
	1992 suites ({CINT92} and {CFP92}), for the following reasons:
	With 6 integer ({CINT92}) and 14 {floating-point} ({CFP92})
	benchmarks, the average would be biased too much toward
	floating-point.  Customers' workloads are different, some
	integer-only, some floating-point intensive, some mixed.
	Current processors have developed their strengths in a more
	diverse way (some more emphasizing integer performance, some
	more floating-point performance) than in 1989.

	Some SPECmark results are available {here
	(ftp://ftp.cdf.toronto.edu/pub/spectable)}.

	See also {SPECint92}, {SPECfp92}, {SPECrate_int92},
	{SPECrate_fp92}.

	(1994-11-15)

SPECmark89

	<benchmark> An old {SPECmark} {benchmark} result derived from
	a set of {floating-point} and integer {benchmarks}.  It is the
	{geometric mean} of ten {SPEC ratios} of the outdated 1989
	{SPEC} benchmark suite.  The use of SPECmark89 is strongly
	discouraged, having been superseded by {CINT92} and {CFP92}.

	(1994-11-29)

SPECOL

	["SPECOL - A Computer Enquiry Language for the
	Non-Programmer", B.T. Smith, Computer J 11:121 (1968)].

SPEC rate

	<benchmark> Results of the throughput measurement using {SPEC}
	{benchmark} suites {CINT92} and {CFP92}.  With the throughput
	measurement method, several copies of a given benchmark are
	executed.  The method is particularly suitable for
	{multiprocessor} systems.

	The results, called SPEC rate, express how many jobs of a
	particular type (characterised by the individual benchmark)
	can be executed in a given time (The SPEC reference time
	happens to be a week, the execution times are normalized with
	respect to a {VAX 11/780}).  The SPEC rates therefore
	characterise the capacity of a system for compute-intensive
	jobs of similar characteristics.

	See also {SPEC ratio}.

	(1994-11-14)

SPECrate_base_fp92

	<benchmark> A variant of {SPECrate_fp92} that reports
	"baseline" results, using stricter run rules.

	(1994-11-15)

SPECrate_fp92

	<benchmark> A {benchmark} result derived from the results of a
	set of {floating-point} benchmarks (the {geometric mean} of 14
	{SPEC rates} from {CFP92}) run multiple times simultaneously,
	which can be used to estimate a machine's overall
	{multi-tasking} throughput for {floating-point} code.  It is
	typically used on {multiprocessor} machines.

	SPECrate_fp92 obsoletes SPECfpThruput89.

	(1994-11-14)

SPECrate_int92

	<benchmark> The integer {SPECrate} derived from the results of
	a set of integer benchmarks (the {geometric mean} of six {SPEC
	rates} from {CINT92}) run multiple times simultaneously, and
	can be used to estimate a machine's overall {multi-tasking}
	throughput for integer code.  It is typically used on
	{multiprocessor} machines.

	SPECrate_int92 obsoletes SPECintThruput89.

	See also {SPECbaserate}.

	(1994-11-14)

SPEC ratio

	<benchmark> Results for each individual {benchmark} of the
	{SPEC} benchmark suites, for example {CINT92} and {CFP92},
	expressed as the ratio of the wall clock time to execute one
	single copy of the benchmark, compared to a fixed "SPEC
	reference time", which was chosen early-on as the execution
	time on a {VAX 11/780}.

	See also {SPEC rate}.

	(1994-11-14)

Spectral Band Replication

	<audio, compression> (SBR) Guessing the nontransmitted higher
	frequency range of a compressed audio file by some helper bits
	(transmiited with the stream) and the transmitted base band.
	SBR allows a restoration (not reconstruction) of the upper
	frequency range without lots of bits.  It was developed by
	{Coding Technology (http://codingtechnology.com/)}, and is
	useful for medium and high quality coding at low and medium
	data rates.  It is used by {Digital Radio Mondiale} and {MP3
	Pro}.

	(2004-12-10)

Spectrum

	{ZX Spectrum}

speculative evaluation

	<parallel> A technique used in {parallel processing} where
	some evaluation may be started before it is known whether it
	is needed (Eager evaluation).  This may result in some wasted
	processing and may introduce unnecessary non-terminating
	processes but it can reduce the overall run time by making
	some needed results available earlier than they would be
	otherwise.

	Opposite: {conservative evaluation}.

	(1995-05-05)

speculative execution

	<processor> A technique allows a {superscalar} processor to
	keep its {functional units} as busy as possible by executing
	instructions before it is known that they will be needed.

	The {Intel P6} uses speculative execution.

	Compare {branch prediction}, {speculative evaluation}.

	(1995-05-05)

Speech Application Programming Interface

	<programming, standard> (SAPI) {Microsoft}'s standard {API}
	for speech synthesis and {speech recognition} in {Windows 95}.
	The idea is to let developers try out and use various
	low-level speech software from any number of verndors, while
	retaining the same API.

	Mike Rozak is the lead of the SAPI project at Microsoft.
	Numerous major speech vendors have announced SAPI-support
	plans.  {SRAPI}, the competing speech recognition API by
	{Lotus}/WordPerfect, is fast becoming obsolete.

	(1996-03-04)

speech recognition

	<application> (Or voice recognition) The identification of
	spoken words by a machine.  The spoken words are digitised
	(turned into sequence of numbers) and matched against coded
	dictionaries in order to identify the words.

	Most systems must be "trained," requiring samples of all the
	actual words that will be spoken by the user of the system.
	The sample words are digitised, stored in the computer and
	used to match against future words.  More sophisticated
	systems require voice samples, but not of every word.  The
	system uses the voice samples in conjunction with dictionaries
	of larger vocabularies to match the incoming words.  Yet other
	systems aim to be "speaker-independent", i.e. they will
	recognise words in their vocabulary from any speaker without
	training.

	Another variation is the degree with which systems can cope
	with connected speech.  People tend to run words together,
	e.g. "next week" becomes "neksweek" (the "t" is dropped).  For
	a voice recognition system to identify words in connected
	speech it must take into account the way words are modified by
	the preceding and following words.

	It has been said (in 1994) that computers will need to be
	something like 1000 times faster before large vocabulary (a
	few thousand words), speaker-independent, connected speech
	voice recognition will be feasible.

	(1995-05-05)

Speech Recognition Application Program Interface

	<programming> (SRAPI) {Novell, Inc.}'s high level {API} for
	{speech recognition} which will be rolled out with
	{WordPerfect} 7.0 and {Perfect Office} 7.0.  SRAPI is in
	competition with {SAPI} from {Microsoft}, a high level API
	which currently addresses command and control (but not yet
	dictation).

	[Byte; March 1996; page 30; "Battle of the Dictaion APIs"].

	(1996-03-12)

speech synthesis

	The generation of an sound waveform of human speech from a
	textual or phonetic description.  See also {speech
	recognition}.

	There are demonstrations which {say a number
	(http://cs.yale.edu/cgi-bin/saynumber.au)} or {say a
	phrase (http://wwwtios.cs.utwente.nl/say/form/)}.

SPEED

	Early system on LGP-30.  Listed in CACM 2(5):16 (May 1959).

Speedcoding

	<language> A {pseudocode} {interpreter} for mathematics on
	{IBM 701} and {IBM 650} written by John Backus in 1953.

	[Sammet 1969, p. 130].

	(2000-03-27)

Speedcoding 3

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

	(2000-03-27)

SPEEDEX

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

speedometer

	A pattern of lights displayed on a linear set of LEDs (today)
	or nixie tubes (yesterday, on ancient mainframes).  The
	pattern is shifted left every N times the operating system
	goes through its {main loop}.  A swiftly moving pattern
	indicates that the system is mostly idle; the speedometer
	slows down as the system becomes overloaded.  The speedometer
	on Sun Microsystems hardware bounces back and forth like the
	eyes on one of the Cylons from the wretched "Battlestar
	Galactica" TV series.

	Historical note: One computer, the GE 600 (later Honeywell
	6000) actually had an *analog* speedometer on the front panel,
	calibrated in instructions executed per second.

	[{Jargon File}]

spell

	{incantation}

spelling flame

	<messaging> A {Usenet} posting ostentatiously correcting a
	previous article's spelling, possibly as a way of casting
	scorn on the point the article was trying to make, instead of
	actually responding to that point (compare {dictionary
	flame}).  Of course, people who are more than usually slovenly
	spellers are prone to think *any* correction is a spelling
	flame.  It's an amusing comment on human nature that spelling
	flames themselves often contain spelling errors.

	[{Jargon File}]

	(1994-11-22)

Sperry Corporation

	<company> The company which merged with the {Burroughs
	Corporation} to form {Unisys Corporation}.  Divisions included
	{Sperry Univac}, Sperry Flight Systems, and others.  Some of
	these were sold off after the merger.

	(1995-03-27)

Sperry Univac

	<company> One of the divisions of {Sperry Corporation} at the
	time that company merged with the {Burroughs Corporation} to
	form {Unisys Corporation}.

	[Connection with the {Univac} computer?]

	(1994-11-22)

SPG

	System Program Generator.  A compiler-writing language.

	["A System Program Generator", D. Morris et al, Computer J
	13(3) (1970)].

SPGA

	{Staggered Pin Grid Array}

SPI

	1. <company> {Software in the Public Interest, Inc.}.

	2. <hardware> {Serial Peripheral Interface}.

	(2003-07-13)

Spice Lisp

	<language> A flavour of {Lisp}, the sources of which (in Lisp)
	are available from {CMU}.

	(1998-03-14)

SPID

	Service Provider ID

spider

	<World-Wide Web> (Or "robot", "crawler") A program that
	automatically explores the {World-Wide Web} by retrieving a
	document and recursively retrieving some or all the documents
	that are referenced in it.  This is in contrast with a normal
	{web browser} operated by a human that doesn't automatically
	follow links other than {inline images} and {URL redirection}.

	The {algorithm} used to pick which references to follow
	strongly depends on the program's purpose.  {Index}-building
	spiders usually retrieve a significant proportion of the
	references.  The other extreme is spiders that try to validate
	the references in a set of documents; these usually do not
	retrieve any of the links apart from redirections.

	The {standard for robot exclusion} is designed to avoid some
	problems with spiders.

	Early examples were {Lycos} and {WebCrawler}.

	{Home
	(http://info.webcrawler.com/mak/projects/robots/robots.html)}.

	(2001-04-30)

Spiderweb

	<tool> A program for creating versions of {Knuth}'s {WEB}
	self-documenting programs ("{literate programming}").

	{(ftp://princeton.edu/)}.

	(1999-08-26)

spiffy

	/spi'fee/ 1. Said of programs having a pretty, clever, or
	exceptionally well-designed interface. "Have you seen the
	spiffy {X} version of {empire} yet?"  This was common
	mainstream slang during the 1940s.

	2. Said sarcastically of a program that is perceived to have
	little more than a flashy interface going for it.  Which
	meaning should be drawn depends delicately on tone of voice
	and context.

	[{Jargon File}]

spike

	<jargon> To defeat a selection mechanism by introducing a
	(sometimes temporary) device that forces a specific result.
	The word is used in several industries; telephone engineers
	refer to spiking a relay by inserting a pin to hold the relay
	in either the closed or open state, and railroaders refer to
	spiking a track switch so that it cannot be moved.  In
	programming environments it normally refers to a temporary
	change, usually for testing purposes (as opposed to a
	permanent change, which would be called {hard-coded}).

	(1999-10-18)

spill

	{register spilling}

spim

	<messaging> (From {spam} and {IM}) Unsolicited commercial
	messages sent via an {instant messaging} system, instant
	messenger spam.

	(2008-01-21)

spin

	<programming, jargon> Equivalent to {buzz}.  More common among
	{C} and {Unix} programmers.

	[{Jargon File}]

	(2008-01-21)

spin control

	<graphical user interface> A type of input {control} available
	on most {graphical user interfaces}, consisting of a {text
	box} or {list control} with associated up and down buttons.
	The user can either click in the text box and type a number or
	select an item from the list by clicking on it directly, or
	they can repeatedly select the next or previous value by
	clicking the up or down button.

	(2008-09-26)

spinner

	{spin control}

spiral model

	<programming> A {software life-cycle} model which supposes
	incremental development, using the {waterfall model} for each
	step, with the aim of managing risk.  In the spiral model,
	developers define and implement features in order of
	decreasing priority.

	[Barry Boehm, "A Spiral Model of Software Development and
	Enhancement", ACM SIGSOFT Software Engineering Notes, August
	1986].

	[Barry Boehm "A Spiral Model of Software Development and
	Enhancement" IEEE Computer, vol.21, #5, May 1988, pp 61-72].

	[Better explanation?]

	(1997-11-23)

SPIT

	Language for IBM 650.  (See IT).

SPITBOL

	SPeedy ImplemenTation of snoBOL.  "Macro SPITBOL - A SNOBOL4
	Compiler", R.B.K. Dewar et al, Soft Prac & Exp 7:95-113, 1971.

	Current versions: SPITBOL-68000, Sparc SPITBOL from Catspaw
	Inc, (719)539-3884.

spiware

	<spelling> Misspelling of {spyware}.

	(2008-10-07)

SP/k

	<language> (Subset PL/I, k=1..8) A series of {PL/I} subsets,
	simplified for student use.

	["SP/k: A System for Teaching Computer Programming", R.C. Holt
	et al, CACM 20(5):301-309, May 1977].

	(1997-12-27)

SPL

	1. Synchronous Programming Language.  A DSP language.
	"Introduction to the SPL Compiler", Computalker Consultants,
	1986.

	2. Space Programming Language.  Realtime language used by the
	US Air Force for aerospace software.  Aka SPL/J6.  Similar to
	JOVIAL.  "Space Programming Language Development", SAMSO TP
	70-325, System Development Corp (Sep 1970).  (See CLASP).

	3. System Programming Language.  HP, 1977.  An ALGOL-like
	language for the HP3000 computer allowing inline assembly
	code.  MPE, the OS for the HP3000 was written in SPL.
	Pub.No.30000-90024, HP.  See also {SPLash!}.

	4. Systems Programming Language.

	PRIME Computer, 80's.  A variant of PL/I used on PRIME
	computers.  PL/I subset G, less I/O plus a few extensions.
	SPL User's Reference Guide, Prime.  (See PL/P.)

	5. Systems Programming Language.

	A PL/I subset/extension for the P1000.

	D.B. Wortman, U Toronto.

	Philips Data Sys, Netherlands, 1971.

	Symbolic constants, pointer arithmetic, inline assembly code.
	Used to implement compilers, operating systems, and database.

	["Experiences With SPL", J. Klunder in Machine Oriented Higher
	Level Languages, W. van der Poel, N-H 1974, pp. 385-393].

	[Can 4 and 5 be the same?]

	6. Student Programming Language.

	A translator-interpreter for a dialect of {PL/I}.

	7. {Set Priority Level}

	[{Jargon File}]

	(1995-02-07)

SPL/1

	{SPL/I}

SPLash!

	1. Software Research Northwest, 1987.  Compiler for SPL[3].

	2. Systems Programming LAnguage for Software Hackers.
	Mentioned in TeX for the Impatient, Paul W. Abrahams, A-W
	1990.

splash screen

	<programming> An initial screen displayed by interactive
	software, usually containing a logo, version information,
	author credits and/or a {copyright} notice.

	The term originated among {Macintosh} users and spread, the
	synonym {banner} was once also used.

	[{Jargon File}]

	(1998-04-28)

splat

	1. Name used in many places (DEC, IBM, and others) for the
	asterisk ("*") character (ASCII 0101010).  This may derive
	from the "squashed-bug" appearance of the asterisk on many
	early line printers.

	2. Name used by some {MIT} people for the "#" character (ASCII
	35).

	3. (Rochester Institute of Technology) The {feature key} on a
	Mac (same as {alt}).

	4. An obsolete name used by some people for the
	{Stanford}/{ITS} {extended ASCII} circle-x character.  This
	character is also called "blobby" and "frob", among other
	names; it is sometimes used by mathematicians as a notation
	for "tensor product".

	5. An obsolete name for the semi-mythical {Stanford} {extended
	ASCII} circle-plus character.

	See also {ASCII}.

	[{Jargon File}]

	(1995-01-19)

SPL/I

	Signal Processing Language One.

	(Or "SPL/1") A language designed by {Intermetrics} for
	acoustic {signal processing}.  It has graphics and
	multiprocessing features.

	["SPL/I Language Reference Manual", M.S. Kosinski,
	Intermetrics Report 172-1 (July 1976)].

	(1995-01-19)

SPLINTER

	A {PL/I} {interpreter} with debugging features.

	[Sammet 1969, p.600].

	(1995-01-19)

split

	{chunker}

Split-C

	Parallel extension of {C} for distributed memory
	multiprocessors.  Aims to provide efficient low-level access
	to the underlying machine.

	{CM5 (ftp://ftp.cs.berkeley.edu/ucb/CASTLE/Split-C)}.
	Mail-list: split-c@boing.cs.berkeley.edu.

splot

	<graphics, tool> A graph plotting package from {Stanford
	University} which produces {encapsulated PostScript}.

	splot is more flexible than {gnuplot} in producing histograms,
	and you can set {font} and symbol sizes individually.

	(1997-09-26)

SPLX

	<language> Specification Language for Parallel cross-product
	of processes and sequential modules.

	["Parallel Module Specification on SPLX", C.F. Nourani,
	SIGPLAN Notices 27(1):114-115, Jan 1992].

	(1997-09-26)

SPM

	{Sequential Parlog Machine}

SPMD

	{single processor/multiple data}

SPML

	{server-parsed HTML}

spod

	<chat> (Great Britain) A lower form of life found on {chat}
	systems and {MUDs}.  The spod has few friends in {RL} and uses
	chat instead, finding communication easier and preferable over
	the {net}.  He has all the negative traits of the {computer
	geek} without having any interest in computers per se.
	Lacking any knowledge of, or interest in, how networks work,
	and considering his access a God-given right, he is a major
	irritant to {sysadmins}, clogging up lines in order to reach
	new {MUDs}, following passed-on instructions on how to sneak
	his way onto {Internet} ("Wow!  It's in America!") and
	complaining when he is not allowed to use busy routes.  A true
	spod will start any conversation with "Are you male or
	female?" (and follow it up with "Got any good
	numbers/IDs/passwords?") and will not talk to someone
	physically present in the same terminal room until they log
	onto the same computer that he is using and enter {chat}.

	Compare {newbie}, {tourist}, {weenie}, {twink}, {terminal
	junkie}, {dweeb}.

	[{Jargon File}]

	(1998-01-18)

spoiler

	1. A remark which reveals important plot elements
	from books or movies, thus denying the reader (of the article)
	the proper suspense when reading the book or watching the
	movie.

	2. Any remark which telegraphs the solution of a problem or
	puzzle, thus denying the reader the pleasure of working out
	the correct answer (see also {interesting}).  Either sense
	readily forms compounds like "total spoiler", "quasi-spoiler"
	and even "pseudo-spoiler".

	By convention, {Usenet} news articles which are spoilers in
	either sense should contain the word "spoiler" in the Subject:
	line, or guarantee via various tricks that the answer appears
	only after several screens-full of warning, or conceal the
	sensitive information via {rot13}, or some combination of
	these techniques.

	[{Jargon File}]

	(1995-01-18)

sponge

	<tool> A kind of {Unix} {filter} that reads its entire input
	before writing any output, e.g. {sort}.  Unlike most filters, a
	sponge can safely overwrite the input file with the output data.

	On a file system with {file versioning} (like {ITS} or {VMS}) the
	distinction is less significant because output would be written to
	a new version of the input file anyway.

	See also {slurp}.

	[{Jargon File}]

	(2014-06-21)

spoo

	Variant of {spooge}, sense 1.

	[{Jargon File}]

spoof

	{spoofing}

spoofing

	A technique used to reduce network overhead, especially in
	{wide area networks} (WAN).

	Some network {protocols} send frequent packets for management
	purposes.  These can be {routing} updates or {keep-alive}
	messages.  In a {WAN} this can introduce significant overhead,
	due to the typically smaller {bandwidth} of WAN connections.

	Spoofing reduces the required bandwidth by having devices,
	such as {bridges} or {routers}, answer for the remote devices.
	This fools (spoofs) the {LAN} device into thinking the remote
	LAN is still connected, even though it's not.  The spoofing
	saves the WAN bandwidth, because no packet is ever sent out on
	the WAN.

	LAN {protocols} today do not yet accommodate spoofing easily.

	["Network Spoofing" by Jeffrey Fritz, BYTE, December 1994,
	pages 221 - 224].

	(1995-01-13)

spooge

	/spooj/ Inexplicable or arcane code, or random and probably
	incorrect output from a computer program.

	[{Jargon File}]

	(1995-01-12)

SPOOL

	<operating system> Acronym for {Simultaneous Peripheral
	Operation On-Line}; but see also {spool}.

	[{Jargon File}]

	(1996-05-20)

Spool

	<language> An {object-oriented} {logic programming} language.

	["An Experience with a Prolog Based Language", K. Fukunaga et
	al, SIGPLAN Notices 21(11):224-231 (Nov 1986) (OOPSLA '86)].

	[{Jargon File}]

	(1995-03-25)

spool

	<operating system> To send files to some device or program (a
	"{spooler}" or {demon}) that puts them in a {queue} for later
	processing of some kind.  Without qualification, the spooler
	is the "print spooler" controlling output of jobs to a
	{printer}; but the term has been used in connection with other
	{peripherals} (especially {plotters} and graphics devices) and
	occasionally even for input devices.

	The term "SPOOL" has been attributed to {IBM} as an acronym
	for {Simultaneous Peripheral Operation On-Line} but it's
	widely thought to have been contrived for effect.

	[No connection with "spool of magnetic tape"?]

	[{Jargon File}]

	(1996-05-20)

spooler

	<operating system, tool> Software or hardware to which data is
	{spool}ed and which processes that data (e.g. prints it) in the
	{background}.

	(1995-03-25)

spool file

	Any file to which data is {spool}ed to await the next stage of
	processing.  Especially used in circumstances where spooling
	the data copes with a mismatch between speeds in two devices
	or pieces of software.  For example, when you send mail under
	Unix, it's typically copied to a spool file to await a
	transport {demon}'s attentions.

	[{Jargon File}]

SpoolView

	<tool> A printing system for {Unix}.  SpoolView can control
	several {printers} connected to a {TCP/IP} network.  Different
	printers can be loaded with different paper and forms.

	After submitting a print request, the user can change the
	printer, form, number of copies or priority.

	Administrators can register new printers, change paper forms
	on printers, cancel requests, suspend printers.

	{Light Infocon S.A. (http://light.com.br/)}.

	(1998-12-21)

spray

	<networking> A {Unix} command that sends {packets} to a {host}
	and reports performance statistics.  The number of packets,
	delay between packets and packet length can all be specified.
	The spray command uses the {Remote Procedure Call} (RPC)
	{protocol} to send a one-way stream of packets to the sprayd
	{daemon} on the given host.  With the "-i" option, spray uses
	the {Internet Control Message Protocol} (ICMP) instead of RPC.
	Normally these will be echoed automatically, creating a return
	stream.

	{Unix manual page}: spray(1M).

	(2007-03-12)

spreadsheet

	<application, tool> (Or rarely "worksheet") A type of
	{application program} which manipulates numerical and string
	data in rows and columns of cells.  The value in a cell can be
	calculated from a formula which can involve other cells.  A
	value is recalculated automatically whenever a value on which
	it depends changes.  Different cells may be displayed with
	different formats.

	Some spreadsheet support three-dimensional matrices and cyclic
	references which lead to iterative calculation.

	An essential feature of a spreadsheet is the copy function
	(often using {drag-and-drop}).  A rectangular area may be
	copied to another which is a multiple of its size.  References
	between cells may be either absolute or relative in either
	their horizontal or vertical index.  All copies of an absolute
	reference will refer to the same row, column or cell whereas a
	relative reference refers to a cell with a given offset from
	the current cell.

	Many spreadsheets have a "What-if" feature.  The user gives
	desired end conditions and assigns several input cells to be
	automatically varied.  An area of the spreadsheet is assigned
	to show the result of various combinations of input values.

	Spreadsheets usually incorporate a {macro language}, which
	enables third-party writing of worksheet applications for
	commercial purposes.

	In the 1970s, a {screen editor} based calculation program
	called {Visi-Calc} was introduced.  It was probably the first
	commercial spreadsheet program.  Soon {Lotus Development
	Corporation} released the more sophisticated {Lotus 1-2-3}.
	Clones appeared, (for example {VP-Planner} from {Paperback
	Software} with {CGA} graphics, {Quattro} from {Borland}) but
	Lotus maintained its position with world-wide marketing and
	support - and lawyers!  For example, Borland was forced to
	abandon its Lotus-like {pop-up menu}.

	While still developing 1-2-3, Lotus introduced {Symphony},
	which had simultaneously active windows for the spreadsheet,
	graphs and a {word processor}.

	{Microsoft} produced {MultiPlan} for the {Macintosh}, which
	was followed by {Excel} for Macintosh, long before {Microsoft
	Windows} was developed.

	When {Microsoft Windows} arrived Lotus was still producing the
	{text-based} 1-2-3 and Symphony.  Meanwhile, {Microsoft}
	launched its {Excel} spreadsheet with interactive graphics,
	graphic charcters, mouse support and {cut-and-paste} to and
	from other Windows applications.  To compete with Windows
	spreadsheets, Lotus launched its {Allways} add-on for 1-2-3 -
	a post-processor that produced Windows-quality graphic
	characters on screen and printer.  The release of Lotus 1-2-3
	for Windows was late, slow and buggy.

	Today, Microsoft, Lotus, Borland and many other companies offer
	Windows-based spreadsheet programs.

	The main end-users of spreadsheets are business and science.

	Spreadsheets are an example of a non-algorithmic programming
	language.

	[Dates?]

	(1995-03-28)

spread spectrum communications

	<communications> (Or "spread spectrum") A technique by which a
	signal to be transmitted is modulated onto a {pseudorandom},
	noise-like, wideband {carrier signal}, producing a
	transmission with a much larger {bandwidth} than that of the
	data {modulation}.

	Reception is accomplished by {cross correlation} of the
	received wide band signal with a synchronously generated
	replica of the carrier.

	Spread-spectrum communications offers many important benefits:

	Low probability of detection, interception or determination of
	the transmitter's location.  To an observer who does not
	possess information about the carrier, the transmission is
	indistinguishable from other sources of noise.

	High immunity against interference and jamming (intentional
	interference).  The presence of (narrowband) interference
	signals only decreases the channel's {signal-to noise ratio}
	and therefore its {error rate}, which can be dealt with by
	using {error correcting codes}.  A jammer would have to use
	wideband interference signals, which would require very high
	power (again assuming that the jammer does not know the
	characteristics of the carrier).

	High immunity against adverse effects of multipath
	transmission.  In the presence of multiple paths between
	transmitter and receiver (e.g. by reflected signals), signals
	of certain frequencies can be cancelled at certain locations
	when the difference in path delays between multiple
	propagation paths cause the signals to arrive out of phase.
	This effect is particularly troublesome in narrowband mobile
	communications, where it causes "blind spots" - locations
	where no signal can be received.

	Transmitter/receiver pairs using independent random carriers
	can operate in the same frequency range with minimal
	interference.  These are called {Code Division Multiple
	Access} (CDMA) systems.  Increasing the number of T/R pairs
	again only gradually increases each channel's error rate.  In
	contrast, narrowband systems can only accomodate a fixed
	number of channels determined by available bandwidth and
	channel width (data rate).

	When the data modulation cannot be distinguished from the
	carrier modulation, and the carrier modulation is random to an
	unwanted observer, the spread spectrum system assumes
	cryptographic capabilities, with the carrier modulation taking
	on the function of a key in a {cipher} system.

	The most important practical modes of spread spectrum coding
	are Direct Sequence (DS) and {Frequency-Hopping Spread
	Spectrum} (FH).

	In DS, a pseudo random sequence is phase-shift-keyed (PSK)
	onto the carrier.

	Spread Spectrum development began during World War II, with
	the earliest studies dating from the 1920s.  Most papers
	remained classified until the 1980s.

	Direct sequence spread spectrum was invented by Paul Kotowski
	and Kurt Dannehl at Telefunken.

	The technique is used extensively in military communications
	today.  Commercial applications include {cellular telephony}
	and mobile networking.

	["Spread Spectrum Communications", Charles E. Cook et al
	(Ed.), IEEE Press, New York, 1983. ISBN 0-87942-170-3].

	{Hedy Lamarr (http://sirius.be/lamarr.htm)},
	{(http://ncafe.com/chris/pat2/)}.

	(2001-08-08)

SPRING

	{String PRocessING language}

SPRINT

	List processing language involving stack operations.  "SPRINT
	- A Direct Approach to List Processing Languages", C.A. Kapps,
	Proc SJCC 30 (1967).  Sammet 1969, p 462.

Sprintnet

	A public {packet-switched} network using the {ITU-T} {X.25}
	{protocols}, that provides {dial-up} access to services like
	{Delphi}, {Portal}, {GEnie} and {Compuserve}.

	(1994-10-17)

Sprite

	<operating system> An {operating system} from {Berkeley}
	supporting {multiprocessing} and distributed files.

	[Details?  References?]

	(1994-10-17)

sprite

	<graphics, file format> A small {bitmap} image, often used in
	animated games but also sometimes used as a synonym for
	{icon}.

	(1997-06-29)

sprocket feed

	<printer> (Or "tractor feed", "pin feed") A method some
	{printers} use to move paper by rotating wheels with pins or
	studs (tractors) that engage holes along the sides of the
	(usually fanfold) paper.  A sprocket feed printer does not
	slip unless the paper jams, but cannot feed standard typing
	paper or work with a {sheet feeder} like {friction feed}.

	Some paper for sprocket feed printers has the edge strips with
	the holes in detachable from the rest of the paper.  These
	strips are known as {chad} (and other names).

	(1997-06-29)

SPS

	Symbolic Programming System.  Assembly language for IBM 1620.

SPSS

	{Statistical Package for the Social Sciences}

SPSS, Inc.

	<company> A company selling a variety of {software} under the
	general description of "Statistical Product and Service
	Solutions".

	The company was founded to distribute and support the
	{Statistical Package for the Social Sciences}, but now
	supplies software or four broad markets: {data mining},
	survey/market research, quality improvement, and scientific
	research.

	{(http://spss.com/)}.

	(1999-07-20)

SPUR

	An early system on the {IBM 650}.

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

	(1994-12-01)

SPX

	1. <networking> {Sequenced Packet Exchange}.

	2. <application> A graphics program for the {Atari} microcomputer.

	{(ftp://src.doc.ic.ac.uk/computing/systems/atari/umich/Graphics/spx_v18.lzh)}.

	3. {Simplex}.

	(1997-03-04)

spx

	<filename extension> The {filename extension} for {Screen
	Peace} eXtension files.

	(1995-03-14)

spyware

	<software> (Or "adware") Any type of software that transmits
	information without the user's knowledge.

	Information is sent via the {Internet} to a server somewhere,
	normally as a hidden side effect of using a program.
	Gathering this information may benefit the user indirectly,
	e.g. by helping to improve the software he is using.  It may
	be collected for advertising purposes or, worst of all, to
	steal security information such as passwords to online
	accounts or credit card details.

	Spyware may be installed along with other software or as the
	result of a {virus} infection.  There are many tools available
	to locate and remove various forms of spyware from a computer.

	Some {HTTP cookies} could be considered as spyware as their
	use is generally not made explicit to users.  It is however
	possible to disallow them, either totally or individually, and
	some are actually useful, e.g. recording the fact that a user
	has logged in.

	{(http://spychecker.com/spyware.html)}.

	(2004-05-23)

\sqcap

	{LaTeX} inverted square U.  The symbol for {greatest lower
	bound}.

	(1994-12-01)

\sqcup

	{LaTeX} square U.  The symbol for {least upper bound}.

	(1994-12-01)

SQE

	{Signal Quality Error}

	{IEEE 802.3}, {Ethernet}.  Equivalent to {D/I/X} "{Collision
	Presence Test}".

	(1995-04-14)

SQL

	<language, database, standard> /S Q L/ An industry-standard
	language for creating, updating and, querying {relational
	database management systems}.

	SQL was developed by {IBM} in the 1970s for use in {System R}.
	It is the {de facto standard} as well as being an {ISO} and
	{ANSI} {standard}.  It is often embedded in general purpose
	programming languages.

	The first SQL standard, in 1986, provided basic language
	constructs for defining and manipulating {tables} of data; a
	revision in 1989 added language extensions for {referential
	integrity} and generalised {integrity} {constraints}.  Another
	revision in 1992 provided facilities for {schema} manipulation
	and {data administration}, as well as substantial enhancements
	for data definition and data manipulation.

	Development is currently underway to enhance SQL into a
	computationally complete language for the definition and
	management of {persistent}, complex objects.  This includes:
	generalisation and specialisation hierarchies, {multiple
	inheritance}, user defined {data types}, {triggers} and
	{assertions}, support for {knowledge based systems},
	{recursive query expressions}, and additional data
	administration tools.  It also includes the specification of
	{abstract data types} (ADTs), object identifiers, {methods},
	{inheritance}, {polymorphism}, {encapsulation}, and all of the
	other facilities normally associated with object data
	management.

	The emerging {SQL3} standard is expected to be complete in
	1998.

	According to Allen G. Taylor, SQL does __not__ stand for
	"Structured Query Language".  That, like "SEQUEL" (and its
	pronunciation /see'kw*l/), was just another unofficial name
	for a precursor of SQL.  However, the IBM SQL Reference manual
	for DB2 and Craig Mullins's "DB2 Developer's Guide" say SQL
	__does__ stand for "Structured Query Language".

	{SQL Standards (http://jcc.com/sql_stnd.html)}.

	{An SQL parser
	(ftp://ftp.ora.com/published/oreilly/nutshell/lexyacc/)} is
	described in "Lex & Yacc", by Levine, Mason & Brown published
	by O'Reilly.

	{The 1995 SQL Reunion: People, Projects, and Politics
	(http://mcjones.org/System_R/SQL_Reunion_95/)}.

	["A Guide to the SQL Standard", C.J. Date, A-W 1987].

	["SQL for Dummies", Allen G. Taylor, IDG Books Worldwide].

	(2005-11-17)

SQL2

	<database, standard, language> An extended version of the
	{SQL} {standard}.

	(1995-03-20)

SQL3

	<database, standard, language> A draft {standard} for another
	extension of {SQL}.  The latest SQL3 Working Draft addresses
	the requirement for {objects} and "object identifiers" in SQL
	and also specifies supporting features such as
	{encapsulation}, {subtypes}, {inheritance}, and
	{polymorphism}.

	In the USA, SQL3 is being processed as both an {ANSI} Domestic
	("D") project and as an {ISO} project.  It is expected to be
	complete in 1998.

	{November 1992 paper
	(ftp://speckle.ncsl.nist.gov/isowg3/dbl/BASEdocs/sql3overview.txt)}.

	{Working draft (ftp://gatekeeper.dec.com/pub/standards/sql/)}.

	[ISO/IEC SQL Revision.  ISO-ANSI Working Draft Database
	Language SQL (SQL3), Jim Melton - Editor, document ISO/IEC
	JTC1/SC21 N6931, {ANSI}, July 1992].

	[Current Status?]

	(2002-04-21)

SQL Access Group

	<body> The origanisaton which defined {Call-Level Interface},
	on which {ODBC} is based.  It is now part of {X/Open}.

	[Address, details?]

	(1995-11-05)

SQL/DS

	A database package from IBM including a relational DBMS.

SQL Module Language

	A language used to interface other languages ({Ada}, {C},
	{COBOL}) to {SQL}-based {DBMS}es.  It is an {ANSI} {standard}.

	Version: Ada/{SAME} by {Informix}.

	(1994-11-23)

SQL Server

	<database> (Note capitalised)

	1. Sybase {Adaptive Server Enterprise}.

	2. {Microsoft SQL Server}.

	(2003-07-02)

SQL server

	<database> (Note not capitalised) Any {database management
	system} (DBMS) that can respond to queries from {clients}
	formatted in the {SQL} language.

	Two popular examples are {Microsoft SQL Server} and {Sybase
	SQL Server}.

	(1997-12-07)

SQLWindows

	<programming, product> A package used to graphically develop
	{MS-Windows} {client-server} applications.  Sold by {Gupta}
	Corporation.

	{(http://wji.com/gupta/w1000030.html)}.
	{Demos FTP (ftp://wji.com/gupta/sqlw.demodisk/)}.

	(1995-07-05)

SQR

	<database, language> A {fourth generation language} for the
	creation of reports from {databases}.  SQR is interpreted to
	dynamically generate {SQL} queries and format the results.

	Originally a {Sybase} product, it was then sold to MITI, who
	subsequently changed their name to {SQRIBE}.

	SQR Server supports {native} database access for all major
	{DBMSs} and the use of {platform} independent {Java} code.

	(1998-09-19)

SQRIBE

	<company> The company formerly known as MITI which bought
	{SQR} from {Sybase}.

	{(http://sqribe.com/)}.

	(1998-09-24)

\sqsubseteq

	{LaTeX} name for a symbol like a capital E without the bottom
	half of its vertical line.

	In {domain theory},

		x \sqsubseteq y

	means x is no more defined that y.  This expression only has
	meaning if x and y are {comparable} elements of some
	{partially ordered set}.

	(1994-11-24)

Square

	<language> A {query language}, a precursor to {SQL}.

	["Specifying Queries as Relational Expressions: The SQUARE
	Data Sublanguage", R.E. Boyce et al, CACM 18(11):621-628 (Nov
	1975)].

	(1995-05-02)

square-headed boyfriend

	{square-headed girlfriend}

square-headed girlfriend

	<humour> A computer.

	(1999-01-15)

square tape

	<storage> {Mainframe} magnetic tape cartridges for use with
	{IBM 3480} or compatible tape drives; or {QIC} tapes used on
	{workstations} and {microcomputers}.  The term comes from the
	square (actually rectangular) shape of the cartridges;
	contrast {round tape}.

	[{Jargon File}]

Squeak

	<language> 1. <graphics>

	["Squeak: A Language for Communicating with Mice", L. Cardelli
	et al, Comp Graphics 19(3):199-204, July 1985].

	See {Newsqueak}.

	2. A {Smalltalk} implementation and a media {authoring} tool
	by members of the original {Xerox PARC} team which created
	Smalltalk ({Alan Kay}, Dan Ingalls, et al).  Squeak is an
	{open-source} implementation, with a highly portable {virtual
	machine} implemented in a subset of Smalltalk (translated into
	{C} and compiled by a C {compiler} of the target {platform}).

	{Squeak Home (http://squeak.org/)}.

	{SqueakCentral (http://squeakland.org/)}.

	(2002-11-03)

Squiggol

	{Bird-Meertens Formalism}

squirt the bird

	<jargon, communications> To transmit a signal up to a
	satellite.  "Crew and talent are ready, what time do we squirt
	the bird?"

	(1997-04-29)

SR

	<language> Synchronizing Resources.

	A language for concurrent programming.

	"Resources" encapsulate processes and variables they share.
	Each Resource can be separately compiled.  "Operations"
	provide the primary mechanism for process interaction.

	SR provides a novel integration of the mechanisms for invoking
	and servicing operations.  Consequently, it supports local and
	{remote procedure call}, {rendezvous}, {message passing},
	{dynamic process creation}, {multicast}, {semaphores} and
	{shared memory}.

	Version 2.2 has been ported to {Sun-3}, {Sun-4}, {Decstation},
	{SGI Iris}, {HP PA}, {HP 9000/300}, {NeXT}, {Sequent
	Symmetry}, {DG AViiON}, {RS/6000}, {Multimax}, {Apollo} and
	others.

	{(ftp://cs.arizona.edu/sr/sr.tar.Z)}.

	E-mail: <sr-project@cs.arizona.edu>.  Mailing list:
	info-sr-request@cs.arizona.edu.

	["An Overview of the SR Language and Implementation", G.
	Andrews, ACM TOPLAS 10:51-86 (Jan 1988)].

	["The SR Programming Language: Concurrency in Practice",
	G.R. Andrews et al, Benjamin/Cummings 1993, ISBN
	0-8053-0088-0].

	(1992-09-01)

sr

	<networking> The {country code} for Suriname.

	(1999-01-27)

SRAM

	{static random-access memory}

SRAPI

	{Speech Recognition Application Program Interface}

SRC Modula-3

	Version 2.11

	compiler(->C), run-time, library, documentation

	The goal of Modula-3 is to be as simple and safe as it
		can be while meeting the needs of modern systems
		programmers.  Instead of exploring new features, we
		studied the features of the Modula family of languages
		that have proven themselves in practice and tried to
		simplify them into a harmonious language.  We found
		that most of the successful features were aimed at one
		of two main goals: greater robustness, and a simpler,
		more systematic type system.  Modula-3 retains one of
		Modula-2's most successful features, the provision for
		explicit interfaces between modules.  It adds objects
		and classes, exception handling, garbage collection,
		lightweight processes (or threads), and the isolation
		of unsafe features.

	conformance:	implements the language defined in SPwM3.

	ports: i386/AIX 68020/DomainOS Acorn/RISCiX MIPS/Ultrix
	68020/HP-UX RS/6000/AIX IBMRT/4.3 68000/NEXTSTEP i860/SVR4
	SPARC/SunOS 68020/SunOS sun386/SunOS Multimax/4.3 VAX/Ultrix

	Mailing list:	comp.lang.modula3

	E-mail: Bill Kalsow <kalsow@src.dec.com>

	From DEC/SRC, Palo Alto, CA.  "Modula-3 Report (revised)"
	Luca Cardelli et al.

	{(ftp://gatekeeper.dec.com/DEC/Modula-3/)}.

	(1992-02-09)

SRDL

	Small {algebraic specification language}, allows {distfix
	operators}.

	["A Constructive Method for Abstract Algebraic Software
	Specification", H.  Klaeren, Theor Computer Sci 30,
	pp.134-204, 1984].

SR flip-flop

	<hardware> (Or "RS flip-flop") A "set/reset" {flip-flop} in
	which activating the "S" input will switch it to one stable
	state and activating the "R" input will switch it to the other
	state.

	The outputs of a basic SR flip-flop change whenever its R or S
	inputs change appropriately.  A clocked SR flip-flop has an
	extra clock input which enables or disables the other two
	inputs.  When they are disabled the outputs remain constant.

	If we connect two clocked SR flip-flops so that the Q and /Q
	outputs of the first, "master" flip-flop drive the S and R
	inputs of the second, "slave" flip-flop, and we drive the
	slave's clock input with an inverted version of the master's
	clock, then we have an {edge-triggered} RS flip-flop.  The
	external R and S inputs of this device are latched on one edge
	(transition) of the clock (e.g. the falling edge) and the
	outputs will only change on the next opposite (rising) edge.

	If both R and S inputs are active (when enabled), a {race
	condition} occurs and the outputs will be in an indeterminate
	state.  A {JK flip-flop} avoids this possibility.

	{(http://play-hookey.com/digital/logic4.html)}.

	(1997-05-15)

SRI

	{SRI International}

SRI International

	<company> One of the world's largest contract research firms.
	Founded in 1946 in conjuction with {Stanford University} as
	the Stanford Research Institute, they later became fully
	independent and were incorporated as a non-profit organisation
	under U.S. and California laws.

	SRI does research and development in many areas, independently
	and for hire.  They produce and sell reports on the
	independent research.

	{(http://sri.com/)}.

	Address: Menlo Park, California, USA; Cambridge, UK.

	(2003-04-12)

SRL

	1. Bharat Jayaraman.

	["Towards a Broader Basis for Logic Programming",
	B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

	2. {Schema Representation language}.

	3. {Structured Robot Language}.

	C. Blume & W. Jacob, U Karlsruhe.

	(1995-01-26)

SRP

	A {data link layer} {protocol}.

SS7

	{Signalling System 7}

SSA

	{Single Static Assignment}
	{Serial Storage Architecture}

SSADM

	A software engineering method and toolset required by some UK
	government agencies.

SSBA

	{Suite Synthetique des Benchmarks de l'AFUU}

SSD

	1. {Solid State Disk}

	2. {Seven-Segment Display}

SSE

	{Streaming SIMD Extensions}

SSE-2

	<architecture> {Intel Corporation}'s extention of their {SSE}
	{floating point} {SIMD} instructions to handle 64-bit floating
	point numbers.  SSE-2 was introduced with the {Pentium 4}.

	(2001-12-23)

ssh

	<operating system> 1. {Steve's Shell}.

	2. {Secure Shell}.

	(1997-01-07)

SSH File Transfer Protocol

	<networking> (SFTP) A version of {File Transfer Protocol}
	(FTP) using an {encrypted} network connection provided by
	{Secure Shell} (SSH), usually SSH 2.

	The SFTP {protocol} allows for a range of operations on remote
	files, making it more like a {remote file system} protocol.
	SFTP clients can resume interrupted transfers, get directory
	listings and remove remote files.  SFTP has largely replaced
	{Secure Copy} (SCP).

	{IETF spec
	(http://ietf.org/internet-drafts/draft-ietf-secsh-filexfer-13.txt)}.

	(2006-09-28)

SSI

	1. <electronics> {small scale integration}.

	2. <computer> A kind of {PDP-11}(?).

	[What kind?]

	3. <World-Wide Web> {server-side include}.

	(1996-09-08)

SSID

	{Service Set Identifier}

SSII

	{Societe de Service en Ingenierie Informatique}

SSL

	1. <language> {Synthesizer Specification Language}.

	2. <language> {Syntax/Semantic Language} (S/SL).

	3. <networking, World-Wide Web> {Secure Sockets Layer}.

	(1996-09-08)

S/SL

	{Syntax/Semantic Language}

SSLeay

	<networking, security, protocol> A free implementation of
	{Netscape}'s {Secure Socket Layer} {protocol}, coded from
	scratch, using only the publically available documentation of
	the various protocols, by Eric Young in Australia.

	SSLeay supports the {DES}, {RSA}, {RC4}, and {IDEA}
	{encryption} {algorithms}.

	[Home?]

	(2000-12-07)

SSMA

	<chat> some such meaningless acronym.

	(1998-10-30)

SSO

	{single sign-on}

SSR

	{Scalable Sampling Rate}

st

	<networking> The {country code} for Sao Tome and Principe.

	(1999-01-27)

ST-506

	<storage> The first full-height 5.25 inch {hard disk drive}
	for {personal computers}, introduced in 1980 by Shugart
	Technology (now {Seagate Technology}).  The ST-506 stored up
	to 5 {megabtyes} after {formatting} using {MFM encoding}.  It
	transferred data at 625 {kilobytes per second}.

	The ST-506 (like the {ST-412}) was interfaced to a computer
	via a {disk controller}.  The interface was a faster version
	of the Shugart Associates {SA1000} interface, which was in
	turn based upon the {floppy disk drive} interface.  Two cables
	connected the controller to the disk.  The 34-pin control
	cable controlled mechanical motion and data was read or
	written serially using two pins of the 20-pin data cable.

	Other companies copied the interface, creating a universal {de
	facto standard} that was further strengthened by its revision
	to support Seagate's 10 MB ST-412 drive that was adopted for
	the {IBM PC XT}.

	Around 1990, {SCSI} and {ATA} superseded ST-506.  These
	eliminated the problems of matching controllers to drives by
	physically integrating a controller with the drive, allowing
	{interleave ratios} and other disk parameters to be optimised
	by the manufacturer rather than the system integrator.

	{Connector pin-out (http://www.gamesx.com/hwb/co_ST506.html)}.

	(2007-03-06)

STAB

	<language> A descendent of {BCPL}.

	(1996-08-25)

STAB-11

	["The Translation and Interpretation of STAB-11", A.J.T. Colin
	et al, Soft Prac & Exp 5(2):123-138, Apr 1975].

	(1996-08-25)

STAC

	1. <language> {Storage Allocation and Coding Program}.

	2. <company> The company responsible for {Stacker} and {stac
	compression}.

	{(http://stac.com/)}.

	(1998-06-08)

stac compression

	<communications> A {data compression} technique from {STAC},
	used with {modems}.  Stac compression is capable of
	compressing data by a factor of about four.

	[Details?]

	(1998-06-08)

stack

	<programming> (See below for synonyms) A data structure for
	storing items which are to be accessed in last-in first-out
	order.

	The operations on a stack are to create a new stack, to "push"
	a new item onto the top of a stack and to "pop" the top item
	off.  Error conditions are raised by attempts to pop an empty
	stack or to push an item onto a stack which has no room for
	further items (because of its implementation).

	Most processors include support for stacks in their
	{instruction set architectures}.  Perhaps the most common use
	of stacks is to store {subroutine} arguments and return
	addresses.  This is usually supported at the {machine code}
	level either directly by "jump to subroutine" and "return from
	subroutine" instructions or by {auto-increment} and
	auto-decrement {addressing modes}, or both.  These allow a
	contiguous area of memory to be set aside for use as a stack
	and use either a special-purpose {register} or a general
	purpose register, chosen by the user, as a {stack pointer}.

	The use of a stack allows subroutines to be {recursive} since
	each call can have its own calling context, represented by a
	stack frame or {activation record}.  There are many other
	uses.  The programming language {Forth} uses a data stack in
	place of variables when possible.

	Although a stack may be considered an {object} by users,
	implementations of the object and its access details differ.
	For example, a stack may be either ascending (top of stack is
	at highest address) or descending.  It may also be "full" (the
	stack pointer points at the top of stack) or "empty" (the
	stack pointer points just past the top of stack, where the
	next element would be pushed).  The full/empty terminology is
	used in the {Acorn Risc Machine} and possibly elsewhere.

	In a list-based or {functional language}, a stack might be
	implemented as a {linked list} where a new stack is an empty
	list, push adds a new element to the head of the list and pop
	splits the list into its head (the popped element) and tail
	(the stack in its modified form).

	At {MIT}, {pdl} used to be a more common synonym for stack,
	and this may still be true.  {Knuth} ("The Art of Computer
	Programming", second edition, vol. 1, p. 236) says:

	  Many people who realised the importance of stacks and queues
	  independently have given other names to these structures:
	  stacks have been called push-down lists, reversion storages,
	  cellars, dumps, nesting stores, piles, last-in first-out
	  ("LIFO") lists, and even yo-yo lists!

	[{Jargon File}]

	(1995-04-10)

Stack Environment Control Dump machine

	(SECD machine) The first {abstract machine} for reducing
	{lambda-calculus} expressions, invented by P. J. Landin.  The
	machine has four {registers} holding pointers to {linked
	lists} operated as push-down {stacks} which hold the
	information required for the evaluation of an expression.  The
	registers point to (1) Stack which holds the arguments of
	partially evaluated expressions and results of completely
	evaluated ones, (2) Environment where the current expression
	being evaluated is stored, (3) Control which holds the machine
	instructions that manipulate the contents of the four
	registers that represent the expression being evaluated, (4)
	Dump on which the state of the machine is temporarily saved
	during the evaluation of expressions.  See also {Lispkit}.

stack frame

	{activation record}

stacking order

	<graphics> The relationship between {windows} that (partially)
	obscure each other.  A {window manager} will include commands
	to alter the stacking order by bringing a chosen window to the
	front (top) or back (bottom) of the stack.

	(1995-03-21)

stack loader

	<hardware, storage> (Or "autoloader") A {magnetic tape} drive
	that can automatically fetch tapes from a stack and load them.

	Compare {jukebox}.

	[Sequential or random access?]

	(1996-12-12)

stack overflow

	<programming> An error condition which results from attempting
	to {push} more items onto a {stack} than space has been
	allocated for.  Often, this will simply overwrite the adjacent
	memory locations causing hard-to-trace {bugs}.

	Stack overflow can result, for example, from an insufficient
	number of stack frames to handle hardware {interrupts}.

	(1995-03-21)

stack pointer

	<architecture, programming> (SP) A {register} or {variable}
	pointing to the top of a {stack}.

	(2004-11-08)

stack puke

	Some processor architectures are said to "puke their guts onto
	the stack" to save their internal state during {exception}
	processing.  The {Motorola 68020}, for example, regurgitates
	up to 92 bytes on a {bus fault}.  On a {pipeline}d machine,
	this can take a while.

	[{Jargon File}]

	(1994-11-01)

stack traceback

	<programming> (The results of) determining the sequence of
	nested procedure calls a program has made up to a certain
	point in its execution.  A traceback may also show values of
	procedure arguments and {local variables} stored on the stack.

	(1995-03-21)

STAGE2

	A {macro} language.

	["The Mobile Programming System: STAGE2", W.M.  Waite, CACM
	13:415 (1970)].

	(1994-10-27)

Staggered Pin Grid Array

	<hardware> (SPGA) A style of {integrated circuit} socket or
	pin-out with a staggered grid of pins around the edge of the
	socket, positioned as several squares, one inside the other.

	SPGA is commonly used on {motherboards} for {processors},
	e.g. {Socket 5}, {Socket 7} and {Socket 8}.

	See also {PGA}.

	[Better description?]

	(1999-08-04)

staircase

	{jaggies}

staircasing

	{jaggies}

@stake

	<security, software> A computer security development group and
	consultancy dedicated to researching and documenting security
	flaws that exist in {operating systems}, {network}
	{protocols}, or software.

	@stake publishes information about security flaws through
	advisories, research reports, and tools.  They release the
	information and tools to help system administrators, users,
	and software and hardware vendors better secure their
	systems.

	L0pht merged with @stake in January 2000.

	{@stake home (http://atstake.com/research/redirect.html)}.

	(2003-06-12)

stale pointer bug

	<programming> (Or "aliasing bug") A class of subtle
	programming errors that can arise in code that does {dynamic
	allocation}, especially via {malloc} or equivalent.

	If several {pointers} address (are "aliases for") a given hunk
	of storage, it may happen that the storage is freed or
	reallocated (and thus moved) through one alias and then
	referenced through another, which may lead to subtle (and
	possibly intermittent) lossage depending on the state and the
	allocation history of the malloc {arena}.  This bug can be
	avoided by never creating aliases for allocated memory, or by
	use of a {higher-level language}, such as {Lisp}, which
	employs a {garbage collector}.

	The term "aliasing bug" is nowadays associated with {C}
	programming, it was already in use in a very similar sense in
	the {ALGOL 60} and {Fortran} communities in the 1960s.

	See also {smash the stack}, {fandango on core}, {memory leak},
	{memory smash}, {spam}.

	[{Jargon File}]

	(1995-05-09)

Stallman, Richard M.

	{Richard Stallman}

stand-alone

	<jargon> Capable of operating without other programs,
	libraries, computers, hardware, networks, etc.  Exactly what
	is absent is presumed to be obvious from context.

	"We only run Windows on stand-alone PCs because it's too
	dangerous to run it on networked ones."

	(1998-02-11)

standard

	<standard> Standards are necessary for {interworking},
	{portability}, and {reusability}.  They may be {de facto
	standards} for various communities, or officially recognised
	national or international standards.

	{Andrew Tanenbaum}, in his Computer Networks book, once said,
	"The nice thing about standards is that there are so many of
	them to choose from", a reference to the fact that competing
	standards become a source of confusion, division,
	obsolescence, and duplication of effort instead of an
	enhancement to the usefulness of products.

	Some bodies concerned in one way or another with computing
	standards are {IAB} ({RFC} and {STD}), {ISO}, {ANSI}, {DoD},
	{ECMA}, {IEEE}, {IETF}, {OSF}, {W3C}.

	(1999-07-06)

Standard Commands for Programmable Instruments

	<standard> (SCPI) A standard complementing {IEEE 488},
	developed by {Hewlett-Packard} and promoted by the {SCPI
	Consortium}.

	(1994-11-01)

Standard d'Echange et de Transfert

	<standard> (SET) A French {standard} for exchange of {CAD}
	data.

	(1998-03-07)

standard deviation

	<statistics> (SD) A measure of the range of values in a set of
	numbers.  Standard deviation is a statistic used as a measure
	of the dispersion or variation in a distribution, equal to the
	square root of the {arithmetic mean} of the squares of the
	deviations from the arithmetic mean.

	The standard deviation of a random variable or list of numbers
	(the lowercase greek sigma) is the square of the {variance}.
	The standard deviation of the list x1, x2, x3...xn is given by
	the formula:

	 sigma = sqrt(((x1-(avg(x)))^2 + (x1-(avg(x)))^2 +
	              ...  + (xn(avg(x)))^2)/n)

	The formula is used when all of the values in the population
	are known.  If the values x1...xn are a random sample chosen
	from the population, then the sample Standard Deviation is
	calculated with same formula, except that (n-1) is used as the
	{denominator}.

	[{dictionary.com (http://dictionary.com/)}].

	["Barrons Dictionary of Mathematical Terms, second edition"].

	(2003-05-06)

standard for robot exclusion

	<World-Wide Web> A proposal to try to prevent the havoc
	wreaked by many of the early {World-Wide Web} {robots} when
	they retrieved documents too rapidly or retrieved documents
	that had side effects (such as voting).  The proposed standard
	for robot exclusion offers a solution to these problems in the
	form of a file called "robots.txt" placed in the {document
	root} of the {web site}.

	{W3C standard
	(http://w3.org/TR/html4/appendix/notes.html#h-B.4.1.1)}.

	(2006-10-17)

Standard for the exchange of product model data

	(STEP) A draft {ISO} {standard} for the exchange of {CAD}
	data.

	See also {PDES}.

	(1995-02-22)

Standard Generalised Markup Language

	<spelling> {ISO} spell it "{Standard Generalized Markup
	Language}".

	(1996-12-13)

Standard Generalized Markup Language

	<language, text> (SGML) A generic {markup} language for
	representing documents.  SGML is an International Standard
	that describes the relationship between a document's content
	and its structure.  SGML allows document-based information to
	be shared and re-used across applications and computer
	{platforms} in an open, vendor-neutral format.  SGML is
	sometimes compared to {SQL}, in that it enables companies to
	structure information in documents in an open fashion, so that
	it can be accessed or re-used by any SGML-aware application
	across multiple platforms.

	SGML is defined in "ISO 8879:1986 Information processing --
	Text and office systems -- Standard Generalized Markup
	Language (SGML)", an {ISO} standard produced by {JTC} 1/SC 18
	and amended by "Amendment 1:1988".

	Unlike other common document file formats that represent both
	content and presentation, SGML represents a document's content
	{data} and structure (interrelationships among the data).
	Removing the presentation from content establishes a neutral
	format.  SGML documents and the information in them can easily
	be re-used by publishing and non-publishing {applications}.

	SGML identifies document elements such as titles, paragraphs,
	tables, and chapters as distinct objects, allowing users to
	define the relationships between the objects for structuring
	data in documents.  The relationships between document
	elements are defined in a {Document Type Definition} (DTD).
	This is roughly analogous to a collection of {field}
	definitions in a {database}.  Once a document is converted
	into SGML and the information has been 'tagged', it becomes a
	database-like document.  It can be searched, printed or even
	programmatically manipulated by SGML-aware applications.

	Companies are moving their documents into SGML for several
	reasons:

	Reuse - separation of content from presentation facilitates
	multiple delivery formats like {CD-ROM} and {electronic
	publishing}.

	Portability - SGML is an international, platform-independent,
	standard based on {ASCII} text, so companies can safely store
	their documents in SGML without being tied to any one vendor.

	Interchange - SGML is a core data standard that enables
	SGML-aware applications to inter-operate and share data
	seamlessly.

	A central SGML document store can feed multiple processes in a
	company, so managing and updating information is greatly
	simplified.  For example, when an aeroplane is delivered to a
	customer, it comes with thousands of pages of documentation.
	Distributing these on paper is expensive, so companies are
	investigating publishing on CD-ROM.  If a maintenance person
	needs a guide for adjusting a plane's flight surfaces, a
	viewing tool automatically assembles the relevant information
	from the document {repository} as a complete document.  SGML
	can be used to define attributes to information stored in
	documents such as security levels.

	There are few clear leaders in the SGML industry which, in
	1993, was estimated to be worth US $520 million and is
	projected to grow to over US $1.46 billion by 1998.

	A wide variety tools can be used to create SGML systems.  The
	SGML industry can be separated into the following categories:

	Mainstream Authoring consists of the key {word processing}
	vendors like {Lotus}, {WordPerfect} and {Microsoft}.

	SGML Editing and Publishing includes traditional SGML
	authoring tools like {ArborText}, {Interleaf}, {FrameBuilder}
	and {SoftQuad Author}/Editor.

	SGML Conversions is one of the largest sectors in the market
	today because many companies are converting legacy data from
	mainframes, or documents created with mainstream word
	processors, into SGML.

	Electronic Delivery is widely regarded as the most compelling
	reason companies are moving to SGML.  Electronic delivery
	enables users to retrieve information on-line using an
	intelligent document viewer.

	Document Management may one day drive a major part of the
	overall SGML industry.

	SGML Document Repositories is one of the cornerstone
	technologies that will affect the progress of SGML as a data
	standard.

	Since 1998, almost all development in SGML has been focussed
	on {XML} - a simple (and therefore easier to understand and
	implement) subset of SGML.

	{"ISO 8879:1986//ENTITIES Added Latin 1//EN"
	(http://ucc.ie/info/net/isolat1.html)} defines some
	characters.  [How are these related to {ISO 8859}-1?].

	{ISO catalogue entry (http://iso.ch/cate/d16387.html)}.

	SGML parsers are available from
	{VU, NL (ftp://star.cs.vu.nl/Sgml)},
	{FSU (ftp://mailer.cc.fsu.edu/pub/sgml)},
	{UIO, Norway (ftp://ifi.uio.no/pub/SGML/SGMLS)}.

	See also {sgmls}.

	{Usenet} newsgroup: {news:comp.text.sgml}.

	["The SGML Handbook", Charles F. Goldfarb, Clarendon Press,
	1991, ISBN 0198537379.  (Full text of the ISO standard plus
	extensive commentary and cross-referencing.  Somewhat cheaper
	than the ISO document)].

	["SGML - The User's Guide to ISO 8879", J.M. Smith et al,
	Ellis Harwood, 1988].

	[Example of some SGML?]

	(2000-05-31)

standard input/output

	<programming, operating system> The predefined input/output
	channels which every {Unix} process is initialised with.
	Standard input is by default from the terminal, and standard
	output and standard error are to the terminal.  Each of these
	channels (controlled via a {file descriptor} 0, 1, or 2 -
	stdin, stdout, stderr) can be redirected to a file, another
	device or a {pipe} connecting its process to another process.
	The process is normally unaware of such {I/O redirection},
	thus simplifying prototyping of combinations of commands.

	The {C} programming language library includes routines to
	perform basic operations on standard I/O.  Examples are
	"printf", allowing text to be sent to standard output, and
	"scanf", allowing the program to read from standard input.

	(1996-06-07)

Standard Instrument Control Library

	(SICL) A {platform}-independent {API} for software to control
	and test electronic instruments conforming to {IEEE 488}.

	(1995-01-05)

standard interpretation

	{standard semantics}

standard I/O

	{standard input/output}

Standard Lisp

	A subset of {Lisp 1.5} developed by A. Hearn primarily for
	implementing {REDUCE}.  It was replaced by {Portable Sandard
	LISP}.

	["Standard LISP Report", J. Marti et al, SIGPLAN Notices
	14(10):48-58 (Oct 1979)].

	(1994-11-04)

Standard ML

	<language> (SML) Originally an attempt by Robin Milner
	<rm@lfcs.edinburgh.ac.uk> ca. 1984 to unify the dialects of
	{ML}, SML has evolved into a robust general-purpose language.
	Later versions have been maintained by D. B. MacQueen, Lal
	George <george@research.att.com>, and J. H. Reppy
	<jhr@research.att.com> at AT&T, and A. W. Appel
	<appel@princeton.edu>.

	SML is {functional}, with {imperative programming} features.
	It is environment based and {strict}.  It adds to ML the
	{call-by-pattern} of {Hope}, {recursive data types},
	{reference types}, typed {exceptions}, and {modules}.  (The
	"core" language excludes the modules).

	Standard ML is {polymorphic}ally typed and its module system
	supports flexible yet secure large-scale programming.
	{Standard ML of New Jersey} is an optimising {native-code
	compiler} for Standard ML that is written in Standard ML.  It
	runs on a wide range of architectures. The distribution also
	contains: an extensive library - The Standard ML of New Jersey
	Library, including detailed documentation; {Concurrent ML}
	(CML); {eXene} - an elegant interface to {X11} (based on
	{CML}); {SourceGroup} - a {separate compilation} and "{make}"
	facility.

	Implementations: {SML/NJ}, {POPLOG ML}, {Poly/ML}, {Edinburgh
	SML}, {ANU ML}, {Micro ML}, {lazy sml2c}.

	{sml2c} compiles to {C}.  See also {ML Kit}.

	Version 0.93 runs on {68000}, {SPARC}, {MIPS}, {HPPA},
	{RS/6000}, {Intel 386}, {Intel 486} and {Macintosh}.

	{Manual
	(http://dcs.napier.ac.uk/course-notes/sml/manual.html)}.

	{FTP from ATT (ftp://research.att.com/dist/ml/)}.
	{FTP from Suny SB (ftp://sbcs.sunysb.edu/)}.

	Mailing list: sml-request@cs.cmu.edu.

	["A Proposal for Standard ML", R. Milner, ACM Symp on LISP and
	Functional Prog 1984, pp. 184-197].

	(1995-12-24)

Standard ML of New Jersey

	(SML/NJ) An implementation of {SML} by {Andrew Appel} at
	{Princeton} <Appel@princeton.edu> and {Dave MacQueen} at
	{AT&T}.  Version 0.93.

	["Standard ML of New Jersey", A. Appel et al, "Proc Third Intl
	Symp on Prog Lang Impl and Logic Programming", LNCS Springer
	1991].

	Versions for Unix, Mac.  {(ftp://cs.yale.edu/pub/ml)},
	{(ftp://research.att.com/dist/ml)}.  Mailing list:
	sml@cs.cmu.edu.

Standard Operating Environment

	<standard> (SOE) A specification of the {architecture},
	{operating systems}, {application set} and configuration of
	computers within an organisation.

	(2007-06-11)

standard semantics

	The standard interpretation of a term in some language yields
	the term's standard denotational semantics, i.e. its "meaning".
	This is usually given by a semantic function which maps a term
	in the abstract syntax to a point in some domain.  The domain
	is the interpretation of the term's type.  The semantic
	function also takes an environment - a function which maps the
	free variables of the term to their meaning.  We say that a
	domain point "denotes", or "is the denotation of", a term.  A
	non-standard semantics results from some other interpretation,
	e.g. an abstract interpretation.

Standard Widget Toolkit

	<java, graphics> (SWT) The {Eclipse Foundation}'s {framework}
	for developing {graphical user interfaces} in {Java}.  SWT is
	written in explicitly standard Java but uses the {Java Native
	Interface} to talk to a {platform}-native GUI library.  SWT is
	the third major attempt to give Java a decent GUI framework,
	following {AWT} and {Swing}.  Of the three, SWT is the most
	consistent with the native GUIs but its programming model is
	hard to port to non-Windows platforms.

	{Wikipedia (http://en.wikipedia.org/wiki/SWT)}.

	(2004-12-21)

St Andrews Static Language

	<language> (SASL) A {functional programming} language designed
	by Professor {David Turner} in 1976 whilst at St. Andrews
	University.  SASL is a derivative of {ISWIM} with {infinite
	data structures}.  It is fully {lazy} but {weakly typed}.  It
	was designed for teaching functional programming, with very
	simple {syntax}.

	Example syntax:

		def fac n =
		   n = 0 -> 1 ; n x fac(n-1)

	A version of the {expert system} {EMYCIN} has been written in
	SASL.

	SASL was originally known as "St Andrews Standard Language".
	Not to be confused with {SISAL}.

	{(ftp://a.cs.uiuc.edu/uiuc/kamin.distr/distr/sasl.p)}.
	See also {Kamin's interpreters}.

	["A New Implementation Technique for Applicative Languages",
	D.A. Turner, Soft Prac & Exp 8:31-49 (1979)].

	(2007-03-21)

Stanford Artificial Intelligence Laboratory

	<body, education> (SAIL) /sayl/, not /S-A-I-L/ An important
	site in the early development of {LISP}; with the {MIT AI
	Lab}, {BBN}, {CMU}, {XEROX PARC}, and the {Unix} community,
	one of the major wellsprings of technical innovation and
	hacker-culture traditions (see the {WAITS} entry for details).
	The SAIL machines were shut down in late May 1990, scant weeks
	after the MIT AI Lab's ITS cluster was officially
	decommissioned.

	[{Jargon File}]

	(2001-06-22)

Stanford Artificial Intelligence Language

	<language> (SAIL) Dan Swinehart & Bob Sproull, Stanford AI
	Project, 1970.  A large ALGOL 60-like language for the DEC-10
	and DEC-20.  Its main feature is a symbolic data system based
	upon an associative store (originally called LEAP).  Items may
	be stored as unordered sets or as associations (triples).
	Processes, events and interrupts, contexts, backtracking and
	record garbage collection.  Block- structured macros.  "Recent
	Developments in SAIL - An ALGOL-based Language for Artificial
	Intelligence", J. Feldman et al, Proc FJCC 41(2), AFIPS (Fall
	1972).  (See MAINSAIL).

	The Stanford Artificial Intelligence Language used at {SAIL}
	(the place).  It was an ALGOL 60 derivative with a coroutining
	facility and some new data types intended for building search
	trees and association lists.

	A number of interesting software systems were coded in SAIL,
	including early versions of {FTP} and {TeX} and a document
	formatting system called {PUB}.

	In 1978, there were half a dozen different operating systems
	for the PDP-10: WAITS (Stanford), ITS (MIT), TOPS-10 (DEC),
	CMU TOPS-10 (CMU), TENEX (BBN), and TOPS-20 (DEC, after
	TENEX).

	SAIL was ported from {WAITS} to {ITS} so that {MIT}
	researchers could make use of software developed at {Stanford
	University}.  Every port usually required the rewriting of I/O
	code in each application.

	[{Jargon File}]

	(2001-06-22)

Stanford Research Institute

	Former name of {SRI International}.

Stanford University

	<education> A University in the city of Palo Alto, California,
	noted for work in computing, especially {artificial
	intelligence}.  See {SAIL}.

	(2003-02-28)

STAPLE

	<language> A programming language written at Manchester
	(University?) and used at {ICL} in the early 1970s for writing
	the test suites.  STAPLE was based on {Algol 68} and had a
	very advanced {optimising compiler}.

	(2003-02-28)

Staple

	<language> St Andrews Applicative Persistent Language.
	Language combining functional programming with persistent
	storage, developed at St. Andrews University in Scotland.
	Tony Davie, <ad@cs.st-andrews.ac.uk>.

	(2007-03-22)

STAR 0

	Early system on Datatron 200 series.  Listed in CACM 2(5):16
	(May 1959).

StarBurst

	An active DBMS from IBM Almaden Research Center.

StarLISP

	{*LISP}

StarMOD

	{*MOD}

star network

	<networking> A {network} topology where every {node} has a
	direct connection (only) to the central node, which might be a
	{hub}, {switch}, or {server}.

	(1999-10-29)

Starset

	Portable storage/retrieval language for distributed databases.
	"Starset programming Language", M.M. Gilula et al, Nauka,
	Moscow 1991, ISBN 5-02-006831-4.

STARSYS

	{Convergent Technologies Operating System}

start bit

	<protocol> A {bit} which signals the start of transmission of
	a character on a {serial line}.  For an {RS-423} signal, the
	line is normally at logical zero which there is no data and
	the start bit is a logical one.  The zero-one transition tells
	the receiver when to start sampling the signal to extract the
	data bits.

	[Is this upside-down?]

	(1995-02-02)

start of authority

	<networking> (SOA) A type of {resource record} used by the
	{Domain Name System} (DNS) to give meta-data about a set of
	domain name data (the contents of a "zone file").  An SOA
	record has the following parameters:

	Serial: the zone serial number - a version number for the zone
	file.

	Refresh: the number of seconds between update requests from
	secondary and slave name servers.

	Retry: the number of seconds the secondary or slave will wait
	before retrying when an attempt fails.

	Expire: (time to live - TTL) the number of seconds a master or
	slave will wait before considering cached data out-of-date.

	Minimum: previously used to determine the minimum TTL, this
	offers negative caching.

	(2007-05-11)

Start Of Header

	<character> (SOH) {mnemonic} for {ASCII} 1.

	[What header?]

	(1996-05-31)

Start Of Text

	<character> (STX) {Mnemonic} for {ASCII} 2.

	(1996-05-31)

start tag

	{tag}

state

	<storage, architecture, jargon, theory> How something is; its
	configuration, attributes, condition, or information content.
	The state of a system is usually temporary (i.e. it changes
	with time) and volatile (i.e. it will be lost or reset to some
	initial state if the system is switched off).

	A state may be considered to be a point in some {space} of all
	possible states.  A simple example is a light, which is either
	on or off.  A complex example is the electrical activation in
	a human brain while solving a problem.

	In computing and related fields, states, as in the light
	example, are often modelled as being {discrete} (rather than
	continuous) and the transition from one state to another is
	considered to be instantaneous.  Another (related) property of
	a system is the number of possible states it may exhibit.
	This may be finite or infinite.  A common model for a system
	with a finite number of discrete state is a {finite state
	machine}.

	[{Jargon File}]

	(1996-10-13)

state diagram

	{state transition diagram}

stateless

	A stateless {server} is one which treats each request as an
	independent transaction, unrelated to any previous request.
	This simplifies the server design because it does not need to
	allocate storage to deal with conversations in progress or
	worry about freeing it if a client dies in mid-transaction.  A
	disadvantage is that it may be necessary to include more
	information in each request and this extra information will
	need to be interpreted by the server each time.

	An example of a stateless server is a {World-Wide Web} server.
	These take in requests ({URLs}) which completely specify the
	required document and do not require any context or memory of
	previous requests.

	Contrast this with a traditional {FTP} server which conducts
	an interactive session with the user.  A request to the server
	for a file can assume that the user has been authenticated and
	that the current directory and transfer mode have been set.

state machine

	{finite state machine}

statement

	<programming> A single instruction in a {computer program}
	written in a {procedural language}.  Typical examples are an
	{assignment statement}, an {if statement} (conditional), a
	{loop} statement ("while", "for", "repeat", "until", etc.), a
	{procedure call}, a procedure {exit}, {function} {return
	statement}, {switch statement} or {goto statement}.

	In many languages, one or more simple statements can be
	executed sequentially as a {compound statement},
	e.g. bracketed between "begin" and "end" or "{" and "}" which
	can then appear in place of a simple statement in an "if" or
	loop.

	Each statement in a {high-level language} will typically be
	translated into several {machine code} instructions by a
	{compiler} or, alternatively, executed by an {interpreter}.

	(2009-10-23)

state transition diagram

	A diagram consisting of circles to represent states and
	directed line segments to represent transitions between the
	states.  One or more actions (outputs) may be associated with
	each transition.  The diagram represents a {finite state
	machine}.

State University of New York

	<body> (SUNY) The public university system of New York State,
	USA, with campuses throughout the state.

	(1995-03-01)

static

	<programming> {static typing}, {static variable}.

	<storage> {static random-access memory}.

	<World-Wide Web> {static content}.

	<theory, programming> {static analysis}.

statically typed

	{static typing}

static analysis

	<theory, programming> A family of techniques of program
	analysis where the program is not actually executed (as
	opposed to dynamic analysis), but is analyzed by tools to
	produce useful information.

	Static analysis techniques range from the most mundane
	(statistics on the density of comments, for instance) to the
	more complex, {semantics}-based techniques.

	Qualities sought in static analysis techniques are {soundness}
	and {completeness}.

	(2003-04-12)

static database management system

	<database> (static DBMS) A {database} consisting of
	"information-based relationships", one that is rigorously
	structured to facilitate retrieval and update in terms of
	inherent relationships.  This creates a static environment
	wherein the locations of the related records are already
	known.  Typical static DBMS are either hierarchical ({IMS},
	{System 2000}) or a {CODACYL} (network or plex) DBMS (such as
	{TOTAL}, {IDMS}, {IDS}, {DMS-2}).  These environments
	facilitate rapid, high volume processing of data.

	The opposite is a {dynamic database management system}.

	(1998-10-07)

static DBMS

	{static database management system}

static link

	<compiler> (Or "access link" or "environment link") A pointer
	from an {activation record} to the activation record for the
	textually enclosing {scope}.  A static link is only required
	in a statically (lexically) scoped language.

	The number of static links to follow may be determined
	statically (at compile time).  It is simply the difference in
	{lexical nesting depth} between the declaration and the
	reference.

	See also {display}.

	(1995-03-07)

static nested scope

	<programming> Where the {scope} of an {identifier} is fixed at
	{compile-time} to be the smallest {block} ({begin}/end,
	{function}, or {procedure} body) containing the identifier's
	{declaration}.  This means that an identifier declared in some
	block is only accessible within that block and from procedures
	declared within it.

	This term is used in the {Python} community.

	Compare {lexical scope}.

	(2002-02-18)

static nested scoping

	{static nested scope}

static RAM

	{static random-access memory}

static random-access memory

	<storage> (SRAM) {Random-access memory} in which each bit of
	storage is a bistable {flip-flop}, commonly consisting of
	cross-coupled {inverters}.  It is called "static" because it
	will retain a value as long as power is supplied, unlike
	{dynamic random-access memory} (DRAM) which must be regularly
	refreshed.  It is however, still {volatile}, i.e. it will lose
	its contents when the power is switched off, in contrast to
	{ROM}.

	SRAM is usually faster than DRAM but since each bit requires
	several transistors (about six) you can get less bits of SRAM
	in the same area.  It usually costs more per bit than DRAM and
	so is used for the most speed-critical parts of a computer
	(e.g. {cache} memory) or other circuit.

	(1995-04-22)

static scope

	{lexical scope}

static typing

	<programming> Enforcement of type rules at {compile time}
	rather than at {run time}.  Static typing catches more errors
	at compile time than {dynamic typing}.

	{Ada}, {C}, {C++}, {Haskell}, {Java}, and {ML} are examples of
	statically typed languages.

	Statically typed languages may have {strong typing} or {weak
	typing}.

	(2004-07-20)

static variable

	<programming> A kind of {local variable} in certain
	{programming languages} that retains its value even when
	program execution moves outside its {scope}.  This contrasts
	with an ordinary, {automatic variable}, which is reinitialised
	(possibly to an undefined value) every time the block is
	entered.

	Static variables have a fixed location in the data section of
	the program's {address space} whereas automatic variables are
	typically allocated on the {stack}.

	(2009-12-14)

Station Management

	<networking> (SMT) Station Management One of the 4 key {FDDI}
	component layers.  SMT is an overlay function that handles the
	management of the FDDI ring.  It handles neighbor
	identification, fault detection and reconfiguration, insertion
	and de-insertion from the ring, and traffic statistics
	monitoring.

	(1997-05-11)

Statistical Analysis System

	<language> (SAS) A statistical and matrix handling language
	with {PL/I}-like {syntax}.

	["A User's Guide to SAS", A.J. Barr, SAS Inst 1976].

	(1994-12-12)

Statistical Package for the Social Sciences

	<statistics, tool> (SPSS) The flagship program of {SPSS,
	Inc.}, written in the late 1960s.

	["SPSS X User's Guide", SPSS, Inc. 1986].

	[Details?]

	(1999-07-20)

statistical time division multiplexing

	<communications> (STDM, StatMUX) A system developed to
	overcome some inefficiencies of standard {time division
	multiplexing}, where {time slices} are still allocated to
	channels, even if they have no information to transmit.

	STDM uses a variable time slot length and by allowing channels
	to vie for any free slot space.  It employs a buffer memory
	which temporarily stores the data during periods of peak
	traffic.  This scheme allows STDM to waste no high-speed line
	time with inactive channels.  STDM requires each transmission
	to carry identification information (i.e. a channel
	identifier).  To reduce the cost of this overhead, a number of
	characters for each channel are grouped together for
	transmission.

	["Data Communications, Computer Networks and Open Systems",
	Halsall & Fred, Addison Wesley, p160-161, 1995].

	["Digital, Analog, and Data Communication", Sinnema &
	McGovern, Prentice Hall, p245, 1986].

	(1997-03-05)

statistics

	<statistics, mathematics> The practice, study or result of the
	application of mathematical {functions} to collections of
	{data} in order to summarise or {extrapolate} that data.

	The subject of statistics can be divided into descriptive
	statistics - describing data, and analytical statistics -
	drawing conclusions from data.

	(1997-07-16)

StatMUX

	{statistical time division multiplexing}

STB

	{set-top box}

STD

	1. {state transition diagram}.

	2. {Internet} standard.

	A subseries of {Request For Comments} (RFC) that specify
	{Internet} {standards}.  The official list of Internet
	standards is {STD 1}.

	See also {For Your Information}.

	{rfc.net (http://rfc.net/)}.

	(1994-11-30)

STD 1

	<standard> The {Internet Architecture Board} official list of
	{Internet} {standards}.

	[Postel, J., "IAB Official Protocol Standards", STD 1, RFC
	1360, Internet Architecture Board, September 1992].

	(1995-02-07)

STD 13

	<networking, standard> One of the {STDs} defining the {Domain
	Name System}.

	(1997-12-15)

STD 15

	The {STD} defining {Simple Network Management Protocol}.

	(1994-11-14)

STD 2

	<networking, standard> The document listing the current
	{Internet} {Assigned Numbers}.

	[Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC
	1340, USC/Information Sciences Institute, July 1992].

	(2001-04-08)

STD 9

	The {STD} defining {File Transfer Protocol} (FTP).

	(1995-02-07)

stderr

	{standard input/output}

stdin

	{standard input/output}

stdio

	{standard input/output}

stdio.h

	<programming> {standard input/output} {header file}.

	(1996-01-28)

STDM

	{statistical time division multiplexing}

stdout

	{standard input/output}

STDWIN

	A windowing interface from {CWI} with windows, menus, modal
	dialogs, mouse and keyboard input, scroll bars, drawing
	primitives, etc that is portable between {platforms}.  STDWIN
	is available for {Macintosh} and the {X Window System}.

steam-powered

	Old-fashioned or underpowered; archaic.  This term does not
	have a strong negative loading and may even be used
	semi-affectionately for something that clanks and wheezes a
	lot but hangs in there doing the job.

	[{Jargon File}]

Steelman

	DoD, June 1978.  Fifth and last of the series of DoD
	requirements that led to Ada.  "Steelman Requirements for High
	Order Programming Languages", US Dept of Defense, June 1978.
	SIGPLAN Notices 13(12) (Dec 1978).  (See Strawman, Woodenman,
	Tinman, Ironman).

steganography

	<security> Hiding a secret message within a larger one in such
	a way that others can not discern the presence or contents of
	the hidden message.  For example, a message might be hidden
	within an {image} by changing the {least significant bits} to
	be the message bits.

	[{Chaffing and Winnowing: Confidentiality without Encryption,
	Ronald L. Rivest, MIT Lab for Computer Science, 1998-03-22
	(http://theory.lcs.mit.edu/~rivest/chaffing.txt)}].

	(1998-07-13)

stemmer

	<information science, human language> A program or {algorithm}
	which determines the morphological root of a given inflected
	(or, sometimes, derived) word form -- generally a written word
	form.

	A stemmer for English, for example, should identify the
	{string} "cats" (and possibly "catlike", "catty" etc.) as
	based on the root "cat", and "stemmer", "stemming", "stemmed"
	as based on "stem".

	English stemmers are fairly {trivial} (with only occasional
	problems, such as "dries" being the third-person singular
	present form of the verb "dry", "axes" being the plural of
	"ax" as well as "axis"); but stemmers become harder to design
	as the morphology, orthography, and {character encoding} of
	the target language becomes more complex.  For example, an
	Italian stemmer is more complex than an English one (because
	of more possible verb inflections), a Russian one is more
	complex (more possible noun declensions), a Hebrew one is even
	more complex (a {hairy} writing system), and so on.

	Stemmers are common elements in {query} systems, since a user
	who runs a query on "daffodils" probably cares about documents
	that contain the word "daffodil" (without the s).

	({This dictionary} has a rudimentary stemmer which currently
	(April 1997) handles only conversion of plurals to singulars).

	(1997-04-09)

stemming

	{stemmer}

STENSOR

	L. Hornfeldt, Stockholm, mid-80's.  Symbolic math, especially
	General Relativity.  Implemented on top of SHEEP and MACSYMA.

STEP

	{Standard for the exchange of product model data}

Stephen Cole Kleene

	{Stephen Kleene}

Stephen Jobs

	<person> Stephen P. Jobs (born 24 February 1955).  The
	co-founder and ex-president of {Apple Computer}, leader of the
	team that produced the {Macintosh}.

	In 1979, when he was president of Apple, Steven Jobs saw a
	demonstration of {Smalltalk} at {Xerox}'s {Palo Alto Research
	Center}.  He and other Apple employees were "very impressed
	with the unique and revolutionary user-friendly design".

	The first {Macintosh} was released in January 1984.  Jobs
	described it as {insanely great}.

	Jobs was ousted from Apple in 1985 and founded {Next, Inc.}.
	In December 1996 he was re-employed by Apple when they bought
	NeXT.

	See also {lithium lick}, {Mathematica}.

	(1997-03-18)

Stephen Kleene

	<person> Professor Stephen Cole Kleene (1909-01-05 -
	1994-01-26) /steev'n (kohl) klay'nee/ An American
	mathematician whose work at the {University of
	Wisconsin-Madison} helped lay the foundations for modern
	computer science.  Kleene was best known for founding the
	branch of {mathematical logic} known as {recursion theory} and
	for inventing {regular expressions}.  The {Kleene star} and
	{Ascending Kleene Chain} are named after him.

	Kleene was born in Hartford, Conneticut, USA.  He received his
	Bachelor of Arts degree from Amherst College in 1930.  From
	1930 to 1935, he was a graduate student and research assistant
	at {Princeton University} where he received his doctorate in
	mathematics in 1934.  In 1935, he joined UW-Madison
	mathematics department as an instructor.  He became an
	assistant professor in 1937.

	From 1939 to 1940, he was a visiting scholar at Princeton's
	{Institute for Advanced Study} where he laid the foundation
	for recursive function theory, an area that would be his
	lifelong research interest.  In 1941 he returned to Amherst as
	an associate professor of mathematics.

	During World War II Kleene was a lieutenant commander in the
	United States Navy.  He was an instructor of navigation at the
	U.S. Naval Reserve's Midshipmen's School in New York, and then
	a project director at the Naval Research Laboratory in
	Washington, D.C.

	In 1946, he returned to Wisconsin, eventually becoming a full
	professor.  He was chair of mathematics, and computer sciences
	in 1962 and 1963 and dean of the College of Letters and
	Science from 1969 to 1974.  In 1964 he was named the Cyrus
	C. MacDuffee professor of mathematics.

	An avid mountain climber, Kleene had a strong interest in
	nature and the environment and was active in many conservation
	causes.  He led several professional organisations, serving as
	president of the {Association of Symbolic Logic} from 1956 to
	1958.  In 1961, he served as president of the International
	Union of the History and the Philosophy of Science.

	Kleene pronounced his last name /klay'nee/.  /klee'nee/ and
	/kleen/ are extremely common mispronunciations.  His first
	name is /steev'n/, not /stef'n/.  His son, Ken Kleene
	<kenneth.kleene@umb.edu>, wrote: "As far as I am aware this
	pronunciation is incorrect in all known languages.  I believe
	that this novel pronunciation was invented by my father."

	{(gopher://gopher.adp.wisc.edu/00/.data/.news-rel/.9401/.940126a)}.

	(1999-03-03)

stepper motor

	<hardware> An electric motor that rotates in small, fixed
	increments and is used, among other things, to control the
	radial position (seeking) of the heads on a {disk drive}.

	(2006-12-24)

Stepstone Corp

	<company> A company founded by Brad Cox, responsible for
	{Objective C}.

	Telephone: +1 (203) 426-1875.

	(1996-08-04)

stepwise refinement

	{top-down design}

stereogram

	A two-dimensional image which, when viewed correctly appears
	three-dimensional.  E.g. {SIRDS} or {SIRTS}.

	{(ftp://katz.anu.edu.au/pub/stereograms)}.

	(1994-11-03)

Sterling Software, Inc.

	<company> A software company which was bought out by {Computer
	Associates International, Inc.}

	{Acquisition (http://ca.com/acq/sterling/)}.

	(2002-04-20)

Steve Jobs

	{Stephen Jobs}

Steve's Shell

	<operating system> (ssh) A {Unix} {shell} with many {csh}- and
	{ksh}-like features, by Steve Baker <ice@judy.indstate.edu>
	and Thomas Moore.

	Version 1.7 has been ported to {Sequent}, {Sun}, {NeXT},
	{Ultrix}, {BSDI} and is available from {comp.sources.unix}
	volume 26.

	(1993-04-15)

Steve Wozniak

	<person> Co-founder of {Apple Computer} with {Steve Jobs} on
	01 April 1976 and the inventor of the {Apple II} {personal
	computer}.

	(1998-04-05)

STFT

	{Short Term Fourier Transform}

STFU

	<chat> Shut the fuck up.

	(2008-03-04)

STFW

	{Search The Fucking Web}

Sticks&Stones

	<language, functional programming> A {functional},
	{polymorphic} {hardware description language} loosely based on
	{ML} by Lucca Cardelli.

	["An Algebraic Approach to Hardware Description and
	Verification", L. Cardelli, Thesis, Edinburgh U, 1982].

	["Sticks&Stones II: A Functional Language VLSI Layout
	Generation Tool", Andrew Butterfield <butrfeld@cs.tcd.ie>,
	Thesis, Trinity College, 1990].

	(2008-03-04)

sticky analysis

	<theory> A kind of program analysis that uses information from
	all the call sites of a function or procedure.

	(1999-06-15)

sticky bit

	<operating system> The {bit} in the mode of a {Unix} file
	which, if set for an executable, tells the {kernel} to keep
	the code loaded in {swap space} even after it has finished
	executing on the assumption that it is likely to be used again
	soon.  This performance optimisation was included in some
	early (and recent?) versions of {Unix} to save reloading
	frequently used programs such as the {shell} or {vi} from
	disk.

	If the sticky bit is set on a directory, an unprivileged user
	may not delete or rename files of other users in that
	directory even if he has write access to the directory.

	The Unix "ls" command displays a set sticky bit as a "t" in
	the permissions of a file or directory.

	(1997-02-26)

sticky content

	<World-Wide Web> {World-Wide Web} pages that refer only or
	mostly to pages on the same {website}.  This is important to
	some commercial sites who want users to keep accessing pages
	from their site because they receive advertising income from
	each hit.  It does however somewhat miss the point of the
	World-Wide Web which is to link useful information across the
	whole {Internet}.

	(1999-06-15)

stiffy

	<storage, jargon> ({University of Lowell}, Massachusetts) A
	3.5-inch {microfloppy}, so called because their jackets are
	more rigid than those of the 5.25-inch and the (obsolete)
	8-inch {floppy disk}.  Elsewhere this might be called a
	"firmy".

	[{Jargon File}]

	(1994-11-03)

STIL

	STatistical Interpretive Language.

	["STIL User's Manual", C.F.  Donaghey et al, Indust Eng Dept,
	U Houston (Aug 1969)].

STING

	A parallel dialect of {Scheme} intended to serve as a
	high-level {operating system} for symbolic programming
	languages.  {First-class} {threads} and processors and
	customisable {scheduling} policies.

	E-mail: <suresh@research.nj.dec.com>.

	["A Customizable Substrate for Concurrent Languages",
	S. Jagannathan et al, ACM SIGPLAN Notices, 1992].

	(1994-11-03)

STk

	<language, LISP, graphics> A {Scheme} {interpreter} blended
	with Ousterhout's {Tk} package by Erick Gallesio
	<eg@unice.fr>.  STk expresses all of Tk as Scheme objects.
	STk includes a slow {CLOS}/{Dylan}-like {object-oriented}
	extension.

	STk almost conforms to {R4RS} and runs on {SunOS} 4.1.x and
	{Ultrix}/{MIPS}.

	Latest version: 4.0.1, as of 2000-09-24.

	{(ftp://kaolin.unice.fr/pub/STk-1.00.tar.gz)}.
	{(ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/STk-2.1.tar.Z)}.

	(2000-12-16)

STMP

	Did you mean {SMTP}?

stochastic

	{probabilistic}

stock-keeping unit

	<database> (SKU) /skyoo/ (rarely seen expanded) A common term
	for a unique numeric identifier, typically in a {database}.
	Originally this was used only for products, but has spread in
	usage.

	Compare with {UID} for sense development.

	(1998-09-27)

STOIC

	{STring Oriented Interactive Compiler}

stomp on

	To inadvertently overwrite something important, usually
	automatically.  "All the work I did this weekend got stomped
	on last night by the nightly server script."  Compare
	{scribble}, {mangle}, {trash}, {scrog}, {roach}.

	[{Jargon File}]

STONE

	A Structured and Open Environment: a project supported by the
	German Ministry of Research and Technology (BMFT) to design,
	implement and distribute a SEE for research and teaching.

Stone Age

	<jargon> In computer folklore, an ill-defined period from
	{ENIAC} (ca. 1943) to the mid-1950s; the great age of
	electromechanical {dinosaurs}.  Sometimes used for the entire
	period up to 1960-61 (see {Iron Age}); however, it is more
	descriptive to characterise the latter period in terms of a
	"Bronze Age" era of {transistor}-logic, pre-{ferrite core
	memory} machines with {drum} or {CRT} mass storage (as opposed
	to just {mercury delay lines} and/or relays).

	More generally, the term is used pejoratively for ancient
	hardware or software, even by survivors from the {Stone Age}.

	[{Jargon File}]

	(2003-09-27)

stone knives and bearskins

	(From the Star Trek Classic episode "The City on the Edge of
	Forever") A term traditionally used to describe (and
	deprecate) computing environments that are grotesquely
	primitive in light of what is known about good ways to design
	things.  As in "Don't get too used to the facilities here.
	Once you leave SAIL it's stone knives and bearskins as far as
	the eye can see".

	Compare {steam-powered}.

	[{Jargon File}]

	(1995-01-24)

Stoneman

	The requirements, written by the {HOLWG} of the US {DoD} in
	Feb 1980, that led to APSE.

	["Requirements for Ada Programming Support Environments:
	STONEMAN", US Dept of Defense, Feb 1980].

	(1995-01-24)

stop bit

	In serial communications, where each bit of the message is
	transmitted in sequence, stop bits are extra "1" bits which
	follow the data and any {parity} bit.  They mark the end of a
	unit of transmission (normally a byte or character).

	For example, characters on an {EIA-232} {serial line} may have
	one or two stop bits added.  Some {UARTs} even allow for 1.5
	stop bits but one is probably the most commonly used.  A
	serial connection may be described as, for example, "8N1"
	which means eight data bits, no {parity} and one stop bit.

	(1995-01-24)

stoppage

	/sto'p*j/ Extreme {lossage} that renders something (usually
	something vital) completely unusable.  "The recent system
	stoppage was caused by a {fried} transformer."

	[{Jargon File}]

	(1995-01-24)

storage

	<storage> (Or "memory") A device into which data can be
	entered, in which it can be held, and from which it can be
	retrieved at a later time.  The distinguishing characteristics
	of a device are its capacity (the number of bytes it can
	hold), its {access speed}, whether it is {volatile} (loses
	data when the power is turned off), removeable and/or
	writeable.  Common examples are {DRAM}, {hard disk}, {CD-ROM},
	{Flash memory}.

	(2009-02-23)

Storage Allocation and Coding Program

	<language> (STAC) A symbolic {macro-assembler} for the
	{English Electric} {DEUCE}.

	["DEUCE STAC Programming Manual", DEUCE News No. 38, Report
	K/AA y 1 DEUCE Library Service, Data Processing and COntrol
	Systems DIvision, English Electric Company, Kidsgrove, June].

	(1998-06-08)

Storage Area Network

	<storage> (SAN) A high-speed subnetwork of shared storage
	devices.  A storage device is a machine that contains nothing
	but a disk or disks for storing data.

	A SAN's architecture works in a way that makes all storage
	devices available to all servers on a LAN or WAN.  As more
	storage devices are added to a SAN, they too will be
	accessible from any server in the larger network.  The server
	merely acts as a pathway between the end user and the stored
	data.

	Because stored data does not reside directly on any of a
	network's servers, server power is used for business
	applications, and network capacity is released to the end
	user.

Storage Management Services

	<storage> (SMS) Software that enables network administrators
	to route {backup} data from various devices on a network to
	another device such as a server or a {magnetic tape} backup
	unit.  This is done either to make use of a high-capacity
	storage system such as a tape {juke-box} or for disaster
	protection.

	(1996-02-18)

storage media

	<storage> Devices on which {data} is stored, as opposed to the
	device ("drive") used to read and write data from and to the
	media.  The term typically applies to removeable storage such
	as {magnetic tape} or {flash memory}, rather than fixed
	devices like a {hard disk}.

	(2009-02-23)

store

	<jargon> In some varieties of Commonwealth hackish, the
	preferred synonym for {core}.  Thus, "bringing a program into
	store" means that a program is being {swap}ped in from
	{backing store} to {main store}.

	[{Jargon File}]

	(2006-12-06)

store and forward

	<messaging> (Or "message switching") A kind of {message
	passing} system where a complete message is received before
	any of it is passed on to the next node.  This means that each
	message is using at most one interprocessor link at any time
	but intermediate nodes will require more storage buffers than
	under the alternative, {wormhole routing}.

	E-mail transmission is an example of {store and forward}
	message passing.

	(1995-02-16)

stored procedure

	<database> A {subroutine} stored in a {database} and executed
	by the {database management system}.  The subroutine may be
	written in the same language in which the database is queried
	and may be precompiled to improve performance.

	Typically a stored procedure encapsulates some business
	process.  Performing this on the database server avoids the
	network overhead of transferring input data to the client for
	processing.  This would be particularly significant if
	processing lots of data and returning a small result set like
	a total or maximum.  Stored procedures also provide consistent
	implementation of the business logic to clients written in
	different languages and running in different environments.

	Some financial systems allow databases access through stored
	procedures alone, this restricts actions on the data to a
	small number of auditable queries.

	Sybase SQL Server ({Adaptive Server Enterprise}) was the first
	commercially successful RDBMS to support stored procedures.

	(2004-03-04)

storm

	{broadcast storm}

Story of Mel

	{The story of Mel}

STP

	{shielded twisted pair}

StP

	{Software through Pictures}

STP4

	A statistical language.

Strachey, Christopher

	{Christopher Strachey}

Strand

	1. {AND-parallel} {logic programming} language.  Essentially
	flat {Parlog83} with sequential-and and sequential-or
	eliminated.

	["Strand: New Concepts on Parallel Programming", Ian Foster et
	al, P-H 1990].  {Strand88} is a commercial implementation.

	2. A query language, implemented on top of {INGRES} (an
	{RDBMS}).  ["Modelling Summary Data", R. Johnson, Proc ACM
	SIGMOD Conf 1981].

Strand88

	A commercial implementation of {Strand} from Strand Software
	Technologies Ltd., UK and Strand Software, Beaverton, OR, USA.
	E-mail: <strand88@sstl.uucp>.

Stratus

	<company> One of the leading manufacturers of {fault-tolerant}
	computer systems.  While virtually all of Stratus' core
	hardware and software is sold into the financial services,
	telecommunications, travel and transportation, and gaming
	these markets, a broad range of {middleware} and
	{applications} are developed and marketed by Stratus, its
	subsidiaries, and third party partners.

	Yearly sales $609M, profits $43.5M (1996).

	{(http://stratus,com)}.

	(1997-04-24)

Strawman

	The first of the series of {DoD} requirements that led to
	{Ada} ({Woodenman}, {Tinman}, {Ironman}, {Steelman}).
	Strawman was produced by the {HOLWG} in Apr 1975.

	(1995-01-30)

STREAM

	["STREAM: A Scheme Language for Formally Describing Digital
	Circuits", C.D. Kloos in PARLE: Parallel Architectures and
	Languages Europe, LNCS 259, Springer 1987].

	(1995-01-30)

stream

	1. <communications> An {abstraction} referring to any flow of
	data from a source (or sender, producer) to a single sink (or
	receiver, consumer).  A stream usually flows through a channel
	of some kind, as opposed to {packets} which may be addressed
	and routed independently, possibly to multiple recipients.
	Streams usually require some mechanism for establishing a
	channel or a "{connection}" between the sender and receiver.

	2. <programming> In the {C} language's buffered input/ouput
	library functions, a stream is associated with a file or
	device which has been opened using {fopen}.  Characters may be
	read from (written to) a stream without knowing their actual
	source (destination) and buffering is provided transparently
	by the library routines.

	3. <operating system> Confusingly, {Sun} have called their
	modular {device driver} mechanism "{STREAMS}".

	4. <operating system> In {IBM}'s {AIX} {operating system}, a
	stream is a {full-duplex} processing and data transfer path
	between a driver in {kernel space} and a process in {user
	space}.

	[IBM AIX 3.2 Communication Programming Concepts,
	SC23-2206-03].

	5. <communications> {streaming}.

	6. <programming> {lazy list}.

	(1996-11-06)

streaming

	<communications> Playing {sound} or {video} in {real time} as
	it is downloaded over the {Internet} as opposed to storing it
	in a local file first.  A {plug-in} to a {web browser} such as
	{Netscape Navigator} decompresses and plays the data as it is
	transferred to your computer over the {World-Wide Web}.
	Streaming audio or video avoids the delay entailed in
	downloading an entire file and then playing it with a {helper
	application}.  Streaming requires a fast connection and a
	computer powerful enough to execute the decompression
	{algorithm} in {real time}.

	(1996-11-06)

Streaming SIMD Extensions

	<architecture> (SSE) {Intel Corporation}'s {floating point}
	{SIMD} extention of their {Pentium} {microprocessor}
	architecture.  SSE was formerly know as KNI (Katmai New
	Instructions).  It was introduced with the {Pentium III}.

	{Intel Pentium III
	(http://developer.intel.com/design/pentiumiii/prodbref/)}.

	{ipoem (http://ipoem.com/technology/Docs/pentium4.html)}.

	(2003-07-13)

stream-oriented

	{connection-oriented}

STREAMS

	<operating system> A collection of {system calls}, {kernel}
	resources, and kernel utility routines that can create, use,
	and dismantle a {stream}.  A "stream head" provides the
	interface between the stream and the user processes.  Its
	principal function is to process STREAMS-related user system
	calls.  A "stream module" processes data that travel bewteen
	the stream head and driver.  The "stream end" provides the
	services of an external input/output device or an internal
	software driver.  The internal software driver is commonly
	called a {pseudo-device} driver.

	The STREAMS concept has been formalised in {Unix} {System V}.
	For example, {SVR4} implements {sockets} and {pipes} using
	STREAMS, resulting in pipe(2) openning bidirectional pipes.

	[IBM AIX 3.2 Communication Programming Concepts, SC23-2206-03].

	(1999-06-29)

strength reduction

	An optimisation where a function of some systematically
	changing variable is calculated more efficiently by using
	previous values of the function.  In a {procedural language}
	this would apply to an expression involving a loop variable
	and in a {declarative language} it would apply to the argument
	of a {recursive} function.  E.g.

		f x = ... (2**x) ... (f (x+1)) ...

			==>

		f x = f' x (2**x)
		      where
		      f ' x z = ... z ... (f' (x+1) 2*z) ...

	Here the expensive operation (2**x) has been replaced by the
	cheaper 2*z in the recursive function f'.  This maintains the
	invariant that z = 2**x for any call to f'.

	(1995-01-31)

STRESS

	STRuctual Engineering Systems Solver.

	A system for structural analysis problems in Civil
	Engineering.  STRESS was superseded by {STRUDL}.

	["STRESS: A User's Manual", S.J. Fenves et al, MIT Press
	1964].

	[Sammet 1969, p. 612].

	(1995-01-31)

stress testing

	<testing> Testing aimed at investigating the behaviour of a
	software or hardware equipment in out of ordinary operating
	conditions.

	(1998-03-27)

strict

	A function f is strict in an argument if

		f bottom = bottom

	(See {bottom}).  In other words, the result depends on the
	argument so evaluation of an application of the function
	cannot terminate until evaluation of the argument has
	terminated.

	If the result is only {bottom} when the argument is bottom
	then the function is also {bottom-unique}.

	See also {strict evaluation}, {hyperstrict}.

	(1995-01-25)

strict evaluation

	{Call-by-value} evaluation order is sometimes called "strict
	evaluation" because, in a sequential system, it makes
	functions behave as though they were {strict}, in the sense
	that evaluation of a function application cannot terminate
	before evaluation of the argument.  Similarly, languages are
	called strict if they use {call-by-value} argument passing.

	Compare {eager evaluation}, {lazy evaluation}.

	(1994-12-21)

strided

	/str:'d*d/ (scientific computing) Said of a sequence of memory
	reads and writes to addresses, each of which is separated from
	the last by a constant interval called "the stride length", or
	just "the stride".  These can be a worst-case access pattern
	for {cache} schemes when the stride length is a multiple of
	the {cache line} size.

	Strided references are often generated by loops through an
	{array}, and (if the data is large enough that access-time is
	significant) it can be worthwhile to tune for better locality
	by inverting double loops or by partially unrolling the outer
	loop of a loop nest.

	[{Jargon File}]

	(1994-12-21)

string

	<programming> A sequence of {data} values, usually {bytes},
	which usually stand for {characters} (a "character string").
	The {mapping} between values and characters is determined by
	the {character set} which is itself specified implcitly or
	explicitly by the environment in which the string is being
	interpreted.

	The most common character set is {ASCII} but, since the late
	1990s, there has been increased interest in larger character
	sets such as {Unicode} where each character is represented by
	more than eight {bits}.

	Most programming languages consider strings (e.g.
	"124:shabooya:\n", "hello world") basically distinct from
	numbers which are typically stored in fixed-length {binary} or
	{floating-point} representation.

	A {bit string} is a sequence of {bits}.

	(1999-12-21)

String EXpression Interpreter

	{String Oriented Symbolic Language}

stringly typed

	<humour, programming> A humourous play on "{strongly typed}",
	coined by Mark Simpson, for an implementation that uses
	strings instead of more appropriate types, thus preventing
	{compile-time} {type checking}.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2012-06-25)

STring Oriented Interactive Compiler

	<language> (STOIC) A language from the Smithsonian
	Astrophysical Observatory.  STOIC is similar to {FORTH} for
	strings and includes many {VAX}-specific items.

	(1998-09-27)

String Oriented Symbolic Language

	<language> (SNOBOL) A {string processing language} for {text}
	and {formula} manipulation, developed by David J. Farber, Ralph E.
	Griswold and Ivan P. Polonsky at {Bell Labs} in 1962.

	SNOBOL had only simple {control structures} but provided a
	rich string-matching formalism of power comparable to {regular
	expressions} but implemented differently.  People used it
	for simple {natural language processing} analysis tasks well
	into the 1980s.  Since then, {Perl} has come into favour for
	such tasks.

	SNOBOL was originally called "SEXI" - String EXpression
	Interpreter.  In spite of the suggestive name, SNOBOL is not
	related to {COBOL}.  Farber said the name SNOBOL was largely
	contrived at the time the original JACM article was published
	when one of the implementors said something like, "This
	program doesn't have a snowball's chance in hell of ...".  The
	expansion to "String Oriented Symbolic Language" was contrived
	later.

	Implementations include (in no particular order): {SNOBOL2},
	{SNOBOL3}, {SNOBOL4}, {FASBOL}, {SITBOL}, {MAINBOL}, {SPITBOL}
	and {vanilla}.

	See also {EZ}, {Poplar}, {SIL} and {Icon}.

	{SNOBOL 4 (http://snobol4.org/)}.

	{David Farber (http://cis.upenn.edu/%7Efarber/)}.

	{Ralph Griswold (http://cs.arizona.edu/people/ralph/)}.

	["SNOBOL, A String Manipulating Language", R. Griswold et al,
	J ACM 11(1):21, Jan 1964].

	(2004-04-29)

String PRocessING language

	<language> (SPRING)

	["From SPRING to SUMMER: Design, Definition and Implementation
	of Programming Languages for String Manipulation and Pattern
	Matching", Paul Klint, Math Centre, Amsterdam 1982].

	(1996-02-06)

string reduction

	A {reduction system} where an expression is represented as a
	string of function names, constants and parentheses.  It is
	reduced by replacing parts of the string representing subterms
	by their value.

	It is harder to represent sharing of subexpressions in string
	reduction than in {graph reduction}.

	(1995-02-06)

stripe

	{data striping}

stripe set

	{data striping}

striping

	{data striping}

STROBES

	{Shared Time Repair of Big Electronic Systems}

stroke

	The oblique stroke character, "/", ASCII 47.

	See {ASCII} for other synonyms.

	[{Jargon File}]

StrongARM

	<processor> A collaborative project between {Digital Equipment
	Corporation} and {Advanced RISC Machines} Ltd. (ARM) announced
	on 1995-02-06 licensing the {ARM} {RISC} architecture to
	{Digital Semiconductor} for the development of
	high-performance, low power {microprocessors}.

	The StrongARM family of 32-bit RISC products developed under
	the agreement are faster versions of the existing ARM
	processors with a somewhat different {instruction set}.  They
	are targetted at applications such as next-generation
	{personal digital assistants} with improved user interfaces
	and communications; {interactive television} and set-top
	products; video games and {multimedia} {edutainment} systems
	with realistic imaging, motion and sound; and digital imaging,
	including low cost digital image capture and photo-quality
	scanning and printing.

	The StrongARM family has limited software compatibility with
	the {ARM6}, {ARM7} and {ARM8} families due to its separate
	{caches} for data and instructions which causes
	{self-modifying code} to fail.

	The {SA-110} is the first member of the family.

	(1998-09-07)

strongly connected component

	(SCC) A subset, S, of the nodes of a {directed graph} such
	that any node in S is reachable from any other node in S and S
	is not a subset of any larger such set.  SCCs are {equivalence
	class}es under the {transitive closure} of the "directly
	connected to" {relation}.

	(1995-02-06)

strongly typed

	{strong typing}

strong typing

	<programming> Strict enforcement of {type} rules with no
	exceptions.  Incorrect type usage can be detected either at
	{run time} or at {compile time}.  Strong typing catches more
	type errors than {weak typing}, resulting in fewer hard
	errors.  In a strongly typed language, conversion between
	types requires the use of explicit conversion functions
	("casts") as opposed to {implicit type coercion}.

	Typing strength is a continuum; {ML} is more strongly typed
	than {Java}, which is more strongly typed than {C}.

	Strong or weak typing is independent of the choice between
	{static typing} and {dynamic typing}.  Among strongly typed
	languages, {Ada}, {Java}, {Haskell} and {ML} are statically
	typed, whereas {Python} and {Ruby} are dynamically typed.

	(2004-07-20)

Stroustrup, Bjarne

	{Bjarne Stroustrup}

struct

	<programming> A data type in {C} and {C++} corresponding to a
	{record} in {Ada} or {Pascal} or a {tuple} in {functional
	programming}.  A struct has one or more members, each of which
	may have different types.  It is used to group associated data
	together.

	(1995-02-14)

structural recursion

	The process of transforming an expression by expressing its
	structure as a syntax tree and applying a certain
	transformation rule to each kind of node, starting from the
	top.  Rules for non-{leaf nodes} will normally return a result
	which depends on applying the rules recursively to its
	sub-nodes.  Examples include {syntax} analysis, {code
	generation}, {abstract interpretation} and {program
	transformation}.

	(1995-01-11)

structured analysis

	One of a number of requirements analysis methods used in
	software engineering.

Structured Analysis and Design Technique

	<modeling> (SADT) A {function modeling} method for analysing
	and communicating the functional perspective of a system.
	SADT was commissioned by The United States Air Force.

	{IDEF0} was derived from SADT.

	(2007-01-08)

structured design

	<programming> (SD) One of a number of systematic {top-down
	design} techniques used in {software engineering}, usually
	after {structured analysis}.

	(1995-04-28)

structure diagram

	<programming, data> A pictorial representation of the
	composition, grouping and relationship of data items.

	(1998-06-11)

structured language

	{block-structured}

structured programming

	<programming> Any software development technique that includes
	{structured design} and results in the development of a
	program consisting of blocks of code whose internal details
	are independent.  Structured programming is usually done in a
	{block-structured} language.

	(2004-09-29)

Structured Query Language

	{SQL}

Structure of Management Information

	(SMI) The rules used to define the objects that can be
	accessed via a {network management protocol}.  This {protocol}
	is defined in {STD} 16, {RFC} 1155.

	See also {Management Information Base}.

	(1994-11-14)

strudel

	<character> Common (spoken) name for the commercial at sign,
	"@", {ASCII} 64.

	[{Jargon File}]

	(1995-03-13)

STRUDL

	STRUctured Design Language.

	Dynamic and {finite-element analysis}, steel and concrete
	structures.  Subsystem of {ICES}.  ["ICES STRUDL-II
	Engineering User's Manual", R68-91, CE Dept MIT (Nov 1968)
	Sammet 1969, p.613].

STSC APL

	Implementation of APL by Scientific {Time-Sharing} Corporation

stub

	1. <programming> A dummy procedure used when linking a program
	with a {run-time library}.  The stub routine need not contain
	any code and is only present to prevent "undefined label"
	errors at link time.

	2. <programming, networking> A local procedure in a {remote
	procedure call}.  The {client} calls the stub to perform some
	task and need not necessarily be aware that RPC is involved.
	The stub transmits parameters over the network to the {server}
	and returns the results to the caller.

	(1995-11-09)

stub network

	A {network} which only carries {packets} to and from local
	{hosts}.  Even if it has paths to more than one other network,
	it does not carry traffic for other networks.  See also
	{backbone}, {transit network}.

stubroutine

	/stuhb'roo-teen/ [contraction of "stub subroutine"] Tiny,
	often vacuous placeholder for a {subroutine} that is to be
	written or fleshed out later.

	[{Jargon File}]

STUDENT

	D.G. Bobrow 1964.  Early query system.  Sammet 1969, p.664.

Student PL/I

	<language> A translator-{interpreter} for a {PL/I} subset
	derived from {SPL}.

	["Student PL/I Compiler", R.A. Vowels, RMIT, Melbourne, 1971].

	(1996-01-19)

studly

	Impressive; powerful.  Said of code and designs which exhibit
	both complexity and a virtuoso flair.  Has connotations
	similar to {hairy} but is more positive in tone.  Often in the
	emphatic "most studly" or as noun-form "studliness".  "Smail
	3.0's configuration parser is most studly."

	[{Jargon File}]

studlycaps

	<jargon> /stuhd'lee-kaps/ A hackish form of silliness similar
	to {BiCapitalisation} for trademarks, but applied randomly and
	to arbitrary text rather than to trademarks.  ThE oRigiN and
	SigNificaNce of thIs pRacTicE iS oBscuRe.

	(1995-03-01)

Stuffit

	<tool, file format> (filename extension: .sit) A file
	{archiving} and {compression} utility, developed by {Aladdin
	Systems, Inc.}.  Stuffit was originally developed for the
	{Macintosh} and is still the Mac standard tool for compression
	and archiving (compressing multiple files into one).  Stuffit
	is now also available for {Microsoft Windows} and {Linux}.
	Compared to the standard Windows tool, {WinZip}, it is faster
	and gives better compression.

	Stuffit archives can be extracted with Stuffit Expander.

	{Stuffit Home (http://stuffit.com/)}.

	(2003-09-20)

Stupids

	Term used by {samurai} for the {suits} who employ them.
	Succinctly expresses an attitude at least as common, though
	usually better disguised, among other subcultures of hackers.
	There may be intended reference here to an SF story originally
	published in 1952 but much anthologised since, Mark Clifton's
	"Star, Bright".  In it, a super-genius child classifies humans
	into a very few "Brights" like herself, a huge majority of
	"Stupids", and a minority of "Tweens", the merely ordinary
	geniuses.

	[{Jargon File}]

stupid-sort

	Synonym {bogo-sort}.

Sturgeon's Law

	"Ninety percent of everything is crap".  Derived from a quote
	by science fiction author Theodore Sturgeon, who once said,
	"Sure, 90% of science fiction is crud.  That's because 90% of
	everything is crud."  Oddly, when Sturgeon's Law is cited, the
	final word is almost invariably changed to "crap".  Compare
	{Ninety-Ninety Rule}.  Though this maxim originated in SF
	fandom, most hackers recognise it and are all too aware of its
	truth.

	[{Jargon File}]

STX

	{Start Of Text}

style

	<World-Wide Web> The visual presentation or formatting of {web
	content}, chiefly either {HTML} content with style controlled
	by {Cascading Style Sheets} (CSS) or {XML} content controlled
	by {XSL}.  Style is distinguished from meaning, which is
	encoded with {semantic markup}.  The latter deals with logical
	divisions of content such as headings, lists and paragraphs.

	(2008-02-25)

su

	<operating system, tool, security> (substitute user) The
	{Unix} command which allows you to become another user after
	entering their {password}.  su is most often used without
	arguments in which case it defaults to user {root}.  Some
	versions of Unix only allows this command to be used by
	members of the {wheel} group.

	{Unix manual page}: su(1).

	(1996-09-08)

SUB

	{Substitute}

subband encoding

	An audio {compression} technique where the sound is split into
	frequency bands and then parts of the signal which the ear
	cannot detect are removed, e.g. a quiet sound masked by a loud
	one.  The remaining signal is encoded using variable bit-rates
	with more bits per sample being used in the mid frequency
	range.

	Subband encoding is used in {MPEG-1}.

	(1994-11-02)

subclass

	{derived class}

subject

	<programming> In {subject-oriented programming}, a subject is
	a collection of {classes} or class fragments whose {class
	hierarchy} models its domain in its own, subjective way.  A
	subject may be a complete application in itself, or it may be
	an incomplete fragment that must be composed with other
	subjects to produce a complete application.  Subject
	composition combines class hierarchies to produce new subjects
	that incorporate functionality from existing subjects.

	(1999-08-31)

subject index

	<information science> An information resource that contains
	references to other resources, categorised by subject, usually
	in a {hierarchy}.

	{Yahoo} is the most popular {Internet} subject index.  Like
	most {other subject indices
	(http://yahoo.com/Computers_and_Internet/Internet/World_Wide_Web/Searching_the_Web/Web_Directories/)},
	Yahoo is arranged {ontologically}.

	Subject indices are not to be confused with {search engines},
	which are based not on subject, but instead on {relevance},
	although (1) this difference is often (possibly rightly)
	hidden from the unsophisticated user, and (2) future
	integration of {knowledge representation} into relevance
	ranking {algorithms} will make this a hazy distinction.

	(1997-04-09)

subject-oriented programming

	<programming> Program composition that supports building
	{object-oriented} systems as compositions of {subjects},
	extending systems by composing them with new subjects, and
	integrating systems by composing them with one another
	(perhaps with {glue} or adapter subjects).

	The flexibility of subject composition introduces novel
	opportunities for developing and modularising object-oriented
	programs.  Subject-oriented programming-in-the-large involves
	dividing a system into subjects and writing rules to compose
	them correctly.  It complements {object-oriented programming},
	solving a number of problems that arise when OOP is used to
	develop large systems or suites of interoperating or
	integrated applications.

	{IBM subject-oriented programming
	(http://research.ibm.com/sop/)}.

	(1999-08-31)

sublanguage

	<database, language> One of the languages associated with a
	{DBMS}, for example a {data-definition language} or {query
	language}.

	(1999-10-18)

subnet

	A portion of a {network}, which may be a physically
	independent network segment, which shares a {network address}
	with other portions of the network and is distinguished by a
	subnet number.  A subnet is to a network what a network is to
	an {internet}.

subnet address

	The {subnet} portion of an {IP address}.  In a subnetted
	{network}, the {host} portion of an IP address is split into a
	subnet portion and a host portion using an {address mask} (the
	subnet mask).

subnet mask

	{address mask}

subnet number

	{subnet address}

subroutine

	<programming> (Or "procedure") A sequence of {instructions}
	for performing a particular task.  Most programming languages,
	including most {machine languages}, allow the programmer to
	define subroutines.  This allows the subroutine code to be
	called from multiple places, even from within itself (in which
	case it is called {recursive}).  The programming language
	implementation takes care of returning control to (just after)
	the calling location, usually with the support of call and
	return instructions at {machine language} level.

	Most languages also allow {arguments} to be passed to the
	subroutine, and one, or occasionally more, {return values} to
	be passed back.

	A {function} is often very similar to a subroutine, the main
	difference being that it is called chiefly for its return
	value, rather than for any {side effects}.

	(1996-10-01)

subscribe

	<messaging> To request to receive messages posted to a
	{mailing list} or {newsgroup}.  In contrast to the mundane use
	of the word this is often free of charge.

	(1997-03-27)

Subscriber Identity Module

	<telecommunications, wireless communications> (SIM or "SIM
	card") A component, usually in the form of a miniature
	smart-card, that is theoretically tamper-proof and is used to
	associate a mobile subscriber with a mobile network
	subscription. The SIM holds the subscriber's unique {MSISDN}
	along with secret information such as a private encryption key
	and encryption/digital signature algorithms.  Most SIMs also
	contain non-volatile storage for network and device
	management, contact lists, text messages sent and received,
	logos and in some cases even small Java programs.

	(2007-01-06)

subscribing

	{subscribe}

\subseteq

	Like a U on its right side with a line under it.  For sets x
	and y, x \subseteq y if all elements of x are also elements of
	y.

	(1995-02-03)

Subset-Equational Language

	(SEL) A {declarative} language for set processing by Bharat
	Jayaraman with subset and equational program clauses; {pattern
	matching} over sets (it supports efficient iteration over
	sets); annotations to say which functions distribute over
	union in which arguments (for point-wise/incremental
	computation over sets); defining {transitive closures} through
	circular constraints (implemented by mixed
	top-down/{memoisation} and bottom-up strategy);
	{meta-programming} and simple {higher-order} programming;
	modest user-interface including tracing.

	The SEL {compiler}, written in {Quintus Prolog}, generates
	{WAM}-like code, extended to deal with set-matching,
	{memoisation}, and the novel control structure of the
	language.  The {run-time system} is written in {C}.

	{(ftp://ftp.cs.buffalo.edu/users/bharat/SEL2)}.

	E-mail: Bharat Jayaraman <bharat@cs.buffalo.edu>.

	["Towards a Broader Basis for Logic Programming",
	B. Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

	["Set Abstraction in Functional and Logic Programming",
	F.S.K. Silbermann <fs@cs.tulane.edu> et al, ACM Proc 1989].

	(1994-12-15)

Substitute

	<character> (SUB) {ASCII} character 26.

	[Why?]

	(1996-06-28)

substrate

	<hardware> The body or base layer of an {integrated circuit},
	onto which other layers are deposited to form the circuit.
	The substrate is usually Silicon, though Sapphire is used for
	certain applications, particularly military, where radiation
	resistance is important.  The substrate is originally part of
	the {wafer} from which the {die} is cut.  It is used as the
	electrical {ground} for the circuit.

	(1996-04-07)

subtype

	<programming> If S is a subtype of T then an expression of
	{type} S may be used anywhere that one of type T can and an
	{implicit type conversion} will be applied to convert it to
	type T.

	In {object oriented programming}, this means that {objects} of
	type S must accept every {message} that one of type T would.

	(1997-07-28)

subtyping

	{subtype}

SuccessoR

	A language for {distributed computing} derived from {SR}.

	["SuccessoR: Refinements to SR", R.A. Olsson et al, TR 84-3, U
	Arizona 1984].

	(1994-12-15)

successor

	{daughter}

sucking mud

	(Or "pumping mud") (Applied Data Research) Crashed or
	{wedged}.  Usually said of a machine that provides some
	service to a network, such as a {file server}.  This Dallas
	regionalism derives from the East Texas oilfield lament, "Shut
	'er down, Ma, she's a-suckin' mud".  Often used as a query.
	"We are going to reconfigure the network, are you ready to
	suck mud?"

	[{Jargon File}]

	(1994-12-15)

Sue

	The system language used to write an {operating system} for
	the {IBM 360}.  It is a cross between {Pascal} and {XPL}.  It
	allows type checked {separate compilation} of internal
	procedures using a program library.

	["The System Language for Project Sue", B.L. Clark e al,
	SIGPLAN Notices 6(9):79-88 (Oct 1971)].

	(1994-12-01)

sufficiently small

	{suitably small}

SUGAR

	A simple {lazy functional language} designed at {Westfield
	College}, University of London, UK and used in Principles of
	Functional Programming, Hugh Glaser et al, P-H 1984.

	(1994-12-01)

suicideware

	<jargon> A program which entirely stops functioning after a
	predefined date.  Used to ensure that {beta versions} don't
	remain in circulation indefinitely or in {demo versions} to
	ensure that they can only be used to try out the program.

	(1997-05-26)

SUIF

	Stanford University Intermediate Format.

	A register-oriented intermediate language.

	(1994-12-01)

suit

	1. Ugly and uncomfortable "business clothing" often worn by
	non-hackers.  Invariably worn with a "tie", a strangulation
	device that partially cuts off the blood supply to the brain.
	It is thought that this explains much about the behaviour of
	suit-wearers.

	2. A person who habitually wears suits, as distinct from a
	techie or hacker.

	See {loser}, {burble}, {management}, {Stupids}, {SNAFU
	principle}, and {brain-damaged}.

	[{Jargon File}]

	(1998-07-01)

suitably small

	<jargon, mathematics> (From mathematical jargon) An expression
	used ironically to characterise unquantifiable behaviour that
	differs from expected or required behaviour.  For example,
	suppose a newly created program came up with a correct
	full-screen display, and one publicly exclaimed: "It works!"
	Then, if the program dumped {core} on the first mouse click,
	one might add: "Well, for suitably small values of `works'."

	Compare the characterisation of pi under {for values of}.

	[{Jargon File}]

	(1997-09-21)

Suite Synthetique des Benchmarks de l'AFUU

	<benchmark> (SSBA, AFUU Synthetic Benchmark Suite) A {public
	domain} {benchmark} suite produced by the {AFUU}.

	Version: 2.3 (1995-07-14).

	(1996-06-11)

sum

	1. <theory> In {domain theory}, the sum A + B of two {domains}
	contains all elements of both domains, modified to indicate
	which part of the union they come from, plus a new {bottom}
	element.  There are two constructor functions associated with
	the sum:

		inA : A -> A+B       inB : B -> A+B
		inA(a) = (0,a)	     inB(b) = (1,b)

	and a disassembly operation:

		case d of {isA(x) -> E1; isB(x) -> E2}

	This can be generalised to arbitrary numbers of domains.

	See also {smash sum}, {disjoint union}.

	2. <tool> A {Unix} utility to calculate a 16-bit {checksum} of
	the data in a file.  It also displays the size of the file,
	either in {kilobytes} or in 512-byte blocks.  The checksum may
	differ on machines with 16-bit and 32-bit ints.

	{Unix manual page}: sum(1).

	(1995-03-16)

Summary Object Interchange Format

	<World-Wide Web, protocol> (SOIF) The attribute-value pair
	record format which {Harvest Brokers} use to exchange
	{Harvest} content summaries.

	SOIF provides a means of bracketing collections of summary
	objects, allowing {Harvest Brokers} to retrieve SOIF content
	summaries for many objects in a single, efficient compressed
	stream.  Harvest Brokers provide support for querying SOIF
	data using structured attribute-value queries and many other
	types of queries.

	{(http://ust.hk/Harvest/brokers/soifhelp.html)}.

	(1996-09-16)

SUMMER

	String manipulation and pattern matching language by Klint &
	Sint at {CWI} in the late 1970s.  It was recently used as the
	input and implementation language for the {Dataflow Compiler
	Project} at {CWI}.

	["An Overview of the SUMMER Programming Language", Paul Klint,
	7th POPL, ACM 1980, pp. 47-55].

SUMMER SESSION

	An early system on {MIT}'s {Whirlwind}.

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

	(1995-01-19)

sum of products

	1. <mathematics, logic> Any mathematical {expression} in which
	an addition operator is applied to two or more subexpressions
	each of which is an application of a multiplication operator.
	The most common case would be scalar addition and
	multiplication, e.g.

		ab + cd

	but the term is used for other kinds of operators with similar
	properties, such as AND and OR in {Boolean algebra}, e.g.

		(a AND b) OR (c AND d)

	2. <types> {algebraic data type}.

	(2008-02-04)

sum of products type

	{algebraic data type}

Sun

	{Sun Microsystems}

Sun-2 Workstation

	<computer> A {Unix} {workstation} produced by {Sun
	Microsystems, Inc.}, based on the {Motorola 68000}.  Followed
	by the {Sun-3 Workstation}.

	[Details?  Dates?]

	(2001-03-11)

Sun-3 Workstation

	<computer> A {Unix} {workstation} produced by {Sun
	Microsystems, Inc.} in the 1980s, based on the {Motorola
	68020}.  Successor to the {Sun-2 Workstation}, followed by the
	{Sun-4 Workstation}.  The Sun-3 had a custom {MMU}.  A couple
	of mutant models used an entirely different architecture.

	[Details?  Dates?]

	(2001-03-11)

Sun-4 Workstation

	<computer> A {Unix} {workstation} produced by {Sun
	Microsystems, Inc.} in the late 1980s[?], based on {SPARC}
	processors.  The Sun-4 followed the {Sun-3 Workstation}.
	Later SPARC-based workstations were called "{SPARCstations}".

	[Details?  Dates?  Was "Sun-4" a SPARCstation?]

	(2001-03-11)

sun lounge

	<jargon> (Great Britain) The room where all the {Sun}
	{workstations} live.  The humour in this term comes from the
	fact that it's also in mainstream use to describe a solarium,
	and all those Sun workstations clustered together give off an
	amazing amount of heat.

	[{Jargon File}]

	(1995-01-19)

Sun Microsystems, Inc.

	<company> One of the first, and now biggest, US computer
	manufacturers.  They also manufacture in Europe.  The Sun-2
	and 3 series of {workstations} and {servers} were based on the
	{Motorola} {680x0} family of {microprocessors} and the Sun-4
	series on the {SPARC}.  Sun also produce their own version of
	{Unix}, originally called {SunOS} and now {Solaris}.  Their
	{Network File System} has become the {de facto standard} for
	sharing files between Unix systems.

	Sun own {MySQL AB}.  Sun was bought by {Oracle Corporation} on
	2009-04-20.

	Quarterly sales $1403M, profits $78M (Aug 1994).

	{(http://sun.com/)}.  {Sun World Online
	(http://sun.com/sunworldonline/)}.

	Address: 2550 Garcia Ave., Mt. View, CA 94043 -1100 USA.

	(1995-10-14)

SunOS

	<operating system> {Sun Microsystems}' version of {Unix} for
	Sun {workstations}.  SunOS is similar to {BSD Unix} with some
	{SVR4} features and {OpenWindows} 3.0.

	After version 4, SunOS was integrated into Sun's {Solaris}
	"operating environment".

	(1999-03-26)

sunspots

	1. Notional cause of an odd error.  "Why did the program
	suddenly turn the screen blue?"  "Sunspots, I guess."

	2. Also the cause of {bit rot} - from the myth that sunspots
	will increase {cosmic rays}, which can flip single bits in
	memory.  See also {phase of the moon}.

	[{Jargon File}]

sun-stools

	Unflattering hackerism for {SunTools}, a pre-{X} windowing
	environment notorious in its day for size, slowness, and
	misfeatures.  {X}, however, is larger and slower; see
	{second-system effect}.

SunView

	A windowing system from {Sun Microsystems}, superseded by
	{NeWS}.

SUNY

	{State University of New York}

SUPER

	The successor to {LOGLISP}, based on {LNF}.

	["New Generation Knowledge Processing: Final Report on the
	SUPER System", J Alan Robinson et al, CASE Center TR 8707,
	Syracuse U, 1987].

	(1994-11-24)

Super 7

	<hardware, standard> An upgrade to {Socket 7} to support {AGP}
	and a 100 MHz {system bus},, supported by non-{Intel}
	{processor} and {motherboard} manufacturers such as {AMD} and
	{Cyrix}.

	Due to faster access to {L2 cache} and memory, Super 7 gives a
	10% performance boost over Socket 7 motherboards for the same
	processor.  Super 7 motherboards should support all Socket 7
	processors.

	(1999-08-04)

Superbrain

	<computer> A {personal computer} released in 1980 by {Intertec}.
	The Superbrain had two {Z80A} {microprocessors} running at 4 MHz,
	one for the main processing and the other for peripheral
	activities.  It had an integrated {keyboard} and {display}.  It
	was sold with the {CP/M} {operating system}, {Microsoft Basic}, an
	{8080} {assembler} and {Microsoft Cobol 74}.

	The base model, the "Superbrain 10", had no drives, only a network
	connection.  Other models added one or two 5" {floppy disc} units.
	The "Jr" had 170K drives (single-sided), the "QD" had 340 KB
	drives (double-sided) and the "SD" had 780k.

	Intertec did not sell or support a hard drive or an {S-100} bus
	for these machines.

	The network version of the SuperBrain was called CompuStar.  The
	network was a large gray parallel cable.  CompuStar had three
	"file servers" that accepted up to 255 machines.  These were the
	"DSS-10" with a 10MB 8" Winchester drive; the "CDC" with 96MB
	consisting of 80MB fixed and a 16MB removable platter; and the
	"Priam" with a 144MB 14" platter winchester.  Intertec
	manufactured the controllers for the last two and an enclosure and
	power supply for the Priam.  CDC had to go on-site to install the
	96MB.

	The SuperBrain was succeeded in 1982 by the {SuperBrain II}.

	{(http://www.old-computers.com/museum/computer.asp?st=1&c=204)}.

	(2013-12-30)

SuperBrain II

	<computer> The 1982 successor to the {Superbrain} with a faster
	and enhanced {disk operating system} and improved {video} and
	{graphics}.

	{(http://www.old-computers.com/museum/computer.asp?st=1&c=204)}.

	(2013-12-30)

superclass

	{base class}

supercombinators

	{Combinators} with coarser granularity than those proposed by
	{David Turner}.  A {functional program} is translated to a set
	of functions without {free variables}.  The members of the set
	are selected to be optimal for that program.  Supercombinators
	were proposed by John Hughes at {University of Edinburgh}.

supercompilation

	A function program transformation technique invented by
	Turchin.  A program is evaluated symbolically in order to
	observe the possible history of computation states called
	configurations.  Based on this Turchin's REFAL compiler would
	try to construct a better program.

supercomputer

	<computer> A broad term for one of the fastest computers
	currently available.  Such computers are typically used for
	{number crunching} including scientific {simulations},
	(animated) {graphics}, analysis of geological data (e.g. in
	petrochemical prospecting), structural analysis, computational
	fluid dynamics, physics, chemistry, electronic design, nuclear
	energy research and meteorology.  Perhaps the best known
	supercomputer manufacturer is {Cray Research}.

	A less serious definition, reported from about 1990 at The
	{University Of New South Wales} states that a supercomputer is
	any computer that can outperform {IBM}'s current fastest, thus
	making it impossible for IBM to ever produce a supercomputer.

	(1996-12-13)

SuperDrive

	<storage> {Apple Computer, Inc.}'s name for a combined
	{DVD-ROM}, {DVD-RW}, {CD-RW} drive that appeared in the {iMac}
	in 2002.

	(2009-05-05)

superhighway

	{information superhighway}

SuperJanet

	An initiative started in 1989, under the Computer Board, with
	the aim of developing of a national {broadband} network to
	support UK higher education and research.  The preparatory
	work culminated in 1992 with the award of a contract worth 18M
	pounds to British Telecom to provide networking services over
	a four year period that extends to March 1997.

	The BT contract will provide a national network with two
	components: a high speed, configurable bandwidth network
	serving up to 16 sites, initially using {PDH} to be replaced
	with {SDH}, and a high speed switched data service ({SMDS})
	serving 50 or more sites.  The primary role of the PDH/SDH
	component will be to support the development and deployment of
	an {ATM} network.  These components will be complemented by
	several high performance {Metropolitan Area Networks} each
	serving several closely located sites.  The aim is to provide,
	within the first year of the project, a pervasive network
	capable of supporting a large and diverse user community.

	The network has two parts, an {IP} data network and an ATM
	network, both operating at 34Mbit/s.  Early in August 1993 the
	pilot IP network was transferred to full service and was
	configured to provide a trunk network for JIPS, the {JANET IP
	Service}.

	In November 1993 work was well advanced on the next phase
	which aims to extend SuperJANET to a large number of sites.
	The pilot four site ATM network will be extended to serve
	twelve sites and will expand the scope of the video network.
	The principal vehicle used for the expansion of the data
	network will be the {SMDS} service provided by {BT}.  Most of
	the work associated with the development of this phase is
	expected to be completed by the end of March 1994.

	[Joint Network Team, Network News 40, ISSN 0954 - 0636].

	{(ftp://osiris.jnt.ac.uk/pub/newsfiles/documents/netwnews/news40+/news40.para)}.

	[Current status?]

	(1994-12-15)

SUPERMAC

	A general-purpose {macro} language, embeddable in existing
	languages as a run-time library.

	["SUPERMAC - A Macro Facility That can be Added to Existing
	Compilers", P.J. Brown, Soft Prac & Exp 10(6):431-434].

	(1994-12-15)

super minicomputer

	<computer> Any {minicomputer} distinguished by having
	{intelligent peripherals} or multiple processors.  The {DEC
	PDP-8} was a minicomputer, the PDP-11 could be a minicomputer
	or a super minicomputer depending upon the sub-model.

	(2004-08-25)

SuperPaint

	<graphics> A pioneering {graphics} program and {framebuffer}
	computer system developed by {Richard Shoup} at {Xerox PARC}.
	Design started in 1972 and the system produced its first
	stable image in April 1973.  SuperPaint was one of the first
	computers used for creative work, video editing and animation,
	all which would become major sections within the entertainment
	industry and major components of industrial design.

	SuperPaint had a {graphical user interface} and could capture
	images from video input or combine them with digital data.
	SuperPaint was the first program with features such as
	changing {hue, saturation and value}, a {colour palette},
	custom {polygons} and lines, virtual paintbrushes and pencils,
	auto-filling of images and {anti-aliasing}.

	{Richard Shoup's web site
	(http://www.rgshoup.com/prof/SuperPaint/)}.

	(2008-11-27)

Super Pascal

	<language> A {Pascal} variant used in the reference below.
	Super Pascal adds
	non-numeric {labels}, a {return statement} and {expressions} as
	names of {types}.

	["Data Structures and Algorithms", A.  Aho, Hopcroft & Ullman,
	A-W 1983]

	(2004-08-25)

superpipelined

	1. Traditional {pipelined} architectures have a single
	pipeline stage for each of: instruction fetch, instruction
	decode, memory read, {ALU} operation and memory write.  A
	superpipelined {processor} has a {pipeline} where each of
	these logical steps may be subdivided into multiple {pipeline}
	stages.

	2. Marketese for {pipelined}.

superprogrammer

	A prolific programmer; one who can code exceedingly well and
	quickly.  Not all hackers are superprogrammers, but many are.
	Productivity can vary from one programmer to another by three
	orders of magnitude.  For example, one programmer might be
	able to write an average of three lines of working code in one
	day, while another, with the proper tools, might be able to
	write 3,000.  This range is astonishing; it is matched in very
	few other areas of human endeavour.

	The term "superprogrammer" is more commonly used within such
	places as IBM than in the hacker community.  It tends to
	stress naive measures of productivity and to underweight
	creativity, ingenuity, and getting the job *done* - and to
	sidestep the question of whether the 3,000 lines of code do
	more or less useful work than three lines that do the {Right
	Thing}.  Hackers tend to prefer the terms {hacker} and
	{wizard}.

	[{Jargon File}]

superscalar

	<architecture> A superscalar architecture is a {uniprocessor}
	that can execute two or more {scalar} operations in parallel.
	Some definitions include {superpipelined} and {VLIW}
	architectures; others do not.  Superscalar architectures
	(apart from superpipelined architectures) require multiple
	{functional units}, which may or may not be identical to each
	other.  In some superscalar processors the order of
	instruction execution is determined statically (purely at
	compile-time), in others it is determined dynamically (partly
	at run time).

super source quench

	A special packet designed to shut up an {Internet} host.  The
	{Internet Protocol} (IP) has a control message called Source
	Quench that asks a host to transmit more slowly on a
	particular connection to avoid congestion.  It also has a
	Redirect control message intended to instruct a host to send
	certain packets to a different local router.  A "super source
	quench" is actually a redirect control packet, forged to look
	like it came from a local router, that instructs a host to
	send all packets to its own local loopback address.  This will
	effectively tie many Internet hosts up in knots.  Compare
	{godzillagram}, {breath-of-life packet}.

	[{Jargon File}]

SuperTalk

	Silicon Beach Software.  A superset of HyperTalk used in
	SuperCard.

superuser

	[Unix] Synonym {root}, {avatar}.  This usage has spread to
	non-Unix environments; the superuser is any account with all
	{wheel} bits on.  A more specific term than {wheel}.

	[{Jargon File}]

Super VGA

	{Super Video Graphics Array}

Super Video Graphics Adapter

	{Super Video Graphics Array}

Super Video Graphics Adaptor

	{Super Video Graphics Array}

Super Video Graphics Array

	<hardware> (SVGA) A {video display} {standard} created by
	{VESA} for {IBM PC} compatible personal computers.  The
	resolution is 800 x 600 4-bit {pixels}.  Each pixel can
	therefore be one of 16 colours.

	See {Video Graphics Array}.

	[Is there a palette?  Standard document?  Adapter, Adaptor, or
	Array?]

	(1995-01-12)

supervisor mode

	(Or "{supervisor state}") An execution mode on some processors
	which enables execution of all instructions, including
	{privileged instructions}.  It may also give access to
	different a {address space}, to {memory management} hardware
	and to other peripherals.  This is the mode in which the
	{operating system} usually runs.

	Opposite: {user mode}.

	(1995-02-15)

Supervisory Control and Data Acquisition

	<application> (SCADA) Systems are used in industry to monitor
	and control plant status and provide logging facilities.
	SCADA systems are highly configurable, and usually interface
	to the plant via {PLCs}.

	(1997-02-11)

SuperZap

	<tool, IBM> An {IBM} {utility program} used to quickly {patch}
	{operating system} or {application program} executable {code}
	in preference to editing the {source code} and recompiling.

	The SuperZAP program was a quick hack written by one IBM
	Engineer, possibly from IBM UK, in the late 1960s to directly
	fix executable files.  He needed to fix a bug but it would
	have taken hours to rebuild the vast {OS/360} executables.

	The {S/360} architecture has an instruction ZAP (Zero and Add
	Packed) for {packed decmial} arithmetic, that sets the byte at
	a given address to a given value.  Superzap used this to write
	data given as a string of hex digits to a given location in an
	executable file in a matter of seconds.

	Soon the IBM development labs were releasing all Programming
	Temporary Fixes (PTFs) to OS/360 in this form.  OS/360
	included a version called IMASPZAP or AMASPZAP which persisted
	through {MVS}, {MVS/SP}, {MVS/XA}, {OS/390} and probably still
	remains in {z/OS}, the distant descendent of OS/360.

	[Private 2004-02-05 e-mail from Chris Gage, IBM employee and
	SuperZap user, 1970-].

	(2007-03-15)

Supplementary Ideographic Plane

	<text, standard> (SIP) The third plane (plane 2) defined in
	{Unicode}/{ISO 10646}, designed to hold all the {ideographs}
	descended from Chinese writing (mainly found in Vietnamese,
	Korean, Japanese and Chinese) that aren't found in the {Basic
	Multilingual Plane}.  The BMP was supposed to hold all
	ideographs in modern use; unfortunately, many Chinese dialects
	(like Cantonese and Hong Kong Chinese) were overlooked; to
	write these, characters from the SIP are necessary.  This is
	one reason even non-academic software must support characters
	outside the BMP.

	{Unicode home (http://unicode.org)}.

	(2002-06-19)

support

	<job> After-sale handholding; something many software vendors
	promise but few deliver.  To hackers, most support people are
	useless - because by the time a hacker calls support he or she
	will usually know the software and the relevant manuals better
	than the support people.  A hacker's idea of support is an
	electronic exchange with the software's designer.

	[{Jargon File}]

	(1995-02-15)

supremum

	{least upper bound}

Sure

	["Towards a Broader Basis for Logic Programming", Bharat
	Jayaraman, TR CS Dept, SUNY Buffalo, 1990].

	(1995-01-05)

surfing

	("Internet surfing") Used by analogy to describe the ease with
	which an expert user can use the waves of information flowing
	around the {Internet} to get where he wants.  The term became
	popular in the early 1990s as access to the {Internet} became
	more widespread and tools such as {World-Wide Web} {browsers}
	made its use simpler and more pleasant.

	(1995-01-05)

SURGE

	Sorter, Updater, Report Generator, Etc.  IBM 704, 1959.
	Sammet 1969, p.8.

surjection

	<mathematics> A function f : A -> B is surjective or onto or a
	surjection if f A = B.  I.e. f can return any value in B.
	This means that its {image} is its {codomain}.

	Only surjections have {right inverses}, f' : B -> A where
	f (f' x) = x since if f were not a surjection there would be
	elements of B for which f' was not defined.

	See also {bijection}, {injection}.

	(1995-05-27)

surjective

	{surjection}

surrogate key

	<database> A unique {primary key} generated by the {RDBMS}
	that is not derived from any data in the database and whose
	only significance is to act as the primary key.

	A surrogate key is frequently a sequential number (e.g. a
	{Sybase} "{identity column}") but doesn't have to be.  Having
	the key independent of all other columns insulates the
	database relationships from changes in data values or database
	design and guarantees uniqueness.

	Some database designers use surrogate keys religiously
	regardless of the suitability of other {candidate keys}.
	However, if a good key already exists, the addition of a
	surrogate key will merely slow down access, particularly if it
	is indexed.

	Compare: {intelligent key}.

	(1999-12-07)

suspension

	In {lazy evaluation}, a suspension (or in Henderson's
	terminology, a "recipe") is a {closure} with a flag indicating
	whether the expression has been evaluated or not.  When the
	expression is evaluated the first time, this flag is set.
	Subsequent requests for the value of the expression will not
	attempt to re-evaluate it.

	(1995-02-06)

Suzie COBOL

	/soo'zee koh'bol/ 1. ({IBM}, probably from Frank Zappa's "Suzy
	Creamcheese") A coder straight out of training school who
	knows everything except the value of {comments} in plain
	English.  Also (fashionable among personkind wishing to avoid
	accusations of sexism) "Sammy Cobol" or (in some non-IBM
	circles) "Cobol Charlie".

	2. (proposed) Meta-name for any {code grinder}, analogous to
	{J. Random Hacker}.

	[{Jargon File}]

	(1995-02-06)

sv

	<networking> The {country code} for El Salvador.

	(1999-01-27)

SVC

	1. <operating system> {Supervisor Call}.

	2. <networking> {switched virtual connection}.

	(2001-10-25)

SVG

	{Scalable Vector Graphics}

SVGA

	<hardware> {Super Video Graphics Array} (not
	"Adapter").

	(1995-11-16)

SVGA monitor

	<hardware, graphics> A {monitor} capable of displaying the
	output of an {SVGA} card.

	(1997-02-25)

SVID

	{System V Interface Definition}

S-Video

	<multimedia> A {video} format offering a higher quality signal
	than {composite video}, but a lower quality than {component
	video}.  This mid-level format divides the signal into two
	channels - {luminance} and {chrominance}.

	[Used where and for what?]

	(1998-06-25)

SVR4

	{AT&T}/{USL} {Unix} {System V} Release 4.

	(1995-03-28)

SVRC

	<body> {Software Verification Research Centre}.

	(1995-11-14)

SVS

	{OS/VS2}

swab

	/swob/ The {PDP-11} swap byte instruction mnemonic, as
	immortalised in the {dd} option "conv=swab".

	1. To solve the {NUXI problem} by swapping bytes in a file.

	2.  The program in V7 Unix used to perform this action, or
	anything functionally equivalent to it.

	See also {big-endian}, {little-endian}, {middle-endian},
	{bytesexual}.

	[{Jargon File}]

SWAG

	<jargon> Scientific (or Silly) Wild Ass Guess.  A term used by
	technical teams when establishing high level sizings for large
	projects.

	(2000-08-09)

swap

	<operating system> To move a program from fast-access memory
	to a slow-access memory ("swap out"), or vice versa ("swap
	in").  The term often refers specifically to the use of a
	{hard disk} (or a {swap file}) as {virtual memory} or "swap
	space".

	When a program is to be executed, possibly as determined by a
	{scheduler}, it is swapped into {core} for processing; when it
	can no longer continue executing for some reason, or the
	scheduler decides its {time slice} has expired, it is swapped
	out again.

	This contrasts with "paging" systems in which only parts of a
	program's memory is transfered.

	[{Jargon File}]

	(1996-11-22)

swap file

	<operating system> A file used by a {program} or, more often,
	an {operating system} as {swap space}.  A swap file is usually
	allocated as a long contiguous section of a {hard disk} to
	reduce access time.  The disk space used for a swap file can
	not be used for other things.  Under {Microsoft Windows}, swap
	files are recommended not to exceed three times the available
	{RAM} and are usually 150 percent of the RAM size.

	(1996-11-15)

swapped in

	{swap}

swapped out

	{swap}

swapping

	{swap}

swap space

	<operating system> An area of disk (e.g. a {swap file}) used
	to store the state of a process that has been {swap}ped out.
	Under a {virtual memory} system, it is the amount of swap
	space rather than the amount of {physical memory} which
	determines the maximum size of a single process and the
	maximum total size of all active processes.

	[{Jargon File}]

	(1994-11-03)

Sweden

	<networking> {Country code}: se.

SweetLambda

	Sugared {lambda-calculus}(?).

swf

	<filename extension> /S W F/ The {filename extension} for
	{Adobe} {Shockwave} {Flash} animated {vector graphics} files,
	common on the {World-Wide Web}.

	A rarely used alternative expansion is "Small Web Format".

	(2007-09-07)

Swing

	<programming> {Java}'s {graphical user interface} (GUI)
	package that provides a large collection of {widgets}
	(buttons, labels, lists etc.) that behave similarly on
	different {platforms}.  Swing features "pluggable look &
	feel", allowing the program to look like a {Windows}, {Motif}
	or {Macintosh) application.  It is implemented using the
	{Model View Controller} (MVC) architecture and makes extensive
	use of nested "containers" to control the handling of {events}
	such as keystrokes.

	{(http://java.sun.com/j2se/1.3/docs/api/javax/swing/package-summary.html)}.

	(2007-05-30)

SWI-Prolog

	<programming> A {Prolog} by Jan Wielemaker
	<jan@swi.psy.uva.nl> like a superset of {Edinburgh Prolog}.
	Version 1.7.2.  Docking Station is distributed under {General
	Public License}.  It runs on {Sun-4}, {Sun-3}, {Linux}, {DEC}
	{MIPS} (incomplete), {RS/6000}, {PS2}/{AIX}, {Atari ST},
	{Gould PN}, {NeXT}, {VAX}, {HP-UX} (problems), {MS-DOS}, and
	{OS/2}.

	{(ftp://swi.psy.uva.nl/pub/SWI-Prolog)}.

	{OS/2 (ftp://mpii02999.ag2.mpi-sb.mpg.de/pub/toolw/SWI/)}.

	Mailing list: prolog-request@swi.psy.uva.nl.

	(2000-03-23)

Swiss Army Code

	<programming, humour> {Code} for an {application} that is
	suffering from {feature creep}.  Swiss Army Code does many
	things, but does none of them well.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2014-06-06)

switch

	1. <programming> {switch statement}.

	2. <software> {command line option}.

	3. <networking> {packet switch}, {circuit switch}.

	(1999-01-14)

Switched Multimegabit Data Service

	<networking> (SMDS) An emerging high-speed {datagram}-based
	public data {network} service developed by {Bellcore} and
	expected to be widely used by telephone companies as the basis
	for their data networks.

	See also {Metropolitan Area Network}.

	(1997-01-31)

switched virtual circuit

	{virtual circuit}

switched virtual connection

	<networking> (SVC) A {virtual connection} in an {ATM} network
	set up on demand by the {signalling control point}.

	Contrast with {permanent virtual connection}.

	(2001-06-29)

switching

	<networking> Establishing the correct path through a network
	for a single packet of data ({packet switching}) or a
	persistent end-to-end connection ({circuit switching}).

	(2007-08-16)

switching hub

	<networking> A {circuit switching} {hub}.

	(1999-01-01)

switch statement

	<programming> (Or case statement, multi-way branch) A
	construct found in most {high-level languages} for selecting
	one of several possible blocks of code or branch destinations
	depending on the value of an expression.  An example in {C} is

		switch (foo(x, y))
		{
		case 1:  printf("Hello\n");	/* fall through */
		case 2:  printf("Goodbye\n"); break;
		case 3:  printf("Fish\n"); break;
		default: fprintf(stderr, "Odd foo value\n"); exit(1);
		}

	The break statements cause execution to continue after the
	whole switch statemetnt.  The lack of a break statement after
	the first case means that execution will {fall through} into
	the second case.  Since this is a common programming error you
	should add a comment if it is intentional.

	If none of the explicit cases matches the expression value
	then the (optional) default case is taken.

	A similar construct in some {functional languages} returns the
	value of one of several expressions selected according to the
	value of the first expression.  A distant relation to the
	modern switch statement is {Fortran}'s {computed goto}.

	(1997-01-30)

swizzle

	To convert external names, array indices, or references within
	a data structure into address pointers when the data structure
	is brought into main memory from external storage (also called
	"pointer swizzling"); this may be done for speed in chasing
	references or to simplify code (e.g. by turning lots of name
	lookups into pointer dereferences).  The converse operation is
	sometimes termed "unswizzling".

	See also {snap}.

	[{Jargon File}]

SWL

	{Software Writer's Language}

SWT

	{Standard Widget Toolkit}

swung dash

	<character> A {character} similar to {tilde} but appearing
	in the same vertical position as a {dash}, i.e. half way up
	rather than at the top like tilde.  {ASCII} does not include a
	swung dash so tilde is used instead.

	It is commonly used for "approximates" or "is approximately
	equal to".

	(1997-06-28)

sy

	<networking> The {country code} for Syria.

	(1999-01-27)

Sybase, Inc.

	<company> A software vendor focused on {database} management
	software.

	Yearly sales: $903.9 million (1997).

	Address: 6475 Christie Ave., Emeryville, California, USA.

	{(http://sybase.com)}.

	(1998-05-18)

Sybase SQL Server

	{Adaptive Server Enterprise}

SYDEL

	A system language, fully typed, with inline {assembly code},
	by Jan Garwick, ca 1974.

SYGMA

	A symbolic generator and macro assembler by A.P. Ershov et al
	of Novosibirsk.  For the {BESM-6}, {M-220} and {Minsk-22}.

	["SYGMA, A Symbolic Generator and Macroassembler", A.P. Ershov
	et al, in Symbol Manipulation Languages and Techniques,
	D.G. Bobrow ed, N-H 1968, pp.226- 246].

SYLK

	{Symbolic Link}

syllogism

	/sil'oh-jiz`*m/ <logic> Deductive reasoning in which a
	conclusion is derived from two premises.  The conclusion
	necessarily follows from the premises so that, if these are
	true, the conclusion must be true, and the syllogism amounts
	to demonstration.  To put it another way, the premises {imply}
	the conclusion.

	For example, every virtue is laudable; kindness is a virtue;
	therefore kindness is laudable.

	Strangely, a syllogism can still be true if the premises are
	false.

	Compare {inference rule}.

	[Relationship between premises?]

	(2009-10-28)

Sylvan

	[Distributed language?]

Symantec

	<company> Software manufacturer of utility and development
	applications for {Windows} and {Macintosh} platforms.
	Products include ACT!, Norton Utilities, Norton AntiVirus,
	Symantec AntiVirus for Macintosh, Symantec Cafe.

	{(http://symantec.com/)}.

	(1997-03-10)

SYMBAL

	SYMbolic ALgebra.  A {symbolic mathematics} language with
	{ALGOL}-like syntax by Max Engeli, late 60's.  Implemented for
	{CDC 6600}.

	["User's Manual for the Formula Manipulation Language SYMBAL",
	M. Engeli, TRM-8.00, Comp Ctr UT Austin, June 1968].

SymbMath

	<mathematics, tool> A small {symbolic mathematics} package for
	{MS-DOS} which can learn new facts.

	Latest version: 2.1.1.

	{(Home (http://symbmath.com/)}.

	(2001-03-26)

SYMBOLANG

	Lapidus & Goldstein, 1965.  Symbol manipulating Fortran
	subroutine package for IBM 7094, later CDC 6600.

	["Some Experiments in Algebraic Manipulation", CACM 8:501-508
	1965].

	(1995-03-16)

Symbolic Assembler Program

	<language> (SAP) The {assembly language} for the {IBM 704},
	defined in the late 1950s.

	(1994-12-12)

SYMBOLIC ASSEMBLY

	<language> An early system on the {IBM 705}.

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

	(1996-01-15)

Symbolic Automatic INTegrator

	<mathematics, tool> (SAINT) A {symbolic mathematics} program
	written in {Lisp} by J. Slagle at {MIT} in 1961.

	[Sammet 1969, p. 410].

	(1994-12-08)

symbolic inference

	The derivation of new facts from known facts and {inference
	rules}.  This is one of the fundamental operations of
	{artificial intelligence} and {logic programming} languages
	like {Prolog}.

	Inference is a basic part of human reasoning.  For example
	given that all men are mortal and that Socrates is a man, it
	is a trivial step to infer that Socrates is mortal.  We might
	express these symbolically:

		man(X) => mortal(X).
		man(socrates).

	("if X is a man then X is mortal" and "Socrates is a man").
	Here, "man", "mortal" and "socrates" are just arbitrary
	symbols which the computer manipulates without reference to or
	knowledge of their external meaning.  A {forward chaining}
	system (a {production system}) could use these to infer the
	new fact

		mortal(socrates).

	simply by matching the left-hand-side of the implication
	against the fact and substituting socrates for the variable X.

	(1994-10-28)

Symbolic Link

	<file format> (SYLK) A {Microsoft} file format for
	{spreadsheets}, (not to be confused with {symbolic link}).

	SYLK format existed in one form or another in as early as
	1987, and was part of {Excel} v1.0.  It is is an outgrowth of
	{VisiCalc} {DIF} file format.

	SYLK format is ascii text and represents information about
	both formula, value, and some formatting information, which
	makes it something like an {RTF} for spreadsheets.  It is used
	as a general tabular data exchange format.

	{(http://netghost.narod.ru/gff/graphics/summary/micsylk.htm)}.

	[Reference?]

	(2004-04-08)

symbolic link

	<file system> (Or "symlink", "soft link" (by contrast with
	"{hard link}"), "{shortcut}", "{alias}") A special type of
	{Unix} file which refers to another file by its {pathname}.  A
	symbolic link is created with the "ln" (link) command:

		ln -s OLDNAME NEWNAME

	Where OLDNAME is the target of the link (usually a pathname)
	and NEWNAME is the pathname of the link itself.

	Most operations ({open}, {read}, {write}) on the symbolic link
	automatically {dereference} it and operate on its target
	(OLDNAME).  Some operations (e.g. removing) work on the link
	itself (NEWNAME).

	In contrast with {hard links}, there are no restrictions on
	where a symbolic link can point, it can refer to a file on
	another file system, to itself or to a file which does not
	even exist (e.g. when the target of the symlink is removed).
	Such problems will only be detected when the link is accessed.

	(1997-10-22)

symbolic logic

	<logic> The discipline that treats formal {logic} by means of
	a formalised artificial language or symbolic calculus, whose
	purpose is to avoid the ambiguities and logical inadequacies
	of {natural language}.

	(1995-12-24)

Symbolic Mathematical Laboratory

	<tool, mathematics> An on-line system under {CTSS} for
	{symbolic mathematics}.  It used a {display screen} and a
	{light pen}.

	[Sammet 1969, p.514].

	(1995-04-16)

symbolic mathematics

	<mathematics, application> (Or "symbolic math") The use of
	computers to manipulate mathematical equations and expressions
	in symbolic form, as opposed to manipulating the numerical
	quantities represented by those symbols.  Such a system might
	be used for symbolic integration or differentiation,
	substitution of one expression into another, simplification of
	an expression, change of subject etc.

	One of the best known symbolic mathematics software packages
	is {Mathematica}.  Others include {ALAM}, {ALGY}, {AMP},
	{Ashmedai}, {AXIOM*}, {CAMAL}, {CAYLEY}, {CCalc}, {CLAM},
	{CoCoA}(?), {ESP}, {FLAP}, {FORM}, {FORMAL}, {Formula ALGOL},
	{GAP}, {JACAL}, {LiE}, {Macaulay}, {MACSYMA}, {Magic Paper},
	{MAO}, {Maple}, {Mathcad}, {MATHLAB}, {MuMath}, {Nother},
	{ORTHOCARTAN}, {Pari}, {REDUCE}, {SAC-1}, {SAC2}, {SAINT},
	{Schoonschip}, {Scratchpad I}, {SHEEP}, {STENSOR}, {SYMBAL},
	{SymbMath}, {Symbolic Mathematical Laboratory}, {TRIGMAN},
	{UBASIC}.

	{Usenet} newsgropup: {news:sci.math.symbolic}.

	(1995-04-12)

Symbolic Optimal Assembly Program

	<language> (SOAP) The {IBM 650}'s {assembly language}.
	"Optimal" refers to rearranging instructions on slowly
	rotating {drum memory}.

	Versions: SOAP I, SOAP II, CASE SOAP III.

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

	(1994-11-04)

Symbolic Optimum DEUCE Assembly Program

	<language> (SODA) The symbolic {assembler} for a {one-level
	storage} {virtual machine} for the {English ELectric} {DEUCE}.

	["SODA Manual of Operation", R. C. Brigham and C. G. Bell,
	School of Elec Eng, U New S Wales, Sydney, NSW, 1958].

	(1994-11-04)

Symbolics, Inc.

	<company> The company which produced the {Lisp Machine}.

	{The Symbolics Museum (http://SMBX.org/)}.

	[Summary?]

	(2003-11-24)

Symbol Manipulation Program

	(SMP) {Steven Wolfram}'s earlier symbol manipulation program,
	before he turned to {Mathematica}.

	["SMP Handbook", C. Cole, S. Wolfram et al, Caltech 1981].

	(1995-01-29)

symlink

	{symbolic link}

symmetric

	<mathematics> 1. A {relation} R is symmetric if, for all x and
	y,

		x R y  =>  y R x

	If it is also {antisymmetric} (x R y & y R x => x == y) then
	x R y => x == y, i.e. no two different elements are related.

	2. In {linear algebra}, a member of the {tensor product} of a
	{vector space} with itself one or more times, is symmetric if
	it is a {fixed point} of all of the {linear isomorphisms} of
	the tensor product generated by {permutations} of the ordering
	of the copies of the vector space as factors.  It is said to
	be antisymmetric precisely if the action of any of these
	linear maps, on the given tensor, is equivalent to
	multiplication by the sign of the permutation in question.

	(1996-09-22)

symmetric key cryptography

	<cryptography> A {cryptography} system in which both parties
	have the same encryption {key}, as in {secret key
	cryptography}.

	Opposite: {public-key cryptography}.

	(1998-06-09)

Symmetric LISP

	A parallel {Lisp} in which environments are {first-class}
	objects.  It is implemented in {Common LISP}.

	["Parallelism, Persistence and Meta-Cleanliness in the
	Symmetric Lisp Processor", D. Gelernter et al, SIGPLAN Notices
	22(7):274-282 (July 1987)].

	["A Programming Language Supporting First-Class Parallel
	Environments", S. Jagannathan, MIT-LCS/TR 434, 1989].

	E-mail: Suresh Jagannathan <suresh@research.nj.nec.com>.

	(1995-03-16)

symmetric multiprocessing

	<parallel> (SMP) Two or more similar {processors} connected
	via a high-{bandwidth} link and managed by one {operating
	system}, where each processor has equal access to I/O devices.
	This is in contrast to the "{compute server}" kind of
	{parallel processor} where a {front-end processor} handles all
	I/O to disks, terminals and {local area network} etc.

	The processors are treated more or less equally, with
	{application programs} able to run on any or perhaps all
	processors in the system, interchangeably, at the operating
	system's discretion.  Simple MP usually involves assigning
	each processor to a fixed task (such as managing the file
	system), reserving the single main CPU for general tasks.

	{OS/2} currently supports so-called HMP (Hybrid
	Multiprocessing), which provides some elements of symmetric
	multiprocessing, using add-on IBM software called MP/2.  OS/2
	SMP was planned for release in late 1993.

	(1995-03-19)

symmetric multiprocessor

	{symmetric multiprocessing}

Symphony

	<tool, product> {Lotus Development}'s successor to their
	{Lotus 1-2-3} spreadsheet.  Unlike 1-2-3, Symphony allowed a
	limited form of {multitasking}.  The user could switch
	manually between it and {MS-DOS} and separate graph and
	spreadsheet windows could be opened simultaneously and would
	be updated automatically when cells were changed.  In
	addition, a small word processor could be opened in a third
	window.  These all could be printed out on the same report.
	Symphony could read and write Lotus 1-2-3 files and had
	interactive graphical output and a word processor, thus making
	it effectively a report generator.  Unlike 1-2-3, Symphony was
	not a great commercial success.

	(1995-03-28)

SYMPL

	<language> SYsteMs Programming Language.

	{CDC}'s derivative of {Jovial}.  SYMPL is a non-{re-entrant}
	{block structured} language with extensive {bit manipulation}
	facilities, which is linkable with {Fortran}.  Major parts of
	CDC systems during the 1970s were written in SYMPL.

	(1995-02-14)

SYN

	1. <character> {Synchronous idle}.

	2. <language> A syntactic specification language for {COPS}.

	["Metalanguages of the Compiler Production System COPS",
	J. Borowiec, in GI Fachgesprach "Compiler-Compiler", ed
	W. Henhapl, Tech Hochs Darmstadt 1978, pp. 122-159].

	3. [TCP/IP SYN request?]

	(1996-04-17)

sync

	/sink/ (Or "synch") 1. To synchronise, to bring into
	synchronisation.

	2. <file system> To force ("{flush}") all pending buffered
	disk writes to the disk.

	3. More generally, to force a number of competing processes or
	agents to a state that would be "safe" if the system were to
	crash, i.e. to {checkpoint} in the {database} sense.

	[{Jargon File}]

	(1994-11-11)

Synchronized Multimedia Integration Language

	<hypertext, language, multimedia, text, World-Wide Web> (SMIL)
	A language based on {Extensible Markup Language} (XML), that
	enables people without programming or scripting backgrounds to
	author multimedia presentations in a simple {text editor}.
	SMIL is suitable for use on the {World-Wide Web}.

	For example, a developer can write SMIL to display an {image}
	after an {audio} track ends.

	SMIL uses two main tags: parallel and sequential.  It refers
	to media objects by URLs, allowing them to be shared between
	presentations and stored on different servers for {load
	balancing}.  The language can also associate different media
	objects with different bandwidths.

	SMIL 1.0 became an official recommendation of the {World Wide
	Web Consortium} W3C in June 1998.

	{W3C (http://w3c.org/audiovideo/)}.

	(2000-04-21)

synchronous

	<operating system, communications> 1. Two or more processes
	that depend upon the occurrences of specific events such as
	common timing signals.

	2. Occurring at the same time or at the same rate or with a
	regular or predictable time relationship or sequence.

	Opposite: {asynchronous}.

	(1996-04-11)

Synchronous Data Link Control

	<communications> (SDLC) An {IBM} {protocol}.

	A discipline conforming to subsets of the {ADCCP} of {ANSI}
	and the {HDLC} of the {International Organization for
	Standardization}.  SDLC manages synchronous, code-transparent,
	bit-serial communication which can be {duplex} or
	{half-duplex}; switched or non-switched; {point-to-point},
	{multipoint}, or loop.

	Compare {Binary Synchronous Communication}.

	(1995-03-22)

Synchronous Digital Hierarchy

	<communications, standard> (SDH) An international digital
	telecommunications network hierarchy which standardises
	transmission around the bit rate of 51.84 megabits per second,
	which is also called STS-1.  Multiples of this bit rate
	comprise higher bit rate streams.  Thus STS-3 is 3 times
	STS-1, STS-12 is 12 times STS-1, and so on.  STS-3 is the
	lowest bit rate expected to carry {ATM} traffic, and is also
	referred to as STM-1 (Synchronous Transport Module-Level 1).

	The SDH specifies how payload data is framed and transported
	synchronously across {optical fibre} transmission links without
	requiring all the links and nodes to have the same
	synchronized clock for data transmission and recovery
	(i.e. both the clock frequency and phase are allowed to have
	variations, or be {plesiochronous}).

	SDH offers several advantages over the current {multiplexing}
	technology, which is known as {Plesiochronous Digital
	Hierarchy}.  Where PDH lacks built-in facilities for automatic
	management and routing, and locks users into proprietary
	methods, SDH can improve network reliability and performance,
	offers much greater flexibility and lower operating and
	maintenance costs, and provides for a faster provision of new
	services.

	Under SDH, incoming traffic is synchronized and enhanced with
	{network management} bits before being multiplexed into the
	STM-1 fixed rate {frame}.

	The fundamental clock frequency around which the SDH or
	{SONET} framing is done is 8 KHz or 125 microseconds.

	SONET ({Synchronous Optical Network}) is the American version
	of SDH.

	(1995-03-02)

Synchronous DRAM

	{Synchronous Dynamic Random Access Memory}

Synchronous Dynamic Random Access Memory

	<storage> (SDRAM, Synchronous DRAM) A form of {DRAM} which
	adds a separate {clock} signal to the control signals.  SDRAM
	chips can contain more complex {state machines}, allowing them
	to support "burst" access modes that clock out a series of
	successive {bits} (similar to the {nibble mode DRAM}).

	(2007-05-08)

Synchronous Graphics RAM

	{Synchronous Graphics Random Access Memory}

Synchronous Graphics Random Access Memory

	<storage> (SGRAM, Synchronous Graphics RAM) A type of
	{Synchronous DRAM} optimised for use in {graphics} hardware.
	Extra features can include {burst operation}, {block write}
	and {write per bit}.  SGRAMs are designed to provide the very
	high {throughput} needed for graphics-intensive operations
	such as 3d {rendering} and {full-motion video}.

	(1996-11-28)

Synchronous idle

	<character> (SYN) The {mnemonic} for {ASCII} character 22.

	[Why?]

	(1996-06-28)

synchronous key encryption

	<algorithm, cryptography> Data {encryption} using two
	interlocking keys where enything encoded using one key may be
	decoded using the other key.  This means if someone makes one
	of the two keys publicly available (as in {public-key
	encryption}) and keeps the other private, then anyone may send
	them a message or data that only they can decode, giving
	privacy, and furthermore, the sender may also encrypt that
	same message additionally with their own private key, making
	it impossible to read without decoding first with *their*
	__public__ key by the receiver, this gives authenticity.

	It is a very powerful system.  One cannot determine one key
	from the other, nor can they crack the encryption by computing
	all combinations, because, depending on the size of the keys
	(sometimes as large as 1024 bytes, though having grown from
	smaller versions in popular implementations of the software
	which does this), the amount of computing power required to
	crack the code is unavailable, even supercomputers would take
	more than a hundred years to crack it.

	{PGP} is a publicly availble software implementation written
	by Phil Zimmermann.

	(1994-10-10)

Synchronous Optical NETwork

	<networking> (SONET) A {broadband} networking {standard} based
	on point-to-point {optical fibre} networks.  SONET will
	provide a high-bandwidth "pipe" to support {ATM}-based
	services.

	The SONET standard will establish a digital {hierarchical
	network} with a consistent worldwide transport scheme.  SONET
	has been designed to take advantage of fibre, in contrast to
	the {plain old telephone system} which was designed for copper
	wires.

	SONET carries {circuit-switched} data in {frames} at speeds in
	multiples of 51.84 megabits per second (Mbps) up to 48 * 51.84
	Mbps = 2.488 {gigabits} per second.  Since SONET uses multiple
	channels to transmit data, each SONET {frame} can be
	considered to be a two-dimensional table of bytes that is 9
	rows high and 90 columns deep.  For every {OC-n} level, SONET
	can transmit n number of frames at a given time.  Groups of
	frames are called {superframes}.

	SONET is the American version of {SDH}.

	[Wulf Losee; Corporate Computing 8.92; STACKS; LAN Magazine
	10.93].

	(1994-11-30)

syncronous

	<spelling> It's spelled "{synchronous}".

	(1996-12-13)

synflood

	<networking> To {flood} another machine with bogus {TCP/IP}
	{SYN} requests.

	(1997-04-07)

synonym ring

	<information science> A list of words with related meanings
	used to broaden the scope of a word search.  As well as
	returning documents which contain a sought-for word a search
	using a synonym ring might also return documents which contain
	words in the same synonym ring as a sought-for word.  Synonym
	rings are produced manually and are usually specific to a
	certain field, e.g. legal knowhow.

	(1997-04-09)

syntactic salt

	The opposite of {syntactic sugar}, a feature designed to make
	it harder to write bad code.  Specifically, syntactic salt is
	a hoop the programmer must jump through just to prove that he
	knows what's going on, rather than to express a program
	action.  Some programmers consider required type declarations
	to be syntactic salt.  A requirement to write "end if", "end
	while", "end do", etc. to terminate the last block controlled
	by a control construct (as opposed to just "end") would
	definitely be syntactic salt.  Syntactic salt is like the real
	thing in that it tends to raise hackers' blood pressures in an
	unhealthy way.  Compare {candygrammar}.

	[{Jargon File}]

syntactic sugar

	Term coined by Peter Landin for additions to the syntax of a
	language which do not affect its expressiveness but make it
	"sweeter" for humans to use.  Syntactic sugar gives the
	programmer an alternative way of coding that is more succinct
	or more like some familiar notation.  It does not affect the
	expressiveness of the formalism (compare {chrome}).

	Syntactic sugar can be easily translated ("desugared") to
	produce a program in some simpler "core" syntax.  E.g. C's
	"a[i]" notation is syntactic sugar for "*(a + i)".  In a
	(curried) functional language, all operators are really
	functions and the use of {infix notation} "x+y" is syntactic
	sugar for function application "(+) x y".

	Alan Perlis once quipped, "Syntactic sugar causes cancer of
	the semicolon."

	The variants "syntactic saccharin" and "syntactic syrup" are
	also recorded.  These denote something even more gratuitous,
	in that they serve no purpose at all.  Compare {candygrammar},
	{syntactic salt}.

syntax

	<language> The structure of valid strings in a given language,
	as described by a {grammar}.  For example, the syntax of a
	binary number could be expressed as

		binary_number = bit [ binary_number ]

		bit = "0" | "1"

	meaning that a binary number is a bit optionally followed by a
	binary number and a bit is a literal zero or one digit.

	The meaning of the language is given by its {semantics}.

	See also {abstract syntax}, {concrete syntax}.

	(1994-10-31)

Syntax-Case

	<language> A {macro} system for {Scheme} by R. Kent Dybvig
	<dyb@cs.indiana.edu>.  It is superior to the low-level system
	described in the Revised^4 Report ({R4RS}).  Pattern variables
	are ordinary identifiers with essentially the same status as
	lexical variable names and {macro} {keywords}.  The {syntax}
	is modified to recognise and handle references to pattern
	variables.  Version 2.1 works with {Chez Scheme} and the
	{Macintosh} port runs under {MacGambit} 2.0

	{(ftp://iuvax.cs.indiana.edu/pub/scheme/syntax-case.tar.Z)}.
	{Macintosh (ftp://maya.dei.unipd.it/pub/mac/gambit/)}.

	["Syntactic Abstraction in Scheme",
	Robert Hieb, R. Kent Dybvig and Carl Bruggeman
	IUCS TR #355, 6/92 (revised 7/3/92)].

	["Writing Hygienic Macros in Scheme with Syntax-Case", R. Kent
	Dybvig, IUCS TR #356, 6/92 (revised 7/3/92)].

	(1992-07-06)

syntax directed translation

	A technique where the structure of a language processor (e.g. a
	compiler) is based on the structure of the language's
	{abstract syntax}.  There might be one procedure in the
	translator corresponding to each category in the abstract
	syntax.  That procedure is responsible for processing
	constructs of that category.  Each procedure would call others
	corresponding to the construct's subconstituents and then
	combine their results to give the overall result for that
	construct.

Syntax/Semantic Language

	<language> (S/SL) A high level {specification language} for
	{recursive descent parsers} developed by J.R. Cordy
	<cordy@cs.queensu.ca> and R.C. Holt <holt@uwaterloo.ca> at the
	University of Toronto in 1980.

	S/SL is a small language that supports cheap recursion and
	defines input, output, and error token names (& values),
	semantic mechanisms (class interfaces whose methods are really
	escapes to routines in a host programming language but allow
	good abstraction in the pseudo-code) and a pseudo-code program
	that defines the syntax of the input language by the token
	stream the program accepts.  Alternation, control flow and
	one-symbol look-ahead constructs are part of the language.

	The S/SL processor compiles this pseudo-code into a table
	(byte-codes) that is interpreted by the S/SL table-walker
	(interpreter).  The pseudo-code language processes the input
	language in recursive descent LL1 style but extensions allow
	it to process any LRk language relatively easily.  S/SL is
	designed to provide excellent syntax error recovery and
	repair.  It is more powerful and transparent than yacc but
	slower.

	S/SL has been used to implement production commercial
	compilers for languages such as {PL/I}, {Euclid}, {Turing},
	{Ada}, and {COBOL}, as well as {interpreters}, {command
	processors}, and domain specific languages of many kinds.

	{(ftp://ftp.cs.queensu.ca/pub/cordy/ssl)}.

	["Specification of S/SL: Syntax/Semantic Language", J.R. Cordy
	and R.C. Holt, Computer Systems Research Institute, University
	of Toronto, 1980].

	["An Introduction to S/SL: Syntax/Semantic Language",
	R.C. Holt, J.R.  Cordy, and D.B. Wortman; ACM Transactions on
	Programming Languages and Systems (TOPLAS), Vol 4, No.  2,
	April 1982, pp 149-178].

	["Hierarchic Syntax Error Repair", D.T. Barnard and R.C. Holt,
	International Journal of Computing and Information Sciences,
	Vol. 11, No. 4, August 1982, Pages 231-258.]

	(2003-10-30)

syntax tree

	<mathematics, theory, language> A {tree} representing the
	{abstract syntax} of some {tokens} in a {language}.

	(1998-11-12)

synthesis

	<programming, specification> The process of deriving
	(efficient) programs from (clear) specifications.

	See also {program transformation}.

	(1996-08-23)

Synthesizer Specification Language

	(SSL) A specification language based on {term algebra} and
	{attribute grammars}.  SSL is used by the {Synthesizer
	Generator}, a generator for {language-based editors} such as
	the {Cornell Program Synthesizer}.

	["Generating Language Based Environments", T. Reps, MIT Press
	1984].

	(1994-12-16)

sypware

	{spyware}

SyQuest Technology, Inc.

	<company, hardware> An early entrant into the removable {hard
	disk} market for {personal computers}.  For may years SyQuest
	held the market, particularly as a method of transferring
	large {desktop publisher} documents to printers.  SyQuest aim
	their products to give personal computer users "endless" hard
	drive space for data-intensive applications like {desktop
	publishing}, {Internet} information management, pre-press,
	{multimedia}, {audio}, {video}, {digital photography}, fast
	{backup}, data exchange, {archiving}, confidential data
	security and easy portability for the road.

	At the top of their current (Mar 1997) range are two drives,
	The {SyJet} 1.5 {GB} a 3.5 inch, double platter removable
	drive and the {EZFlyer} 230 {MB} also on 3.5 inch media.  A
	cartridge holding over 4.7GB is promised before the end of
	1997.

	In recent years they have not fared as well in the market,
	whilst {Iomega} has cornered the {Small Office/Home Office}
	(SOHO) market.  Over the period 1995 to 1997 sales declined
	resulting in a series of losses.  In the first quarter of 1997
	these losses had been reduced to $6.8 million with net
	revenues increasing to $48.3 million.  This compares to a net
	loss of $33.8 million, or $2.98 per share, on net revenues of
	$78.7 million for the same period the year before.  It would
	appear that substantial restructuring has occurred over the
	past few years.

	{(http://syquest.com/)}.

	(1997-03-27)

sysadmin

	{system administrator}

sysape

	/sys'ayp/ A rather derogatory term for a computer operator; a
	play on {sysop} common at sites that use the banana hierarchy
	of problem complexity (see {one-banana problem}).

	[{Jargon File}]

Sysdeco Mimer AB

	<company> Part of the international software group Sysdeco
	Group AS.  They developed the {MIMER} {RDBMS}.

	{(http://mimer.se/)}.

	Address: Uppsala, Sweden.

	(1995-11-11)

sys-frog

	/sis'frog/ (the {PLATO} system) A playful variant of
	"{sysprog}".

	[{Jargon File}]

	(1994-11-04)

SYSKEY

	<cryptography, operating system, security> A utility that
	{encrpyts} the {hashed} {password} information in a {SAM}
	database using a 128-bit {encryption key}.

	SYSKEY was an optional feature added in {Windows NT} 4.0 SP3.
	It was meant to protect against {offline} password {cracking}
	attacks so that the SAM database would still be secure even if
	someone had a copy of it.  However, in December 1999, a
	security team from {BindView (http://bindview.com/)} found
	a security hole in SYSKEY which indicates that a certain form
	of {cryptoanalytic} attack is possible offline.  A
	{brute-force attack} then appeared to be possible.

	Microsoft later collaborated with BindView to issue a fix
	(dubbed the 'Syskey Bug') which appears to have been settled
	and SYSKEY pronounced secure enough to resist brute-force
	attack.

	According to Todd Sabin of the BindView team RAZOR, the
	pre-RC3 versions of {Windows 2000} were also affected.

	{BindView Security Advisory
	(http://packetstorm.securify.com/9912-exploits/bindview.syskey.txt)}.

	{BindView press release
	(http://bindview.com/news/99/1222.html)}.

	{Microsoft bulletin
	(http://microsoft.com/Security/Bulletins/ms99-056.asp)}.

	(2000-07-16)

SYSLISP

	System language used in the implementation of Portable
	Standard Lisp.  Mentioned in "The Evolution of Lisp",
	G.L. Steele et al, SIGPLAN Notices 28(3):231-270 (Mar 1993).

sysop

	{system operator}

Sysplex

	<operating system> An {IBM} term for communicating {MVS}
	systems.  See also "{Parallel Sysplex}".

	(1996-11-23)

sysprog

	{Systems programmer}

system

	1. The {supervisor} program or {operating system} on a
	computer.

	2. The entire computer system, including input/output devices,
	the {supervisor} program or {operating system} and possibly
	other {software}.

	3. Any large program.

	4. Any method or {algorithm}.

	[{Jargon File}]

System/360

	<computer> The generic name for the {CPUs} and architecture
	released by {IBM} on 1964-04-07.  The 360 was marketed as a
	general purpose computer with 'all round' functionality -
	hence 360 (degrees).

	Models ranged from the 360/20 to the 360/65 and later the
	360/95, with typical memory configurations from 16K to 1024K.

	Elements of the architecture, such as the basic {instruction
	set} are still in use on IBM {mainframes} today.  Operating
	System/360 ({OS/360}) was developed for System/360.  Other
	associated {operating systems} included {DOS}, {OS/MFT} and
	{OS/MVT}.

	The 360 architecture was based on an 8-bit {byte}, 16 general
	purpose {registers}, 24-bit addressing, and a PSW (Program
	Status Word) including a location counter.

	{Gene Amdahl}, then an IBM employee, is generally acknowledged
	as the 360's chief architect.  He later went on to found
	{Amdahl Corporaton}, a manufacture of {PCM} {mainframe}
	equipment.

	The 360's predecessors were the smaller {IBM 1401} and the
	large {IBM 7090} series.  If was followed by the {IBM 370}.

	See also {ABEND}, {ALC}, {BAL}, {Big Red Switch}, {HCF}, {mode
	bit}, {PL360}, {PL/S}.

	(2004-06-06)

System/370

	<hardware, IBM> (S/370) An {IBM} {mainframe} {computer}
	introduced in 1970 as a successor to the {IBM 360}.
	Enhancements included the ability to support {virtual memory}
	and improved main storage.  Two models were available
	initially: 165 and 155, with {cycle times} of 80 and 115
	nanoseconds.

	{Press Release
	(http://www-1.ibm.com/ibm/history/exhibits/mainframe/mainframe_PR370.html)}.

	(2004-06-06)

System 5

	{System V}

System 7.5

	<operating system> A version of {Mac OS}, the latest release as
	of Oct 1996 was 7.5.5.  Superseded by Mac OS 7.6 around March
	1997.

	{Mac OS home (http://macos.apple.com/)}.

	[Dates?  Features?]

	(1997-03-23)

System Account Manager

	<cryptography, operating system, security> (SAM) A {password}
	{database} stored as a {registry file} in {Windows NT} and
	{Windows 2000}.

	The System Account Manager (SAM) database stores users'
	passwords in a {hashed} format.  Since a {hash function} is
	one-way, this provides some measure of security for the
	storage of the passwords.  In an attempt to enhance the
	security of the SAM database against {offline cracking},
	Microsoft introduced the {SYSKEY} utility in {Windows NT} 4.0.

	(2000-07-19)

system administration

	<job> Activities performed by a system administrator (or
	"admin", "sysadmin", "site admin") such as monitoring security
	configuration, managing allocation of {user names} and
	{passwords}, monitoring disk space and other resource use,
	performing {backups}, and setting up new hardware and
	software.

	system administrators often also help users, though in a large
	organisation this may be a separate job.

	Compare {postmaster}, {sysop}, {system management}, {systems
	programmer}.

	[Other tasks?]

	(1999-05-02)

system administrator

	{system administration}

system analysis

	{systems analysis}

system analyst

	{systems analysis}

system board

	{motherboard}

system call

	<operating system, programming> The mechanism used by an
	{application program} to request service from the {operating
	system}.  System calls often use a special {machine code}
	instruction which causes the processor to change mode (e.g. to
	"supervisor mode" or "{protected mode}").  This allows the OS
	to perform restricted actions such as accessing hardware
	devices or the {memory management unit}.

	(1995-03-01)

system catalog

	<database> The {data dictionary} of a {DBMS}.  The system
	catalogue stores {meta-data} including the {schemas} of the
	{databases}.  It is a mini-database, and is usually stored
	using the DBMS itself in special {tables} called {system
	tables}.  It maybe referred to as being "on line", as it is
	active, and can be queried by users like any other table.

	(1999-04-27)

System Control Language

	<language> (SCL) The {command language} for the {VME/B}
	{operating system} on the {ICL2900}.  SCL was {block
	structured} and supported strings, lists of strings
	("superstrings"), {integer}, {Boolean}, and {array} types.
	You could trigger a {block} whenever a condition on a variable
	value occured.  It supported {macros} and default arguments.
	Commands were treated like procedure calls.

	["VME/B SCL Syntax", Intl Computers Ltd. 1980].

	(2003-01-08)

Systeme International

	{Système International d'Unités}

System F

	{polymorphic lambda-calculus}

System International

	{Système International d'Unités}

system management

	<job> Activities performed by a system manager, aiming to
	minimise the use of excessive, redundant resources to address
	the overlapping requirements of performance balancing, network
	management, reducing outages, system maintenance costs,
	diagnosis and repair, and migration to new hardware and
	software system versions.

	Compare: {system administration}.

	(1995-11-10)

System Management Bus

	<hardware, protocol> (SMBus, SMB) A simple two-wire {bus} used
	for communication with low-bandwidth devices on a motherboard,
	especially power related chips such as a laptop's rechargeable
	battery subsystem (see {Smart Battery Data}).  Other devices
	might include temperature sensors and lid switches.

	A device can provide manufacturer information, indicate its
	model/part number, save its state for a {suspend} event,
	report different types of errors, accept control parameters,
	and return status.  The SMB is generally not user configurable
	or accessible.

	The bus carries clock, data, and instructions and is based on
	{Philip's} {I2C} serial bus protocol. Support for SMBus devices
	is provided on {Windows 2000}. {Windows 98} does not support
	such devices.

	The {PIIX4} {chipset} provides SMBus functionality. Vendors
	using SMBus would be required to pay royalties.

	{SMBus website
	(http://sbs-forum.org/smbus/)}.

	{Software to interrogate a SMB motherboard
	(http://online.de/home/podien/SMB.HTM)}.

	{SMB devices, Part 8 Kernel Mode Driver Design Guide, Win2000 DDK
	(http://microsoft.com/ddk/)}.

	(1999-08-08)

System Management Mode

	<hardware> (SMM) A reduced power consumption state provided by
	some {Intel} {microprocessors}.  When a {CPU} enters SMM it
	saves its current state in a special area of {static RAM}
	called SMRAM (System Management {RAM}) and then runs a
	program, also stored in SMRAM, the SMM handler.

	SMM is implemented in all {Intel} "SL" suffixed CPUs.  In June
	1993, Intel announced it was discontinuing its SL range and
	instead making all its current processors SL enhanced.

	See also {Auto Idle}.

	(1994-11-09)

System Management Server

	<operating system> (SMS) Software used by {Microsoft} {Windows
	NT system administrators} to manage {personal computers} on
	any size network.  SMS can distribute software to desktops
	from one central location, detect every machine on the
	network, track software and hardware configurations, send key
	information back to a central database, and perform other
	tasks.

	{Home
	(http://microsoft.com/ntserver/management/exec/overview/sms.asp)}.

	(1999-03-24)

system manager

	{system management}

system mangler

	<humour> A humorous synonym for "{system manager}", possibly
	from the fact that one major {IBM} {operating system} had a
	{root} account called SYSMANGR.  The term refers specifically
	to a systems programmer in charge of administration, software
	maintenance, and updates at some site.  Unlike {admin}, this
	term emphasises the technical end of the skills involved.

	[{Jargon File}]

	(1995-11-10)

system operator

	<job, jargon> (Always abbreviated to "sysop") /sis'op/ A term
	used in the {BBS} world for the operator of a bulletin-board
	system (who is usually also the owner).

	A common neophyte mistake on {FidoNet} is to address a message
	to "sysop" in an international {echo}, thus sending it to
	hundreds of sysops around the world.

	Contrast: {system administrator}.

	(1999-10-20)

System Product Interpreter

	{Restructured EXtended eXecutor}

system programming language

	{Ousterhout's dichotomy}

System R

	<database> A {database} system built as a research project at
	{IBM San Jose Research} (now {IBM Almaden Research Center}) in
	the 1970s.  System R introduced the {SQL} language and also
	demonstrated that a {relational system database} could provide
	good {transaction processing} performance.

	{(http://mcjones.org/System_R/)}.

	(1998-09-29)

Systems Administrators Guild

	<body, job> (SAGE) A special technical group of the {USENIX
	Association}.

	{(http://usenix.org/sage)}.

	[Details?]

	(2001-01-27)

systems analysis

	<job> Study of the design, specification, feasibility, cost,
	and implementation of a computer system for business.  What a
	systems analyst does.

	(1997-04-25)

Systems Analysis Definition

	<programming> (SAD) The analysis of the role of a proposed
	system and the identification of the requirements that it
	should meet.  SAD is the starting point for system design.
	The term is most commonly used in the context of commercial
	programming, where software developers are often classed as
	either {systems analysts} or programmers.  The systems
	analysts are responsible for identifying requirements
	(i.e. systems analysis) and producing a design.  The
	programmers are then responsible for implementing it.

	(1996-03-07)

systems analyst

	{systems analysis}

Systems Application Architecture

	<programming> (SAA) {IBM}'s family of standard interfaces
	which enable {software} to be written independently of
	{hardware} and {operating system}.

	(1997-04-25)

Systems Development Life Cycle

	<programming> (SDLC, or "Software...") Any logical process used by
	a {systems analyst} to develop or redesign an {information
	system}.  SDLC includes {requirements}, design, {development},
	{integration}, {testing}, {validation}, training, user ownership,
	operations, analysis and maintenance.

	An SDLC should result in a system that meets or exceeds customer
	expectations, within time and cost estimates, works effectively
	and efficiently in the current and planned {Information
	Technology} {infrastructure}, is cheap to maintain and
	cost-effective to enhance.

	{(http://www.sdlc.ws/what-is-sdlc/)}.

	{US DOJ SDLC
	(http://www.justice.gov/jmd/irm/lifecycle/table.htm)}.

	(2013-11-12)

systems jock

	{jock}

Systems Network Architecture

	<networking> (SNA) {IBM}'s proprietary high level networking
	{protocol} {standard}, used by IBM and IBM compatible
	{mainframes}.

	Also referred to as "Blue Glue", SNA is a bletcherous protocol
	once widely favoured at commercial shops.  The official IBM
	definition is "that which binds blue boxes together."  It may
	be relevant that {Blue Glue} is also a 3M product commonly
	used to hold down carpets in {dinosaur pens}.

	[{Jargon File}]

	(1994-11-23)

system software

	<operating system> Any {software} required to support the
	production or execution of {application programs} but which is
	not specific to any particular application.

	System software typically includes an {operating system} to
	control the execution of other programs; user environment
	software such as a {command-line interpreter}, {window
	system}, {desktop}; development tools for building other
	programs such as {assemblers}, {compilers}, {linkers},
	{libraries}, {interpreters}, {cross-reference generators},
	{version control}, {make}; {debugging}, {profiling} and
	monitoring tools; utility programs, e.g. for sorting,
	printing, and editting.

	Different people would classify some or all of the above as
	part of the operating system while others might say the
	operating system was just the {kernel}.  Some might say system
	software includes {utility programs} like {sort}.

	(2007-02-02)

systems operator

	{system operator}

systems programmer

	<job> (sysprog) A generic job title that covers a variety of
	specialist roles such as writing low-level code that talks to
	directly to the {operating system} on a {server}.

	Typical skills required are experience of specific operating
	systems, networking ({TCP/IP}, {ATM}, {Ethernet}, {DNS}),
	electronic mail ({POP}, {IMAP}, {SMTP}), {web servers},
	{RDBMS}, operating system and network security, and hardware
	({SCSI}, {hard disks}, and {backup} devices).

	Contrast: {system administration}.

	(1999-09-14)

systems programming

	{systems programmer}

system testing

	<testing> (Or "application testing") A type of {testing} to
	confirm that all code modules work as specified, and that the
	system as a whole performs adequately on the {platform} on
	which it will be deployed.

	System testing should be performed by testers who are trained
	to plan, execute, and report on application and system code.
	They should be aware of scenarios that might not occur to the
	end user, like testing for null, negative, and format
	inconsistent values.  A tester should be able to repeat the
	steps that caused an error.

	(2003-09-24)

system unit

	<hardware> The main body of a computer, consisting of a
	plastic or metal enclosure, the {motherboard}, and (typically)
	internal {disk drives}, a {power supply}, cooling fans, and
	whatever circuit boards plugged into the mother board, such as
	a {video card}.

	The system unit is occasionally referred to as the {CPU},
	though this really means {central processing unit}.

	(2000-08-10)

System V

	1. The other major versions of the {Unix} {operating system}
	apart from {BSD}.  Developed by {AT&T}.  Later versions of
	Unix such as {SunOS} combined the best features of {System V}
	and {BSD} Unix.

	(1994-10-31)

	[Differences?]

	2. A supplier of {Unix} {open systems} for {Intel x86}
	processors.  They supply products from {SCO} and {Solaris} and
	offer general support for {Unix}, {TCP/IP}, and {Internet}.
	They serve and create third-party {WWW} pages and provide
	on-line support for commercial and non-commercial applications.

	{(http://systemv.com/)}.

	See also {System V Interface Definition}.

	(1994-12-12)

System V Interface Definition

	(SVID) A standard allowing source code portability between
	different {platforms} running Unix System V.

	(1995-03-28)

Système International

	{Système International d'Unités}

Système International d'Unités

	<unit, standard> (SI - International System of Units) The
	standard set of units of measurement set by the 11th General
	Conference on Weights and Measures in 1960.  There are seven
	base units: the {metre} (length), the {kilogram} (mass), the
	{second} (time), the {ampere} (electrical current), the kelvin
	(temperature), the mole (number of atoms) and the candela
	(luminous intensity).  These are defined either in terms of
	physical properties such as the speed of light or, in the case
	of mass, by a "prototype" lump of platinum-iridium kept at
	{BIPM}.  Derived units like meters per second (speed) are
	formed by combining base units.  SI also specifies a list of
	{prefixes} (multipliers like "k" for 1000).

	{SI Home (http://www.bipm.org/en/si/)}.

	(2014-07-08)

systolic array

	<architecture, parallel> (By analogy with the regular pumping
	of blood by the heart) An arrangement of processors in an
	array (often rectangular) where data flows synchronously
	across the array between neighbours, usually with different
	data flowing in different directions.  H. T. Kung and Charles
	Leiserson publish the first paper describing systolic arrays
	in 1978 [reference?].

	Each processor at each step takes in data from one or more
	neighbours (e.g. North and West), processes it and, in the
	next step, outputs results in the opposite direction (South
	and East).

	An example of a systolic {algorithm} might be matrix
	multiplication.  One matrix is fed in a row at a time from the
	top of the array and is passed down the array, the other
	matrix is fed in a column at a time from the left hand side of
	the array and passes from left to right.  Dummy values are
	then passed in until each processor has seen one whole row and
	one whole column.  At this point, the result of the
	multiplication is stored in the array and can now be output a
	row or a column at a time, flowing down or accross the array.

	See also {Ruby}, {SISAL}.

	(1998-07-01)

SysVile

	{Missed'em-five}

sz

	<networking> The {country code} for Swaziland.

	(1999-01-27)

T

	1. True.  A {Lisp} compiler by Johnathan A. Rees in 1982 at
	{Yale University}.  T has {static scope} and is a
	near-superset of {Scheme}.  {Unix} source is available.  T is
	written in itself and compiles to efficient native code.  Used
	as the basis for the Yale {Haskell} system.  Maintained by
	David Kranz <kranz@masala.lcs.mit.edu>.

	Latest version: 3.1.

	{(ftp://ftp.ai.mit.edu/pub/systems/t3.1)}.

	A {multiprocessing} version of T is available
	{(ftp://masala.lcs.mit.edu/pub/mult)}.

	Runs on {Decstation}, {SPARC}, {Sun-3}, {Vax} under {Unix},
	{Encore}, {HP}, {Apollo}, {Macintosh} under {A/UX}.

	E-mail: <t3-bugs@cs.yale.edu> (bugs).
	E-mail: <t-project@cs.yale.edu>.

	(1991-11-26)

	["The T Manual", Johnathan A. Rees <jar@zurich.ai.mit.edu> et
	al, Yale U, 1984].

	2. A {functional language}.

	["T: A Simple Reduction Language Based on Combinatory Term
	Rewriting", Ida et al, Proc of Prog Future Generation
	Computers, 1988].

	3. (lower case) The {Lisp} {atom} used to represent "true",
	among other things.  "false" is represented using the same
	atom as an empty list, {nil}.  This {overloading} of the basic
	constants of the language helps to make Lisp {write-only
	code}.

	4. In transaction-processing circles, an abbreviation for
	"transaction".

	5. (Purdue) An alternative spelling of "{tee}".

\t

	{horizontal tabulation}

T1

	<communications> An {AT&T} term for a {digital carrier}
	facility used to transmit a {DS1} formatted digital signal at
	1.544 megabits per second.

	T1 transmission uses a bipolar {Return To Zero} {alternate
	mark inversion} line coding scheme to keep the DC carrier
	component from saturating the line.

	Although some consider T1 signaling obsolete, much equipment
	operates at the "T1 rate" and such signals are either
	combined for transmission via faster circuits, or
	demultiplexed into 64 kilobit per second circuits for
	distribution to individual subscribers.

	T1 signals can be transported on {unshielded twisted pair}
	telephone lines.  The transmitted signal consists of pips of a
	few hundred nanoseconds width, each inverted with respect to
	the one preceding.  At the sending end the signal is 1 volt,
	and as received, greater than 0.01 volts.  This requires
	repeaters about every 6000 feet.

	The information is contained in the timing of the signals, not
	the polarity.  When a long sequence of bits in the transmitted
	information would cause no pip to be sent, "{bit stuffing}" is
	used so the receiving apparatus will not lose track of the
	sending clock.

	A T1 circuit requires two twisted pair lines, one for each
	direction.  Some newer equipment uses the two lines at half
	the T1 rate and in {full-duplex} mode; the sent and received
	signals are separated at each end by components collectively
	called a "hybrid".  Although this technique requires more
	sophisticated equipment and lowers the line length, an
	advantage is that half the sent and half the received
	information is mixed on any one line, making low-tech wiretaps
	less a threat.

	See also {Integrated Services Digital Network}.

	(1994-11-23)

T1 line

	{T1}

T1 rate

	{T1}

T3

	<communications> A {digital carrier} facility used to transmit
	a {DS3} formatted digital signal at 44.736 megabits per
	second.

	See also {Integrated Services Digital Network}.

	(1994-11-23)

T3 line

	{T3}

TA

	{Terminal Adaptor}

TAA

	{Track Average Amplitude}

TAB

	{HT}

table

	<database> A collection of {records} in a {relational database}.

	(1997-06-04)

table locking

	<database> A technique used in {database management systems},
	where an entire {table} is locked while data in it is being
	updated.

	Other techniques are {row-level locking} and {MVCC}.

	(1999-06-18)

tablespace

	<oracle, database, storage> A logical unit of storage, used by
	an {Oracle} database, that is made up of one or more
	{operating system} files.  Each table, {index} or other object
	that requires storage is located on a tablespace.

	The {database administrator} typically assigns a default and a
	temporary tablespace to each user and grants a quota on each
	so they can create tables and indexes.

	(2006-08-24)

TABLET

	A {query language}.

	["Human Factor Comparison of a Procedural and a Non-procedural
	Query Language", C. Welty et al, ACM Trans Database Sys
	6(4):626-649 (Dec 1981)].

	(1994-11-23)

TABLOG

	<language> A programming language based on {first order
	predicate logic} with equality that combines {relational
	programming} and {functional programming}.  It has functional
	notation and {unification} as its binding mechanism.  TABLOG
	supports a more general subset of standard {first order logic}
	than {Prolog}.  It employs the Manna-Waldinger
	'{deductive-tableau}' proof system as an {interpreter} instead
	of {resolution}.

	(1997-06-19)

tab-separated values

	<file format> (TSV) A file format used as a portable
	representation of a {database}.  Each line represents one
	entry or {record}; and in every line, each field is separated
	from the next by a tab character ({HT}).

	Compare {CSV}.

	(2001-03-16)

TABSOL

	<language> A language extension for {GECOM} written in the
	form of {truth tables} which was compiled into code for the
	tests and actions described.  TABSOL was developed by
	T.F. Kavanaugh, and was in use around 1964-5.

	(1996-09-15)

	[Proc FJCC 18:117-136, AFIPS (Fall 1960)].

	(1996-09-16)

Tabulating Machine Company

	<company> The company founded in 1896 by {Herman Hollerith} to
	exploit his invention of the {punched card}.  It became part
	of {IBM} in 1924.

	(1996-01-02)

TAC

	1. Translator Assembler-Compiler.  For {Philco 2000}.

	2. {Terminal Access Controller}.

TACL

	Tandem Advanced Command Language.  Tandem, about 1987.  The
	shell language used in Tandem computers.

TACPOL

	<language> A {PL/I}-like language used by the US Army for
	command and control.

	(2001-01-31)

Tactile User Interface

	<interface> (TUI) {Hardware} and {software} to provide access
	to computer-based graphical[?] information using touch, often
	intended for blind people.  See also {haptics}.

	(2003-10-17)

tag

	<language, text> An {SGML}, {HTML}, or {XML} {token}
	representing the beginning (start tag: "<p ...>") or end (end
	tag: "</p>") of an {element}.  In normal SGML {syntax} (and
	always in {XML}), a tag starts with a "<" and ends with an
	">".

	In {HTML} jargon, the term "tag" is often used for an
	"{element}".

	(2001-01-31)

Tagged Image File Format

	<file format, graphics> (TIFF) A {file format} used for
	still-image {bitmaps}, stored in tagged fields.  {Application
	programs} can use the tags to accept or ignore fields,
	depending on their capabilities.

	While TIFF was designed to be extensible, it lacked a core of
	useful functionality, so that most useful functions (e.g.
	{lossless} 24-bit colour) requires nonstandard, often
	redundant, extensions.  The incompatibility of extensions has
	led some to expand "TIFF" as "Thousands of Incompatible File
	Formats".

	Compare {GIF}, {PNG}, {JPEG}.

	(1997-10-11)

tagged queueing

	<hardware> A method allowing a device or {controller} to
	process commands received from a {device driver} out of order.
	It requires that the device driver attaches a tag to each
	command which the controller or device can later use to
	identify the response to the command.

	Tagged queueing can speed up processing considerably if a
	controller serves devices of very different speeds, such as an
	{SCSI} controller serving a mix of {CD-ROMs} and high-speed
	{disks}.  In such cases if a request to fetch data from the
	CD-ROM is shortly followed by a request to read from the disk,
	the controller doesn't have to wait for the CD-ROM to fetch
	the data, it can instead instruct the disk to fetch the data
	and return the value to the device driver, while the CD-ROM is
	probably still {seeking}.

	(1997-07-04)

tagged types

	<programming> {Ada}'s type mechanism in which types can be
	extended via {single inheritance}.

	(2000-02-21)

tag name

	{generic identifier}

tail call optimisation

	{last call optimisation}

tail call optimization

	{last call optimisation}

tail circuit

	<communications> A circuit which connects the {serial lines}
	of two {modems} together.

	[Why do that?]

	(1996-10-16)

tail recursion

	<programming> When the last thing a function (or procedure)
	does is to call itself.  Such a function is called tail
	recursive.  A function may make several {recursive} calls but
	a call is only tail-recursive if the caller returns
	immediately after it.  E.g.

		f n = if n < 2 then 1 else f (f (n-2) + 1)

	In this example both calls to f are recursive but only the
	outer one is tail recursive.

	Tail recursion is a useful property because it enables {tail
	recursion optimisation}.

	If you aren't sick of them already, see {recursion} and {tail
	recursion}.

	[{Jargon File}]

	(2006-04-16)

tail recursion modulo cons

	<programming, compiler> A generalisation of {tail recursion}
	introduced by D.H.D. Warren.  It applies when the last thing a
	function does is to apply a constructor functions (e.g. cons)
	to an application of a non-primitive function.  This is
	transformed into a tail call to the function which is also
	passed a pointer to where its result should be written.  E.g.

		f []     = []
		f (x:xs) = 1 : f xs

	is transformed into (pseudo {C}/{Haskell}):

		f [] = []
		f l  = f' l allocate_cons

		f' []     p = { *p = nil;
				return *p
			      }
		f' (x:xs) p = { cell = allocate_cons;
			        *p = cell;
				cell.head = 1;
				return f' xs &cell.tail
			      }

	where allocate_cons returns the address of a new cons cell, *p
	is the location pointed to by p and &c is the address of c.

	[D.H.D. Warren, DAI Research Report 141, University of
	Edinburgh 1980].

	(1995-03-06)

tail recursion optimisation

	<programming> (TRO) Discarding the calling environment ({call
	stack} {frame}) when the last thing a function or procedure
	does is to call itself.  This is important when a procedure
	calls itself {recursive}ly many times since, without tail
	recursion optimisation, the environments of earlier
	invocations would fill up the memory only to be discarded when
	(if) the last call terminated.

	Tail recursion optimisation is a special case of {last call
	optimisation} but it allows the further optimisation that some
	arguments may be passed in situ, possibly in {registers}.  It
	allows recursive functions to be compiled into {iterative}
	loops.

	See also {conversion to iteration}, {tail recursion modulo
	cons}.

	(2006-04-16)

tail-strict

	A tail-strict function evaluates every cons cell in its (list)
	argument.  It will therefore fail to terminate if its argument
	is an infinite list or if any tail of its argument fails to
	terminate.  The archetypal tail-strict function is length.
	See also Head-strict, Hyper-strict.

TAL

	{Transaction Application Language}

TALE

	Typed Applicative Language Experiment.  M. van Leeuwen.  Lazy,
	purely applicative, polymorphic.  Based on typed second order
	lambda-calculus.  "Functional Programming and the Language
	TALE", H.P. Barendregt et al, in Current Trends in
	Concurrency, LNCS 224, Springer 1986, pp.122-207.

Taligent

	A company founded jointly by Apple and IBM in March 1992.  HP
	announced in January, 1994 that it would buy a 15% stake in
	Taligent.  They are working on an "object-oriented operating
	system", due to be finished sometime in 1995.  However,
	various independent pieces of Taligent will likely appear to
	be used with other operating systems, e.g. IBM's WorkplaceOS.
	Pink is an older name for Taligent, dating back to work that
	Apple did before the formation of Taligent.

talk

	<chat, tool, networking, messaging> A {Unix} program and
	{protocol} supporting conversation between two or more users
	who may be logged into the same computer or different
	computers on a network.  Variants include {ntalk}, {ytalk},
	and {ports} or {emulators} of these programs for other
	{platforms}.

	{Unix} has the {talk} program and {protocol} and its variants
	{xtalk} and {ytalk} for the {X Window System}; {VMS} has
	{phone}; {Windows for Workgroups} has {chat}.  {ITS} also has
	a talk system.  These split the screen into separate areas for
	each user.

	{Unix}'s {write} command can also be used, though it does not
	attempt to separate input and output on the screen.

	Users of such systems are said to be in {talk mode} which has
	many conventional abbreviations and idioms.  Most of these
	survived into {chat} jargon, but many fell out of common use
	with the migration of {user} prattle from talk-like systems to
	{chat} systems in the early 1990s.  These disused
	talk-specific forms include:

	"BYE?" - are you ready to close the conversation?  This is the
	standard way to end a talk-mode conversation; the other person
	types "BYE" to confirm, or else continues the conversation.

	"JAM"/"MIN" - just a minute

	"O" - "over" (I have stopped talking).  Also "/" as in x/y - x
	over y, or two newlines (the latter being the most common).

	"OO" - "over and out" - end of conversation.

	"\" - Greek {lambda}.

	"R U THERE?" - are you there?

	"SEC" - wait a second.

	"/\/\/" - laughter.  But on a {MUD}, this usually means
	"earthquake fault".

	See also {talk bomb}.

	(1998-01-25)

talk bomb

	{flash}

talker system

	{talk}

talk mode

	<chat> Using a {talk} system.  E.g., "{B1FF} had me in talk
	mode for hours last night.  I had to bring his box down just
	to get him to shut up."

	The (1980s?) term now is as dated as talk itself which has
	been largely replaced by {chat}.

	[{Jargon File}]

	(1998-01-19)

TALL

	<language> TAC List Language.

	["TALL - A List Processor for the Philco 2000", J. Feldman,
	CACM 5(9):484-485 (Sep 1962)].

	(1995-03-01)

tall card

	<hardware> An expansion card for the {IBM PC AT}.  These can
	be larger than {IBM PC} or {IBM PC XT} cards because the AT
	case is bigger.

	When IBM introduced the PS/2 model 30 (its last gasp at
	supporting the {ISA}) they made the case lower and many
	industry-standard tall cards wouldn't fit.  This was felt to
	be a reincarnation of the {connector conspiracy}, done with
	less style.

	See also {short card}.

	[{Jargon File}]

	(1995-03-01)

Tandem Application Language

	{Transaction Application Language}

Tandem Computers

	<company> A US computer manufacturer.

	Quarterly sales $544M, profits $49M (Aug 1994).

	(1994-09-26)

Tandy

	<company> A US company, the parent company of {Radio Shack},
	makers of the {TRS-80} and other early {personal computers}.

	(1995-02-28)

Tanenbaum, Andrew

	{Andrew Tanenbaum}

Tangible User Interface

	<interface> An attempt to give physical form to digital
	information, making bits directly manipulable and perceptible
	by people.  Tangible Interfaces will make bits accessible
	through augmented physical surfaces (e.g. walls, desktops,
	ceilings, windows), graspable objects (e.g. building blocks,
	models, instruments) and ambient media (e.g. light, sound,
	airflow, water-flow, kinetic sculpture) within physical
	environments.

	{MIT Tangible Media Group (http://tangible.media.mit.edu/)}.

	(2003-10-17)

tanked

	1. <jargon> Same as {down}, used primarily by {Unix} hackers.

	See also {hosed}.

	2. Popularised as a synonym for "drunk" by Steve Dallas in the
	late lamented "Bloom County" comic strip.

	[{Jargon File}]

	(1995-02-28)

TANSTAAFL

	/tan'stah-fl/ (From Robert Heinlein's classic "The
	Moon is a Harsh Mistress") "There Ain't No Such Thing As A
	Free Lunch".

	Often invoked when someone is balking at the prospect of using
	an unpleasantly {heavyweight} technique, or at the poor
	quality of some piece of {free software}, or at the
	{signal-to-noise ratio} of unmoderated {Usenet} newsgroups.
	"What? Don't tell me I have to implement a {database} back end
	to get my address book program to work!"  "Well, TANSTAAFL you
	know."  This phrase owes some of its popularity to the high
	concentration of science-fiction fans and political
	libertarians in hackerdom.

	[{Jargon File}]

	(1995-02-28)

TAO

	<language> 1. A {Lisp} dialect with {concurrency},
	{object-orientation} and logic.

	["Concurrent Programming in TAO - Practice and Experience",
	I. Takeuchi in Parallel Lisp: Languages and Systems, T. Ito et
	al eds, LNCS 441, Springer 1989, pp. 271-299].

	(2006-02-06)

	2. A programming language for {APE/Quadrics} {parallel}
	computers, largely modelled on {FORTRAN} and evolved from the
	even more primitive {APESE} language.  TAO is particularly
	hard to work with, due to the lack of systematics, poor
	documentation and a primitive compiler.

	[Reference?  Dates?]

	(2006-02-06)

TAOS

	{Technology for Autonomous Operation Survivability}

TAP

	{Telocator Alphanumeric Protocol}

tap

	{hit}

tape

	1. {magnetic tape}.

	2. {paper tape}.

	(1996-05-25)

tape archive

	{tar}

tape drive

	{magnetic tape drive}

tape head

	<hardware> The electromagnetic component in a {magnetic tape
	drive} which reads and writes magnetic tape as it passes over
	it.  Tape heads need to be cleaned periodically to remove the
	oxide particles which accumulate on them and can lead to
	errors.

	(1997-03-12)

Tape Operating System

	<operating system> (TOS) An {IBM} {operating system} for
	{System 360}, used in the early days around 1965 to support
	the {IBM 360} model 30 et al.  TOS was a predecessor to IBM's
	{Disk Operating System}.

	TOS died out really early as disks such as the 2311 and 2314
	became common with the {IBM 360} whereas thet had been a real
	luxury on the {IBM 7090}.

	[Relationship to {BOS}?]

	(1999-01-20)

TAPI

	{Telephony Application Programming Interface}

tar

	<file format> ("Tape ARchive", following {ar}) {Unix}'s
	general purpose {archive} utility and the file format it uses.
	Tar was originally intended for use with {magnetic tape} but,
	though it has several {command line options} related to tape,
	it is now used more often for packaging files together on
	other media, e.g. for distribution via the {Internet}.

	The resulting archive, a "tar file" (humourously, "tarball")
	is often compressed, using {gzip} or some other form of
	compression (see {tar and feather}).

	There is a {GNU} version of tar called {gnutar} with several
	improvements over the standard versions.

	{Filename extension}: .tar

	{MIME type}: unregistered, but commonly application/x-tar

	{Unix manual page}: tar(1).

	Compare {shar}, {zip}.

	(1998-05-02)

tar and feather

	<jargon> (A sick contrivance from the {Unix} {tar} command and
	the Ku Klux Klan torture method) To create a transportable
	archive from a group of files by first sticking them together
	with {tar} (the Tape ARchiver) and then {compress}ing the
	result.  The latter action is dubbed "feathering" (purely for
	contrived effect) by analogy to what you do with an aeroplane
	propeller to decrease wind resistance, or with an oar to
	reduce water resistance; smaller files, after all, slip
	through comm links more easily.

	[{Jargon File}]

	(1997-05-26)

tarball

	{tar}

targa

	<graphics, file format> A graphics data format for {bitmap}
	{images}.  It uses 24 bits per {pixel} and is a common output
	format for {ray tracing} programs.

	(1995-01-05)

Targa Graphics Adaptor

	<graphics, file format> (TGA) The Truevision Targa Graphics
	Adaptor file format.

	The TGA format is a common {bitmap} file format for storage of
	24-bit images.  It supports {colourmaps}, {alpha channels},
	{compression} and comments.

	{Filename extension}: .tga.

	More information is available from
	{Truevision (http://truevision.com/)} and
	{The Graphics File Format Page
	(http://dcs.ed.ac.uk/~mxr/gfx/)}.

	[What does it have to do with graphics adaptors?]

	(1997-08-07)

target

	{SCSI target}

Target-Machine Description Language

	(TMDL) The machine-description language used in the
	Graham-Glanville {code generator}.

	["Table-Driven Code Generation", S.L. Graham, IEEE Computer
	13(8):25-34 (Aug 1980)].

	(1995-02-21)

TARTAN

	A simple language proposed to meet the {Ironman} requirements.

	["TARTAN - Language Design for the Ironman Requirements:
	Reference Manual", Mary Shaw et al, SIGPLAN Notices
	13(9):36-58 (Sep 1978)].

	(1995-01-05)

taskbar

	<operating system> The part of the {Microsoft Windows}
	{graphical user interface} (GUI) typically occupying a fixed
	strip along the bottom of the screen, showing a rectangular
	icon for each running {application}.

	The taskbar also contains the {Start menu} at its left-hand
	end and the {notification area} at the right-hand end.  Other
	{toolbars} can be added such as the {Quick Launch toolbar}.

	Clicking an application's taskbar icon makes its windows
	visible in front of other windows and gives one of them the
	{input focus}, or if it is already in front, minimises it.
	Right-clicking an icon gives a {window manager} menu, possibly
	customised by the application.  Right-clicking the taskbar
	itself performs global window manager actions such as
	minimising all windows and also allows you to set taskbar
	properties.  The taskbar can be locked in position or resized
	or dragged to the top, left or right of the screen.

	(2007-06-13)

Task Control Block

	<architecture> An {MVS} {control block} used to communicate
	information about {tasks} within an {address space} that are
	connected to an {MVS} subsystem such as {MQSeries} for
	{MVS/ESA} or {CICS}.

	{FAQ
	(http://www-4.ibm.com/software/ts/mqseries/library/manuals/csqfao/CSQFAO22.HTM)}.

	(2000-12-30)

task scheduling

	<algorithm> The assignment of start and end times to a set of
	tasks, subject to certain {constraints}.  Constraints are
	typically either time constraints (the payload must be
	installed before the payload bay doors are closed) or resource
	constraints (this task requires a small crane and a crane
	operator).

	In the case where the tasks are programs to run concurrently
	on a computer, this is also known as {multitasking}.

	(1998-04-25)

TASM

	Turbo Assembler.  {MS-DOS} assembler from Borland.

TASS

	Template ASSembly language.  Intermediate language produced by
	the Manchester SISAL compiler.

taste

	1. (primarily MIT) The quality of a program that tends to be
	inversely proportional to the number of features, hacks, and
	{kluges} it contains.  Taste refers to sound judgment on the
	part of the creator.  See also {elegant}, {flavour}.

	2. Alternative spelling of "{tayste}".

	[{Jargon File}]

tatar

	<human language> A Turkic language spoken by about five
	million Tatars in Russia, Ukraine, Turkey and elsewhere; the
	official language of the Republic of Tatarstan (Russian
	Federation).

	{language codes}: tt, tat.

	(2006-12-11)

tau

	<mathematics> The mathematical constant that is the circumference
	of a circle divided by its radius, equal to twice {pi}.

	Some have suggested that pi is the wrong choice of constant to
	describe the geometry of circles etc. and tau = 2*pi would have
	been better.  Most practising mathematicians think this is silly.
	The {xkcd} comic strip facetiously {proposed
	(http://xkcd.com/1292/)} a compromise of 1.5*pi or "pau".

	{The Pi Manifesto (http://www.thepimanifesto.com/)}.

	(2013-12-10)

tautological probability

	<logic> A notion introduced by Florentin Smarandache whereby
	the probability of some event is more than one.  Tautological
	probability is used for universally true {propositions},
	i.e. those which do not depend on time, space, subjectivity,
	etc.

	[Florentin Smarandache, "A Unifying Field in Logics. /
	Neutrosophy: Neutrosophic Probability, Set, and
	Logic", American Research Press, Rehoboth 1999].

	(2001-04-06)

tautological set

	<logic> A notion introduced by Florentin Smarandache: An
	element x(T, I, F) belongs more than sure to the {set} M; here
	T, I, F are real subsets representing the truth,
	indeterminacy, and falsity percentages respectively, and
	sup(T)>100.

	tautological set are used for universally true {propositions}
	where no parameter such as time, space, or subjectivity
	influences the truth value.

	[{Florentin Smarandache, "A Unifying Field in Logics. /
	Neutrosophy: Neutrosophic Probability, Set, and
	Logic", American Research Press, Rehoboth, 1999
	(http://gallup.unm.edu/~smarandache/neut-ad.htm)}]

	(1999-11-24)

tautology

	<logic> A {proposition} which is always true.

	Compare: {paradox}.

	{The Linguistic Smarandache Tautologies,
	(http://gallup.unm.edu/~smarandache/tautolog.txt)}.

	(1999-07-28)

TAWK

	{Tiny AWK}

Taxis

	["A Language Facility for Designing Database-Intensive
	Applications", J. Mylopoulos et al, ACM Trans Database Sys
	5(2):185-207 (June 1980)].

tayste

	{crumb}

taz

	{tgz}

TB

	{terabyte}

TBF

	{Mean Time Between Failures}

TBIL

	{Tiny Basic Interpreter Language}

TBK

	{Tool Builder Kit}

Tbl

	1. A language by M.E. Lesk for formatting tables, implemented
	as a {preprocessor} to {nroff}.

	(1994-11-01)

	2. Table Building Language.  A simple language by Robert
	Freiburghouse of {MIT} which combines user-defined actions
	into an {abstract machine}.  It can be used to build
	table-driven predictive {parsers} and {code generators} in the
	{MULTICS} {Fortran} compiler and several {PL/I} compilers,
	including {VAX}-11 PL/I.

	["Engineering A Compiler: VAX-11 Code Generation and
	Optimisation", P. Anklam et al, Digital Press 1977].

	(1994-11-01)

tc

	<networking> The {country code} for the Turks and Caicos
	Islands.

	(1999-01-27)

T-carrier system

	<communications> A series of wideband digital data
	transmission formats originally developed by the {Bell System}
	and used in North America and Japan.

	The basic unit of the T-carrier system is the {DS0}, which has
	a transmission rate of 64 Kbps, and is commonly used for one
	{voice circuit}.

	Originally the 1.544 megabit per second {T1} format carried 24
	pulse-code modulated, time-division multiplexed speech signals
	each encoded in 64 kilobit per second streams, leaving 8
	kilobits per second of framing information which facilitates
	the synchronisation and demultiplexing at the receiver.  {T2}
	and {T3} circuits channels carry multiple T1 channels
	multiplexed, resulting in transmission rates of up to 44.736
	Mbps.

	The T-carrier system uses {in-band signaling}, resulting in
	lower transmission rates than the {E-carrier system}.  It uses
	a restored polar signal with {303-type} data stations.

	Asynchronous signals can be transmitted via a standard which
	encodes each change of level into three bits; two which
	indicate the time (within the current synchronous frame) at
	which the transition occurred, and the third which indicates
	the direction of the transition.  Although wasteful of line
	bandwidth, such use is usually only over small distances.

	T1 lines are made free of direct current signal components by
	in effect capacitor coupling the signal at the transmitter and
	restoring that lost component with a "slicer" at the receiver,
	leading to the description "restored polar".

	[Telecommunications Transmission Engineering, Vol. 2,
	Facilities, AT&T, 1977].

	(2001-04-08)

TCB

	1. <jargon> {Trouble Came Back}.

	2. <security> ({Orange Book}) {Trusted Computing Base}.

	3. <operating system> {Task Control Block}.

	[{Jargon File}]

	(1998-07-02)

TCGS

	{Twente Compiler Generator System}

TC/IX

	The LynxOS kernel ported to the MIPS R3000 RISC processor by
	CDC.

Tcl

	{Tool Command Language}

Tcl Consortium

	<body> A non-profit agency dedicated to promoting {Tcl}.

	{(http://tclconsortium.org/)}.

	(1998-11-27)

tcl-debug

	A debugger for {Tcl} by Don Libes <libes@cme.nist.gov> that
	can be easily embedded in other applications.  It is included
	with many other Tcl libraries.

	{(ftp://ftp.cme.nist.gov/pub/expect/tcl-debug.tar.Z)}.

	(1994-10-31)

Tcl-DP

	Tcl-DP extends {Tcl}'s "send" by removing the restriction that
	you can only send to other clients of the same X11 server.
	Version 3.0 library by Larry Rowe.

	{(ftp://toe.cs.berkeley.edu/pub/multimedia/Tcl-DP)}.

tclhttpd

	<tool> An {embeddable} {Tcl}-based {web server}.

	[Details?]

	(1998-11-27)

TclX

	{Extended Tcl}

TCM

	{Trellis Code Modulation}

TCO

	{Total Cost of Ownership}

Tcode

	Intermediate language used by the Spineless Tagless G-machine
	(an abstract machine based on graph reduction) designed as a
	target for compilation of non-strict functional languages.
	"The Spineless tagless G- machine", S. Peyton Jones et al,
	Fourth Intl Conf Func Prog Langs and Comp Arch pp.184-201, ACM
	Sept 1989.

TCOL

	CMU.  Tree-based intermediate representation produced by the
	PQCC compiler generator.  "An Overview of the Production
	Quality Compiler- Compiler Projects", B.W. Leverett et al,
	IEEE Computer 13(8): 38-49 (Aug 1980).  (See LG).

TCOL.Ada

	CMU, 1980.  An intermediate representation for Ada, was merged
	with AIDA to form Diana.  "TCOL.Ada: Revised Report on an
	Intermediate Representation for the DOD Standard Programming
	Language", J.M. Newcomer et al, CMU-CS-79-128 (June 1979).

TCP

	{Transmission Control Protocol}

TCPIP

	Normally written "{TCP/IP}".

TCP/IP

	<protocol> {Transmission Control Protocol} over
	{Internet Protocol}.

	The {de facto} {standard} {Ethernet} {protocols} incorporated
	into {4.2BSD} {Unix}.  TCP/IP was developed by {DARPA} for
	{internetworking} and encompasses both {network layer} and
	{transport layer} protocols.  While {TCP} and {IP} specify two
	protocols at specific {protocol layers}, TCP/IP is often used
	to refer to the entire {DoD} {protocol} suite based upon
	these, including {telnet}, {FTP}, {UDP} and {RDP}.

	See also {ICMP}, {SMTP}, {SNMP}.

	(1995-03-17)

tcsh

	<Unix, shell> A {Unix} {shell} by Christos Zoulas
	<christos@ee.cornell.edu>, based on {csh}.  tcsh adds
	{WYSIWYG} command line editing, command name {completion},
	input {history} and various other features.

	Version 6.04 runs under many versions of {Unix} and under
	{OpenVMS}.

	{(ftp://ftp.spc.edu/)}.

	(1993-07-09)

Tcsim

	{Time Complex Simulator}

TCVN 5773

	<human language, standard> A 1993 {Vietnamese} character
	{standard} that includes {Han} characters.

	(2001-01-02)

TCVN 6056

	<human language, standard> A 1995 {Vietnamese} character
	{standard} that includes {Han} characters.

	(2001-01-02)

td

	<networking> The {country code} for Chad.

	(1999-01-27)

TDD

	1. <testing> {test-driven development}.

	2. <communications> {Telecommunications Device for the Deaf}.

TDEL

	{thick film dielectric electroluminescence}

TDF

	<language> An {intermediate language}, a close relative of
	{ANDF}.  A TDF program is an {ASCII} stream describing an
	{abstract syntax tree}.

	TDF became part of {TenDRA} in abut 2001.

	["TDF Specification", Defence Research Agency/Electronics
	Division, Great Malvern, England, +44 684 895314].

	(2003-05-13)

TDFL

	Dataflow language.  "TDFL: A Task-Level Dataflow Language", P.
	Suhler et al, J Parallel Dist Comp 9(2):103-115 (Jun 1990).

TDI

	{Transport Driver Interface}

TDM

	1. {Technical Data Management}

	2. {Time Division Multiplexing}

TDMA

	{time division multiple access}

TDR

	{time domain reflectometer}

Teamwork

	<product, software, tool> A {SASD} tool from {Sterling
	Software}, formerly {CADRE Technologies}, which supports the
	{Shlaer/Mellor} {Object-Oriented} method and the
	{Yourdon-DeMarco}, {Hatley-Pirbhai}, {Constantine} and {Buhr}
	notations.

	Teamwork was abandoned when {Computer Associates}
	acquired Sterling Software in March 2000.

	(2002-05-29)

Technical/Office Protocol

	(TOP) An {applications layer} {network} {application} and
	{protocol stack} for {office automation} developed by {Boeing}
	following the {OSI model}.  This {protocol} is very similar to
	{MAP} except at the lowest levels, where it uses {Ethernet}
	({IEEE} {802.3}) rather than {Token Bus} ({IEEE} {802.4}).

Technion

	<body> Israel Institute of Technology.

	{(http://technion.ac.il/)}.

	{(ftp://ftp.technion.ac.il/)}.

	Address: Haifa, Israel.

	(1995-05-09)

technology

	<jargon> {Marketroid} jargon for "{software}", "{hardware}",
	"{protocol}" or something else too technical to name.

	The most flagrant abuse of this word has to be "{Windows NT}"
	(New Technology) - {Microsoft}'s attempt to make the
	incorporation of some ancient concepts into their OS sound
	like real progress.  The irony, and even the meaning, of this
	seems to be utterly lost on Microsoft whose {Windows 2000}
	start-up screen proclaims "Based on NT Technology", (meaning
	yet another version of NT, including some {Windows 95}
	features at last).

	See also: {solution}.

	(2001-06-28)

Technology Enabled Relationship Manager

	{Customer Relationship Management}

Technology of Object-Oriented Languages and Systems

	<event> (TOOLS) One of the oldest {object-oriented}
	conferences, with 18 published proceedings volumes.  TOOLS is
	organised by {Interactive Software Engineering}.

	(1995-12-29)

TechRef

	/tek'ref/ [{MS-DOS}] The original "IBM PC Technical Reference
	Manual", including the {BIOS} listing and complete schematics
	for the PC.  The only PC documentation in the issue package
	that's considered serious by real hackers.

	[{Jargon File}]

TECO

	<editor, text> /tee'koh/ (Originally an acronym for "[paper]
	Tape Editor and COrrector"; later, "Text Editor and
	COrrector"]) A {text editor} developed at {MIT} and modified
	by just about everybody.  With all the dialects included, TECO
	may have been the most prolific editor in use before {Emacs},
	to which it was directly ancestral.  The first {Emacs} editor
	was written in TECO.

	It was noted for its powerful programming-language-like
	features and its unspeakably {hairy} {syntax} (see {write-only
	language}).  TECO programs are said to resemble {line noise}.
	Every string of characters is a valid TECO program (though
	probably not a useful one); one common game used to be predict
	what the TECO commands corresponding to human names did.

	As an example of TECO's obscurity, here is a TECO program that
	takes a list of names such as:

		Loser, J. Random
		Quux, The Great
		Dick, Moby

	sorts them alphabetically according to surname, and then puts
	the surname last, removing the comma, to produce the
	following:

		Moby Dick
		J. Random Loser
		The Great Quux

	The program is

		[1 J^P$L$$
		J <.-Z; .,(S,$ -D .)FX1 @F^B $K :L I $ G1 L>$$

	(where ^B means "Control-B" (ASCII 0000010) and $ is actually
	an {alt} or escape (ASCII 0011011) character).

	In fact, this very program was used to produce the second,
	sorted list from the first list.  The first hack at it had a
	{bug}: GLS (the author) had accidentally omitted the "@" in
	front of "F^B", which as anyone can see is clearly the {Wrong
	Thing}.  It worked fine the second time.  There is no space to
	describe all the features of TECO, but "^P" means "sort" and
	"J<.-Z; ... L>" is an idiomatic series of commands for "do
	once for every line".

	By 1991, {Emacs} had replaced TECO in hacker's affections but
	descendants of an early (and somewhat lobotomised) version
	adopted by {DEC} can still be found lurking on {VMS} and a
	couple of {crufty} {PDP-11} {operating systems}, and ports of
	the more advanced MIT versions remain the focus of some
	antiquarian interest.

	See also {retrocomputing}.

	{(ftp://usc.edu/)} for {VAX}/{VMS}, {Unix}, {MS-DOS},
	{Macintosh}, {Amiga}.

	[Authro?  Home page?]

	(2001-03-26)

tee

	<tool, operating system> A {Unix} command which copies its
	{standard input} to its {standard output} (like {cat}) but
	also to a file given as its argument.  tee is thus useful in
	{pipelines} of {Unix} commands (see {plumbing}) where it
	allows you to create a duplicate copy of the data stream.
	E.g.

		egrep Unix Dictionary | tee /dev/tty | wc -l

	searches for lines containing the string "Unix" in the file
	"Dictionary", prints them to the terminal (/dev/tty) and
	counts them.

	{Unix manual page}: tee(1).

	[{Jargon File}]

	(1996-01-22)

TEI

	1. <communications> {Terminal Endpoint Identifier}.

	2. <text, project> {Text Encoding Initiative}.

	(1997-03-11)

telco

	<communications, company> (from telephone company) A company
	providing phone services to end users.  The company may or may
	not provide other phone services such operating
	long-distance/international backbones but the name telco
	usually emphasises its operation as a local service provider.

	Compare: {PTT}.

	(1998-05-18)

TELCOMP

	<language> A variant of {JOSS}.

	[Sammet 1969, p.217].

	(1997-04-07)

Telecommunication Display Device

	{Telecommunications Device for the Deaf}

Telecommunications Device for the Deaf

	<communications> (TDD) A terminal device used widely by deaf
	people for text communication over telephone lines.

	The acronym TDD is sometimes expanded as "Telecommunication
	Display Device" but is generally considered to be derived from
	"Telecommunications Device for the Deaf".  The deaf themselves
	do not usually use the term "TDD", but prefer simply "{TTY}"
	-- possibly the original term.  The ambiguity between this and
	the other meanings of "{TTY}" is generally not problematic.
	The acronym "TTD" is also common [Teletype for the deaf?].

	The standard most used by TDDs is reportedly a survivor of
	{Baudot code}.  It uses {asynchronous} transmission of 1400 Hz
	and 1600 Hz tones at 45.5 or 50 {baud}, with one {start bit},
	5 data bits and 1.5 {stop bits}.  This is generally
	incompatible with standard {modems}.

	A typical TDD is a device about the size of a small {laptop
	computer} (resembling, in fact, a circa 1983 Radio Shack
	{Model 100} computer) with a {QWERTY keyboard}, and small
	screen (often one line high, often made of an array of
	{LEDs}).  There is often a small printer for making
	transcripts of terminal sessions.  An {acoustic coupler}
	connects it to the telephone handset.

	With the falling cost of {personal computers} and the
	widespread use of {Internet} {talk} systems, there is now
	little reason to use this {Stone Age} technology.

	[Standards?  {i18n}?]

	(2006-10-08)

Telecommunications Industry Association

	<body, standard> (TIA) An association that sets {standards}
	for communications cabling.

	Cables that TIA set standards for include: {EIA}/TIA-568A
	and EIA/TIA-568B category three, four and five cable.

	{(http://tiaonline.org/)}.

	[Details?]

	(2000-04-24)

telecommuting

	The practice of working at home and communicating with your
	fellow workers through the phone, typically with a computer
	and modem.  Telecommuting saves the employee getting to and
	from work and saves the employer from supplying support
	services such as heating and cleaning, but it can also deprive
	the worker of social contact and support.

	(1995-01-05)

teledildonics

	<application, virtual reality> /tel"*-dil-do"-niks/ Sex in a
	computer simulated {virtual reality}, especially
	computer-mediated sexual interaction between the VR presences
	of two humans.  This practice is not yet possible except in
	the rather limited form of erotic conversation on {MUDs} and
	the like.  The term, however, is widely recognised in the VR
	community as a {ha ha only serious} projection of things to
	come.  "When we can sustain a multi-sensory surround good
	enough for teledildonics, *then* we'll know we're getting
	somewhere."

	[{Jargon File}]

	(1995-02-06)

telegraphy

	<communications, history> A historical term for communication,
	either wired or wireless, using {Morse code}.  The term is
	used in contrast with {telephony} meaning voice transmission.
	Telegraphy is sometimes (somewhat incorrectly) referred to as
	"{continuous wave}" or CW transmission.

	(2009-11-24)

telematics

	The combination of telecommunications and computing.  Data
	communications between systems and devices.

	(1995-02-07)

TelEnet

	The old name for {Sprintnet}.  TELENET used to provide a
	service called {PC Pursuit}.

	Not to be confused with {telnet} the program and {protocol}.

	(1994-10-17)

TELEPAC

	<networking> The Swiss {PTT} {X.25} network.

	(1995-11-09)

Telephone Application Program Interface

	<programming, communications> (TAPI) Officially it's
	{Telephony Application Programming Interface}.

	(1995-11-27)

telephony

	<communications> Communication, often two-way, of spoken
	information, by means of electrical signals carried by wires
	or radio waves.  The term was used to indicate transmission of
	the voice, as opposed to {telegraphy} (done in {Morse code}
	and usually called "{continuous wave}" or CW transmission),
	radio teletypewriter (RTTY) transmission (also called FSK for
	"{Frequency Shift Keying}", the modulation scheme used by such
	machines), and later, facimile.

	(1995-03-14)

Telephony Application Programming Interface

	<programming, communications> (TAPI, or "Telephone Application
	Program Interface") A {Windows 95} {Application Program
	Interface} enabling hardware independent access to telephone
	based communication.  TAPI covers a rather wide area of
	services from initialising the equipment (e.g. a {modem}) and
	placing a call to {voice mail} or control of a remote
	computer.

	[Telephone or Telephony?]

	(1995-12-05)

Telephony User Interface

	<communications> (TUI) Either a software interface to
	telephony (e.g. a phone-capable PC) or a {DTMF}-based
	interface to software (e.g. voicemail).

	(2003-10-21)

Telerat

	<abuse, hardware> /tel'*-rat/ Unflattering hackerism for
	"{Teleray}", a line of extremely losing {terminals}.

	[{Jargon File}]

	(1995-01-19)

Telescope User Interface

	<hardware, interface> (TUI) A remote control interface for a
	telescope.

	(2003-10-21)

Telescript

	A communications-oriented programming language using "active
	software agents", released by {General Magic} in 1994.  What
	{PostScript} did for cross-{platform}, device-independent
	documents, Telescript aims to do for cross-{platform},
	network-independent messaging.  Telescript protects
	programmers from many of the complexities of network
	{protocols}.

	(1995-01-16)

Teletype

	<hardware, product> ({tty}) A trademark for a hard-copy
	{teletypewriter} produced by {Teletype Corporation}.

	(2000-04-02)

teletype

	{teletypewriter}

Teletype Corporation

	<company> The company which made {Teletype} {teletypewriters}.

	Address: Skokie, Illinois, USA.

	(2000-04-03)

teletypewriter

	<hardware> (Nearly always abbreviated to "teletype" or
	"{tty}") An obsolete kind of {terminal}, with a noisy
	mechanical {printer} for output, a very limited {character
	set}, and poor print quality.

	See also {bit-paired keyboard}.

	(2000-04-02)

TeleUSE

	An {interface builder} for {Motif}.

television

	<hardware> A dedicated {push media} device for receiving
	{streaming video} and {audio}, either by terrestrial radio
	broadcast, satellite or cable.

	(1997-11-23)

Television Interface Adaptor

	<hardware, graphics> (TIA) The graphics chip in the {Atari
	2600}, also used as a sound chip for some arcade game.

	(1999-12-06)

TELNET

	/tel'net/ 1. The {Internet} {standard} {protocol} for remote
	login.  Runs on top of {TCP/IP}.  Defined in {STD} 8, {RFC
	854} and extended with options by many other RFCs.  {Unix}
	{BSD} networking software includes a program, telnet, which
	uses the protocol and acts as a {terminal emulator} for the
	remote login session.  Sometimes abbreviated to TN.  {TOPS-10}
	had a similar program called {IMPCOM}.

	2. The US nationwide network into which one dials to access
	{CompuServe}.  It was created by John Goltz, one of the
	founders and system {guru} of {CompuServe}.  He later worked
	for {Tymshare}, one of CompuServe's big competitors.

	[{Jargon File}]

	(2004-09-14)

Telocator Alphanumeric Protocol

	<communications, protocol> (TAP, or "IXO", "PET") A {protocol}
	for submitting requests to a {pager} service.  IXO/TAP is an
	{ASCII}-based, {half-duplex} {protocol} that allows the
	submission of a numeric or alphanumeric message.

	{Examples, protocol description, clarifications
	(ftp://mirror.lcs.mit.edu/telecom-archives/technical)}.

	See also {RFC 1568}.

	(1996-04-07)

Telon

	{CA-Telon}

TELOS

	1. The {LeLisp} Version 16 Object System.  Also used in
	{EuLisp}.  The {object-oriented} {core} of {EuLisp}.
	Incorporates ideas from {CLOS}, {ObjVLisp} and {OakLisp}.
	Total merging of {types} with {class}es and message-passing
	with normal function {application}.

	2. A {Pascal}-based {AI} language.

	["Design Rationale for TELOS, a Pascal-based AI Language",
	Travis et al, SIGPLAN Notices 12(8) (Aug 1977)].

TELSIM

	Busch, ca 1966.  Digital simulation.

	[Sammet 1969, p. 627].

template

	<document processing> A {document} that contains {parameters},
	identified by some special {syntax}, that are replaced by
	{actual arguments} by the template processing system.  For
	example:

	 Dear <guest>, <host> would like to invite you
	 to a party at <location> on <date> at <time>.

	Where the words in angle brackets are the parameters to be
	replaced by the name of an actual guest, etc.

	More sophisticated systems allow repetition, where a section
	is repeated in a single output document using a list of
	inputs; conditional sections or (nested) inclusion of other
	templates.

	See also {class template}.

	(2007-10-14)

template code

	<programming> {Pseudocode} generated by an automated {CASE}
	system and requiring further hand-coding before compilation.

	(2008-10-22)

template wizard

	<application> Software to guide the creation of some kind of
	{template}.  Examples include {Excel}'s Template Wizard add-in
	for creating databases to receive form data.  Most {web
	authoring} tools include facilities for inserting text into
	template page designs.

	(2008-10-22)

TEMPLOG

	Extension of {Prolog} to handle a clausal subset of
	first-order {temporal logic} with discrete time.  Proposed by
	M. Abadi and Z. Manna of {Stanford University}.

	["Temporal Logic in Programming", M. Abadi et al, INtl Symp
	Logic Prog pp.4-16 (1987)].

TEMPO

	A programming language with simple {syntax} and {semantics}
	designed for teaching semantic and pragmatic aspects of
	programming languages.

	["TEMPO: A Unified Treatment of Binding Time and Parameter
	Passing Concepts in Programming Languages", N.D. Jones et al,
	LNCS 66, Springer 1978].

Tempo

	<operating system> The original code name for {Mac OS} version
	8.

	(1997-10-15)

temporal database

	<database> A {database} that can store and retrieve temporal
	data, that is, data which depends on time in some way.

	[More details?  Examples?]

	(1996-05-25)

temporal logic

	<logic> An extension of {predicate calculus} which includes
	notation for arguing about *when* statements are true.  Time
	is discrete and extends indefinitely into the future.  Three
	{prefix} operators, represented by a circle, square and diamond
	mean "is true at the next time instant", "is true from now on"
	and "is eventually true".  x U y means x is true until y is
	true.  x P y means x precedes y.

	There are two types of formula: "state formulae" about things
	true at one point in time, and "path formulae" about things
	true for a sequence of steps.  An example of a path formula is
	"x U y", and example of a state formula is "next x" or a
	simple atomic formula such at "waiting".

	"true until" in this context means that a state formula holds
	at every point in time up to a point when another formula
	holds.  "x U y" is the "strong until" and implies that there
	is a time when y is true.  "x W y" is the "weak until" in
	which it is not necessary that y holds eventually.

	There are two types of temporal logic used: branching time and
	linear time.  The basic propositional temporal logic cannot
	differentiate between the two, though.  Linear time considers
	only one possible future, in branching time you have several
	alternative futures.  In branching temporal logic you have the
	extra operators "A" (for "all futures") and "E" (for "some
	future").  For example, "A(work U go_home)" means "I will work
	until I go home" and "E(work U go_home)" means "I may work
	until I go home".

	(1997-01-21)

Tempura

	Language based on temporal logic.  "Executing Temporal Logic
	Programs", B. Moszkowski, Camb U Press 1986.

Ten15

	<language> A universal {intermediate language}, a predecessor
	to {TDF}.

	{Ten15 Home (http://mca-ltd.com/martin/Ten15)}.

	["Ten15: An Overview", P. Core et al, Royal Signals Radar
	Establishment TR 3977, Sept 1986].

	[Polymorphic?]

	(2003-05-13)

tendinitis

	{overuse strain injury}

TenDRA

	<language> {TenDRA home (http://tendra.org/)}.

	[Summary?]

	(2003-05-13)

ten-finger interface

	The interface between two networks that cannot be directly
	connected for security reasons; refers to the practice of
	placing two terminals side by side and having an operator read
	from one and type into the other.

	[{Jargon File}]

tennis elbow

	{overuse strain injury}

tense

	Of programs, very clever and efficient.  A tense piece of code
	often got that way because it was highly {bum}med, but
	sometimes it was just based on a great idea.  A comment in a
	clever routine by Mike Kazar, once a grad-student hacker at
	CMU: "This routine is so tense it will bring tears to your
	eyes."  A tense programmer is one who produces tense code.

	[{Jargon File}]

tensor product

	<mathematics> A function of two {vector spaces}, U and V,
	which returns the space of {linear maps} from V's {dual} to U.

	Tensor product has natural symmetry in interchange of U and V
	and it produces an {associative} "multiplication" on vector
	spaces.

	Wrinting * for tensor product, we can map UxV to U*V via:
	(u,v) maps to that linear map which takes any w in V's dual to
	u times w's action on v.  We call this linear map u*v.  One
	can then show that

		u * v + u * x = u * (v+x)
		u * v + t * v = (u+t) * v
	and
		hu * v = h(u * v) = u * hv

	ie, the mapping respects {linearity}: whence any {bilinear
	map} from UxV (to wherever) may be factorised via this
	mapping.  This gives us the degree of natural symmetry in
	swapping U and V.  By rolling it up to multilinear maps from
	products of several vector spaces, we can get to the natural
	associative "multiplication" on vector spaces.

	When all the vector spaces are the same, permutation of the
	factors doesn't change the space and so constitutes an
	automorphism.  These permutation-induced iso-auto-morphisms
	form a {group} which is a {model} of the group of
	permutations.

	(1996-09-27)

tenured graduate student

	<job> One who has been in graduate school for 10 years (the
	usual maximum is 5 or 6): a "ten-yeared" student (get it?).
	Actually, this term may be used of any grad student beginning
	in his seventh year.  Students don't really get tenure, of
	course, the way professors do, but a tenth-year graduate
	student has probably been around the university longer than
	any untenured professor.

	[{Jargon File}]

	(1996-09-27)

tera-

	{prefix}

terabyte

	<unit, data> (TB) A unit of {data} equal to one trillion {bytes}.
	A terabyte is 10^12 bytes or 1000^4 bytes or 1000 {gigabytes}.

	A {terabyte} is roughly the amount of data in 117 {DVDs} (at 8.5
	{gigabytes} each).

	1000 terabytes are one {petabyte}.

	(Note the spelling - one 'r').  See {prefix}.

	(2013-11-03)

teraflop

	<unit> 10^12 {flops}.

	Intel beat Hitachi to the record of 1.06 teraflops, on 04 Dec
	1996, unofficially in Beverton, Oregon, using 7264 {Pentium
	Pro} chips.

	(1997-07-21)

teraflop club

	<body> /te'r*-flop kluhb/ (From {tera-} and {flops}) A
	mythical association of people who consume outrageous amounts
	of computer time in order to produce a few simple pictures of
	glass balls with intricate ray-tracing techniques.  {Caltech}
	professor James Kajiya is said to have been the founder.

	[{Jargon File}]

	(1997-07-21)

TERM

	1. <networking> A program by Michael O'Reilly
	<michael@iinet.com.au> for people running {Unix} who have
	{Internet} access via a {dial-up} connection, and who don't
	have access to {SLIP}, or {PPP}, or simply prefer a more
	lightweight {protocol}.  TERM does end-to-end
	error-correction, {compression} and {mulplexing} across serial
	links.  This means you can {upload} and {download} files as
	the same time you're reading your news, and can run {X}
	{clients} on the other side of your {modem} link, all without
	needing {SLIP} or {PPP}.

	Latest version: 1.15.

	{(ftp://tartarus.uwa.edu.au/pub/oreillym/term/term115.tar.gz)}.

	2. <business> {Technology Enabled Relationship Management}.

	(1999-10-04)

TERMAC

	An interactive matrix language.

	["Users Guide to TERMAC", J.S. Miller et al, MIT Dec 1968].

	(1994-11-04)

termcap

	<operating system> (terminal capabilities) A {Unix} database
	listing different types of terminal (or {terminal emulation})
	and the character {strings} to send to make the terminal
	perform certain functions such as move the {cursor} up one
	line or clear the screen.

	Programs written using termcap can work on any terminal in the
	database which supports the necessary functions.  Typical
	programs are {text editors} or file viewers like {more}.  The
	termcap routines look for an {environment variable} "TERM" to
	determine which terminal the user is using.

	{terminfo} is a later version of termcap.

	(1998-10-30)

terminak

	/ter'mi-nak`/ [Caltech, ca. 1979] Any malfunctioning computer
	terminal.  A common failure mode of Lear-Siegler ADM 3a
	terminals caused the "L" key to produce the "K" code instead;
	complaints about this tended to look like "Terminak #3 has a
	bad keyboard.  Pkease fix."  See {AIDX}, {Nominal
	Semidestructor}, {Open DeathTrap}, {ScumOS}, {sun-stools},
	{Telerat}, {HP-SUX}.

	[{Jargon File}]

	(1995-04-14)

terminal

	1. <hardware> An electronic or electromechanical device for
	entering data into a computer or a communications system and
	displaying data received.  Early terminals were called
	{teletypes}, later ones {VDUs}.  Typically a terminal
	communicates with the computer via a {serial line}.

	2. <electronics> The end of a {line} where signals are either
	transmitted or received, or a point along the length of a line
	where the signals are made available to apparatus.

	3. <electronics> Apparatus to send and/or receive signals on a
	{line}.

	(1995-10-02)

Terminal Access Controller

	<hardware, networking> (TAC) A device which connects
	{terminals} to the {Internet}, usually using dial-up {modem}
	connections and the {TACACS} {protocol}.

	(1997-11-27)

terminal adapter

	{Terminal Adaptor}

Terminal Adaptor

	<networking, hardware> (TA) Equipment used to adapt
	{Integrated Services Digital Network} (ISDN) {Basic Rate
	Interface} (BRI) channels to existing terminal equipment
	standards such as {EIA-232} and {V.35}.  A Terminal Adaptor is
	typically packaged like a {modem}, either as a {stand-alone}
	unit or as an interface card that plugs into a computer or
	other communications equipment (such as a {router} or {PBX}).
	A Terminal Adaptor does not interoperate with a {modem}; it
	replaces it.

	[ISDN {FAQ}].

	(1994-10-03)

terminal brain death

	The extreme form of {terminal illness}.  What someone who has
	obviously been hacking continuously for far too long is said
	to be suffering from.

	[{Jargon File}]

terminal emulation

	What a {terminal emulator} does.

terminal emulator

	<communications> A program that allows a computer to act like
	a (particular brand of) terminal, e.g. a {vt-100}.  The
	computer thus appears as a terminal to the {host} computer and
	accepts the same {escape sequences} for functions such as
	cursor positioning and clearing the screen.

	{xterm} is a terminal emulator for the {X Window System}.

	(1995-02-16)

terminal illness

	{raster burn}

terminal junkie

	(UK) A {wannabee} or early {larval stage} hacker who spends
	most of his or her time wandering the directory tree and
	writing {noddy} programs just to get a fix of computer time.
	Variants include "terminal jockey", "console junkie", and
	{console jockey}.  The term "console jockey" seems to imply
	more expertise than the other three (possibly because of the
	exalted status of the {console} relative to an ordinary
	terminal).

	See also {twink}, {read-only user}.

	[{Jargon File}]

	(1995-02-16)

terminal node

	{leaf}

Terminal Oriented Real Time Operating System

	<operating system> (TORTOS) An {operating system} developed
	from {MVT} at Health Sciences Computing, UCLA by Dr. Patrica
	Britt from the late 1960s to the mid 1970s.

	Dr. Britt was a senior scientist at {IBM}, who become the
	Assistant Director of HSCF.

	TORTOS pre-dated {TSO} and provided {batch}, {real-time} and
	{time sharing} on an {IBM 360}/91.

	(2004-07-02)

Terminal Oriented Social Science

	<project> (TOSS) The Cambridge Project {Project MAC} was an
	ARPA-funded political science computing project.  They worked
	on topics like survey analysis and simulation, led by Ithiel
	de Sola Pool, J.C.R. Licklider and Douwe B. Yntema.  Yntema
	had done a system on the {MIT} Lincoln Labs {TX-2} called the
	{Lincoln Reckoner}, and in the summer of 1969 led a Cambridge
	Project team in the construction of an experiment called TOSS.
	TOSS was like {Logo}, with {matrix} operators.  A major
	feature was multiple levels of {undo}, back to the level of
	the {login} session.  This feature was cheap on the Lincoln
	Reckoner, but absurdly expensive on {Multics}.

	(1997-01-29)

Terminal Productivity eXecutive

	<operating system> (TPX) A multiple session manager used to
	access {mainframe} applications.  It was written by {Morgan
	Stanley}, acquired by {Duquesne Systems} and is now owned by
	{Computer Associates}.  TPX allows you to work in multiple
	mainframe applications concurrently; lock and unlock your TPX
	screen; place your applications on hold; logon to TPX from a
	different terminal without losing your place; customize your
	TPX menu and send a screen image to another TPX user.

	TPX runs on {MVS} and {VM}.  On VM, like {VTAM}, it uses the
	MVS-like facilities of {GCS}.  It has a complete {scripting}
	facility and lets you see other user's sessions.  The
	{client-server} version allows each managed session to open in
	its own window.  Richard Kuebbing has built a complete e-mail
	system into it.

	{Unicenter CA-TPX
	(http://www3.ca.com/Solutions/Product.asp?ID=1531)}.

	(2005-09-29)

terminal server

	A device which connects many {terminals} ({serial lines}) to a
	{local area network} through one network connection.  A
	terminal server can also connect many network users to its
	asynchronous ports for {dial-out} capabilities and printer
	access.

	(1995-02-16)

Terminal User Interface

	{Textual User Interface}

Terminate and Stay Resident

	(TSR) A type of {DOS} utility which, once loaded, stays in
	memory and can be reactivated by pressing a certain
	combination of keys.

termination analysis

	A program analysis which attempts to determine whether
	evaluation of a given expression will definitely terminate.

	Evaluation of a constant is bound to terminate, as is
	evaluation of a non-{recursive} function applied to arguments
	which are either not evaluated or which can themselves be
	proved to terminate.  A recursive function can be shown to
	terminate if it can be shown that the arguments of the
	recursive calls are bound to reach some value at which the
	recursion will cease.

	Termination analysis can never guarantee to give the correct
	answer because this would be equivalent to solving the
	{halting problem} so the answer it gives is either "definitely
	terminates" or "don't know".

	(1994-10-20)

terminator

	<electronics> A resistor connected to a signal wire in a {bus}
	or {network} for the purpose of impedance matching to prevent
	reflections.

	For example, a 50 ohm resistor connected across the end of an
	{Ethernet} cable.  {SCSI} chains and some {LocalTalk} wiring
	schemes also require terminators.

	(1995-05-17)

term rewriting system

	(TRS) A collection of {rewrite rules} used to transform terms
	(expressions, strings in some formal language) into equivalent
	terms.  See {reduction}.

	(1994-11-04)

Terms Of Service

	<networking> (TOS) The rules laid down by an on-line service
	provider such as AOL that members must obey or risk being
	"TOS-sed" (disconnected).

	(1999-04-02)

ternary

	<programming> A description of an {operator} taking three
	arguments.  The only common example is {C}'s ?: operator which
	is used in the form "CONDITION ? EXP1 : EXP2" and returns EXP1
	if CONDITION is true else EXP2.  {Haskell} has a similar "if
	CONDITION then EXP1 else EXP2" operator.

	See also {unary}, {binary}.

	(1998-07-29)

terpri

	/ter'pree/ TERminate PRInt line.  [{LISP 1.5} and later,
	{MacLISP}] To output a {newline}.  Still used in {Common
	LISP}.  On some early {operating systems} and hardware, no
	characters would be printed until a complete line was formed,
	so this operation terminated the line and emitted the output.

	[{Jargon File}]

	(1996-06-24)

terrabyte

	<spelling> It's spelled "{terabyte}".

	(1997-01-23)

Terse

	Language for decryption of hardware logic.

	["Hardware Logic Simulation by Compilation", C. Hansen, 25th
	ACM/IEEE Design Automation Conf, 1988].

test

	<testing> The process of exercising a product to identify
	differences between expected and actual behaviour.  Typically
	testing is bottom-up: {unit testing} and {integration testing}
	by developers, {system testing} by testers, and {user
	acceptance testing} by users.

	{Test coverage} attempts to assess how complete a test has
	been.

	2. The second stage in a {generate and test} search
	{algorithm}.

	[{Jargon File}]

	(2003-09-24)

test coverage

	<testing> A measure of the proportion of a program exercised
	by a {test suite}, usually expressed as a percentage.  This
	will typically involve collecting information about which
	parts of a program are actually executed when running the test
	suite in order to identify which branches of {conditional
	statements} which have been taken.

	The most basic level of test coverage is {code coverage
	testing} and the most methodical is {path coverage testing}.
	Some intermediate levels of test coverage exist, but are
	rarely used.

	The standard {Unix} tool for measuring test coverage is
	{tcov}, which annotates {C} or {Fortran} source with the
	results of a test coverage analysis.  {GCT} is a {GNU}
	equivalent.

	(2001-05-20)

test-driven development

	<programming, testing> (TDD) An iterative {software
	development} process where each iteration consists
	of the developer writing an automated {test case}
	for an unimplemented improvement or function, then
	producing code to pass that test and finally
	{refactoring} the code to acceptable standards.

	{Kent Beck}, who is credited with having developed or
	"rediscovered" the technique, stated in 2003 that TDD
	encourages simple designs and inspires confidence.

	TDD is related to the humourous definition of programming
	as the process of {debugging an empty file}.

	(2012-05-01)

testing

	{test}

TET

	Test Environment Toolkit project coordinated by {X/Open}.

TeX

	<publication> /tekh/ An extremely powerful {macro}-based text
	formatter written by {Donald Knuth}, very popular in academia,
	especially in the computer-science community (it is good
	enough to have displaced {Unix} {troff}, the other favoured
	formatter, even at many {Unix} installations).

	The first version of TeX was written in the programming
	language {SAIL}, to run on a {PDP-10} under Stanford's {WAITS}
	{operating system}.

	Knuth began TeX because he had become annoyed at the declining
	quality of the typesetting in volumes I-III of his monumental
	"Art of Computer Programming" (see {Knuth}, also {bible}).  In
	a manifestation of the typical hackish urge to solve the
	problem at hand once and for all, he began to design his own
	typesetting language.  He thought he would finish it on his
	sabbatical in 1978; he was wrong by only about 8 years.  The
	language was finally frozen around 1985, but volume IV of "The
	Art of Computer Programming" has yet to appear as of mid-1997.
	(However, the third edition of volumes I and II have come
	out).  The impact and influence of TeX's design has been such
	that nobody minds this very much.  Many grand hackish projects
	have started as a bit of {toolsmithing} on the way to
	something else; Knuth's diversion was simply on a grander
	scale than most.

	{Guy Steele} happened to be at Stanford during the summer of
	1978, when Knuth was developing his first version of TeX.
	When he returned to {MIT} that fall, he rewrote TeX's {I/O} to
	run under {ITS}.

	TeX has also been a noteworthy example of free, shared, but
	high-quality software.  Knuth offers monetary awards to people
	who find and report a bug in it: for each bug the award is
	doubled.  (This has not made Knuth poor, however, as there
	have been very few bugs and in any case a cheque proving that
	the owner found a bug in TeX is rarely cashed).  Though
	well-written, TeX is so large (and so full of cutting edge
	technique) that it is said to have unearthed at least one bug
	in every {Pascal} system it has been compiled with.

	TeX fans insist on the correct (guttural) pronunciation, and
	the correct spelling (all caps, squished together, with the E
	depressed below the baseline; the mixed-case "TeX" is
	considered an acceptable {kluge} on {ASCII}-only devices).
	Fans like to proliferate names from the word "TeX" - such as
	TeXnician (TeX user), TeXhacker (TeX programmer), TeXmaster
	(competent TeX programmer), TeXhax, and TeXnique.

	Several document processing systems are based on TeX, notably
	{LaTeX} Lamport TeX - incorporates document styles for books,
	letters, slides, etc., {jadeTeX} uses TeX as a backend for
	printing from {James' DSSSL Engine}, and {Texinfo}, the {GNU}
	document processing system.  Numerous extensions to TeX exist,
	among them {BibTeX} for bibliographies (distributed with
	LaTeX), {PDFTeX} modifies TeX to produce {PDF} and {Omega}
	extends TeX to use the {Unicode} character set.

	For some reason, TeX uses its own variant of the {point}, the
	{TeX point}.

	See also {Comprehensive TeX Archive Network}.

	{(ftp://labrea.stanford.edu/tex/)}.

	E-mail: <tug@tug.org> (TeX User's group, Oregon, USA).

	(2002-03-11)

TeX-78

	<language, text> The original version of {TeX}.

	(1997-11-20)

TeX-82

	<language, text> The version of {TeX} described in The
	TeXbook, Donald Knuth, A-W 1984.

	(1997-11-20)

Texas Instruments

	<company> (TI) A US electronics company.

	A TI engineer, {Jack Kilby} invented the {integrated circuit}
	in 1958.  Three TI employees left the company in 1982 to start
	{Compaq}.

	The {COOL} and {OATH} {C++} {class} libraries were developed
	at TI, as were {PDL2} and the {ASC} computer, {PC-Scheme} and
	{Texas Instruments Pascal}.

	{(ftp://ti.com/)}.

	(1994-09-26)

Texinfo

	A {GNU} documentation system that uses a single source file to
	produce both on-line information and printed output.  You can
	read the on-line information, known as an "{Info} file", with
	an Info documentation-reading program.  By convention, Texinfo
	source file names end with a ".texi" or ".texinfo" extension.

	You can write and format Texinfo files into Info files within
	{GNU Emacs}, and read them using the Emacs Info reader.  If
	you do not have Emacs, you can format Texinfo files into Info
	files using "{makeinfo}" and read them using "info".  {TeX} is
	used to typeset Texinfo files for printing.

	Texinfo is available from your nearest {GNU archive site}.

	Latest version: 3.1, as of 1993-03-23.

	(1994-10-05)

TeX point

	<unit, text> The variant of the {point} used by {TeX}, equal
	to 0.3514598035 mm, or 1/72.27 inch.

	[Why yet another variant?]

	(2002-03-11)

text

	1. Executable code, especially a "pure code" portion shared
	between multiple instances of a program running in a
	{multitasking} {operating system}.

	Compare {English}.

	2. Textual material in the mainstream sense; data in ordinary
	{ASCII} or {EBCDIC} representation (see {flat ASCII}).  "Those
	are text files; you can review them using the editor."

	These two contradictory senses confuse hackers too.

	[{Jargon File}]

	(1995-03-16)

text-based

	<jargon> Working under a non-window-based {operating system}
	(e.g. {MS-DOS}) as opposed to a {graphical user interface}
	(e.g. {Microsoft Windows}).

	An MS-DOS text-based program uses a screen with a fixed array
	of 80x25 or 80x40 characters.  Examples are {WordPerfect}
	before version 5.1 and {Microsoft Word}.

	(1995-03-16)

text editor

	<tool, text> A utility program for creating and modifying
	{text files}.  This differs from a {word processor} in that
	the word processors often embed special control codes or
	{escape sequences} in the file to control formatting.

	(1996-11-15)

Text Encoding Initiative

	<text, project, standard> (TEI) A project working to establish
	a standard for interchanging {electronic text} for scholarly
	research.  The TEI has adopted {SGML} and implemented the TEI
	standard as an SGML {Document Type Definition}.

	The TEI was incorporated as a not-for-profit consortium in
	December 2000, with host sites in Bergen, Oxford, Virginia,
	and Providence RI, USA.

	{(http://tei-c.org/)}.

	See also {Corpus Processing}.

	[Any connection with {Computational Linguistics} or {Natural
	Language Processing}?]

	(2001-03-23)

text file

	<file format> A {file} containing no "invisible" {control
	characters}, only {printable} letters, numbers and symbols,
	usually from the {ASCII} {character set}.

	A text file can be produced with a {text editor} and can
	usually be imported into any {word processor} though it will
	probably appear unformatted.

	Compare {binary file}, {flat file}, {rich text file}.

	(1996-11-15)

Text Processing Utility

	<language> (TPU) A {DEC} language for creation of
	text-processing interfaces, used to implement DEC's
	{Extensible VAX Editor} (EVE).

	(2000-05-08)

Text Reckoning And Compiling

	<language> (TRAC) An interactive macro generator language for
	string manipulation by Calvin N. Mooers and Peter Deutsch of
	{Sun Microsystems}.  TAC derived ideas from {Macro SAP}.
	There are versions for {PDP-1}, {PDP-8}, {PDP-10} and
	{PDP-11}.

	See also {MINT}, {SAM76}.

	E-mail: Preston Briggs <preston@rice.edu>.

	["TRAC: A Procedure- Describing Language for the Reactive
	Typewriter", Calvin N. Mooers, CACM 9(3):215-219 (Mar 1966).
	Rockford Research Inst, 1972].

	[Sammet 1969, pp.448-454].

	["Macro Processors", A.J. Cole, Cambridge U Press].

	(1994-12-21)

text segment

	{code segment}

Text To Speech

	<application> (TTS) Automatic conversion of text streams to
	voice.

	[Details?]

	(1997-05-11)

Textual User Interface

	<interface> (TUI) Either a {text-based} version of a {GUI}, or
	a {full-screen} version of a {CLI}.

	(2003-10-21)

texture

	<graphics> A measure of the variation of the intensity of a
	surface, quantifying properties such as smoothness, coarseness
	and regularity.  It's often used as a {region descriptor} in
	{image analysis} and {computer vision}.

	The three principal approaches used to describe texture are
	statistical, structural and spectral.  Statistical techniques
	characterise texture by the statistical properties of the grey
	levels of the points comprising a surface.  Typically, these
	properties are computed from the grey level {histogram} or
	grey level {cooccurrence matrix} of the surface.

	Structural techniques characterise texture as being composed
	of simple primitives called "texels" (texture elements), that
	are regularly arranged on a surface according to some rules.
	These rules are formally defined by {grammars} of various
	types.

	Spectral techiques are based on properties of the Fourier
	spectrum and describe global periodicity of the grey levels of
	a surface by identifying high energy peaks in the spectrum.

	(1995-05-11)

tf

	<networking> The {country code} for French southern
	territories.

	(1999-01-27)

TFDL

	<language> ["TFDL : A Task-level Dataflow Language",
	P.A. Suhler et al, J Parallel and Distrib Comput 9:103-115
	(1990)].

	(1995-05-11)

TFT

	{Thin Film transistor}

TFTP

	{Trivial File Transfer Protocol}

tg

	<networking> The {country code} for Togo.

	(1999-01-27)

TGA

	{Targa Graphics Adaptor}

T-gen

	A general-purpose {object-oriented} tool for the automatic
	generation of string-to-{object} translators.  It was written
	in {Smalltalk} by Justin Graver <graver@comm.mot.com> and runs
	in the Smalltalk programming environment.  T-gen supports the
	generation of both {top-down parsers} ({LL parsers}) and
	{bottom-up parsers} ({LR parsers}), which will automatically
	generate {derivation trees}, {abstract syntax trees} or
	arbitrary {Smalltalk} {objects}.  The simple specification
	{syntax} and {graphical user interface} are intended to
	enhance the learning, comprehension and usefulness of T-gen.

	Latest version: 2.1.

	Runs on {Smalltalk-80}, {ParcPlace Objectworks}/{Smalltalk
	4.0} or 4.1.

	{(ftp://st.cs.uiuc.edu/pub/st80_r41/T-gen2.1/)}.

	(1992-10-18)

TGS-II

	Translator Generator System.  Contained {TRANDIR}.

	[Sammet 1969, p. 640].

TGS Systems

	<company> Suppliers of {Prograph}.

	Telephone: +1 (902) 429 5642.

	(1995-03-31)

tgz

	<filename extension, compression> (Or less often "taz", Tar
	GNU zip) A {filename extension} for a file or directory which
	has been archived with {tar} and then compressed with {gzip}.
	The full form ".tar.gz" is also common on proper {file
	systems} not limited to {8.3} file names.

	(1996-11-03)

th

	<networking> The {country code} for Thailand.

	(1999-01-27)

thanks in advance

	<jargon> (Usually "TIA") A conventional {Usenet}
	net.politeness ending a posted request for information or
	assistance.  Sometimes written "advTHANKSance" or
	"aTdHvAaNnKcSe".

	[{Jargon File}]

	(1999-02-09)

That's not a bug, that's a feature!

	The {canonical} first parry in a debate about a purported
	{bug}.  The complainant, if unconvinced, is likely to retort
	that the bug is then at best a {misfeature}.

	See also {feature}.

	[{Jargon File}]

	(1995-02-02)

T.H.E

	<operating system> The {operating system} in which
	{semaphores} were first used.

	[Details?]

	(1999-10-12)

The Cuckoo's Egg

	A great book (and subsequent BBC TV series) telling the true
	story of Clifford Stoll, an astronomy professor at {UCB}'s
	{Lawrence Berkeley Lab}.  A 75-cent accounting error alerted
	him to the presence of an unauthorised user (a {cracker}) on
	his system.  The cracker, code named "Hunter", was breaking
	into US computer systems and stealing sensitive military and
	security information.  Hunter was part of a spy ring paid in
	cash and cocaine, and reporting to the KGB.

	["The Cuckoo's Egg", Clifford Stoll, London: Bodley Head,
	1990, ISBN 0-370-31433-6, ISBN 0-671-72688-9].

	[FTP?]

	(1994-11-15)

The Dojo Toolkit

	<library, programming> A modular, {open source} {JavaScript}
	library.  Dojo is designed for easy development of JavaScript-
	or {AJAX} based applications and web sites.  It is supported
	by the Dojo Foundation, which is sponsored by {IBM}, {AOL},
	{Sun} and others.

	The name is from the Japanese term meaning "place of the way",
	used for a formal place of training.

	(2008-07-23)

The Force

	A {data parallel} language by Harry Jordan
	<harry@boulder.colorado.edu> which extends {Fortran} for
	{shared memory} {multiprocessors}.  It features parallel
	"case" statements and {critical sections}.

	["The Force", H. Jordan, in "The Characteristics of Parallel
	Algorithms", L. Jamieson et al eds, MIT Press 1987,
	pp. 395-436].

	(1994-12-14)

The Internet Account

	An {Internet} provider in Sydney, Australia who provides
	{SLIP}, {PPP} and {CLI} accounts for the same rates.
	<riscman@geko.com.au> handles {Acorn} software.

	{(http://geko.com.au/)}.

	{(ftp://ftp.geko.com.au/pub/)}.

	E-mail: <accounts@geko.com.au>.

	Telephone: +61 (2) 968 4333.  Fax: +61 (2) 968 4334.

	Address: PO BOX 473, Crows Nest, NSE 2065, Australia.

	(1995-02-02)

The MathWorks, Inc.

	<company> The company marketing {MATLAB}.

	{(http://mathworks.com/)}.

	E-mail: <info@mathworks.com>.

	Address: 3 Apple Hill Drive, Natick, Massachusetts 01760-2098 USA.

	Telephone: +1 (508) 647-7000.  Fax: +1 (508) 647-7101.

	(2005-08-13)

The Metadata Company

	<company> A company founded by Jack E. Myers, originally known
	as Metadata Information Partners.  Myers trademarked the word
	"Metadata" (unhyphenated with initial capital, as opposed to
	the general term {metadata}) to represent
	implementations of his {MetaModel} and to designate his
	company.

	Myers claims that a data and publication search in the summer
	of 1969 failed to discover any use either of the word
	"metadata" or "meta data".

	{(http://metadata.com/)}.

	E-mail: <metadata@metadata.com>.

	Address: 444 West Ocean Blvd, Suite 1600, Long Beach CA 90802,
	USA.

	(2010-05-15)

The Microsoft Network

	<networking> (MSN) {Microsoft}'s {ISP} and online content
	service, launched in October 1996.  Not to be confused with
	{Microsoft Networking}.

	MSN was originally based on custom software and protocols,
	however Microsoft saw the error of their ways and adopted
	Internet standards.  MSN now provides standard {WWW} and
	{email} facilities, albeit with Microsoft's {Internet
	Explorer} {web-browser} and the {Outlook Express} email
	software.

	The service also provides "Community Services" including
	{newsgroups}, {forums}, and {chat}.

	{(http://msn.com/)}.

	(1998-08-11)

The Mythical Man-Month

	<publication> Fred Brooks's excellent 1975 book on {software
	engineering}.

	See also {Brooks's Law}.

	["The Mythical Man-Month: Essays on Software Engineering",
	Fred Brooks, Addison-Wesley, 1975, ISBN 0-201-00650-2].

	(1996-06-20)

The Network

	{network, the}

THEO

	A {frame language}.

	["Theo: A Framework for Self-Improving Systems", Mitchell et
	al, in Architectures for Intelligence, K. VanLehn ed, Erlbaum,
	1989].

	(1994-12-14)

theology

	1. Ironically or humorously used to refer to {religious
	issues}.

	2. Technical fine points of an abstruse nature, especially
	those where the resolution is of theoretical interest but is
	relatively {marginal} with respect to actual use of a design
	or system.  Used especially around software issues with a
	heavy AI or language-design component, such as the smart-data
	vs.  smart-programs dispute in AI.

	[{Jargon File}]

The Open Group

	<body> (Formerly "X/Open") A vendor- and technology-neutral
	consortium of buyers and suppliers of {information systems}
	that aims to ease integration by testing and certifying
	products against {open standards}.

	{The Open Group Home (http://opengroup.org)}.

	(2006-07-13)

theory

	The consensus, idea, plan, story, or set of rules that is
	currently being used to inform a behaviour.  This usage is a
	generalisation and (deliberate) abuse of the technical
	meaning.  "What's the theory on fixing this TECO loss?"
	"What's the theory on dinner tonight?"  ("Chinatown, I
	guess.")  "What's the current theory on letting lusers on
	during the day?"  "The theory behind this change is to fix the
	following well-known screw...."

	(1994-12-14)

theory change

	<artificial intelligence> The study of methods used to
	incorporate new information into a {knowledge base} when the
	new information may conflict with existing information.

	{Belief revision} is one area of theory change.

	[Others?]

	(1995-03-20)

The Real-Time Operating System Nucleus

	<project> (TRON) A project to develop an {operating system}
	and {man-machine interface} that can work with other operating
	systems to provide an environment for many small distributed
	computers to cooperate in {real time}.  TRON is headed by
	Dr. Ken Sakamura of the {University of Tokyo} and supported by
	most of the major Japanese computer makers and {NTT}.

	{(http://atip.org/public/atip.reports.91/tron.html)}.

	(2003-05-23)

There's More Than One Way To Do It

	<Perl, philosophy> (TMTOWTDI) One of the design principles of
	{Perl}.  The Perl {man page} ends with a note:

	The Perl motto is "There's more than one way to do it."
	Divining how many more is left as an exercise to the reader.

	(2001-03-15)

Theseus

	<language> A language based on {Euclid}, never implemented.

	["Theseus - A Programming Language for Relational Databases",
	J.E. Shopiro, ACM Trans Database Sys 4(4):493-517, Mar 1979].

	(1994-12-14)

The story of Mel

	{The story of Mel, a Real Programmer}

The story of Mel, a Real Programmer

	<programming, person> A 1983 article by Ed Nather about {hacker}
	{Mel Kaye}.  The full text follows.

	A recent article devoted to the macho side of programming made
	the bald and unvarnished statement, "Real Programmers write in
	FORTRAN".

	Maybe they do now, in this decadent era of Lite beer, hand
	calculators and "user-friendly" software but back in the Good
	Old Days, when the term "software" sounded funny and Real
	Computers were made out of {drums} and {vacuum tubes}, Real
	Programmers wrote in {machine code} - not {Fortran}, not
	{RATFOR}, not even {assembly language} - {Machine Code}, raw,
	unadorned, inscrutable {hexadecimal} numbers, directly.

	Lest a whole new generation of programmers grow up in
	ignorance of this glorious past, I feel duty-bound to
	describe, as best I can through the generation gap, how a Real
	Programmer wrote code.  I'll call him Mel, because that was
	his name.

	I first met Mel when I went to work for {Royal McBee Computer
	Corporation}, a now-defunct subsidiary of the typewriter company.
	The firm manufactured the {LGP-30}, a small, cheap (by the
	standards of the day) {drum}-memory computer, and had just
	started to manufacture the RPC-4000, a much-improved, bigger,
	better, faster -- drum-memory computer.  Cores cost too much,
	and weren't here to stay, anyway.  (That's why you haven't
	heard of the company, or the computer.)

	I had been hired to write a {Fortran} compiler for this new
	marvel and Mel was my guide to its wonders.  Mel didn't
	approve of compilers.

	"If a program can't rewrite its own code," he asked, "what
	good is it?"

	Mel had written, in {hexadecimal}, the most popular computer
	program the company owned.  It ran on the {LGP-30} and played
	blackjack with potential customers at computer shows.  Its
	effect was always dramatic.  The LGP-30 booth was packed at
	every show, and the IBM salesmen stood around talking to each
	other.  Whether or not this actually sold computers was a
	question we never discussed.

	Mel's job was to re-write the blackjack program for the
	{RPC-4000}.  ({Port}?  What does that mean?)  The new computer
	had a one-plus-one addressing scheme, in which each machine
	instruction, in addition to the {operation code} and the
	address of the needed {operand}, had a second address that
	indicated where, on the revolving drum, the next instruction
	was located.  In modern parlance, every single instruction was
	followed by a {GO TO}!  Put *that* in {Pascal}'s pipe and
	smoke it.

	Mel loved the RPC-4000 because he could optimize his code:
	that is, locate instructions on the drum so that just as one
	finished its job, the next would be just arriving at the "read
	head" and available for immediate execution.  There was a
	program to do that job, an "optimizing assembler", but Mel
	refused to use it.

	"You never know where its going to put things", he explained,
	"so you'd have to use separate constants".

	It was a long time before I understood that remark.  Since Mel
	knew the numerical value of every operation code, and assigned
	his own drum addresses, every instruction he wrote could also
	be considered a numerical constant.  He could pick up an
	earlier "add" instruction, say, and multiply by it, if it had
	the right numeric value.  His code was not easy for someone
	else to modify.

	I compared Mel's hand-optimised programs with the same code
	massaged by the optimizing assembler program, and Mel's always
	ran faster.  That was because the "{top-down}" method of
	program design hadn't been invented yet, and Mel wouldn't have
	used it anyway.  He wrote the innermost parts of his program
	loops first, so they would get first choice of the optimum
	address locations on the drum.  The optimizing assembler
	wasn't smart enough to do it that way.

	Mel never wrote time-delay loops, either, even when the balky
	{Flexowriter} required a delay between output characters to
	work right.  He just located instructions on the drum so each
	successive one was just *past* the read head when it was
	needed; the drum had to execute another complete revolution to
	find the next instruction.  He coined an unforgettable term
	for this procedure.  Although "optimum" is an absolute term,
	like "unique", it became common verbal practice to make it
	relative: "not quite optimum" or "less optimum" or "not very
	optimum".  Mel called the maximum time-delay locations the
	"most pessimum".

	After he finished the blackjack program and got it to run,
	("Even the initialiser is optimised", he said proudly) he got
	a Change Request from the sales department.  The program used
	an elegant (optimised) {random number generator} to shuffle
	the "cards" and deal from the "deck", and some of the salesmen
	felt it was too fair, since sometimes the customers lost.
	They wanted Mel to modify the program so, at the setting of a
	sense switch on the console, they could change the odds and
	let the customer win.

	Mel balked.  He felt this was patently dishonest, which it
	was, and that it impinged on his personal integrity as a
	programmer, which it did, so he refused to do it.  The Head
	Salesman talked to Mel, as did the Big Boss and, at the boss's
	urging, a few Fellow Programmers.  Mel finally gave in and
	wrote the code, but he got the test backward, and, when the
	sense switch was turned on, the program would cheat, winning
	every time.  Mel was delighted with this, claiming his
	subconscious was uncontrollably ethical, and adamantly refused
	to fix it.

	After Mel had left the company for greener pa$ture$, the Big
	Boss asked me to look at the code and see if I could find the
	test and reverse it.  Somewhat reluctantly, I agreed to look.
	Tracking Mel's code was a real adventure.

	I have often felt that programming is an art form, whose real
	value can only be appreciated by another versed in the same
	arcane art; there are lovely gems and brilliant coups hidden
	from human view and admiration, sometimes forever, by the very
	nature of the process.  You can learn a lot about an
	individual just by reading through his code, even in
	hexadecimal.  Mel was, I think, an unsung genius.

	Perhaps my greatest shock came when I found an innocent loop
	that had no test in it.  No test. *None*.  Common sense said
	it had to be a closed loop, where the program would circle,
	forever, endlessly.  Program control passed right through it,
	however, and safely out the other side.  It took me two weeks
	to figure it out.

	The RPC-4000 computer had a really modern facility called an
	{index register}.  It allowed the programmer to write a
	program loop that used an indexed instruction inside; each
	time through, the number in the index register was added to
	the address of that instruction, so it would refer to the next
	datum in a series.  He had only to increment the index
	register each time through.  Mel never used it.

	Instead, he would pull the instruction into a machine
	register, add one to its address, and store it back.  He would
	then execute the modified instruction right from the register.
	The loop was written so this additional execution time was
	taken into account -- just as this instruction finished, the
	next one was right under the drum's read head, ready to go.
	But the loop had no test in it.

	The vital clue came when I noticed the index register bit, the
	bit that lay between the address and the operation code in the
	instruction word, was turned on-- yet Mel never used the index
	register, leaving it zero all the time.  When the light went
	on it nearly blinded me.

	He had located the data he was working on near the top of
	memory -- the largest locations the instructions could address
	-- so, after the last datum was handled, incrementing the
	instruction address would make it overflow.  The carry would
	add one to the operation code, changing it to the next one in
	the instruction set: a jump instruction.  Sure enough, the
	next program instruction was in address location zero, and the
	program went happily on its way.

	I haven't kept in touch with Mel, so I don't know if he ever
	gave in to the flood of change that has washed over
	programming techniques since those long-gone days.  I like to
	think he didn't.  In any event, I was impressed enough that I
	quit looking for the offending test, telling the Big Boss I
	couldn't find it.  He didn't seem surprised.

	When I left the company, the blackjack program would still
	cheat if you turned on the right sense switch, and I think
	that's how it should be.  I didn't feel comfortable hacking up
	the code of a Real Programmer."

	[Posted to {Usenet} by its author, Ed Nather <utastro!nather>, on
	1983-05-21].

	{Jargon File
	(http://www.catb.org/jargon/html/story-of-mel.html)}.

	[{On the trail of a Real Programmer
	(http://www.jamtronix.com/blog/2011/03/25/on-the-trail-of-a-real-programmer/)},
	2011-03-25 blog post by "jonno" at Jamtronix]

	[When did it happen?  Did Mel use hexadecimal or octal?]

	(2003-09-12)

The World Of Cryton

	(TWOC) A {BBS} for the {Acorn} {Archimedes}.

	Telephone: +44 (1749) 670 030 (24hrs, most speeds).

	(1994-11-08)

the X that can be Y is not the true X

	Yet another instance of hackerdom's peculiar attraction to
	mystical references - a common humorous way of making
	exclusive statements about a class of things.  The template is
	from the "Tao te Ching": "The Tao which can be spoken of is
	not the true Tao."  The implication is often that the X is a
	mystery accessible only to the enlightened.  See the
	{trampoline} entry for an example, and compare {has the X
	nature}.

	[{Jargon File}]

thicket

	<jargon> Multiple {files} output from some operation.

	The term has been heard in use at {Microsoft} to describe the
	set of {files} output when {Microsoft Word} does "Save As a
	{Web} Page" or "Save as {HTML}".  The process can result in a
	main {XML} or {HTML} {file}, a {graphic} {file} for each
	{image} in the original, a {CSS} {file}, etc.

	This can be an issue as {XML} can be used as the default
	format in {Office 2000}, and {document management systems}
	can't yet cope with the relationship between the {files} in a
	thicket when checking in and out.

	(2001-09-01)

thick Ethernet cable

	{RG8}

thick film dielectric electroluminescence

	<hardware> (TDEL) A phenomenon used in some {flat panel}
	displays.

	(2007-06-04)

thicknet

	{10base5}

thin client

	<networking> A simple {client} program or hardware device
	which relies on most of the function of the system being in
	the {server}.

	{Gopher} clients, for example, are very thin; they are
	{stateless} and are not required to know how to interpret and
	display objects much more complex than menus and plain text.
	Gopher servers, on the other hand, can search {databases} and
	provide {gateways} to other services.

	By the mid-1990s, the model of decentralised computing where
	each user has his own full-featured and independent
	{microcomputer}, seemed to have displaced a centralised model
	in which multiple users use thin clients (e.g. {dumb
	terminals}) to work on a shared {minicomputer} or {mainframe}
	server.  Networked {personal computers} typically operate as
	"fat clients", often providing everything except some file
	storage and printing locally.

	By 1996, reintroduction of thin clients is being proposed,
	especially for {LAN}-type environments (see the {cycle of
	reincarnation}).  The main expected benefit of this is ease of
	maintenance: with fat clients, especially those suffering from
	the poor networking support of {Microsoft} {operating
	systems}, installing a new application for everyone is likely
	to mean having to physically go to every user's workstation to
	install the application, or having to modify client-side
	configuration options; whereas with thin clients the
	maintenance tasks are centralised on the server and so need
	only be done once.

	Also, by virtue of their simplicity, thin clients generally
	have fewer hardware demands, and are less open to being
	screwed up by ambitious {lusers}.

	Never one to miss a bandwagon, Microsoft bought up {Insignia
	Solutions, Inc.}'s "{NTRIGUE}" Windows remote-access product
	and combined it with {Windows NT} version 4 to allow thin
	clients (either hardware or software) to communicate with
	applications running under on a server machine under {Windows
	Terminal Server} in the same way as {X} had done for {Unix}
	decades before.

	(1999-02-01)

thin Ethernet cable

	{RG58}

ThingLab

	A {simulation} system written in {Smalltalk-80}.  It solves
	{constraints} using {value inference}.

	Version: ThingLab II.

	["The Programming Language Aspects of ThingLab, A
	Constraint-Oriented Simulation Laboratory", A. Borning, ACM
	TOPLAS 3(4):353-387 (Oct 1981)].

Think C

	An extension of {ANSI C} for the {Macintosh} by {Symantec
	Corporation}.  It supports {object-oriented} programming
	techniques similar to {C++}.

Thinking Machines Corporation

	<company> The company that introduced the {Connection Machine
	parallel computer} ca 1984.  Four of the world's ten most
	powerful {supercomputers} are Connection Machines.  Thinking
	Machines is the leader in scalable computing, with software
	and applications running on parallel systems ranging from 16
	to 1024 processors.  In developing the Connection Machine
	system, Thinking Machines also did pioneering work in parallel
	software.

	The 1993 technical applications market for massively parallel
	systems was approximately $310 million, of which Thinking
	Machines Corporation held a 29 percent share.  Thinking
	Machines planned to become a software provider by 1996, by
	which time the parallel computing market was expected to have
	grown to $2 billion.

	Thinking Machines Corporation has 200 employees and offices
	worldwide.

	Address: 245 First Street, Cambridge, MA 02142-1264, USA.
	Telephone: +1 (617) 234 1000.  Fax: +1 (617) 234 4444.

	(1994-12-01)

thinko

	<jargon> /thing'koh/ (Or "braino", by analogy with "{typo}") A
	momentary, correctable {glitch} in mental processing,
	especially one involving recall of information learned by
	rote; a bubble in the stream of consciousness.

	See also {brain fart}.  Compare {mouso}.

	[{Jargon File}]

	(1996-04-20)

thinnet

	{cheapernet}

third generation computer

	<architecture> A computer built with small-scale integration
	{integrated circuits}, designed after the mid-1960s.

	Third generation computers use {semiconductor} memories in
	addition to, and later instead of, {ferrite core memory}.  The
	two main types of semiconductor memory are {Read-Only Memory}
	(ROM) and read-and-write memories called {random-access
	memory} (RAM).

	A technique called {microprogramming} became widespread and
	simplified the design of the {CPUs} and increased their
	flexibility.  This also made possible the development of
	{operating systems} as {software} rather than as hard-wiring.

	A variety of techniques for improving processing efficiency
	were invented, such as {pipelining}, (parallel operation of
	{functional units} processing a single instruction), and
	{multiprocessing} (concurrent execution of multiple programs).

	As the execution of a program requires that program to be in
	memory, the concurrent running of several programs requires
	that all programs be in memory simultaneously.  Thus the
	development of techniques for concurrent processing was
	matched by the development of {memory management} techniques
	such as {dynamic memory allocation}, {virtual memory}, and
	{paging}, as well as {compilers} producing {relocatable code}.

	The {LILLIAC IV} is an example of a third generation computer.

	The CTSS ({Compatible Time-Sharing System}) was developed at
	{MIT} in the early 1960s and had a considerable influence on
	the design of subsequent timesharing operating systems.

	An interesting contrasting development in this generation was
	the start of mass production of small low-cost
	"{minicomputers}".

third generation language

	<language> (3GL, "{high level language}") A language designed
	to be easier for a human to understand, including things like
	named variables.  A fragment might be

		let c = c + 2 * d

	Fortran, ALGOL and COBOL are early examples of this sort of
	language.  Most "modern" languages ({BASIC}, {C}, {C++}) are
	third generation.  Most 3GLs support {structured programming}.

	See also {second generation language}, {fourth generation
	language}.

	(1996-05-30)

third normal form

	{database normalisation}

This can't happen

	{can't happen}

this dictionary

	{Free On-line Dictionary of Computing}

This time, for sure!

	<exclamation> Ritual affirmation frequently uttered during
	protracted {debugging} sessions involving numerous small
	obstacles (e.g. attempts to bring up a {UUCP} connection).  For
	the proper effect, this must be uttered in a fruity imitation
	of Bullwinkle J. Moose.

	Also heard: "Hey, Rocky!  Watch me pull a rabbit out of my
	hat!"  The {canonical} response is, of course, "But that trick
	*never* works!"

	See {hacker humour}.

	[{Jargon File}]

	(1995-09-27)

thn

	{thumbnail}

Thomas

	<language> A language compatible with the language
	{Dylan}(TM).  Thomas is NOT {Dylan}(TM).

	The first public release of a translator to {Scheme} by Matt
	Birkholz, Jim Miller, and Ron Weiss, written at {Digital
	Equipment Corporation}'s {Cambridge Research Laboratory} runs
	(slowly) on {MIT}'s {CScheme}, DEC's {Scheme->C}, Marc
	Feeley's {Gambi}, {Macintosh}, {PC}, {Vax}, {MIPS}, {Alpha},
	{680x0}.

	{(ftp://gatekeeper.pa.dec.com/pub/DEC/Thomas)}.

	Mailing list: <info-thomas@crl.dec.com>.

	["Dylan(TM) an object-oriented dynamic language", {Apple
	Computer}, Eastern Research and Technology, April 1992].

	(1992-09-11)

thrash

	To move wildly or violently, without accomplishing anything
	useful.  {Paging} or {swapping} systems that are overloaded
	waste most of their time moving data into and out of {core}
	(rather than performing useful computation) and are therefore
	said to thrash.  Thrashing can also occur in a {cache} due to
	{cache conflict} or in a {multiprocessor} (see {ping-pong}).

	Someone who keeps changing his mind (especially about what to
	work on next) is said to be thrashing.  A person frantically
	trying to execute too many tasks at once (and not spending
	enough time on any single task) may also be described as
	thrashing.

	Compare {multitask}.

	[{Jargon File}]

thrashing

	{thrash}

thread

	1. See {multithreading}.

	2. See {threaded code}.

	3. {topic thread}.

	[{Jargon File}]

threaded

	{thread}

threaded code

	<programming> A technique for implementing {virtual machine}
	{interpreters}, introduced by J.R. Bell in 1973, where each
	{op-code} in the virtual machine {instruction set} is the
	address of some (lower level) code to perform the required
	operation.  This kind of virtual machine can be implemented
	efficiently in {machine code} on most processors by simply
	performing an {indirect jump} to the address which is the next
	instruction.

	Many {Forth} implementations use threaded code and nowadays
	some use the term "threading" for almost any technique used to
	implement Forth's virtual machine.

	{(http://complang.tuwien.ac.at/forth/threaded-code.html)}.

	["James R. Bell", "Threaded Code", CACM, 1973, 16, 6, pp
	370-372].

	["An Architectural Trail to Threaded Code Systems", Kogge,
	P. M., IEEE Computer, March 1982].

	(1998-09-02)

threading

	{thread}

Thread Language Zero

	<language> (TL0) The {instruction set} of the TAM ({Threaded
	Abstract Machine}), used to implement {Id}.

	["Fine-grain Parallelism with Minimal Hardware Support", David
	Culler et al, SIGPLAN Notices 26(4):164-175, ASPLOS-IV Proc,
	Apr 1991].

	(1995-03-13)

thread-safe

	<programming> A description of code which is either
	{re-entrant} or protected from multiple simultaneous execution
	by some form of {mutual exclusion}.

	(1997-01-30)

three-finger salute

	{Vulcan nerve pinch}

three-letter acronym

	(TLA) The canonical self-describing abbreviation for the name
	of a species with which computing terminology is infested.
	Examples include {MCA}, {FTP}, {SNA}, {CPU}, {MMU}, {DMU},
	{FPU}, {TLA}.  For a complete list of the TLAs in this
	dictionary, see {TLAs}.

	Sometimes used by extension for any confusing acronym.  People
	who like this looser usage argue that not all TLAs have three
	letters, just as not all four-letter words have four letters.
	One also hears of "ETLA" (Extended Three-Letter Acronym) being
	used to describe four-letter acronyms.  The term "SFLA"
	(Stupid Four-Letter Acronym) has also been reported.

	See also {YABA}.

	The self-effacing phrase "TDM TLA" (Too Damn Many...) is often
	used to bemoan the plethora of TLAs in use.  In 1989, a random
	of the journalistic persuasion asked hacker Paul Boutin "What
	do you think will be the biggest problem in computing in the
	90s?"  Paul's straight-faced response: "There are only 17,000
	three-letter acronyms." (To be exact, there are 26^3 =
	17,576.)

	(1994-12-14)

three-tier

	<architecture> A {client-server} architecture in which the
	{user interface}, functional process logic ("business rules")
	and data storage and access are developed and maintained as
	independent {modules}, most often on separate {platforms}.

	Apart from the usual advantages of modular software with well
	defined interfaces, the three-tier architecture is intended to
	allow any of the three tiers to be upgraded or replaced
	independently as requirements or technology change.  For
	example, an upgrade of desktop {operating system} from
	{Microsoft Windows} to {Unix} would only affect the {user
	interface} code.

	Typically, the user interface runs on a desktop {PC} or
	{workstation} and uses a standard {graphical user interface},
	functional process logic may consist of one or more separate
	modules running on a {workstation} or application {server},
	and an {RDBMS} on a database server or {mainframe} contains
	the data storage logic.  The middle tier may be multi-tiered
	itself (in which case the overall architecture is called an
	"n-tier architecture").

	(1998-05-13)

throughput

	1. The rate at which a processor can work expressed in
	instructions per second or jobs per hour or some other unit of
	performance.

	2. <communications> {data transfer rate}.

	(2001-05-22)

thud

	1. Yet another {metasyntactic variable} (see {foo}).  It is
	reported that at {CMU} from the mid-1970s the canonical series
	of these was "foo", "bar", "thud", "blat".

	2. Rare term for the hash character, "#" (ASCII 35).  See
	{ASCII} for other synonyms.

	[{Jargon File}]

Thumb

	<processor> An extension to the {Advanced RISC Machine}
	architecture, announced on 06 March 1995 by {Advanced RISC
	Machines} Ltd.  By identifying the critical subset of the ARM
	{instruction set} and encoding it into 16 bits, ARM has
	succeeded in reducing typical program size by 30-40% from
	ARM's already excellent code density.  Since this Thumb
	instruction set uses less memory for program storage, cost is
	further reduced.

	All Thumb-aware {processor cores} combine the capability to
	execute both the 32-bit ARM and the 16-bit Thumb instruction
	sets.  Careful design of the Thumb instructions allow them to
	be decompressed into full ARM instructions transparently
	during normal instruction decoding without any performance
	penalty.  This differs from other 32-bit processors, like the
	{Intel 486SX}, with a 16-bit data bus, which require two
	16-bit memory accesses to execute every 32-bit instruction and
	so halve performance.

	The patented Thumb decompressor has been carefully designed
	with only a small amount of circuitry additional to the
	existing instruction decoder, so chip size and thus cost do
	not significantly increase.  Designers can easily interleave
	fast ARM instructions (for performance critical parts of a
	program) with compact Thumb code to save memory.

	(1995-03-14)

thumb

	<jargon> The slider or "bubble" on a window system
	{scrollbar}.  So called because moving it allows you to browse
	through the contents of a text window in a way analogous to
	thumbing through a book.

	[{Jargon File}]

	(1995-03-14)

thumbnail

	<file format, graphics> (From "thumbnail sketch") A file
	format used by {Graphics Workshop} for {Microsoft Windows}.
	{Filename extension}: ".thn".

	[What's in the files?]

	(1996-05-28)

Thunderbird

	<messaging, open source> A complete {free}, {open-source}
	{e-mail client} from the {Mozilla Foundation} and therefore a
	true code descendent of the e-mail code in {Netscape
	Navigator}.  The first non-{beta release} was in late 2004.
	The {Firefox} web browser is from the same source.

	{Thunderbird Home
	(http://mozilla.org/products/thunderbird)}.

	(2005-01-26)

thunk

	<programming> /thuhnk/ 1. "A piece of coding which provides an
	address", according to P. Z. Ingerman, who invented thunks in
	1961 as a way of binding {actual parameters} to their formal
	definitions in {ALGOL 60} {procedure} calls.  If a procedure
	is called with an expression in the place of a {formal
	parameter}, the compiler generates a thunk which computes the
	expression and leaves the address of the result in some
	standard location.

	2. The term was later generalised to mean an expression,
	frozen together with its {environment} (variable values), for
	later evaluation if and when needed (similar to a
	"{closure}").  The process of unfreezing these thunks is
	called "forcing".

	3. A {stubroutine}, in an {overlay} programming environment,
	that loads and jumps to the correct overlay.

	Compare {trampoline}.

	There are a couple of onomatopoeic myths circulating about the
	origin of this term.  The most common is that it is the sound
	made by data hitting the {stack}; another holds that the sound
	is that of the data hitting an {accumulator}.  Yet another
	suggests that it is the sound of the expression being unfrozen
	at argument-evaluation time.  In fact, according to the
	inventors, it was coined after they realised (in the wee hours
	after hours of discussion) that the type of an argument in
	{ALGOL 60} could be figured out in advance with a little
	{compile-time} thought, simplifying the evaluation machinery.
	In other words, it had "already been thought of"; thus it was
	christened a "thunk", which is "the past tense of "think" at
	two in the morning".

	4. ({Microsoft Windows} programming) {universal thunk},
	{generic thunk}, {flat thunk}.

	[{Jargon File}]

	(1997-10-11)

TIA

	1. <chat> Thanks in advance.

	2. <body> {Telecommunications Industry Association}.

	3. <software> The {Internet Adapter}.

	4. <graphics, hardware> {Television Interface Adaptor}.

	(1999-12-06)

tick

	1. A {jiffy} (sense 1).  2. In simulations, the discrete unit
	of time that passes between iterations of the simulation
	mechanism.  In AI applications, this amount of time is often
	left unspecified, since the only constraint of interest is the
	ordering of events.  This sort of AI simulation is often
	pejoratively referred to as "tick-tick-tick" simulation,
	especially when the issue of simultaneity of events with long,
	independent chains of causes is {handwave}d.  3. In the FORTH
	language, a single quote character.

	[{Jargon File}]

TickIT

	A software industry quality assessment scheme.

Tickle

	<text, tool> A {text editor}, file translator and {TCL}
	{interpreter} for the {Macintosh}.

	Version 5.0v1.  The text editor breaks the 32K limit (like
	{MPW}).

	The file translation utilities support {drag and drop}
	handling via tcl scripts of {BinHex}, {MacBinary}, {Apple
	Computer} Single/Double, {StuffIt} (with engine), {Unix}
	{compress}, {Unix} {tar} and {UUencode} files as well as text
	translation.

	Tickle implements tcl 7.0 with {tclX} extensions and
	{Macintosh} equivalents of {Unix}'s {ls}, {pwd}, {cd}
	commands.  It provides Macintosh access to {Resource Manager},
	{Communications Toolbox}, {OSA} Components (and
	{AppleScript}), {Editions} (publish and subscribe) and {Apple
	Events} (including AEBuild and AEPrint).  {OSA Script} support
	allows programming of any OSA scripting component within
	Tickle interpreter windows.  It provides the OSAtcl and OSAJ
	{J}/{APL} extensions and creates "Ticklets" which are small
	{application programs} that carry only the tcl script and use
	code in the OSAtcl component to drive an application that
	allows {drag and drop} with tcl scripts.  Tickle is scriptable
	and recordable.

	{(ftp://ftp.msen.com/pub/vendor/ice/tickle/Tickle5.0v1.hqx)}.

	E-mail: <time@ice.com>.

	(1994-10-12)

tickle a bug

	To cause a normally hidden bug to manifest itself through some
	known series of inputs or operations.  "You can tickle the bug
	in the Paradise VGA card's highlight handling by trying to set
	bright yellow reverse video."

	[{Jargon File}]

tick-list features

	({Acorn Computers}) Features in software or hardware that
	customers insist on but never use (calculators in desktop TSRs
	and that sort of thing).  The American equivalent would be
	"checklist features", but this jargon sense of the phrase has
	not been reported.

	(1995-01-06)

TIFF

	{Tagged Image File Format}

tiger team

	(US military jargon) 1. Originally, a team whose purpose is to
	penetrate security, and thus test security measures.  These
	people are paid professionals who do hacker-type tricks,
	e.g. leave cardboard signs saying "bomb" in critical defence
	installations, hand-lettered notes saying "Your codebooks have
	been stolen" (they usually haven't been) inside safes, etc.
	After a successful penetration, some high-ranking security
	type shows up the next morning for a "security review" and
	finds the sign, note, etc. and all hell breaks loose.  Serious
	successes of tiger teams sometimes lead to early retirement
	for base commanders and security officers (see the {patch}
	entry for an example).

	2. Recently, and more generally, any official inspection team
	or special {firefighting} group called in to look at a
	problem.

	A subset of tiger teams are professional {crackers}, testing
	the security of military computer installations by attempting
	remote attacks via networks or supposedly "secure"
	communication channels.  Some of their escapades, if
	declassified, would probably rank among the greatest hacks of
	all times.  The term has been adopted in commercial
	computer-security circles in this more specific sense.

	[{Jargon File}]

tight loop

	<programming> A {loop} of code that executes without releasing
	any resources to other programs or the {operating system}.

	Consider the following pointless {BASIC} loop that counts
	upward indefinitely

	 10 i = i + 1
	 20 GOTO 10

	Run on a single-user system such as {MS-DOS} this will not
	cause any problems.  Run on a {cooperative multitasking}
	operating system such as {Windows 3}, the system would appear
	to freeze.

	A {pre-emptive multitasking} operating system such as
	{UNIX} or {Windows NT} would "steal" cycles away from
	the program and continue to run other programs.

	See also {busy-wait} and {multitasking}.

	(1999-05-06)

tilde

	<character> "~" {ASCII} character 126.

	Common names are: {ITU-T}: tilde; squiggle; {twiddle}; not.
	Rare: approx; wiggle; {swung dash}; enyay; {INTERCAL}: sqiggle
	(sic).

	Used as {C}'s prefix {bitwise negation} {operator}; and in
	{Unix} {csh}, {GNU Emacs}, and elsewhere, to stand for the
	current user's {home directory}, or, when prefixed to a {login
	name}, for the given user's home directory.

	The "swung dash" or "approximation" sign is not quite the same
	as {tilde} in typeset material but the ASCII tilde serves for
	both (compare {angle brackets}).

	[Has anyone else heard this called "tidal" (as in wave)?]

	(1996-10-18)

TILE Forth

	<language> A {Forth} {interpreter} in {C} for {Unix} by Mikael
	Patel <mip@sectra.se>.  TILE Forth comes with many Forth
	libraries.  It conforms to the {Forth83} {standard} and is
	distributed under {GPL}.

	Latest version: 2.1, as of 1991-11-13.

	Availalbe via {FTP} from a {GNU archive site}.

	(1991-11-13)

Tim Berners-Lee

	<person> The man who invented the {World-Wide Web} while
	working at the Center for European Particle Research (CERN).
	Now Director of the {World-Wide Web Consortium}.

	Tim Berners-Lee graduated from the Queen's College at Oxford
	University, England, 1976.  Whilst there he built his first
	computer with a soldering iron, {TTL} gates, an {M6800}
	processor and an old television.

	He then went on to work for {Plessey Telecommunications}, and
	D.G. Nash Ltd (where he wrote software for intelligent
	printers and a {multi-tasking} {operating system}), before
	joining CERN, where he designed a program called 'Enquire',
	which was never published, but formed the conceptual basis for
	today's {World-Wide Web}.

	In 1984, he took up a fellowship at CERN, and in 1989, he
	wrote the first {World-Wide Web} {server}, "{httpd}", and the
	first client, "WorldWideWeb" a {hypertext} browser/editor
	which ran under {NEXTSTEP}.  The program "WorldWideWeb" was
	first made available within CERN in December, and on the
	{Internet} as a whole in the summer of 1991.

	In 1994, Tim joined the {Laboratory for Computer Science}
	(LCS) at the {Massachusetts Institute of Technology} (MIT).
	In 1999, he became the first holder of the {3Com} Founders
	chair.  He is also the author of "Weaving the Web", on the
	past present and future of the Web.

	In 2001, Tim was made a fellow of The Royal Society.

	Tim is married to Nancy Carlson. They have two children, born
	1991 and 1994.

	{(http://w3.org/People/Berners-Lee/Longer.html)}.

	(2001-06-17)

time bomb

	<software, security> A subspecies of {logic bomb} that is
	triggered by reaching some preset time, either once or
	periodically.  There are numerous legends about time bombs set
	up by programmers in their employers' machines, to go off if
	the programmer is fired or laid off and is not present to
	perform the appropriate suppressing action periodically.

	Interestingly, the only such incident for which we have been
	pointed to documentary evidence took place in the Soviet Union
	in 1986!  A disgruntled programmer at the Volga Automobile
	Plant (where the Fiat clones called Ladas were manufactured)
	planted a time bomb which, a week after he'd left on vacation,
	stopped the entire main assembly line for a day.  The case
	attracted lots of attention in the Soviet Union because it was
	the first cracking case to make it to court there.  The
	perpetrator got 3 years in jail.

	[{Jargon File}]

	(2001-09-15)

time complexity

	<complexity> The way in which the number of steps required by
	an {algorithm} varies with the size of the problem it is
	solving.  Time complexity is normally expressed as an order of
	magnitude, e.g. O(N^2) means that if the size of the problem
	(N) doubles then the algorithm will take four times as many
	steps to complete.

	See also {computational complexity}, {space complexity}.

	(1996-05-08)

Time Complex Simulator

	<simulation> (Tcsim) {Complex arithmetic} version of {Tsim}.

	Contact: {ZOLA Technologies}.

	(1996-01-18)

time division multiple access

	{time division multiplexing}

time division multiplexing

	<communications> (TDM) A type of {multiplexing} where two or
	more channels of information are transmitted over the same
	link by allocating a different time interval ("slot" or
	"slice") for the transmission of each channel.  I.e. the
	channels take turns to use the link.  Some kind of periodic
	synchronising signal or distinguishing identifier is usually
	required so that the receiver can tell which channel is which.

	TDM becomes inefficient when traffic is intermittent because
	the time slot is still allocated even when the channel has no
	data to transmit.  {Statistical time division multiplexing}
	was developed to overcome this problem.

	Compare {wavelength division multiplexing}, {frequency division
	multiplexing}, {code division multiplexing}.

	(2001-06-27)

Time Domain Reflectometer

	<hardware, networking> (TDR) An electronic device for
	detecting and locating short- or open-circuits in an
	{Ethernet} cable.  TDRs can also measure how the {characteristic
	impedance} of a line varies along its length.

	(1995-12-28)

timeout

	A period of time after which an error condition is raised if
	some event has not occured.  A common example is sending a
	message.  If the receiver does not acknowledge the message
	within some preset timeout period, a transmission error is
	assumed to have occured.

	(1995-11-09)

time quantum

	{time slice}

time-sharing

	<operating system> (Or "timesharing") An {operating system}
	feature allowing several users to run several tasks
	concurrently on one processor, or in parallel on many
	processors, usually providing each user with his own terminal
	for input and output.  {time-sharing} is {multi-user}
	{multitasking}.

	(2009-11-23)

Time Sharing Option

	<operating system> (TSO) System software from {IBM} that
	provides {time-sharing} on an IBM {mainframe} running in an
	{MVS} environment.

	(2003-08-15)

time shifting

	<programming> A technique used to work around problems due to
	the {Year 2000} and the "millennium bug".  Time shifting
	involves translating date fields in a database back by a fixed
	number of years to avoid year 2000 problems with the {database
	management system}.

	Typically dates are shifted back 28 years so that the occurrence
	of leap years and days of the week match with the actual year.

	(2003-08-15)

Time Simulator

	<simulation> (Tsim) A {stack}-based {simulation} language.

	Contact: {ZOLA Technologies}.

	(1999-10-04)

time sink

	(By analogy with "heat sink" or "current sink") A project that
	consumes unbounded amounts of time.

	[{Jargon File}]

	(1995-02-07)

time slice

	<operating system> (Or "time quantum", "quantum") The period
	of time for which a process is allowed to run uninterrupted in
	a {pre-emptive multitasking} {operating system}.

	The {scheduler} is run once every time slice to choose the
	next process to run.  If the time slice is too short then the
	scheduler will consume too much processing time but if it is
	too long then processes may not be able to respond to external
	events quickly enough.

	(1998-11-06)

times-or-divided-by

	<jargon> (By analogy with "plus-or-minus") A term occasionally
	used when describing the uncertainty factor associated with a
	estimate, for either humorous or brutally honest effect.

	For example, a software project usually has a scheduling
	uncertainty factor of at least two.

	[{Jargon File}]

	(2009-05-29)

time T

	/ti:m T/ An unspecified but usually well-understood time,
	often used in conjunction with a later time T+1.  "We'll meet
	on campus at time T or at Louie's at time T+1" means, in the
	context of going out for dinner: "We can meet on campus and go
	to Louie's, or we can meet at Louie's itself a bit later."
	(Louie's was a Chinese restaurant in Palo Alto that was a
	favourite with hackers.)  Had the number 30 been used instead
	of the number 1, it would have implied that the travel time
	from campus to Louie's is 30 minutes; whatever time T is (and
	that hasn't been decided on yet), you can meet half an hour
	later at Louie's than you could on campus and end up eating at
	the same time.

	See also {since time T equals minus infinity}.

	[{Jargon File}]

	(1994-12-12)

Time to Live

	(TTL) A field in the {Internet Protocol} header which
	indicates how many more {hops} this packet should be allowed
	to make before being discarded or returned.

	(1994-12-12)

time zone

	One of approximately 24 longitudinal divisions of the globe,
	nominally 15 degrees wide, in which clocks show the same time.
	Some zones follow the boundaries of states or territories,
	others differ from neighbouring zones by more or less than one
	hour.

	Computers can be programmed to take into account the time zone
	each user is working in, which is not necessarily the same as
	the zone the computer is in.

	See also {TZ}.

	(1997-07-20)

TINC

	{There Is No Cabal}

Tinman

	<language> The third of the series of DoD requirements that
	led to {Ada}.  Written by HOLWG, DoD, Jan 1976.

	See {Strawman}, {Woodenman}, {Ironman}, {Steelman}.

	(1976-01-01)

tinman+

	Macro language for Apple II?  Published in DDJ?

TINT

	Interpreted version of {JOVIAL}.

	[Sammet 1969, p. 528].

tint

	{hue}

Tiny

	1. A language which provides {concurrency} through
	{message-passing} to named message {queues}.

	2. A tool written by Michael Wolfe <mwolfe@cse.ogi.edu> at
	{Oregon Graduate Institute of Science & Technology} for
	examining {array} data dependence {algorithms} and {program
	transformations} for scientific computations.

	{Extended Tiny} was used to implement the {Omega test}.
	Michael Wolfe has also made extensions to his version of tiny.

	(1994-12-12)

Tiny BASIC

	<language> A dialect of {BASIC} developed by Dr. Wang [Wong?]
	in the late 1970s.  Tiny BASIC was 2K bytes in size and was
	loaded from {paper tape}.  It ran on almost any {Intel 8080}
	or {Zilog Z80} {microprocessor} for which the user could
	provide the necessary I/O driver software.

	Tiny BASIC was distributed as [the first ever?] {freeware}.
	The program listing contained the following phrases "All
	Wrongs reserved" and "{CopyLeft}", he obviously wasn't
	interested in money.

	See also {Tiny Basic Interpreter Language}.

	[More info?]

	(1997-09-12)

Tiny Basic Interpreter Language

	<language> (TBIL) The inner {interpreter} of Tom Pittman's set
	of {Tiny Basics} in Dr Dobb's Journal.

	(1997-09-12)

Tiny Clos

	A core part of {Common Lisp Object System} (CLOS) ported to
	{Scheme} and rebuilt using a MOP ({Metaobject Protocol}).
	This should be interesting to those who want to use MOPs
	without using a full {Common Lisp} or {Dylan}.

	The first release works with {MIT Scheme} 11.74.

	{(ftp://parcftp.xerox.com/pub/mops/)}.  E-mail: Gregor
	Kiczales <gregor@parc.xerox.com>.  Mailing list: mops
	(administered by <gregor@parc.xerox.com>).

	(1992-12-14)

TIP

	1. {Texas Instruments Pascal}.

	2. A {Unix} program for interactive communication via {serial
	lines}.

	{Unix manual page}: tip(1).

TIPL

	1.  Teach IPL.  An interpretive {IPL} teaching system.

	[Sammet 1969, p. 393].

	2.  A dialect of {IGL}.

tip of the ice-cube

	[IBM] The visible part of something small and insignificant.
	Used as an ironic comment in situations where "tip of the
	iceberg" might be appropriate if the subject were at all
	important.

	[{Jargon File}]

tired iron

	[IBM] Hardware that is perfectly functional but far enough
	behind the state of the art to have been superseded by new
	products, presumably with sufficient improvement in
	bang-per-buck that the old stuff is starting to look a bit
	like a {dinosaur}.

tits on a keyboard

	<jargon> Small bumps on certain keycaps to help touch-typists
	find the home keys (ASDF and JKL;) without looking.  They are
	found on the "F" and "J" of a {QWERTY} and the "5" of a
	{numeric keypad}.  The {Macintosh}, perverse as usual, has, or
	had, them on the "D" and "K" keys.

	This term is based on the vernacular American expression "as
	useful as tits on a boar" (or boar-hog, bull, bullfrog, or
	many other variants), meaning "not useful".

	[{Jargon File}]

	(1998-02-25)

tj

	<networking> The {country code} for Tajikistan.

	(1999-01-27)

Tk

	<programming, graphics> A {GUI} library, generally used with
	{TCL} by {John Ousterhout}, but also available from within {C}
	or {Perl}.  Tk is available for {X Window System}, {Microsoft
	Windows} and {Macintosh}.  Tk looks very similar to {Motif}.

	Version 3.5.

	{(ftp://ftp.cs.berkeley.edu/ucb/tcl/)}.

	(1995-11-09)

tk

	<networking> The {country code} for Tokelau.

	(1999-01-27)

TK-90X

	<computer> A Brazilian {clone}, manufactured by {Micro
	Digital}, of the British {Sinclair Research} {ZX Spectrum}
	{8-bit} {microcomputer}.  It differed from the standard
	Spectrum by adding an {Interface 2}-compatible {joystick}
	{interface}, and extra {BASIC} commands to aid {programming}
	and {graphics}-editing.  Because of these differences, it was
	slightly incompatible with the standard Spectrum.

	A later model, the TK-95, which boasted an improved keyboard
	(similar to the {Commodore 64}'s) and a more compatible {ROM},
	was little more than a {Timex} {TC2048} (another Spectrum
	clone) in disguise.

	{comp.sys.sinclair FAQ
	(http://kendalls.demon.co.uk/cssfaq/)}.

	["comp.sys.sinclair FAQ", D Burke M Fayzullin P Kendall et al,
	pub. Philip Kendall 1998]

	(1998-11-09)

TK-95

	{TK-90X}

T. Kohonen

	<person> A researcher at the {University of Helsinki} who has
	been studying {neural networks} for many years with the idea
	of modelling as closely as possible the behaviour of
	biological systems.  His name is commonly associated with a
	particular kind of neural network in which there are only two
	kinds of {neurons} (see {McCulloch-Pitts}), input and others.
	All the input neurons are connected to all others and the
	others are connected only to their other nearest neighbors.
	The training {algorithm} is a relatively simple one based on
	the geometric layout of the neurons, and makes use of
	{simulated annealing}.

	(1994-10-19)

TK!Solver

	Software Arts 1983.  Numerical constraint-oriented language.
	"The TK!Solver Book", M. Konopasek et al, McGraw-Hill 1984.

TL0

	{Thread Language Zero}

TL1

	Transaction Language 1.

	A subset of {ITU-T}'s {MML} from {Bellcore}, with simpler
	syntax.  TL1 is similar to {USL}.  It is used in
	communications between telephone operating systems and remote
	network test equipment.

	[OTGR, TR-TSY-000439, section 12, Bellcore].

	(1994-12-14)

TLA

	{Three-Letter Acronym}

TLAs

	<jargon> As of 2003-11-10, {this dictionary} gave expansions
	for 1218 out of the 26^3 = 17576 possible {three-letter
	acronyms}.  Here's the {grep} command used:

		egrep '^[A-Z][A-Z][A-Z]$' Dictionary | sort -u

	Here they are:

	{AAC}, {AAL}, {AAP}, {ABC}, {ABI}, {ABM}, {ABP}, {ABR}, {ACA},
	{ACE}, {ACF}, {ACK}, {ACL}, {ACM}, {ACP}, {ACT}, {ADC}, {ADL},
	{ADM}, {ADO}, {ADR}, {ADS}, {ADT}, {AED}, {AEP}, {AES}, {AFJ},
	{AFK}, {AFP}, {AFS}, {AGL}, {AGP}, {AIA}, {AID}, {AIR}, {AIT},
	{AIX}, {AKC}, {AKL}, {ALC}, {ALF}, {ALM}, {ALP}, {ALU}, {AMD},
	{AMI}, {AML}, {AMO}, {AMP}, {AMS}, {AND}, {ANI}, {ANL}, {ANR},
	{ANS}, {ANU}, {AOL}, {AOP}, {AOS}, {APA}, {APC}, {APE}, {API},
	{APL}, {APM}, {APT}, {AQL}, {ARC}, {ARL}, {ARM}, {ARP}, {ARQ},
	{ART}, {ASA}, {ASE}, {ASF}, {ASK}, {ASL}, {ASM}, {ASN}, {ASP},
	{ASR}, {AST}, {ATA}, {ATK}, {ATM}, {ATS}, {ATX}, {AUI}, {AUP},
	{AVI}, {AVS}, {AWE}, {AWG}, {AWT}, {AYT}, {BAD}, {BAL}, {BAP},
	{BBC}, {BBL}, {BBS}, {BCC}, {BCD}, {BCL}, {BCS}, {BDC}, {BDL},
	{BEA}, {BEG}, {BEL}, {BER}, {BFI}, {BGA}, {BGP}, {BIP}, {BLT},
	{BMF}, {BMP}, {BNC}, {BNF}, {BOF}, {BOS}, {BPI}, {BPR}, {BPS},
	{BQS}, {BRB}, {BRH}, {BRI}, {BRS}, {BSA}, {BSD}, {BSI}, {BSL},
	{BSS}, {BST}, {BTB}, {BTS}, {BTW}, {BWQ}, {CAD}, {CAE}, {CAF},
	{CAI}, {CAL}, {CAM}, {CAN}, {CAP}, {CAS}, {CAT}, {CAV}, {CBD},
	{CBN}, {CBR}, {CBT}, {CBV}, {CCD}, {CCL}, {CCP}, {CCR}, {CCS},
	{CDA}, {CDC}, {CDE}, {CDF}, {CDL}, {CDM}, {CDS}, {CEN}, {CER},
	{CFD}, {CFP}, {CGA}, {CGI}, {CGM}, {CHI}, {CID}, {CIF}, {CIL},
	{CIM}, {CIR}, {CIS}, {CIX}, {CJK}, {CLI}, {CLM}, {CLP}, {CLR},
	{CLU}, {CLV}, {CLX}, {CMA}, {CMC}, {CML}, {CMM}, {CMP}, {CMS},
	{CMU}, {CMZ}, {CNC}, {CNI}, {CNN}, {COM}, {COS}, {CPE}, {CPI},
	{CPL}, {CPM}, {CPS}, {CPU}, {CRC}, {CRL}, {CRM}, {CRT}, {CSG},
	{CSL}, {CSM}, {CSO}, {CSP}, {CSR}, {CSS}, {CSU}, {CSV}, {CTC},
	{CTI}, {CTL}, {CTS}, {CTY}, {CUA}, {CUL}, {CUT}, {CVS}, {CWI},
	{DAA}, {DAC}, {DAG}, {DAS}, {DAT}, {DAU}, {DBA}, {DBC}, {DBH},
	{DCA}, {DCC}, {DCE}, {DCG}, {DCI}, {DCL}, {DCP}, {DCS}, {DCT},
	{DDB}, {DDE}, {DDL}, {DDM}, {DDN}, {DDO}, {DDP}, {DDS}, {DDT},
	{DEA}, {DEC}, {DED}, {DEK}, {DER}, {DES}, {DEX}, {DFA}, {DFC},
	{DFD}, {DFS}, {DFT}, {DGL}, {DIB}, {DID}, {DIL}, {DIM}, {DIN},
	{DIP}, {DLC}, {DLE}, {DLG}, {DLL}, {DLM}, {DLP}, {DLT}, {DMA},
	{DME}, {DMI}, {DML}, {DMM}, {DMZ}, {DNF}, {DNS}, {DOA}, {DOE},
	{DOF}, {DOL}, {DOM}, {DOS}, {DPB}, {DPL}, {DPN}, {DPP}, {DPS},
	{DRM}, {DSA}, {DSE}, {DSI}, {DSL}, {DSM}, {DSN}, {DSP}, {DSR},
	{DSS}, {DST}, {DSU}, {DSW}, {DTD}, {DTE}, {DTP}, {DTR}, {DTS},
	{DUA}, {DVD}, {DVI}, {DXF}, {EAF}, {EAG}, {EAI}, {ECC}, {ECL},
	{ECM}, {ECP}, {EDA}, {EDF}, {EDI}, {EDL}, {EDM}, {EDP}, {EDS},
	{EER}, {EFF}, {EFL}, {EFT}, {EGA}, {EGP}, {EIA}, {EJB}, {ELF},
	{ELI}, {ELP}, {EMA}, {EMC}, {EML}, {EMM}, {EMS}, {EMX}, {ENQ},
	{ENS}, {EOF}, {EOL}, {EOT}, {EOU}, {EPL}, {EPP}, {EPS}, {ERA},
	{ERC}, {ERD}, {ERP}, {ESA}, {ESC}, {ESD}, {ESF}, {ESI}, {ESL},
	{ESP}, {ESR}, {ETB}, {ETC}, {ETM}, {ETX}, {EVE}, {EXE}, {FAC},
	{FAD}, {FAP}, {FAQ}, {FAT}, {FCB}, {FCP}, {FCS}, {FDC}, {FDT},
	{FEA}, {FEC}, {FEL}, {FFP}, {FFT}, {FGL}, {FHS}, {FIR}, {FIX},
	{FMQ}, {FMS}, {FMV}, {FNC}, {FOD}, {FPA}, {FPM}, {FPU}, {FQL},
	{FRL}, {FSB}, {FSF}, {FSK}, {FSL}, {FSM}, {FSP}, {FTP}, {FTX},
	{FUD}, {FYA}, {FYI}, {GAL}, {GAN}, {GAP}, {GAT}, {GCC}, {GCL},
	{GCR}, {GCT}, {GDB}, {GDI}, {GEA}, {GEI}, {GEM}, {GFR}, {GHC},
	{GIF}, {GIN}, {GIP}, {GIS}, {GKS}, {GLB}, {GLS}, {GLU}, {GMD},
	{GMT}, {GNN}, {GNU}, {GOL}, {GOM}, {GPF}, {GPL}, {GPM}, {GPS},
	{GPV}, {GPX}, {GRE}, {GRG}, {GSI}, {GSL}, {GSM}, {GSS}, {GTL},
	{GUI}, {GVL}, {GWM}, {HAL}, {HCF}, {HCI}, {HCS}, {HDA}, {HDC},
	{HDD}, {HDF}, {HDL}, {HDM}, {HEP}, {HFC}, {HID}, {HLL}, {HMA},
	{HMP}, {HOL}, {HPF}, {HPL}, {HPR}, {HSB}, {HSC}, {HSM}, {HSV},
	{HTH}, {HVD}, {IAB}, {IAD}, {IAL}, {IAM}, {IAP}, {IAR}, {IAS},
	{IAW}, {IBM}, {ICE}, {ICI}, {ICL}, {ICQ}, {ICT}, {ICW}, {IDD},
	{IDE}, {IDF}, {IDL}, {IEC}, {IEF}, {IEN}, {IFC}, {IFF}, {IFP},
	{IFS}, {IFX}, {IGC}, {IGL}, {IGP}, {IGS}, {IGU}, {IHS}, {IHV},
	{IIL}, {IIR}, {IIS}, {IIT}, {ILF}, {IMD}, {IML}, {IMO}, {IMP},
	{IMR}, {IMS}, {IOI}, {IOS}, {IOW}, {IPA}, {IPC}, {IPE}, {IPL},
	{IPS}, {IPT}, {IPX}, {IQL}, {IRC}, {IRL}, {IRM}, {IRQ}, {ISA},
	{ISE}, {ISF}, {ISL}, {ISO}, {ISP}, {IST}, {ISV}, {ITP}, {ITS},
	{ITU}, {IVR}, {IVY}, {IXC}, {IXO}, {JAD}, {JAZ}, {JCL}, {JDK},
	{JES}, {JIT}, {JMS}, {JNI}, {JPL}, {JRE}, {JRL}, {JRN}, {JSA},
	{JSP}, {JTB}, {JTC}, {JTS}, {JVM}, {KAP}, {KBS}, {KCL}, {KEE},
	{KFX}, {KIS}, {KLB}, {KMS}, {KNI}, {KRC}, {KRL}, {KRS}, {KSL},
	{KSR}, {KTH}, {LAN}, {LAP}, {LAT}, {LAU}, {LAX}, {LBA}, {LBE},
	{LBL}, {LBX}, {LCC}, {LCD}, {LCF}, {LCL}, {LCP}, {LCS}, {LDB},
	{LDL}, {LDP}, {LDT}, {LEC}, {LED}, {LEO}, {LER}, {LGN}, {LIF},
	{LIS}, {LLC}, {LLP}, {LML}, {LNF}, {LOC}, {LOL}, {LOM}, {LOP},
	{LPC}, {LPF}, {LPG}, {LPI}, {LPL}, {LPS}, {LPT}, {LRC}, {LRU},
	{LSA}, {LSB}, {LSE}, {LSL}, {LSP}, {LSR}, {LTL}, {LTR}, {LUG},
	{LUN}, {LVD}, {LWP}, {MAC}, {MAD}, {MAL}, {MAN}, {MAO}, {MAP},
	{MAS}, {MAU}, {MBS}, {MCA}, {MCC}, {MCI}, {MCL}, {MCP}, {MCS},
	{MDF}, {MDI}, {MDL}, {MFC}, {MFE}, {MFM}, {MHS}, {MIB}, {MIF},
	{MIG}, {MII}, {MIS}, {MIT}, {MIX}, {MJS}, {MLL}, {MMI}, {MML},
	{MMU}, {MMX}, {MNP}, {MOO}, {MOS}, {MPC}, {MPG}, {MPI}, {MPL},
	{MPP}, {MPV}, {MPX}, {MQG}, {MRI}, {MRP}, {MRS}, {MSB}, {MSM},
	{MSN}, {MSS}, {MSX}, {MTA}, {MTS}, {MTU}, {MUA}, {MUD}, {MUP},
	{MVC}, {MVS}, {MXI}, {NAG}, {NAK}, {NAS}, {NAT}, {NAU}, {NBS},
	{NBT}, {NCD}, {NCP}, {NCS}, {NDL}, {NDS}, {NEC}, {NFA}, {NFS},
	{NFT}, {NGL}, {NIC}, {NIH}, {NII}, {NIL}, {NIS}, {NLM}, {NLP},
	{NLS}, {NLX}, {NMI}, {NMU}, {NNI}, {NOC}, {NOL}, {NOR}, {NOS},
	{NOT}, {NPC}, {NPL}, {NQS}, {NRZ}, {NSE}, {NSF}, {NSI}, {NSS},
	{NTP}, {NTU}, {NVS}, {OAP}, {OBE}, {OBJ}, {OCL}, {OCP}, {OCR},
	{OCS}, {OCX}, {ODA}, {ODC}, {ODI}, {ODP}, {ODT}, {OEM}, {OIC},
	{OID}, {OIL}, {OLC}, {OLE}, {OMA}, {OMF}, {OMG}, {OMR}, {OMS},
	{OMT}, {ONC}, {OOA}, {OOD}, {OOF}, {OOP}, {OPC}, {OPS}, {ORB},
	{ORM}, {OSA}, {OSD}, {OSE}, {OSF}, {OSI}, {OSP}, {OTI}, {OTP},
	{OTT}, {OWL}, {PAD}, {PAL}, {PAM}, {PAP}, {PAT}, {PAW}, {PBD},
	{PBM}, {PBX}, {PCA}, {PCB}, {PCF}, {PCI}, {PCL}, {PCM}, {PCN},
	{PCS}, {PCU}, {PDA}, {PDC}, {PDF}, {PDH}, {PDL}, {PDM}, {PDP},
	{PDS}, {PDU}, {PEM}, {PER}, {PEX}, {PFE}, {PFL}, {PFP}, {PGA},
	{PGP}, {PIC}, {PID}, {PIE}, {PIL}, {PIM}, {PIN}, {PIP}, {PIT},
	{PKE}, {PKI}, {PLC}, {PLD}, {PLL}, {PMC}, {PML}, {PNG}, {PNP},
	{POC}, {POE}, {POM}, {POP}, {POS}, {PPC}, {PPD}, {PPL}, {PPM},
	{PPN}, {PPP}, {PQS}, {PRA}, {PRI}, {PRL}, {PSA}, {PSD}, {PSF},
	{PSI}, {PSK}, {PSL}, {PSN}, {PSO}, {PTF}, {PTI}, {PTN}, {PTT},
	{PUB}, {PVC}, {PVM}, {QAM}, {QBE}, {QCA}, {QIC}, {QMW}, {QNX},
	{QPE}, {RAD}, {RAL}, {RAM}, {RAS}, {RCC}, {RCL}, {RCS}, {RDF},
	{RDI}, {RDL}, {RDS}, {REC}, {REM}, {REP}, {REX}, {RFC}, {RFE},
	{RFI}, {RFP}, {RFT}, {RGB}, {RIP}, {RJE}, {RKM}, {RLE}, {RLF},
	{RLL}, {RMI}, {RMS}, {RNF}, {ROM}, {RPC}, {RPG}, {RPI}, {RPL},
	{RPM}, {RPN}, {RPT}, {RRL}, {RRS}, {RSA}, {RSI}, {RSL}, {RSN},
	{RSS}, {RTF}, {RTI}, {RTL}, {RTM}, {RTP}, {RTS}, {RTT}, {RWP},
	{SAA}, {SAC}, {SAD}, {SAL}, {SAM}, {SAN}, {SAP}, {SAR}, {SAS},
	{SBD}, {SBM}, {SBR}, {SCA}, {SCC}, {SCI}, {SCL}, {SCM}, {SCO},
	{SDE}, {SDF}, {SDH}, {SDI}, {SDK}, {SDL}, {SDM}, {SDP}, {SDS},
	{SEA}, {SEC}, {SED}, {SEE}, {SEI}, {SEL}, {SEM}, {SEP}, {SET},
	{SEX}, {SFA}, {SFL}, {SGI}, {SHA}, {SIA}, {SIG}, {SIL}, {SIP},
	{SIR}, {SKU}, {SMB}, {SMG}, {SMI}, {SML}, {SMM}, {SMP}, {SMS},
	{SMT}, {SNA}, {SNI}, {SNR}, {SOH}, {SOJ}, {SOL}, {SOM}, {SOS},
	{SPC}, {SPD}, {SPE}, {SPG}, {SPI}, {SPL}, {SPM}, {SPS}, {SPX},
	{SQE}, {SQL}, {SQR}, {SRI}, {SRL}, {SRP}, {SSA}, {SSE}, {SSI},
	{SSL}, {SSR}, {STB}, {STD}, {STP}, {STX}, {SUB}, {SVC}, {SVG},
	{SVS}, {SYN}, {TAA}, {TAB}, {TAC}, {TAL}, {TAO}, {TAP}, {TBF},
	{TBK}, {TCB}, {TCM}, {TCO}, {TCP}, {TDD}, {TDF}, {TDI}, {TDM},
	{TDR}, {TEI}, {TET}, {TFT}, {TGA}, {TIA}, {TIP}, {TLA}, {TLB},
	{TLD}, {TLI}, {TLS}, {TMG}, {TNC}, {TNX}, {TOK}, {TOP}, {TOS},
	{TPA}, {TPF}, {TPL}, {TPO}, {TPS}, {TPU}, {TPX}, {TRO}, {TRS},
	{TSO}, {TSP}, {TSR}, {TSV}, {TTD}, {TTL}, {TTS}, {TUB}, {TUI},
	{TXL}, {UAN}, {UAW}, {UBD}, {UCB}, {UCS}, {UCX}, {UDF}, {UDP},
	{UFO}, {UIL}, {UIS}, {UKC}, {ULP}, {UMB}, {UML}, {UNC}, {UNI},
	{UPS}, {URC}, {URI}, {URL}, {URN}, {USB}, {USE}, {USL}, {USP},
	{USR}, {UTC}, {UTF}, {UTP}, {VAL}, {VAN}, {VAR}, {VAX}, {VBA},
	{VCL}, {VCR}, {VDL}, {VDM}, {VDT}, {VDU}, {VEE}, {VEL}, {VGA},
	{VGX}, {VHE}, {VHS}, {VIF}, {VIM}, {VLB}, {VLM}, {VME}, {VML},
	{VMS}, {VOS}, {VPL}, {VPN}, {VQF}, {VRC}, {VSE}, {VSF}, {VSP},
	{VSX}, {VTC}, {VTS}, {VTW}, {VUE}, {VUP}, {VXI}, {WAM}, {WAN},
	{WAP}, {WBS}, {WCL}, {WDM}, {WEB}, {WFL}, {WFW}, {WGL}, {WMA},
	{WMV}, {WOM}, {WPG}, {WPI}, {WRT}, {WSL}, {WTF}, {WTH}, {WWW},
	{XDL}, {XDR}, {XGA}, {XIE}, {XML}, {XMM}, {XMS}, {XNF}, {XNS},
	{XON}, {XPC}, {XPG}, {XPL}, {XRN}, {XSB}, {XSI}, {XSL}, {XTI},
	{XTP}, {XUI}, {XUL}, {XVT}, {XXX}, {YSM}, {ZAP}, {ZFC}, {ZIF},
	{ZIL}, {ZOG}, {ZUG}

	(2003-11-10)

TLB

	{Translation Look-aside Buffer}

TLD

	{top-level domain}

TLI

	{Transport Layer Interface}

TL/I

	<language> An intermediate language for {Turing Machines}.

	["Examples of Formal Semantics", D. Knuth in Symp on Semantics
	of Algorithmic Languages, E. Engeler ed, LNM 188, Springer
	1971, pp. 212-235].

	(1994-12-02)

T Lisp

	{T}

TLS

	{Transport Layer Security protocol}

TM

	1. {Turing Machine}.

	2. A formal {database specification language}.

	[{Jargon File}]

tm

	<networking> The {country code} for Turkmenistan.

	Heavily used for {vanity domains} because it looks
	like the abbreviation for "trademark".

	(1999-01-27)

(TM)

	(Trademark) An {ASCII} rendition of the trademark-superscript
	symbol, appended to phrases that the author feels should be
	recorded for posterity.

	It is sometimes used ironically as a form of protest against
	the recent spate of {software patents}, {algorithm} patents
	and "{look and feel}" lawsuits.

	[{Jargon File}]

	(1994-12-02)

TMDL

	{Target-Machine Description Language}

TMG

	TransMoGrifier.

	An early language for writing {recursive descent} compilers.
	It was {macro}ed from the {IBM 1604} to the {IBM 709} to the
	{IBM 7094} to the {GE-635}, where it was used by McIlroy and
	Morris to write the {EPL} compiler for {Multics}.

	["TMG - A Syntax-Directed Compiler", R.M. McClure, Proc ACM
	20th Natl Conf (1965)].

	[Sammet 1969, p.636].

	(1994-12-02)

TMRC

	/tmerk'/ The Tech Model Railroad Club at {MIT}, one of the
	wellsprings of {hacker} culture.  The 1959 "Dictionary of the
	TMRC Language" compiled by Peter Samson included several terms
	that became basics of the hackish vocabulary (see especially
	{foo}, {mung}, and {frob}).

	By 1962, TMRC's legendary layout was already a marvel of
	complexity (and has grown in the thirty years since; all the
	features described here are still present).  The control
	system alone featured about 1200 relays.  There were {scram
	switch}es located at numerous places around the room that
	could be thwacked if something undesirable was about to occur,
	such as a train going full-bore at an obstruction.  Another
	feature of the system was a digital clock on the dispatch
	board, which was itself something of a wonder in those bygone
	days before cheap LEDS and seven-segment displays.  When
	someone hit a scram switch the clock stopped and the display
	was replaced with the word "FOO"; at TMRC the scram switches
	are therefore called "foo switches".

	Steven Levy, in his book "Hackers", gives a stimulating
	account of those early years.  TMRC's Power and Signals group
	included most of the early {PDP-1} hackers and the people who
	later bacame the core of the {MIT} {AI Lab} staff.  This
	dictionary accordingly includes a number of entries from the
	TMRC dictionary (via the Hacker Jargon File).

	[{Jargon File}]

	(2008-06-30)

TMRCie

	/tmerk'ee/, (MIT) A denizen of {TMRC}.

TMS 9900

	<processor> One of the first true 16-bit {microprocessors},
	released by {Texas Instruments} in June 1976 (the first are
	probably {National Semiconductor} {IMP-16} or {AMD-2901} {bit
	slice processors} in 16-bit configuration).  It was designed
	as a single chip version of the {TI 990} {minicomputer}
	series, much like the {Intersil 6100} was a single chip
	{PDP-8}, and the {Fairchild 9440} and {Data General mN601}
	were both one chip versions of {Data General}'s {Nova}.
	Unlike the IMS 6100, however, the TMS 9900 had a mature, well
	thought out design.

	It had a 15-bit {address space} and two internal 16 bit
	{registers}.  One unique feature was that all user {registers}
	were actually kept in memory - this included {stack pointers}
	and the {program counter}.  A single workspace {register}
	pointed to the 16 {register set} in {RAM}, so when a
	subroutine was entered or an {interrupt} was processed, only
	the single workspace register had to be changed - unlike some
	{CPUs} which required dozens or more register saves before
	acknowledging a {context switch}.

	This was feasible at the time because {RAM} was often faster
	than the {CPUs}.  A few modern designs, such as the {INMOS}
	{transputer}, use this same design using {caches} or {rotating
	buffers}, for the same reason of faster {context switch}es.
	Other chips of the time, such as the {650x} series had a
	similar philosophy, using {index registers}, but the TMS 9900
	went the farthest in this direction.

	That wasn't the only positive feature of the chip.  It had
	good {interrupt} handling features and very good instruction
	set.  Serial I/O was available through address lines.  In
	typical comparisons with the {Intel 8086}, the TMS9900 had
	smaller and faster programs.  The only disadvantage was the
	small {address space} and need for fast {RAM}.

	Despite very poor support from Texas Instruments, the TMS 9900
	had the potential at one point to surpass the {Intel 8086} in
	popularity.

	(1994-11-30)

tn

	<networking> The {country code} for Tunisia.

	(1999-01-27)

tn3270

	A program, similar to {telnet}, used to connect to remote
	{IBM} {mainframe} {hosts}, many of which do not understand
	telnet.  The program emulates a {3270}-type terminal.

	For many tn3270 versions, the "clear screen" function is
	activated by typing Control-Z.  When logged on to an IBM host
	and "HOLDING" or "MORE..."  appears at the lower right corner
	of the screen, the "clear screen" function must be entered to
	display the next screen.  tn3270 emulations usually include
	{function key} definitions.

	(1994-11-03)

TNC

	<hardware> A threaded version of a {BNC}.

	(1996-12-21)

TNSTAAFL

	{TANSTAAFL}

TNX

	<chat> Thanks.  Also "TNX 1.0E6" or "{TNXE6}" - thanks a
	million.

	(1996-05-19)

TNXE6

	Thanks a million.  "E" is used in many programming languages
	to separate the mantissa and exponent of a {floating-point}
	constant so a number ending in "E6" means "times ten to the
	power six", i.e. times a million.

to

	<networking> The {country code} for Tonga.

	Heavily used for {vanity domains} because it looks like the
	English word "to".

	(1999-01-27)

to a first approximation

	1. When one is doing certain numerical computations, an
	approximate solution may be computed by any of several
	heuristic methods, then refined to a final value.  By using
	the starting point of a first approximation of the answer, one
	can write an algorithm that converges more quickly to the
	correct result.

	2. In jargon, a preface to any comment that indicates that the
	comment is only approximately true.  The remark "To a first
	approximation, I feel good" might indicate that deeper
	questioning would reveal that not all is perfect (e.g. a
	nagging cough still remains after an illness).

	[{Jargon File}]

toast

	<jargon> 1. Any completely inoperable system or component,
	especially one that has just crashed and burned: "Uh, oh ... I
	think the serial board is toast."

	2. To cause a system to crash accidentally, especially in a
	manner that requires manual rebooting.  "Rick just toasted the
	{firewall machine} again."

	Compare {fried}.

	(1995-05-01)

toaster

	<jargon> 1. The archetypal really stupid {application} for an
	{embedded} {microprocessor} controller; often used in comments
	that imply that a scheme is inappropriate technology (but see
	{elevator controller}).  "{DWIM} for an assembler?  That'd be
	as silly as running {Unix} on your toaster!"

	2. A very, very dumb computer. "You could run this program on
	any dumb toaster."

	See {bitty box}, {Get a real computer!}, {toy}, {beige
	toaster}.

	3. A {Macintosh}, especially the {Classic Mac}.  Some hold
	that this is implied by sense 2.

	4. A peripheral device.  "I bought my box without toasters,
	but since then I've added two boards and a second disk drive".

	This is not usually to be taken literally but, to show off the
	expansion capabilities of the {Risc PC}, {Acorn Computers
	Ltd.} built a seven-slice machine (which they called "the
	rocket-ship") and installed every imaginable peripheral.  In a
	spare {drive bay} of the top slice they installed a toaster.
	This machine was exhibited at various shows where it attracted
	attention by occasionally ejecting a pizza.

	[{Jargon File}]

	(1997-07-18)

toasternet

	<networking> 1. A low cost, low tech, publicly accessible
	local community {network}.  This is probably an extension of
	the term "{toaster}" used to mean a small, cheap, slow
	computer.

	{community networks
	(gopher://gopher.well.sf.ca.us/00/Community/communets/about.nets)}.

	2. The title of some informal notes on {IP address}ing,
	("Toasternet Part I and II"), circulated on the {IETF}
	{mailing list} during November 1991 and March 1992.

	Subsequent work was published in June 1993 in {RFC 1475} and
	{RFC 1476} and the "{CATNIP}" {Internet-Draft} by Robert
	L. Ullmann

	(1995-05-01)

to a zeroth approximation

	<jargon> (From "to a first approximation") A *really* sloppy
	approximation; a wild guess.

	Compare {social science number}.

	[{Jargon File}]

	(1994-12-12)

toggle

	To change a {bit} from whatever state it is in to the other
	state; to change from 1 to 0 or from 0 to 1.  This comes from
	"toggle switches", such as standard light switches, though the
	word "toggle" actually refers to the mechanism that keeps the
	switch in the position to which it is flipped rather than to
	the fact that the switch has two positions.  There are four
	things you can do to a bit: set it (force it to be 1), clear
	(or zero) it, leave it alone, or toggle it.

	[{Jargon File}]

	(1994-12-12)

TOK

	Referred to in Ursula K. LeGuin's "Always Coming Home."  Seems
	to be similar to the original {BASIC}.

	(1994-12-12)

token

	1. <grammar> A basic, grammatically indivisible unit of a
	language such as a {keyword}, operator or identifier.
	Compare: {lexeme}.

	2. <convention> (Or "{pumpkin}") An abstact concept passed
	between cooperating agents to ensure synchronised access to a
	shared resource.  Such a token is never duplicated or
	destroyed (unless the resource is) and whoever has the token
	has exclusive access to the resource it controls.  See for
	example {token ring}.

	If several programmers are working on a program, one
	programmer will "have the token" at any time, meaning that
	only he can change the program whereas others can only read
	it.  If someone else wants to modify it he must first obtain
	the token.

	(1999-02-23)

token bus

	<networking> (IEEE 802.4) A networking protocol which mediates
	access to a {bus} topology network as though it were a {token
	ring}.  This eliminates the {collisions} found in {carrier
	sense collision detect} protocols.  {Nodes} can be configured
	to pass the token in any order, not necessarily related to
	their physical ordering on the bus.  The token is sent from
	one node to its successor in the logical ring by broadcast on
	the bus and is ignored by the other nodes.

	(1996-12-13)

token ring

	A computer {local area network} arbitration scheme in which
	conflicts in the transmission of messages are avoided by the
	granting of "tokens" which give permission to send.  A station
	keeps the token while transmitting a message, if it has a
	message to transmit, and then passes it on to the next
	station.

	Often, "Token Ring" is used to refer to the {IEEE 802.5} token
	ring {standard}, which is the most common type of token ring.

	{Usenet} newsgroup: {news:comp.dcom.lans.token-ring}.

TomeRaider

	<application, file format> A {cross-platform} reference and
	{e-book reader} program and file format.  TomeRaider files are
	highly compressed and cross-referenced.  The reader displays
	the text and can follow the {hypertext links} embedded in the
	text.

	{TomeRaider Home (http://www.tomeraider.com/)}.

	(2008-02-15)

Tom Knight

	<person> A noted {hacker} at {MIT}.

	{(http://ai.mit.edu/people/tk/tk.html)}.

	(1996-12-12)

tone

	{brightness}

Tony Hoare

	{Anthony Hoare}

tool

	1. <tool> A program used primarily to create, manipulate,
	modify, or analyse other programs, such as a compiler or an
	editor or a cross-referencing program.  Opposite: {app},
	{operating system}.

	2. A {Unix} {application program} with a simple, "transparent"
	(typically text-stream) interface designed specifically to be
	used in programmed combination with other tools (see {filter},
	{plumbing}).

	3. <jargon> ({MIT}: general to students there) To work; to
	study (connotes tedium).  The {TMRC} Dictionary defined this
	as "to set one's brain to the grindstone".  See {hack}.

	4. <jargon, person> ({MIT}) A student who studies too much and
	hacks too little.  MIT's student humour magazine rejoices in
	the name "Tool and Die".

	[{Jargon File}]

	(1996-12-12)

toolbar

	<operating system> A common {graphical user interface}
	component, consisting of a permanently visible row of button
	{icons} that, when clicked with the {mouse}, cause the program
	to perform some action such as printing the current document
	or changing the {mode} of operation.

	The toolbar buttons often invoke functions accessible via
	{menus} but they are easier to use since they are permanently
	visible.  A typical use would be in a {paint} program where
	the toolbar allows the users to select one of the various
	painting "tools" - brush, pencil, bucket etc.

	Some {application programs} under some {operating systems} may
	allow the user to customise the functions accessible via
	toolbars; in others, the choice is fixed by the programmer.

	(2003-10-24)

toolbook

	<tool> A {Microsoft Windows} utility to make easy-to-use
	applications with a {graphical user interface}.  E.g. a guided
	tour of some software.

	(1995-03-14)

Toolbuilder

	{Tool Builder Kit}

Tool Builder Kit

	<tool> (TBK) A product from {IPSYS} which allows users to
	develop {CASE} tools appropriate to any {software engineering}
	{methodology}.

	(1996-05-08)

Tool Command Language

	<language> /tik*l/ (Tcl) An interpreted string processing
	language for issuing commands to {interactive} programs,
	developed by {John Ousterhout} at {UCB}.  Each {application
	program} can extend tcl with its own set of commands.

	Tcl is like a text-oriented {Lisp}, but lets you write
	algebraic expressions for simplicity and to avoid scaring
	people away.  Though originally designed to be a "scripting
	language" rather than for serious programming, Tcl has been
	used successfully for programs with hundreds of thousands of
	lines.

	It has a peculiar but simple {syntax}.  It may be used as an
	embedded {interpreter} in application programs.  It has
	{exceptions} and {packages} (called libraries), {name-spaces}
	for {procedures} and {variables}, and provide/require.  It
	supports {dynamic loading} of {object code}.  It is {eight-bit
	clean}.  It has only three variable types: strings, lists and
	{associative arrays} but no {structures}.

	Tcl and its associated {GUI} {toolkit}, {Tk} run on all
	flavors of {Unix}, {Microsoft Windows}, {Macintosh} and {VMS}.
	Tcl runs on the {Amiga} and many other {platforms}.

	Latest version: 8.0.3, as of 1998-09-25.

	See also {expect} (control interactive programs and pattern
	match on their output), {Cygnus Tcl Tools}, {[incr Tcl]} (adds
	classes and inheritence to Tcl), {Scriptics} (John
	Ousterhout's company that is the home of Tcl development and
	the TclPro tool suite), {Tcl Consortium} (a non-profit agency
	dedicated to promoting Tcl), {tclhttpd} (an embeddable
	Tcl-based web server), {tclx} (adds many commands to Tcl),
	{tcl-debug}.

	{comp.lang.tcl FAQ at MIT
	(ftp://rtfm.mit.edu/pub/usenet-by-group/comp.answers/tcl-faq/)}.
	or {at purl.org (http://purl.org/NET/Tcl-FAQ/)}.

	{Scriptics downloads
	(http://scriptics.com/software/download.html)}.
	{Kanji (ftp://srawgw.sra.co.jp/pub/lang/tcl/jp/)}.

	{Usenet} newsgroups: {news:comp.lang.tcl.announce},
	{news:comp.lang.tcl}.

	["Tcl: An Embeddable Command Language", J. Ousterhout, Proc
	1990 Winter USENIX Conf].

	(1998-11-27)

TOOLS

	{Technology of Object-Oriented Languages and Systems}

toolsmith

	The software equivalent of a tool-and-die specialist; one who
	specialises in making the {tools} with which other programmers
	create applications.  Many hackers consider this more fun than
	applications per se; to understand why, see {uninteresting}.
	Jon Bentley, in the "Bumper-Sticker Computer Science" chapter
	of his book "More Programming Pearls", quotes Dick Sites from
	DEC as saying "I'd rather write programs to write programs
	than write programs".

	[{Jargon File}]

TOP

	{Technical/Office Protocol}

top-down design

	<programming> (Or "stepwise refinement").  The software design
	technique which aims to describe functionality at a very high
	level, then partition it repeatedly into more detailed levels
	one level at a time until the detail is sufficient to allow
	coding.  This approach to software design probably originated
	at {IBM}, and grew out of {structured programming} practices.

	(1996-08-04)

Top-Down Model

	<programming> A method for estimating the overall cost and
	effort of the proposed software project from global properties
	of the project.  The total cost and schedule is partitioned
	into components for planning purposes.

	(1996-05-29)

topic drift

	<messaging> Term used on GEnie, {Usenet} and other electronic
	fora to describe the tendency of a {thread} to drift away from
	the original subject of discussion (and thus, from the Subject
	header of the originating message).

	Often used in gentle reminders that the discussion has strayed
	off any useful track.  "I think we started with a question
	about Niven's last book, but we've ended up discussing the
	sexual habits of the common marmoset.  Now *that's* topic
	drift!"

	[{Jargon File}]

	(1996-05-29)

topic group

	{forum}

topic map

	<semantics> A collection of "topics", their relationships, and
	information sources.  A topic map captures the subjects of
	which information sources speak, and the relationships between
	them, in a way that is implementation independent.

	A topic is a symbol within the computer that represents
	something in the world such as the play Hamlet, the playwright
	William Shakespeare, or the "authorship" relationship.

	Topics can have names.  They can also have occurrences, that
	is, information resources that are considered to be relevant
	in some way to their subject.  Topics can play roles in
	relationships.

	Thus, topics have three kinds of characteristics: names,
	sources, and roles played in relationships.  The assignment of
	such characteristics is considered to be valid within a
	certain scope, or context.

	Topic maps can be merged.  Merging can take place at the
	discretion of the user or application (at runtime), or may be
	indicated by the topic map's author at the time of its
	creation.

	(2003-07-19)

topic thread

	<messaging> (From {Usenet}, {GEnie}, {CompuServe}) A more or
	less continuous chain of postings on a single subject, sent to
	a {forum} such as a {Usenet} newsgroup.  To "follow a thread"
	is to read a series of postings sharing a common subject.

	On Usenet these are connected by "Reference" headers.  The
	better {newsreaders} can present news in thread order
	automatically.

	(2008-02-06)

top-level domain

	<networking> The last and most significant component of an
	{Internet} {fully qualified domain name}, the part after the
	last ".".  For example, {host} wombat.doc.ic.ac.uk is in
	top-level domain "uk" (for United Kingdom).

	Every other country has its own top-level domain, including
	".us" for the U.S.A.  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.

	In the US and some other countries, the following top-level
	domains are used much more widely than the country code:

		.com - commercial bodies
		.edu - educational institutions
		.gov - U. S. government
		.mil - U. S. armed services
		.net - network operators
		.org - other organisations

	Since the rapid commercialisation of the Internet in the 1990s
	the ".com" domain has become particularly heavily populated
	with every company trying to register its company name as a
	subdomain of .com, e.g. "netscape.com" so as to make it easy
	for customers to guess or remember the {URL} of the comany's
	{home page}.

	United Nations entities use the domain names of the countries
	where they are located.  The UN headquarters facility in New
	York City, for example, is un.org.

	Several new top-level domains are about to be added (Oct
	1997):
		.nom   - individual people
		.rec   - recreational organisations
		.firm  - businesses such as law, accounting, engineering
		.store - commercial retail companies
		.ent   - entertainment facilities and organisations

	(1997-10-08)

topology

	1. <mathematics> The branch of mathematics dealing with
	{continuous transformations}.

	2. <networking> Which {hosts} are directly connected to which
	other hosts in a {network}.  {Network layer} processes need to
	consider the current network topology to be able to {route}
	{packets} to their final destination reliably and efficiently.

	(2001-03-29)

TOPS-10

	/tops-ten/ DEC's proprietary OS for the fabled {PDP-10}
	machines, long a favourite of hackers but now effectively
	extinct.  A fountain of hacker folklore.  See also {ITS},
	{TOPS-20}, {TWENEX}, {VMS}, {operating system}.  TOPS-10 was
	sometimes called BOTS-10 (from "bottoms-ten") as a comment on
	the inappropriateness of describing it as the top of anything.

	[{Jargon File}]

TOPS-20

	{TWENEX}

Tornado

	<programming> The {software development environment}
	previously distributed with {VxWorks}.

	(1996-11-29)

Toronto Euclid

	<language> The standard dialect of {Euclid}, as compared to
	{Ottawa Euclid}.

	(1996-11-29)

torrent

	{BitTorrent}

TORTOS

	{Terminal Oriented Real Time Operating System}

TOS

	<operating system> /toss/

	1. {IBM}'s {Tape Operating System}.

	2. The {operating system} of the {Atari} ST range of
	computers.  This range included the 512ST, 1040ST and the F,
	FM and E variations (e.g.1040STE).  Later, 32-bit machines
	(TT, Falcon030 and MegaSTE) were developed using a new version
	of TOS, called {MultiTOS} which was based on {MinT}.

	TOS went through several revisions starting initially as a
	derivative of {CP/M}, but developing into a remarkably
	complete and flexible operating system.  Features include: a
	{flat memory model}, {MS-DOS}-compatible disk format and
	support for {MIDI} and {SCSI} (in later versions).  TOS was
	designed to run Atari's version of the {GEM} {GUI}.

	There is some argument as to what TOS stands for, the main
	candidates being "Tramiel Operating System" (named after
	Atari's head at the time) or simply "The Operating System".

	3. <networking> {Terms Of Service}.

	4. Star Trek The Original Series as opposed to ST-TNG or
	ST-DS9.

	(1999-04-02)

Toshiba Corporation

	<company> A Japanese technology manufacturer with 364
	subsidiaries worldwide.  Toshiba makes and sells electronics
	for home, office, industry and health care including
	information and communication systems, electronic components,
	heavy electrical apparatus, consumer products and medical
	diagnostic imaging equipment.

	In FY 2003-4, Toshiba employed 161,286 people.

	{Toshiba Home (http://toshiba.co.jp/)}.

	(2005-01-19)

TOSS

	{Terminal Oriented Social Science}

total function

	<mathematics> A {function} which is defined for all arguments
	of the appropriate type.  The opposite is a {partial
	function}.

	(1997-01-10)

totally ordered

	<mathematics> Having a {total ordering}.

	(1997-01-10)

totally ordered set

	<mathematics> A {set} with a {total ordering}.

total ordering

	<mathematics> A {relation} R on a set A which is a {partial
	ordering}; i.e. it is reflexive (xRx), transitive (xRyRz =>
	xRz) and antisymmetric (xRyRx => x=y) and for any two elements
	x and y in A, either x R y or y R x.

	See also {equivalence relation}, {well-ordered}.

	(1995-02-16)

toto

	<programming> /toh-toh'/ The default scratch file name among
	French-speaking programmers - in other words, a francophone
	{foo}.  The phonetic mutations "titi", "tata", and "tutu"
	canonically follow "toto", analogously to {bar}, {baz} and
	{quux} in English.

	[{Jargon File}]

	(1995-04-18)

touchpad

	<hardware> (Or "trackpad") A stationary {pointing device} used
	mainly on {laptop computers}.  Touchpads provide a small, flat
	surface that you slide your finger over using the same
	movements as you would a {mouse}.  They were originally
	developed to provide a more natural and intuitive connection
	for the computer user than the mouse.

	Touchpads use a principle called coupling {capacitance}, and
	requires a {conductive} pointer such as a finger.  They
	contain a two-layer grid of {electrodes} which are connected
	to an {integrated circuit} (IC) mounted under the pad.  The
	upper layer contains vertical electrode strips while the lower
	layer is composed of horizontal electrode strips.  Capacitance
	from each of the horizontal electrodes to each of the vertical
	electrodes is measured by the IC.  A finger near the
	intersection of two electrodes modifies the capacitance
	between them, since a finger has very different {dielectric}
	properties than air.  The position of the finger is precisely
	determined based on these changes at various locations.

	According to one correspondent, you can use any part of your
	body, which is not surprising, but not a McDonalds Chicken
	McCrispy.  You can use reheated Pizza Hut Christmas Pizza
	though.

	{Synaptics (http://synaptics.com/product.htm)}.

	(2000-11-01)

touch screen

	<hardware> An input device that allows user to interact with
	computer by touching the display screen.

	Often this uses beams of infrared light that are projected
	across the screen surface.  Interrupting the beams generates
	an electronic signal identifying the location of the screen.
	Software interprets the signal and performs the required
	operation.

	(1995-04-13)

tourist

	<jargon> A guest on the system, especially one who generally
	logs in over a network from a remote location for {comm mode},
	{electronic mail}, {games} and other trivial purposes.  A
	tourist is one step below a {luser}.

	Hackers often spell this {turist}, perhaps by some sort of
	tenuous analogy with {luser} (this also expresses the {ITS}
	culture's penchant for six-letterisms).

	Compare {twink}, {read-only user}.

	[{Jargon File}]

	(1995-03-10)

tourist information

	Information in an on-line display that is not immediately
	useful, but contributes to a viewer's gestalt of what's going
	on with the software or hardware behind it.  Whether a given
	piece of info falls in this category depends partly on what
	the user is looking for at any given time.  The "bytes free"
	information at the bottom of an {MS-DOS} "dir" display is
	tourist information; so (most of the time) is the TIME
	information in a {Unix} "ps(1)" display.

	[{Jargon File}]

Towers of Hanoi

	<games> A classic computer science problem, invented by
	Edouard Lucas in 1883, often used as an example of
	{recursion}.

	"In the great temple at Benares, says he, beneath the dome
	which marks the centre of the world, rests a brass plate in
	which are fixed three diamond needles, each a cubit high and
	as thick as the body of a bee.  On one of these needles, at
	the creation, God placed sixty-four discs of pure gold, the
	largest disc resting on the brass plate, and the others
	getting smaller and smaller up to the top one.  This is the
	Tower of Bramah.  Day and night unceasingly the priests
	transfer the discs from one diamond needle to another
	according to the fixed and immutable laws of Bramah, which
	require that the priest on duty must not move more than one
	disc at a time and that he must place this disc on a needle so
	that there is no smaller disc below it.  When the sixty-four
	discs shall have been thus transferred from the needle on
	which at the creation God placed them to one of the other
	needles, tower, temple, and Brahmins alike will crumble into
	dust, and with a thunderclap the world will vanish."

	The recursive solution is: Solve for n-1 discs recursively,
	then move the remaining largest disc to the free needle.

	Note that there is also a non-recursive solution: On
	odd-numbered moves, move the smallest sized disk clockwise.
	On even-numbered moves, make the single other move which is
	possible.

	["Mathematical Recreations and Essays", W W R Ball, p. 304]

	{The rec.puzzles Archive
	(http://rec-puzzles.org/sol.pl/induction/hanoi)}.

	(2003-07-13)

Tower Technology Corporation

	A company, established in 1992 by the merger of two {OOT}
	companies, with the intention of supplying high performance
	{Eiffel} compilation systems.  Tower provides development
	tools, reusable {class} libraries, and services supporting
	large scale system development.

	{(http://cm.cf.ac.uk/Tower/)}.

	E-mail: <tower@twr.com> (orders and inquiries), <outlook@twr.com>
	(The Eiffel Outlook Journal).

	Telephone: +1 (512) 452 9455 (8:30 to 5:30 CST business days).
	Fax: +1 (512) 452 1721.  Sales +1 (800) 285-5124 (Free, USA
	and Canada only).

	Address: Tower Technology, 1501 W. Koenig Lane, Austin, TX
	78756, USA.

	(1994-12-12)

toy

	A computer system; always used with qualifiers.

	1. "nice toy": One that supports the speaker's hacking style
	adequately.

	2. "just a toy": A machine that yields insufficient
	{computrons} for the speaker's preferred uses.  This is not
	condemnatory, as is {bitty box}; toys can at least be fun.  It
	is also strongly conditioned by one's expectations; Cray XMP
	users sometimes consider the Cray-1 a "toy", and certainly all
	RISC boxes and mainframes are toys by their standards.  See
	also {Get a real computer!}.

	[{Jargon File}]

Toy/Ada

	<language> A {compiler} for a subset of {Ada}, written in
	{SML/NJ} by Amit Bhatiani at Rose-Hulman University.

	{(ftp://master.cs.rose-hulman.edu/pub/)}.

	(1992-04-08)

toy language

	<language> A language useful for instructional purposes or as
	a proof-of-concept for some aspect of computer-science theory,
	but inadequate for general-purpose programming.  {Bad Things}
	can result when a toy language is promoted as a general
	purpose solution for programming (see {bondage-and-discipline
	language}); the classic example is {Pascal}.  Several
	moderately well-known formalisms for conceptual tasks such as
	programming {Turing Machines} also qualify as toy languages in
	a less negative sense.

	See also {MFTL}.

	[{Jargon File}]

	(1995-05-09)

Toyohashi University Parallel Lisp Environment

	<language> (TUPLE) A parallel {Lisp} based on {KCL}.

	["Memory Management and Garbage Collection of an Extended
	Common Lisp System for Massively Parallel SIMD Architecture",
	Taiichi Yuasa, in Memory Management, IWMM92, Springer 1992,
	490-507].

	(1994-11-08)

toy problem

	[AI] A deliberately oversimplified case of a challenging
	problem used to investigate, prototype, or test algorithms for
	a real problem.  Sometimes used pejoratively.  See also
	{gedanken}, {toy program}.

	[{Jargon File}]

toy program

	<programming> 1. A trivial program that can be readily
	comprehended.

	2. A program for which the effort of initial coding dominates
	the costs through its {life cycle}.

	See also {noddy}.

	(1996-05-19)

tp

	<networking> The {country code} for East Timor.

	(1999-01-27)

TPA

	{Transient Program Area}

TPF

	{Transaction Processing Facility}

TP/IX

	<networking, protocol> An {Internet} {protocol}, described in
	{RFC 1475}, which changes {TCP} and {UDP} headers to give a
	64-bit {IP address}, a 32-bit {port} number, and a 64 bit
	sequence number.

	(1995-04-03)

TPL

	1. Table Producing Language.  "The Bureau of Labor Statistics
	Table Producing Language (TPL)", R.C. Mendelssohn, Proc ACM
	Annual Conf (1974).

	2. Fleming Nielson.  A concurrent {functional language}.

	3. Terminal Programming Language.  Texas Inst, late 70's.
	Used on the TI-990/1 Small Business Computer and the TI-771
	Intelligent Terminal.

TPO

	{twisted pair only}

TPS

	Tree Pruning System.  "An Adaptive Tree Pruning System: A
	Language for Programming Heuristic Tree Searches",
	E.W. Kozdrowicki, Proc ACM 23rd Natl Conf 1968.

tptc

	A {Turbo Pascal} to {Turbo C} translator.  Comes with full
	source.

	{(ftp://wuarchive.wustl.edu/mirrors/msdos/turbopas/tptc17*.zip)}.

TPU

	{Text Processing Utility}

TPX

	{Terminal Productivity eXecutive}

tr

	<networking> The {country code} for Turkey.

	(1999-01-27)

TRAC

	{Text Reckoning And Compiling}

traceroute

	<networking> A {TCP/IP} utility, originally {Unix}, which
	allows the user to determine the {route} {packets} are taking
	to a particular {host}.  Traceroute works by increasing the
	"{time to live}" value of packets and seeing how far they get,
	until they reach the given destination; thus, a lengthening
	trail of hosts passed through is built up.

	(2007-02-02)

trace scheduling

	<processor> A method of controlling and coordinating the
	operation of multiple hardware elements of a {Very Long
	Instruction Word} processor.  It was developed by Josh Fisher
	at the now-defunct {Multiflow Computer} Corporation

	[Details?]

	(1995-03-01)

track

	<storage> The part of a {disk} which passes under one
	read/write head while the head is stationary.  The number of
	tracks on a disk surface therefore corresponds to the number
	of different radial positions of the head(s).  The collection
	of all tracks on all surfaces at a given radial position is
	known a {cylinder} and each track is divided into {sectors}.

	(1997-07-15)

track ball

	{tracker ball}

tracker ball

	<hardware> A {pointing device} consisting of a ball housed in
	a socket containing sensors to detect rotation of the ball
	about two axes - like an upside-down {mouse}.  The user rolls
	the ball with his thumb or the palm of his hand to move a
	cursor.  Tracker balls are common on {CAD} {workstations} for
	ease of use and on modern {portable computers}, where there
	may be no desk space on which to use a {mouse}.  Some clip
	onto the side of the keyboard and have integral buttons which
	have the same function as mouse buttons.

	(1996-08-04)

tracking

	<text> The horizontal spacing between {characters} in a line of
	{text}.  Tracking is set when a {font} is designed but can often
	be altered in order to change the appearance of the text or for
	special effects.  It applies to both {proportional fonts} and
	{monospaced fonts}.

	Tracking should not be confused with {kerning} which deals with
	the spacing between certain pairs of characters in a proportional
	font.

	See also {leading}.

	(2013-12-05)

tracking cookie

	<World-Wide Web> An {HTTP cookie} used to identify a user of a
	{web site} in order to log which pages they visit.  The site owner
	can use this information to optimise the site, e.g. for marketing
	purposes.

	(2013-12-05)

tracking file

	{tracking cookie}

trackpad

	{touchpad}

TrackPoint

	<hardware> (Or "pointing stick", "nipple") A small knob found
	in the middle of some {keyboards} that works like a very short
	{isometric joystick}.  Pressing it toward or away from you or
	from side to side moves the {pointer} on the screen.  Ted
	Selker brought the concept of an in-keyboard pointing device
	to {IBM} in September 1987.  TrackPoint was introduced in 1992
	on the {IBM} {ThinkPad} and later on some {desktops}.

	It takes up virtually no extra room on the box or the work
	area and also requires minimal movement of the hands from the
	keyboard.

	Many imitations of highly variable quality appeared.  Pointing
	sticks have also been used in many other {notebook} brands,
	including {TI}, {HP}, {Compac}, {Dell}, {Toshiba}
	(e.g. Portege 4000's "AccuPoint II"), and {AST} (e.g. Ascentia
	910N).

	"TrackPoint" and "Trackpoint" are IBM trademarks.

	{(http://research.ibm.com/mathsci/cmc/trackpoint.htm)}.

	[INTERACT'90, North Holland Pub Co, pp. 700-706].

	(2003-10-15)

tractor feed

	{sprocket feed}

TrafoLa

	<language> A {functional programming} language designed in the
	{PROSPECTRA} {ESPRIT} project to support declarative
	specification of {program transformations}.  It provides
	higher-order {pattern matching} on expression trees with
	{backtracking}.

	[Heckmann88].

	(1996-06-07)

Trafola-H

	A specification language for program transformations.
	Functional, statically typed, polymorphic, with extended
	constructs for pattern-matching.  "Trafola-H Reference
	Manual", R. Heckmann et al, U Saarlandes, Saarbrucken 1991.

trampoline

	An incredibly {hairy} technique, found in some {HLL} and
	program-overlay implementations (e.g. on the Macintosh), that
	involves on-the-fly generation of small executable (and,
	likely as not, self-modifying) code objects to do indirection
	between code sections.  These pieces of {live data} are called
	"trampolines".  Trampolines are notoriously difficult to
	understand in action; in fact, it is said by those who use
	this term that the trampoline that doesn't bend your brain is
	not the true trampoline.  See also {snap}.

	[{Jargon File}]

	(2003-03-26)

TRANDIR

	TRANslation DIRector.  A language for syntax-directed
	compiling.  Sammet 1969, p.640.

TRANQUIL

	1966.  ALGOL-like language with sets and other extensions, for
	the Illiac IV.  "TRANQUIL: A Language for an Array Processing
	Computer", N.E. Abel et al, Proc SJCC 34 (1969).

TRANS

	TRAffic Network Simulation Language.  "A Model for Traffic
	Simulation and a Simulation Language for the General
	Transportation Problem", Proc FJCC 37 (1970).

transaction

	A unit of interaction with a {DBMS} or similar system.  It
	must be treated in a coherent and reliable way independent of
	other transactions.  See {atomic}.

Transaction Application Language

	<language, Tandem> (TAL) Not "Tandem Application Language". A
	{block-structured}, {procedural} language optimised for use on
	{Tandem} {hardware}.  TAL is a cross between {C} and {Pascal}
	and is the primary system programming language on {Tandem}
	computers.  Tandem has no {assembler} and originally had no C
	or Pascal.

	[Was TAL derived from HP's System Programming Language?]

	(2001-07-09)

Transaction Processing Facility

	<operating system> (TPF) A {real-time} {mainframe} {operating
	system} released by {IBM} around 1976.  TPF is particularly
	suited to organisations dealing in very high I/O message
	switching and large global networks.  Current users include
	British Airways (reservations), VISA International
	(authorisations), Holiday Inn, and Quantas.

	TPF was traditionally a {370/Assembler} environment although
	the latest, release 4.1, contains {C}.  Formerly known as ACP
	(Airline Control Program), it was renamed "TPF" to suggests
	its greater scope.

	It is common for TPF sites to use IBM's {MVS} and {VM}
	operating systems for {off-line} processing.

	(1996-08-27)

transceiver

	<networking> Transmitter-receiver, any device that performs
	both functions.

	For example, on an {Ethernet} network, a transceiver is the
	hardware that connects a {host} interface (e.g. an {Ethernet}
	controller) to a {local area network}.  Ethernet transceivers
	contain electronics that apply signals to the cable and sense
	other host's signals and collisions.  See also {CSMA/CD}.

	(2008-08-04)

TRANSCODE

	<language> An early system on the {Ferut} computer.

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

	(2008-08-04)

transducer

	1. A device for converting sound, temperature, pressure, light
	or other signals to or from an electronic signal.

	2. {Finite State Machine}.

	(1995-02-15)

transfer

	1. <data> {data transfer}.

	2. <programming> {transfer of control}.

	3. <messaging> The movement of {electronic mail} between
	servers by a {Message Transfer Agent}.

transfer none

	{introspection annotation}

transfer of control

	<programming> To cause {execution} of a {program} to continue
	from a different address instead of proceding sequentially to
	the next instruction.  This may happen as a result of a {jump}
	instruction or some kind of {interrupt}.

	This term is more common when discussing {machine code}, the
	{high-level language} equivalent is a {goto} statement.

	(2009-06-09)

transfer rate

	{data transfer rate}

transfer syntax

	<networking, protocol> The actual representation of data as it
	is transmitted over a {network} (as opposed to {abstract
	syntax}).

	(1998-05-19)

transfinite induction

	<mathematics> {Induction} over some (typically large)
	{ordinal}.

	(1995-03-30)

transformation

	{program transformation}

transient

	1. <electronics> A sudden, brief increase in {current} or
	{voltage} in a circuit that can damage sensitive components
	and instruments.

	(2003-06-12)

	2. <software> A software object with a short and limited
	lifetime which is not saved for later reuse.

	(1998-04-19)

Transient Program Area

	<operating system> (TPA) The region of memory {CP/M} set aside
	for user programs.

	(2001-11-01)

transistor

	<electronics> A three terminal {semiconductor} amplifying
	device, the fundamental component of most active electronic
	circuits, including digital electronics.  The transistor was
	invented on 1947-12-23 at {Bell Labs}.

	There are two kinds, the {bipolar transistor} (also called the
	junction transistor), and the {field effect transistor} (FET).

	Transistors and other components are interconnected to make
	complex {integrated circuits} such as {logic gates},
	{microprocessors} and memory.

	(1995-10-05)

Transistor-Transistor Logic

	(TTL) A common semiconductor technology for building discrete
	digital logic integrated circuits.  It originated from {Texas
	Instruments} in 1965.

	There have been several series of TTL logic:

	 7400:	10 ns propagation time, 10 mW/gate power consumption,
		obsolete;

	 74L00:	Low power: higher resistances, less dissipation
		(1 mW), longer propagation time (30 ns);

	 74H00: High power: lower resistances, more dissipation: less
		sensitivity for noise;

	 74S00: Schottky-clamped: faster switching (3 ns, 19 mW) by
		using Schottky diodes to prevent the transistors from
		saturation;

	 74LS00: Low power, Schottky-clamped (10 ns, 2 mW);

	 74AS00: Advanced Schottky: faster switching, less
		 dissipation, (1.5 ns, 10 mW);

	 74ALS00: Advanced Low power Schottky (4 ns, 1.3 mW).

	For each 74xxx family there is a corresponding 54xxx family.
	The 74 series are specified for operation at 0 - 70 C whereas
	the 54 (military) series can operate at -55 - 125 C

	See also {CMOS}, {ECL}.

TRANSIT

	<language> A subsystem of {ICES}.

	[Sammet 1969, p.616].

	(2003-07-12)

transition ad

	{interstitial}

transitive

	A relation R is transitive if x R y  &  y R z  =>  x R z.
	Equivalence relations, pre-, partial and total orders are all
	transitive.

transitive closure

	The transitive closure R* of a relation R is defined by

		x R y => x R* y
		x R y  and  y R* z => x R* z

	I.e. elements are related by R* if they are related by R
	directly or through some sequence of intermediate related
	elements.

	E.g. in graph theory, if R is the relation on nodes "has an
	edge leading to" then the transitive closure of R is the
	relation "has a path of zero or more edges to".  See also
	Reflexive transitive closure.

transit network

	A {network} which passes traffic between other networks in
	addition to carrying traffic for its own {hosts}.  It must
	have paths to at least two other networks.

	See also {backbone}, {stub}.

	(1995-01-30)

Translation Look-aside Buffer

	<storage, architecture> (TLB) A table used in a {virtual
	memory} system, that lists the {physical address} {page}
	number associated with each {virtual address} {page} number.
	A TLB is used in conjunction with a {cache} whose tags are
	based on virtual addresses.  The virtual address is presented
	simultaneously to the TLB and to the cache so that cache
	access and the virtual-to-physical address translation can
	proceed in parallel (the translation is done "on the side").
	If the requested address is not cached then the physical
	address is used to locate the data in main memory.  The
	alternative would be to place the translation table between
	the cache and main memory so that it will only be activated
	once there was a cache miss.

	(1995-01-30)

Transmission Control Protocol

	<networking, protocol> (TCP) The most common {transport layer}
	{protocol} used on {Ethernet} and the {Internet}.  It was
	developed by {DARPA}.

	TCP is the {connection-oriented} protocol built on top of
	{Internet Protocol} (IP) and is nearly always seen in the
	combination {TCP/IP} (TCP over IP).  It adds {reliable
	communication} and {flow-control} and provides {full-duplex},
	process-to-process connections.

	TCP is defined in {STD 7} and {RFC} 793.

	{User Datagram Protocol} is the other, connectionless,
	protocol that runs on top of IP.

	(2001-06-14)

transparent

	1. <jargon> Not visible, hidden; said of a system which
	functions in a manner not evident to the user.  For example,
	the {Domain Name System} transparently resolves a {fully
	qualified domain name} into an {IP address} without the
	user being aware of it.

	Compare this to what {Donald Norman
	(http://atg.apple.com/Norman/)} calls "invisibility",
	which he illustrates from the user's point of view:

	"You use computers when you use many modern automobiles,
	microwave ovens, games, CD players and calculators.  You don't
	notice the computer because you think of yourself as doing the
	task, not as using the computer."  ["The Design of Everyday
	Things", New York, Doubleday, 1989, p. 185].

	2. <theory> Fully defined, known, predictable; said of a
	sub-system in which matters generally subject to volition or
	stochastic state change have been chosen, measured, or
	determined by the environment.  Thus for transparent systems,
	output is a known function of the inputs, and users can both
	predict the behaviour and depend upon it.

	(1996-06-04)

transparent audio coding

	<audio, compression> A {lossy audio compression} {algorithm}
	is transparent if the original and decoded signal are
	indistinguishable to the human ear.  The bit rate depends on
	the {codec} and the audio material.  Some codecs (e.g. {AAC},
	{MP3}) are optimized for transparent coding at a low data
	rate, others (e.g. {VQF}, {MP3Pro}, {AAC}+{SBR}, {WMA}) for
	distinguisable but pleasant reproduction at lower bit rates.

	Typical data rates in {kbps} for different codecs are:

	 MP1         288-320
	 MP2         224-256
	 MP3         160-224
	 MPEG-2 AAC  128-160
	 MPEG-4 AAC  112-144
	 MPEGplus    160-200

	(2001-12-23)

Transport Driver Interface

	<networking> (TDI) Developed by {SUN}, {IBM}, and {Microsoft}
	(and others?), the TDI is a {software} {interface} between the
	{protocols} and {application programing interface} layers of
	the {Windows NT network model}.

	(1997-11-05)

transport layer

	<networking> (Or "host-host layer") The middle layer in the
	{OSI} seven layer model.  The transport layer determines how
	to use the {network layer} to provide a virtual error-free,
	point to point connection so that host A can send messages to
	host B and they will arrive un-corrupted and in the correct
	order.  It establishes and dissolves connections between
	hosts.  It is used by the {session layer}.

	An example transport layer {protocol} is {Transmission Control
	Protocol} (TCP).

	{OSI} documents: {ITU} Rec. X.214 (ISO 8072), ITU Rec. X.224
	(ISO 8073).

	(1997-12-07)

Transport Layer Interface

	<networking, programming> (TLI, or "Transport Level
	Interface") A {protocol}-independent interface for accessing
	network facilities, modelled after the {ISO} {transport layer}
	(level 4), that first appeared in {Unix SVR3}.

	TLI is defined by {SVID} as transport mechanism for networking
	interfaces, in preference to {sockets}, which are biased
	toward {IP} and friends.  A disavantage is that a process
	cannot use read/write directly, but has to use backends using
	{stdin} and {stdout} to communicate with the network
	connection.  TLI is implemented in SVR4 using the {STREAMS}
	interface.  It adds no new {system calls}, just a library,
	libnsl_s.a.  The major functions are t_open, t_bind,
	t_connect, t_listen, t_accept, t_snd, t_rcv, read, write.

	According to the {Solaris} t_open {man page}, XTI (X/OPEN
	Transport Interface) evolved from TLI, and supports the TLI
	{API} for compatibility, with some variations on semantics.

	(1999-06-10)

Transport Layer Security protocol

	<networking, protocol> (TLS) A {protocol} designed to allow
	{client/server} applications to communicate over the
	{Internet} without {eavesdropping}, {tampering}, or {message
	forgery}.

	TLS is defined in {RFC 2246}.

	(2003-10-03)

Transport Level Interface

	{Transport Layer Interface}

Transport Service Access Point

	<networking> (TSAP) Part of the {OSI} {IP Presentation
	Addressing schema}.

	A TSAP identifes the {service access point} between the
	{session layer} and the {transport layer}.

	(1999-08-01)

transputer

	<processor, parallel> (Note lower case) A family of
	{microprocessors} from {Inmos} with interprocessor links,
	programmable in {occam}.

	[More details?]

	(1994-11-18)

TRANS-USE

	<language> An early system on the {IBM 1130}.

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

	(2004-09-14)

trap

	1. A program interrupt, usually an interrupt caused by some
	exceptional situation in the user program.  In most cases, the
	OS performs some action, then returns control to the program.

	2. To cause a trap.  "These instructions trap to the monitor."
	Also used transitively to indicate the cause of the trap.
	"The monitor traps all input/output instructions."

	This term is associated with assembler programming
	("interrupt" or "exception" is more common among {HLL}
	programmers) and appears to be fading into history among
	programmers as the role of assembler continues to shrink.
	However, it is still important to computer architects and
	systems hackers (see {system}, sense 1), who use it to
	distinguish {deterministic}ally repeatable exceptions from
	timing-dependent ones (such as I/O interrupts).

	[{Jargon File}]

trap door

	Or "trapdoor" 1. {back door}.

	2. {trap-door function}

trap-door function

	<cryptography, mathematics> A special class of {one-way
	function}, which is reversible if you know a certain secret
	associated with the function.

	{(http://rsasecurity.com/rsalabs/faq/2-3-2.html)}.
	{(http://ieor.berkeley.edu/~jshu/knapsack/Review/OverviewPK.html)}.

	(2003-05-22)

trash

	To destroy, e.g. the contents of a data structure.  The most
	common of the family of near-synonyms including {mung},
	{mangle}, and {scribble}.

	[{Jargon File}]

	(1994-11-03)

Trash-80

	Derogatory name for {Tandy}'s {TRS-80}.

	(1994-11-03)

traveling salesman problem

	<spelling> US spelling of {travelling salesman problem}.

	(1996-12-13)

travelling salesman

	{travelling salesman problem}

travelling salesman problem

	<algorithm, complexity> (TSP or "shortest path", US:
	"traveling") Given a set of towns and the distances between
	them, determine the shortest path starting from a given town,
	passing through all the other towns and returning to the first
	town.

	This is a famous problem with a variety of solutions of
	varying complexity and efficiency.  The simplest solution (the
	{brute force} approach) generates all possible routes and
	takes the shortest.  This becomes impractical as the number of
	towns, N, increases since the number of possible routes is
	!(N-1).  A more intelligent {algorithm} (similar to {iterative
	deepening}) considers the shortest path to each town which can
	be reached in one hop, then two hops, and so on until all
	towns have been visited.  At each stage the algorithm
	maintains a "frontier" of reachable towns along with the
	shortest route to each.  It then expands this frontier by one
	hop each time.

	{Pablo Moscato's TSP bibliography
	(http://densis.fee.unicamp.br/~moscato/TSPBIB_home.html)}.
	{Fractals and the TSP
	(http://ing.unlp.edu.ar/cetad/mos/FRACTAL_TSP_home.html)}.

	(1998-03-24)

traversal

	<data> Processing {nodes} in a {graph} one at a time, usually
	in some specified order.  Traversal of a tree is {recursive}ly
	defined to mean visiting the {root node} and traversing its
	children.  Visiting a node usually involves transforming it in
	some way or collecting data from it.

	In "pre-order traversal", a node is visited __before__ its
	children.  In "post-order" traversal, a node is visited
	__after__ its children.  The more rarely used "in-order"
	traversal is generally applicable only to binary trees, and is
	where you visit first a node's left child, then the node
	itself, and then its right child.

	For the binary tree:

	     T
	    / \
	   I   S
	  / \
	 D   E

	A pre-order traversal visits the nodes in the order T I D E S.
	A post-order traversal visits them in the order D E I S T.  An
	in-order traversal visits them in the order D I E T S.

	(2001-10-01)

traverse

	{traversal}

trawl

	To sift through large volumes of data (e.g. {Usenet} postings,
	FTP archives, or the {Jargon File}) looking for something of
	interest.
	[{Jargon File}]

tree

	<mathematics, data> A {directed acyclic graph}; i.e. a {graph}
	wherein there is only one route between any pair of {nodes},
	and there is a notion of "toward top of the tree" (i.e. the
	{root node}), and its opposite direction, toward the {leaves}.
	A tree with n nodes has n-1 edges.

	Although maybe not part of the widest definition of a tree, a
	common constraint is that no node can have more than one
	parent.  Moreover, for some applications, it is necessary to
	consider a node's {daughter} nodes to be an ordered {list},
	instead of merely a {set}.

	As a data structure in computer programs, trees are used in
	everything from {B-trees} in {databases} and {file systems}, to
	{game trees} in {game theory}, to {syntax trees} in a human or
	computer {languages}.

	(1998-11-12)

tree-killer

	<jargon, abuse> (Sun) 1. A printer.

	2. A person who wastes paper.  This epithet should be
	interpreted in a broad sense; "wasting paper" includes the
	production of {spiffy} but {content-free} documents.  Thus,
	most {suits} are tree-killers.

	This term may derive from {J.R.R. Tolkien's "Lord of the
	Rings"
	(http://sf.www.lysator.liu.se/sf_archive/sf-texts/SF_resource_guide/sfrgft.htm)}.
	in which Treebeard the Ent uses it to refer to the orcs'
	master, Saruman of Isengard.  Saruman represents, among other
	things, technology at its most misguided.

	See also: {dead tree}.

	[{Jargon File}]

	(1999-11-03)

TREET

	E.C. Haines, 1964.  An experimental variant of LISP1.5,
	implemented on the STRETCH computer.  Basic structure was a
	trinary tree.

	["The TREET {Time-Sharing} System", H.A. Bayard et al, Proc
	2nd Symp Symb and Alg Manip, ACM (Mar 1971)].

	[Sammet 1969, pp.457-461].

TREETRAN

	A {Fortran IV} subroutine package for tree manipulation.

Tree Transformation Language

	<functional language, rule-based language> (TXL) A hybrid
	{functional language} and {rule-based language} developed by
	J.R. Cordy <cordy@cs.queensu.ca> et al of {Queen's
	University}, Canada in 1988.  TXL is suitable for performing
	source to source analysis and transformation and for rapidly
	prototyping new languages and language processors.  It uses
	{structural transformation} based on {term rewriting}.

	TXL has been particularly successful in {software engineering}
	tasks such as {design recovery}, {refactoring}, and
	{reengineering}.  Most recently it has been applied to
	{artificial intelligence} tasks such as recognition of
	hand-written mathematics, and to transformation of {structured
	documents} in {XML}.

	TXL takes as input an arbitrary {context-free grammar} in
	{extended BNF}-like notation, and a set of {show-by-example}
	transformation rules to be applied to inputs parsed using the
	grammar.  TXL supports the notion of {agile parsing}, the
	ability to tailor the grammar to each particular task using
	"grammar overrides".

	Latest version: FreeTXL 10.3, as of 2003-10-26.

	{TXL Home (http://txl.ca/)}.

	["TXL: A Rapid Prototyping System for Programming Language
	Dialects", J.R. Cordy, C.D.; Halpern and D. Promislow,
	Computer Languages, Vol. 16, No. 1, January 1991, pp 97-107]

	["Source Transformation in Software Engineering using the TXL
	Transformation System", J.R. Cordy, T.R. Dean, A.J. Malton and
	K.A. Schneider, Journal of Information and Software
	Technology, Vol. 44, No. 13, October 2002, pp 827-837]

	["Recognizing Mathematical Expressions Using Tree
	Transformation", R. Zanibbi, D. Blostein and J.R. Cordy, IEEE
	Transactions on Pattern Analysis & Machine Intelligence,
	Vol. 24, No. 11, November 2002, pp 1455-1467]

	["Agile Parsing in TXL", T.R. Dean, J.R. Cordy, A.J. Malton
	and K.A. Schneider, Journal of Automated Software Engineering,
	Vol. 10, No. 4, October 2003, pp 311-336]

	(2003-11-04)

treeware

	<jargon> /tree'weir/ Printouts, books, {documentation}, and
	other information media made from pulped dead trees by a
	{tree-killer}.

	[{Jargon File}]

	(1999-01-15)

Trellis

	1. An {object-oriented} language from the University of
	Karlsruhe(?) with {static type-checking} and {encapsulation}.

	2. An {object-oriented} application development system from
	{DEC}, based on the {Trellis} language.  (Formerly named Owl).

	E-mail: Jerry Smith <smith@pipe.enet.dec.com>

	["Persistent and Shared Objects in trellis/owl", P. O'Brien et
	al, Proc 1986 IEEE Workshop on Object-Oriented Database
	Systems, IEEE, NY 1986].

Trellis Code Modulation

	(TCM) A modulation technique with hardware {error detection
	and correction}.

	[Details?]

	(1995-02-22)

Trident

	<company> A {video card} manufacturer.

	[More info?]

	(1997-07-16)

trigger

	<database> An action causing the automatic invocation of a
	procedure, for instance to preserve {referential integrity}.
	A triggers goes into effect when a user attempts to modify
	data with an insert, delete, or update command.  A trigger can
	instruct the system to take any number of actions when a
	specified change is attempted.  By preventing incorrect,
	unauthorized, or inconsistent changes to data, triggers help
	maintain the integrity of the database.

	[Sybase SQL Server Release 10.0 Transact-SQL User's Guide].

	(1995-02-22)

trigger finger

	{overuse strain injury}

TRIGMAN

	A system for {symbolic mathematics}, especially celestial
	mechanics.

	(1994-12-14)

trillion

	<mathematics> In Britain, France, and Germany, 10^18 or a
	million cubed.

	In the USA and Canada, 10^12.

	[Elsewhere?]

	(1996-10-03)

Trilogy

	<language> A {strongly typed} {logic programming} language
	with numerical {constraint}-solving over the {natural
	numbers}, developed by Paul Voda <voda@voda.ii.fmph.uniba.sk>
	at {UBC} in 1988.  Trilogy is syntactically a blend of
	{Prolog}, {Lisp}, and {Pascal}.  It contains three types of
	{clauses}: {predicates} ({backtracking} but no assignable
	variables), procedures (if-then-else but no backtracking;
	assignable variables), and {subroutines} (like procedures, but
	with input and {system calls}; callable only from top level or
	from other subroutines).

	Development of Trilogy I stopped in 1991.  Trilogy II,
	developed by Paul Voda 1988-92, was a {declarative} general
	purpose programming language, used for teaching and to write
	{CL}.

	{(http://fmph.uniba.sk/~voda)}.

	["The Constraint Language Trilogy: Semantics and
	Computations", P. Voda, Complete Logic Systems, 741 Blueridge
	Ave, North Vancouver BC, V7R 2J5].

	(2000-04-08)

triple DES

	<cryptography> A {product cipher} which, like {DES}, operates
	on 64-bit data blocks.  There are several forms, each of which
	uses the DES cipher 3 times.  Some forms use two 56-bit keys,
	some use three.  The DES "modes of operation" may also be used
	with triple-DES.

	(1995-05-11)

tri state

	<hardware> A feature of some {digital} electronic devices
	which allows a connector (pin) to either act as a normal
	output, driving a signal onto a line, or to be "tri stated" -
	set to a high-impedance ("high Z") condition.  This allows
	other outputs to drive signals onto the line.  Often the same
	connector also functions as an input when its output circuitry
	is tri stated.

	Tri-state outputs are typically used for the connection of
	several digital circuits to a shared {bus} onto which any one
	of them may output data for the others to input.

	(1996-07-26)

trit

	<unit> /trit/ (By analogy with "{bit}") One base-3 digit; the
	amount of information conveyed by a selection among one of
	three equally likely outcomes.  Trits arise, for example, in
	the context of a {flag} that should actually be able to assume
	*three* values - such as yes, no, or unknown.  Trits are
	sometimes jokingly called "3-state bits".  A trit may be
	semi-seriously referred to as "a bit and a half", although it
	is linearly equivalent to 1.5849625 bits (that is, log2(3)
	bits).

	[{Jargon File}]

	(1995-05-11)

Triton

	<processor> {Intel}'s {Pentium} {core} logic {chip set}.  In
	addition to the traditional features, this chip set supports:
	{EDO DRAM} to increase the {bandwidth} of the {DRAM}
	interface; "{pipelined} {burst SRAM}" for a cheaper, faster
	{second level cache}; "{bus master} {IDE}" control logic to
	reduce processor load; a plug and play port for easy
	implementation of functions such as audio.

	The Triton I chipset (official name 82430FX) consists of 4
	chips: one 82437FX TSC (Triton Sysetm Controller), two 82438FX
	TDP (Triton Data Path), and one 82371FB PIIX (PCI IDE
	Xcellerator).  It supports {PB Cache}, {EDO DRAM}, and a
	maximum {PCI} and memory burst data transfer rate of 100
	{megabytes} per second.

	There are also {Moble Triton} (82430MX), {Triton II}
	(82430HX), and the {Triton VX} (82430VX) chip sets.

	{Introduction
	(http://asus.com.tw/Products/TB/triton-intro.html)}.

	(1996-04-03)

Triton II

	<processor> (Official name 82430HX) A version of {Intel}'s
	{Triton} processor chip set with all the features of the
	Triton I plus support for {ECC}, {parity RAM}, two-way {SMP},
	{USB}, and {Concurrent PCI} to improve speed.

	It consists of one 82439HX TXC and one 82371SB PIIX3.

	(1996-04-03)

Triton VX

	<processor> (Official name 82430VX) A version of {Intel}'s
	{Triton} processor chip set with all the features of the
	Triton I plus support for {SDRAM}, {USB}, and a {UMA} option.

	Triton VX consists of one 82437VX TVC, two 82438VX TVP, and
	one 82371SB PIIX3.

	(1996-04-03)

Trivial File Transfer Protocol

	<networking> (TFTP) A simple file transfer protocol used for
	{down-load}ing {boot code} to {diskless workstations}.

	TFTP is defined in {RFC 1350}.

	[Details?  Other uses?  Relationship to {FTP}?]

	(1997-08-30)

TRO

	{tail recursion optimisation}

troff

	<text, tool> /T'rof/ or /trof/ The grey eminence of {Unix}
	text processing; a formatting and phototypesetting program,
	written originally in {PDP-11} {assembly code} and then in
	barely-structured early {C} by the late Joseph Ossanna,
	modelled after the earlier {ROFF} which was in turn modelled
	after {Multics}' {RUNOFF} by Jerome Saltzer (*that* name came
	from the expression "to run off a copy").  A companion
	program, {nroff}, formats output for terminals and line
	printers.

	In 1979, Brian Kernighan modified troff so that it could drive
	phototypesetters other than the Graphic Systems CAT.  His
	paper describing that work ("A Typesetter-independent troff",
	AT&T CSTR #97) explains troff's durability.  After discussing
	the program's "obvious deficiencies - a rebarbative input
	syntax, mysterious and undocumented properties in some areas,
	and a voracious appetite for computer resources" and noting
	the ugliness and extreme hairiness of the code and internals,
	Kernighan concludes:

	None of these remarks should be taken as denigrating
	Ossanna's accomplishment with TROFF.  It has proven a
	remarkably robust tool, taking unbelievable abuse from a
	variety of preprocessors and being forced into uses that
	were never conceived of in the original design, all with
	considerable grace under fire.

	The success of {TeX} and desktop publishing systems have
	reduced troff's relative importance, but this tribute
	perfectly captures the strengths that secured troff a place in
	hacker folklore; indeed, it could be taken more generally as
	an indication of those qualities of good programs that, in the
	long run, hackers most admire.

	{groff} is {GNU}'s implementation of {roff} in {C++}.

	[{Jargon File}]

	(1995-03-21)

troglodyte

	<jargon> (Commodore) 1. A hacker who never leaves his cubicle.
	The term "Gnoll" (from Dungeons & Dragons) is also reported.

	2. A curmudgeon attached to an obsolescent computing
	environment.  The combination "ITS troglodyte" was flung
	around some during the {Usenet} and {e-mail} wringle-wrangle
	attending the 2.x.x revision of the {Jargon File}; at least
	one of the people it was intended to describe adopted it with
	pride.

	[{Jargon File}]

	(1995-01-11)

troglodyte mode

	<jargon> (Rice University) Programming with the lights turned
	off, sunglasses on, and the terminal inverted (black on white)
	because you've been up for so many days straight that your
	eyes hurt (see {raster burn}).  Loud music blaring from a
	stereo stacked in the corner is optional but recommended.

	See {larval stage}, {hack mode}.

	[{Jargon File}]

	(1995-03-21)

trojan

	{Trojan horse}

Trojan horse

	<application, security> (Or just "trojan") A term coined by
	{MIT}-hacker-turned-NSA-spook Dan Edwards for a malicious,
	security-breaking program that is disguised as something
	benign, such as a directory lister, archiver, game or (in one
	notorious 1990 case on the Mac) a program to find and destroy
	{virus}es!  A Trojan horse is similar to a {back door}.

	See also {RFC 1135}, {worm}, {phage}, {mockingbird}.

	[{Jargon File}]

	(2008-06-19)

TROLL

	An {array} language for {continuous simulation}, econometric
	modelling or statistical analysis.

	["TROLL Reference Manual", D0062, Info Proc Services, MIT
	(1973-76)].

troll

	An {electronic mail} message, {Usenet} posting or other
	(electronic) communication which is intentionally incorrect,
	but not overtly controversial (compare {flame bait}), or the
	act of sending such a message.  Trolling aims to elicit an
	emotional reaction from those with a hair-trigger on the reply
	key.  A really subtle troll makes some people lose their
	minds.

	(1994-10-17)

TRON

	1. <project> {The Real-Time Operating System Nucleus}.

	2. <language, programming, testing, tool> (TRace ON) A
	{command} used when {debugging} {programs} written in
	early {line-numbered} {BASIC} that contained {GOTO} and
	{GOSUB} statements.

	When the TRON command had been {executed}, the program ran
	with a {window} open indicating the line number being
	executed at that instant.

	The {TROFF} (an abbreviation for "TRace OFF") command turned
	the {tracing} off.

	(2003-02-02)

tron

	<jargon> ({NRL}, {CMU}, probably from the film "Tron") To
	become inaccessible except via {electronic mail} or {talk}
	especially when one is normally available via telephone or in
	person.

	Compare {spod}.

	[{Jargon File}]

	(1994-11-03)

Trouble Came Back

	<jargon> (TCB) An {IBM} term for an intermittent or
	difficult-to-reproduce problem that has failed to respond to
	neglect or {shotgun debugging}.

	Compare {heisenbug}.

	(1998-07-02)

TRS

	{term rewriting system}

TRS-80

	<computer> A series of {personal computers} sold by {Tandy
	Radio Shack}.  The '80' refers to the use of {Zilog Z-80}
	processor (NOT {Intel 80x8x}).

	There were 7.5 computers in the TRS-80 line: Models I, II,
	III, 4, 100, 102, 200.  The Model 4P was a portable version of
	the Model 4 with no tape drive -- only 2 1/2-height single
	sided disk drives.

	Later models that Radio Shack produced were not TRS-80
	machines -- they were based on the {Intel 80x8x} architecture.
	These included Tandy 1000, Tandy 2000, Tandy 3000, and others.
	The 1000 had a proprietary Color card.  The 2000 was a
	powerful machine for its time, but was based on the {Intel
	80186}, so when {IBM} didn't build a computer based on this
	chip, it failed.  It was used to design a boat for the
	America's Cup.

	The TRS-80 {GUI}, DeskMate, was proprietary, but no more than
	{Windoze} at the time.

	Many joke about "{TRaSh-80}" machines but several models were
	in fact classics of their time.

	(1996-02-18)

Truchet point

	<unit, text> An obsolete variant of the {point}, equal to
	0.188 mm.

	(2002-03-11)

True BASIC

	<language> A compiled {BASIC}, by John Kemeny and Thomas
	E. Kurtz, requiring no {line numbers}.

	(1996-03-24)

true colour

	<graphics> A system where the red, green, and blue components
	of a colour are stored in {display memory}, as opposed to
	storing {logical colours} and using a {colour palette} to
	convert them to red, green, blue components.

	The advantage of true colour over a palette is that it does
	not restrict the range of colours which can be displayed on
	screen simultaneously.  For example, if eight bits are used to
	store each component of each {pixel} then a total of 2^24
	(about 17 million) different colours can be displayed at once
	which would require a (very expensive) palette with 3 * 2^24
	bytes (about 50 megabytes) of memory.

	The disadvantage of true colour is that image transformations
	which would normally be done by changing the palette must be
	done to every pixel of the image which can be much slower.

	Compare {high colour}.

	(1996-03-24)

true hacker

	<person> (By analogy with "trufan" from SF fandom) One who
	exemplifies the primary values of hacker culture, especially
	competence and helpfulness to other hackers.  A high
	compliment.  "He spent 6 hours helping me bring up UUCP and
	netnews on my FOOBAR 4000 last week - manifestly the act of a
	true-hacker".

	Compare {demigod}, opposite: {munchkin}.

	[{Jargon File}]

	(1996-01-07)

TRUENAME

	<operating system> An {undocumented} {DOS} command to find the
	{UNC} name of a file or directory on a network drive.

	(2003-10-21)

TrueType

	<text, standard> An {outline font} {standard} first developed
	by {Apple Computer}, and later embraced by {Microsoft}, as a
	competitor to {Adobe Systems, Inc.}'s {PostScript} which is
	still more popular.

	(1995-03-16)

Trumpet

	A {news reader} for {Microsoft Windows}, using the {WinSock}
	library.  There is also an {MS-DOS} version.  Trumpet is
	{shareware} from Australia.

	{(ftp://ftp.utas.edu.au/pc/trumpet)}.

	{(ftp://ftp.demon.co.uk/pub/ibmpc/winsock/stacks/trumpwsk/)}.

	{news:alt.winsock.trumpet}.

	[Author?]

	(1995-01-12)

TRUSIX

	{TRUSted Unix operating system}

truth table

	<logic> A table listing all possible combinations of inputs
	and the corresponding output of a {Boolean} function such as
	{AND}, {OR}, {NOT}, {IMPLIES}, {XOR}, {NAND}, {NOR}.  Truth
	tables can be used as a means of representing a function or as
	an aid in designing a circuit to implement it.

	(1998-07-30)

TS

	Typed Smalltalk.

	A {Smalltalk} by Ralph Johnson <johnson@speedy.cs.uiuc.edu> of
	the {University of Illinois}.

	["TS: An Optimising Compiler for Smalltalk", R.E. Johnson et
	al, SIGPLAN Notices 23(11) (Nov 1988)].

	(1995-01-12)

TSAP

	{Transport Service Access Point}

TSEE

	Technical and Engineering Environment: part of the RTEE
	toolset.

TSIA

	<messaging> Title Says It All.  Something to put in the body
	of a {electronic mail} message or {bulletin board} posting
	when no body is really necessary because the title or subject
	header contains the whole message.

	(2000-02-10)

Tsim

	{Time Simulator}

TSL-1

	Task Sequencing Language.  Language for specifying sequences
	of tasking events in Ada programs.

	["Task Sequencing Language for Specifying Distributed Ada
	Systems", D.C. Luckham et al in PARLE: Parallel Architectures
	and Langs Europe, LNCS 259, Springer 1987, pp.444-463].

TSO

	{Time Sharing Option}

TSP

	{travelling salesman problem}

TSR

	{Terminate and Stay Resident}

TSV

	{tab-separated values}

tt

	<networking> The {country code} for Trinidad and Tobago.

	(1999-01-27)

TTD

	{Telecommunications Device for the Deaf}

TTFN

	<chat> ta-ta for now - goodbye for now.  Used in the UK, USA
	and probably elsewhere.

	(1998-07-02)

TTL

	1. {transistor-transistor logic}.

	2. {Time to Live}.

TTS

	{Text To Speech}

tty

	<hardware> /tit'ee/ ({ITS} pronunciation, but some {Unix}
	people say it this way as well; this pronunciation is not
	considered to have sexual undertones), /T T Y/

	1. {teletypewriter}.

	2. (Especially {Unix}) Any terminal at all; sometimes used to
	refer to the particular terminal controlling a given job (it
	is also the name of a Unix command which outputs the name of
	the current controlling terminal).

	3. ({Unix}) Any {serial port}, whether or not the device
	connected to it is a terminal; so called because under Unix
	such devices have names of the form tty*.  Ambiguity between
	senses 2 and 3 is common but seldom bothersome.

	4. A {TDD}.

	[{Jargon File}]

	(1995-11-23)

TTYL

	<chat> talk to you later.

	(1998-01-18)

TUB

	{Technische Universita't Berlin}.  (Berlin technical
	university).

TUBA

	<networking, protocol> An {Internet} {protocol}, described in
	{RFC 1347}, {RFC 1526} and {RFC 1561}, and based on the {OSI}
	{Connectionless Network Protocol} (CNLP).

	TUBA is one of the proposals for {Internet Protocol Version
	6}.

	(1995-04-03)

tube

	1. <hardware> A {CRT} terminal.  Never used in the mainstream
	sense of TV; real hackers don't watch TV, except for Loony
	Toons, Rocky & Bullwinkle, Trek Classic, the Simpsons, and the
	occasional cheesy old swashbuckler movie.

	2. <electronics> {electron tube}.

	3. <jargon> (IBM) To send a copy of something to someone
	else's terminal.  "Tube me that note."

	[{Jargon File}]

	(1996-02-05)

tube time

	Time spent at a terminal or console.  More inclusive than
	hacking time; commonly used in discussions of what parts of
	one's environment one uses most heavily.  "I find I'm spending
	too much of my tube time reading mail since I started this
	revision."

	[{Jargon File}]

Tuckals

	An old statistical package still in use on some {VM}
	computers.

	(1995-11-28)

TUI

	<interface>

	1. {Textual User Interface}.

	2. Terminal User Interface.  Alternative name for {Textual
	User Interface}.

	3. <communications> {Telephony User Interface}.

	4. {Tangible User Interface}.

	5. {Tactile User Interface}.

	6. {Telescope User Interface}.

	(2003-10-17)

Tukey, John

	{John Tukey}

Tuki

	An intermediate code for functional languages.  "Another
	Implementation Technique for Applicative Languages", H. Glaser
	et al, ESOP86, LNCS 213, Springer 1986.

tunafish

	<humour, operating system> In hackish lore, refers to the
	mutated punchline of an age-old joke to be found at the bottom
	of the manual pages of "tunefs(8)" in the original {4.2BSD}
	distribution.  The joke was removed in later releases once
	commercial sites started using 4.2.  Tunefs relates to the
	"tuning" of {file-system} parameters for optimum performance,
	and at the bottom of a few pages of wizardly inscriptions was
	a "BUGS" section consisting of the line "You can tune a file
	system, but you can't tunafish".  Variants of this can be seen
	in other BSD versions, though it has been excised from some
	versions by humourless management droids.  The [nt]roff source
	for SunOS 4.1.1 contains a comment apparently designed to
	prevent this: "Take this out and a Unix Demon will dog your
	steps from now until the "time_t's wrap around."

	[{Jargon File}]

	(1997-01-12)

tune

	<jargon> (From musical, possibly via automotive, usage) To
	{optimise} a program or system for a particular environment,
	especially by adjusting numerical parameters designed as
	{hooks} for tuning, e.g. by changing "#define" lines in C.
	One may "tune for time" (fastest execution), "tune for space"
	(least memory use), or "tune for configuration" (most
	efficient use of hardware).

	See {bum}, {hot spot}, {hand-hacking}.

	[{Jargon File}]

	(1999-06-05)

tunneling

	<spelling US spelling of {tunnelling}.

tunnelling

	<networking> (US: "tunneling") A networking technique used to
	carry data encoded in one protocol, A, over a channel using
	another protocol, B.  Protocol A is said to be "encapsulated" in
	protocol B and treats B as though it were a {data link layer}.
	Tunnelling is used to get data between {administrative domains}
	which use a protocol that is not supported by the {internet}
	connecting those domains.

	A historical example would be transmitting written text via {Morse
	code} - instead of having someone carry the text on paper, it is
	converted to (or encapsulated as) Morse code at one end and
	converted back to written text at the other.

	A more recent example would be tunnelling {IPv6} over an {IPv4}
	network that does not support IPv6 natively.  Tunnelling
	techniques such as {6to4} or {6rd} are used to encapsulate {IPv6}
	in the absence of native {dual-stack} support.

	(2013-10-07)

Tunny Emulator

	<hardware, cryptography> A special-purpose computer designed
	at {Bletchley Park} (UK) based upon the reverse engineering of
	the Lorenz Cypher.  The Lorenz Cypher was used by the German
	army to encrypt high command orders for transmission via
	teleprinter (the {Enigma} was a field-use cypher).

	Once the key to a message was discovered (by the computer
	{Colossus}) the Tunny machine would be set to decrypt the
	message.  The process took about four days from intercept to
	printout. The original Tunny machine was built about 1943 and
	scrapped after the war.  In 2011 a working model was re-built
	at Bletchley Park where it is on display.

	(2012-03-25)

TUPLE

	{Toyohashi University Parallel Lisp Environment}

tuple

	<programming> In {functional languages}, a data object
	containing two or more components.  Also known as a product
	type or pair, triple, quad, etc.  Tuples of different sizes
	have different types, in contrast to lists where the type is
	independent of the length.  The components of a tuple may be
	of different types whereas all elements of a list have the
	same type.

	Examples of tuples (in {Haskell} notation) are: (1,2),
	("Tuple",True), (w,(x,y),z).  The degenerate tuple type with
	zero components, written (), is known as the unit type since
	it has only one possible value which is also written ().

	The implementation of tuples in a language may be either
	"{lifted}" or not.  If tuples are lifted then (bottom, bottom)
	/= bottom (where {bottom} represents non-termination) and the
	evaluation of a tuple may fail to terminate.  E.g. in Haskell:

		f (x, y) = 1    -->    f bottom = bottom
				       f (bottom, bottom) = 1

	With lifted tuples, a tuple pattern is refutable.  Thus in
	Haskell, {pattern matching} on tuples is the same as pattern
	matching on types with multiple constructors ({algebraic data
	types}) - the expression being matched is evaluated as far as
	the top level constructor, even though, in the case of tuples,
	there is only one possible constructor for a given type.

	If tuples are unlifted then (bottom, bottom) = bottom and
	evaluation of a tuple will never fail to terminate though any
	of the components may.  E.g. in {Miranda}:

		f (x, y) = 1    -->    f bottom = 1
				       f (bottom, bottom) = 1

	Thus in Miranda, any object whose type is compatible with a
	tuple pattern is assumed to match at the top level without
	evaluation - it is an {irrefutable} pattern.  This also
	applies to user defined data types with only one constructor.
	In Haskell, patterns can be made irrefutable by adding a "~"
	as in

		f ~(x, y) = 1.

	If tuple constructor functions were {strict} in all their
	arguments then (bottom, x) = (x, bottom) = bottom for any x
	so matching a refutable pattern would fail to terminate if
	any component was bottom.

	(2012-03-25)

tuple calculus

	<database> A form of {relational calculus} in which a
	variable's only permitted values are {tuples} of a given
	{relation}.

	{Codd}'s unimplemented language {ALPHA} and the subsequent
	{QUEL} are examples of the tuple calculus.

	(1998-10-05)

Tuple Space Smalltalk

	["Using Tuple Space Communication in Distributed
	Object-Oriented Languages", S. Matsuoka et al, SIGPLAN Notices
	23(11):276-284 (Nov 1988)].

	(1994-11-08)

tupling

	A {program transformation} where several results are returned
	from a single traversal of a data structure.  E.g.

		mean l = sum l / length l

			==>

		mean l = s/n
			 where
			 (s,n) = sumLen l

		sumLen []     = (0,0)
		sumLen (x:xs) = (s+x, n+1)
				where
				(s,n) = sumLen xs

	In {procedural} languages this technique is known as
	{horizontal loop combination} because it uses one loop to
	calculate several results.

	Another form of tupling transformation is used to avoid
	repeated evaluation where a function generates several
	identical calls to itself.  By analysing the pattern of
	recursion (see {descent function}) it is possible to arrange
	for these identical calls to share results.  E.g.

		fib 0 = 1
		fib 1 = 1
		fib n = fib (n-1) + fib (n-2)

			==>

		fib n = v where (_,v) = fibt n
		fibt 0 = (1,1)
		fibt n = (u+v,u) where (u,v) = fibt (n-1)

	(1995-01-12)

Turbo C

	<language> {Borland}'s {C} {compiler} for {IBM PCs}.

	Turbo C, version 1.0, was introduced by Borland in 1987.  It
	offered the first integrated edit-compile-run development
	environment for {C} on {IBM PCs}.  It ran in 384KB of memory.
	It allowed inline assembly, supported all memory models, and
	offered optimisations for speed, size, {constant folding}, and
	{jump elimination}.

	Version 1.5 shipped on five 360 KB diskettes of uncompressed
	files, and came with sample C programs, including a stripped
	down spreadsheet called mcalc.

	Turbo C 2.0 has a debugger, a fast assembler, and an extensive
	graphics library.

	Turbo C has been largely supplanted by {Turbo C++}, introduced
	circa September, 1990 for both {MS-DOS} and {Microsoft
	Windows}.

	["Compiling the facts on C", Richard Hale Shaw, PC Magazine,
	September 13, 1988, pages 115-183].

	(1996-10-31)

Turbo C++

	<language> {Borland}'s first {C}/{C++} {integerated
	development environment}, including a {compler}, a {linker}, a
	high-level {debugger}, a code editor and other tools.

	Turbo C++ conformed to {AT&T}'s C++ 2.0 language
	specification.  The development environment and {command line}
	tools originally ran under {MS-DOS}.  A 1992 version ran on
	{Windows 3.1}.  Version 1 came in two forms: Turbo C++ and
	Turbo C++ Professional.  The latter included {Turbo
	Assembler}, {Turbo Debugger} and {Turbo Profile}.

	It superceded the C-only {Turbo C} and was itself superceded
	by {C++ Builder}.

	{(http://community.borland.com/article/0,1410,21751,00.html)}

	(2008-01-21)

Turbo Debugger

	<programming> A {source-level debugger} designed for use with
	{Borland} and other {compilers}.

	{(http://borland.com/)}.

	(1999-04-23)

turbo nerd

	{computer geek}

Turbo Pascal

	<language, product> {Borland International}'s {Pascal}.
	Perhaps the first integrated development environment for
	{MS-DOS}.

	Versions 1.0-3.0: standard Pascal with a few extensions
	Versions 4.0 (1987) and 5.0: {separate compilation}.  Version
	5.5: {object-oriented}.  Version 6.0: {Turbo Vision} OOP
	library.

	{(http://borland.com/Product/ProdInfo.html)}.

	{tptc} translates Turbo Pascal to {Turbo C}.

	(1995-05-01)

Turbo Prolog

	A {strongly typed} Prolog-like {logic programming} language.
	1986.  It has user-defined domains.  Programs are arranged in
	sections: DOMAINS, CLAUSES, PREDICATES, DATABASE and GOAL.  It
	is currently known as {PDC Prolog} and is distributed by
	{Prolog Development Center}, Atlanta +1 404 873 1366.  E-mail:
	<pdc@mcimail.com>.

Turing

	1. {Alan Turing}.

	2. R.C. Holt <holt@csri.toronto.edu> & J.R. Cordy
	<cordy@cs.queensu.ca>, U Toronto, 1982.  Descendant of
	Concurrent Euclid, an airtight super-Pascal.  Used mainly for
	teaching programming at both high school and university level.

	Available from Holt Software Assocs, Toronto.

	Versions for Sun, {MS-DOS}, Mac, etc.

	E-mail: <distrib@turing.toronto.edu>.

	["Turing Language Report", R.C. Holt & J.R. Cordy, Report
	CSRI-153, CSRI, U Toronto, Dec 1983].

	["The Turing Programming Language", R.C. Holt & J.R. Cordy,
	CACM 31(12) (Dec 1988)].

Turing Machine

	<computability> A hypothetical machine defined in 1935-6 by
	{Alan Turing} and used for {computability theory} proofs.  It
	consists of an infinitely long "tape" with symbols (chosen
	from some {finite set}) written at regular intervals.  A
	pointer marks the current position and the machine is in one
	of a finite set of "internal states".  At each step the
	machine reads the symbol at the current position on the tape.
	For each combination of current state and symbol read, a
	program specifies the new state and either a symbol to write
	to the tape or a direction to move the pointer (left or right)
	or to halt.

	In an alternative scheme, the machine writes a symbol to the
	tape *and* moves at each step.  This can be encoded as a write
	state followed by a move state for the write-or-move machine.
	If the write-and-move machine is also given a distance to move
	then it can emulate an write-or-move program by using states
	with a distance of zero.  A further variation is whether
	halting is an action like writing or moving or whether it is a
	special state.

	[What was Turing's original definition?]

	Without loss of generality, the symbol set can be limited to
	just "0" and "1" and the machine can be restricted to start on
	the leftmost 1 of the leftmost string of 1s with strings of 1s
	being separated by a single 0.  The tape may be infinite in
	one direction only, with the understanding that the machine
	will halt if it tries to move off the other end.

	All computer {instruction sets}, {high level languages} and
	computer architectures, including {parallel processors}, can
	be shown to be equivalent to a Turing Machine and thus
	equivalent to each other in the sense that any problem that
	one can solve, any other can solve given sufficient time and
	memory.

	Turing generalised the idea of the Turing Machine to a
	"Universal Turing Machine" which was programmed to read
	instructions, as well as data, off the tape, thus giving rise
	to the idea of a general-purpose programmable computing
	device.  This idea still exists in modern computer design with
	low level {microcode} which directs the reading and decoding
	of higher level {machine code} instructions.

	A {busy beaver} is one kind of Turing Machine program.

	Dr. Hava Siegelmann of {Technion} reported in Science of 28
	Apr 1995 that she has found a mathematically rigorous class of
	machines, based on ideas from {chaos} theory and {neural
	networks}, that are more powerful than Turing Machines.  Sir
	Roger Penrose of {Oxford University} has argued that the brain
	can compute things that a Turing Machine cannot, which would
	mean that it would be impossible to create {artificial
	intelligence}.  Dr. Siegelmann's work suggests that this is
	true only for conventional computers and may not cover {neural
	networks}.

	See also {Turing tar-pit}, {finite state machine}.

	(1995-05-10)

Turingol

	<language> A {high-level language} for programming {Turing
	Machines} by {Donald Knuth}.  It was the subject of the first
	construction of a nontrivial {attribute grammar}.

	["Semantics of Context-Free Languages", D. Knuth, Math Sys Thy
	2:127-145 (1975)].

	(1995-10-08)

Turing Plus

	Systems programming language, a concurrent descendant of
	Turing.

	["The Turing Plus Report", R.C. Holt & J.R. Cordy, CSRI, U
	Toronto, Feb 1987].

	Available from Holt Software Assocs, Toronto
	<distrib@hsa.on.ca>.

Turing tar-pit

	A place where anything is possible but nothing of interest is
	practical.  {Alan M. Turing} helped lay the foundations of
	computer science by showing that all machines and languages
	capable of expressing a certain very primitive set of
	operations are logically equivalent in the kinds of
	computations they can carry out, and in principle have
	capabilities that differ only in speed from those of the most
	powerful and elegantly designed computers.  However, no
	machine or language exactly matching Turing's primitive set
	has ever been built (other than possibly as a classroom
	exercise), because it would be horribly slow and far too
	painful to use.

	A "Turing tar-pit" is any computer language or other tool that
	shares this property.  That is, it's theoretically universal
	but in practice, the harder you struggle to get any real work
	done, the deeper its inadequacies suck you in.  Compare
	{bondage-and-discipline language}.

	A tar pit is a geological occurence where subterranean tar
	leaks to the surface, creating a large puddle (or pit) of tar.
	Animals wandering or falling in get stuck, being unable to
	extricate themselves from the tar.  La Brea, California, has a
	museum built around the fossilized remains of mammals and
	birds found in such a tar pit.

	[{Jargon File}]

	(1998-06-27)

Turing test

	<artificial intelligence> A criterion proposed by {Alan
	Turing} in 1950 for deciding whether a computer is
	intelligent.  Turing called it "the Imitation Game" and
	offered it as a replacement for the question, "Can machines
	think?"

	A human holds a written conversation on any topic with an
	unseen correspondent (nowadays it might be by {electronic
	mail} or {chat}).  If the human believes he is talking to
	another human when he is really talking to a computer then the
	computer has passed the Turing test and is deemed to be
	intelligent.

	Turing predicted that within 50 years (by the year 2000)
	technological progress would produce computing machines with a
	capacity of 10**9 bits, and that with such machinery, a
	computer program would be able to fool the average questioner
	for 5 minutes about 70% of the time.

	The {Loebner Prize} is a competition to find a computer
	program which can pass an unrestricted Turing test.

	{Julia (http://fuzine.mt.cs.cmu.edu/mlm/julia.html)} is a
	program that attempts to pass the Turing test.

	See also {AI-complete}.

	{Turing's paper
	(http://cogprints.ecs.soton.ac.uk/archive/00000499/00/turing.html)}.

	(2004-02-17)

turist

	/too'rist/ Variant spelling of {tourist}.  Possibly influenced
	by {luser} and "{Turing}".

	[{Jargon File}]

TURN

	<messaging, protocol> An {SMTP} command with which a {client}
	asks the {server} to open an SMTP connection to the client,
	thus reversing their roles.

	Superseded by {ETRN}.

	(1997-11-21)

turn-key

	<jargon, application> A term which describes a complete system
	(hardware and software) which can be used for a specific
	application without requiring further programming or software
	installation.  The user can just "turn the key" (switch it on)
	and use it.

	Compare {end-to-end solution}.

	(2006-03-30)

turtle graphics

	<graphics> The line drawings produced by programs in {LOGO}.

	(2003-05-04)

TUTOR

	A Scripting language on {PLATO} systems from {CDC}.

	["The TUTOR Language", Bruce Sherwood, Control Data, 1977].

Tuxedo

	<database, networking> {Cross-platform} distributed
	{transaction monitor} {middleware} marketed by {BEA systems}.
	Tuxedo supports the production of {scalable} {client-server}
	applications and the coordination of {transactions} spanning
	heterogeneous {databases}, {operating systems}, and
	{hardware}.

	{BEA Home (http://beasys.com/)}.

	[Connection with {Novell, Inc.}?]

	(2003-01-08)

TV

	{television}

tv

	<networking> The {country code} for Tuvalu.

	Heavily used for {vanity domains} by TV stations.

	(1999-01-27)

tw

	<networking> The {country code} for Taiwan.

	(1999-01-27)

TWAIN

	<graphics, standard> An {image capture} {API} for {Microsoft
	Windows} and {Apple Macintosh} {operating systems} that
	enables the user to control a {scanner} or {digital camera}
	from {image processing} software.

	TWAIN was first released on 1992-02-29 and is currently
	ratified at version 2.0 as of 2005-11-28.  It is maintained by
	the TWAIN Working Group.

	Kevin Bier, chairman-emeritus of the TWAIN Working Group and
	the one of the original co-author/editors of TWAIN 1.0, chose
	the name TWAIN after reading letters by Mark Twain.  It was
	unofficially considered to mean "toolkit without an important
	name."

	The word "twain" is an archaic form meaning "two".  It appears
	in Kipling's "The Ballad of East and West" - "...and never the
	twain shall meet...", reflecting the difficulty, at the time,
	of connecting scanners and personal computers.  It was
	up-cased to TWAIN to make it more distinctive.  This led
	people to believe it was an acronym, and then to a contest to
	come up with an expansion.  None were selected, but the entry
	"Technology Without An Interesting Name" continues to haunt
	the standard.

	{The TWAIN Working Group (http://twain.org/)}.

	(2000-02-25)

tweak

	1. To change slightly, usually in reference to a value.  Also
	used synonymously with {twiddle}.  If a program is almost
	correct, rather than figure out the precise problem you might
	just keep tweaking it until it works.  See {frobnicate} and
	{fudge factor}; also see {shotgun debugging}.

	2. To {tune} or {bum} a program; preferred usage in the UK.

	[{Jargon File}]

tweening

	<graphics> An {interpolation} technique where an {animation}
	program generates extra frames between the key frames that the
	user has created.  This gives smoother animation without the
	user having to draw every frame.

	A scene is described by a mathematical model - a set of two-
	or three-dimensional objects whose positions in are given by
	sets of coordinates.  Tweening uses mathematical formulae to
	generate these coordinates at a sequence of discrete times.
	The simplest system would move each point at a constant rate
	in a straight line between its initial and final positions,
	though other kinds of path are possible.  The coordinates at
	each time step are used to generate (or "render") a
	two-dimensional image of the scene which forms one "frame" of
	the animation.

	Tweening is similar to {morphing} except that morphing is
	usually performed by interpolating between corresponding
	points marked by the user on two images, rather than between
	two configurations of a model.

	(1995-04-04)

tweeter

	{woofer}

TWENEX

	<operating system> /twe'neks/ The TOPS-20 {operating system}
	by {DEC} - the second proprietary OS for the {PDP-10} -
	preferred by most PDP-10 hackers over TOPS-10 (that is, by
	those who were not {ITS} or {WAITS} partisans).  TOPS-20 began
	in 1969 as {Bolt, Beranek & Newman}'s {TENEX} operating system
	using special paging hardware.  By the early 1970s, almost all
	of the systems on the {ARPANET} ran TENEX.  DEC purchased the
	rights to TENEX from BBN and began work to make it their own.
	The first in-house code name for the operating system was
	VIROS (VIRtual memory Operating System); when customers
	started asking questions, the name was changed to SNARK so DEC
	could truthfully deny that there was any project called VIROS.
	When the name SNARK became known, the name was briefly
	reversed to become KRANS; this was quickly abandoned when
	someone objected that "krans" meant "funeral wreath" in
	Swedish (though some Swedish speakers have since said it means
	simply "wreath"; this part of the story may be apocryphal).

	Ultimately DEC picked TOPS-20 as the name of the operating
	system, and it was as TOPS-20 that it was marketed.  The
	hacker community, mindful of its origins, quickly dubbed it
	TWENEX (a contraction of "twenty TENEX"), even though by this
	point very little of the original TENEX code remained
	(analogously to the differences between AT&T V6 Unix and BSD).
	DEC people cringed when they heard "TWENEX", but the term
	caught on nevertheless (the written abbreviation "20x" was
	also used).  TWENEX was successful and very popular; in fact,
	there was a period in the early 1980s when it commanded as
	fervent a culture of partisans as Unix or ITS - but DEC's
	decision to scrap all the internal rivals to the VAX
	architecture and its relatively stodgy VMS OS killed the
	DEC-20 and put a sad end to TWENEX's brief day in the sun.
	DEC attempted to convince TOPS-20 users to convert to {VMS},
	but instead, by the late 1980s, most of the TOPS-20 hackers
	had migrated to Unix.

	[{Jargon File}]

	(1995-04-01)

Twente Compiler Generator System

	<language, tool> (TCGS) A {compiler generator} developed at
	the {University of Twente}, The Netherlands.

	(1998-04-27)

Twentel

	A {functional language}.

	["The TWENTEL System (Version 1).", H. Kroeze, CS Dept TR, U
	Twente, 1986].

twiddle

	1. <character> The {tilde} character.

	2. <jargon> (To make) a small or insignificant change.
	E.g. twiddling a program often fixes one bug and generates
	several new ones (see also {shotgun debugging}).  Bits are
	often twiddled.  Twiddling a switch or knob implies much less
	sense of purpose than toggling or {tweak}ing it; see
	{frobnicate}.  {Bit twiddling} connotes aimlessness, and at
	best doesn't specify what you're doing to the bit; to
	"{toggle} a bit" has a more specific meaning.

	[{Jargon File}]

	(1995-01-31)

TWIG

	Tree-Walking Instruction Generator.

	A {code generator} language.  {ML-Twig} is an {SML/NJ}
	variant.

	["Twig Language Manual", S.W.K. Tijang, CS TR 120, Bell Labs,
	1986].

	(1995-01-31)

twilight zone

	[IRC]  Notionally, the area of cyberspace where {IRC}
	operators live.  An {op} is said to have a "connection to the
	twilight zone".

	[{Jargon File}]

twink

	/twink/ [UCSC] Equivalent to {read-only user}.  Also reported
	on the {Usenet} group soc.motss; may derive from gay slang for
	a cute young thing with nothing upstairs (compare mainstream
	"chick").

twinning

	<storage> Keeping a {mirror} of a {magnetic tape}.

	(1997-07-18)

Twin Vector Quantization

	<audio, compression> (VQF) Part of the {MPEG-4} {standard}
	dealing with time domain weighted interleaved {vector
	quantization}.

	[Why "VQF"?]

	(2001-12-17)

twip

	<unit, graphics> (TWentIeth of a Point) 1/20 of a {Postscript
	point}, or 1/1440th of an inch.  There are thus 1440 twips to
	an inch or about 567 twips to a centimeter.

	Twips are used in {Microsoft} formats and products, notably
	{Rich Text Format}, {Visual BASIC}, {Visual C++}, and {printer
	drivers}; and in {IBM} {AFP} products.

	Twips were devised in the olden days to describe the sizes of
	characters produced by {dot matrix printers} that were
	constrained to multiples of either 12 or 10 dots per inch.

	[Is it definitely relative to a __Postscript__ point, as opposed
	to one of the other definitions of {point}?]

	(2002-03-11)

twirling baton

	<graphics> The overstrike sequence -/|\-/|\- which produces an
	animated twirling baton.  If you output it with a single
	{backspace} between characters, the baton spins in place.  If
	you output the sequence BS SP between characters, the baton
	spins from left to right.  If you output BS SP BS BS between
	characters, the batton spins from right to left.

	The twirling baton was a popular component of animated
	signature files on the pioneering {PLATO} educational
	{time-sharing} system.  The "{archie}" {Internet} service is
	perhaps the best-known baton program today; it uses the
	twirling baton as an idler indicating that the program is
	working on a query.

	[{Jargon File}]

	(1995-02-23)

twisted pair

	<hardware> A type of cable in which pairs of conductors are
	twisted together to randomise possible {cross-talk} from
	nearby wiring.  Inadequate twisting is detectable using modern
	cable testing instruments.

	(1995-02-23)

twisted pair only

	<networking> (TPO) A network connection to an {Ethernet}
	{PCMCIA} card using {twisted pair} cable.

	[Other options?]

	(1997-05-12)

Twitter

	<messaging> A free {Internet} service for posting short
	messages, known as "tweets", via a central server, which are
	then sent to all users who have chosen to follow you or to a
	specific user.  A variety of {client} programs are available
	in addition to the {web site}.  Launched in about 2008.

	{Twitter home (http://twitter.com/)}.

	(2009-06-10)

twm

	Tab Window Manager.

	A {window manager} for the {X Window System}.  Twm provides
	{titlebars}, shaped windows, several forms of icon management,
	user-defined macro functions, {click-to-type} and
	pointer-driven {keyboard focus}, and user-specified key and
	pointer button bindings.  It can be extensively configured by
	a startup file.

	Twm was written by Tom LaStrange, {Solbourne Computer}; Jim
	Fulton, MIT {X Consortium}; Steve Pitschke, {Stardent
	Computer}; Keith Packard, MIT X Consortium; Dave Sternlicht,
	MIT X Consortium; Dave Payne, {Apple Computer}.

	An extended version, {vtwm}, provides a {virtual desktop}.

	[Why "Tab"?]

	(1995-02-14)

.twmrc

	<operating system> (Tab Window Manager run commands) The
	configuration file for {twm}.

	See also {rc}.

	(1996-04-09)

two-binary, one-quaternary

	<communications> (2B1Q) A {physical layer} encoding used for
	{Integrated Services Digital Network} {basic rate interface}.
	2B1Q represents two {bits} (2B - a "dibit") using one of four
	signal levels (1Q - a "quadratude").  The first bit of the
	dibit is indicated by polarity: positive indicates a binary 1
	and negative indicates a 0.  The second half of the dibit is
	indicated by voltage magnitude: 1 Volt indicates a binary 1
	and 3 Volts indicates binary 0.

	(2003-01-10)

twonkie

	/twon'kee/ The software equivalent of a Twinkie (a variety of
	sugar-loaded junk food, or (in gay slang) the male equivalent
	of "chick"); a useless "feature" added to look sexy and
	placate a {marketroid}.

	Compare {Saturday-night special}.

	The term may also be related to "The Twonky", title menace of
	a classic SF short story by Lewis Padgett (Henry Kuttner and
	C. L. Moore), first published in the September 1942
	"Astounding Science Fiction" and subsequently much
	anthologised.

	[{Jargon File}]

	(1994-10-20)

two-phase commit

	<database> A technique for maintaining {integrity} in
	distributed {databases}.  Where a system uses two or more
	database, a transaction among the distibuted database should
	be {atomic} ("all or nothing").  This is done by handling the
	transaction in two phases.  First the databases prepare the
	transaction, confirm that it is possible to process it, and
	lock the relevant record.

	Once all the required databases confirm that the transaction
	is viable, the system instructs them all to {commit} it -
	i.e. to make it permanent.  If it is not possible to process
	it, the system will instruct the databases to {rollback}
	(undo) the transaction.

	(2000-02-28)

twos complement

	<data> A system used in some computers to represent negative
	numbers in {binary}.  Each {bit} of the number is inverted
	(zeros are replaced with ones and vice versa), as for {ones
	complement}, but then one (000...0001) is added (ignoring
	overflow).  This avoids the two representations for zero found
	in ones complement by using all ones to represent -1.

		...
		000...00011 = +3
		000...00010 = +2
		000...00001 = +1
		000...00000 =  0
		111...11111 = -1
		111...11110 = -2
		111...11101 = -3
		...

	This representation simplifies the logic required for addition
	and subtraction, at the expense of a little extra complexity
	for negation.

	(1994-10-31)

two-to-the-N

	An amount much larger than {N} but smaller than {infinity}.
	"I have 2-to-the-N things to do before I can go out for lunch"
	means you probably won't show up.

	Numbers of the form two-to-the-N are very important in
	computing because they represent the value of bit N of a
	binary number (counting from 0) and the number of things you
	can count with an N bit number.

	[{Jargon File}]

	(1994-12-06)

two-valued logic

	<logic> (Commonly known as "{Boolean algebra}") A mathematical
	system concerning the two {truth values}, TRUE and FALSE and
	the functions {AND}, {OR}, {NOT}.  Two-valued logic is one of
	the cornerstones of {logic} and is also fundamental in the
	design of {digital electronics} and {programming languages}.

	The term "Boolean" is used here with its common meaning -
	two-valued, though strictly {Boolean algebra} is more general
	than this.

	Boolean functions are usually represented by {truth tables}
	where "0" represents "false" and "1" represents "true".  E.g.:

		A | B | A AND B
		--+---+--------
		0 | 0 |    0
		0 | 1 |    0
		1 | 0 |    0
		1 | 1 |    1

	This can be given more compactly using "x" to mean "don't
	care" (either true or false):

		A | B | A AND B
		--+---+--------
		0 | x |    0
		x | 0 |    0
		1 | 1 |    1

	Similarly:

	        A | NOT A       A | B | A OR B
	        --+------       --+---+--------
	        0 |  1          0 | 0 |   0
	        1 |  0          x | 1 |   1
	                        1 | x |   1

	Other functions such as {XOR}, {NAND}, {NOR} or functions of
	more than two inputs can be constructed using combinations of
	AND, OR, and NOT.  AND and OR can be constructed from each
	other using {DeMorgan's Theorem}:

		A OR B   =  NOT ((NOT A) AND (NOT B))
		A AND B	 =  NOT ((NOT A) OR (NOT B))

	In fact any Boolean function can be constructed using just NOR
	or just NAND using the identities:

		NOT A  =  A NOR A
		A OR B  =  NOT (A NOR B)

	and {DeMorgan's Theorem}.

	(2003-06-18)

TX-0

	The first transistorised computer, the direct ancestor of the
	{PDP-1} built at {MIT}'s Lincoln Lab in 1957.

	(1994-12-06)

TXL

	{Tree Transformation Language}

TYMCOM-X

	<operating system> {Tymshare}'s {operating system} which ran
	for many years on Tymshare's {PDP-10s}.  It was a descendent
	of {TOPS-10} but had many of the important features of
	{TOPS-20} such as real {paging} and controllable/spawnable
	processes.  TYMCOM-X, one of the best kept secrets in the
	PDP-10 folklore, was written by Bill Weiher, Vance Socci
	<vsocci@vcctech.com>, Allen Ginzburg, Karen Kolling, Art
	Atkinson, Gary Morgenthaler (founder of the company that
	produced {IDRIS}), Todd Corenson and Murray Bowles.  Some
	copies still run today.  Most {TYMNET} development was done
	under TYMCOM-X and Tymshare sold a TYMCOM-X system to {TRW} to
	use in their credit reporting network, which was based on a
	purchased copy of TYMNET circa 1979.

	[E-mail from Vance Socci 1994-05-20].

	(1995-11-09)

TYMNET

	<networking, history> A United States-wide commercial computer
	network, created by {Tymshare, Inc.} some time before 1970,
	and used for {remote login} and file transfer.  The network
	public went live in November 1971.

	In its original implementation, it consisted of fairly simple
	circuit-oriented {nodes}, whose circuits were created by
	central network supervisors writing into the appropriate
	nodes' "permuter tables".  The supervisors also performed
	login validations as well as circuit management.  Circuits
	were character oriented and the network was oriented toward
	interactive character-by-character {full-duplex}
	communications circuits.

	The network had more than one supervisor running, but only one
	was active, the others being put to sleep with "sleeping pill"
	messages.  If the active supervisor went down, all the others
	would wake up and battle for control of the network.  After
	the battle, the supervisor with the highest pre-set priority
	would dominate, and the network would then again be controlled
	by only one supervisor.  (During the takeover battle, the net
	consisted of subsets of itself across which new circuits could
	not be built).  Existing circuits were not affected by
	supervisor switches.

	There was a clever scheme to switch the echoing function
	between the local node and the host based on whether or not a
	special character had been typed by the user.  Data transfers
	were also possible via "auxiliary circuits".

	The Tymshare hosts (which ran customer code) were {SDS 940},
	{DEC} {PDP-10}, and eventually {IBM 370} computers.  {Xerox}
	{XDS 940} might have been used if Xerox, who bought the design
	for the SDS 940 from Scientific Data Systems, had ever built
	any.

	The switches were originally {Varian Data Machines} 620i.  The
	{Interdata 8/32} was never used because the performance was
	disappointing.  The TYMNET Engine, based loosely on the
	Interdata 7/32, was developed instead to replace the Varian
	620i.  In the early 1990s, newer "Turbo" nodes based on the
	{Motorola 68000} began to replace the 7/32s.  These were later
	replaced with {SPARCs}.

	PDP-10s supported (and still do in 1999) cross-platform
	development and billing.

	{Tymshare, Inc.} originally wrote and implemented TYMNET to
	provide nationwide access for their {time-sharing} customers.

	La Roy Tymes booted up the public TYMNET in November of 1971
	and, as of March 2002, it had been running ever since without
	a single system crash.

	TYMNET was the largest commercial network in the United States
	in its heyday, with nodes in every major US city and a few
	overseas as well.  Tymshare acquired a French subsidiary,
	{SLIGOS}, and had TYMNET nodes in Paris, France.

	Tymshare sold the TYMNET network software to {TRW}, who
	created their own private network (which was not called
	TYMNET).  In about 1979, TYMNET Inc. was spun off from
	Tymshare, Inc. to continue administration and development of
	the network.

	TYMNET outlived its parent company Tymshare and was acquired
	by {MCI}.  As of May 1994 they still ran three {DEC KL-10s}
	under {TYMCOM-X}, although they planned to decommission them
	soon.

	The original creators of TYMNET included: Ann Hardy, Norm
	Hardy, Bill Frantz.  La Roy Tymes (who always insisted that
	his name was NOT the source of the name) wrote the first
	supervisor which ran on the 940.  Joe Rinde made many
	significant technical and marketing contributions.  La Roy
	wrote most of the code of the network proper.  Several others
	wrote code in support of development and administration.  Just
	recently (1999) La Roy, on contract, wrote a version of the
	supervisor to run on {SPARC} hardware.

	The name TYMNET was suggested by Vigril Swearingen in a weekly
	meeting between Tymshare technical and marketing staff in
	about 1970.

	{(http://cap-lore.com/ETH.html)}.

	[E-mail from La Roy Tymes]

	(2002-11-26)

Tymshare, Inc.

	<company> The US company that created the {TYMNET} network.

	(1999-03-17)

type

	<theory, programming> (Or "data type") A set of values from
	which a {variable}, {constant}, {function}, or other
	{expression} may take its value.  A type is a classification
	of data that tells the {compiler} or {interpreter} how the
	programmer intends to use it.  For example, the process and
	result of adding two variables differs greatly according to
	whether they are integers, floating point numbers, or strings.

	Types supported by most programming languages include
	{integers} (usually limited to some range so they will fit in
	one {word} of storage), {Booleans}, {floating point numbers},
	and characters.  {Strings} are also common, and are
	represented as {lists} of characters in some languages.

	If s and t are types, then so is s -> t, the type of
	{functions} from s to t; that is, give them a term of type s,
	functions of type s -> t will return a term of type t.

	Some types are {primitive} - built-in to the language, with no
	visible internal structure - e.g. Boolean; others are
	composite - constructed from one or more other types (of
	either kind) - e.g. {lists}, {arrays}, {structures}, {unions}.
	{Object-oriented programming} extends this with {classes}
	which encapsulate both the structure of a type and the
	operations that can be performed on it.

	Some languages provide {strong typing}, others allow {implicit
	type conversion} and/or {explicit type conversion}.

	(2003-12-22)

type-ahead

	<operating system> The facility where the user can type more
	characters before the system has fully responded to those
	already typed.  Type-ahead is common on most current systems.
	It allows the user to type without worrying that the computer
	may miss input because it is temporarily busy,
	e.g. reformating a page, checking spelling, or simply
	suffering from network latency.  There is usually some limit
	to the amount of input the system can buffer, beyond which it
	__will__ lose input.

	[Equivalent term for {speech recognition}?]

	(2003-06-15)

type-ahead search

	{incremental search}

type assignment

	<theory> A mapping of the {free variables} of some expression
	E to types.  This is used in {type inference} to deduce the
	type of E and its subexpressions.

	(2002-02-22)

type class

	A set of types for which certain operations or {methods} are
	defined.  E.g. the class Number might have methods for addition
	and subtraction.  {Class}es are a feature of {object oriented
	languages} and of the {functional programming} language
	{Haskell}.  See also {inheritance}.

typed lambda-calculus

	<theory> (TLC) A variety of {lambda-calculus} in which every
	term is labelled with a {type}.

	A {function application} (A B) is only synctactically valid if
	A has type s --> t, where the type of B is s (or an {instance}
	or s in a {polymorphic} language) and t is any type.

	If the types allowed for terms are restricted, e.g. to
	{Hindley-Milner types} then no term may be applied to itself,
	thus avoiding one kind of non-terminating evaluation.

	Most {functional programming} languages, e.g. {Haskell}, {ML},
	are closely based on variants of the typed lambda-calculus.

	(1995-03-25)

TypedProlog

	<language> A {strongly typed} {logic programming} language.

	(1995-03-25)

typeface

	<text> The style or design of a {font}.  Other independent
	parameters are size, boldness (thickness of lines), and
	obliqueness (a sheer transformation applied to the characters,
	not to be confused with a specifically designed italic font).

	(1996-08-02)

type inference

	<programming> An {algorithm} for ascribing types to
	expressions in some language, based on the types of the
	constants of the language and a set of type inference rules
	such as

		f :: A -> B,  x :: A
		---------------------  (App)
		      f x :: B

	This rule, called "App" for application, says that if
	expression f has type A -> B and expression x has type A then
	we can deduce that expression (f x) has type B.  The
	expressions above the line are the premises and below, the
	conclusion.  An alternative notation often used is:

		G |- x : A

	where "|-" is the turnstile symbol ({LaTeX} \vdash) and G is a
	type assignment for the free variables of expression x.  The
	above can be read "under assumptions G, expression x has type
	A".  (As in Haskell, we use a double "::" for type
	declarations and a single ":" for the {infix} list constructor,
	cons).

	Given an expression

		plus (head l) 1

	we can label each subexpression with a type, using type
	variables X, Y, etc. for unknown types:

		(plus :: Int -> Int -> Int)
			(((head :: [a] -> a) (l :: Y)) :: X)
			(1 :: Int)

	We then use {unification} on {type variables} to match the
	{partial application} of plus to its first argument against
	the App rule, yielding a type (Int -> Int) and a substitution
	X = Int.  Re-using App for the application to the second
	argument gives an overall type Int and no further
	substitutions.  Similarly, matching App against the
	application (head l) we get Y = [X].  We already know X = Int
	so therefore Y = [Int].

	This process is used both to infer types for expressions and
	to check that any types given by the user are consistent.

	See also {generic type variable}, {principal type}.

	(1995-02-03)

type scheme

	A typing of an expression which may include {type variables}.
	E.g.

		\ x . x :: a -> a

	where a is a {generic type variable} which may be instantiated
	to any type.

	(1994-10-31)

typo

	{typographical error}

typographical error

	(typo) An error while inputting text via keyboard, made
	despite the fact that the user knows exactly what to type in.
	This usually results from the operator's inexperience at
	keyboarding, rushing, not paying attention, or carelessness.

	Compare: {mouso}, {thinko}.

	(1996-04-20)

TYPOL

	<language> A specialised {logic programming} language.

	["TYPOL: A Formalism to Implement Natural Semantics",
	T. Despeyroux, RR 94, INRIA, 1988].

	(1994-10-31)

typo squatter

	<World-Wide Web> A {domain squatter} who registers a {domain
	name} that is a common {typographical error} for a popular
	{web site} so that people will visit their site accidentally,
	e.g. {(http://goggle.com/)} for {(http://google.com/)}.

	(2007-07-13)

tyt

	<chat> Take your time.

	(2004-02-15)

TZ

	<operating system> The {Unix} {environment variable}
	containing the current {time zone} identifier, e.g. "GMT",
	"EST".

	In early versions of Unix this variable simply contained the
	standard identifier for the zone, an offset in hours from GMT
	and an identifier to use during daylight saving time
	(e.g. "GMT0BST").  In later systems it stores the name of a
	file containing the details of a particular zone such as the
	dates when DST is in force.

	{Unix manual page}: ctime(3V).

	(1997-07-20)

tz

	<networking> The {country code} for Tanzania.

	(1999-01-27)

ua

	<networking> The {country code} for the Ukraine.

	(1999-01-27)

UAN

	User Action Notation.  A notation from {VPI} for
	representation of activity in a {graphical user interface}.

	[H. Hartson et al, ACM Trans on Info Sys, July 1990].

	(1994-10-31)

UART

	{Universal Asynchronous Receiver/Transmitter}

UAT

	{User Acceptance Testing}

UAW

	<spelling> Misspelling of "{IAW}"?

UBASIC

	Yuji Kida <kida@rkmath.rikkyo.ac.jp>.

	An extension of {BASIC} for {symbolic mathematics} and {number
	theory}.

	UBASIC supports {bignums}, fractions, complex numbers,
	polynomials and integer factorisation.  It runs under {MS-DOS}
	and is written in {assembly language}.

	Latest version: 8.

	{(ftp://ftp.simtel.com/math/utk/software/msdos/number.theory/ubasic/)}.

	[Review, W.D. Neumann, Notices of AMS 36 (May/June 1989)]

	["A math-oriented high-precision BASIC", Notices of the A.M.S,
	38 (Mar 1991)].

	(1992-07-06)

UBD

	{User Brain Damage}

ubiquitous computing

	Computers everywhere.  Making many computers available
	throughout the physical environment, while making them
	effectively invisible to the user.  Ubiquitous computing is
	held by some to be the Third Wave of computing.  The First
	Wave was many people per computer, the Second Wave was one
	person per computer.  The Third Wave will be many computers
	per person.  Three key technical issues are: power
	consumption, user interface, and wireless connectivity.

	The idea of ubiquitous computing as invisible computation was
	first articulated by Mark Weiser in 1988 at the Computer
	Science Lab at {Xerox PARC}.

	{(http://ubiq.com/hypertext/weiser/weiser.html)}.

	(1994-12-23)

uC++

	Micro-C++.  A extension of {C++}, by Peter A Ruhr
	<pabuhr@plg.uwaterloo.ca> of the {University of Waterloo},
	with {light-weight concurrency} {coroutines} and {mutual
	exclusion}.

	Version 3.7 for {Unix} uses {GCC} 2.3.3 and requires {dmake}
	3.0+ and the setitimer and sigcontext library calls.  It
	runs on {Sequent}, {Sun-4}, {Sun-3}, {Ultrix}, {SGI},
	{RS/6000}, {HP-PA}.

	{(ftp://plg.uwaterloo.ca/pub/uSystem/u++-3.7.tar.Z)}.

	[Software--Practice and Experience, 22(2):137-172, February
	1992].

	(1993-06-10)

UCB

	{University of California at Berkeley}

UCHO

	<audio, software> (Polish for "ear") A program by Stanislaw
	Raczynski for analysing {wav} audio files to determine which
	musical notes are sounding at each instant.  UCHO can output
	the results as a {MIDI} file.

	{UCHO home (http://www.stanr.com/ucho/ucho.htm)}.

	(2008-03-17)

U-Code

	Universal Pascal Code.  Intermediate language, a
	generalisation of P-code for easier optimisation.  Developed
	originally for the Los Alamos Cray-1 and the Lawrence
	Livermore S-1.  A refined version currently used by MIPS
	compilers is descended from one at Stanford U.  "Machine
	Independent Pascal Code Optimisation", D.R. Perkins et al,
	SIGPLAN Notices 14(8): 201-201 (1979).  "A Transporter's Guide
	to the Stanford U-Code Compiler System", P. Nye et al, TR CSL
	Stanford U, June 1983.  (See HPcode).

UCP

	{Universal Computer Protocol}

UCS

	{Universal Character Set}

UCSD Pascal

	{Pascal-P}

UCS transformation format

	<standard, character> (UTF) A set of standard {character
	encodings} in accordance with {ISO 10646}.

	One of a set of standard character encodings, the most widely
	used of which are UTF-8, UTF-16, and UTF-32.  The code tables
	in ISO 10646 and in the {Unicode} standard are identical,
	although the Unicode standard includes additional material.

	UTF-8 is the most widely used encoding, at least on {Unix}
	systems.  Since it does not include any bytes like '\0' or '/'
	which have a special meaning in filenames and other {C}
	library function parameters, and 7-bit ASCII characters have
	the same encoding under both {ASCII} and UTF-8, the required
	changes to existing software are minimised.

	Other UTFs: UTF-1 and UTF-7 are not widely used.

	{UTF-8 and Unicode FAQ for Unix/Linux
	(http://cl.cam.ac.uk/~mgk25/unicode.html#ucs)}.

	(2002-01-15)

UCX

	{Universal Communications X}

udb

	{Universal Debugger}

UDDI

	{Universal Description, Discovery, and Integration}

UDF

	{Universal Disk Format}

UDMA

	{ATA-4}

UDP

	{User Datagram Protocol}

uemacs

	{MicroEmacs}.  ("u" looks a bit like the Greek letter micro).

UFO

	<language> (United Functions and Objects) A hybrid
	{functional} and {object-oriented} language designed by John
	Seargant at {Manchester University} for general-purpose
	parallel computation.

	To a first approximation, UFO is a strict, higher-order
	functional language with an object-oriented type system, and
	strong support for numeric computation in the form of
	SISAL-style arrays and loops.  Parallelism is implicit, and
	applies at various different levels of granularity, thereby
	facilitating implementations on a wide range of parallel
	architectures.

	It is planned to run it on a 64 processor {KSR} machine.

	(1996-08-22)

UFO bug

	<humour> A {bug} reported over and over again by users who believe
	it is real even after they have been shown that it doesn't exist.

	[{Dodgy Coder
	(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].

	(2013-02-07)

ug

	<networking> The {country code} for Uganda.

	(1999-01-27)

UGLIAC

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

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

	(2013-02-07)

UHELP

	A {linear programming} system.

	["UHELP User's Manual", D. Singh, Indus Eng Dept, U Houston
	(Oct 1969)].

UI

	1. {user interface}.

	2. {Unix International}.

uid

	<programming, database>

	1. {user identifier}.

	2. unique identifier - of any sort, possibly following sense 1.

	Compare with {SKU} for sense-development.

	(1998-09-27)

UIDL

	{Unique ID Listing}

UIL

	{User Interface Language}

UIMS

	User Interface Management System: a system supporting the
	development and execution of user interfaces, usually on top
	of windowing systems.

UIMX

	An interface builder for Motif from Visual Edge.

UIS

	<graphics, programming> A {VMS} graphics programming interface
	package for {VAXstations}.

	(1998-10-25)

uk

	<networking> The {country code} for United Kingdom.

	(1999-01-27)

UKC

	{University of Kent at Canterbury}

UKERNA

	{United Kingdom Education and Research Networking Association}

UKUUG Ltd.

	<body> The UK's Unix and Open Systems User Group is a
	non-profit organisation and technical forum for the advocacy
	of {open systems}, particularly {Unix} and Unix-like
	{operating systems}, the promotion of free and {open source}
	software, and the advancement of open programming {standards}
	and networking {protocols}.

	UKUUG aims to cater for all those working in, or interested in
	open systems and open standards.

	It has been known as UKUUG since 1977, but produced its first
	magazine - UK Universities UNIX Newsletter - in December 1976.

	UKUUG used to stand for "United Kingdom Unix Users Group" but
	is now just "UKUUG Ltd."

	{UKUUG Home (http://ukuug.org/)}.

	(2006-08-23)

ULCC

	{University of London Computing Centre}

Ulm's Modula-2 System

	<language> A {Modula-2} {compiler}, library and tools by
	Andreas Borchert <borchert@mathematik.uni-ulm.de>.  The
	compiler is derived from the {ETHZ} compiler for the {Lilith}
	system.  Version 2.2.1 conforms to {PIM3}.  It requires {gas}
	version 1.36 (to be found in the same directory).  Commercial
	use requires a licence.  It runs on {Sun-3}, {Nixdorf}
	{Targon}/31, {Concurrent} 3200 Series.

	{(ftp://titania.mathematik.uni-ulm.de/pub/soft/modula/ulm/sun3/modula-2.2.1.tar.Z)}.

	(1992-03-02)

ULP

	1. <language> A small structured language for use on
	{microprocessors}.

	["User's Guide to the ULP Language for the PDP-11", CS TR 536,
	U Maryland, May 1977].

	2. <protocol> {Upper Layer Protocol}.

	(1999-02-17)

Ultra64

	<hardware, games> A {Nintendo} games machine, unveiled in May
	1995.

	[Details?]

	(1995-05-10)

Ultra-ATA

	{ATA-4}

Ultra DMA

	{ATA-4}

Ultra-SCSI

	<hardware> An extension of {SCSI-2} proposed by a group of
	manufacturers which doubles the transfer speed of {Fast-SCSI}
	to give 20MByte/s on an 8-bit connection and 40MByte/s on a
	16-bit connection.

	(1995-04-19)

Ultrix

	<operating system> A version of {Unix} based on the {Berkeley}
	version, designed and implemented by {DEC} to run on their
	{VAX} and {DECstation} processors.

	(1994-10-26)

um

	<networking> The {country code} for United States minor
	outlying islands.

	(1999-01-27)

UMB

	1. {Upper Memory Block}.

	2. A university(?).

	(1996-01-10)

UMB Scheme

	A {Scheme} system including an editor and debugger by William
	Campbell <bill@cs.umb.edu>.  Conforms to the {R4RS}.

	{(ftp://nexus.yorku.ca/pub/scheme/)}.

	(1994-10-28)

UMDL

	{University of Michigan Digital Library Project}

UML

	{Unified Modeling Language}

uML

	{Micro ML}

UMTS

	{Universal Mobile Telecommunications System}

unary

	1. <programming> (or "{monadic}") A description of a
	{function} or {operator} which takes one {argument}, e.g. the
	unary minus operator which negates its argument.  The term is
	part of the same sequence as {nullary} and {binary}.

	2. <data, humour> Base one.  A number base with only one
	digit, namely zero, and which can therefore only be used to
	express the number zero.  Attempting to add one to zero
	results in an infinite sequence of carries.  Numbers in unary
	notation can be represented particularly efficiently however
	since each digit requires no storage.

	(2001-02-25)

UNC

	{Universal Naming Convention}

UNCL

	{Universal Naming Code Locater}

UNCOL

	UNiversal Computer Oriented Language.  A universal
	intermediate language, discussed but never implemented.

	["A First Version of UNCOL", T.B. Steel, Proc JCC 19:371-378
	(Winter 1961)].

	[Sammet 1969, p.708].

uncompression

	{compression}

uncountable

	{countable}

uncurry

	{uncurrying}

uncurrying

	<programming> Transforming a {curried function} of the
	form f x y z = ... to one of the form f (x, y, z) = ... ,
	i.e. all {arguments} are passed as one {tuple}.

	(1998-07-02)

undefined

	<programming> The value of a {variable} that has not been set or a
	function that does not return anything.  In some programming
	languages, e.g. {Perl}, {JavaScript}, undefined is a named
	constant that can be used to explicitly set a variable or return
	undefined or can be passed as an {actual argument}.  Other
	languages, e.g. {Java}, call it "{null}", but note that the null
	in relational database programming is subtly different.

	Many languages provide a {built-in function} to test whether an
	expression is undefined, e.g. Perl's defined() function.

	Attempting to operate on an undefined value, e.g. add it to a
	number or append it to a string, may either raise an error or
	result in the undefined value being converted ({cast}) to some
	appropriate value, e.g. {false}, zero or {empty string}, according
	to the {type} of expression.

	This definition is an example of a {paradox}.

	(2012-12-02)

undefined external reference

	[Unix] A message from {Unix}'s linker, {ld}.  Used in speech
	to flag loose ends or dangling references in an argument or
	discussion.

	[{Jargon File}]

underflow

	<programming> (or "floating point underflow", "floating
	underflow", after "{overflow}") A condition that can occur
	when the result of a {floating-point} operation would be
	smaller in magnitude (closer to zero, either positive or
	negative) than the smallest quantity representable.  Underflow
	is actually (negative) {overflow} of the {exponent} of the
	{floating point} quantity.  For example, an eight-bit {twos
	complement} exponent can represent multipliers of 2^-128 to
	2^127.  A result less than 2^-128 would cause underflow.

	Depending on the {processor}, the programming language and the
	{run-time system}, underflow may set a status bit, raise an
	{exception} or generate a {hardware} {interrupt} or some
	combination of these effects.  Alternatively, it may just be
	ignored and zero substituted for the unrepresentable value,
	though this might lead to a later {divide by zero} error which
	cannot be so easily ignored.

	(2006-11-09)

Undernet

	<networking> An {Internet Relay Chat} network dating from the
	1990s, when it broke away from the main (still larger) IRC
	network, {EFNet}.

	{(http://undernet.org/)}.

	{The History of the Undernet
	(http://www2.undernet.org:8080/~cs93jtl/unet_history.txt)}.

	(1995-11-09)

underscore

	<character> _, {ASCII} 95.

	Common names: {ITU-T}: underline; underscore; underbar; under.
	Rare: score; backarrow; skid; {INTERCAL}: flatworm.

	See also {left arrow}.

	(1995-03-06)

under the hood

	[hot-rodder talk] 1. The underlying implementation of a
	product (hardware, software, or idea).  Implies that the
	implementation is not intuitively obvious from the appearance,
	but the speaker is about to enable the listener to {grok} it.
	"Let's now look under the hood to see how ...."

	2. Can also imply that the implementation is much simpler than
	the appearance would indicate: "Under the hood, we are just
	fork/execing the shell."

	3. Inside a chassis, as in "Under the hood, this baby has a
	40MHz 68030!"

	[{Jargon File}]

undocumented feature

	{feature}

U-NET Limited

	A {dial-up} {Internet} access provider based in Warrington,
	UK.  Speeds 4800 - 28.8kbps.  The currently support {Microsoft
	Windows} and {RISC OS} users.  For 12 pounds to join and 12
	pounds per month or 100 pounds per year you get a full {SLIP}
	account with a pernament {IP address} and {POP3} {electronic
	mail} account.  Membership includes a disk with {Mosaic},
	{Eudora}, {Trumpet2}, Newsreader, {FTP} and {Telnet} and full
	{Internet} access.  Users can choose their own {user name} and
	{hostname}.  Allows some extra services such as more than one
	POP3 account per access account.  User name is significant so
	that a company can have accounts with the same hostname
	(i.e. their company name) but the mail going to diffent
	machines.  Mail in users POP3 account is accessible from
	anywhere not just via the dial-up connection.  On your next
	business trip you can still check your {e-mail} (provided you
	can get onto the Internet).

	{(http://u-net.com/)}.

	E-mail: <hi@u-net.com>.

	(1994-11-18)

unfold

	{inline}

unfold/fold

	A {program transformation} where a {recursive} call to a
	function is {unfold}ed to an instance of the function's body
	and then later an instance of the function's body is replaced
	by a call.  E.g.

		sumdouble l = sum (double l)

		double l = case l of
		           []   -> []
			   x:xs -> 2*x + double xs

		==> (unfold double)

		sumdouble l = sum (case l of
			           []   -> []
				   x:xs -> 2*x : double xs)

		==> (distribute over case)

		sumdouble l = case l of
			      []   -> sum []
			      x:xs -> sum (2*x : double xs)

	 	==> (unfold sum)

		sumdouble l = case l of
			      []   -> 0
			      x:xs -> 2*x + sum (double xs)

	 	==> (fold sumdouble)

		sumdouble l = case l of
			      []   -> 0
			      x:xs -> 2*x + sumdouble xs

	(1994-11-03)

UNI

	1. <standard, body> {Ente Nazionale Italiano di Unificazione}.

	2. <networking> {User Network Interface}.

	(1999-02-01)

unicast

	<networking> Sending {packets} to a single destination, used
	in contrast to {broadcast} or {multicast}.  The term is
	generally only used when talking about low level
	communications, typically at the {network layer},
	e.g. {Internet Protocol}.

	(2008-06-23)

Unicode

	1. <character> A 16-bit {character set} standard, designed and
	maintained by the non-profit consortium Unicode Inc.

	Originally Unicode was designed to be universal, unique, and
	uniform, i.e., the code was to cover all major modern written
	languages (universal), each character was to have exactly one
	encoding (unique), and each character was to be represented by
	a fixed width in bits (uniform).

	Parallel to the development of Unicode an {ISO}/{IEC}
	standard was being worked on that put a large emphasis on
	being compatible with existing character codes such as {ASCII}
	or {ISO Latin 1}.  To avoid having two competing 16-bit
	standards, in 1992 the two teams compromised to define a
	common character code standard, known both as Unicode and
	{BMP}.

	Since the merger the character codes are the same but the two
	standards are not identical.  The ISO/IEC standard covers only
	coding while Unicode includes additional specifications that
	help implementation.

	Unicode is not a {glyph encoding}.  The same character can be
	displayed as a variety of {glyphs}, depending not only on the
	{font} and style, but also on the adjacent characters.  A
	sequence of characters can be displayed as a single glyph or a
	character can be displayed as a sequence of glyphs.  Which
	will be the case, is often font dependent.

	See also Jörgen Bettels and F. Avery Bishop's paper {Unicode:
	A universal character code
	(http://research.compaq.com/wrl/DECarchives/DTJ/DTJB02/DTJB02SC.TXT)}.

	(2002-08-06)

	2. <language> A pre-{Fortran} on the {IBM 1130}, similar to
	{MATH-MATIC}.

	[Sammet 1969, p.137].

	(2004-09-14)

UniCOMAL

	{COMmon Algorithmic Language}

Unicorny

	<humour, programming> A {feature} that's so early in the planning
	stages that it might as well be imaginary.

	[{Dodgy Coder(http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)}].1

	(2013-06-17)

unicos

	A {Unix} variant for {Cray} computers.

	[More details?]

	(1994-12-06)

Uniface

	1. <database, programming, product> A {4GL} development
	environment and system integration tool marketed by
	{Compuware}.  Uniface is database independent, with interfaces
	to more than 14 {database management systems} and file
	retrieval systems including {DB2}, {IMS}, {SQL Server},
	{Oracle}, {RDB}, {Sybase}.  It is currently supported on {MS
	Windows} (98, ME, NT, 2000, XP, 2003), various {Unix}
	flavours, {Linux}, {OpenVMS}, {IBM iSeries} ({AS/400}), {IBM
	zSeries} ({MVS}) and various {web servers}.  Uniface can
	integrate with {SAP}, {COM}, {Java}, {BEA Tuxedo}, {CICS}, and
	various {CORBA} implementations.

	{Uniface user group Germany (http://c-b-g.org/)}.
	{Profesional Uniface Users Universe (http://puuu.org/)}.
	{Free tutorials (http://march-hare.com.au/)}.

	2. <text> Synonym of {bitmap font}.

	(1999-01-05)

unification

	<programming> The generalisation of {pattern matching} that is
	the {logic programming} equivalent of {instantiation} in
	{logic}.  When two {terms} are to be unified, they are
	compared.  If they are both constants then the result of
	unification is success if they are equal else failure.  If one
	is a variable then it is bound to the other, which may be any
	term (which satisfies an "{occurs check}"), and the
	unification succeeds.  If both terms are structures then each
	pair of sub-terms is unified {recursive}ly and the unification
	succeeds if all the sub-terms unify.

	The result of unification is either failure or success with a
	set of variable bindings, known as a "{unifier}".  There may
	be many such unifiers for any pair of terms but there will be
	at most one "{most general unifier}", other unifiers simply
	add extra bindings for sub-terms which are variables in the
	original terms.

	(1995-12-14)

Unified Han

	{Han character}

Unified Modeling Language

	<language> (UML) A non-proprietary, third generation {modelling
	language}.  The Unified Modeling Language is an open method
	used to specify, visualise, construct and document the
	artifacts of an {object-oriented} software-intensive system
	under development.  The UML represents a compilation of "best
	engineering practices" which have proven successful in
	modelling large, complex systems.

	UML succeeds the concepts of {Booch}, {OMT} and {OOSE} by
	fusing them into a single, common and widely usable modelling
	language.  UML aims to be a standard modelling language which
	can model {concurrent} and distributed systems.

	UML is not an {industry standard}, but is taking shape under
	the auspices of the {Object Management Group} (OMG).  OMG has
	called for information on object-oriented methodologies, that
	might create a rigorous software modelling language.  Many
	industry leaders have responded in earnest to help create the
	standard.

	See also: {STP}, {IDE}.

	{OMG UML Home (http://uml.org/)}.

	{Rational UML Resource Center
	(http://rational.com/uml/index.jsp)}.

	(2002-01-03)

unifier

	The unifier of a set of expressions is a set of substitutions
	of terms for variables such that the expressions are all
	equal.

	See also {most general unifier}, {unification}.

	(1994-12-06)

UNIFORM

	An intermediate language developed for reverse engineering
	both {COBOL} and {Fortran}.

	["The REDO Compendium", H. van Zuylen ed, Wiley 1993].

	(1994-12-06)

Uniform Naming Convention

	{Universal Naming Convention}

Uniform Resource Citation

	<World-Wide Web> (URC) A set of attribute/value pairs
	describing an object.  Some of the values may be {URIs} of
	various kinds.  Others may include, for example, athorship,
	publisher, datatype, date, copyright status and shoe size.  A
	URC is not normally considered as a string, but a set of
	fields and values with some defined free formatting.

	(1995-03-24)

Uniform Resource Locater

	{Uniform Resource Locator}

Uniform Resource Locator

	<World-Wide Web> (URL, previously "Universal") A {standard}
	way of specifying the location of an object, typically a {web
	page}, on the {Internet}.  Other types of object are described
	below.  URLs are the form of address used on the {World-Wide
	Web}.  They are used in {HTML} documents to specify the target
	of a {hypertext link} which is often another HTML document
	(possibly stored on another computer).

	Here are some example URLs:

	 http://w3.org/default.html
	 http://acme.co.uk:8080/images/map.gif
	 http://foldoc.org/?Uniform+Resource+Locator
	 http://w3.org/default.html#Introduction
	 ftp://wuarchive.wustl.edu/mirrors/msdos/graphics/gifkit.zip
	 ftp://spy:secret@ftp.acme.com/pub/topsecret/weapon.tgz
	 mailto:fred@doc.ic.ac.uk
	 news:alt.hypertext
	 telnet://dra.com

	The part before the first colon specifies the access scheme or
	{protocol}.  Commonly implemented schemes include: {ftp},
	{http} (World-Wide Web), {gopher} or {WAIS}.  The "file"
	scheme should only be used to refer to a file on the same
	host.  Other less commonly used schemes include {news},
	{telnet} or mailto ({e-mail}).

	The part after the colon is interpreted according to the
	access scheme.  In general, two slashes after the colon
	introduce a {hostname} (host:port is also valid, or for {FTP}
	user:passwd@host or user@host).  The {port} number is usually
	omitted and defaults to the standard port for the scheme,
	e.g. port 80 for HTTP.

	For an HTTP or FTP URL the next part is a {pathname} which is
	usually related to the pathname of a file on the server.  The
	file can contain any type of data but only certain types are
	interpreted directly by most {browsers}.  These include {HTML}
	and images in {gif} or {jpeg} format.  The file's type is
	given by a {MIME} type in the HTTP headers returned by the
	server, e.g. "text/html", "image/gif", and is usually also
	indicated by its {filename extension}.  A file whose type is
	not recognised directly by the browser may be passed to an
	external "viewer" {application}, e.g. a sound player.

	The last (optional) part of the URL may be a query string
	preceded by "?" or a "fragment identifier" preceded by "#".
	The later indicates a particular position within the specified
	document.

	Only alphanumerics, reserved characters (:/?#"<>%+) used for
	their reserved purposes and "$", "-", "_", ".", "&", "+" are
	safe and may be transmitted unencoded.  Other characters are
	encoded as a "%" followed by two {hexadecimal} digits.  Space
	may also be encoded as "+".  Standard {SGML} "&<name>;"
	character entity encodings (e.g. "&eacute;") are also accepted
	when URLs are embedded in HTML.  The terminating semicolon may
	be omitted if &<name> is followed by a non-letter character.

	{The authoritative W3C URL specification
	(http://w3.org/hypertext/WWW/Addressing/Addressing.html)}.

	(2000-02-17)

Uniform Resource Name

	<World-Wide Web> (URN, previously Uniform/Universal Resource
	Number) 1. Any {URI} which is not a {URL}.

	2. A particular scheme which is currently (1991-4) under
	development by the {IETF}, which should provide for the
	resolution using {Internet} {protocols} of names which have a
	greater persistence than that currently associated with
	Internet {host} names or organisations (as used in {URLs}).
	Uniform Resource Names will be URI schemes that improve on
	URLs in reliability over time, including authenticity,
	replication, and high availability.

	When defined, a URN in sense 1 will be an example of a URN in
	sense 2.

	{(http://w3.org/pub/WWW/Addressing/Addressing.html)}.

	(2006-04-18)

Uniform Resource Number

	Former name for {Uniform Resource Name}.

Unify

	<database, product> A {relational database} produced by {Unify
	Corporation}.

	(1995-03-15)

unify

	<algorithm> To perform {unification}.

	(1995-03-15)

Unify Corporation

	<company> Developers of the {Unify} {relational database}.  At
	one time, before {Sybase}, they were a competitor of {Oracle},
	et al.

	{(http://unify.com/)}.

	{(ftp://ftp.unify.com/)}.

	(1995-03-15)

Unihan

	{Han character}

uninstaller

	<operating system> A {utility} program to remove another
	{application program} from a computer's disks.

	Most commonly found on {IBM PCs}, as applications tend to
	leave files in various places on the {hard disc}, so special
	software is required to tidy up after them.

	Ken Spreitzer <ken@maximized.com> claims to have written the
	original PC program called "UnInstaller", first licensed to
	{MicroHelp} and now (Feb 1998) sold by {CyberMedia}.

	Compare with {installer}.

	(1998-02-09)

uninteresting

	<jargon> 1. Said of a problem that, although {nontrivial}, can
	be solved simply by throwing sufficient resources at it.

	2. Also said of problems for which a solution would neither
	advance the state of the art nor be fun to design and code.

	Hackers regard uninteresting problems as intolerable wastes of
	time, to be solved (if at all) by lesser mortals.  *Real*
	hackers (see {toolsmith}) generalise uninteresting problems
	enough to make them interesting and solve them - thus
	solving the original problem as a special case (and, it must
	be admitted, occasionally turning a molehill into a mountain,
	or a mountain into a tectonic plate).

	See {WOMBAT}, {SMOP}.  Compare {toy problem}.  Oppose
	{interesting}.

	[{Jargon File}]

	(1995-03-10)

Uninterruptible Power Supply

	<hardware> (UPS) A battery powered {power supply unit} that is
	guaranteed to provide power to a computer in the event of
	interruptions in the incoming mains electrical power.
	Different rating UPSs will provide power for different lengths
	of time.

	Modern UPSs connect to the computer's {serial port} and
	provide information such as battery time remaining, allowing
	the computer to shut down {gracefully} before complete loss of
	power.

	(1996-12-11)

union

	1. <set theory> An operation on two {sets} which returns the
	set of all elements that are a member of either or both of the
	argument sets; normally written as an infix upper-case U
	symbol.  The operator generalises to zero or more sets by
	taking the union of the current partial result (initially the
	empty set) with the next argument set, in any order.

	For example, (a, b, c) U (c, d, e) = (a, b, c, d, e)

	2. <programming> A {type} whose values may be of one of a
	number of other types, thet current type depending on
	conditions that are only known at {run-time}.  A {variable} of
	union type must be allocated sufficient storage space to hold
	the largest component type.  Some unions include extra
	information to say which type of value the union currently has
	(a "tagged union"), others rely on the program to keep track
	of this independently.

	A union contrasts with a {structure} or {record} which stores
	values of all component types at once.

	3. <database> An {SQL} {operator} that concatenates two result
	sets, that must have the same number and types of {columns}.
	The operator may be followed by the word "ALL" to indicate
	that results that appear in both sets should appear twice in
	the output.

	(2002-02-26)

Unipalm Group plc

	<company> A company floated in March 1994.

	{(http://unipalm.co.uk/index.html)}.

	(1996-12-11)

Unipress Software, Inc.

	<company> A developer and distributor of {Unix} software.
	They produce PC-UNIX connectivity software, development tools
	and applications and provide technical support and
	maintenance, porting services, training and consulting.

	{(http://unipress.com/)}.

	(1996-12-11)

uniprocessor

	<processor> (From "uni" - one) A computer with a single
	{central processing unit}, in contrast to a {parallel
	processor}.  Most {personal computers} are currently (March
	1997) uniprocessors.  Some more expensive computers, typically
	{servers}, have multiple processors to provide increased
	{throughput}.

	See also {symmetric multiprocessor} and {massively parallel
	processor}.

	(1997-03-23)

UNIQUE

	<language> A {portable} {job control language}.

	["The UNIQUE Command Language - Portable Job Control",
	I.A. Newman, Proc DATAFAIR 73, 1973, pp. 353-357].

	(1994-11-22)

Unique ID Listing

	<messaging> (UIDL) A system used by {POP3} {electronic mail}
	{servers} to uniquely identify a mail message.  Normally, a
	message is identified by its position in the list of messages
	but this will change when an earlier message is deleted.  The
	UIDL is a fixed string of characters which is unique to the
	message.  The UIDL of a message never changes and will never
	be reused, even when the message has been deleted from the
	user's {mailbox}.

	{RFC 1725 (http://ds0.internic.net/rfc/rfc1725.txt)}.

	(1997-04-16)

unique key

	<database> A {key} which identifies only one body of
	information out of several.

	(1997-04-26)

unique sales point

	<product> (USP) A feature that the salesman hopes will
	convince you to buy his product instead of another.

	(1999-10-21)

Unir Tech

	<company> The company with the exclusive license from {Bell
	Labs} to distribute {C+@}.  Unir is owned and operated by
	well-known anti-{IETF} ranter, Jim Fleming.

	Telephone: +1 (800) 222-8647.

	(2002-05-19)

UNISAP

	An early system on {UNIVAC} I or II.

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

	(1994-11-22)

Unisys Corporation

	<company> The company formed in 1984-5 when {Burroughs
	Corporation} merged with {Sperry Corporation}.  This was when
	the phrase "{dinosaurs mating}" was coined.

	Unisys is one of the largest providers of information
	services, technology, and software in the world.  They employ
	about 49,000 people and do business in some 100 countries.  In
	1994 about 80 percent of revenue was derived from commercial
	information systems and services, with the remainder coming
	from electronic systems and services for the defense market.
	The defense business was sold to {Loral} in early 1995.
	Slightly more than half of Unisys's revenue is from business
	in the United States.

	They specialise in providing business-critical solutions,
	based on open information networks, for organisations that
	operate in transaction-intensive environments.  These
	organisations include financial services companies, airlines,
	telecommunications companies, government agencies, and other
	commercial enterprises.

	In August 1994, quarterly sales were $1799M and profits $50M.

	{(http://unisys.com/)}.

	(1995-03-21)

United Kingdom Unix Users Group

	{UKUUG Ltd.}

United Technologies Research Cente

	(UTRC) {http://utrcwww.utc.com/}.

	(1994-11-29)

Unit Separator

	<character> (US) {ASCII} character 31.

	(1996-06-29)

unit testing

	<testing> The type of {testing} where a developer (usually the
	one who wrote the code) proves that a code module (the "unit")
	meets its requirements.

	(2003-09-24)

UNITY

	A high-level parallel language.

	A translator into {MPL} is available by
	{(ftp://sanfrancisco.ira.uka.de/pub/maspar/maspar_unity.tar.Z)}.

	See also {MasPar Unity}.

	["Parallel Program Design", K.M. Chandry and Misra, A-W 1988].

	(1994-11-29)

Univac

	<processor, company> A brand of computer.

	There is a historical placard in the United States Census
	Bureau that has the following, "The Bureau of the Census
	dedicated the world's first electronic general purpose data
	processing computer, UNIVAC I, on June 14, 1951.
	Eckert-Mauchly Computer Corporation".

	The {Eckert-Mauchly Computer Corporation} designed and built
	Univac.  Over the years, rights to the Univac name changed
	hands several times.  Circa 1987, {Sperry Univac} merged with
	the {Burroughs Corporation} to form {Unisys Corporation}.

	(1994-11-22)

Universal algebra

	<logic> The {model theory} of {first-order} {equational
	logic}.

	(1997-02-25)

Universal Asynchronous Receiver/Transmitter

	<communications, hardware> (UART) An {integrated circuit} used
	for serial communications, containing a transmitter
	(parallel-to-serial converter) and a receiver
	(serial-to-parallel converter), each clocked separately.

	The parallel side of a UART is usually connected to the {bus}
	of a computer.  When the computer writes a byte to the UART's
	transmit data register (TDR), the UART will start to transmit
	it on the serial line.  The UART's status register contains a
	{flag} bit which the computer can read to see if the UART is
	ready to transmit another byte.  Another status register bit
	says whether the UART has received a byte from the {serial
	line}, in which case the computer should read it from the
	receive data register (RDR).  If another byte is received
	before the previous one is read, the UART will signal an
	"overrun" error via another status bit.

	The UART may be set up to {interrupt} the computer when data
	is received or when ready to transmit more data.

	The UART's serial connections usually go via separate {line
	driver} and {line receiver} {integrated circuits} which
	provide the power and voltages required to drive the serial
	line and give some protection against noise on the line.

	Data on the {serial line} is formatted by the {UART} according
	to the setting of the UART's control register.  This may also
	determine the transmit and receive baud rates if the UART
	contains its own clock circuits or "{baud} rate generators".
	If incorrectly formated data is received the UART may signal a
	"{framing error}" or "{parity} error".

	Often the clock will run at 16 times the baud rate (bits per
	second) to allow the receiver to do {centre sampling} - i.e. to
	read each bit in the middle of its allotted time period.  This
	makes the UART more tolerant to variations in the {clock rate}
	("jitter") of the incoming data.

	An example of a late 1980s UART was the {Intel 8450}.  In the
	1990s, newer UARTs were developed with on-chip {buffers}.
	This allowed higher transmission speed without data loss and
	without requiring such frequent attention from the computer.
	For example, the {Intel} {16550} has a 16 byte {FIFO}.
	Variants include the {16C550}, {16C650}, {16C750}, and
	{16C850}.

	The term "Serial Communications Interface" (SCI) was first
	used at {Motorola} around 1975 to refer to their start-stop
	asyncronous serial interface device, which others were calling
	a UART.

	See also {bit bang}.

	[Is this the same as an {ACIA}?]

	(2003-07-13)

Universal Character Set

	<character, standard> (UCS, ISO/IEC 10646) A 1993 {ISO} and
	{IEC} standard {character set}, also known as "Universal
	Multiple-Octet Coded Character Set".

	UCS comes in a 16-bit variant called UCS-2 and a 32-bit
	variant called UCS-4, which is composed of 16-bit UCS-2
	"planes".  So far only one 16-bit plane has been defined,
	which is known as the {Basic Multilingual Plane}.

	The implementation of UCS is still in its infancy, though some
	moves, such as the {Java} language defining a character to be
	16 bits, are suggestive.

	[Relationship with {Unicode}?]

	(1997-07-04)

Universal Communications X

	<communications> (UCX) A software implementation of the
	ubiquitous {TCP/IP} suite of {communications} {protocols} for
	{Digital Equipment Corporation}'s {OpenVMS} {operating
	system}.

	Users of the {UCX} product can connect to heterogeneous
	{networks} to access and {download} files, send {electronic
	mail}, run and develop {applications}, and monitor activity.

	{"Software Product Description, DIGITAL TCP/IP Services for
	OpenVMS, Version 4.2",
	(http://digital.com/info/QAW009/QAW009HM.HTM)}.

	(2000-12-15)

Universal Computer Protocol

	<communications, protocol> An earlier form of {External
	Machine Interface} (EMI).

	(2007-09-10)

Universal Debugger

	<tool, parallel> (udb) {KSR}'s interactive {source level
	debugger} for serial and parallel programs written in {KSR},
	{Fortran}, {KSR C} and {KSR1} {assembly language}.

	Udb is a source level debugger for testing and debugging
	serial and parallel programs; it is compatible with {GDB} and
	{dbx}.  The user can direct udb either by typing commands or
	graphically through an {X}-based window interface; the latter
	provides simultaneous display of source code, I/O and
	instructions.  For parallel programs, operations can be
	carried out per-{thread}.

	{Home
	(http://tc.cornell.edu/Parallel.Tools/tools/udb.html)}.

	(1995-05-07)

Universal Description, Discovery, and Integration

	<standard, protocol> (UDDI) The service discovery {protocol}
	for {Web Services} through which companies can find one
	another to conduct business.  This standard was unveiled by
	{Ariba}, {IBM}, {Microsoft}, and 33 other companies in
	September 2000.

	(2002-06-28)

Universal Disk Format

	<storage, standard> (UDF) A {CD-ROM} {file system} {standard}
	that is required for {DVD ROMs}.  UDF is the {OSTA}'s
	replacement for the {ISO 9660} file system used on CD-ROMs,
	but will be mostly used on DVD.  {DVD multimedia} disks use
	UDF to contain {MPEG} {audio} and {video} {streams}.

	To read DVDs you need a DVD drive, the {kernel} driver for the
	drive, MPEG video support, and a UDF driver.  DVDs containing
	both UDF filesystems and ISO 9660 filesystems can be read
	without UDF support.

	UDF can also be used by {CD-R} and {CD-RW} recorders in
	{packet writing} mode.

	(1999-09-01)

Universal Naming Convention

	<networking> (UNC) The type of {file system} {path} used in
	{Microsoft Windows} networking to completely specify a
	directory on a {file server}.

	The basic format is:

		\\servername\sharename

	where "servername" is the {hostname} or {IP address} of a
	network file server, and "sharename" is the name of a shared
	directory on the server.  This is related to the conventional
	{MS-DOS} "C:\windows" style of directory name.  E.g.

		\\server1\dave

	might be set up to point to

		C:\users\homedirs\dave

	on a server called "server1".

	It is possible to execute a program using this convention
	without having to specifically link a drive, by running:

	\\server\share\directory\program.exe

	The {undocumented} DOS command, TRUENAME can be used to find
	out the UNC name of a file or directory on a network drive.

	Even Microsoft don't know whether UNC stands for "Universal
	Naming Convention" or "Uniform Naming Convention", both appear
	on their web site, sometimes withing the same document, but
	with a preference for "Universal".

	(2008-12-09)

universal quantifier

	{quantifier}

Universal Resource Identifier

	<World-Wide Web> (URI, originally "UDI" in some {WWW}
	documents) The generic set of all names and addresses which
	are short strings which refer to objects (typically on the
	{Internet}).  The most common kinds of URI are {URLs} and
	{relative URLs}.

	URIs are defined in {RFC 1630}.

	{W3 specification
	(http://w3.org/hypertext/WWW/Addressing/URL/URI_Overview.html)}.

	(1997-07-16)

Universal Resource Locator

	{Uniform Resource Locator}

Universal Serial Bus

	<hardware, standard> (USB) An external {peripheral} interface
	{standard} for communication between a computer and external
	{peripherals} over an inexpensive cable using {biserial}
	transmission.

	USB is intended to replace existing {serial ports}, {parallel
	ports}, {keyboard}, and {monitor} connectors and be used with
	{keyboards}, {mice}, {monitors}, {printers}, and possibly some
	low-speed {scanners} and removable {hard drives}.  For faster
	devices existing {IDE}, {SCSI}, or emerging {FC-AL} or
	{FireWire} interfaces can be used.

	USB works at 12 Mbps with specific consideration for low cost
	peripherals.  It supports up to 127 devices and both
	{isochronous} and {asynchronous} data transfers.  Cables can
	be up to five metres long and it includes built-in power
	distribution for low power devices.  It supports {daisy
	chaining} through a tiered star multidrop topology.  A USB
	cable has a rectangular "Type A" plug at the computer end and
	a square "Type B" plug at the peripheral end.

	Before March 1996 Intel started to integrate the necessary
	logic into {PC} {chip sets} and encourage other manufacturers
	to do likewise.  It was widely available by 1997.  Later
	versions of {Windows 95} included support for it.  It was
	standard on {Macintosh} computers in 1999.

	The USB 2.0 specification was released in 2000 to allow USB to
	compete with {Firewire} etc.  USB 2.0 is backward compatible
	with USB 1.1 but works at 480 Mbps.

	{usb.org (http://usb.org/)}.

	(2004-01-31)

universal thunk

	<programming, operating system> A software mechanism allowing
	a {Windows 3.1} {application} to call a {32-bit} {dynamically
	linked library} (DLL) under {Win32s}.

	The {Windows 3.1} {application} which wants to call an entry
	in a 32-bit DLL instead calls a corresponding entry in a
	{16-bit} DLL.  The programmer must also include {code} to
	detect whether the {32-bit} DLL is loaded.  A {32-bit} {EXE}
	loads the {32-bit} DLL.

	See also {Generic Thunk}, {Flat Thunk}.

	["Calling a Win32 DLL from a Windows 3.1 Application", Win32
	SDK Knowledge Base, Article ID Q97785].

	[Better explanation?]

	(1997-10-11)

Universal Time

	<time, standard> (UT) The mean solar time along the prime
	meridian (0 longitude) that runs through the Greenwich
	Observatory outside of London, UK, where the current system
	originated.  UT is tied to the rotation of the Earth in
	respect to the fictitious "mean Sun".

	{Greenwich Mean Time} (GMT) was measured from Greenwich mean
	midday until 1925 when the reference point was changed from
	noon to midnight and the name changed to "Universal Time".

	There are three separate definitions, UT0, UT1, and UT2,
	depending on which corrections have been applied to the
	Earth's motion.  {Coordinated Universal Time} is kept within
	0.9 seconds of UT1, by addition of leap seconds to
	{International Atomic Time}.

	(2001-08-02)

Universal Time Coordinated

	<time, standard> An incorrect term for {Coordinated Universal
	Time}.

	(2001-08-01)

universe of discourse

	<ontology> In {ontology}, the set of all entities that can be
	represented in some {declarative language} or other {formal
	system}.

	Each entity is represented by a name and may have some
	human-readable description of its meaning.  Formal {axioms}
	constrain the interpretation and well-formed use of these
	names.

	(2005-07-29)

University of Arizona

	<body, education> The University was founded in 1885 as a Land
	Grant institution with a three-fold mission of teaching,
	research and public service.  Today, the University is one of
	the top 20 research universities in the nation, with a student
	enrollment of more than 35,000, a faculty and staff of 12,500,
	and a 345-acre campus.

	{(http://arizona.edu/)}.

	Address: Tucson, Arizona, USA.

University of California at Berkeley

	<body, education> (UCB)

	See also {Berzerkley}, {BSD}.

	{(http://berkeley.edu/)}.

	Note to British and Commonwealth readers: that's /berk'lee/,
	not /bark'lee/ as in British Received Pronunciation.

	(1994-11-29)

University of Durham

	<body, education> A busy research and teaching community in
	the historic cathedral city of Durham, UK (population 61000).
	Its work covers key branches of science and technology and
	traditional areas of scholarship.  Durham graduates are in
	great demand among employers and the University helps to
	attract investment into the region.  It provides training,
	short courses, and expertise for industry.  Through its
	cultural events, conferences, tourist business and as a major
	employer, the University contributes in a wide social and
	economic sense to the community.

	Founded in 1832, the University developed in Durham and
	Newcastle until 1963 when the independent University of
	Newcastle upon Tyne came into being.  Durham is a collegiate
	body, with 14 Colleges or Societies which are a social and
	domestic focus for students.  In 1992, the Universities of
	Durham and Teesside launched University College,
	Stockton-on-Tees, which has 190 students in the first year.

	{(http://dur.ac.uk/)}.

	(1995-03-17)

University of East London

	<body, education> (UEL) A UK University with six academic
	Faculties: Design and The Built Environment, East London
	Business School, Institute Of Health and Rehabilitation,
	Faculty Of Science, Social Sciences and Technology.

	{(http://uel.ac.uk/)}.

	(1994-11-29)

University of Edinburgh

	<body, education> A university in the centre of Scotland's
	capital.  The University of Edinburgh has been promoting and
	setting standards in education for over 400 years.  Granted
	its Royal Charter in 1582 by James VI, the son of Mary Queen
	of Scots, the University was founded the following year by the
	Town Council of Edinburgh, making it the first
	post-Reformation university in Scotland, and the first civic
	university to be established in the British Isles.

	Known in its early years as King James College, or the Tounis
	(Town's) College, the University soon established itself
	internationally, and by the 18th century Edinburgh was a
	leading centre of the European Enlightenment and one of the
	continent's principal universities.  The University's close
	relationship with the city in which it is based, coupled with
	a forward-looking, international perspective, has kept
	Edinburgh at the forefront of new research and teaching
	developments whilst enabling it to retain a uniquely Scottish
	character.

	Edinburgh's academics are at the forefront of developments in
	the study and application of languages, medicine,
	micro-electronics, biotechnology, computer-based disciplines
	and many other subjects.  Edinburgh's standing as a world
	centre for research is further enhanced by the presence on and
	around University precincts of many independently-funded, but
	closely linked, national research institutes

	{(http://ed.ac.uk/)}.

	Address:  Old College, South Bridge, Edinburgh, Scotland EH8
	9YL, UK.

	Telephone: +44 (131) 650 1000.

	See also {ABSET}, {ABSYS}, {Alice}, {ASL+}, {Baroque},
	{C++Linda}, {Cogent Prolog}, {COWSEL}, {Echidna}, {Edinburgh
	Prolog}, {Edinburgh SML}, {EdML}, {ELLIS}, {ELSIE},
	{ESLPDPRO}, {Extended ML}, {Hope}, {IMP}, {LCF}, {Lisp-Linda},
	{Marseille Prolog}, {metalanguage}, {MIKE}, {ML}, {ML Kit},
	{ML-Linda}, {Multipop-68}, {Nuprl}, {Oblog}, {paraML},
	{Pascal-Linda}, {POP-1}, {POP-2}, {POPLER}, {Prolog},
	{Prolog-2}, {Prolog-Linda}, {Scheme-Linda}, {Skel-ML},
	{Standard ML}, {Sticks&Stones}, {supercombinators},
	{SWI-Prolog}, {tail recursion modulo cons}, {WPOP}.

	(1995-12-29)

University of Hawaii

	<body, education> A University spread over 10 campuses on 4
	islands throughout the state.

	{(http://hawaii.edu/uhinfo.html)}.

	See also {Aloha}, {Aloha Net}.

	(1995-12-10)

University of Iceland

	<body, education> The Home of {Fjolnir}.

	{(http://rhi.hi.is/)}.

	(1995-03-17)

University of London Computing Centre

	<body, education> (ULCC) One of the UK's national high
	performance computing centres.  It provides networking
	services and large-scale computing facilities which are used
	by researchers from all over the UK.

	ULCC was founded in 1968 to provide a service for education
	and research.  It has been at the forefront of advanced
	research computing since its foundation, initially providing
	large-scale {CDC}-based facilities, then from 1982 to 1991 a
	national {Cray} {vector} supercomputing service.  Its high
	performance computing facilities are now centred on a 6
	processor, 4 Gbyte {Convex C3860} {supercomputer} (Neptune)
	with a Convex C3200 front-end (Pluto).

	ULCC is the main site for national and international network
	connections in the UK.  They run the {Network Operations and
	Service Centre} for the {JANET Internet Protocol Service}
	(JIPS), the largest of the {JANET} {NOCs} and various
	international links and relays on behalf of {UKERNA}.

	ULCC's pilot {National Data Repository} service provides a
	network-accessible digital archive and filestore, based on a
	robotic tape system with 6 terabytes of storage.  Although the
	data is stored on tape, you can access it very quickly, as if
	it were on-line.  It is made available to you via high-speed
	links to the {JANET} and {SuperJANET} networks.

	{(http://ulcc.ac.uk/)}.

	(1994-11-29)

University of Michigan

	<body, education> A large cosmopolitan university in the
	Midwest USA.  Over 50000 students are enrolled at the
	University of Michigan's three campuses.  The students come
	from 50 states and over 100 foreign countries.  70% of the
	University's students graduated in the top 10% of their high
	school class.  90% rank in the top 20% of their high school
	class.  60% of the students receive financial aid.

	The main Ann Arbor Campus lies in the Huron River valley, 40
	miles west of Detroit.  The campus boasts 2700 acres with 200
	buildings, six million volumes in 23 libraries, nine museums,
	seven hospitals, hundreds of laboratories and institutes, and
	over 18000 {microcomputers}.

	{(http://umich.edu/)}.

	(1995-02-23)

University of Michigan Digital Library Project

	<project> (UMDL) The {University of Michigan}'s part of the
	{Digital Library Initiative}.

University of Minnesota

	<body, education> The home of {Gopher}.

	{(http://umn.edu/)}.

	Address: Minneapolis, Minnesota, USA.

	(1995-01-30)

University of Nijmegen

	<body, education> Katholieke University of Nijmegen (KUN),
	Nijmegen, the Netherlands.

	KUN's {Computing Science Institute (http://cs.kun.nl/csi)}.
	is known for the {Clean}, {Comma}, {Communicating Functional
	Processes}, and {GLASS} projects.

	{(http://kun.nl/)}.

	(1995-11-07)

University of Pennsylvania

	<body, education> The home of {ENIAC} and {Machiavelli}.

	{(http://upenn.edu/)}.

	Address: Philadelphia, PA, USA.

	[More info?]

	(1995-02-21)

University of Tasmania

	<body, education>

	{(ftp://ftp.utas.edu.au/)}.

	(1995-01-25)

University of Twente

	<body, education> A university in the east of The Netherlands
	for technical and social sciences.  It was founded in 1961,
	making it one of the youngest universities in The Netherlands.
	It has 7000 students studying Applied Educational Science;
	Applied Mathematics; Applied Physics; Chemical Technology;
	Computer Science; Electrical Engineering; Mechanical
	Engineering; Philosophy of science, Technology and Society;
	Educational Technology.

	{(http://nic.utwente.nl/uthomuk.htm)}.

	(1995-04-16)

Unix

	<operating system> /yoo'niks/ (Or "UNIX", in the authors'
	words, "A weak pun on Multics") Plural "Unices".  An
	interactive {time-sharing} {operating system} invented in 1969
	by {Ken Thompson} after {Bell Labs} left the {Multics}
	project, originally so he could play games on his scavenged
	{PDP-7}.  {Dennis Ritchie}, the inventor of {C}, is considered
	a co-author of the system.

	The turning point in Unix's history came when it was
	reimplemented almost entirely in C during 1972 - 1974, making
	it the first {source-portable} OS.  Unix subsequently
	underwent mutations and expansions at the hands of many
	different people, resulting in a uniquely flexible and
	{developer}-friendly environment.

	By 1991, Unix had become the most widely used {multi-user}
	general-purpose operating system in the world.  Many people
	consider this the most important victory yet of hackerdom over
	industry opposition (but see {Unix weenie} and {Unix
	conspiracy} for an opposing point of view).

	Unix is now offered by many manufacturers and is the subject
	of an international standardisation effort [called?].
	Unix-like operating systems include {AIX}, {A/UX}, {BSD},
	{Debian}, {FreeBSD}, {GNU}, {HP-UX}, {Linux}, {NetBSD},
	{NEXTSTEP}, {OpenBSD}, {OPENSTEP}, {OSF}, {POSIX}, {RISCiX},
	{Solaris}, {SunOS}, {System V}, {Ultrix}, {USG Unix}, {Version
	7}, {Xenix}.

	"Unix" or "UNIX"?  Both seem roughly equally popular, perhaps
	with a historical bias toward the latter.  "UNIX" is a
	registered trademark of {The Open Group}, however, since it is
	a name and not an acronym, "Unix" has been adopted in this
	dictionary except where a larger name includes it in upper
	case.  Since the OS is {case-sensitive} and exists in many
	different versions, it is fitting that its name should reflect
	this.

	{The UNIX Reference Desk
	(http://geek-girl.com/unix.html)}.

	{Spanish fire extinguisher
	(ftp://linux.mathematik.tu-darmstadt.de/pub/linux/people/okir/unix_flame.gif)}.

	[{Jargon File}]

	(2001-05-14)

Unix box

	{box}

Unix brain damage

	Something that has to be done to break a network program
	(typically a mailer) on a non-{Unix} system so that it will
	interoperate with Unix systems.  The hack may qualify as "Unix
	brain damage" if the program conforms to published {standards}
	and the {Unix} program in question does not.  Unix brain
	damage happens because it is much easier for other (minority)
	systems to change their ways to match non-conforming behaviour
	than it is to change all the hundreds of thousands of Unix
	systems out there.

	An example of Unix brain damage is a {kluge} in a mail server
	to recognise bare line feed (the Unix newline) as an
	equivalent form to the Internet standard newline, which is a
	carriage return followed by a line feed.  Such things can make
	even a hardened {jock} weep.

	[{Jargon File}]

Unix conspiracy

	[ITS] According to a conspiracy theory long popular among
	{ITS} and {TOPS-20} fans, Unix's growth is the result of a
	plot, hatched during the 1970s at Bell Labs, whose intent was
	to hobble AT&T's competitors by making them dependent upon a
	system whose future evolution was to be under AT&T's control.
	This would be accomplished by disseminating an operating
	system that is apparently inexpensive and easily portable, but
	also relatively unreliable and insecure (so as to require
	continuing upgrades from AT&T).  This theory was lent a
	substantial impetus in 1984 by the paper referenced in the
	{back door} entry.

	In this view, Unix was designed to be one of the first
	computer viruses (see {virus}) - but a virus spread to
	computers indirectly by people and market forces, rather than
	directly through disks and networks.  Adherents of this "Unix
	virus" theory like to cite the fact that the well-known
	quotation "Unix is snake oil" was uttered by DEC president
	Kenneth Olsen shortly before DEC began actively promoting its
	own family of Unix workstations.  (Olsen now claims to have
	been misquoted.)

Unix International

	<body> (UI) A consortium including {Sun}, {AT&T} and others
	formed to promote an open environment based on {Unix} {System
	V}, including the {Open Look} windowing system.

Unixism

	<operating system, jargon> A piece of code or a coding
	technique that depends on the protected {multitasking}
	environment with relatively low process-spawn overhead that
	exists on {virtual-memory} {Unix} systems.

	Common {Unixisms} include: gratuitous use of "{fork}"; the
	assumption that certain undocumented but well-known features
	of Unix libraries such as "{stdio}" are supported elsewhere;
	reliance on obscure side-effects of {system calls} (use of
	"sleep" with a 0 argument to tell the scheduler that you're
	willing to give up your time-slice, for example); the
	assumption that freshly allocated memory is zeroed; and the
	assumption that {fragmentation} problems won't arise from
	never freeing memory.

	Compare {vaxocentrism}.  See also {New Jersey}.

	[{Jargon File}]

	(1995-02-27)

Unix man page

	{Unix manual page}

Unix manual page

	<operating system> (Or "man page") A part of {Unix}'s
	extensive on-line documentation.  To read a manual page from
	the Unix command line, type:

		man [-s<section>] <page>

	e.g. "man ftp" (the section number can usually be omitted).
	Pages are traditionally referred to using the notation
	"page(section)", e.g. ftp(1).

	Under {SunOS} (which is fairly typical), Section 1 covers
	commands, 2 {system calls}, 3 C library routines, 4 devices
	and networks, 5 file formats, 6 games and {demos}, 7
	miscellaneous, 8 system administration.  Each section has an
	introduction which can be obtained with, e.g., "man 2 intro".

	Manual pages are stored as {nroff} source files.  Formatted
	versions are also usually cached.  Man pages for most versions
	of Unix are available on-line in {HTML}.

	{Unix manual page}: man(1).

	{Linux man pages (http://www.kernel.org/doc/man-pages/)}.

	{Solaris man pages (http://docs.sun.com/app/docs/coll/40.10)}.

	(2010-01-19)

Unix System V

	{System V}

Unix to Unix Copy

	<networking, messaging> (uucp) A {Unix} utility program and
	{protocol} that allows one Unix system to send files to
	another via a {serial line} which may be a cable going
	directly from one machine's {serial port} to another's or may
	involve a {modem} at each end of a telephone line.

	Software is also available to allow uucp to work over
	{Ethernet} though there are better alternatives in this case,
	e.g. {FTP} or {rcp} for file transfer, {SMTP} for {electronic
	mail} or {NNTP} for {news}.

	The term is now also used to describe the large international
	network which uses UUCP to pass {Usenet} {news} and
	{electronic mail}, also known as "UUCPNET".

	{Unix manual page}: uucp(1).

	See also {cu}, {uuencode}.

	(1997-01-12)

UnixWare

	<operating system> {Novell}'s implementation of {Unix} {System
	5} heavily based on Release 4.2 but with enhancements and new
	bundled products.

	In 1993 Novell acquired {Unix Systems Laboratories} from
	{AT&T} along with the Unix trademark.  UnixWare was the result
	of Novell's efforts to make Unix interoperable with {Novell
	NetWare}.

	In 1995 Novell sold UnixWare and the rights to the Unix
	operating system to {SCO} at a time when UnixWare was gainnig
	popularity.  It was later the first 64-bit operating system on
	the {Intel} {platform}, and, in 1999, is the world's
	fastest-growing commercial operating system.

	[Any connection with {X/Open}?  URL?]

	(1999-11-10)

Unix weenie

	<jargon> ({ITS}) 1. A derogatory play on "{Unix wizard}",
	common among hackers who use {Unix} by necessity but would
	prefer alternatives.  The implication is that although the
	person in question may consider mastery of Unix arcana to be a
	wizardly skill, the only real skill involved is the ability to
	tolerate (and the bad taste to wallow in) the incoherence and
	needless complexity that is alleged to infest many Unix
	programs.  "This shell script tries to parse its arguments in
	69 bletcherous ways.  It must have been written by a real Unix
	weenie."

	2. A derogatory term for anyone who engages in uncritical
	praise of {Unix}.  Often appearing in the context "stupid Unix
	weenie".

	See {Weenix}, {Unix conspiracy}, {weenie}.

	[{Jargon File}]

	(1995-02-27)

Unix wizard

	<job> Someone with a deep understanding of {Unix}.

	See {wizard}.

	(1995-05-11)

unnormalised

	{normalisation}

unproto

	A translator from {ANSI C} to {K&R C} by Wietse Venema
	<wietse@wzv.win.tue.nl>.

	{(ftp://ftp.win.tue.nl/pub/Unix/unproto4.shar.Z)}.

unshar

	A {Unix} utility that removes {e-mail} and {news} {header}
	lines from its input, and feeds the remainder (which is
	presumed to be a {shar file}) to /bin/sh to unpack it.  unshar
	is designed for unpacking archives directly from the news or
	mail systems simply by {piping} a message into it.

unshielded twisted pair

	<hardware> (UTP) Normal telephone wire (in the USA).  It may
	be used for computer to computer communications, e.g. using a
	version of {Ethernet} or {localtalk}.  It is much cheaper than
	standard "full-spec" Ethernet cable.  It comes in five
	"catagories":

	 cat.   wires   transmission
	 1	two	voice no data (telephone cable)
	 2	four 	data up to 4 Mbps
	 3	four	data up to 10 Mbps
	 4	four	data up to 16 Mbps
	 5	four	data up to 100 Mbps

	(2003-07-04)

unswizzle

	The opposite of {swizzle}.

	[{Jargon File}]

	(1995-02-15)

until

	{while loop}

untyped

	<programming> A {variable} which can hold values of any {type}
	or a {programming language} in which some or all variables are
	like this.

	An example would be {VBScript}, or {Visual Basic}'s {variant}
	type.

	(2003-12-22)

unwind-protect

	({MIT}) A {Lisp} operator which evaluates an expression and
	then, even if that expression causes a {non-local exit},
	evaluates zero or more other expressions.  This can be used to
	ensure that essential "clean-up" operations are performed even
	in the presence of errors.

	[{Jargon File}]

	(1994-11-03)

unwind the stack

	During the execution of a {procedural} language, one is said
	to "unwind the stack" from a called {procedure} up to a caller
	when one discards the {stack frame} and any number of frames
	above it, {pop}ping back up to the level of the given caller.
	In {C} this is done with "{longjmp}"/"{setjmp}", in {Lisp}
	with "{throw}/{catch}".  See also {smash the stack}.

	[{Jargon File}]

UN*X

	<operating system, convention> Used to refer to the {Unix}
	{operating system} (a trademark of {AT&T}) in writing, but
	avoiding the need for the ugly (TM) typography.  Also used to
	refer to any or all varieties of Unixoid operating systems.
	Ironically, lawyers now say that the requirement for the
	TM-postfix has no legal force, but the asterisk usage is
	entrenched anyhow.

	It has been suggested that there may be a psychological
	connection to practice in certain religions (especially
	Judaism) in which the name of the deity is never written out
	in full, e.g. "YHWH" or "G--d" is used.

	See also {glob}.

	(1998-04-17)

unzip

	1. <tool, compression> To extract files from an archive
	created with {PKWare}'s {PKZIP} archiver.

	2. <tool, compression> A program to list, test, or extract
	files from a {ZIP} archive, commonly found on {MS-DOS}
	systems.  zip, creates ZIP archives; both programs are
	compatible with archives created by {PKWARE}'s {PKZIP} and
	{PKUNZIP} for {MS-DOS}.

	(1995-03-06)

up

	<jargon> Working, in order.  E.g. "The down escalator is up."

	Opposite: {down}.

	[{Jargon File}]

	(1995-03-06)

uparrow

	<character> The graphic which the 1963 version of {ASCII} had
	in place of the {caret} character, {ASCII} 94.

	(1995-03-06)

\uparrow

	<character> An upward pointing arrow in {LaTeX}.

	See {closure}.

	(1995-03-16)

UPenn

	{University of Pennsylvania}

upgradability

	<jargon> (Or "upgradeability") How easily {upgrades} to a
	system can be produced and applied.  E.g. "Buying a PC with
	more {PCI} slots gives you increased upgradeability."

	(1999-10-11)

upgrade

	1. A new or better version of some {hardware} or {software}.

	Often used in {marketroid}-speak to mean "{bug fix}".

	2. The act of developing or installing a new version.

	(1995-03-14)

upgradeability

	{upgradability}

upload

	/uhp'lohd/ To transfer programs or data over a digital
	communications link from a smaller or peripheral "client"
	system to a larger or central "host" one.

	Opposite: {download}.

	[{Jargon File}]

	(1994-10-27)

UPMAIL Tricia Prolog

	{(ftp://ftp.csd.uu.se/pub/Tricia/README)}.

	E-mail: <tricia-request@csd.uu.se>.

	[Description?]

	(1994-10-27)

upper bound

	An upper bound of two elements x and y under some {relation}
	<= is an element z such that x <= z and y <= z.

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

	See also {least upper bound}.

	(1995-02-15)

Upper Layer Protocol

	<protocol> 1. (ULP, or upper-layer protocol)
	Any {protocol} residing in {OSI} layers five or above.

	The {Internet} protocol suite includes many upper layer
	protocols representing a wide variety of applications
	e.g. {FTP}, {NFS}, {RPC}, and {SMTP}.  These and other network
	applications use the services of {TCP/IP} and other {lower
	layer protocols} to provide users with basic network services.

	2. A protocol higher in the OSI reference model than the
	current reference point.  Upper Layer Protocol is often used
	to refer to the next-highest protocol in a particular
	{protocol stack}.

	(1999-02-17)

upper memory block

	<storage> (UMB) Up to 64 {kilobytes} of the {expanded memory
	page frame} above the first 64 kilobytes.  The UMB can be used
	to store {TSR} programs or {device drivers} thereby freeing
	parts of the precious {conventional memory}.  The UMB is
	provided by special memory manager programs; many {EMMs} can
	provide UMB as well.

	(1996-01-10)

Upper Side-Band modulation

	<communications> (USB) A kind of {modulation} applied to a
	sinusoidal {carrier}.

	[Details?]

	(1997-07-16)

Upright Database Technology AB

	<company> The Swedish company that developed the {Mimer SQL}
	database.

	(2002-06-03)

UPS

	1. {uninterruptible power supply}.

	2. A source level {C} debugger that runs under {X11} or
	{SunView} by Mark Russell <mtr@ukc.ac.uk>.  Ups includes a {C}
	{interpreter} which allows you to add fragments of code simply
	by editing them into the source window.  Version 2.1.

	Ported to {Sun}, {DECstation}, {VAX} {Ultrix}, {HLH}
	{Clipper}.

	{(ftp://export.lcs.mit.edu/contrib/)}.  Mailing list:
	ups-users-request@ukc.ac.uk.

	Unofficial enhancements by Rod Armstrong <rod@sj.ate.slb.com>
	{(ftp://sj.ate.slb.com/misc/Unix/ups/contrib/rob)}.

	(1991-05-20)

upstream

	<networking> Fewer {network} {hops} away from a {backbone} or
	{hub}.  For example, a small {ISP} that connects to the
	{Internet} through a larger ISP that has their own connection
	to the backbone is {downstream} from the larger ISP, and the
	larger ISP is {upstream} from the smaller ISP.

	(1999-08-05)

upthread

	Earlier in the discussion (see {thread}), i.e. "above".  See
	also {followup}.

	[{Jargon File}]

upward closure

	{closure}

Uranus

	Hideyuki Nakashima <nakashim@el.go.jp>, 1993.  A logic-based
	knowledge representation language.  An extension of Prolog
	written in Common Lisp, with Lisp-like syntax.  Extends Prolog
	with a multiple world mechanism, plus term descriptions to
	provide functional programming.

	{(ftp://etlport.etl.go.jp/pub/uranus/ftp)}.

urban legend

	<publication> A story, which may have started with a grain of
	truth, that has been embroidered and retold until it has
	passed into the realm of myth.  It is an interesting
	phenomenon that these stories get spread so far, so fast and
	so often.  Urban legends never die, they just end up on the
	{Internet}!  Some legends that periodically make their rounds
	include "The Infamous Modem Tax", "Craig Shergold/Brain
	Tumor/Get Well Cards", and "The $250 Cookie Recipe".

	(1996-05-08)

URC

	{Uniform Resource Citation} (previously Universal).

urchin

	{munchkin}

URI

	{Universal Resource Identifier}

URL

	{Uniform Resource Locator}

URL forwarding

	{URL redirection}

URL redirection

	<World-Wide Web> (Or "URL forwarding")

	When a {web server} tells the {client} {browser} to obtain a
	certain requested page from a different location.  This is
	controlled by {directives} in the server's configuration files
	or a "Location: header output by a {CGI} script.

	The web server stores all its documents in a {directory tree}
	rooted at some configured directory, known as its "document
	root".  Normally the {URI} part of the {URL} (the part after
	the {hostname}) is used as a {relative path} from the document
	root to the desired file or directory.  A redirect directive
	allows the server administrator to specify exceptions to this
	general mapping from URL to file name by telling the browser
	"try this URL instead".  The new URL may be on the same server
	or a different one and may itself be subject to redirection.

	The user is normally unaware of this process except that it
	may introduce extra delay while the browser sends the new
	request and the browser will usually display the new URL
	rather than the one the user originally requested.

	(1997-07-15)

URN

	{Uniform Resource Name}

URouLette

	(After {URL} and roulette, the gambling game) A {World-Wide
	Web} service which selects other web pages at random.

	{(http://kuhttp.cc.ukans.edu/cwis/organizations/kucia/uroulette/uroulette.html)}.

	(1994-11-24)

US

	{Unit Separator}

us

	<networking> The {country code} for the United States.

	Usually used only by schools, libraries, and some state and
	local governments.  Other US sites, and many international
	ones, use the non-national {top-level domains} .com, .edu etc.

	(1999-01-27)

usability

	<programming> The effectiveness, efficiency, and satisfaction
	with which users can achieve tasks in a particular environment
	of a product.  High usability means a system is: easy to learn
	and remember; efficient, visually pleasing and fun to use; and
	quick to recover from errors.

	{(http://orrnet.com/)}.

	(1999-04-01)

USAModSim

	<language> United States Army {ModSim} compiler.

	Version 1.0 runs on {SPARC}/{SunOS}, {Silicon Graphics},
	{MS-DOS}.

	{(ftp://max.cecer.army.mil/ftp/isle)}.

	E-mail: Charles Herring <herring@lincoln.cecer.army.mil>.

	(1993-12-29)

usa.net

	{Internet Express}

US-ASCII

	<character> The 7-bit version of {ASCII}, which preceded (and
	is the basis for) 8-bit versions such as {Latin-1}, {MacASCII}
	and later, even larger coded character sets such as {Unicode}.

	US-ASCII is defined in Standard ANSI X3.4-1986,
	"US-ASCII. Coded Character Set - 7-Bit American Standard Code
	for Information Interchange".

	(1998-10-18)

USB

	1. <architecture> {Universal Serial Bus}.

	2. <communications> {Upper Side-Band modulation}.

	(1997-07-16)

USB 2.0

	{Universal Serial Bus}

USB Adapter Card Support

	<communications, software> A set of software extensions that
	provide support for {USB} adapter cards installed in the {PCI}
	bus or {Cardbus} slots in {Macintosh} computers that do not
	have built-in USB ports.

	(2001-11-28)

USB drive

	<storage> A {hard disk drive} connected via {Universal Serial
	Bus} (USB).  May also refer to some kind of {memory stick}
	connected via USB.

	(2008-05-21)

USE

	<language> An early system on the {IBM 1130}.

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

	(2004-09-14)

Usenet

	<messaging> /yoos'net/ or /yooz'net/ (Or "Usenet news", from
	"Users' Network") A distributed {bulletin board} system and
	the people who post and read articles thereon.  Originally
	implemented in 1979 - 1980 by Steve Bellovin, Jim Ellis, Tom
	Truscott, and Steve Daniel at Duke University, and supported
	mainly by {Unix} machines, it swiftly grew to become
	international in scope and, before the advent of the
	{World-Wide Web}, probably the largest decentralised
	information utility in existence.

	Usenet encompasses government agencies, universities, high
	schools, businesses of all sizes, and home computers of all
	descriptions.  In the beginning, not all Usenet hosts were on
	the Internet.  As of early 1993, it hosted over 1200
	{newsgroups} ("groups" for short) and an average of 40
	megabytes (the equivalent of several thousand paper pages) of
	new technical articles, news, discussion, chatter, and
	{flamage} every day.  By November 1999, the number of groups
	had grown to over 37,000.

	To join in you originally needed a {news reader} program but
	there are now several web gateways, cheifly {Google Groups
	(http://groups.google.com/)} (originally {Deja News}).  Some
	{web browsers} include news readers and {URLs} beginning
	"news:" refer to Usenet newsgroups.

	{Network News Transfer Protocol} is a {protocol} used to
	transfer news articles between a news {server} and a {news
	reader}.  The {uucp} {protocol} was sometimes used to transfer
	articles between servers, though this is probably rare now
	that most sites are on the {Internet}.

	{(http://openmarket.com/info/internet-index/current-sources.html)}.

	{Notes on news
	(http://ifi.uio.no/~larsi/notes/notes.html)} by Lars Magne
	Ingebrigtsen <larsi@ifi.uio.no>.

	[Gene Spafford <spaf@cs.purdue.edu>, "What is Usenet?",
	regular posting to {news:news.announce.newusers}].

	(1999-12-17)

Usenet news

	{Usenet}

Usenetter

	<networking> A (regular) user of {Usenet}.

	(1996-09-08)

USENIX

	<body> Since 1975, the USENIX Association has provided a forum
	for the communication of the results of innovation and
	research in {Unix} and modern {open systems}.  It is well
	known for its technical conferences, tutorial programs, and
	the wide variety of publications it has sponsored over the
	years.

	USENIX is the original not-for-profit membership organisation
	for individuals and institutions interested in {Unix} and
	{Unix}-like systems, by extension, {X}, {object-oriented}
	technology, and other advanced tools and technologies, and the
	broad interconnected and interoperable computing environment.

	USENIX's activities include an annual technical conference;
	frequent specific-topic conferences and symposia; a highly
	regarded tutorial program covering a wide range of topics,
	introductory through advanced; numerous publications,
	including a book series, in cooperation with The {MIT Press},
	on advanced computing systems, proceedings from USENIX
	symposia and conferences, the quarterly journal "Computing
	Systems", and the biweekly newsletter; "login: ";
	participation in various {ANSI}, {IEEE} and {ISO} {standards}
	efforts; sponsorship of local and special technical groups
	relevant to Unix.  The chartering of SAGE, the {System
	Administrators Guild} as a Special Technical Group within
	USENIX is the most recent.

	{(http://usenix.org)}.

	{Usenet} newsgroup: {news:comp.org.usenix}.

	(1994-12-07)

user

	1. <person> Someone doing "real work" with the computer, using
	it as a means rather than an end.  Someone who pays to use a
	computer.  A programmer who will believe anything you tell
	him.  One who asks silly questions without thinking for two
	seconds or looking in the documentation.  Someone who uses a
	program, however skillfully, without getting into the
	internals of the program.  One who reports {bugs} instead of
	just fixing them.  See also {luser}, {real user}.

	Users are looked down on by {hackers} to some extent because
	they don't understand the full ramifications of the system in
	all its glory.  The term is relative: a skilled hacker may be
	a user with respect to some program he himself does not hack.
	A LISP hacker might be one who maintains LISP or one who uses
	LISP (but with the skill of a hacker).  A LISP user is one who
	uses LISP, whether skillfully or not.  Thus there is some
	overlap between the two terms; the subtle distinctions must be
	resolved by context.

	2. <jargon> Any person, organisation, process, device,
	program, {protocol}, or system which uses a service provided
	by others.

	The term "{client}" (as in "{client-server}" systems) is
	rather more specific, usually implying two processes
	communicating via some protocol.

	[{Jargon File}]

	(1996-04-28)

user acceptance testing

	<testing> The type of {testing} where monitored users
	determine whether a system meets all their requirements, and
	will support the business for which it was designed.

	(2003-09-24)

user base

	<jargon> The number of users of some product or standard.

	This term typically arises in discussions of {backward
	compatibility} or {lock-in}.

	(1998-01-15)

User Brain Damage

	<humour> (UBD) A description (usually abbreviated) used to
	close a trouble report obviously due to utter cluelessness on
	the user's part.  Compare {pilot error}; opposite: {PBD}; see
	also {brain-damaged}, {PEBCAK}.

	(1998-08-27)

User Datagram Protocol

	<protocol> (UDP) {Internet} {standard} {network layer},
	{transport layer} and {session layer} {protocols} which
	provide simple but {unreliable} {datagram} services.  UDP is
	defined in {STD 6}, {RFC 768}.  It adds a {checksum} and
	additional process-to-process addressing information [to
	what?].  UDP is a {connectionless protocol} which, like {TCP},
	is layered on top of {IP}.

	UDP neither guarantees delivery nor does it require a
	connection.  As a result it is lightweight and efficient, but
	all error processing and retransmission must be taken care of
	by the {application program}.

	{Unix manual page}: udp(4).

	[Postel, Jon, User Datagram Protocol, RFC 768, Network
	Information Center, SRI International, Menlo Park, Calif.,
	August 1980].

	(1998-02-11)

user-friendly

	Programmer-hostile.  Generally used by hackers in a critical
	tone, to describe systems that hold the user's hand so
	obsessively that they make it painful for the more experienced
	and knowledgeable to get any work done.  See {menuitis},
	{drool-proof paper}, {Macintrash}, {user-obsequious}.

	[{Jargon File}]

user id

	{user identifier}

user identifier

	<operating system> 1. (Or "uid", "user id") A number or name
	which is unique to a particular user of a computer or group of
	computers which share user information.  The {operating
	system} uses the uid to represent the user in its data
	structures, e.g. the owner of a file or process, the person
	attempting to access a system resource etc.

	A user database, e.g. {Unix}'s /etc/passwd file or {NIS}, maps
	the uid to other information about that user such as their
	{user name}, {password}, {home directory} and real name.

	2. {user name}.

	(1997-03-01)

user interface

	(UI) The aspects of a computer system or program which can be
	seen (or heard or otherwise perceived) by the human user, and
	the commands and mechanisms the user uses to control its
	operation and input data.

	A {graphical user interface} emphasises the use of pictures
	for output and a pointing device such as a {mouse} for input
	and control whereas a {command line interface} requires the
	user to type textual commands and input at a keyboard and
	produces a single stream of text as output.

	A user interface contrasts with, but is typically built on top
	of, an {Application Program Interface} (API).

	See also {user interface copyright}.

	(1995-02-20)

user interface copyright

	There have been several attempts, mostly by big US software
	companies, to enforce patents and {copyright} on user
	interfaces.  Such legal action aims to restrict the use of
	certain command languages or {graphical user interfaces} to
	products from one software supplier.  This is undesirable
	because it either forces users to buy software from the
	company whose interface they have learned or to learn more
	than one interface.  An analogy is often drawn with the user
	interface of a car - the arrangement of pedals and steering
	wheel etc.  If each car manufacturer was forced to use a
	different interface this would be very bad for car users.

	Following a non-jury trial, which began in early January 1987,
	a federal judge ruled on 1990-06-28 that keyboard commands and
	on-screen images produced by {Lotus Development Corporation}'s
	popular {1-2-3} {spreadsheet} are protected by {copyright}.
	{Paperback Software International} and subcontractor
	Stephenson Software Ltd. who lost the case, argued that the
	copyright applies only to the inner workings of the software.
	US District Judge Robert Keeton wrote that "The user interface
	of 1-2-3 is its most unique element and is the aspect that has
	made 1-2-3 so popular.  That defendants went to such trouble
	to copy that element is a testament to its substantiality".
	Defence attorneys had argued that the Lotus commands
	represented "instructions for a machine rather than the
	expression of an idea".

	Soon after this decision, on 1990-07-02, Lotus sued {Borland
	International} and the {Santa Cruz Operation} for producing
	{spreadsheets} (Quattro, Quattro Pro and SCO Professional)
	whose interfaces could be configured to look like 1-2-3's.

	(1994-11-16)

User Interface Language

	<language, graphics> (UIL) A language for specifying {widget}
	hierarchies etc. in {OSF}/Motif and {DECwindows}.

	(1997-03-01)

user name

	<operating system, security> (Or "logon") A unique name for
	each user of computer services which can be accessed by
	several persons.

	Users need to identify themselves for accounting, {security},
	logging, and {resource management}.  Usually a person must
	also enter a {password} in order to access a service.  Once
	the user has logged on the {operating system} will often use a
	(short) {user identifier}, e.g. an integer, to refer to them
	rather than their user name.

	User names can usually be any short string of alphanumeric
	characters.  Common choices are first name, initials, or some
	combination of first name, last name, initials and an
	arbitrary number.  User names are often assigned by {system
	administrators} according to some local policy, or they may be
	chosen by the users themselves.

	User names are often also used as {mailbox} names in
	{electronic mail} addresses.

	(1997-03-16)

User Network Interface

	<communications, networking> (UNI) An interface point between
	{ATM} end users and a private {ATM switch}, or between a
	private ATM switch and the {public carrier} ATM network.

	The physical and {protocol} specifications for UNIs are
	defined by the {ATM Forum}'s UNI documents, which allow for
	various types of physical interfaces.

	See also: {NNI}

	(1999-01-23)

user-obsequious

	<jargon> Emphatic form of {user-friendly}.  Connotes a system
	so verbose, inflexible, and determinedly simple-minded that it
	is nearly unusable.  "Design a system any fool can use and
	only a fool will want to use it."

	See {WIMP}, {Macintrash}.

	See also {user-unctuous}.

	[{Jargon File}]

	(1999-06-27)

user-unctuous

	<jargon> (By analogy with {user-friendly} and
	{user-obsequious}) User-interfaces that attempt to soothe (or,
	some would say, stupify) users instead of cooperating with
	them.  Common "features" of user-unctuous systems include:
	icons of happy faces; mellow colors; melodic sound effects or
	even mood music; help tips appearing unbidden and at unhelpful
	moments; and a cloying tone either in system messages ("Oops!
	I couldn't seem to find my old preferences file!  I do think
	I'll have to make a new one!  Please press OK to continue!")
	or in labelling of system components (such as the main hard
	drive being labelled "Your Hard Drive" -- or, with infantile
	pronoun-reversal, "My Hard Drive").

	(1999-06-27)

Use the Source Luke

	<humour, programming> (UTSL) (A pun on Obi-Wan Kenobi's "Use
	the Force, Luke!" in "Star Wars") A more polite version of
	{RTFS}.  This is a common way of suggesting that someone would
	be better off reading the source code that supports whatever
	feature is causing confusion, rather than making yet another
	futile pass through the manuals, or broadcasting questions on
	{Usenet} that haven't attracted {wizards} to answer them.

	Once upon a time in {Elder Days}, everyone running {Unix} had
	source.  After 1978, {AT&T}'s policy tightened up, so this
	objurgation was in theory appropriately directed only at
	associates of some outfit with a Unix {source licence}.  In
	practice, bootlegs of Unix source code (made precisely for
	reference purposes) were so ubiquitous that one could utter it
	at almost anyone on {the network} without concern.

	Nowadays, free Unix clones are becoming common enough that
	almost anyone can read source legally.  The most widely
	distributed is probably {Linux}.  {FreeBSD}, {NetBSD},
	{386BSD}, {jolix} also have their followers.  Cheap commercial
	Unix implementations with source such as {BSD/OS} from {BSDI}
	are accelerating this trend.

	(1996-01-02)

USG Unix

	{operating system} /U-S-G yoo'niks/ Refers to AT&T {Unix}
	commercial versions after {Version 7}, especially System III
	and System V releases 1, 2, and 3.  So called because during
	most of the lifespan of those versions AT&T's support crew was
	called the "Unix Support Group".

	Compare {BSD}.

	[{Jargon File}]

	(1997-02-20)

usim

	<simulation> A {Motorola 6809} {emulator} and {assembler}.

	(2014-06-24)

USL

	1. Query language, close to natural English.

	2. User System Language.  Bellcore, "Operations Technology
	Generic Requirements: User System Interface", TR-825.

	3. Unix System Laboratories: the software subsidiary of
	{AT&T}, responsible for {Unix} {System V} and related
	software.

USP

	{unique sales point}

USR

	{U.S. Robotics, Inc.}

usr

	User.  The "/usr" directory hierarchy on {Unix} systems.  Once
	upon a time, in the early days of Unix, this area actually
	held users' home directories and files.  Since these tend to
	expand much faster than system files, /usr would be mounted on
	the biggest disk on the system.  The root directory, "/" in
	contrast, contains only what is needed to {boot} the {kernel},
	after which /usr and other disks could be mounted as part of
	the multi-user start-up process.

	/usr has been used as the "everything else" area, with many
	"system" files such as compiler libraries (/usr/include,
	/usr/lib), utilty programs (/usr/bin, /usr/ucb), games
	(/usr/games), local additions (/usr/local), manuals
	(/usr/man), temporary files and queues for various {daemons}
	(/usr/spool).  These optional extras have grown in size as
	Unix has evolved and disks have dropped in price.  Under later
	versions of {SunOS}, the user files have fled /usr altogether
	for a new "/home" {partition} and temporary files have moved
	to "/var".  This allows /usr to be mounted read-only with some
	gain in security and performance since access times are not
	updated for files on read-only file systems.

US Robotics

	{U.S. Robotics, Inc.}

U.S. Robotics, Inc.

	<company> A US {modem} manufacturer.

	{(http://usr.com/)}.

	{(ftp://ftp.usr.com/)}.

	Finger: usr.com.

	E-mail: <support@usr.com>, <salesinfo@usr.com> (USA and Canada),
	<eurosupport@usr.com>, <eurosales@usr.com> (Europe),
	<intlsales@usr.com> (other).

	(1995-03-14)

USSA

	Object-oriented state language by B. Burshteyn, Pyramid, 1992.

	{Documentation (ftp://primost.cs.wisc.edu/pub/ussa.ps.Z)}.

UTC

	{Coordinated Universal Time}

UTF

	{UCS transformation format}

UTF-8

	<character> (UCS transformation format 8) An
	{ASCII}-compatible multibyte {Unicode} and {UCS} encoding,
	used by {Java} and {Plan 9}.

	The {Unicode character} set occupies a 16-bit code space.  The
	most obvious Unicode encoding (known as UCS-2) consists of a
	sequence of 16-bit words.  Such strings can contain bytes like
	'\0' or '/' which have a special meaning in filenames and
	other {C} library function parameters.  In addition, the
	majority of {Unix} tools expects ASCII files and can't read
	16-bit words as characters without major modifications.  For
	these reasons, UCS-2 is not a suitable external encoding of
	Unicode in filenames, text files, environment variables, etc.

	The {ISO 10646} {Universal Character Set} (UCS), a superset of
	Unicode, occupies a 31-bit code space and the obvious UCS-4
	encoding for it (a sequence of 32-bit words) has the same
	problems.

	The UTF-8 encoding of Unicode and UCS avoids the problems of
	fixed-length Unicode encodings because an ASCII file encoded
	in UTF is exactly same as the original ASCII file and all
	non-ASCII characters are guaranteed to have the most
	significant bit set (bit 0x80).  This means that normal tools
	for text searching etc. work as expected.

	UTF-8 is defined in {RFC 2279}.

	["File System Safe UCS Transformation Format (FSS_UTF)",
	X/Open Preliminary Specification, X/Open Company Ltd.,
	Document Number: P316.  This information also appears in
	ISO/IEC 10646, Annex P].

	{Plan 9 UTF manual entry
	(ftp://ftp.uu.net/doc/obi/Bell.Labs/plan9pm/09utf.ps.Z)}.

	(1998-07-29)

utility

	{utility software}

utility-coder

	<language> A language for data manipulation and report
	generation.

	["User's Manual for utility-coder", Cambridge Computer
	Association, Jul 1977].

	(1997-12-09)

utility program

	{utility software}

utility software

	<tool> (Or utility program, tool) Any {software} that performs
	some specific task that is secondary to the main purpose of
	using the computer (the latter would be called {application
	programs}) but is not essential to the operation of the
	computer ({system software}).

	Many utilities could be considered as part of the {system
	software}, which can in turn be considered part of the
	{operating system}.

	The following are some broad categories of utility software,
	specific types and examples.

	* Disks

	{disk formatter}: {FDISK}, {format}

	{defragmenter}

	{disk checker}: {fsck}

	{disk cleaner}

	{system profiler}

	{backup}

	{file system compression}

	* Files and directories

	list directory: {ls}, {dir}

	copy, move, remove: {cp}, {mv}, {rm}, {xcopy}

	{archive}: {tar}

	{compression}: {zip}

	format conversion: {atob}

	comparison: {diff}

	sort: {sort}

	* Security

	{authentication}: {login}

	{antivirus software}: {avast}, {Norton Antivirus}

	{firewall}: {Zone Alarm}, {Windows firewall}

	{encryption}: {gpg})

	* Editors for general-purpose formats (as opposed to specific
	formats like a {word processing} document)

	{text editor}: {Emacs}

	{binary editor}, {hex editor}

	* Communications

	{mail transfer agent}: {sendmail}

	e-mail notification: {biff}

	file transfer: {ftp}, {rcp}, {Firefox}

	file synchronisation: {unison}, {briefcase}

	chat: {Gaim}, {cu}

	directory services: {bind}, {nslookup}, {whois}

	network diagnosis: {ping}, {traceroute}

	remote access: {rlogin}, {ssh}

	* Software development

	{compiler}: {gcc}

	build: {make}, {ant}

	{codewalker}

	{preprocessor}: {cpp}

	{debugger}: {adb}, {gdb}

	{installation}: {apt-get}, {msiexec}, {patch}

	{compiler compiler}: {yacc}

	* Hardware

	device configuration: {PCU}, {devman}, {stty}

	(2007-02-02)

UTOPIST

	<language> A specification language for {attribute grammars}
	developed by E. Tyugu of the Academy of Science Estonia,
	Tallinn in 1983.

	["Synthesis of a Semantic Processor from an Attribute
	Grammar", Prog and Comp Soft, 9(1):29-39, Jan 1983].

	(2007-02-02)

UTP

	{unshielded twisted pair}

UTRC

	{United Technologies Research Cente}

UTSL

	<humour> {Use the Source Luke}

	[{Jargon File}]

	(1996-01-02)

uucp

	{Unix to Unix Copy}

UUCPNET

	The international {store and forward} network consisting of
	all the world's connected {Unix} machines (and others running
	some clone of the {UUCP} software).  Any machine reachable
	only via a {bang path} is on UUCPNET.  See {network address}.

	[{Jargon File}]

uudecode

	A Unix program to convert the ASCII output of uuencode back to
	binary.  See uuencode for details.

uuencode

	<communications> (Unix-to-Unix encode) A {Unix} program for
	encoding {binary} data as {ASCII}.  Uuencode was originally
	used with {uucp} to transfer binary files over {serial lines}
	which did not preserve the top bit of characters, but is now
	used for sending binary files by {e-mail} and posting to
	{Usenet} newsgroups etc.  The program uudecode reverses the
	effect of uuencode, recreating the original binary file
	exactly.

	Uuencoded data starts with a line of the form

		begin <mode> <file>

	where <mode> is the files read/write/execute permissions as
	three {octal} digits and <file> is the name to be used when
	recreating the binary data.

	Uuencode repeatedly takes in a group of three bytes, adding
	trailing zeros if there are less than three bytes left.  These
	24 bits are split into four groups of six which are treated as
	numbers between 0 and 63.  Decimal 32 is added to each number
	and they are output as ASCII characters from 32 (space) to
	32+63 = 95 (underscore).  Each group of sixty output
	characters (corresponding to 45 input bytes) is output as a
	separate line preceded by an 'M' (ASCII code 77 = 32+45).  At
	the end of the input, if there are N output characters left
	after the last group of sixty and N>0 then they will be
	preceded by the character whose code is 32+N.  Finally, a line
	containing just a single space is output, followed by one
	containing just "end".

	Sometimes each data line has an extra dummy character added to
	avoid problems which mailers that strip trailing spaces.
	These characters are ignored by uudecode.

	Despite using this limited range of characters, there are
	still some problems encountered when uuencoded data passes
	through certain old computers.  The worst offenders are
	computers using non-ASCII character sets such as EBCDIC.

	{Base 64} encoding is probably now more commonly used than
	uuencode.

	(2004-07-17)

UUNET PIPEX

	<company> An {Internet provider}, part of the Unipalm Group.
	PIPEX launched their Internet service in March 1992, and by
	November 1993 provided Internet service to 150 customer sites
	in the UK.  Each site is either a complete commercial company
	or a branch of one, or a public-sector organisation.  They
	provide a commercial {internetworking} service, with 24-hour
	support, and a resilient backbone with multiple international
	links.  PIPEX provides for individual users through their
	"PIPEX Dial" service, and has a number of re-sellers connected
	to its backbone, including {CityScape}, {Direct Connection}
	and the {IBM PC User Group}, who also offer such services.

	{(http://pipex.net)}.

	E-mail: <support@pipex.net>.

	Address (Head office): Cambridge ?

	Address: King St. London EC2V(?)

	(1996-10-13)

UUPC

	{UUCP} for {MS-DOS}, {Microsoft Windows}, and {OS/2}.

	E-mail: <server@netmail.com> with subject SEND INDEX.

uy

	<networking> The {country code} for Uruguay.

	(1999-01-27)

uz

	<networking> The {country code} for Uzbekistan.

	(1999-01-27)

V

	Upper case V, {ASCII} character 86, known in {INTERCAL} as
	book.

	1. A testbed for distributed system research.

	2. Wide-spectrum language used in the knowledge-based
	environment {CHI}.  "Research on Knowledge-Based Software
	Environments at Kestrel Inst", D.R.  Smith et al, IEEE Trans
	Soft Eng SE-11(11):1278-1295 (1985).

V.10

	<communications, standard> An {ITU-T} recommendation on
	electrical characteristics for {unbalanced} {double-current
	interchange circuits} operating at {data signalling rates}
	nominally up to 100 kbps.  This recommendation is also
	included but not published in {ITU-T} X series under alias
	number X.26.  The circuit defined in this standard is used in
	other {serial line} standards such as {EIA-232} and {EIA-423},
	that implement {single ended} communication.

	(2002-10-05)

V.11

	<communications, standard> An {ITU-T} recommendation on
	electrical characteristics for {balanced} {double-current}
	{interchange circuits} operating at {data signalling rates} up
	to 10 Mbps.  V.11 is also included but not published in the as
	{ITU-T} X.27.  V.11 is used in other {serial line} standards
	such as {EIA-422} and {EIA-485}, that implement {differential
	line} communication.

	(2003-04-06)

V.17

	<protocol, standard> An {ITU-T} {modem} {protocol} for 14400
	{bps} {half duplex} communications with {fall back} to 12000
	{bps}, 9600 {bps} and 7200 {bps}.

	(2004-07-26)

V.21

	<protocol, standard> An {ITU-T} {modem} {protocol} for 300
	{bps} two-wire {full-duplex} communications using {Frequency
	Shift Keying} {modulation}.

	All modern modems support both V.21 and the close variant,
	Bell 103.

	(1996-07-22)

V.22

	<protocol, standard> An {ITU-T} {modem} {protocol} which
	allowed data rates of 1200 {bps}.  {V.22bis} doubled this.

	(2004-07-26)

V.22bis

	<protocol, standard>{V.22} twice.  An {ITU-T} {modem}
	{protocol} which allowed a data rate of 2400 bits per second,
	twice that of {V.22}.

V.23

	<protocol, standard> An {ITU-T} {modem} {protocol} which
	allowed {half-duplex} (unidirectional) data transmission at
	1200 bits per second with a 75 {bps} {back channel} and {fall
	back} to 600/75 bps.  This was the main standard used for
	{British Telecom}'s {Prestel} service.

	(2004-07-26)

V.24

	<standard> The {ITU-T} {standard} defining interchange
	circuits between {DTE} and {DCE}.  V.24 is the {ITU-T}
	equivalent of {EIA} standard {EIA-232C}, though V.24 only
	specifies the meaning of the signals, not the connector or the
	voltages used.

	V.24 recommends 12 {modem} {carrier} frequencies that will not
	interfere with {Dual Tone Multi-Frequency} or other telephone
	control tones.  These are:

	  GROUP A   =    920 Hz, 1000 Hz, 1080 Hz, 1160 Hz
	  GROUP B   =    1320 Hz, 1400 Hz, 1480 Hz, 1560 Hz
	  Group C   =    1720 Hz, 1800 Hz, 1880 Hz, 1960 Hz

	(2004-08-02)

V.25

	<communications, standard> A {standard} allowing an
	{auto-answer} {modem} to determine the correct {modulation}
	standard to use.

	(2001-04-06)

V.25 bis

	<communications, standard> A cryptic command language for
	{modems}.

	(2004-08-02)

V.27 ter

	<protocol, standard> An {ITU-T} {modem} {protocol} which
	allowed 4800 {bps} communications with {fall back} to 2400
	bps.  V27.ter was used by {Fax machines}.

	(2004-07-26)

V.28

	<communications, standard> An {ITU-T} physical interface
	{standard} for {serial} data communications equipment,
	formally titled "Electrical Characteristics for Unbalanced
	Double-Current Interchange Circuits".  The combination of V.28
	and {V.24} is equivalent to the {EIA}'s {RS-232} and uses the
	same 25-pin connectors.

	(2001-04-06)

V.29

	<communications, standard> An {ITU-T} {modem} {protocol} which
	allows 9600 {bps} {half duplex} or {four wire} communications
	with {fall back} to 7200 {bps} and 4800 {bps}.  V.29 is used
	by {fax} machines.

	(2004-07-30)

V.32

	<communications, standard> An {ITU-T} standard {protocol} for
	{modems} transmitting at 9600 bits per second with {fall back}
	to 4800 {bps}.  {V.32bis} extended this to 14400 bps.

	V32 and V.32bis acheive bidirectional data transmission not by
	having different sets of tones at each end but by subtracting
	what is sent from what is received.

	(2004-07-30)

V.32bis

	<communications, standard> V.32 twice.  An extension of the
	{ITU-T} {V.32} {modem} {protocol} allowing 14400 bits per
	second with {fall back} to 12000{bps}, 9600{bps}, 7200{bps}
	and 4800 {bps}.

	The {modem} should select the appropriate speed according to
	the current line conditions.

	See also {V.32ter}.

	(1994-12-15)

V.32ter

	An extension of the {ITU-T} {V.32bis} {modem} {protocol}.
	While waiting for {V.34}, many {modem} manufacturers decided
	to extend V.32bis to 19.2 kbps.  This was known as V.32ter
	which some {marketroids} rechristened V.32 terbo which is not
	only misspelled but misses the fact that V.32ter means the
	third revision of V.32.

	(1994-12-15)

V.34

	<protocol> An {ITU-T} {standard} {modem} serial line
	{protocol} using {symbol rates} of 2400, 2743, 2800, 3000,
	>3200 and 3429 and up to 28800 bits per second.

	The official V.34 draft recommendation was titled:

	   Modem operating at data signalling rates of up to 28 800
	   bit/s for use on the general switched telephone network and
	   on leased point-to-point 2-wire telephone-type circuits.

	During the lengthy process of approval by {ITU-T}, many
	manufacturers released 28.8 kbps modems described as "V.FAST".
	The V.34 recommendation was ratified by {ITU-T} on 20
	September 1994.  {Rockwell} and {US Robotics} both have seats
	on the ITU-T, and have both released {chip set}/{BIOS}
	combinations that they feel will meet V.34.  V.34 modems will
	also support {V.FC} if the manufacturer currently supports
	V.FC (e.g. {Rockwell}).  Some (all?) V.34 modems will also
	support {line probing}.

	{ITU document
	(http://itu.int/itudoc/itu-t/rec/v/v34_25302.html)}.

	(1998-07-03)

V.35

	<communications, standard> The {ITU-T} {standard} for data
	transmission at 48 kilobits per second over 60 - 108 KHz group
	band circuits.  It contains the 34-pin {V.34} connector
	specifications normally implemented on a modular {RJ-45}
	connector.

	(1995-03-02)

V.42

	<communications, standard> An {ITU-T} standard {protocol} for
	{error correction} between {modems}, which includes {MNP} up
	to level 4 and {asynchronous} to {synchronous} conversion.

	(2004-08-02)

V.42bis

	<communications, standard> An extension of the {ITU-T} {V.42}
	standard {modem} {protocol} to included {compression} using a
	{Lempel-Ziv} related technique, which detects frequently
	occurring character strings and replaces them with tokens.
	This is similar to the {Unix} {compress} utility.  Typical
	{compression} for text is 50% or better; with nearly 20% gain
	from {synchronous} conversion this gives reduces transmission
	time by almost 60%.

	[Details?  On-line spec?]

	(2004-08-02)

V.90

	<protocol> An {ITU-T} {standard} {modem} serial line
	{protocol} allowing download speeds of up to 56 {kbps} with
	upload speeds of 33.6 {kbps}.  {V.90} modems are designed for
	connections that are digital at one end and have only one
	digital-to-analogue conversion.

	As of 1998-02-06 the V.90 standard, formerly called V.pcm, has
	been given final approval by {ITU-T}.  On 1998-10-27 the ITU-T
	announced that approval of the V.90 standard was completed.
	Interoperability testing is complete or in progress for
	several modem manufacturers.  The V.90 standard reconciles two
	competing standards, {X2} and {K56flex}.

	The {ITU-T} has initiated the approval process for a new
	all-digital version of the protocol, to be known as {V.91}.

	{ITU Press Release 98-04
	(http://itu.int/newsroom/press/releases/1998/98-04.html)}.
	and {NP-3
	(http://itu.int/newsroom/press/releases/1998/NP-3.html)}.

	(1999-01-25)

V.91

	<protocol> An all-digital version of the {V.90} {protocol},
	undergoing {ITU-T} approval.

	(1999-01-13)

va

	<networking> The {country code} for the Vatican.

	(1999-01-27)

vacuum tube

	{electron tube}

vadding

	<games> /vad'ing/ (From VAD, a permutation of ADV,
	i.e. {ADVENT}, used to avoid a particular {admin}'s continual
	search-and-destroy sweeps for the game) A leisure-time
	activity of certain hackers involving the covert exploration
	of the "secret" parts of large buildings - basements, roofs,
	freight elevators, maintenance crawlways, steam tunnels, and
	the like.  A few go so far as to learn locksmithing in order
	to synthesise vadding keys.  The verb is "to vad" (compare
	{phreaking}; see also {hack}, sense 9).  This term dates from
	the late 1970s, before which such activity was simply called
	"hacking"; the older usage is still prevalent at {MIT}.

	Vadding (pronounced /vay'ding/) was also popular {CMU}, at
	least as early as 1986.  People who did it every night were
	called the "vaders," possibly after "elevator," which was one
	of the things they played with, or "invader," or "Darth
	Vader".  This game was usually played along with
	no-holds-barred hide-and-seek.  CMU grad students were the
	known to pry open the inner doors of elevators between floors
	to see the graffiti on the inside of the outer doors.

	The most extreme and dangerous form of vadding is "elevator
	rodeo", also known as "elevator surfing", a sport played by
	wrasslin' down a thousand-pound elevator car with a 3-foot
	piece of string, and then exploiting this mastery in various
	stimulating ways (such as elevator hopping, shaft exploration,
	rat-racing, and the ever-popular drop experiments).  Kids,
	don't try this at home!

	See also {hobbit}.

	[{Jargon File}]

	(1996-01-07)

VAL

	1. Value-oriented Algorithmic Language.  J.B. Dennis, MIT
	1979.  Single assignment language, designed for MIT dataflow
	machine.  Based on CLU, has iteration and error handling,
	lacking in recursion and I/O.  "A Value- Oriented Algorithmic
	Language", W.B. Ackermann et al, MIT LCS TR-218, June 1979.
	"The VAL Language: Description and Analysis", J.R. McGraw,
	TOPLAS 4(1):44-82 (Jan 1982).

	2. <language, robotics> Variable Assembly Language.
	Unimation.  Language for industrial robots.  Version: VAL II -
	"VAL II: A New Robot Control System for Automatic
	Manufacturing", B.E. Shimano et al, Proc IEEE Intl Conf on
	Robotics 1984, pp.278-292.

	3. VHDL Annotation Language.  Stanford.
	{(ftp://wilbur.stanford.edu/pub/valbin-sun3-4.0-0.1.3.tar.Z)}.
	Source in Ada available from Larry M. Augustin
	<lma@sierra.stanford.edu>.

Valencia Simple Tasker

	<operating system> (VSTa) A small {microkernel} based
	{Unix}-like {operating system}, taking ideas from {QNX} and
	{Plan 9}, available under {GPL}.

	{(http://chat.net/~jeske/VSTa/)}.

	(1999-03-03)

valency

	{degree}

Valid

	A {dataflow} language.

	["A List-Processing-Oriented Data Flow Machine Architecture",
	Makoto Amamiya et al, AFIPS NCC, June 1982, pp. 143-151].

	(1995-02-14)

validation

	The stage in the {software life-cycle} at the end of the
	development process where software is evaluated to ensure that
	it complies with the requirements.

	(1995-02-14)

value

	{brightness}

Value Added Network

	<networking> (VAN) A privately owned {network} that provides a
	specific service, such as legal research or access to a
	specialised database, for a fee.  A Value Added Network
	usually offers some service or information that is not readily
	available on public networks.

	A Value Added Network's customers typically purchase {leased
	lines} that connect them to the network or they use a {dial-up
	number}, given by the network owner, to gain access to the
	network.

	(1998-11-10)

value added reseller

	<company> (VAR, or "value added retailer") A company which
	sells something (e.g. computers) made by another company (an
	{OEM}) with extra components added (e.g. specialist software).

	(1995-02-14)

value added retailer

	{value added reseller}

valve

	<electronics> UK term for a {vacuum tube}.

	(1996-01-10)

vampire tap

	<networking, hardware> A device to connect a {network node} to
	an {RG8} thick {ethernet} cable without affecting other
	connected nodes.

	A vampire tap has an interface box with a "V" shaped groove
	along one side.  A sharp needle protrudes from the center of
	the groove.  The cable is clamped into the groove by a grooved
	plate held in position by two thumb screws.  With sufficient
	practise, tightening the screws forces the needle through the
	cable jacket and into contact with the cable's center wire
	while other spikes bite into the outer conductor.  The
	interface box has a 15 pin connector to connect to the network
	{node}.

	The vampire tap is often built into the {transceiver}, with a
	more flexible multi-wire "drop cable" to connect the
	transceiver to the node.

	(2004-08-25)

VAN

	{Value Added Network}

vanilla

	1. (Default flavour of ice cream in the US) Ordinary
	{flavour}, standard.  When used of food, very often does not
	mean that the food is flavoured with vanilla extract!  For
	example, "vanilla wonton soup" means ordinary wonton soup, as
	opposed to hot-and-sour wonton soup.  Applied to hardware and
	software, as in "Vanilla {Version 7} {Unix} can't run on a
	vanilla {PDP 11}/34."  Also used to orthogonalise chip
	nomenclature; for instance, a 74V00 means what TI calls a
	7400, as distinct from a 74LS00, etc.  This word differs from
	{canonical} in that the latter means "default", whereas
	vanilla simply means "ordinary".  For example, when hackers go
	to a chinese restaurant, hot-and-sour wonton soup is the
	{canonical} wonton soup to get (because that is what most of
	them usually order) even though it isn't the vanilla wonton
	soup.

	[{Jargon File}]

	(1994-11-04)

	2. {Snobol4} by {Catspaw, Inc.} for {MS-DOS}.

	{(ftp://cs.arizona.edu/snobol4/vanilla.arc)}.

	(1992-02-05)

vanity domain

	<networking> A {domain} you register for the sole purpose of
	having your own domain so you can have an easily remembered
	{URL} and {e-mail} address.  The domain is usually served
	(often {vhost}ed) off someone else's machines.

	This is as opposed to a domain you register because you have
	machines of your own which are already on the Internet and
	which you want to make addressable via something other than
	{dot address}es.

	Whereas vanity domains were almost unheard-of in 1980s, since
	the invention and popularisation of the {Web} in the mid-1990s
	and the desire for {URLs} which consist only of memorable
	domain names (e.g., "http://pbs.org") for everything from
	movies to car wax, vanity domains have come to be the rule
	instead of the exception.

	(1997-09-11)

vannevar

	<jargon> /van'*-var/ A bogus technological prediction or a
	foredoomed engineering concept, especially one that fails by
	implicitly assuming that technologies develop linearly,
	incrementally, and in isolation from one another when in fact
	the learning curve tends to be highly nonlinear, revolutions
	are common, and competition is the rule.  The prototype was
	Vannevar Bush's prediction of "electronic brains" the size of
	the Empire State Building with a Niagara-Falls-equivalent
	cooling system for their tubes and relays, a prediction made
	at a time when the semiconductor effect had already been
	demonstrated.  Other famous vannevars have included
	{magnetic-bubble memory}, {LISP machines}, {videotex}, and a
	paper from the late 1970s that computed a purported ultimate
	limit on areal density for {integrated circuits} that was in
	fact less than the routine densities of 5 years later.

	[{Jargon File}]

	(2000-02-29)

Vannevar Bush

	<person> Dr. Vannevar Bush, 1890-1974.  The man who invented
	{hypertext}, which he called {memex}, in the 1930s.

	Bush did his undergraduate work at Tufts College, where he
	later taught.  His masters thesis (1913) included the
	invention of the Profile Tracer, used in surveying work to
	measure distances over uneven ground.  In 1919, he joined
	{MIT}'s Department of Electrical Engineering, where he stayed
	for twenty-five years.  In 1932, he was appointed
	vice-president and dean.  At this time, Bush worked on optical
	and photocomposition devices, as well as a machine for rapid
	selection from banks of microfilm.

	Further positions followed: president of the Carnegie
	Institute in Washington, DC (1939); chair of National Advisory
	Committee for Aeronautics (1939); director of Office of
	Scientific Research and Development.  This last role was as
	presidential science advisor, which made him personally
	responsible for the 6,000 scientists involved in the war
	effort.  During World War II, Bush worked on radar antenna
	profiles and the calculation of artillery firing tables.  He
	proposed the development of an {analogue computer}, which
	later became the {Rockefeller Differential Analyser}.

	Bush is the pivotal figure in hypertext research.  His
	ground-breaking 1945 paper, "As We May Think," speculated on
	how a machine might be created to assist human reasoning, and
	introduced the idea of an easily accessible, individually
	configurable storehouse of knowledge.  This machine, which he
	dubbed "memex," in various ways anticipated {hypermedia} and
	the {World Wide Web} by nearly half a century.

	{Electronic Labyrinth article
	(http://jefferson.village.virginia.edu/elab/hfl0034.html)}.

	{Bush's famous article, "As We May Think"
	(http://theatlantic.com/unbound/flashbks/computer/bushf.htm)}.

	(2001-06-17)

vaporware

	<jargon> /vay'pr-weir/ (UK "vapourware") Products announced
	far in advance of any release (which may or may not actually
	take place).  The term came from {Atari} users and was later
	applied by {Infoworld} to {Microsoft}'s continuous lying about
	{Microsoft Windows}.

	See also {brochureware}.

	[{Jargon File}]

	(2004-11-16)

vapourware

	<spelling> UK spelling of "{vaporware}".

	(2004-11-16)

VAR

	{Value Added Reseller} (or retailer).

var

	{variable}

varchar

	<database> A {database} {data type} for storing
	variable-length strings of {ASCII} data.  The amount of
	storage space used depends on the length of the strings, in
	contrast to the ordinary "char" type.  The maximum length of
	string must still be specified, e.g. varchar(256).

	(2009-02-25)

variable

	<programming> (Sometimes "var" /veir/ or /var/) A named memory
	location in which a program can store intermediate results and
	from which it can read it them.  Each {programming language}
	has different rules about how variables can be named, typed,
	and used.  Typically, a value is "assigned" to a variable in
	an {assignment} statement.  The value is obtained by
	evaluating an expression and then stored in the variable.  For
	example, the assignment

		x = y + 1

	means "add one to y and store the result in x".  This may look
	like a mathematical equation but the mathematical equality is
	only true in the program until the value of x or y changes.
	Furthermore, statements like

		x = x + 1

	are common.  This means "add one to x", which only makes sense
	as a state changing operation, not as a mathematical equality.

	The simplest form of variable corresponds to a single-{word}
	of {memory} or a {CPU} {register} and an assignment to a
	{load} or {store} {machine code} operation.

	A variable is usually defined to have a {type}, which never
	changes, and which defines the set of values the variable can
	hold.  A type may specify a single ("atomic") value or a
	collection ("aggregate") of values of the same or different
	types.  A common aggregate type is the {array} - a set of
	values, one of which can be selected by supplying a numerical
	{index}.

	Languages may be {untyped}, {weakly typed}, {strongly typed},
	or some combination.  {Object-oriented programming} languages
	extend this to {object} types or {classes}.

	A variable's {scope} is the region of the program source
	within which it represents a certain thing.  Scoping rules are
	also highly language dependent but most serious languages
	support both {local variables} and {global variables}.
	{Subroutine} and {function} {formal arguments} are special
	variables which are set automatically by the language runtime
	on entry to the subroutine.

	In a {functional programming} language, a variable's value
	never changes and change of state is handled as recursion over
	lists of values.

	(2004-11-16)

Variational Graphics eXtended

	<software> (VGX) {Software} developed by {SDRC} for use in 3D
	{CAD} {solid modelling}.

	(1998-02-06)

VAX

	<computer> /vaks/ (Virtual Address eXtension) The most
	successful {minicomputer} design in industry history, possibly
	excepting its immediate ancestor, the {PDP-11}.  Between its
	release in 1978 and its eclipse by {killer micros} after about
	1986, the VAX was probably the {hacker}'s favourite machine,
	especially after the 1982 release of {4.2BSD} {Unix}.
	Especially noted for its large, {assembly
	code}-programmer-friendly {instruction set} - an asset that
	became a liability after the {RISC} revolution.

	VAX is also a British brand of {carpet cleaner
	(http://vax.co.uk/)} whose advertising slogan, "Nothing
	sucks like a VAX!" became a battle-cry of RISC partisans.  It
	is even sometimes claimed that DEC actually entered a
	licencing deal that allowed them to market VAX computers in
	the UK in return for not challenging the carpet cleaner
	trademark in the US.

	The slogan originated in the late 1960s as "Nothing sucks like
	Electrolux", Electrolux AB being a rival Swedish company.  It
	became a classic textbook example of the perils of not knowing
	the local idiom, which is ironic because, according to the
	Electrolux press manager in 1996, the double entendre was
	intentional.  VAX copied the slogan in their promotions in
	1986-1987, and it surfaced in New Zealand TV ads as recently
	as 1992!

	[{Jargon File}]

	(2000-09-28)

VAX DOCUMENT

	A document preparation system from {DEC}.

VAXectomy

	<jargon> /vak-sek't*-mee/ (By analogy with "vasectomy")
	Removal of a {VAX}.  {DEC}'s {Microvax}en, especially, are
	much slower than newer {RISC}-based {workstations} such as the
	{SPARC}.  Thus, if one knows one has a replacement coming, VAX
	removal can be cause for celebration.

	[{Jargon File}]

	(1995-02-20)

VAXen

	/vak'sn/ (From "oxen", perhaps influenced by "vixen") The
	plural canonically used among hackers for the {DEC} {VAX}
	computers.  "Our installation has four PDP-10s and twenty
	vaxen."

	See {boxen}.

	[{Jargon File}]

	(1995-02-20)

vaxherd

	/vaks'herd/ ["oxherd"] An operator who tends one or more
	{VAXen}.

	[{Jargon File}]

vaxism

	/vak'sizm/ A piece of code that exhibits {vaxocentrism} in
	critical areas.  Compare {PC-ism}, {Unixism}.

VAX MIPS

	<benchmark> (Or VAX Unit of Performance, VUP) The processing
	power normally attributed to a {Digital Equipment Corporation}
	{VAX} 11/780.  Future VAX systems were rated according to this
	scale (e.g. VAX 8350's being 2.7 VUPs per CPU).  A {MicroVAX}
	II is normally associated with 0.9 VUPs and at a later time
	the MicroVUP was coined to rate VAX {workstations}.  The use
	of the VUP by Digital Equipment Corporation has been replaced
	with more standard benchmarks ({SPECint} and {SPECfp}) in the
	{DEC Alpha} processor systems.

	(1996-08-22)

vaxocentrism

	/vak"soh-sen"trizm/ [analogy with "ethnocentrism"] A notional
	disease said to afflict C programmers who persist in coding
	according to certain assumptions that are valid (especially
	under Unix) on {VAXen} but false elsewhere. Among these are:

	1. The assumption that dereferencing a null pointer is safe
	because it is all bits 0, and location 0 is readable and 0.
	Problem: this may instead cause an illegal-address trap on
	non-VAXen, and even on VAXen under OSes other than BSD Unix.
	Usually this is an implicit assumption of sloppy code
	(forgetting to check the pointer before using it), rather than
	deliberate exploitation of a misfeature.

	2. The assumption that characters are signed.

	3. The assumption that a pointer to any one type can freely be
	cast into a pointer to any other type.  A stronger form of
	this is the assumption that all pointers are the same size and
	format, which means you don't have to worry about getting the
	casts or types correct in calls.  Problem: this fails on
	word-oriented machines or others with multiple pointer
	formats.

	4. The assumption that the parameters of a routine are stored
	in memory, on a stack, contiguously, and in strictly ascending
	or descending order.  Problem: this fails on many RISC
	architectures.

	5. The assumption that pointer and integer types are the same
	size, and that pointers can be stuffed into integer variables
	(and vice-versa) and drawn back out without being truncated or
	mangled.  Problem: this fails on segmented architectures or
	word-oriented machines with funny pointer formats.

	6. The assumption that a data type of any size may begin at
	any byte address in memory (for example, that you can freely
	construct and dereference a pointer to a word- or
	greater-sized object at an odd char address).  Problem: this
	fails on many (especially RISC) architectures better optimised
	for {HLL} execution speed, and can cause an illegal address
	fault or bus error.

	7. The (related) assumption that there is no padding at the
	end of types and that in an array you can thus step right from
	the last byte of a previous component to the first byte of the
	next one.  This is not only machine- but compiler-dependent.

	8. The assumption that memory address space is globally flat
	and that the array reference "foo[-1]" is necessarily valid.
	Problem: this fails at 0, or other places on segment-addressed
	machines like Intel chips (yes, segmentation is universally
	considered a {brain-damaged} way to design machines (see
	{moby}), but that is a separate issue).

	9. The assumption that objects can be arbitrarily large with
	no special considerations.  Problem: this fails on segmented
	architectures and under non-virtual-addressing environments.

	10. The assumption that the stack can be as large as memory.
	Problem: this fails on segmented architectures or almost
	anything else without virtual addressing and a paged stack.

	11. The assumption that bits and addressable units within an
	object are ordered in the same way and that this order is a
	constant of nature.  Problem: this fails on {big-endian}
	machines.

	12. The assumption that it is meaningful to compare pointers
	to different objects not located within the same array, or to
	objects of different types.  Problem: the former fails on
	segmented architectures, the latter on word-oriented machines
	or others with multiple pointer formats.

	13. The assumption that an "int" is 32 bits, or (nearly
	equivalently) the assumption that "sizeof(int) ==
	sizeof(long)".  Problem: this fails on {PDP-11s}, {Intel
	80286}-based systems and even on {Intel 80386} and {Motorola
	68000} systems under some compilers.

	14. The assumption that "argv[]" is writable.  Problem: this
	fails in many embedded-systems C environments and even under a
	few flavours of Unix.

	Note that a programmer can validly be accused of vaxocentrism
	even if he or she has never seen a VAX.  Some of these
	assumptions (especially 2--5) were valid on the {PDP-11}, the
	original {C} machine, and became endemic years before the VAX.
	The terms "vaxocentricity" and "all-the-world"s-a-VAX
	syndrome' have been used synonymously.

	[{Jargon File}]

VAXset

	A set of software development tools from DEC, including a
	language-sensitive editor, compilers etc.

VAXstation

	A family of {workstations} from {DEC} based on their {VAX}
	computer architecture.

	(1995-02-03)

VAX/VMS

	{VMS}

VB

	{Visual BASIC}

VBA

	{Visual Basic for Applications}

vbell

	{visible bell}

VBScript

	{Visual BASIC Script}

vbx

	<filename extension> The {filename extension} for {Visual
	Basic Extension}.

	(1995-02-03)

vc

	<networking> The {country code} for Saint Vincent and the
	Grenadines.

	(1999-01-27)

VCC filtering

	<electronics> A technique for reducing the amount of {Radio
	Frequency Interference} spread via power supply connections.
	{VCC} is a common name for the non-{ground} power supply line
	in circuits based on {bipolar transistors}.

	When part of a circuit generates lots of radio-frequency
	noise, that portion of the {power plane} can be isolated from
	the rest of the circuit and power delivered to it via a {low
	pass filter}, usually a {PI filter}, as shown in the diagram
	below.

	      source   ________inductor_________   load
			  |                |
		      capacitor        capacitor
			  |                |
		       ground           ground

	This helps to shield the rest of the circuit from the noise
	generated by the load.

	(1998-01-26)

VCD

	{Video Compact Disc}

VCID

	{Virtual Circuit Identifier}

VCL

	{Visual Component Library}

VCODE

	1. The {intermediate language} used in the compilation of
	{NESL}.

	["Implementation of a Portable Nested Data-Parallel Language",
	Guy Blelloch et al, in Fourth ACM SIGPLAN Symposium on Princ
	and Practice of Parallel Programming, ACM, 1993].

	2. The {intermediate language} used in the compilation of
	{C+@}.

	(1995-01-12)

VCPI

	{Virtual Control Program Interface}

VCR

	{Video Cassette Recorder}

vdiff

	/vee'dif/ Visual diff.  The operation of finding differences
	between two files by {eyeball search}.  The term "optical
	diff" has also been reported, and is sometimes more
	specifically used for the act of superimposing two nearly
	identical printouts on one another and holding them up to a
	light to spot differences.  Though this method is poor for
	detecting omissions in the "rear" file, it can also be used
	with printouts of graphics, a claim few if any diff programs
	can make.  See {diff}.

	[{Jargon File}]

VDL

	{Vienna Definition Language}

VDM

	1. Vienna Definition Method

	2. {Virtual Device Metafile}.

VDM++

	{Object-oriented extension} of {VDM-SL}.  ["Object-Oriented
	Specification in VDM++", in Object Oriented Specification Case
	Studies, K. Lano et al eds, P-H 1993].

VDM-SL

	{Vienna Development Method Specification Language}

VDSL

	{Very high bit-rate Digital Subscriber Line}

VDT

	{video display terminal}

VDU

	{Visual Display Unit}

vdx

	{virtual network bios driver}

ve

	<networking> The {country code} for Venezuela.

	(1999-01-27)

vector

	1. <mathematics> A member of a {vector space}.

	2. <graphics> A line or movement defined by its end points, or
	by the current position and one other point.  See {vector
	graphics}.

	3. <operating system> A memory location containing the address
	of some code, often some kind of {exception} handler or other
	{operating system} service.  By changing the vector to point
	to a different piece of code it is possible to modify the
	behaviour of the operating system.

	Compare {hook}.

	4. <programming> A one-dimensional {array}.

	(1996-09-30)

Vector C

	<language> A variant of {C} from {CMU}(?), similar to {ACTUS}.

	(1996-09-30)

vector font

	{outline font}

vector graphics

	<graphics> (Sometimes called "object-oriented" graphics,
	though it's nothing to do with {object-oriented programming}).
	The representation of separate shapes such as lines, polygons
	and text, and groups of such objects, as opposed to {bitmaps}.
	The advantage of vector graphics ("drawing") programs over
	bitmap ("paint") editors is that multiple overlapping elements
	can be manipulated independently without using differenet
	layers for each one.  It is also easier to render an object at
	different sizes and to transform it in other ways without
	worrying about image {resolution} and {pixels}.

	(2001-02-06)

vector processor

	{array processor}

vector space

	<mathematics> An {additive group} on which some ({scalar})
	{field} has an {associative} multiplicative action which
	distributes over the addition of the vector space and respects
	the addition of the (scalar) field: for vectors u, v and
	scalars h, k; h(u+v) = hu + hv; (h+k)u = hu + ku; (hk)u =
	h(ku).

	[Simple example?]

	(1996-09-30)

VECTRAN

	<language> {Fortran} with {array} extensions.

	["The VECTRAN Language: An Experimental Language for
	Vector/Matrix Array Processing", Report G320- 3334, IBM, Aug
	1975].

	(1996-01-19)

VEE

	{HP VEE}

veeblefeetzer

	{veeblefetzer}

veeblefester

	<jargon, abuse> /vee'b*l-fes"tr/ (From "Born Loser" comix via
	{Commodore}; probably originally from "Mad" Magazine's
	"Veeblefeetzer" parodies ca. 1960) Any obnoxious person
	engaged in the (alleged) professions of marketing or
	management.

	Antonym of {hacker}.  Compare {suit}, {marketroid}.  See also
	{veeblefetzer}.

	[veeblefeetzer or veeblefetzer?]

	[{Jargon File}]

	(1996-03-31)

veeblefetzer

	<jargon> /vee'b*l-fetz'*/ (Or "veeblefeetzer"?) A purposely
	nonsensical sounding word applied to any sort of obscure or
	complicated object, e.g. a piece of computer code, model
	railroad equipment, auto parts, etc.

	The more immediate origin of the word is "Mad" Magazine.  In
	the late 1950s and early 1960s it used the word along the same
	lines, especially in its send-ups of big business.  "North
	American Veeblefetzer" was the subject of satires of an annual
	reports, an in-house newsletter, and more.  A Veeblefetzer, in
	their case, was a robot-like device that did something or
	other.

	The more distant source was probably a 19th century yiddish
	word, possibly with limited usage.  In German, "Fetzer" is any
	contraption, while "Veeble" is a likely corruption of "Webel"
	-- meaning weaving.  Textile mills of this period were crammed
	with very complicated, wildly active and very loud pieces of
	machinery.

	See also {veeblefester}.

	[veeblefeetzer or veeblefetzer?]

	(1996-03-31)

VEL

	{LISP70}

Vendor Independent Messaging

	<networking> (VIM) An {electronic mail} {API} promoted by an
	industry group headed by {Lotus Development}.  VIM is a
	competitor to {Microsoft}'s {MAPI}.

	[Features?]

	(1995-03-28)

ventilator card

	{lace card}

Ventura Publisher

	{Corel VENTURA}

Venus flytrap

	{firewall machine}

verbage

	<spelling, jargon> /ver'b*j/ Speech or writing with an excess of
	words or of obscure words.

	Although identical in meaning, and almost in spelling, to the
	common word {verbiage}, Patrick Flatley believes he was the first
	to coin the word "verbage", as a portmanteau of "verbal" and
	"garbage", in the article cited below (itself a prime example of
	verbiage).

	[Fordham University student newspaper, "The Observer",
	1982-10-06, p6].

	(2011-12-21)

verbiage

	<jargon> {documentation}, especially documentation that is verbose
	and/or obscure as in the common meaning of the term.

	[{Jargon File}]

	(2011-12-21)

Verdi

	(named after the Italian composer Giuseppe Verdi (1813-1901))
	Provable systems language.  Descendant of Ottawa Euclid.

verification

	The process of determining whether or not the products of a
	given phase in the life-cycle fulfil a set of established
	requirements.

Verilog

	<language> A {Hardware Description Language} for electronic
	design and gate level {simulation} by {Cadence Design
	Systems}.

	{xnf2ver} is an {XNF} to Verilog translator.

	["The Verilog Hardware Description Language", Donald E. Thomas
	& Philip Moorby, Kluwer, 1991].

	(1999-04-16)

Verilog SA

	<company> A French {real-time software engineering} company.

	(1999-04-16)

Veronica

	<information science> Very Easy Rodent-Oriented Net-wide Index
	to Computerized Archives.  Veronica offers a keyword search of
	most {gopher} menu titles in the entire gopher web.  As
	{archie} is to {FTP} archives, Veronica is to {Gopherspace}.
	A Veronica search produces a menu of Gopher items, each of
	which is a direct pointer to a Gopher data source.  Because
	Veronica is accessed through a Gopher Client, it is easy to
	use, and gives access to all types of data supported by the
	Gopher {protocol}.

	To try Veronica, select it from the "Other Gophers" menu on
	Minnesota's gopher server, or point your gopher at:

	 Name=veronica (search menu items in most of GopherSpace)
	 Type=1
	 Port=70
	 Path=1/veronica
	 Host=gopher.scs.unr.edu

	{(gopher://gopher.scs.unr.edu/1/veronica)}.

Versa Module Europa

	<hardware> (VME) A flexible open-ended bus system which makes
	use of the {Eurocard} standard.

	VME was introduced in 1981 by {Motorola}, {Philips},
	{Thompson}, and {Mostek}.  It was intended to be a flexible
	environment supporting a variety of computing intensive tasks,
	and has become a rather popular protocol in the computer
	industry.  It is defined by the {IEEE} standard 1014-1987.

	(1997-03-10)

version

	<programming> One of a sequence of copies of a program, each
	incorporating new modifications.  Each version is usually
	identified by a number, commonly of the form X.Y where X is
	the major version number and Y is the release number.
	Typically an increment in X (with Y reset to zero) signifies a
	substantial increase in the function of the program or a
	partial or total re-implementation, whereas Y increases each
	time the progam is changed in any way and re-released.

	Version numbers are useful so that the user can know if the
	program has changed ({bugs} have been fixed or new functions
	added) since he obtained his copy and the programmer can tell
	if a bug report relates to the current version.  It is thus
	always important to state the version when reporting bugs.
	Statements about compatibility between different software
	components should always say which versions they apply to.

	See {change management}.

	(1997-12-07)

Version 7

	<operating system> (V7) The unsupported release of {Unix}
	ancestral to all current commercial versions.  {Brian
	Kernighan} announced the release of V7 in summer 1979, at the
	{Unix User's} Group meeting in Toronto.

	Before the release of the {POSIX}/{SVID} {standards}, V7's
	features were often treated as a {Unix} portability baseline.
	Some old-timers impatient with commercialisation and {kernel
	bloat} still maintain that V7 was the Last True Unix.

	See {BSD}, {USG Unix}, {System V}.

	[{Jargon File}]

	(1996-05-22)

vertical application

	<application, jargon> An {application program} supporting one
	specific industry process, e.g. for {e-commerce} purchasing
	applications, the entire distribution process including order
	entry, shipping, and customer service.

	Compare {horizontal application}.

	(2000-03-28)

vertical bar

	<character> The character "|", {ASCII} code 124.

	Common names: bar; or; or-bar; v-bar; pipe; vertical bar.
	Rare: {ITU-T}: vertical line; gozinta; thru; pipesinta;
	{INTERCAL}: spike.

	"Pipe", "gozinta", "thru" and "pipesinta" refer to the use of
	"|" in {Unix} shells to create a {pipe}.

	Some keyboards show both a solid vertical bar (code 124) and a
	broken vertical bar (code 166).

	[Does anyone call either kind of vertical bar "{pling}"?
	Other codes?]

	(1998-09-20)

vertical encoding

	<processor> An {instruction set} where a field (a bit or group
	of bits) of the instruction word is decoded (either by
	{hard-wired} {logic} or {microcode}) to generate signals to
	control the {functional units}, as opposed to {horizontal
	encoding} where the instruction word bits are used as the
	control signals directly.

	With vertical encoding, which combinations of signals and
	operations are possible is dictated by the decoding logic; the
	instruction field can only select one of these preprogrammed
	combinations.  This has the advantage that many control
	signals can be generated based on only a few instruction word
	bits and only valid combinations of control signals can be
	generated, e.g. only one source driving a {bus} at once.  An
	{instruction set} may use a mixture of horizontal and vertical
	encoding within each instruction.

	(1995-04-23)

vertical loop combination

	{fusion}

vertical microcode

	<processor> {Microcode} using {vertical encoding}.

	(1995-04-23)

Vertical Redundancy Check

	<storage, communications> (VRC) An {error checking} method
	performed on one 8-bit {ASCII} character, where the 8th bit is
	used as the {parity bit}.

	The resulting parity bit is constructed by {XOR}ing the
	{word}.  The result is a "1" if there is an odd number of 1s,
	and a "0" if there is an even number of 1s in the word.  This
	method is unreliable because if an odd number of {bits} are
	distorted, the check will not detect the error.  The
	{Longitudinal Redundancy Check} is an improvement.

	(2001-04-28)

vertical refresh rate

	<hardware> Synonym for {refresh rate}.

	(1996-02-09)

vertical scan rate

	<hardware> Synonym for {refresh rate}.

	(1996-02-09)

Very Efficient Speculative Parallel Architecture

	<project> (VESPA, Portuguese for "wasp") An {Edinburgh
	University} project using {speculative multithreading} to
	improve single-application and multiprogramming performance,
	and to increase {fault tolerance} and reliability. The project
	aims to develop a compilation environment to generate
	efficient speculative parallel code, including speculative
	parallelisation and speculative helper threads.  Other
	research involves the development of optimized thread-level
	speculative architectures and novel uses of speculative
	multithreading, such as fault-tolerance.

	{VESPA Home
	(http://homepages.inf.ed.ac.uk/mc/Projects/VESPA/vespa.html)}.

	(2008-04-04)

Very high bit-rate Digital Subscriber Line

	<communications, protocol> (VDSL) A form of {Digital
	Subscriber Line} similar to {ADSL} but providing higher speeds
	at reduced lengths.

	(1998-05-18)

Very Large Database

	<database> (VLDB) A {database} that can use a {Very Large
	Memory} model to keep as much data as possible in {physical
	memory}.

	(Oracle
	{http://oracle.com/platforms/dec/collateral/vlmwp_3.html}).

	(1998-07-07)

Very Large Memory

	<architecture> (VLM) A {processor} and {operating system} that
	can use more than 4GB of {RAM}, which is the limit for systems
	using {32-bit} addresses.

	VLM architectures allow {application programs} and {Very Large
	Databases} with more than 4GB of data to be placed entirely in
	{physical memory}, with large performance enhancements.

	Some recent processors like the {DEC Alpha} can process 64
	bits of data at a time and use addresses wider than 32 bits.

	{Digital Unix (http://unix.digital.com/unix/64bit/)}.

	(Solaris {http://sun.com/solaris/64bit.html}).

	(SGI {http://sgi.com/Technology/standard/faq.html}).

	(Unix 98
	{http://UNIX-systems.org/version2/whatsnew/login_64bit.html}).

	[How wide are the address busses?]

	(1998-07-07)

Very Large Scale Integration

	<hardware> (VLSI) A term describing semiconductor {integrated
	circuits} composed of hundreds of thousands of {logic elements} or
	memory cells.

	(1995-01-11)

Very Long Instruction Word

	<language, architecture> (VLIW) Used to describe a {machine
	code} {instruction set} implemented using {horizontal
	microcode}.  A horizontally encoded instruction word which
	encodes four or more operations might be considered "very
	long".

	VLIW architectures are sometimes classified as a type of
	static {superscalar} architecture.  They are static in the
	sense that which units operate in parallel is determined by
	the instruction rather than by {dynamic scheduling} at {run
	time}.

	Producing code for VLIW machines is difficult; {trace
	scheduling} is a helpful compiler technique.

	The most famous VLIW machine was built by (the late)
	{Multiflow Computer, Inc.}

	(1994-11-11)

Very Small Aperture Terminal

	<communications> (VSAT) A kind of {ground station} used to
	contact a communications satellite such as INMARSAT.

	(1995-03-28)

VESA

	{Video Electronics Standards Association}

VESA Local Bus

	<hardware, standard> (VL, VLB) A {local bus} defined by the
	{Video Electronics Standards Association}, mostly used in
	{personal computers} based on the {Intel 486}.  See also
	{PCI}.

	(1995-03-31)

VESPA

	{Very Efficient Speculative Parallel Architecture}

V.FAST

	{V.34}

VFAT

	<operating system> A standard developed by {Microsoft} to
	enable long file names on standard {FAT} {partitions}.  VFAT
	suffers from all the drawbacks of FAT and adds more problems
	but moving to it is very easy.

	(1996-12-23)

V.FC

	<communications, protocol> A serial line {protocol} supported
	by some {modems}.  Uses {symbol rates} of 2400, 2800, 3000,
	>3200 and 3429 and up to 28800 {baud}.

	{V.34} modems will also support V.FC if the manufacturer
	currently supports V.FC.

	The first V.FC modems were shipped in November 1993 and there
	have been many thousands sold.  There will probably be in
	excess of a million V.FC modems installed by the end of 1994.

	V.FC was intended to take some of the techniques being
	proposed for V.34 and put them into a real modem that people
	could use.  This also gave a lot of people the opportunity to
	try out 28.8 kilobit per second operation for the first time.
	There was never any intention from {Hayes} or {Rockwell} (who
	worked together for two years on V.FC) that V.FC would be
	compatible with V.34 - even if they had wanted it, others
	would have made sure it didn't happen!  In fact, they made the
	start-up deliberately different from V.34 so that it would be
	easy to distinguish between the two and easier to make
	dual-mode V.FC/V.34 modems.

	V.FC is quite different from V.34.  Most of the
	signal-processing {algorithms}, whilst based on the same
	theory, are implemented in different ways.  V.34 has some
	extra things like a {secondary channel} and a special mode for
	28.8 kilobit per second fax.

	The Rockwell V.FC implementation uses a single-chip
	mask-programmed {DSP} for all the signal processing functions.
	You can also buy a modem controller chip from Rockwell to go
	with it which implements AT commands, error-control and
	{compression}.  Hayes made their own controller using the
	{Motorola} {68302} processor.  When it comes to an upgrade
	from V.FC to V.34 you have to have a new, masked DSP chip and
	new controller {firmware} to implement all the V.34-specific
	features.  This means that Rockwell-DSP based modems must be
	returned to the manufacturer for upgrade.  Upgraded modems
	will talk to either V.FC or V.34 modems.

vg

	<networking> The {country code} for the British Virgin
	Islands.

	(1999-01-27)

VGA

	<hardware> {Video Graphics Array} (not "Adapter").

	(1995-11-16)

VGQF

	A query language.

vgrep

	<jargon> /vee'grep/ (Or "optical grep") Visual {grep}.
	Finding patterns in a file by eye rather than digitally.

	Compare {vdiff}.

	[{Jargon File}]

	(1998-02-06)

VGX

	{Variational Graphics eXtended}

VHDL

	Very High Speed Integrated Circuit (VHSIC) Hardware
	Description Language.  A large high-level {VLSI} design
	language with Ada-like syntax.  The DoD standard for hardware
	description, now standardised as IEEE 1076.

	["VHSIC Hardware Description Language", M.R. Shahdad et al,
	IEEE Computer 18(2):94-103 (Feb 1985)].

VHE

	{Virtual Home Environment}

VHLL

	Very-{High-Level Language}.

	A {bondage-and-discipline language} that the speaker happens
	to like; {Prolog} and Backus's {FP} are often called VHLLs.

	(1994-12-07)

vhost

	{virtual host}

VHS

	1. {Very High Speed}.

	2. {storage} Video Home System.

	JVC's video cassette format.

	3. {Virtual Host Storage}.

vi

	1. <tool> {Visual Interface}.

	2. <networking> The {country code} for the U. S. Virgin
	Islands.

	[{Jargon File}]

	(1999-01-27)

VIC-20

	<computer> A home computer made by {Commodore} with a {6502}
	{CPU}, similar in style to the {Commodore 64} and {Commodore
	C16}.  The VIC-20 was released before the C64, and after the
	{Commodore PET}(?).  It was intended to be more of a low-end
	home computer than the PET.

	The VIC-20 had connectors for game cartridges and a {tape
	drive} (compatible with a C64).  It came with five {kilobytes}
	of {RAM}, but 1.5 KB were used by the system for various
	things, like the video display (which had an unusual 22x20
	char/line screen layout), and other dynamic aspects of the
	{operating system} (such as it was).  The RAM was expandable
	with a plug-in cartridge which used the same expansion port as
	games.  Port expander boxes were available to allow more than
	one cartridge to be connected at a time.

	RAM cartridges were available in several sizes: 3K, 8K, 16K
	and 32K.  The internal memory map was re-organised with the
	addition of each size cartridge, leading to the situation that
	some programs would only work if the right amount of memory
	was available.  The 32K cartridges were all third-party and
	had switches to allow the RAM to be enabled in sections so
	that any expansion size could be achieved.

	{BASIC} programs could use at most 24 KB of RAM.  Any extra
	occupied the location usually used by ROM cartridges
	(i.e. games).  This allowed people to copy ROM cartridges to
	tape and distribute them to their friends, who could load the
	tape into the top 8k of their 32k RAM packs.

	The name "VIC" came from the Video Interface Chip that was
	also used in the other, later, Commodore 8-bit computers.

	(2000-03-28)

victim cache

	<architecture> An extension to a {direct mapped cache} that
	adds a small, secondary, {fully associative cache} to store
	cache blocks that have been ejected from the main cache due to
	a capacity or conflict miss.  These ejected blocks are likely
	to be needed again so storing them in the secondary cache
	should increase performance.

	Victim caches with as few as five places have been found to
	reduce conflict misses, especially for small, direct-mapped
	data caches.  E.g. a four-place victim cache removed 20% to
	95% (depending on program) of such misses in a 4-KB cache.

	{(http://www.scism.sbu.ac.uk/ccsv/josephmb/CS-L2-MT/week12.html)}.

	(2007-02-23)

video

	<graphics> Moving images presented as a sequence of {static
	images} (called "frames") representing snapshots of the scene,
	taken at regularly spaced time intervals, e.g. 50 frames per
	second.  Apart from the frame rate, other important properties
	of a video are the {resolution} and {colour depth} of the
	individual images.

	Digital video data is typically stored and transmitted in a
	format like {MPEG} or {H.264} that includes synchoronised
	{sound}.

	Unlike broadcast {television}, digital video on a computer or
	network uses {compression}.  Compression is even more
	important for video that for static images due to the large
	amount of data involved in even a short video.  Furthermore,
	compression allows video to be transmitted via a channel whose
	bandwidth is less than the raw data rate implied by the
	resolution and frame rate.  This allows the recipient to start
	displaying the video before the transmission is complete, a
	process known as {streaming}.

	Compression can be relatively slow but decompression is done
	in {real-time} with the picture quality and {frame rate}
	varying with the processing power available and the size and
	scaling of the picture.

	There are many types of software for displaying video on
	computers including {Windows Media Player} from {Microsoft},
	{QuickTime} from {Apple Computer}, {DivX}, {VLC}, {RealPlayer}
	and {Acorn Computers}' {Replay}.

	(2011-01-04)

video adapter

	{graphics adaptor}

video card

	{graphics adaptor}

Video Compact Disc

	<storage> (VCD) A storage format used for film distribution.

	[Details?  Relationship to audio CD?]

	(2004-02-15)

video compression

	{Compression} of sequences of images.  Video compression
	{algorithms} use the fact that there are usually only small
	changes from one "frame" to the next so they only need to
	encode the starting frame and a sequence of differences
	between frames.  This is known as "inter-frame coding" or "3D
	coding".

	{MPEG} is a committee producing {standards} in this area and
	also the name of their standard {algorithm}.  {H.261} is
	another standard.

	See also {Integrated Information Technology}, {3DO},
	{full-motion video}, {Online Media}.

video conference

	An instance of {video conferencing}.

video conferencing

	<communications> A discussion between two or more groups of
	people who are in different places but can see and hear each
	other using electronic communications.  Pictures and sound are
	carried by the telecommunication network and such conferences
	can take place across the world.

	To overcome the {bandwidth} and {latency} limitations of
	current networks (especially the {PSTN}), some form of {video
	compression} is often used.

	(1995-05-01)

video dial tone

	<communications> A means by which telephone companies can
	deliver "television" programs on a {common carrier} basis and,
	by law, provide equal access to all.

	[What does this mean?]

	(1996-12-01)

video display standard

	{display standard}

video display terminal

	{visual display unit}

Video Electronics Standards Association

	<body, standard> (VESA) An industry {standards} organisation
	created in 1989 or 1990 mostly(?) concerned with {IBM}
	compatible {personal computers}.  The first standard it
	created was the 800 x 600 pixel {Super VGA} (SVGA) display and
	its software interface.  It also defined the {VESA Local Bus}
	(VLB).

	See also {PCI}.

	{(http://vesa.org/)}.

	(1995-11-16)

Video Graphics Adapter

	{Video Graphics Array}

Video Graphics Adaptor

	{Video Graphics Array}

Video Graphics Array

	<hardware> (VGA) A {display standard} for {IBM PCs}, with 640
	x 480 {pixels} in 16 colours and a 4:3 {aspect ratio}.  There
	is also a text mode with 720 x 400 pixels.

	IBM technical references define the *product name* of their
	original VGA display board as "Video Graphics Array", in
	contrast to the preceding boards, the "{Color Graphics
	Adapter}" (CGA) and "{Enhanced Graphics Adapter}" (EGA).

	See also {Super Video Graphics Adapter}.

	(1995-01-12)

video memory

	<storage> The memory in a computer's {graphics adaptor}, used
	to store the image displayed on a {bitmap display}.  Often
	this is built using {VRAM} chips.  There is normally a simple
	correspondence between groups of {bits} in video memory and
	the dots or "{pixels}" on the screen, such that writing to a
	given group of bits will alter the appearance of a single dot.
	If each pixel corresponds to eight bits then it can have any
	of 256 colours (or shades of grey on a monochrome display).

	The video display electronics is responsible for reading the
	data from video memory and converting it into the necessary
	signals to drive the display.  Often this includes a {colour
	palette} which converts pixel values into {RGB} triplets.

	(1996-11-01)

Video on Demand

	<communications> (VoD) A planned system using {video
	compression} to supply programs to viewers when requested, via
	{ISDN} or cable.

	(1994-11-02)

video RAM

	{video random-access memory}

video random-access memory

	<hardware> (VRAM) Fast memory designed for storing the image
	to be displayed on a computer's {monitor}.  VRAM may be built
	from special memory {integrated circuits} designed to be
	accessed sequentially.

	VRAM must be fast enough to supply data to the display
	electronics at the speed at which the screen is scanned.  Thus
	for example, for a {resolution} of 1280x1024 eight-bit
	{pixels} at a {refresh rate} of 70 Hz, the {video memory}
	would need to supply 1280x1024x70 = 90 Mbyte/s or one byte
	every 11 ns.  The VRAM may be {dual ported} in order to allow
	the display electronics and the {CPU} to access it at the same
	time.

	In an {IBM PC} the VRAM is located on the display interface
	card and 0.5 - 2 MB is typical.

	{A VRAM Song (http://fweep.com/vram.html)}!

	(2001-02-14)

video terminal

	{visual display unit}

videotex

	An obsolete electronic service offering people the privilege
	of paying to read the weather on their television screens
	instead of having somebody read it to them for free while they
	brush their teeth.  The idea bombed everywhere it wasn't
	government-subsidised, because by the time videotex was
	practical the installed base of personal computers could hook
	up to {time-sharing} services and do the things for which
	videotex might have been worthwhile better and cheaper.
	Videotex planners badly overestimated both the appeal of
	getting information from a computer and the cost of local
	intelligence at the user's end.  Like the {gorilla arm}
	effect, this has been a cautionary tale to hackers ever since.
	See also {vannevar}.

	[{Jargon File}]

Vienna Definition Language

	(VDL) IBM Vienna Labs.  A language for formal, algebraic
	definition via operational semantics.  Used to specify the
	semantics of PL/I.  See also {VDM}.

	["The Vienna Definition Language", P. Wegner, ACM Comp Surveys
	4(1):5-63 (Mar 1972)].

Vienna Definition Method

	{Vienna Development Method}

Vienna Development Method

	<programming, specification> (VDM) A program development
	method based on formal specification using the {Vienna
	Development Method Specification Language} (VDM-SL).

	[Details?]

	[Is there such a thing as "Vienna Definition Method"?]

	(2000-11-02)

Vienna Development Method Specification Language

	<programming, specification> (VDM-SL, Meta-IV) A
	model-oriented {specification language}, upon which the
	{Vienna Development Method} is based.  An {ISO} draft was
	released in April 1993.

	Version: BSI/VDM.

	{(ftp://gateway.dec.com/pub/vdmsl_standard)}.

	["The Vienna Development Method: The Meta-Language",
	D. Bjorner et al eds, LNCS 61, Springer 1978].

	["The VDM-SL Reference Guide", J. Dawes, Pitman 1991].

	["Systematic Software Development Using VDM", C.B. Jones, P-H
	1989].

	(2000-11-02)

Vienna Fortran

	A {data-parallel} extension of {Fortran 77} for distributed
	memory multiprocessors by Hans Zima
	<zima@sophie.par.univie.ac.at>, Vienna University.

	["Programming In Vienna Fortran", B. Chapman et al, Scientific
	Programming 1(1):31-50 (Aug 1992)].

Vietnamese

	<human language> An Asian language that, like other {CJKV}
	languages, requires 16-bit {character encodings} but, unlike
	them, does not use {Han characters}.

	While normal Vietnamese has not used Han characters since the
	18th century, the {standards} {TCVN 5773} and {TCVN 6056}
	contain Han characters and may be used by computers and
	academics.

	(2001-01-01)

viewer

	<tool> A program to allow a file to be read (or played) but
	not changed.  Viewers are often freely distributable, even
	when the editor application is not.  This allows you to create
	files with the editor and make the viewer available to other
	users to view your files, e.g. on a {website}.  Examples
	include the Word and Adobe Acrobat viewers.

	(1997-08-29)

ViewPoints

	<programming> A framework for distributed and {concurrent}
	software engineering which provides an alternative approach to
	traditional centralised software development environments.

	Decentralised process models are used to drive consistency
	checking and conflict resolution.  The process models use
	pattern matching on local development histories to determine
	the particular state of the development process, and employ
	rules to trigger situation-dependent assistance to the user.
	Communication between such process models facilitates the
	decentralised management of explicitly defined consistency
	constraints.

	[Ulf Leonhardt]

	(1995-03-27)

Views

	A Smalltalk extension for computer algebra.  "An Object
	Oriented Approach to Algebra System Design", K. Abdali et al,
	in Symp Symb Alg Manip, ACM 1986, pp.24-30.

VIF

	VHDL Interface Format.  Intermediate language used by the
	Vantage VHDL compiler.  "A VHDL Compiler Based on Attribute
	Grammar Methodology", R. Farrow et al, SIGPLAN NOtices
	24(7):120-130 (Jul 1989).

Vi Improved

	<text, tool> (VIM) (Previously "vi iMitation"), An improved
	version of {vi}, available for many {platforms}.  VIM allows
	multiscreen editing, more flexible insert/command {mode}
	handling, better {C} indentation and much more.

	{(http://vim.org/)}.

	(1999-06-15)

VIM

	1. <messaging> {Vendor Independent Messaging}.

	2. <text, tool> {Vi Improved}.

	(1999-06-15)

Vincennes LISP

	<language> (VLISP) A dialect of {Lisp} resulting from
	development, starting in 1971, of {Lisp} {interpreters} and
	{compilers} at the {University of Paris VIII - Vincennes}.
	VLISP interpreters and compilers were designed to run on small
	computers.

	{Documentation
	(http://www.artinfo-musinfo.org/en/issues/vlisp/)}.

	{History of Lisp
	(http://www.softwarepreservation.org/projects/LISP/index.html#VLISP_)}.

	[Relationship to {VLISP} by Greussay at Paris VI?]

	(2008-03-16)

vines

	<networking, product> A family of {local area network}ing
	products from {Banyan}.

	(1995-03-01)

Vine Technology

	<company> A company which provides professional consulting
	services in the areas of networking, real-time systems,
	graphic arts, and {World-Wide Web} server advertisement space.

	{(http://vine.com/)}.

	E-mail: <webmaster@vine.com>.

	(1995-03-03)

Vint Cerf

	<person> (Vinton G. Cerf) The co-inventor with {Bob Kahn} of
	the {Internet} and its base {protocol}, {TCP/IP}.  Like {Jon
	Postel}, he was crucial in the development of many
	higher-level protocols, and has written several dozen {RFCs}
	since the late 1960s.

	Vinton Cerf is senior vice president of Internet Architecture
	and Technology for {MCI WorldCom}.  His team of architects and
	engineers design advanced Internet frameworks for delivering a
	combination of data, information, voice and video services for
	business and consumer use.

	In December 1997, President Clinton presented the U.S.
	National Medal of Technology to Cerf and his partner, Robert
	E. Kahn, for founding and developing the Internet.

	Prior to rejoining MCI in 1994, Cerf was vice president of the
	Corporation for National Research Initiatives (CNRI).  As vice
	president of MCI Digital Information Services from 1982-1986,
	he led the engineering of {MCI Mail}, the first commercial
	e-mail service to be connected to the Internet.

	During his tenure from 1976-1982 with the U.S. Department of
	{Defense Advanced Research Projects Agency} (DARPA), Cerf
	played a key role leading the development of Internet and
	Internet-related data packet and security technologies.

	Cerf served as founding president of the {Internet Society}
	from 1992-1995 and is currently chairman of the Board.  Cerf
	is a member of the U.S. Presidential Information Technology
	Advisory Committee (PITAC) and the Advisory Committee for
	Telecommunications (ACT) in Ireland.

	Cerf is a recipient of numerous awards and commendations in
	connection with his work on the Internet.  In December 1994,
	People magazine identified Cerf as one of that year's "25 Most
	Intriguing People."

	In addition to his work on behalf of MCI and the Internet,
	Cerf serves as technical advisor to production for "Gene
	Roddenberry's Earth: Final Conflict," the number one
	television show in first-run syndication.  He also made a
	special guest appearance in May 1998. Cerf also holds an
	appointment as distinguished visiting scientist at the Jet
	Propulsion Laboratory where he is working on the design of an
	interplanetary Internet.

	Cerf holds a Bachelor of Science degree in Mathematics from
	Stanford University and Master of Science and Ph.D. degrees in
	Computer Science from UCLA.  He also holds honorary Doctorate
	degrees from the Swiss Federal Institute of Technology,
	Zurich; Lulea University of Technology, Sweden; University of
	the Balearic Islands, Palma; Capitol College and Gettysburg
	College.

	{(http://mci.com/cerfsup/)}.

	(1999-02-25)

Vinton Cerf

	{Vint Cerf}

Viola

	An experimental {hypercard}-like interpreted {hypertext}
	system by Pei Y. Wei of {Berkeley}.

	(1994-11-30)

virgin

	Unused; pristine; in a known initial state.  "Let's bring up a
	virgin system and see if it crashes again."  (Especially
	useful after contracting a {virus} through {SEX}.)  Also, by
	extension, buffers and the like within a program that have not
	yet been used.

	[{Jargon File}]

	(1994-11-30)

virgule

	<character> Rare, and ambiguous: {slash} or {comma}.

	"Virgule" (or rather, Latin "virgula", meaning "little rod"
	or, vividly enough, "little penis") was the name of a
	punctuation character shaped like a small {slash} and used in
	the Latin writing system much like a modern {comma} -- hence
	the ambiguity of this term in modern English.

	Compare French "virgule" and Italian "virgola", meaning
	"comma" (not "slash"); Italian "doppia virgola" and
	"virgoletta", both meaning "{double quote}".

	(1997-04-08)

Viron

	["Five Paradigm Shifts in Programming Language Design and
	Their Realisation in Viron, a Dataflow Programming
	Environment", V. Pratt, 10th POPL, ACM 1983, pp. 1-9].

	(1994-11-30)

virtual

	<jargon, architecture> (Via the technical term {virtual
	memory}, probably from the term "virtual image" in optics)
	1. Common alternative to {logical}; often used to refer to the
	artificial objects (like addressable {virtual memory} larger
	than physical memory) created by a computer system to help the
	system control access to shared resources.

	2. Simulated; performing the functions of something that isn't
	really there.  An imaginative child's doll may be a virtual
	playmate.

	Opposite of {real} or physical.

	[{Jargon File}]

	(1994-11-30)

virtual 86 mode

	<processor, programming> (Or "virtual mode" or "virtual 8086
	mode") An operating mode provided by the {Intel 80386} and
	later processors to allow {real mode} programs to run under
	{operating systems} which use {protected mode}.  In this
	sub-mode of protected mode, an operating environment is
	created which mimics the address calculation in real mode.

	In virtual 86 mode the segment {MMU} is practically turned off
	and the {segment registers} exhibit the same behaviour as in
	real mode.  The {page}d MMU, however, still operates.  This
	means that the one megabyte {address space} of real mode can
	be remapped in four kilobyte {pages} to anywhere in the 32 bit
	{physical address} space.  Each page can be protected
	separately from read or write accesses.

	Virtual mode is handled on a per-task-basis, so each
	{exception} (from protection violations or {interrupts})
	switches the processor back into protected mode.  It is
	therefore possible to have multiple tasks in virtual mode
	which run {concurrent}ly under the control of an operating
	system which runs in protected mode.

	Most operating system services in {MS-DOS} systems are called
	by {software interrupts}, which are a kind of exception.  If
	an MS-DOS application runs in virtual mode under the control
	of a protected mode operating system, each call to MS-DOS
	causes a switch to protected mode.  The operating system
	emulates the MS-DOS service and switches back to the
	application in virtual mode.  From the viewpoint of the
	application nothing differs from real mode.

	{Microsoft Windows}, {Windows NT}, and {OS/2} use this feature
	to implement "DOS-boxes" in which both MS-DOS and real mode
	{application programs} can run.

virtual address

	1. <architecture> A memory location accessed by an
	{application program} in a system with {virtual memory} such
	that intervening hardware and/or software maps the virtual
	address to real ({physical}) memory.  During the course of
	execution of an application, the same virtual address may be
	mapped to many different {physical addresses} as data and
	programs are {paged out} and {paged in} to other locations.

	2. In {IBM}'s {VM} {operating system}, {Virtual Device
	Location}.

	(2001-01-02)

virtual cache

	A {cache} which uses {virtual address}, i.e. it is between the
	processor and the {memory management unit}.  A virtual cache
	cannot recognise external access to physical address, e.g. from
	{DMA}.  The whole cache must be flushed when swapping between
	tasks which share same virtual {address space}.

	(1994-11-30)

virtual circuit

	<networking> A {connection-oriented} {network} service which
	is implemented on top of a network which may be either
	connection-oriented or {connectionless} ({packet switching}).

	The term "switched virtual circuit" was coined needlessly to
	distinguish an ordinary virtual circuit from a {permanent
	virtual circuit}.  (One of the perpetrators of this confusion
	appears to be ["Networking Essentials", 1996, Microsoft Press,
	ISBN 1-55615-806-8], a book aimed at people preparing for the
	{MCSE} exam on {LANs} and {WANs}).

	Not to be confused with {switched virtual connection}.

	(2001-10-26)

Virtual Circuit Identifier

	<networking> (VCID) An identifier used for the {routing} of a
	{virtual circuit}.  An {ATM} {switch} may route according to a
	Virtual Circuit Identifier, a {Virtual Path Identifier}, or a
	combination.

	(2001-05-16)

virtual connection

	<networking> 1. (VC) A connection or a path through an {ATM}
	network.  The word "{virtual}" indicates that the connection
	is {logical} rather than {physical}.

	Nothing to do with a {virtual circuit} on a {packet switching}
	network.

	[Fred Halsall, "Data Communications, Computer Networks and
	Open Systems", 1996, Addison Wesley].

	2. A communications link that appears to be a direct
	connection between sender and receiver, although physically
	the link can be routed through a more circuitous path, running
	over {virtual circuits} instead of a private network built
	primarily with {dedicated lines}.

	A virtual connection can provide full-time connection among
	many sites, including those configured for {SNA}/{SDLC}
	{protocol}.  A virtual connection can handle any transmission
	protocol and is supported worldwide.  It can provide high
	throughput and low delay for {LAN} and {Internet}
	applications, peer-to-peer connectivity, client-server
	computing, and other distributed processing applications.

	[Same as {virtual circuit}?]

	(2001-10-26)

Virtual Control Program Interface

	(VCPI) An alternative, and incompatible method for doing the
	same thing as {DOS Protected Mode Interface} (DPMI).

	(1995-01-12)

Virtual Device Driver

	<operating system> (VxD) A {device driver} under {Windows
	3.x}/{Windows 95} running as part of the {kernel} and thus
	having access to the memory of the kernel and all running
	processes as well as raw access to the hardware.  VxD's
	usually have the {filename extension} .386 under Windows 3.x
	and .vxd under Windows 95.  VxD's written for Windows 3.x can
	be used under Windows 95 but not vice versa.

	(1997-02-27)

Virtual Device Location

	(Or "Virtual Address") The address of a device (e.g. disk,
	printer, terminal) belonging to a "guest" {operating system}.
	Such an address is mapped to a physical device.  VM may remap
	several virtual disks to different parts of a single physical
	disk.

	(1995-02-22)

virtual disk

	{RAM disk}

Virtual Home Environment

	(VHE) A tool for using {NFS} on {HP UX}.

	(1994-12-07)

virtual host

	<networking> Most computers on the {Internet} have a single
	{IP address}; however, often via special {kernel}
	patches, a given computer can be made to respond to several
	{IP} addresses and provide different {services} (typically
	different {Web} services) on each.  Each of these different IP
	addresess (which generally each have their own {hostname}) act
	as if they were distinct hosts on distinct machines, even
	though they are actually all one host.  Hence, they are
	{virtual} hosts.  A common use is when an {Internet Service
	Provider} "hosts" {World-Wide Web} or other services for
	several of their customers on one computer but giving the
	appearence that they are separate servers.

	(1997-09-11)

Virtual LAN

	<networking> Software defined groups of {host} on a {local
	area network} (LAN) that communicate as if they were on the
	same wire, even though they are physically on different {LAN
	segments} throughout a site.  To define a virtual LAN, the
	{network administrator} uses a virtual LAN management utility
	to establish membersip rules that determine which hostss are
	in a specific virtual LAN.  Many models may exist but two seem
	to dominate:

	(1) Vitual Segment (or Port-Group) Virtual LAN.  These are
	switched at the {data link layer} ({OSI} layer 2).  Virtual
	segments turn an arbitrary number of physical segments into a
	single virtual segment that funtions as a self-contained
	traffic domain.

	(2) Virtual Subnet Virtual LAN: These are switched at the
	{Network Layer} ({OSI} layer 3).  Subnet-oriented virtual LANs
	are based on {subnet address}es used by {IP}, {IPX}, and other
	{network layer} {protocols} to normally identify physical
	networks.  Administrators assign one subnet address to a
	number of switch {ports} (which may be on different switches
	and over a backbone).  Once identified as a virtual subnet,
	the selected LANs function as a {bridge group} - traffic is
	bridged at Layer 2 within the virtual subnet and routed at
	Layer 3 between virtual subnets.

	["The many faces of virtual LANs", Steven King, Network
	World, 1994/5?].

	(1995-04-03)

Virtual Loadable Module

	<networking> (VLM) {Novell}'s term for software modules that
	can be dynamically loaded to extend the functionality of the
	"VLM" {NetWare Requester} for {MS-DOS} that became standard
	beginning with {Novell NetWare} 4.

	(1995-01-11)

Virtual Local Area Network

	<networking> (VLAN) A logical grouping of two or more {nodes}
	which are not necessarily on the same physical {network
	segment} but which share the same {IP} {network number}.  This
	is often associated with {switched Ethernet}.

	IEEE 802.1Q is a VLAN standard.

	[Confirm?  Better description?  Reference?]

	(2002-08-30)

Virtual Machine

	<operating system> (VM) An {IBM} pseudo-{operating system}
	{hypervisor} running on {IBM 370}, {ESA} and {IBM 390}
	architecture computers.

	VM comprises CP ({Control Program}) and CMS ({Conversational
	Monitor System}) providing Hypervisor and personal computing
	environments respectively.  VM became most used in the early
	1980s as a Hypervisor for multiple {DOS/VS} and {DOS/VSE}
	systems and as IBM's internal operating system of choice.  It
	declined rapidly following widespread adoption of the {IBM PC}
	and hardware partitioning in {microcode} on IBM {mainframes}
	after the {IBM 3090}.

	VM has been known as VM/SP (System Product, the successor to
	{CP/67}), VM/XA, and currently as VM/ESA (Enterprise Systems
	Architecture).  VM/ESA is still in used in 1999, featuring a
	{web} interface, {Java}, and {DB2}.  It is still a major IBM
	operating system.

	{(http://vmdev.gpl.ibm.com/)}.

	["History of VM"(?), Melinda Varian, Princeton University].

	(1999-10-31)

virtual machine

	1. An {abstract machine} for which an {interpreter} exists.
	Virtual machines are often used in the implementation of
	portable executors for {high-level languages}.  The HLL is
	compiled into code for the virtual machine (an {intermediate
	language}) which is then executed by an {interpreter} written
	in {assembly language} or some other portable language like
	{C}.

	Examples are {Core War}, {Java Virtual Machine}, {OCODE},
	{OS/2}, {POPLOG}, {Portable Scheme Interpreter}, {Portable
	Standard Lisp}, {Parallel Virtual Machine}, {Sequential Parlog
	Machine}, {SNOBOL Implementation Language}, {SODA},
	{Smalltalk}.

	2. A software emulation of a physical computing environment.

	The term gave rise to the name of {IBM}'s {VM} {operating
	system} whose task is to provide one or more simultaneous
	execution environments in which operating systems or other
	programs may execute as though they were running "on the bare
	iron", that is, without an eveloping Control Program.  A major
	use of VM is the running of both outdated and current versions
	of the same operating system on a single {CPU} complex for the
	purpose of system migration, thereby obviating the need for a
	second processor.

	(2002-04-15)

Virtual Machine/Conversational Monitor System

	<operating system> (VM/CMS) An {IBM} {time-sharing} and
	personal computing environment executing under {Virtual
	Machine} (VM) in a virtual machine environment.  VM/CMS is
	designed to support large numbers of {interactive} users.  It
	relies on numerous {APIs} into the {Control Program} (CP) to
	provide very efficient single-user processing

	VM/CMS was only adopted some time after the original design of
	{Virtual Machine} as a more efficient personal computing
	environment than {MVS/TSO}.

	(1999-01-19)

Virtual Machine Environment

	<operating system> (VME) {ICL}'s {mainframe} {operating
	system}.

	(1995-06-28)

Virtual Machine/ESA

	{Virtual Machine}

Virtual Machine/System Product

	{Virtual Machine}

Virtual Machine/XA

	{Virtual Machine}

virtual memory

	<memory management> A system allowing a computer program to
	behave as though the computer's memory was larger than the
	actual {physical} {RAM}.  The excess is stored on {hard disk}
	and copied to RAM as required.

	Virtual memory is usually much larger than physical memory,
	making it possible to run programs for which the total code
	plus data size is greater than the amount of RAM available.
	This is known as "{demand paged} virtual memory".  A page is
	copied from disk to RAM ("paged in") when an attempt is made
	to access it and it is not already present.  This paging is
	performed automatically by collaboration between the {CPU},
	the {memory management unit} (MMU), and the {operating system}
	{kernel}.  The program is unaware of virtual memory, it just
	sees a large {address space}, only part of which corresponds
	to physical memory at any instant.

	The virtual {address space} is divided into {pages}.  Each
	{virtual address} output by the {CPU} is split into a
	(virtual) {page} number (the most significant bits) and an
	offset within the page (the N least significant bits).  Each
	page thus contains 2^N {bytes} (or whatever the unit of
	addressing is).  The offset is left unchanged and the {memory
	management unit} (MMU) maps the virtual page number to a
	{physical} page number.  This is recombined with the offset to
	give a {physical address} - a location in {physical memory}
	({RAM}).

	The performance of a program will depend dramatically on how
	its memory access pattern interacts with the paging scheme.
	If accesses exhibit a lot of {locality of reference},
	i.e. each access tends to be close to previous accesses, the
	performance will be better than if accesses are randomly
	distributed over the program's {address space} thus requiring
	more paging.

	In a {multitasking} system, physical memory may contain pages
	belonging to several programs.  Without {demand paging}, an OS
	would need to allocate physical memory for the whole of every
	active program and its data.  Such a system might still use an
	{MMU} so that each program could be located at the same
	{virtual address} and not require run-time relocation.  Thus
	virtual addressing does not necessarily imply the existence of
	virtual memory.  Similarly, a {multitasking} system might load
	the whole program and its data into physical memory when it is
	to be executed and copy it all out to disk when its
	{timeslice} expired.  Such "swapping" does not imply virtual
	memory and is less efficient than paging.

	Some {application programs} implement virtual memory wholly in
	software, by translating every virtual memory access into a
	file access, but efficient virtual memory requires hardware
	and operating system support.

	(2002-11-26)

Virtual Memory System

	<operating system> (VMS) {DEC}'s proprietary {operating
	system} originally produced for its {VAX} {minicomputer}.

	VMS V1 was released in August 1978.  VMS was renamed "OpenVMS"
	around version 5.5.  The first version of VMS on {DEC Alpha}
	was known as OpenVMS for AXP V1.0, and the correct way to
	refer to the operating system now is OpenVMS for VAX or
	OpenVMS for Alpha.  The renaming also signified the fact that
	the {X/Open} consortium had certified OpenVMS as having a high
	support for {POSIX} standards.

	VMS is one of the most secure operating systems on the market
	(making it popular in financial institutions).  It currently
	(October 1997) has the best {clustering} capability (both
	number and distance) and is very scalable with {binaries}
	portable from small desktop {workstations} up to huge
	{mainframes}.

	Many {Unix} fans generously concede that VMS would probably be
	the {hacker}'s favourite commercial OS if Unix didn't exist;
	though true, this makes VMS fans furious.

	{FAQ
	(http://cis.ohio-state.edu/hypertext/faq/bngusenet/comp/os/vms/top.html)}.

	{Usenet} newsgroup: {news:comp.os.vms}.

	[How does its performance compare with other OSes?]

	(1999-06-03)

virtual path

	<networking> The location of a file or directory on a
	particular {server}, as seen by a remote {client} accessing it
	via {World-Wide Web} (or similar distributed document
	service).

	A virtual path provides access to files outside the default
	directory and subdirectories.  It appears in the form
	".../~name/..." where "~name" is replaced with actual path
	configured by the administrator.  An {access control list} can
	be associated with a virtual path.

	(1995-04-13)

virtual point of presence

	(virtual PoP) A point, via which users can connect to an
	{Internet access provider}, which is not operated by the
	provider.  The user is charged by the telephone company for
	the call to the virtual point of presence which relays his
	call via some third party circuit to the Internet provider's
	central location.  This is in contrast to a physical {point of
	presence} (PoP) which is operated by the Internet provider
	themselves.  The advantage of a virtual PoP is that the
	provider can keep all their {modems} in one location, thus
	improving availability and maintenance, but users do not have
	to pay long-distance call charges to that point.

	(1994-12-13)

virtual PoP

	{virtual point of presence}

Virtual Private Network

	<networking, security> (VPN) The use of {encryption} in the
	lower {protocol layers} to provide a secure connection through
	an otherwise insecure network, typically the {Internet}.  VPNs
	are generally cheaper than real private networks using private
	lines but rely on having the same encryption system at both
	ends.  The encryption may be performed by {firewall} software
	or possibly by {routers}.

	Link-level (layer 2 and 3) encryption provides extra
	protection by encrypting all of each {datagram} except the
	link-level information.  This prevents a listener from
	obtaining information about network structure.  While
	link-level encryption prevents traffic analysis (a form of
	attack), it must encrypt/decrypt on every {hop} and every
	path.

	Protocol-level encryption (layer 3 and 4) encryption encrypts
	protocol data but leaves protocol and link headers clear.
	While protocol-level encryption requires you to
	encrypt/decrypt data only once, and it encrypts/decrypts only
	those sessions that need it, headers are sent as clear text,
	allowing traffic analysis.

	Application (layer 5 up) encryption is based on a particular
	application and requires that the application be modified to
	incorporate encryption.

	{Cisco
	(http://cisco.com/univercd/cc/td/doc/product/lan/cat5000/cnfg_nts/rsm/rsm_pa/4801encr.htm)}.

	(1999-11-15)

virtual reality

	(VR)

	1. <application> Computer simulations that use 3D graphics and
	devices such as the {data glove} to allow the user to interact
	with the simulation.

	2. <games> A form of network interaction incorporating aspects
	of role-playing games, interactive theater, improvisational
	comedy, and "true confessions" magazines.  In a virtual
	reality forum (such as {Usenet}'s {news:alt.callahans}
	newsgroup or the {MUD} experiments on {Internet} and
	elsewhere), interaction between the participants is written
	like a shared novel complete with scenery, "foreground
	characters" that may be personae utterly unlike the people who
	write them, and common "background characters" manipulable by
	all parties.  The one iron law is that you may not write
	irreversible changes to a character without the consent of the
	person who "owns" it, otherwise, anything goes.

	See {bamf}, {cyberspace}.

	[{Jargon File}]

	(1995-01-30)

Virtual Reality Modeling Language

	<virtual reality, language> (VRML) A draft specification for
	the design and implementation of a {platform}-independent
	language for {virtual reality} scene description.

	VRML 1.0 was released on 1995-05-26.

	{(http://vrml.org/)}.

	{Wired (http://vrml.wired.com/)}.

	{Hypermail Archive (http://vrml.wired.com/arch/)}.

	Mailing list: <majordomo@wired.com> (message body: "subscribe
	www-vrml your-email-address").

	(1995-07-20)

Virtual Sequential Access Method

	{Virtual Storage Access Method}

virtual server

	<World-Wide Web> A configuration of a {World-Wide Web}
	{server} that appears to {clients} as an independent server
	but which is actually running on a computer that is shared by
	any number of other virtual servers.  Each virtual server can
	be configured as an independent {website}, with its own
	{hostname}, content, and security settings.

	{DNS} maps the hostnames of all virtual servers on one
	physical server to its {IP address}.  The web server software
	then uses the "Host" header in the {HTTP} request to determine
	which virtual server the request was for, and then processes
	the request using that virtual server's configuration.

	Virtual servers allow {Internet Service Providers} to share
	one computer between multiple {websites} while allowing the
	owner of each website to use and administer the server as
	though they had complete control.

	(2003-06-23)

virtual shredder

	The jargon equivalent of the {bit bucket} at shops using
	{IBM}'s {VM/CMS} {operating system}.  VM/CMS officially
	supports a whole bestiary of virtual card readers, virtual
	printers, and other phantom devices; these are used to supply
	some of the same capabilities {Unix} gets from {pipes} and
	{I/O redirection}.

	[{Jargon File}]

	(1995-01-30)

Virtual Software Factory

	<programming, tool> (VSF) A product from {Systematica} which
	allows users to develop {CASE} tools appropriate to any
	software engineering methodology.

	(1997-06-09)

Virtual Storage Access Method

	<database> (VSAM) An {IBM} disk file storage scheme first used
	in {S/370} and virtual storage.  VSAM comprises three access
	methods: {Keyed Sequenced Data Set} (KSDS), {Relative Record
	Data Set} (RRDS), and {Entry Sequenced Data Set} (ESDS).

	Both {IMS/DB} and {DB2} are implemented on top of VSAM and use
	its underlying data structures.

	["Storage" or "Sequential"?]

	(2002-07-26)

Virtual Storage Extended

	<operating system> (VSE, formerly DOS/VSE) is a
	{multitasking}, {IBM 370}-architected {operating system}
	similar to {Multiple Virtual Storage} (MVS).

	VSE run jobs in {partitions} rather than {address spaces}, and
	uses {POWER} for input/output rather than {JES}, but is
	largely similar to MVS.  Subsequent VSE/{ESA} releases gave
	VSE the {XA-370} channel architecture, 31-bit virtual and real
	storage support, and data spaces.  VSE is the {IBM} operating
	system on one-third of installed {IBM 4381s} and a significant
	proportion of {IBM 9370s} as well.  It offers {transaction
	processing} and {batch processing} capabilities well beyond
	{Virtual Machine}'s current capabilities, and has a close
	affinity with MVS.

	(1997-06-09)

Virtual Telecommunications Access Method

	(VTAM) A data communications access method compatible with
	{IBM}'s {Systems Network Architecture}.

	[More detail?]

	(1995-01-30)

virus

	<security> (By analogy with biological viruses, via science
	fiction) A program or piece of code, a type of {malware},
	written by a {cracker}, that "infects" one or more other
	programs by embedding a copy of itself in them, so that they
	become {Trojan horses}.  When these programs are executed, the
	embedded virus is executed too, thus propagating the
	"infection".  This normally happens invisibly to the user.

	A virus has an "engine" - code that enables it to propagate
	and optionally a "payload" - what it does apart from
	propagating.  It needs a "host" - the particular hardware and
	software environment on which it can run and a "trigger" - the
	event that starts it running.

	Unlike a {worm}, a virus cannot infect other computers without
	assistance.  It is propagated by vectors such as humans
	trading programs with their friends (see {SEX}).  The virus
	may do nothing but propagate itself and then allow the program
	to run normally.  Usually, however, after propagating silently
	for a while, it starts doing things like writing "cute"
	messages on the terminal or playing strange tricks with the
	display (some viruses include {display hacks}).  Viruses
	written by particularly antisocial {crackers} may do
	irreversible damage, like deleting files.

	By the 1990s, viruses had become a serious problem, especially
	among {IBM PC} and {Macintosh} users (the lack of security on
	these machines enables viruses to spread easily, even
	infecting the operating system).  The production of special
	{antivirus software} has become an industry, and a number of
	exaggerated media reports have caused outbreaks of near
	hysteria among users.  Many {lusers} tend to blame
	*everything* that doesn't work as they had expected on virus
	attacks.  Accordingly, this sense of "virus" has passed into
	popular usage where it is often incorrectly used for other
	types of {malware} such as {worms} or {Trojan horses}.

	See {boot virus}, {phage}.  Compare {back door}.  See also
	{Unix conspiracy}.

	[{Jargon File}]

	(2003-06-20)

viruses

	{virus}

visible bell

	<communications> (Or "visual bell") A program option (whether
	in a terminal program, {termcap} setting, or as a
	{stand-alone} program) which outputs the {bell} {character
	code} as a visual signal (e.g., a flashing status bar or menu
	bar).

	Generally intended for deaf or hearing-disabled users who
	couldn't hear the normal auditory beep; also widely used by
	users who simply don't want their machines {feep}ing at them
	or disturbing other users.

	[Implementations?]

	(1997-04-07)

VisiCalc /vi'zi-calk/

	<application, tool, business, history> The first {spreadsheet}
	program, conceived in 1978 by {Dan Bricklin}, while he was an
	MBA student at Harvard Business School.  Inspired by a
	demonstration given by {Douglas Engelbart} of a
	{point-and-click} {user interface}, Bricklin set out to design
	an {application} that would combine the intuitiveness of
	pencil and paper calculations with the power of a
	{programmable pocket calculator}.

	Bricklin's design was based on the (paper) financial
	spreadsheet, a kind of document already used in business
	planning.  (Some of Bricklin's notes for VisiCalc were
	scribbled on the back of a spreadsheet pad.)  VisiCalc was
	probably not the first application to use a spreadsheet model,
	but it did have a number of original features, all of which
	continue to be fundamental to spreadsheet software.  These
	include {point-and-type} editing, {range} {replication}, and
	formulas that update automatically with changes to other
	{cells}.

	VisiCalc is widely credited with creating the sudden demand
	for desktop computers that helped fuel the {microcomputer}
	boom of the early 1980s.  Thousands of business people with
	little or no technical expertise found that they could use
	VisiCalc to create sophisticated financial programs.  This
	makes VisiCalc one of the first {killer apps}.

	{Dan Bricklin's Site (http://bricklin.com/visicalc.htm)}.

	(2003-07-05)

visionary

	1. One who hacks vision, in the sense of an Artificial
	Intelligence researcher working on the problem of getting
	computers to "see" things using TV cameras.  (There isn't any
	problem in sending information from a TV camera to a computer.
	The problem is, how can the computer be programmed to make use
	of the camera information?  See {SMOP}, {AI-complete}.)

	2. [IBM] One who reads the outside literature.  At IBM,
	apparently, such a penchant is viewed with awe and wonder.

	[{Jargon File}]

visit

	<programming> To process a {node} while {traversing} a
	{graph}.

	(2001-09-30)

Visual BASIC

	<language> (VB) A popular {event-driven} {visual programming}
	system from {Microsoft Corporation} for {Microsoft Windows}.
	VB is good for developing Windows interfaces, it invokes
	fragments of {BASIC} code when the user performs certain
	operations on graphical objects on-screen.  It is widely used
	for in-house {application program} development and for
	prototyping.  It can also be used to create {ActiveX} and
	{COM} components.

	Version 1 was released in 1991 [by Microsoft?].

	Latest version: 6, as of 1999-11-26.

	{(http://msdn.microsoft.com/vbasic/)}.
	{History (http://iessoft.com/scripts/vbhistry.asp)}.
	{Strollo Software (http://op.net/~jstrollo/vblinks.html)}.
	{Books
	(http://wrox.com/Consumer/Default.asp?Category=Visual+Basic)}.

	(1999-11-26)

Visual Basic for Applications

	<programming> (VBA) {Microsoft}'s common language for
	manipulating components of its {Microsoft Office} suite.  It
	is used as the {macro} language for these applications and is
	the primary means of customising and extending them.  A VBA
	program operates on {objects} representing the application and
	the entities it manipulates, e.g. a {spreadsheet} or a range
	of cells in {Microsoft Excel}.

	[Relationship to {Visual BASIC}?  URL?]

	(1999-09-12)

Visual BASIC Script

	<language> (VBScript) Microsoft's {scripting language} which
	is an extension of their {Visual Basic} language.  VBScript
	can be used with {Microsoft Office} applications and others.
	It can also be embedded in {web pages} but can only be
	understood by {Internet Explorer}.

	Visual Basic is a {BASIC} variant with {object-oriented}
	features.  Objects include applications, windows and
	selections.

	[Relationship with {ASP}?  {VBA}?]

	(1998-07-05)

visual bell

	{visible bell}

Visual C++

	A {C} and {C++} programming environment sold by {Microsoft}
	Corporation.

	{Usenet} newsgroup: {news:comp.lang.c++}.

	[Differences?  Features?]

	(1994-12-21)

Visual Component Library

	<programming> {VCL} A {application framework} library for
	{Microsoft Windows} and {Borland Software Corp.}'s {Delphi}
	and {C++Builder} {rapid application development} software.
	VCL was originally designed for Delphi but is now also used
	for C++Builder.  This replaces {OWL} {Object Windows Library}
	as Borland's Windows C++ framework of choice.  VCL
	encapsulates the C-based {Win32 API} into a much easier to
	use, {object-oriented} form.  Like its direct rival,
	{Microsoft Foundation Class Library} (MFC), VCL includes
	classes to create Windows programs.

	The VCL component class can be inherited to create new VCL
	components, which are the building blocks of Delphi and
	C++Builder applications.  VCL components are somewhat in
	competition with {ActiveX} controls, though a VCL wrapper can
	be created to make an ActiveX control seem like a VCL
	component.

	{Home
	(http://borland.com/bcppbuilder/productinfo/feaben/visual.html)}.

	(2001-07-09)

Visual dBASE

	<language> A {Rapid Application Development} suite with a
	compiler and {intranet} tools to enable developers to publish
	data on the {World-Wide Web}.  Originally a {Borland} product,
	the first version released by {dBase, Inc.} was Visual dBase
	5.7.

	(2003-11-24)

Visual Display Unit

	<hardware> (VDU, or "video terminal", "video display
	terminal", VDT, "display terminal") A device incorporating a
	{cathode ray tube} (CRT) display, a keyboard and a {serial
	port}.  A VDU usually also includes its own display
	electronics which store the received data and convert it into
	electrical waveforms to drive the CRT.

	VDUs fall into two categories: {dumb terminals} and
	{intelligent terminals} (sometimes called "programmable
	terminals").

	Early VDUs could only display characters in a single preset
	{font}, and these were confined to being layed out in a
	rectangular grid, reproducing the functionality of the
	paper-based {teletypes} they were designed to replace.

	Later models added graphics facilities but were still driven
	via serial communications, typically with several VDUs
	attached to a single multi-user computer.  This contrasts with
	the much faster single {bitmap displays} integrated into most
	modern single-user {personal computers} and {workstations}.

	The term "Display Screen Equipment" (DSE) is used almost
	exclusively in connection with the health and safety issues
	concerning VDUs.

	{Working with VDUs - UK Heath and Safety Executive
	(http://hse.gov.uk/pubns/indg36.pdf)}.

	(2002-11-09)

Visual FoxPro

	<database> A {Microsoft} {database} derived from {Fox
	Software}'s {FoxPRO}.

	Latest version: 5.0, as of 2000-06-21.

	{(http://msdn.microsoft.com/vfoxpro/)}.

	[Features?  Dates?]

	(2000-08-06)

Visual Interface

	<tool, text> (vi) /V-I/, /vi:/, *never* /siks/ A {screen
	editor} {crufted} together by {Bill Joy} for an early {BSD}
	release.  vi became the de facto standard {Unix} editor and a
	nearly undisputed hacker favourite outside of {MIT} until the
	rise of {Emacs} after about 1984.

	It tends to frustrate new users no end, as it will neither
	take commands while expecting input text nor vice versa, and
	the default setup provides no indication of which mode the
	editor is in (one correspondent accordingly reports that he
	has often heard the editor's name pronounced /vi:l/).
	Nevertheless it is still widely used (about half the
	respondents in a 1991 {Usenet} poll preferred it), and even
	some Emacs fans resort to it as a mail editor and for small
	editing jobs (mainly because it starts up faster than the
	bulkier versions of Emacs).

	See {holy wars}.

	(1995-10-03)

visualisation

	<graphics> Making a visible presentation of numerical data,
	particularly a graphical one.  This might include anything
	from a simple X-Y graph of one dependent variable against one
	independent variable to a {virtual reality} which allows you
	to fly around the data.

	{Gnuplot} is the {Free Software Foundation}'s utility for
	producing various kinds of graphs.

	{Usenet} newsgroup: {news:comp.graphics}.

	The {Computer Graphics Resource Listing} contains pointers to
	several visualisation tools.

	{comp.graphics FAQ
	(ftp://src.doc.ic.ac.uk/usenet/news-info/comp.graphics/)}.

	{Electronic Visualization Laboratory, University of Illinois
	at Chicago (http://ncsa.uiuc.edu/EVL/docs/Welcome.html)}.

	(2002-02-21)

visual language

	{visual programming language}

visual programming

	1. Writing programs in a language which manipulates visual
	information or supports visual interaction.

	2. Writing programs in a {visual programming language}.

	3. Writing programs in a {visual programming environment}.

visual programming environment

	Software which allows the use of visual expressions (such as
	graphics, drawings, animation or {icons}) in the process of
	programming.  These visual expressions may be used as
	graphical interfaces for textual programming languages.  They
	may be used to form the syntax of new visual programming
	languages leading to new paradigms such as {programming by
	demonstration} or they may be used in graphical presentations
	of the behaviour or structure of a program.

	(1995-02-23)

visual programming language

	<language> (VPL) Any programming language that allows the user
	to specify a program in a two-(or more)-dimensionsional way.
	Conventional textual languages are not considered
	two-dimensional since the {compiler} or {interpreter}
	processes them as one-dimensional streams of characters.  A
	VPL allows programming with visual expressions - spatial
	arrangements of textual and graphical symbols.

	VPLs may be further classified, according to the type and
	extent of visual expression used, into {icon}-based languages,
	{form}-based languages and {diagram languages}.  {Visual
	programming environments} provide graphical or iconic elements
	which can be manipulated by the user in an interactive way
	according to some specific spatial grammar for program
	construction.

	A visually transformed language is a non-visual language with
	a superimposed visual representation.  Naturally visual
	languages have an inherent visual expression for which there
	is no obvious textual equivalent.

	{Visual Basic}, {Visual C++} and the entire {Microsoft} Visual
	family are not, despite their names, visual programming
	languages.  They are textual languages which use a graphical
	{GUI builder} to make programming interfaces easier.  The user
	interface portion of the programming environment is visual,
	the languages are not.  Because of the confusion caused by the
	multiple meanings of the term "{visual programming}", Fred
	Lakin has proposed the term "executable graphics" as an
	alternative to VPL.

	Some examples of visual programming languages are {Prograph},
	{Pict}, {Tinkertoy}, {Fabrik}, {CODE 2.0} and {Hyperpascal}.

	{(http://cogs.susx.ac.uk/users/ianr/vpl.html)}.
	{(http://cuiwww.unige.ch/eao/www/readme.html)}.

	{Usenet} newsgroup: {news:comp.lang.visual} (NOT for {Visual
	Basic} or {Visual C++}).

	(1995-02-10)

VisualWorks

	<language> A modern commercial implementation of the
	{Smalltalk} programming language.  VisualWorks descends
	directly from the original {Smalltalk-80} by {Xerox PARC} and
	was originally developed (for some time under the name
	Objectworks\Smalltalk) by {ParcPlace Systems}.  VisualWorks
	relies on {dynamic translation} as its {virtual machine}
	technology.

	{VisualWorks Wiki (http://wiki.cs.uiuc.edu/VisualWorks)}.

	(2003-05-15)

VITAL

	A {semantics} language using {FSL}, developed by Mondshein in
	1967.

	[Sammet 1969, p. 641].

	(1995-02-23)

VIVID

	A numerical {constraint}-oriented language.

	["VIVID: The Kernel of a Knowledge Representation Environment
	Based on the Constraints Paradigm of Computation", J. Maleki,
	Proc 20th Annual Hawaii Intl Conf on System Sciences (Jan
	1987) pp.591-597].

	(1995-02-23)

viz

	A {visual language} for specification and programming.

	["viz: A Visual Language Based on Functions", C.M. Holt, 1990
	IEEE Workshop on Visual Langs, Oct 1990, pp.221-226].

	(1995-02-23)

VLAN

	{Virtual Local Area Network}

VLB

	{VESA local bus}

VLDB

	{Very Large DataBase}

	[How large?]

	(1996-12-21)

Vlisp

	<language>

	1. A {Lisp} dialect developed by Patrick Greussay
	<pg@litp.ibp.fr> in about 1973 with a fast {interpreter} and a
	portable {virtual machine}.  Vlisp introduced the
	"{chronology}", a dynamic environment for implementing
	{interrupts}.  It led to {Le_Lisp}.  See also {ObjVlisp}.

	["Contribution a la Definition Interpretive et a
	l'Implementation des Lambda-Langages", P. Greussay, These
	d'Etat, U Paris VI, Nov 1977].

	[Relationship to {Vincennes LISP}?]

	2. {Vincennes LISP}.

	(2008-03-16)

VLIW

	{Very Long Instruction Word}

VLM

	1. <architecture> {Very Large Memory}.

	2. <networking> {Virtual Loadable Module}.

	(1998-02-24)

VLSI

	{Very Large Scale Integration}

VLSM

	{Variable Length Subnet Masks}

VM

	{Virtual Machine}

VM/CMS

	{Virtual Machine/Conversational Monitor System}

VME

	1. <hardware> {Versa Module Europa}.

	See {VMEbus}.

	2. <operating system> {Virtual Machine Environment}.

VMEbus

	A widely accepted backplane interconnection bus system
	developed by a consortium of companies led by {Motorola}, now
	standardised as {IEEE} 1014.

	(1995-06-01)

VME Microsystems International Corporation

	<company> (VMIC)

	Address: Huntsville, AL, USA.

	Telephone: +1 800 322 3616.

	(1995-06-01)

VM/ESA

	{Virtual Machine}

VML

	VODAK Model Language.  Language for an extensible
	{object-oriented database}.

	["Object-Oriented Modeling for Hypermedia Systems Using the
	Object-Oriented VODAK Model Language (VML)" Wolfgang Klas et
	al, in Object-Oriented Database Management Systems, NATO ASI
	Series, Springer 1993].

	E-mail: <aberer@darmstadt.gmd.de>.

VMS

	{Virtual Memory System}

VM/SP

	{Virtual Machine}

VM/XA

	{Virtual Machine}

vn

	<networking> The {country code} for Vietnam.

	(1999-01-27)

vocoder

	<communications> Hardware or software which implements a
	{compression} {algorithm} particular to voice.

	For example {Qualcomm} uses a vocoding algorithm to compresses
	voice data in digital communication systems such as wireless
	{CDMA} and {Eudora} voice attach.

	(1998-04-29)

vocoding

	{vocoder}

VoD

	{video on demand}

voice mail

	<messaging, business> Any system for sending, storing and
	retrieving {audio} messages, like a telephone answering
	machine.

	A voice mailbox is typically associated with a telephone
	number or extension.  When the number is called and the line
	is busy or not answered, the caller hears a message left by
	the owner and is given instructions for leaving a message or
	other available options, such as paging the individual or
	being transferred to an operator.  The owner of a mailbox can
	change the outgoing message or listen to incoming messages
	after entering a {PIN}.  Members of a voice mail system can
	generally forward or {broadcast} messages to other members'
	boxes.

	The experience of two people trying to reach other by
	telephone but always reaching each other's voice mail is
	referred to as "(tele)phone tag".

	(1996-11-03)

voice-net

	Hackish way of referring to the {plain old telephone system},
	comparing it to a digital {network}.  {Usenet} {sig blocks}
	sometimes include the sender's telephone number next to a
	"Voice:" or "Voice-Net:" header; variants of this are
	"Voicenet" and "V-Net".

	Compare {paper-net}, {snail-mail}.

	[{Jargon File}]

	(1995-02-16)

Voice over IP

	<communications> (VoIP) Any technology providing {voice
	telephony} services over {IP}, including {CODECs}, {streaming}
	{protocols} and {session control}.  The major advantage of
	VoIP is lower cost, by avoiding dedicated voice circuits.

	Currently VoIP is being deployed on internal corporate
	networks, and, via the {Internet}, for low cost (and low
	quality) international calls.  It is also used for telephony
	applications such as voice and fax mail.

	The {ITU} standard is {H.323}, which is a whole suite of
	protocols, while the {IETF} has developed the much simpler
	{SIP} to solve the session control problem and {MGCP}/{Megaco}
	to solve the gateway problem.

	(2003-11-30)

voice recognition

	{speech recognition}

VoIP

	{Voice over IP}

volatile

	1. <programming> {volatile variable}.

	2. <storage> See {non-volatile storage}.

	(1997-06-05)

volatile memory

	{non-volatile storage}

volatile storage

	{non-volatile storage}

volatile variable

	<programming> A variable in a computer program which can be
	modified by processes other than the program.  For example, a
	variable that stores the value of a timer chip (either because
	it is located at the address of the hardware device or because
	it is updated on {interrupts}) needs to be volatile to be
	useful.

	A {static} variable, on the other hand, maintains its value
	until the program changes it or it is no longer needed.  In
	addition, volatile variables can be held in the {stack}
	whereas static variables are usually stored in a program's
	{data segment}.

	(1995-05-17)

voltage

	<electronics> (Or "potential difference", "electro-motive
	force" (EMF)) A quantity measured as a signed difference
	between two points in an electrical circuit which, when
	divided by the {resistance} in {Ohms} between those points,
	gives the current flowing between those points in {Amperes},
	according to {Ohm's Law}.  Voltage is expressed as a signed
	number of Volts (V).  The voltage gradient in Volts per metre
	is proportional to the force on a charge.

	Voltages are often given relative to "earth" or "ground" which
	is taken to be at zero Volts.  A circuit's earth may or may
	not be electrically connected to the actual earth.

	The voltage between two points is also given by the charge
	present between those points in {Coulombs} divided by the
	{capacitance} in {Farads}.  The capacitance in turn depends on
	the {dielectric constant} of the insulators present.

	Yet another law gives the voltage across a piece of circuit as
	its {inductance} in {Henries} multiplied by the rate of change
	of current flow through it in Amperes per second.

	A simple analogy likens voltage to the pressure of water in a
	pipe.  Current is likened to the amount of water (charge)
	flowing per unit time.

	(1995-12-04)

Volume Table Of Contents

	<storage> (VTOC) /V-tock/ A special {file} on a {disk}, which
	contains a list of all the ordinary files on the disk and
	their {addresses}.  Also called a {directory}.

	The term is used mostly with large {mainframe} {disk drives}.
	Storage administrators will often refer to the VTOC to obtain
	information on the number of files stored on a disk.

	(1997-04-15)

von Neumann architecture

	<architecture, computability> A computer {architecture}
	conceived by mathematician {John von Neumann}, which forms the
	core of nearly every computer system in use today (regardless
	of size).  In contrast to a {Turing machine}, a von Neumann
	machine has a {random-access memory} (RAM) which means that
	each successive operation can read or write any memory
	location, independent of the location accessed by the previous
	operation.

	A von Neumann machine also has a {central processing unit}
	(CPU) with one or more {registers} that hold data that are
	being operated on.  The CPU has a set of built-in operations
	(its {instruction set}) that is far richer than with the
	Turing machine, e.g. adding two {binary} {integers}, or
	branching to another part of a program if the binary integer
	in some register is equal to zero ({conditional branch}).

	The CPU can interpret the contents of memory either as
	instructions or as data according to the {fetch-execute
	cycle}.

	Von Neumann considered {parallel computers} but recognized the
	problems of construction and hence settled for a sequential
	system.  For this reason, parallel computers are sometimes
	referred to as non-von Neumann architectures.

	A von Neumann machine can compute the same class of functions
	as a universal {Turing machine}.

	[Reference?  Was von Neumann's design, unlike Turing's,
	originally intended for physical implementation?]

	{(http://salem.mass.edu/~tevans/VonNeuma.htm)}.

	(2003-05-16)

von Neumann integer

	<mathematics> A {finite} {von Neumann ordinal}.

	The von Neumann integer N is a {finite} set with N elements
	which are the von Neumann integers 0 to N-1.  Thus

		0 = {}		= {}
		1 = {0}		= {{}}
		2 = {0, 1}	= {{}, {{}}}
		3 = {0, 1, 2}	= {{}, {{}}, {{}, {{}}}}
		...

	The set of von Neumann integers is {infinite}, even though
	each of its elements is finite.

	[Origin of name?]

	(1995-03-30)

von Neumann, John

	{John von Neumann}

von Neumann machine

	{von Neumann architecture}

von Neumann ordinal

	<mathematics> An implementation of {ordinals} in {set theory}
	(e.g. {Zermelo Fränkel set theory} or {ZFC}).  The von Neumann
	ordinal alpha is the {well-ordered set} containing just the
	ordinals "shorter" than alpha.

	"Reasonable" set theories (like ZF) include Mostowski's
	Collapsing Theorem: any {well-ordered set} is {isomorphic} to
	a von Neumann ordinal.  In really screwy theories (e.g. NFU --
	New Foundations with Urelemente) this theorem is false.

	The finite von Neumann ordinals are the {von Neumann
	integers}.

	(1995-03-30)

voodoo programming

	<jargon> (From George Bush's "voodoo economics") The use by
	guess or cookbook of an obscure or {hairy} system, feature, or
	algorithm that one does not truly understand.  The implication
	is that the technique may not work, and if it doesn't, one
	will never know why.  Almost synonymous with {black magic},
	except that black magic typically isn't documented and
	*nobody* understands it.

	Compare {magic}, {deep magic}, {heavy wizardry}, {rain dance},
	{cargo cult programming}, {wave a dead chicken}.

	[{Jargon File}]

	(1995-03-10)

Voronoi diagram

	<mathematics, graphics> (Or "Voronoi tessellation", "Voronoi
	decomposition", "Dirichlet tessellation", After {Georgy
	Feodosevich Voronoy}) For a {set} S of points in a {Euclidean
	space}, the {partition} Vor(S) of the plane into the {voronoi
	polygons} associated with the {members} of S, where each
	polygon is defined by the set of points nearer to some given
	point in S than to any other point in S.

	The Voronoi diagram is the {dual} of the {Delaunay
	triangulation} of S.

	(2008-04-18)

Voronoi polygon

	<mathematics, graphics> For a member s of a {set} S of points
	in a {Euclidean space}, the {locus} of points in the plane
	that are closer to s than to any other member of S.

	(1997-08-03)

VOS

	<operating system> An {operating system} used in {Stratus}
	computers.

	See also {FTX}.

	[Details?]

	(1998-07-06)

Voters Telecommunications Watch

	<body> (VTW) A non-profit organisation based in New York,
	founded by Shabbir J. Safdar to protect the rights of
	{Internet} users.  The VTW has actively opposed regulation of
	{encryption} and restrictions on Internet free speech.  VTW
	created the animated "Free Speech" fireworks icon that has
	been displayed on many web pages since June 12, 1996, the day
	that a three-judge panel in Philadelphia ruled the {CDA}
	unconstitutional.

	{(http://vtw.org)}.

	(1996-11-03)

voxel

	<jargon> (By analogy with "{pixel}") Volume element.

	The smallest distinguishable box-shaped part of a
	three-dimensional space.  A particular voxel will be
	identified by the x, y and z coordinates of one of its eight
	corners, or perhaps its centre.  The term is used in three
	dimensional modelling.

	(1995-03-10)

V.pcm

	{V.90}

VPL

	1. {visual programming} language.

	["VPL: An Active, Declarative Visual Programming System,
	D. Lau-Kee et al, 1991 IEEE Workshop on Vis Langs, Oct 1991,
	pp. 40-46].

	2. A {dataflow} language for interactive image processing.

VPN

	{Virtual Private Network}

VP-Planner

	<tool, product> A {spreadsheet} from {Paperback Software}.  It
	has a graph menu within the spreadsheet program (with {CGA}
	graphics).  The graphs are updated every time the graph screen
	is activated.

	(1995-03-28)

VQF

	{Twin Vector Quantization}

VR

	{virtual reality}

VRAM

	{video random-access memory}

VRC

	{Vertical Redundancy Check}

Vrije Universiteit, Amsterdam

	<education, body> The "Free University of Amsterdam", founded
	in 1880 by Abraham Kuyper (who later became Prime Minister of
	The Netherlands).  Originally only open to Reformed
	Christians, it is now open to all.

	{Andrew Tanenbaum} is a professor there.

	Not to be confused with the much older Universiteit van
	Amsterdam.

	{(http://vu.nl/)}.

	(2005-11-05)

VRML

	{Virtual Reality Modeling Language}

VRTX

	Virtual Real-Time Executive.

	A {real-time} {operating system} from {ReadySystems} for the
	{Motorola 68000} family of {microprocessors}.

	{MPV} is a {multi-processing} extension.

	(1994-11-08)

VSAM

	{Virtual Storage Access Method}

VSAT

	<communications> {Very Small Aperture Terminal}.

VSCM

	<language, LISP> A highly {portable} implementation of
	{Scheme}, written in {ANSI C} and {Scheme}.  VSCM features
	{exception} and {interrupt} handling, executable portable
	memory images, {coroutines} and {continuations} with multiple
	arguments.

	Portability is achieved by exclusive use of legal ANSI C
	features.

	Version II Nov9 by Matthias Blume <blume@cs.princeton.edu>
	included {run-time support} and a {bytecode compiler}.  It
	conforms to R4RS and IEEE P1178 and runs on {Unix} and
	{Macintosh}.

	VSCM is no longer actively developed - the author recommends
	{StandardML}.

	{(http://cs.princeton.edu/~blume/vscm/)}.

	(2001-01-02)

VSE

	{Virtual Storage Extended}

V series

	<communications, standard> A set of standards published by the
	{CCITT} for "Data Communication over the Telephone Network".
	The following standards describe the important {modulation}
	techniques: {V.17}, {V.21}, {V.22}, {V.22 bis}, {V.23}, {V.27
	ter}, {V.29}, {V.32}, {V.32 bis}.  Other V standards include
	{V.24}, {V.25 bis}, {V.42}, {V.42 bis}.

	(2004-07-20)

VSF

	{Virtual Software Factory}

VSP

	Very Simple Prolog+.

VSTa

	<operating system> {Valencia Simple Tasker}.

VSX

	Verification Suite for {X/open}.

VT

	<character> Vertical Tab, the {mnemonic} for {ASCII} 11.

	(1996-06-24)

vt100

	<hardware> {DEC}'s definitive {CRT} {video terminal} of the
	early/mid 1980s.  Its {control codes} and {escape sequences}
	still form the basis of the {xterm} set and of the {ANSI} or
	{IBM PC} standards.  VT100 compatibility is still provided by
	most {terminal emulators}.

	[On-line documentation?]

	(1995-03-28)

vt220

	<hardware> A {DEC} {video terminal}, the successor to the
	{VT100} series.

	[On-line documentation?]

	(1995-03-28)

VTAM

	{Virtual Telecommunications Access Method}

VTC

	{video teleconferencing}

VTOC

	{Volume Table Of Contents}

VTS

	A suite of test programs for Motif from {OSF}.

VTW

	{Voters Telecommunications Watch}

vu

	<networking> The {country code} for Vanuatu.

	(1999-01-27)

VUE

	Visual User Environment: a desktop manager for Unix from
	Hewlett-Packard.

VUIT

	Visual User Interface Tool: a WYSIWYG editor from DEC for
	building human interfaces to applications using {OSF}/Motif.
	It provides an interactive interface to UIL and the Motif
	toolkit.

VULCAN

	1. <database> A version of {JPLDIS} ported to {CP/M} by Wayne
	Ratliff around 1980.  VULCAN evolved into {dBASE II}.

	2. <database> The {dBASE}-like {interpreter} and {compiler}
	sold by {RSPI} with their {Emerald Bay} product.  [Same as 1?]

	3. <language> An early string manipulation language.

	["VULCAN - A String Handling Language with Dynamic Storage
	Control", E.P. Storm et al, Proc FJCC 37, AFIPS, Fall 1970].

	4. <language> A {concurrent} {object-oriented} {logic
	programming} language implemented as a {preprocessor} for
	{FCP} by Kahn et al at {Xerox PARC}.

	["Vulcan: Logical Concurrent Objects", K. Kahn et al in
	Research Directions in Object- Oriented Programming,
	A.B. Shriver et al eds, MIT Press 1987].

	(2004-09-01)

Vulcan death grip

	<jargon> A variant of {Vulcan nerve pinch} derived from a Star
	Trek {classic} epsisode where a non-existant "Vulcan death
	grip" was used to fool Romulans that Spock had killed Kirk.

	(1996-10-27)

Vulcan nerve pinch

	<jargon> (Or "three-finger salute", Vulcan death grip; from
	the old "Star Trek" TV series via {Commodore} {Amiga}
	{hackers}) The keyboard combination that forces a {soft boot}
	or jump to {ROM monitor} (on machines that support such a
	feature).

	On an Amiga this is done with Ctrl/Right Amiga/Left Amiga; on
	{IBM PCs} and many {microcomputers} it is Ctrl/Alt/Del; on
	{Suns}, L1-A; on some {Macintoshes}, it is <Cmd>-<Power
	switch>!  Silicon Graphics users are obviously the most
	dextrous however, as these machines use the five-finger
	combination: Left Shift/Left Ctrl/Left Alt/Keypad Divide/F12.

	Compare {quadruple bucky}.

	[{Jargon File}]

	(2000-04-04)

vulnerability

	<security> A {bug} or {feature} of a system that exposes it to
	possible attack, a flaw in the system's security.

	A common example of a vulnerability due to a bug is {buffer
	overrun}, where carefully constructed input can allow an
	attacker to insert arbitrary code into a running program and
	have it executed.

	The most serious vulnerabilities are those in network
	software, especially if they exploit traffic that is allowed
	through the {firewall} like {HTTP}, for example exploiting a
	bug in a {web browser}.

	The {Open Source Vulnerability Database} lists many
	vulnerabilities.

	(2007-12-02)

vulture capitalist

	<abuse> A pejorative hackerism for "venture capitalist",
	deriving from the common practice of pushing contracts that
	deprive inventors of control over their own innovations and
	most of the money they ought to have made from them.

	[{Jargon File}]

	(1995-04-14)

VUP

	{VAX MIPS}

VxD

	{Virtual Device Driver}

VXI

	{VMEbus Extension for Instrumentation}

VxWorks

	<operating system> A {real-time} {multitasking} {operating
	system} from {Wind River Systems}.  Originally it used the
	{VRTX} {kernel} but this has been replaced by Wind River's own
	"Wind kernel 2.4".

	Before version 5.3 VxWorks included a {software development
	environment} but this is now called "Tornado".

	Latest version: 5.3, as of 1996-11-28.

	(1996-11-29)

W2K

	{Windows 2000}

W3

	A {World-Wide Web} {browser} for {Emacs} by William M. Perry
	<wmperry@indiana.edu>.

	(1994-12-16)

W3C

	{World Wide Web Consortium}

W3 Consortium

	{World Wide Web Consortium}

WA-12

	Workflow Analysis in 12 different organisations.  A project
	from the Department of Computer Science from the {University
	of Twente}, Enschede, The Netherlands.  The final report of
	this project is available to the public (ISBN 90-365-0683-2).

wabbit

	/wab'it/ [almost certainly from Elmer Fudd's immortal line
	"You wascawwy wabbit!"]  1. A legendary early hack reported on
	a System/360 at RPI and elsewhere around 1978; this may have
	descended (if only by inspiration) from hack called RABBITS
	reported from 1969 on a Burroughs 55000 at the University of
	Washington Computer Center.  The program would make two copies
	of itself every time it was run, eventually crashing the
	system.

	2. By extension, any hack that includes infinite
	self-replication but is not a {virus} or {worm}.  See {fork
	bomb} and {rabbit job}, see also {cookie monster}.

	[{Jargon File}]

Wabi

	{Windows Application Binary Interface}

WabiServer

	<operating system, tool> An addition to {Wabi} which allows
	the {Microsoft Windows} application to run on a {server},
	e.g. a powerful {Intel}-based computer, with users accessing
	it from their desktop which can be a cheap computer such as an
	{X terminal}.

	(1997-01-08)

wacco

	A {BNF}-based LL(?) {parser generator}.

	Posted to comp.sources.misc.

Wafe

	<programming> (From Widget Athena front end) A package by
	Gustaf Neumann <Gustaf.Neumann@uni-essen.de> implementing a
	symbolic interface to the {Athena} {widgets} and
	{OSF}/{Motif}.  A typical Wafe {application} consists of two
	parts: a front-end (Wafe) and an application program which
	runs as a separate process.  The distribution contains sample
	application programs in {Perl}, {GAWK}, {Prolog}, {TCL}, {C},
	and {Ada} talking to the same Wafe binary.

	The current Wafe version is 1.0.15. It supports Athena as
	distributed with {X} releases 4-6 and Motif versions 1.1, 1.2,
	and 2.0 but new distribution are only tested against {X}
	releases 5 and 6, and Motif versions 1.2.4 and 2.0.

	{HOME (http://wu-wien.ac.at/wafe)},
	{(ftp://ftp.wu-wien.ac.at/pub/src/X11/wafe/)}.

	Mailing list: listserv@wu-wien.ac.at ("subscribe Wafe <Your
	Name>").

	(1996-07-09)

WAFL

	WArwick Functional Language.  Warwick U, England.  LISP-like.

WAIS

	{Wide Area Information Servers}

WAITS

	/wayts/ The mutant cousin of {TOPS-10} used on a handful of
	systems at {SAIL} up to 1990.  There was never an "official"
	expansion of WAITS (the name itself having been arrived at by
	a rather sideways process), but it was frequently glossed as
	"West-coast Alternative to ITS".  Though WAITS was less
	visible than ITS, there was frequent exchange of people and
	ideas between the two communities, and innovations pioneered
	at WAITS exerted enormous indirect influence.  The early
	screen modes of {Emacs}, for example, were directly inspired
	by WAITS's "E" editor - one of a family of editors that were
	the first to do "real-time editing", in which the editing
	commands were invisible and where one typed text at the point
	of insertion/overwriting.  The modern style of multi-region
	windowing is said to have originated there, and WAITS alumni
	at XEROX PARC and elsewhere played major roles in the
	developments that led to the XEROX Star, the Macintosh, and
	the Sun workstations.  {Bucky bits} were also invented there
	thus, the ALT key on every IBM PC is a WAITS legacy.  One
	notable WAITS feature seldom duplicated elsewhere was a
	news-wire interface that allowed WAITS hackers to read, store,
	and filter AP and UPI dispatches from their terminals; the
	system also featured a still-unusual level of support for what
	is now called "multimedia" computing, allowing analog audio
	and video signals to be switched to programming terminals.

	Ken Shoemake adds:

	Some administrative body told us we needed a name for the
	operating system, and that "SAIL" wouldn't do.  (Up to that
	point I don't think it had an official name.)  So the anarchic
	denizens of the lab proposed names and voted on them.
	Although I worked on the OS used by CCRMA folks (a parasitic
	subgroup), I was not writing WAITS code.  Those who were,
	proposed "SAINTS", for (I think) Stanford AI New Time-sharing
	System.  Thinking of ITS, and AI, and the result of many
	people using one machine, I proposed the name WAITS.  Since I
	invented it, I can tell you without fear of contradiction that
	it had no official meaning.  Nevertheless, the lab voted that
	as their favorite; upon which the disgruntled system
	programmers declared it the "Worst Acronym Invented for a
	Time-sharing System"!  But it was in keeping with the creative
	approach to acronyms extant at the time, including
	self-referential ones.  For me it was fun, if a little
	unsettling, to have an "acronym" that wasn't.  I have no idea
	what the voters thought. :)

	[{Jargon File}]

	(2003-11-17)

wait state

	<architecture> A delay of one or more {clock} cycles added to
	a processor's instruction execution time to allow it to
	communicate with slow external devices.  The number and
	duration of wait states may be pre-configured or they may be
	controlled dynamically via certain control lines.

	(1996-10-16)

waldo

	/wol'doh/ [Robert A. Heinlein's story "Waldo"] 1. A mechanical
	agent, such as a gripper arm, controlled by a human limb.
	When these were developed for the nuclear industry in the
	mid-1940s they were named after the invention described by
	Heinlein in the story, which he wrote in 1942.  Now known by
	the more generic term "telefactoring", this technology is of
	intense interest to NASA for tasks like space station
	maintenance.

	2. At Harvard (particularly by Tom Cheatham and students),
	this is used instead of {foobar} as a metasyntactic variable
	and general nonsense word.  See {foo}, {bar}, {foobar},
	{quux}.

	[{Jargon File}]

walk

	<programming> To Traverse a data structure, especially an
	{array} or {linked-list} in {core}.

	See also {codewalker}, {silly walk}, {clobber}.

	(2001-04-12)

walking drives

	<jargon> An occasional failure mode of {magnetic-disk drives}
	back in the days when they were huge, clunky {washing
	machines}.  Those old {dinosaur} parts carried terrific
	angular momentum; the combination of a misaligned spindle or
	worn bearings and stick-slip interactions with the floor could
	cause them to "walk" across a room, lurching alternate corners
	forward a couple of millimeters at a time.  There is a legend
	about a drive that walked over to the only door to the
	computer room and jammed it shut; the staff had to cut a hole
	in the wall in order to get at it!  Walking could also be
	induced by certain patterns of drive access (a fast seek
	across the whole width of the disk, followed by a slow seek in
	the other direction).  Some bands of old-time hackers figured
	out how to induce disk-accessing patterns that would do this
	to particular drive models and held disk-drive races.

	[{Jargon File}]

	(2009-05-14)

walk off the end of

	<programming> To attempt to process past the start or end of
	an {array}, {list} or medium after stepping through it.  Often
	the result of an {off-by-one error}.

	Compare {clobber}, {roach}, {smash the stack}.

	(2009-05-14)

wall

	<communications> {Unix}'s "write all" command which sends a
	message to everyone currently logged in.

	[{Jargon File}]

	(2009-05-14)

wall clock time

	<software> The elapsed time between when a {process} starts to
	run and when it is finished.  This is usually longer than the
	{processor time} consumed by the process because the {CPU} is
	doing other things besides running the {process} such as
	running other user and {operating system} processes or waiting
	for disk or {network} {I/O}.

	(1998-03-13)

wall follower

	<robotics> A person or {algorithm} that compensates for lack
	of sophistication or native stupidity by efficiently following
	some simple procedure shown to have been effective in the
	past.  Used of an algorithm, this is not necessarily
	pejorative; it recalls "Harvey Wallbanger", the winning robot
	in an early AI contest (named, of course, after the cocktail).
	Harvey successfully solved mazes by keeping a "finger" on one
	wall and running till it came out the other end.  This was
	inelegant, but it was mathematically guaranteed to work on
	simply-connected mazes - and, in fact, Harvey outperformed
	more sophisticated robots that tried to "learn" each maze by
	building an internal representation of it.  Used of humans,
	the term *is* pejorative and implies an uncreative,
	bureaucratic, by-the-book mentality.

	See also {code grinder}.

	[{Jargon File}]

	(2003-02-03)

wallpaper

	1. A file containing a listing (e.g. assembly listing) or a
	transcript, especially a file containing a transcript of all
	or part of a login session.  (The idea was that the paper for
	such listings was essentially good only for wallpaper, as
	evidenced at {Stanford}, where it was used to cover windows).

	The term is now rare, especially since other systems have
	developed other terms for it (e.g. PHOTO on {TWENEX}).
	However, the {Unix} world doesn't have an equivalent term, so
	perhaps wallpaper will take hold there.  The term probably
	originated on {ITS}, where the commands to begin and end
	transcript files were ":WALBEG" and ":WALEND", with default
	file "WALL PAPER" (the space was a path delimiter).

	2. The background pattern used on graphical workstations under
	the {Microsoft Windows} {graphical user interface} to
	{MS-DOS}.

	(1994-12-22)

wall plate

	<hardware> A small rectangular panel, usually made of plastic,
	fixed to the wall, on which sockets and switches are mounted.
	These connect to wiring hidden in the wall.  Common examples
	would be electrical mains and telephone sockets.

	(2009-03-19)

wall time

	(Or "wall clock time") 1. "Real world" time (what the clock on
	the wall shows), as opposed to the {system clock}'s idea of
	time.

	2. The real running time of a program, as opposed to the
	number of {ticks} required to execute it (on a {time-sharing}
	system these always differ, as no one program gets all the
	ticks, and on multiprocessor systems with good thread support
	one may get more processor time than real time).

	[{Jargon File}]

WAM

	Intermediate language for compiled Prolog, used by the Warren
	Abstract Machine.  "An Abstract Prolog Instruction Set",
	D.H.D. Warren, TR 309, SRI 1983.

WAN

	{Wide Area Network}

Wang Laboratories

	<body> Computer manufacturer, known for their {office
	automation} products and the {Wang PC}.

	Quarterly sales $208M, profits $3M (Aug 1994).

	(2008-05-28)

wango

	/wang'goh/ Random bit-level {grovel}ling going on in a system
	during some unspecified operation.  Often used in combination
	with {mumble}.  For example: "You start with the ".o" file,
	run it through this postprocessor that does mumble-wango - and
	it comes out a snazzy object-oriented executable."

	[{Jargon File}]

Wang PC

	<computer> {Personal computers} made by {Wang Laboratories}.
	Wang's PCs had an {operating system} (based on {MS-DOS}) which
	was not compatible with the {IBM PC}.  The Wang {floppy disk}
	format was compatible with the IBM PC.  However, running an
	IBM "exe" program would generally crash a Wang PC unless a
	special Industry-Standard emulator program was running on the
	Wang.  This program required the addition of a special card to
	the Wang PC.  It enabled the Wang PC to run most, but not all,
	software written for the IBM PC.  Most Wang software made use
	of two special keys: CANCEL and EXECUTE.  These keys were used
	to carry out commands, make menu selections, and so on.  The
	Wang OS was menu-driven.

	(2008-05-28)

wank

	/wangk/ [Columbia University: probably by mutation from
	Commonwealth slang "wank", to masturbate] Used much as {hack}
	is elsewhere, as a noun denoting a clever technique or person
	or the result of such cleverness.  May describe (negatively)
	the act of hacking for hacking's sake ("Quit wanking, let's go
	get supper!") or (more positively) a {wizard}.  "wanky"
	describes something particularly clever (a person, program, or
	algorithm).  Conversations can also get wanky when there are
	too many wanks involved.  This excess wankiness is signalled
	by an overload of the "wankometer" (compare {bogometer}).
	When the wankometer overloads, the conversation's subject must
	be changed, or all non-wanks will leave.  Compare
	"neep-neeping" (under {neep-neep}).  Usage: US only.  In
	Britain and the Commonwealth this word is *extremely* rude and
	is best avoided unless one intends to give offense.

wannabee

	/won'*-bee/ (Or, more plausibly, spelled "wannabe") [Madonna
	fans who dress, talk, and act like their idol; probably
	originally from biker slang] A would-be {hacker}.  The
	connotations of this term differ sharply depending on the age
	and exposure of the subject.  Used of a person who is in or
	might be entering {larval stage}, it is semi-approving; such
	wannabees can be annoying but most hackers remember that they,
	too, were once such creatures.  When used of any professional
	programmer, CS academic, writer, or {suit}, it is derogatory,
	implying that said person is trying to cuddle up to the hacker
	mystique but doesn't, fundamentally, have a prayer of
	understanding what it is all about.  Overuse of hacker terms
	is often an indication of the {wannabee} nature.  Compare
	{newbie}.

	Historical note: The wannabee phenomenon has a slightly
	different flavour now (1993) than it did ten or fifteen years
	ago.  When the people who are now hackerdom's tribal elders
	were in {larval stage}, the process of becoming a hacker was
	largely unconscious and unaffected by models known in popular
	culture - communities formed spontaneously around people who,
	*as individuals*, felt irresistibly drawn to do hackerly
	things, and what wannabees experienced was a fairly pure,
	skill-focussed desire to become similarly wizardly.  Those
	days of innocence are gone forever; society's adaptation to
	the advent of the microcomputer after 1980 included the
	elevation of the hacker as a new kind of folk hero, and the
	result is that some people semi-consciously set out to *be
	hackers* and borrow hackish prestige by fitting the popular
	image of hackers.  Fortunately, to do this really well, one
	has to actually become a wizard.  Nevertheless, old-time
	hackers tend to share a poorly articulated disquiet about the
	change; among other things, it gives them mixed feelings about
	the effects of public compendia of lore like this one.

	[{Jargon File}]

want list

	{wish list}

WAP

	{Wireless Application Protocol}

WAP Forum

	<body> The official body developing {Wireless Application
	Protocol}.

	{(http://wapforum.org/)}.

	(2000-02-10)

warchalk

	<networking> A system of runes and annotations chalked on
	walls or other surfaces to indicate to interested parties the
	presence of a {wireless} network {node} in the vicinity.

	Warchalking was inspired by "hobo language" - the signs used
	by American itinerants during the Depression years to indicate
	where they might find a meal.

	{(http://blackbeltjones.com/warchalking/)}.

	(2002-06-26)

Ward Christensen

	<person> The inventor of {XMODEM} and of the {BBS}.  Ward did
	physics in college and programmed {mainframes} for {IBM}.

	Ward and friend Randy Suess set up their BBS on first on
	1978-02-16 in Chicago.  It ran on an {S-100} computer with 64k
	{RAM} and two single-sided 8" 250kB {diskettes}.

	{Freeware Hall of Fame
	(http://freewarehof.org/ward.html)}.

	(2005-09-20)

Ward Cunnigham

	<person> The creator of the first {wiki}.

	(2004-07-11)

wardialer

	<security> Almost certainly a shortened version of "WarGames
	dialer", from the film {WarGames}.

	1. {carrier scanner}

	2. A program which attempts to break a {password} of known
	length by iterating thru all possible combinations of
	characters that could make up that password.

	This approach is not feasable for cracking most passwords
	these days.  However, as late as the mid-1980s, some
	long-distance companies required only very short numeric
	access codes (e.g. five digits) to verify the identity of
	their customers.  Wardialers were created which would, running
	unattended, call up long-distance providers' local connect
	numbers and iteratively try possible access codes.  Codes
	which worked were logged for later illicit use.

	These wardialers had a high success rate because of the small
	range of possibilities to iterate through, e.g. 10000 for a
	five digit access code, compared to hundreds of trillions of
	combinations for an eight-character alphanumeric code.

	Long-distance providers soon required longer passwords and
	took advantage of technology for rapidly tracing the phone
	numbers that wardialers were being run from, such that running
	wardialers became pointless and dangerous.

	(1997-03-16)

wardriving

	<security> (From {wardialer} in the "carrier scanner" sense of
	that word) To drive around with a {laptop} with a {wireless
	card}, and an antenna, looking for accessible {wireless
	networks}.

	(2003-06-24)

-ware

	["software"] Commonly used to form terms for classes of
	software.  For examples, see {careware}, {crippleware},
	{crudware}, {freeware}, {fritterware}, {guiltware},
	{liveware}, {meatware}, {payware}, {psychedelicware},
	{shareware}, {shelfware}, {vaporware}, {wetware}.

	[{Jargon File}]

warez

	<software, legal> /weirz/ A term {software pirates} use to
	describe {cracked} games or applications made available to the
	{Internet}, at no cost, usually via {FTP} or {telnet}.  Often
	the pirate will make use of a site with lax security.

	(1994-11-29)

WarGames

	<recreation> (Not "War Games") A 1983 film about a schoolboy
	{cracker} using a {wardialer} to try to break into a games
	company's computer and accidentally connecting to a {backdoor}
	into "Whopper", a ficticious {C3} computer at Norad (USAF).
	He then procedes to unwittingly initiate global thermonuclear
	warfare.  Playing naughts and crosses finally teaches Whopper
	that the only way to win the game is never to play.

	{IMDb (http://us.imdb.com/Title?WarGames+%281983%29)}.

	(1999-03-08)

warlording

	<jargon> The act of excoriating a bloated, ugly or derivative
	{sig block}.  Common grounds for warlording include the
	presence of a signature rendered in a {BUAF}, over-used or
	cliched {sig quotes}, ugly {ASCII art}, or simply excessive
	size.  The original "Warlord" was a {BIFF}-like {newbie}
	c. 1991 who featured in his sig a particularly large and
	obnoxious ASCII graphic resembling the sword of Conan the
	Barbarian in the 1981 John Milius movie; the group name
	alt.fan.warlord was sarcasm, and the characteristic mode of
	warlording is devastatingly sarcastic praise.

	{Usenet} newsgroup: {news:alt.fan.warlord}.

	[{Jargon File}]

	(1994-11-29)

warm boot

	<operating system> A {boot} from {power on}, where the {CPU}
	and {peripherals} are already powered up (warm).

	A warm boot might be performed after a {software} {crash} or
	a {hardware} {reset}.

	Contrast {cold boot}.  See also {reboot}.

	[{Jargon File}]

	(1998-04-28)

Warm Silence Software

	A small company run by(?) Robin Watts, producing {software}
	for the {Acorn} {Archimedes}.

	{(http://comlab.ox.ac.uk/oucl/users/robin.watts/)}.

	(1994-11-01)

Warp

	{OS/2}

wart

	A small, {crock}y {feature} that sticks out of an otherwise
	{clean} design.  Something conspicuous for localised ugliness,
	especially a special-case exception to a general rule.  For
	example, in some versions of "csh(1)", single quotes
	literalise every character inside them except "!".  In ANSI C,
	the "?" syntax used for obtaining ASCII characters in a
	foreign environment is a wart.  See also {miswart}.

	[{Jargon File}]

washing machine

	<storage> An old-style 14-inch {hard disk} in a floor-standing
	cabinet.  So called because of the size of the cabinet and the
	"top-loading" access to the media packs - and, of course, they
	were always set on "spin cycle".  The thick channel cables
	connecting these were called "{bit hoses}".  The
	washing-machine idiom transcends language barriers; it is even
	used in Russian hacker jargon.

	See also {walking drives}.

	(1995-02-15)

Wasserman

	A.I. Wasserman (Tony), president of {IDE}.

	(1995-02-15)

WATBOL

	WATerloo COBOL.

	A {COBOL} for {IBM} {MVS}.

	(1995-02-15)

Watcom C/C++

	<language, product> A compiler and development tools for
	multi-{platform}, 16 and 32-bit applications.  Watcom C/C++
	10.0 has an integrated development environment (IDE) and
	development tools.  It includes the {SOMobjects Toolkit} to
	enable access to {IBM}'s {System Object Model} (SOM) and
	{Distributed System Object Model} (DSOM).  It supports 16 bit
	{MS DOS}, {Microsoft Windows} 3.x, {OS/2} 1.x, and 32 bit
	platforms including extended DOS, OS/2 2.x, {Windows NT},
	{Win32s}, 32-bit Windows 3.x, {Novell NLM} and {AutoCAD}
	{ADS}/{ADI}.

	(1995-04-18)

Watcom International

	<company> A provider of application development tools and {IBM
	PC}-based {SQL} {database} {servers}.

	Founded in 1974, Watcom initially focused on scientific and
	engineering markets establishing itself as a supplier of
	programming and information tools worldwide, serving customers
	in 60 countries with highly regarded products such as
	{WATFOR}-77 for {mainframes}, {minicomputers} and {PCs}.

	Since the introduction of {Watcom C} in 1988, the company has
	emerged as an industry leader in optimising compilers for 16
	and 32-bit {Intel-based} {IBM PCs}.

	Moving into the {client/server} market in 1992, Watcom
	introduced {Watcom SQL}, including {SQL} {database} {servers}
	for multi-user networks and single-user {stand-alone}
	applications.  The product has since been incorporated into
	{Powersoft}'s {PowerBuilder} development environment and the
	{Powersoft Enterprise Series}.  In June, 1993, Watcom launched
	{VX*REXX}, an integrated visual development environment for
	{OS/2}.

	In February 1994, Watcom became a wholly-owned subsidiary of
	{Powersoft Corporation} which merged with {Sybase Inc.}
	on 13 February 1995.  Today the company addresses a broad
	range of application developers, including corporate {MIS}
	professionals, system integrators, {VARs} and independent
	software vendors.

	Watcom has strategic relationships with {IBM}, {Lotus},
	{Microsoft}, {Intel} and {Novell}.  Based on its academic
	roots, Watcom maintains a research relationship with the
	nearby {University of Waterloo}.

	Watcom's products include the {Watcom SQL} {databases},
	{Watcom C/C++}, and {Watcom VX*REXX} 2.1.

	Ian McPhee is President and Chief Executive Officer, David
	Boswell is Vice President of Sales and Marketing, Craig Dynes
	is Vice President of Finance and David Yach is Vice President
	of Development.

	Headquarters: Waterloo, Ontario, Canada.

	(1995-04-18)

Watcom SQL

	<database, product> A family of {databases} from {Watcom
	International}, based on scalable technology and a {SQL}
	{database engine}.  Version 4.0 adds {stored procedures} and
	{triggers}.  It is designed for environments ranging from
	large departmental networks with a diverse range of PC client
	systems, to peer-to-peer {workgroups}, to {stand-alone} PCs.
	It is available in stand-alone versions for {Microsoft
	Windows}, {Windows NT}, {OS/2} and {MS DOS}; and {multi-user}
	network server versions for {Microsoft Windows}, {Windows NT},
	{OS/2}, {NetWare NLM} and {MS DOS}.

	(1995-04-18)

Watcom VX*REXX

	<programming, tool> A visual development environment for
	creating {OS/2} applications with {graphical user interfaces}.
	It includes a project management facility, visual designer and
	an interactive {source level debugger}.  Version 2.1
	introduced the VX*REXX Client/Server Edition for
	{client/server} {GUI} application development on {OS/2} by
	incorporating {database} {objects}.  Using {IBM}'s {DRDA}
	support on OS/2, users can access {DB2} for {MVS}, DB2/400 for
	{AS/400}, and DB2/VSE and VM (SQL/DS) for {VM} and {VSE}.
	Also supported are {Watcom SQL} and {ODBC}-enabled databases.
	Since the VX*REXX visual development environment is based on
	IBM's {object-oriented} {SOM} technology, VX*REXX applications
	are open and extensible through the addition of new SOM
	objects.

	(1995-04-18)

Waterfall Model

	<programming> A {software life-cycle} or {product life-cycle}
	model, described by W. W. Royce in 1970, in which development
	is supposed to proceed linearly through the phases of
	{requirements analysis}, design, implementation, testing
	(validation), integration and maintenance.  The Waterfall
	Model is considered old-fashioned or simplistic by proponents
	of {object-oriented design} which often uses the {spiral
	model} instead.

	Earlier phases are sometimes called "upstream" and later ones
	"downstream".

	Compare: {iterative model}.

	[W. W. Royce, "Managing the Development of Large Software
	Systems", Proceedings of IEEE WESCON, August 1970].

	(1997-11-23)

water MIPS

	<jargon> Large, water-cooled computers of either today's
	{ECL}-{supercomputer} flavour or yesterday's traditional
	{mainframe} type.

	See {MIPS}

	[{Jargon File}]

	(1995-03-25)

WATFIV

	WATerloo Fortran IV.  U Waterloo, Canada.  Student-friendly
	variant of Fortran IV.

WATFOR

	WATerloo FORtran.  U Waterloo, Canada.  Student-friendly
	variant of {Fortran}.  "WATFOR - The University of Waterloo
	Fortran IV Compiler", P.W. Shantz et al, CACM 10(1):41-44 (Jan
	1967).

wav

	<multimedia, file format, filename extension> (waveform)
	/wav/, /dot wav/ A {sound} format developed by {Microsoft} and
	used extensively in {Microsoft Windows}.  Conversion tools are
	available to allow most other {operating systems} to play .wav
	files.

	.wav files are also used as the sound source in {wavetable}
	synthesis, e.g. in E-mu's {SoundFont}.  In addition, .wav
	files are also supported by some {MIDI} sequencers as add-on
	audio.  That is, pre-recorded .wav files are played back by
	control commands written in the sequence script.

	{Specification (http://qzx.com/pc-gpe/wav.txt)}.

	(1997-10-11)

WAVE

	<language, robotics> A {robotics} language.

	["WAVE: A Model-Based Language for Manipulator Control",
	R.P. Paul, Ind Robot 4(1):10-17, 1979].

	(1996-09-08)

wave a dead chicken

	<jargon> To perform a ritual in the direction of crashed
	software or hardware that one believes to be futile but is
	nevertheless necessary so that others are satisfied that an
	appropriate degree of effort has been expended.  "I'll wave a
	dead chicken over the source code, but I really think we've
	run into an OS bug".

	Compare {voodoo programming}, {rain dance}.

	[{Jargon File}]

	(1996-09-08)

wave division multiplexing

	<spelling> A common misnomer for {wavelength division
	multiplexing}.

	(2002-07-16)

Waveform Generation Language

	<testing> (WGL) A {data description language} for test program
	description.

	[Reference?  What kind of test programs?]

	(2001-05-20)

wavelength division multiplexing

	<communications> (WDM) {Multiplexing} several {Optical Carrier
	n} signals on a single {optical fibre} by using different
	wavelengths (colours) of {laser} light to carry different
	signals.

	The device that joins the signals together is known as a
	{multiplexor}, and the one that splits them apart is a
	{demultiplexor}.  With the right type of fibre you can have a
	device that does both and that ought to be called a "mudem"
	but isn't.

	The first WDM systems combined two signals and appeared around
	1985.  Modern systems can handle up to 128 signals and can
	expand a basic 9.6 {Gbps} fibre system to a capacity of over
	1000 Gbps.

	WDM systems are popular with telecommunications companies
	because they allow them to expand the capacity of their fibre
	networks without digging up the road again.  All they have to
	do is to upgrade the (de)multiplexors at each end.  However
	these systems are expensive and complicated to run.  There is
	currently no {standard}, which makes it awkward to integrate
	with older but more standard {SONET} systems.

	Note that this term applies to an optical {carrier} (which is
	typically described by its wavelength), whereas {frequency
	division multiplexing} typically applies to a {radio} carrier
	(which is more often described by frequency).  However, since
	wavelength and frequency are inversely proportional, and since
	radio and light are both forms of electromagnetic radiation,
	the distinction is somewhat arbitrary.

	See also {time division multiplexing}, {code division
	multiplexing}.

	[Is "wave division multiplexing", as in "dense wave division
	multiplexing" (DWDM) just a trendy abbreviation?]

	(2002-07-16)

wavelet

	<mathematics> A waveform that is bounded in both {frequency}
	and duration.  Wavelet tranforms provide an alternative to
	more traditional {Fourier transforms} used for analysing
	waveforms, e.g. sound.

	The {Fourier transform} converts a signal into a continuous
	series of {sine waves}, each of which is of constant frequency
	and {amplitude} and of infinite duration.  In contrast, most
	real-world signals (such as music or images) have a finite
	duration and abrupt changes in frequency.

	Wavelet transforms convert a signal into a series of wavelets.
	In theory, signals processed by the wavelet transform can be
	stored more efficiently than ones processed by Fourier
	transform.  Wavelets can also be constructed with rough edges,
	to better approximate real-world signals.

	For example, the United States Federal Bureau of Investigation
	found that Fourier transforms proved inefficient for
	approximating the whorls of fingerprints but a wavelet
	transform resulted in crisper reconstructed images.

	{SBG Austria (http://mat.sbg.ac.at/~uhl/wav.html)}.

	["Ten Lectures on Wavelets", Ingrid Daubechies].

	(1994-11-09)

wavetable

	<hardware, music> A type of {sound generator} often built in a
	{sound card}.  A wavetable contains digitised samples of real
	instrument sounds or effect (FX) sounds.  A wavetable chip
	often also contains a drum kit sound to faciliate rhythm
	accompaniment.

	A recorded wavetable sound may be edited and enhanced by
	various effects (reverb, chorus) and layered with other
	waveforms before writing it to {ROM} or {RAM}.  The latter
	type serves as user sound memory.

	A wavetable generator is typically controlled by {MIDI} input.
	When a MIDI note-on signal is detected, the output part of a
	wavetable generator generates a sound with definitive pitch,
	typically a musical note.

	Wavetable sounds are used in games and music.  The more
	realistic wavetable sounds have all but replaced the earlier
	synthetic FM (frequency modulation) sound generation in sound
	cards but to ensure compatibility with older games etc., an FM
	part is usually included.

	The best known wavetable sound generators includes the {E-mu
	8000} chip, used in {Creative Labs}' {Sound Blaster} AWE-32
	card family and in E-mu keyboards.  Other wavetable cards are
	Gravis Ultra-Sound (GUS), ESS Cards, Opti, Zoltrix and many
	Roland cards.

	{E-Mu (http://emu.com /)}.
	{AWE-32(http://edu.isy.liu.se/~d93jesno/awe32.html)}.
	{Creative Labs (http://creaf.com/)}.

	(1997-11-04)

wavetable synthesis

	{wavetable}

WaZOO

	<protocol> Warp-zillion Opus-to-Opus.  {Fidonet}'s
	{session layer} {protocol}.  Although it mentions {Opus} (a
	specific {BBS} from the 1980s), WaZOO is the session protocol
	used for the Fidonet network.  Because WaZOO is much more
	efficient than other mechanisms (e.g., {FTP}), it is sometimes
	used for automated or batch communications in other parts of
	the {Internet}.

	{(ftp://ftp.psg.com/pub/fidonet/stds/fts-0006.txt)}.

	(1995-11-16)

wb

	<chat> Welcome Back.

WBEM

	{Web-Based Enterprise Management}

WBMP

	{wireless bitmap}

WBS

	{Work Breakdown Structure}

WCDMA

	{Wideband Code Division Multiple Access}

WCL

	A {Common Lisp} implementation in a shared library by Wade
	Hennessey <wade@leland.Stanford.edu>.  WCL is not a complete
	Common Lisp, but it does have the full development environment
	including {dynamic file loading} and debugging. A modified
	version of {GDB} provides mixed-language debugging.

	Version 2.14 includes a shared library, run-time support and
	source debugger.  It requires {GNU} {GCC} 2.1 (not 2.2.2) and
	runs on {SPARC} under {SunOS}.

	{(ftp://sunrise.stanford.edu/pub/wcl/)}.  Mailing list:
	<wcl-request@sunrise.stanford.edu>.  E-mail:
	<wcl@sunrise.stanford.edu>.

	[Proceedings of the 1992 Lisp and Functional Programming
	Conference].

	(1992-10-28)

WD

	{Western Digital}

WDASM

	<tool> (Probably "Windows disassembler") An {interactive}
	{Intel 486} {disassembler} for {Windows 3.1} written by Eric
	Grass at the University of Missouri, St. Louis.  WDASM
	supports multiple disassembly formats.

	{(ftp://ftp.simtel.com/cica/win3/util/wdasm15.zip)}.

	(1993-06-01)

WDM

	{wavelength division multiplexing}

WE

	A {hypertext} {authoring} system developed at the {University
	of North Carolina}.

	(1994-11-07)

Weak Head Normal Form

	<reduction, lambda calculus> (WHNF) A {lambda expression} is
	in weak head normal form (WHNF) if it is a {head normal form}
	(HNF) or any {lambda abstraction}.  I.e. the top level is not
	a {redex}.

	The term was coined by {Simon Peyton Jones} to make explicit
	the difference between {head normal form} (HNF) and what
	{graph reduction} systems produce in practice.  A lambda
	abstraction with a reducible body, e.g.

		\ x . ((\ y . y+x) 2)

	is in WHNF but not HNF.  To reduce this expression to HNF
	would require reduction of the lambda body:

		(\ y . y+x) 2  -->  2+x

	Reduction to WHNF avoids the {name capture} problem with its
	need for {alpha conversion} of an inner lambda abstraction and
	so is preferred in practical {graph reduction} systems.

	The same principle is often used in {strict} languages such as
	{Scheme} to provide {call-by-name} evaluation by wrapping an
	expression in a lambda abstraction with no arguments:

		D = delay E = \ () . E

	The value of the expression is obtained by applying it to the
	empty argument list:

		force D = apply D ()
			= apply (\ () . E) ()
			= E

	(1994-10-31)

weakly typed

	{weak typing}

weak typing

	<programming> Strict enforcement of {type} rules but with
	well-defined exceptions or an explicit type-violation
	mechanism.

	Weak typing is "friendlier" to the programmer than {strong
	typing}, but catches fewer errors at compile time.

	{C} and {C++} are weakly typed, as they automatically {coerce}
	many types e.g. {ints} and {floats}.  E.g.

	 int a = 5;
	 float b = a;

	They also allow ignore {typedefs} for the purposes of type
	comparison; for example the following is allowed, which would
	probably be disallowed in a strongly typed language:

	 typedef int Date;    /* Type to represent a date */
	 Date a = 12345;
	 int b = a;       /* What does the coder intend? */

	C++ is stricter than C in its handling of enumerated types:

	 enum animal {CAT=0,DOG=2,ANT=3};
	 enum animal a = CAT;  /* NB The enum is optional in C++ */
	 enum animal b = 1;    /* This is a warning or error in C++ */

	(2000-07-04)

weasel

	<jargon, abuse> (Cambridge) A naive user, one who deliberately
	or accidentally does things that are stupid or ill-advised.
	Roughly synonymous with {loser}.

	[{Jargon File}]

	(1995-03-21)

WEB

	<language> {Donald Knuth}'s self-documenting {literate
	programming}, with {algorithms} and {documentation} intermixed
	in one file.  They can be separated using {Weave} and
	{Tangle}.  Versions exist for {Pascal} and {C}.  {Spiderweb}
	can be used to create versions for other languages.
	{FunnelWeb} is a production-quality literate-programming tool.

	{(ftp://princeton.edu/)}, {(ftp://labrea.stanford.edu/)}.

	["Literate Programming", D.E. Knuth, Computer J 27(2):97-111,
	May 1984].

	(1996-05-10)

Web

	<World-Wide Web> "The Web" is the {World-Wide Web}.  "A web"
	is part of it on some specific {website}.

	(1996-05-10)

Web 2.0

	<jargon> A loosely defined term for {web applications} that go
	beyond displaying individual pages of static content and allow
	a community of users to interact with the site and each other
	by adding or updating the content.

	Examples include social-networking sites like {Facebook} and
	other web-based communities, hosted services like {Google
	Docs}, web applications like {GMail}, video-sharing sites
	({Youtube}), wikis ({Wikipedia}), {web logs}, {mashups} and
	{folksonomies}.

	While Web 2.0 applications often use advanced web features
	like {AJAX} to improve the speed of interaction, the term is
	more about the type of applications than the technology used.

	The term was coined by Darcy DiNucci in 1999, though she was
	discussing designing web sites for new hardware platforms.

	(2009-11-18)

web2c

	<tool> A utility by Karl Berry <karl@claude.cs.umb.edu> to
	translate {WEB} to {C}.

	Latest version: 5-851d.

	{FTP UCI (ftp://ics.uci.edu/TeX/web2c.tar.Z)}.  {FTP Gernamy
	(ftp://ftp.th-darmstadt.de/pub/tex/src/web2c/web2c.tar.Z)}.

	(1996-05-10)

web address

	{Uniform Resource Locator}

web authoring

	<World-Wide Web> Creating {web content}, e.g. {HTML} pages,
	{images}, {JavaScript} or {Flash}, for use on the {World-Wide
	Web}.  {Web authoring} typically does not include generating
	the actual text or "copy" of web pages but is cheifly
	concerned with its presentation.

	(2009-02-06)

Web-Based Enterprise Management

	<standard, system management> (WBEM) A {DMTF} management
	{standard} using the {Common Information Model} to represent
	systems, {applications}, {networks}, {devices} and other
	managed components; developed to unify the management of
	{distributed computing} environments.

	{WBEM Home (http://dmtf.org/standards/wbem/))}

	(2005-02-19)

web browser

	<World-Wide Web> A {browser} for the {World-Wide Web}.

	(1996-03-23)

webcam

	<World-Wide Web, hardware, video> (World-Wide Web camera) Any
	video camera whose output is available for viewing via the
	{Internet} or an {intranet}.  Typically a webcam would be a
	slow-scan {CCD} video camera connected to a video capture card
	in a computer.  Images from the camera are captured
	periodically and made available on a web page.  In 1999 there
	are hundreds of webcams in operation around the world showing
	everything from bedrooms to traffic.

	[List?]

	(1999-01-11)

webcasting

	<multimedia, World-Wide Web> (From "World-Wide Web" and
	"broadcast", sometimes just called "push") {Multicasting} on
	the {Internet}.  Webcasting implies {real-time} {streaming}
	transmission of encoded {video} (or {audio}) under the control
	of the {server} to multiple recipients who all receive the
	same content at the same time.  This is in contrast to normal
	web browsing which is controlled from the {browser} by
	individual users and may take arbitrarily long to deliver a
	complete document.

	{Pointcast} and {Marimba} were early pioneers.

	{International Webcasting Association
	(http://webcasters.org/)}.

	(2003-07-08)

WebCGM

	<graphics, file format> A {Web}-oriented version of the
	{Computer Graphic Metafile} file format.

	(1999-02-16)

WebCOMAL

	{COMmon Algorithmic Language}

web cramming

	<World-Wide Web, legal> Any kind of fraudulent charges made to
	the telephone account of the victim, typically a small
	business or non-profit group, e.g. while claiming to provide
	web design or hosting for little or no charge.

	["Computer Forensics and Cyber Crime": Marjie T. Britz].

	(2007-03-16)

WebCrawler

	<World-Wide Web> A free {World-Wide Web} {search engine}
	developed by Brian Pinkerton at the {University of Washington}
	and now moved to {America Online, Inc}.  WebCrawler collects
	{URLs} by searching the {Internet} and allows users to perform
	keyword searches through a World-Wide Web {browser}.

	{(http://webcrawler.com/)}.

	(1995-11-28)

webhead

	<World-Wide Web> A compulsive or frequent user of, or
	contributor to, the {World-Wide Web}.

	(1994-07-21)

web host

	<World-Wide Web, business> A company that supplies {web
	hosting}.

	(2008-04-15)

web hosting

	<World-Wide Web, business> Running {web servers} for other
	businesses or individuals, usually as a commercial venture.
	Basic web hosting would allow customers to upload own {web
	site} content - {HTML} pages, {images}, {video} - typically
	via {FTP}, to a shared web server which other people can
	access via the {Internet}.

	A {web hosting (http://webhostingsearch.com/)} businesses may
	provide any or all of the functions required by a web site
	including: networking, HTTP server software, content storage,
	{content management}, running customer or off-the-shelf {CGI}
	programs, {ASP} scripts or other server extentions, {load
	balancing}, {streaming content}, {domain name} registration,
	{DNS} serving, {electronic mail} storage and forwarding,
	{database}, {shell account}, content design and creation,
	{search engine optimisation}, {web log} analysis and web
	applications such as on-line shopping with financial
	transaction processing.

	(2011-12-24)

weblint

	<hypertext, tool> (After {lint}) A {syntax} checker and style
	checker for {HTML}.  Weblint is a {Perl} script which does for
	HTML pages what the traditional {lint} picks does for {C}
	programs.

	Version: 1.020 (1997-12-07).

	{(http://cre.canon.co.uk/~neilb/weblint/)}.

	(1997-12-07)

web log

	{blog}

web mail

	<messaging> An {electronic mail} {user agent} that is
	accessible on the web (via {HTTP}).  {HoTMail} was one of the
	first (bought by {Microsoft}), {Google}'s {GMail} is another
	popular example.

	(2007-02-13)

webmaster

	<World-Wide Web> (Sometimes "webmistress") The alias or role
	of the person(s) responsible for the development and
	maintenance of one or more {web servers} and/or some or all of
	the {web pages} at a {website}.  The term does not imply any
	particular level of skill or mastery (see "{webmonkey}").

	The webmaster's {e-mail address} often appears on the {home
	page} of the site.  Failing that, you could try sending e-mail
	to {postmaster} (from which the term is probably derived) or
	{root} at that {host}, possibly after removing an initial
	"www.".

	(1999-04-01)

webmistress

	{webmaster}

webmonkey

	<World-Wide Web> a largely unskilled {Web} worker - one with a
	passable understanding of {HTML} but little else.

	It is often supposed that, in the New Media food chain, there
	is nothing lower than a webmonkey.  Alas, there is: people who
	barely have the skills to use FrontPage; these people are
	called "typists".

	The {B1FF} of webmonkeys is personified as {Bobo the
	Webmonkey}.

	Compare {actor/singer/waiter/webmaster}.

	And compare {sysape}, {one-banana problem}, {scratch monkey},
	{monkey up}, and {Infinite-Monkey Theorem} for other simian
	allusions.

	(1998-04-04)

WebObjects

	<operating system> {Apple Computer, Inc.}'s {application
	server} {framework} for developing dynamic {web applications}.

	WebObjects applications accept {HTTP} requests either directly
	(usually on a specific {port}) or via an adaptor that sits
	between them and the web server.  Adaptors are either {CGI}
	programs or web server plug-ins ({NSAPI} or {ISAPI}).

	The server processes special tags in {HTML} pages to produce
	dynamic but standard HTML.  Tools are provided to easily set
	and get object properties and invoke methods from these tags.
	Applications can maintain {state} over multiple {HTTP}
	request-response transactions (which are intrinsically
	stateless).  Applications can also use Apple's {Enterprise
	Object Framework} {object relational mapping} libraries for
	{object persistence} and database access.

	WebObjects was originally based on {Objective C} and a simple
	scripting language but now is more likely to be used with
	{Java}.  Versions are available for {OS X}, {Windows} and
	{Unix}.

	Apple acquired WebObjects from {NeXT}, along with {Steve
	Jobs}.

	{WebObjects Home (http://apple.com/webobjects/)}.

	(2005-01-14)

web page

	<World-Wide Web> A block of data available on the {World-Wide
	Web}, identified by a {URL}.  In the simplest, most common
	case, a web page is a file written in {HTML}, stored on the
	{server}.  It may refer to {images} which appear as part of
	the page when it is displayed by a {web browser}.  It is also
	possible for the server to generate pages dynamically in
	response to a request, e.g. using a {CGI} script.

	A web page can be in any format that the browser or a {helper
	application} can display.  The format is transmitted as part
	of the headers of the response as a {MIME} type,
	e.g. "text/html", "image/gif".

	An HTML web page will typically refer to other web pages and
	{Internet} resources by including {hypertext} links.

	A {website} often has a {home page} (usually just the
	hostname, e.g. http://foldoc.org/).  It may also have
	individual home pages for each user with an account at the
	site.

	(1999-03-21)

web proxy

	{HTTP proxy server}

Web Request Broker

	<World-Wide Web> (WRB) Part of {Oracle Corporation}'s
	{WebServer} suite of programs.  It is a high-performance,
	{multi-threaded} {HTTP} server which allows {clients}'
	requests to be directly translated into {Oracle 7} {database}
	scripts, and automatically translates the results of the query
	back into {HTML} for delivery to the client {browser}.

	{Oracle WebServer
	(http://oracle.com/products/websystem/webserver/html/ws2_info.html)}.

	(1997-03-14)

web server

	{HTTP server}

Web Service Definition Language

	<architecture> (WSDL) An {XML} format for describing network
	{services} as a set of endpoints operating on messages
	containing either "document oriented" or "procedure oriented"
	information.  The operations and messages are described
	abstractly, and then bound to a concrete network protocol and
	message format to define an endpoint.  Related concrete
	endpoints are combined into abstract endpoints
	(services).

	WSDL is typically used with {SOAP} over {HTTP} but it is
	extensible to allow description of endpoints and their
	messages independent of what message formats or network
	protocols.

	[Reference?]

	(2004-06-21)

Web Services

	<standard, programming, software> A family of {standards}
	promoted by the {W3C} for working with other business,
	{developers} and {programs} through open {protocols},
	{languages} and {APIs}, including {XML}, {Simple Object Access
	Protocol}, {WSDL} and {UDDI}.

	{W3C Web Services (http://w3.org/2002/ws)}.

	(2004-06-23)

Web Services Business Process Execution Language

	<programming> (WSBPEL, BPEL4WS) An {OASIS} technical committee
	considering ways to enable users to describe {business
	processes} as {web services} and define how they can be
	connected to accomplish specific tasks.

	{(http://oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel)}.

	(2006-08-15)

website

	<World-Wide Web> (Or "website") Any computer on the
	{Internet} running a {World-Wide Web} {server} process.  A
	particular website is usually identified by the {hostname}
	part of a {URL}.  Multiple hostnames may actually map to the
	same computer in which case they are known as "{virtual
	servers}".

	(2005-07-12)

web smith

	<World-Wide Web> A person who creates {web pages}.  Not
	necessarily the same as a {webmaster}.

	(1997-02-05)

Webster

	1. {Webster's Dictionary}.

	2. A {World-Wide Web} {browser} for the {Acorn} {Archimedes}.
	The {HTML} files may reside locally or be retrieved using a
	"fetcher".  An {HTTP} fetcher for use with {KA9Q} is supplied.

	Version: 0.05.

	{HENSA Gopher
	(gopher://micros.hensa.ac.uk:70/11/micros/arch/riscos/c/c164)}.
	{Demon FTP
	(ftp://ftp.demon.co.uk/pub/archimedes/developers/)}.

	(1995-02-21)

Webster's Dictionary

	{Hypertext interface
	(http://c.gp.cs.cmu.edu:5103/prog/webster)}.

	(1996-04-10)

wedged

	1. To be stuck, incapable of proceeding without help.  This is
	different from having crashed.  If the system has crashed, it
	has become totally non-functioning.  If the system is wedged,
	it is trying to do something but cannot make progress; it may
	be capable of doing a few things, but not be fully
	operational.  For example, a process may become wedged if it
	{deadlocks} with another (but not all instances of wedging are
	deadlocks).  See also {gronk}, {locked up}, {hosed}.  2. Often
	refers to humans suffering misconceptions.  "He's totally
	wedged - he's convinced that he can levitate through
	meditation."  3. [Unix] Specifically used to describe the
	state of a TTY left in a losing state by abort of a
	screen-oriented program or one that has messed with the line
	discipline in some obscure way.

	There is some dispute over the origin of this term.  It is
	usually thought to derive from a common description of
	recto-cranial inversion; however, it may actually have
	originated with older "hot-press" printing technology in which
	physical type elements were locked into type frames with
	wedges driven in by mallets.  Once this had been done, no
	changes in the typesetting for that page could be made.

	[{Jargon File}]

wedgie

	(Fairchild) A bug.  Probably related to {wedged}.

wedgitude

	/wedj'i-t[y]ood/ The quality or state of being {wedged}.

	[{Jargon File}]

Weeble

	/wee'b*l/ An egg-shaped plastic toy person with a weight in
	the bottom so that, if tipped over, they would right
	themselves and stand up again.  They were popular in the UK
	during the 1970s and were famous for the slogan "Weebles
	wobble but they don't fall down", unlike some computers
	(pretty tenuous link with computing).

	(1994-11-29)

weeds

	1. Refers to development projects or {algorithms} that have no
	possible relevance or practical application.  Comes from "off
	in the weeds".  Used in phrases like "lexical analysis for
	{microcode} is serious weeds."

	2. At {CDC}/{ETA} before its demise, the phrase "go off in the
	weeds" was equivalent to {IBM}'s {branch to Fishkill} and
	mainstream hackerdom's {jump off into never-never land}.

	[{Jargon File}]

weenie

	1. [on BBSes] Any of a species of {luser} resembling a less
	amusing version of {BIFF} that infests many {BBS}es.  The
	typical weenie is a teenage boy with poor social skills
	travelling under a grandiose {handle} derived from fantasy or
	heavy-metal rock lyrics.  Among {sysops}, "the weenie problem"
	refers to the marginally literate and profanity-laden
	{flamage} weenies tend to spew all over a newly-discovered
	BBS.

	Compare {spod}, {computer geek}, {terminal junkie}.

	2. Among hackers, when used with a qualifier (for example, as
	in {Unix weenie}, {VMS} weenie, {IBM} weenie) this can be
	either an insult or a term of praise, depending on context,
	tone of voice, and whether or not it is applied by a person
	who considers him or herself to be the same sort of weenie.
	It implies that the weenie has put a major investment of time,
	effort and concentration into the area indicated; whether this
	is good or bad depends on the hearer's judgment of how the
	speaker feels about that area.  See also {bigot}.

	3. The {semicolon} character, ";" ({ASCII} 59).

	(1995-01-18)

Weenix

	/wee'niks/ An {ITS} fan's derogatory term for {Unix}, derived
	from {Unix weenie}.  According to one noted ex-{ITS}er, it is
	"the operating system preferred by Unix Weenies: typified by
	poor modularity, poor reliability, hard file deletion, no file
	version numbers, case sensitivity everywhere, and users who
	believe that these are all advantages".  Some {ITS} fans
	behave as though they believe Unix stole a future that
	rightfully belonged to them.

	[{Jargon File}]

	(1995-01-18)

weighted search

	<information science> A search based on frequencies of the
	{search terms} in the documents being searched.  Weighted
	search is often used by {search engines}.  It produces a
	numerical score for each possible document.  A document's
	score depends on the frequency of each {search term} in that
	document compared with the overall frequency of that term in
	the entire corpus of documents.  A common approach is called
	tf.idf which stands for term frequency * inverse document
	frequency.  Term frequency means "the more often a term occurs
	in a document, the more important it is in describing that
	document."
	{http://ciir.cs.umass.edu/cmpsci646/ir4/tsld034.htm} Inverse
	document frequency means the more documents a term appears in,
	the less important the term is.

	A simple weighted search is just a list of search terms,
	for example: car automobile

	Weighted search is often contrasted with {boolean search}.
	It is possible to have a search that syntactically is a
	boolean search but which also does a weighted search.

	See also {query expansion}.

	For a detailed technical discussion see Chapter 5,
	"Search Strategies", in the reference below.

	[{"Information Retrieval", C. J. van Rijsbergen,
	(http://dcs.gla.ac.uk/Keith/Chapter.5/Ch.5.html)}].

	(1999-08-28)

well-behaved

	1. [primarily {MS-DOS}] Said of software conforming to system
	interface guidelines and standards.  Well-behaved software
	uses the {operating system} to do chores such as keyboard
	input, allocating memory and drawing graphics.  Oppose
	{ill-behaved}.

	2. Software that does its job quietly and without
	counterintuitive effects.  Especially said of software having
	an interface spec sufficiently simple and well-defined that it
	can be used as a {tool} by other software.  See {cat}.

	[{Jargon File}]

well-connected

	Said of a computer installation, asserts that it has reliable
	{electronic mail} links with the network and/or that it relays
	a large fraction of available {Usenet} newsgroups.
	"Well-known" can be almost synonymous, but also implies that
	the site's name is familiar to many (due perhaps to an archive
	service or active {Usenet} users).

well-known port

	<networking> A {TCP or {UDP} {port} with a number in the range
	0-1023 (originally 0-255).  The well-known port numbers are
	assigned by the {IANA} and on most systems can only be used by
	system (or root) processes or by programs executed by
	privileged users.

	(2002-10-06)

well-ordered set

	<mathematics> A set with a {total ordering} and no infinite
	descending {chains}.  A total ordering "<=" satisfies

		x <= x

		x <= y <= z  =>  x <= z

		x <= y <= x  =>  x = y

		for all x, y: x <= y or y <= x

	In addition, if a set W is well-ordered then all non-empty
	subsets A of W have a least element, i.e. there exists x in A
	such that for all y in A, x <= y.

	{Ordinals} are {isomorphism classes} of {well-ordered sets},
	just as {integers} are {isomorphism classes} of finite sets.

	(1995-04-19)

WEP

	{Wireless Encryption Protocol}

Wesley Clark

	<person> One of the designers of the {Laboratory Instrument
	Computer} at {MIT} who subsequently had a quiet hand in many
	seminal computing events, such as the development of the
	{Internet}, the first really good description of the
	{metastability} problem in computer logic.

	{(http://pretext.com/mar98/features/story1.htm)}.

	(1999-03-29)

Western Digital Corporation

	<company> A company founded in 1970 as a specialised
	semiconductor manufacturer, which today manufactures and sells
	{microcomputer} products including small form factor {hard
	disk drives} for {personal computers}, {integrated circuits}
	and circuit boards for graphics, storage, communications,
	{battery management}, and logic functions.

	{(http://wdc.com/)}.

	(1995-04-12)

Westmount

	<company> A Dutch software engineering vendor of {RTEE} and
	other products.

	(1998-04-27)

wetware

	<jargon> /wet'weir/ (Probably from the novels of Rudy Rucker,
	or maybe Stanislav Lem) The human nervous system, as opposed
	to electronic computer {hardware} or {software}.  "Wetware has
	7 plus or minus 2 temporary {registers}."  Also, human beings
	(programmers, operators, administrators) attached to a
	computer system, as opposed to the system's hardware or
	software.

	See {liveware}, {meatware}.

	[True origin?  Dates?]

	[{Jargon File}]

	(1996-08-19)

wf

	<networking> The {country code} for the Wallis and Futuna
	Islands.

	(1999-01-27)

WFL

	Work Flow Language.  Burroughs, ca 1973.  A job control
	language for the B6700/B7700 under MCP.  WFL was a compiled
	block-structured language similar to ALGOL 60, with
	subroutines and nested begin-end's.

	["Work Flow Management User's Guide", Burroughs Manual
	5000714, 1973].

	["Burroughs B6700/B7700 Work Flow Language", R.M. Cowan in
	"Command Languages", C. Unger ed, N-H 1975].

	(1996-01-18)

WfMC

	{Workflow Management Coalition}

WFW

	{Windows for Workgroups}

WFWG

	{Windows for Workgroups}

WG

	{Working Group}

WGL

	{Waveform Generation Language}

whack

	According to arch-hacker James Gosling, to "...modify a
	program with no idea whatsoever how it works." (See
	{whacker}.)  It is actually possible to do this in nontrivial
	circumstances if the change is small and well-defined and you
	are very good at {glark}ing things from context.  As a trivial
	example, it is relatively easy to change all "stderr" writes
	to "stdout" writes in a piece of C filter code which remains
	otherwise mysterious.

	[{Jargon File}]

whacker

	[University of Maryland: from {hacker}] 1. A person, similar
	to a {hacker}, who enjoys exploring the details of
	programmable systems and how to stretch their capabilities.
	Whereas a hacker tends to produce great hacks, a whacker only
	ends up whacking the system or program in question.  Whackers
	are often quite egotistical and eager to claim {wizard}
	status, regardless of the views of their peers.  2. A person
	who is good at programming quickly, though rather poorly and
	ineptly.

whales

	{like kicking dead whales down the beach}

whalesong

	The peculiar clicking and whooshing sounds made by a {PEP}
	{modem} such as the {Telebit} {Trailblazer} as it tries to
	synchronise with another PEP modem for their special
	high-speed mode.  This sound isn't anything like the normal
	two-tone handshake between conventional modems and is
	instantly recognizable to anyone who has heard it more than
	once.  It sounds, in fact, very much like whale songs.  This
	noise is also called "the moose call" or "moose tones".

whatis

	<tool> 1. A {Unix} command which searches for a given string
	in the headings of all {man} pages.

	2. A command which searches the {archie} {Software Description
	Database} for a given string, with case being ignored.

	(1995-11-12)

What's a spline?

	[XEROX PARC] This phrase expands to: "You have just used a
	term that I've heard for a year and a half, and I feel I
	should know, but don't.  My curiosity has finally overcome my
	guilt."  The PARC lexicon adds "Moral: don't hesitate to ask
	questions, even if they seem obvious."

	[{Jargon File}]

What You Get Is What You Never Thought You Had

	<jargon> (WYGIWYNTYH) A jibe at {WYSIWYG} systems that fail in
	their stated aim by rendering documents differently on screen
	and on paper.

	(1999-06-15)

What You See Is All You Get

	<jargon> (WYSIAYG) /wiz'ee-ayg/ Describes a user interface
	under which "What You See Is *All* You Get"; an unhappy
	variant of {WYSIWYG}.  Visual, "{point-and-drool interfaces}"
	are easy to learn but often lack depth; they often frustrate
	advanced users who would be better served by a command-style
	interface.  When this happens, the frustrated user has a
	WYSIAYG problem.

	This term is most often used of editors, {word processors},
	and document formatting programs.  WYSIWYG "{desktop
	publishing}" programs, for example, are a clear win for
	creating small documents with lots of fonts and graphics in
	them, especially things like newsletters and presentation
	slides.  When typesetting book-length manuscripts, on the
	other hand, scale changes the nature of the task; one quickly
	runs into WYSIAYG limitations, and the increased power and
	flexibility of a command-driven formatter like {TeX} or
	{Unix}'s {troff} becomes not just desirable but a necessity.

	Compare {YAFIYGI}.

	(1999-03-03)

What You See Is What You Get

	<jargon> (WYSIWYG) /wiz'ee-wig/ Describes a user interface for
	a document preparation system under which changes are
	represented by displaying a more-or-less accurate image of the
	way the document will finally appear, e.g. when printed.  This
	is in contrast to one that uses more-or-less obscure commands
	that do not result in immediate visual feedback.

	True WYSIWYG in environments supporting multiple fonts or
	graphics is rarely-attained; there are variants of this term
	to express real-world manifestations including WYSIAWYG (What
	You See Is *Almost* What You Get) and WYSIMOLWYG (What You See
	Is More or Less What You Get).  All these can be mildly
	derogatory, as they are often used to refer to dumbed-down
	{user-friendly} interfaces targeted at non-programmers; a
	hacker has no fear of obscure commands (compare {WYSIAYG}).
	On the other hand, {Emacs} was one of the very first WYSIWYG
	editors, replacing (actually, at first overlaying) the
	extremely obscure, command-based {TECO}.

	See also {WIMP}.

	(1999-03-03)

wheel

	[slang "big wheel" for a powerful person] A person who has an
	active {wheel bit}.  "We need to find a wheel to unwedge the
	hung tape drives."  (See {wedged}).

	[{Jargon File}]

wheel bit

	A privilege bit that allows the possessor to perform some
	restricted operation on a {time-sharing} system, such as read
	or write any file on the system regardless of protections,
	change or look at any address in the running monitor, crash or
	reload the system, and kill or create jobs and user accounts.
	The term was invented on the TENEX operating system, and
	carried over to TOPS-20, XEROX-IFS, and others.  The state of
	being in a privileged logon is sometimes called "wheel mode".
	This term entered the Unix culture from TWENEX in the
	mid-1980s and has been gaining popularity there (especially at
	university sites).  See also {root}.

wheel wars

	[Stanford University] A period in {larval stage} during which
	student hackers hassle each other by attempting to log each
	other out of the system, delete each other's files, and
	otherwise wreak havoc, usually at the expense of the lesser
	users.

	[{Jargon File}]

When It's Done

	<jargon> A manufacturer's non-answer to questions about
	product availability.  This answer allows the manufacturer to
	pretend to communicate with their customers without setting
	themselves any deadlines or revealing how behind schedule the
	product really is.  It also sounds slightly better than "We
	don't know".

	(1999-08-22)

Whetstone

	<benchmark> The first major {synthetic benchmark} program,
	intended to be representative for numerical ({floating-point}
	intensive) programming.  It is based on statistics gathered by
	Brian Wichmann at the {National Physical Laboratory} in
	England, using an {Algol 60} {compiler} which translated Algol
	into instructions for the imaginary Whetstone machine.  The
	compilation system was named after the small town of Whetstone
	outside the City of Leicester, England, where it was designed.

	The later {dhrystone} benchmark was a pun on Whetstone.

	Source code: {C
	(ftp://netlib.att.com/netlib/benchmark/whetstonec.Z)}, {single
	precision Fortran
	(ftp://netlib.att.com:/netlib/benchmark/whetstones.Z)},
	{double precision Fortran
	(ftp://netlib.att.com:/netlib/benchmark/whetstoned.Z)}.

	["A Synthetic Benchmark", H.J. Curnow and B.A. Wichmann, The
	Computer Journal, 19,1 (1976), pp. 43-49].

	(1994-11-14)

Which Stands For Nothing

	<language> (WSFN) A beginner's language with emphasis on
	graphics produced by {Atari} in 1983 for {Atari} home
	computers.  There is also {Advanced WSFN}.

	(1996-06-12)

while

	{while loop}

while loop

	<programming> The {loop} construct, found in nearly all
	{procedural languages}, that executes one or more instructions
	(the "loop body") repeatedly so long as some {condition}
	evaluates to true.  In contrast to a {repeat loop}, the loop
	body will not be executed at all if the condition is false on
	entry to the while.

	For example, in {C}, a while loop is written

		while (<expr>) <statement>;

	where <expr> is any expression and <statement> is any
	statement, including a compound statement within braces
	"{..}".

	A {for loop}, e.g. in the {C} language, extends the while loop
	syntax to collect pre-loop initialisation and loop-end logic
	into the beginning of the statement.

	Perl provides the "until" loop that loops until the loop
	condition is true.

	(2009-10-07)

Whirlwind

	<computer> An early computer from the {MIT Research Laboratory
	for Electronics}.

	Whirlwind used {electrostatic memory} and ran {Laning and
	Zierler} (1953); and {ALGEBRAIC}, {COMPREHENSIVE} and {SUMMER
	SESSION} (all 1959).

	[Details, reference?]

	(2002-06-03)

White Book

	1. <language, publication> {K&R}.

	2. <language, publication, file format> The fourth book in
	{Adobe Systems, Inc.}'s {PostScript} series, describing the
	previously-secret format of {Type 1} {fonts}.  The other three
	official guides are known as the {Blue Book}, the {Green
	Book}, and the {Red Book}.

	["Adobe Type 1 Font Format, version 1.1", Addison-Wesley, 1990
	(ISBN 0-201-57044-0)].

	3. <hardware, standard> {White book CD-ROM}.

	[{Jargon File}]

	(1996-12-03)

White book CD-ROM

	<hardware, standard> A more open {CD-ROM} {standard} than
	{Green Book CD-ROM}.  All films mastered on CD-ROM after March
	1994 use White Book.  Like Green Book, it is {ISO 9660}
	compliant, uses mode 2 form 2 addressing and can only be
	played on a {CD-ROM} drive which is {XA} (Extended
	Architecture) compatible.  White book CDs are labelled "Video
	CD".

	(1994-11-02)

white box testing

	<programming> (Or "clear", "glass", "open") Software testing
	approaches that examine the program structure and derive test
	data from the program logic.

	Structural testing is sometimes referred to as clear-box
	testing since white boxes are considered opaque and do not
	really permit visibility into the code.

	(1996-05-10)

White pages

	A directory service for locating individuals by name (by
	analogy with the telephone directory).  The {Internet}
	supports several {databases} that contain basic information
	about users, such as {electronic mail} addresses, telephone
	numbers and postal addresses.  These databases can be searched
	to get information about particular individuals.  See
	{Knowbot}, {Netfind}, {whois}, {X.500}, {finger}.

white paper

	<publication> A short treatise whose purpose is to educate
	industry customers.  See, e.g., {Architecture Neutral
	Distribution Format}.

	(1997-10-24)

white point

	<graphics> A set of three {colour coordinates} that define the
	colour white in {image processing} applications.

	(2008-03-10)

whitespace

	<character> (From the colour it produces on white paper) Any
	contiguous sequence of {spaces}, {tabs}, {carriage returns},
	and/or {line feeds}.  Whitespace might also possibly include
	{form feed} characters.  The term is common on {Unix}.

	See also {non-printing character}.

	(1996-09-04)

white trash

	<abuse, hardware> A pejorative term for {Intel}-based
	{microcomputers}, used by {NeXT} users at UK law firm
	Linklaters & Paines to contrast these machines with their
	black NeXT boxes.

	(1996-09-04)

WHNF

	{weak head normal form}

whois

	An {Internet} directory service for looking up names of people
	on a remote server.  Many servers respond to {TCP} queries on
	{port} 43, in a manner roughly analogous to the {DDN} {NIC}
	whois service described in {RFC} 954.  Other sites provide
	this directory service via the {finger} {protocol} or accept
	queries by {electronic mail} for directory information.  On
	{Unix} the client command is

		whois -h server_name person_name

	You can also type "telnet server_name 43" and then type the
	person's name on a separate line.  For a list of whois
	servers, FTP/Gopher: sipb.mit.edu.  Or

		whois -h sipb.mit.edu whois-servers

	As the above command demonstrates, whois can find information
	about things other than users, e.g. domains, networks and
	hosts.

	See also {finger}, {X.500}, {white pages}.

Whopper

	{WarGames}

WHQL

	{Windows Hardware Quality Labs}

WIBNI

	({Bell Labs}) Wouldn't It Be Nice If.

	What most requirements documents and specifications consist
	entirely of.

	Compare {IWBNI}.

	[{Jargon File}]

	(1994-11-24)

WIC

	{WAN Interface Card}

Wide Area Information Servers

	<networking, information science> (WAIS) A distributed
	information retrieval system.  WAIS is supported by {Apple
	Computer}, {Thinking Machines} and Dow Jones.  {Clients} are
	able to retrieve documents using keywords.  The search returns
	a list of documents, ranked according to the frequency of
	occurrence of the keyword(s) used in the search.  The client
	can retrieve text or {multimedia} documents stored on the
	{server}.  WAIS offers simple {natural language} input,
	indexed searching for fast retrieval, and a "relevance
	feedback" mechanism which allows the results of initial
	searches to influence future searches.  It uses the {ANSI
	Z39.50} service.  {Public domain} implementations are
	available.

	Other information retrieval systems include {archie},
	{Gopher}, {Prospero}, and {World-Wide Web}.

	{Usenet} newsgroup: {news:comp.infosystems.wais}.

	{Telnet (telnet://sunsite.unc.edu)}.

	(1995-03-13)

Wide Area Network

	<networking> (WAN) A {network}, usually constructed with
	{serial lines}, extending over distances greater than one
	kilometre.

	Compare {local area network}, {metropolitan area network}.

	(1994-11-24)

Wide Area Telecommunications Service

	<communications> (WATS) A special service provided by an
	{inter-exchange carrier} that allows a customer to use a
	specific {trunk} to make calls to specific geographic zones or
	to receive calls at a specified number at a discounted price.

	(2006-05-01)

Wideband ATM

	<networking> An enhanced form of {ATM} networking that
	transfers digital data over {local area networks}, originally
	at 0.96 {Gbps}, now (Aug 1996) at 1.0 Gbps.

	(1996-08-23)

Wide SCSI

	<hardware, standard> A variant on the {SCSI-2} interface.  It
	uses a 16-bit bus - double the width of the original {SCSI}-1
	- and therefore cannot be connected to a SCSI-1 bus.  It
	supports transfer rates up to 20 MB/s, like {Fast SCSI}.

	There is also a SCSI-2 definition of Wide-SCSI with a 32 bit
	data bus.  This allows up to 40 megabytes per second but is
	very rarely used because it requires a large number of wires
	(118 wires on two connectors).  Thus Wide SCSI usually means
	16 bit-wide SCSI.

	(1995-04-21)

widget

	1. A meta-thing.  Used to stand for a real object in didactic
	examples (especially database tutorials).  Legend has it that
	the original widgets were holders for buggy whips.  "But
	suppose the parts list for a widget has 52 entries..."

	2. [possibly evoking "window gadget"] In graphical user
	interfaces, a combination of a graphic symbol and some program
	code to perform a specific function.  E.g. a scroll-bar or
	button.  Windowing systems usually provide widget libraries
	containing commonly used widgets drawn in a certain style and
	with consistent behaviour.

	[{Jargon File}]

wi-fi

	<networking> Either of two different incompatible radio-based
	{LAN} {protocols}, namely {802.11b} (which speaks {DSSS} at
	2.4GHz) and {802.11a} (which speaks {OFDM} at 5GHz).

	The term was invented by the marketing departments of wi-fi
	equipment manufacturers.  It is, notionally, short for
	"wireless fidelity", on the analogy of hi-fi for "high
	fidelity" audio.

	(2003-09-02)

Wi-Fi Protected Access

	<networking, security> (WPA) A security scheme for {wireless
	networks}, developed by the networking industry in response to
	the shortcomings of {Wired Equivalent Privacy} (WEP).  WPA
	uses {Temporal Key Integrity Protocol} (TKIP) {encryption} and
	provides built-in {authentication}, giving security comparable
	to {VPN} tunneling with WEP, with the benefit of easier
	administration and use.

	{WPA-PSK} is a simplified form of WPA.

	(2007-05-11)

Wi-Fi Protected Access Pre-Shared Key

	<networking, security> (WPA-PSK) A simplified but still
	powerful form of {WPA}, most suitable for home {wireless
	networking}.  As with {WEP}, you set a static key or pass
	phrase, but WPA-PSK uses {TKIP} to automatically change the
	keys periodically, making it much more difficult to break the
	encryption.

	(2007-05-11)

wiggles

	[scientific computation] In solving partial differential
	equations by finite difference and similar methods, wiggles
	are sawtooth (up-down-up-down) oscillations at the shortest
	wavelength representable on the grid.  If an algorithm is
	unstable, this is often the most unstable waveform, so it
	grows to dominate the solution.  Alternatively, stable (though
	inaccurate) wiggles can be generated near a discontinuity by a
	Gibbs phenomenon.

wiki

	<communications> Any collaborative {website} that users can
	easily modify via the web, often without restriction.  A wiki
	allows anyone, using a {web browser}, to create, edit or
	delete content that has been placed on the site, including the
	work of other authors.

	Text is entered using some simple {mark-up language} which is
	then rendered as {HTML}.  A feature common to many of the
	different implementations is that any word in mixed case
	LikeThis (a "wikiword") is rendered as a link to a page of
	that name, which may or may not exist.

	Wikis work surprisingly well, with the most famous example,
	{Wikipedia}, having become one of the most popular sites on
	the web.  Contributors tend to be more numerous and more
	persistent than vandals, and old versions of pages are always
	available.  Like many simple concepts, open editing has
	profound effects on usage.  Allowing everyday users to create
	and edit any page encourages democratic use of the web and
	promotes content composition by nontechnical users.

	In contrast, a {web log}, typically authored by an individual,
	does not allow visitors to change the original posted
	material, only add comments.

	Wiki wiki means "quick" in Hawaiian. The first wiki was
	created by {Ward Cunningham} in 1995.

	{wiki.org (http://wiki.org/)}.

	(2010-05-07)

WiLAN

	{wireless local area network}

Wild_LIFE

	Logic, Inheritance, Functions and Equations

	parts: interpreter, manual, tests, libraries, examples

	Paradise Project, DEC Paris Research Laboratory.

	{(ftp://gatekeeper.dec.com/pub/plan/Life.tar.Z)} - Wild_LIFE
	interpreter from Paradise project at DEC's Paris Research Lab

	LIFE is an experimental programming language with a powerful
	facility for structured type inheritance.  It reconciles
	styles from functional programming, logic programming, and
	object-oriented programming.  LIFE implements a constraint
	logic programming language with equality (unification) and
	entailment (matching) constraints over order-sorted feature
	terms.  The Wild_LIFE interpreter has a comfortable user
	interface with incremental query extension ability.  It
	contains an extensive set of built-in operations as well as an
	X Windows interface.

	A semantic superset of LOGIN and LeFun.  Syntax is similar to
	prolog.

	bugs:		<life-bugs@prl.dec.com>

	ports:		MIPS-Ultrix

	Mailing list:	life-request@prl.dec.com

	E-mail: Peter Van Roy <vanroy@prl.dec.com>

	(1992-12-14)

wild card

	<operating system, programming, text> (From card games in
	which certain cards, often the joker, can act as any other
	card) A special character or character sequence which matches
	any character in a string comparison, like ellipsis ("...") in
	ordinary written text.

	In {Unix} filenames '?' matches any single character and '*'
	matches any zero or more characters.  In {regular
	expressions}, '.' matches any one character and "[...]"
	matches any one of the enclosed characters.

	See also {Backus-Naur Form}.

	(1997-07-16)

Wilf Hey

	<person> The person who originally developed {Report Program
	Generator} and coined the phrase GIGO (garbage in: garbage
	out).

	In 2004, after more than forty years in computing, he was
	writing for {PC Plus} magazine in the UK and doing Wilf's
	programmers workshop amongst other things.  He died on
	2007-01-01 after a long illness.

	(2007-01-06)

William Gibson

	<person> Author of {cyberpunk} novels such as Neuromancer
	(1984), Count Zero (1986), Mona Lisa Overdrive, and Virtual
	Light (1993).

	Neuromancer, a novel about a computer {hacker}/criminal
	"cowboy" of the future helping to free an {artificial
	intelligence} from its programmed bounds, won the Hugo and
	Nebula science fiction awards and is credited as the seminal
	cyberpunk novel and the origin of the term "{cyberspace}".

	Gibson does not have a technical background and supposedly
	purchased his first computer in 1992.

	(1996-06-11)

William Hamilton

	<person> A mathematician who posed {Hamilton's problem}.

	{Biography
	(http://gregory.dcs.st-and.ac.uk/~history/ShortBiogs/H.html#Hamilton)}.

	[Summary?]

	(1995-11-02)

William Joy

	<person> (Bill Joy) Author of the {C shell} and {vi}, he was
	also one of the people at the {University of California at
	Berkeley} responsible for the {Berkeley Software Distribution}
	of {Unix}.  He also wrote a book on {Unix}.

	He was a co-founder of {Sun Microsystems, Inc.}, where he is
	still (1997) Vice-President of Research.  Among his many
	projects for Sun have been helping to design the {Network File
	System} and the {SPARC} architechture.

	{Biography
	(http://sun.com/aboutsun/media/ceo/mgt_joy.html)}.

	See also {dinosaur}.

	[Book ref?  E-mail?]

	(2000-10-30)

WIMP

	<operating system> Windows, Icons, Menus and Pointers
	(or maybe Windows, Icons, Mouse, {Pull-down menus}).

	The style of {graphical user interface} invented at {Xerox
	PARC}, popularised by the {Apple Macintosh} and now available
	in other varieties such as the {X Window System},
	{OSF}/{Motif}, {NeWS}, {RISC OS} and {Microsoft Windows}.

	See {menuitis}, {user-obsequious}, {window system}.

	(2007-09-12)

WIMP environment

	{WIMP}

win

	<jargon> (Said of people, computers, {algorithms}, programs)
	(To be) a success at a given task.

	E.g. "{WYSIWYG} is a clear win for small documents".

	"winnitude" is the quality that something which wins has.
	"winning" is often (ab)used as an adjective.

	Synonyms: {cuspy}, {elegant}.  Antonym: {lose}.  Compare
	{lossy}, {lossless}.

	[{Jargon File}]

	(1996-09-08)

Win2K

	{Windows 2000}

Win32

	<programming> An {application programming interface} that is
	common to all {Microsoft}'s 32-bit Windows {operating
	systems}.  These currently include: {Windows 95}, {Windows
	98}, {Windows NT} and {Windows CE}.

	[Relationship with {Win32s}?]

	(1997-12-20)

Win32s

	<operating system> A free extension for {Microsoft Windows},
	released by {Microsoft}.  Win32s is a software layer on top of
	Windows which allows {32-bit applications} (e.g. {Mosaic}) to
	run on Windows.  Both stand-alone Windows and {Windows for
	Workgroups} run as 16 bit, and both can use Win32s to run
	32-bit applications.

	(1996-07-08)

Win 95

	{Windows 95}

Win 98

	{Windows 98}

winchester

	<hardware> An informal generic term for floating head
	{magnetic disk} drives in which the read-write head planes
	over the disk surface on an air cushion.

	The name arose because the original 1973 engineering prototype
	for what later became the {IBM 3340} featured two 30-megabyte
	volumes; 30--30 became "Winchester" when somebody noticed the
	similarity to the common term for a famous Winchester rifle
	(in the latter, the first 30 referred to caliber and the
	second to the grain weight of the charge).

	[{Jargon File}]

	(1994-12-06)

windowing

	{window system}

windowing system

	{window system}

window manager

	<operating system> A part of a {window system} which arranges
	windows on a screen.  It is responsible for moving and
	resizing windows, and other such functions common to all
	applications.

	Examples from the {X Window System} are {twm}, {gwm}, {olwm}.

	(1994-12-06)

Window RAM

	{Window Random Access Memory}

Window Random Access Memory

	<hardware, storage> (WRAM, Window RAM) A kind of {RAM} which
	is faster than {VRAM}.

	WRAM is used in the Matrox MGA Millennium {video display card}
	and almost certainly elsewhere.

	[More details?]

	(1996-06-05)

Windows

	<operating system> See {Microsoft Windows}, {Windows NT}.

	(1997-11-23)

Windows 1

	<operating system> The first incarnation of {Microsoft
	Windows}, released in 1985.  It took a total of 55
	programmer-years to develop, and only allowed tiled windows.

	(1996-07-08)

Windows 2

	<operating system> The second version of {Microsoft Windows},
	released in 1987.  Windows 2 had considerably more features
	than {Windows 1}, such as overlapping windows and {icons}.
	When {Windows/386} was released, Windows 2 was renamed
	Windows/286.

Windows 2000

	<operating system> (Win2k, W2k, NT5, Windows NT 5.0) An
	{operating system} developed by {Microsoft Corporation} for
	{PCs} and {servers}, as the successor to {Windows NT 4}.0.
	Early {beta} versions were referred to as "Windows NT 5.0".
	Windows 2000 was officially released on 2000-02-17.

	Windows 2000 is most commonly used on {Intel} {x86} and
	{Pentium} processors, with a {DEC Alpha} version rumoured.
	Unlike Windows NT 4.0, Windows 2000 is not available for
	{PowerPC} or {MIPS}.

	Windows 2000's {user interface} is very similar to {Windows
	95} or Windows NT 4.0 with integrated {Internet Explorer}, or
	to {Windows 98}.

	It is available in four flavours:

	- Professional: the {client} version, meant for desktop
	{workstations}, successor to Windows NT Workstation.

	- Server: "entry-level" server, designed for small
	deployments, and departmental file, print, or {intranet}
	servers.

	- Advanced Server: high throughput, larger scale servers
	and applications, and small to medium scale {websites}.

	- Data Center Server: software for large-scale server
	{clusters} (in development as of 2000-03-14).

	New features in Windows 2000 include:

	- {Active Directory}.

	- Greatly improved built-in security mechanisms, including
	{Kerberos}-based {authentication}, {public key} support, an
	{encrypting} {file system}, and {IPsec} support.

	- Integrated {web browser} - {Internet Explorer} 5.0.

	- Integrated {web server} - {IIS} 5.0

	- Terminal services for displaying application interfaces on
	remote computers (similar to {X-Windows}).

	- File protection that prevents user programs from
	accidentally deleting or overwriting critical system files.

	- Improved hardware support, including {Plug-and-Play}, {DVD},
	{IEEE-1394} (FireWire), {USB}, {infra-red}, {PCMCIA}, {ACPI},
	{laptop computers}.

	- Improved user interface, including a single point to control
	the entire system.

	- Improved management tools, including remote administration.

	Minimum system requirements, according to Microsoft, are
	{Pentium}-133 {MHz} {CPU}, 64 {MB} {RAM}, 650 {MB} of {hard
	disk} space.  These are for W2K Professional, others require
	more.

	Many {operating systems} compete with Windows 2000, including
	the {Apple} {MacOS}, {Linux}, {FreeBSD}, {OpenBSD}, {NetBSD},
	{Sun} {Solaris}, {IBM} {AIX}, {Hewlett-Packard} {HP-UX}, {SGI}
	{Irix}.  Novell's NDS also provides a service similar to
	Active Directory.

	Windows 2000 will be followed by {Windows XP} Professional and
	{Windows 2002}.

	{(http://microsoft.com/windows2000/)}.

	{Usenet} newsgroups: {(news:microsoft.public.windows2000)},
	{(news:comp.os.ms-windows)}.

	(2002-01-28)

Windows/286

	{Windows 2}

Windows 2K

	{Windows 2000}

Windows 3.0

	<operating system> A complete rework of {Microsoft Windows}
	with many new facilities such as the ability to address memory
	beyond 640k.  It was released in 1990, and vigorous
	development of applications by third parties helped Microsoft
	sell over 10 million copies.

	(1996-07-08)

Windows 3.1

	<operating system> A version of {Microsoft Windows} with many
	improvements over {Windows 3.0}, including {True Type Fonts},
	{Object Linking and Embedding} (OLE) and {Mouse Trails} for
	use with {LCD} Devices.  It also saw the loss of {Real Mode},
	which meant it would no longer run on {Intel 8086} processors
	(did anyone ever do this anyway?).

	Sometimes described as "stand-alone Windows", in contrast to
	{Windows for Workgroups 3.1}.  {Windows 3.11} is a free
	bug-fix update.  3.1's successors are {Windows 95} and
	{Windows NT}.

	(1996-07-08)

Windows 3.11

	<operating system> A free minor bug-fix for {Windows 3.1}.

	(1996-07-08)

Windows/386

	<operating system> A version of {Microsoft Windows} released
	in late 1987.  Windows/386 was basically the same as its
	predecessor, Windows/286 (as {Windows 2} was renamed), but
	with the capability to run multiple {MS-DOS} applications
	simultaneously in {extended memory}.

	(1996-07-08)

Windows 4GL

	<tool, database> (INGRES/Windows 4GL) A graphical tool running
	on top of a {workstation}'s native {windowing system}, to help
	developers to build user interfaces to {INGRES} applications.

	(1996-07-09)

Windows 94

	<operating system, humour> A facetious name for {Windows 95},
	so called because it was originally meant to ship in 1994.

	(1998-09-07)

Windows 95

	<operating system> (Win95) {Microsoft}'s successor to their
	{Windows 3.11} {operating system} for {IBM PCs}.  It was known
	as "Chicago" during development.  Its release was originally
	scheduled for late 1994 but eventually happened on 11 Jul
	1995, followed by Service Release 1 on 1995-12-31 and OSR2
	(OEM Service Release 2) on 1996-08-24.

	In contrast to earlier versions, Windows 95 is a complete
	operating system rather than a {graphical user interface}
	running on top of {MS-DOS}.

	It provides {32-bit application} support, {pre-emptive
	multitasking}, threading and built-in networking ({TCP/IP},
	{IPX}, {SLIP}, {PPP}, and {Windows Sockets}).  It includes
	{MS-DOS} 7.0, but takes over completely after booting.  The
	{graphical user interface}, while similar to previous Windows
	versions, is significantly improved.

	Windows 95 has also been described as "32-bit extensions and a
	graphical shell for a 16-bit patch to an 8-bit operating
	system originally coded for a 4-bit microprocessor, written by
	a 2-bit company that can't stand 1-bit of competition".

	The successor to Windows 95 was {Windows 98}.

	(1998-07-19)

Windows 98

	<operating system> {Microsoft}'s 1998 update to {Windows 95}
	that adds:

	* Hardware support for {Universal Serial Bus} (USB).

	* Internet Connection Sharing (IGC) - multiple PCs share a
	single connection to the Internet.

	* Microsoft {WebTV} for Windows - watch TV on your PC.

	* Support for new graphic, sound, and multimedia formats.

	* {Internet Explorer} release 5.

	* Windows 98 {Service Pack} - {year 2000} updates.

	Windows 98 was followed logically by {Windows ME} but
	chronologically by {Windows 2000 Professional Edition}.

	{(http://microsoft.com/windows98)}.

	(2002-01-19)

Windows 9X

	<operating system> A shorthand meaning {Windows 95} or
	{Windows 98}.

	(2004-03-28)

Windows Application Binary Interface

	<operating system, tool> (WABI) A software package from {Sun
	Microsystems} to allow certain {Microsoft Windows}
	applications under the {X Window System}.  Wabi 2.2 runs under
	{Solaris} on {SPARC}, {Intel}, and {PowerPC}.  Wabi works by
	providing translated versions of the three core Windows
	libraries, {user.dll}, {kernel.dll}, and {gdi.dll} which
	redirect Windows calls to Solaris equivalents.  For code other
	than core library calls Wabi either executes the instructions
	directly on the hardware, if it is Intel, or emulates them,
	either one instruction at a time or by translating a block of
	instructions and caching the result (e.g. for a loop).

	{WabiServer} allows the Windows application and X display to
	be on different computers.

	{Overview (http://sun.com/solaris/products/wabi/)}.

	(1997-01-08)

Windows CE

	<operating system> /C E/ A version of the {Microsoft Windows}
	{operating system} that is being used in a variety of
	{embedded} products, from {handheld} PCs to specialised
	industrial {controllers} and consumer electronic devices.
	Programming for Windows CE is similar to programming for other
	{Win32} {platforms}.

	Windows CE was developed to be a customisable operating system
	for embedded {applications}.  Its {kernel} borrows much from
	other Microsoft {32-bit} operating systems, while eliminating
	(or replacing) those operating system features that are not
	needed for typical Windows CE-based applications.  For
	example, as on {Windows NT}, all applications running on
	Windows CE run in a fully {preemptive multitasking}
	environment, in fully {protected memory} spaces.

	The {Win32} (API) for Windows CE is smaller than the Win32 API
	for the other 32-bit Windows operating systems.  It includes
	approximately half the interface methods of the Windows NT
	version of the API.  But the Win32 API for Windows CE also
	includes features found in no other Microsoft operating
	system.  The notification API, for example, makes it possible
	to handle user or application notification events (such as
	timer events) at the operating-system level, rather than in a
	running application.  The {touch screen} API and the built-in
	support for the Windows CE {database} are not found in other
	Windows operating systems.  The touch screen API makes it easy
	to manage screen calibration and user interactions for
	{touch-sensitive displays}, while the database API provides
	access to a data storage facility.

	{(http://channels.microsoft.com/windowsce/developer/default.htm)}.

	{(http://channels.microsoft.com/windowsce/developer/technical/default.htm)}.

	(1997-12-20)

Windows for Workgroups

	<operating system> (WFW, WFWG) A version of {Windows 3.1}
	which works with a network.  Although stand-alone 3.1 can be
	networked, the installation and configuration is much improved
	with Windows for Workgroups (3.1).  Windows for Workgroups
	3.11 was a significant upgrade to WFW 3.1, adding 32-bit file
	access, fax capability and higher performance.

	(1996-07-08)

Windows Hardware Quality Labs

	<body, standard> (WHQL) A {Microsoft} body that produces and
	supports the {Microsoft} {Hardware Compatibility Test} kit for
	current Microsoft {operating systems}.  Products are tested
	with the kit to ensure that they meet Microsoft standards for
	compatibility with {Windows} and to qualify to use the
	"Designed for Microsoft Windows" logos.

	{(http://microsoft.com/hwdq/hwtest/)}.

	(2002-11-13)

window shopping

	<jargon> A term used among users of {WIMP} environments like
	the {X Window System} or the {Macintosh} at the US Geological
	Survey for extended experimentation with new window colours,
	{fonts}, and {icon} shapes.  This activity can take up hours
	of what might otherwise have been productive working time.  "I
	spent the afternoon window shopping until I found the coolest
	shade of green for my active window borders --- now they
	perfectly match my medium slate blue background."  Serious
	window shoppers will spend their days with bitmap editors,
	creating new and different icons and background patterns for
	all to see.  Also: "window dressing", the act of applying new
	fonts, colours, etc.

	See {fritterware}, compare {macdink}.

	[{Jargon File}]

	(1996-07-08)

Windows Internet Naming Service

	<networking> (WINS) Software which resolves {NetBIOS} names to
	{IP addresses}.

	[Details?]

	(1998-02-14)

Windows Management Interface

	<Microsoft, system management> (WMI) {Microsoft}'s
	implementation of {Web-Based Enterprise Management}, a {DMTF}
	initiative to establish standards for accessing and sharing
	{system management} information over an {enterprise} {network}.

	(2005-02-15)

Windows ME

	{Windows Millennium Edition}

Windows Messaging

	<messaging> {Microsoft}'s {Internet} {electronic mail}
	application, formerly called {Microsoft Exchange}.

	(1998-07-05)

windows messaging

	<messaging> An {inter-process communication} facility usually
	provided by vendors of {graphical user interfaces} for
	{concurrent} {operating systems}, such as {Microsoft}, The {X
	Consortium} and {Apple}.

	The system software translates hardware {interrupts} from
	various input devices into messages according to the current
	input context (e.g. the active {window} of the frontmost
	{application}).  Each message is a short piece of information.
	A message's format depends on its type, which is usually
	encoded in its first field.  The message is sent to the
	{client} application using some communication {protocol}
	(e.g. {shared memory}, internal {socket}, network socket).
	The client application dispatches the message and performs any
	actions required.  The messages can also be sent by client
	applications.  This provides convenient and flexible
	inter-process communication.

	(1998-07-06)

Windows Millennium Edition

	<operating system> (Windows ME) An update of {Microsoft}
	{Windows 98}, released in 2000.  ME included updates of
	packaged software and new software such as {Windows Media
	Player} 7, {Windows Movie Maker}.  It also has an updated
	{user interface} with new colours and icons, but few major
	changes.  Windows ME was followed by {Windows XP}.

	(2003-05-13)

Windows NT

	<operating system> (Windows New Technology, NT) {Microsoft}'s
	32-bit {operating system} developed from what was originally
	intended to be {OS/2} 3.0 before {Microsoft} and {IBM} ceased
	joint development of OS/2.  NT was designed for high end
	{workstations} (Windows NT 3.1), servers (Windows NT 3.1
	Advanced Server), and corporate networks (NT 4.0 Enterprise
	Server).  The first release was {Windows NT 3.1}.

	Unlike {Windows 3.1}, which was a graphical environment that
	ran on top of {MS-DOS}, Windows NT is a complete operating
	system.  To the user it looks like Windows 3.1, but it has
	true {multi-threading}, built in networking, security, and
	{memory protection}.

	It is based on a {microkernel}, with 32-bit addressing for up
	to 4Gb of {RAM}, virtualised hardware access to fully protect
	applications, installable file systems, such as {FAT}, {HPFS}
	and {NTFS}, built-in networking, {multi-processor} support,
	and {C2 security}.

	NT is also designed to be hardware independent.  Once the
	machine specific part - the {Hardware Abstraction Layer} (HAL)
	- has been ported to a particular machine, the rest of the
	operating system should theorertically compile without
	alteration.  A version of NT for {DEC}'s {Alpha} machines was
	planned (September 1993).

	NT needs a fast {386} or equivalent, at least 12MB of {RAM}
	(preferably 16MB) and at least 75MB of free disk space.

	NT 4.0 was followed by {Windows 2000}.

	{Usenet} newsgroups: {news:comp.os.ms-windows.nt.setup},
	{news:comp.os.ms-windows.nt.misc}.

	(2002-06-10)

Windows NT 3.1

	<operating system> {Microsoft}'s first version of {Windows
	NT}, released in September 1993, price UKP 395, after having
	been in {beta-test} for as long as anyone could remember.

	The person responsible for {VMS} on the {DEC VAX} [who?] was
	also responsible for Windows NT.  Incrementing each letter in
	VMS yields WNT.

	{(http://win2000mag.com/Articles/Index.cfm?ArticleID=4494)}.

	(2000-08-12)

Windows NT 3.5

	<operating system> A much improved version of {Microsoft}'s
	{Windows NT 3.1}.  NT is now (July 1996) supplied as "Windows
	NT 3.5 Workstation" and "Windows NT 3.5 Server".  It has
	better {OLE} support, higher performance and requires less
	memory.

	(1996-07-08)

Windows NT 4

	<operating system> A version of {Microsoft}'s {Windows NT}
	{operating system}, originally code named "Cairo".  It was
	supposed to ship in the first half of 1995.  Details are
	scarce, but it is intended to provide an {object-oriented}
	version of Windows.

	(1996-07-09)

Windows NT 5

	{Windows 2000}

Windows NT Network Model

	<networking> The network model used by {Windows NT}.  The
	model has the following layers:

	 User Applications (e.g. Excel)
	 {APIs}
	 File System Drivers
	 {TDI}
	 Protocols
	 {NDIS} v4
	 NDIS Wrapper
	 NDIS Card Driver
	 {Network Adapter Card}

	Compare {OSI} seven layer model.

	(1997-11-05)

Windows Open Service Architecture

	<architecture, library, microsoft> (WOSA) One of the mainstays
	of {Microsoft Windows}: the ethos of {abstraction} of core
	{services}.

	For each extension, Windows {Open} Services {Architecture}
	defines an {API} and an {SPI}, as well as a universal
	interface (usually placed in a single {DLL}) that both comply
	to.

	These then {transparent}ly let the {operating system} speak to
	{device drivers}, {database managers}, and other {low level}
	entities.

	These extensions include, among others, {ODBC} (called the
	"crowning jewel of WOSA"), {TAPI}, {WOSA/XFS}, {SAPI} and
	{MAPI}, and their supporting services, as well as the
	abstraction of access to {printers}, {modems}, and {networking
	services}, which run identically over {TCP/IP}, {IPX/SPX}, and
	{NetBEUI}.

	(2000-08-16)

Windows Registry

	<operating system> The database used by {Microsoft} {Windows
	95} and later to store all sorts of configuration information
	such as which program should be used to open a .doc file,
	{DLL} registration information, application-specific settings
	and much more.

	The Registry is stored in .dat files, one in the user's
	profile containing their per-user settings and one in the
	Windows directory containing settings that are global to all
	users.  These are loaded into memory at login.

	The loaded data appears as a tree with five main branches:
	HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE,
	HKEY_USERS, HKEY_CURRENT_CONFIG.  HKEY_CLASSES_ROOT defines
	file types and actions, HKEY_CURRENT_USER is an alias for one
	of the sub-trees of HKEY_USERS and contains user settings that
	override the global defaults in HKEY_LOCAL_MACHINE.

	The branches of the tree are called "keys" and are identified
	by paths like
	HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.
	Any node in the tree can have zero or more "values" which are
	actually bindings of a name and a value, e.g. "Logon User
	Name" = "Denis".  The value can be of type string, binary,
	dword (long integer), multi-string value or expandable string
	value.

	Windows includes a Registry Editor (regedit.exe).

	(2008-01-20)

Windows sockets

	<networking, standard> (Winsock) A specification for
	{Microsoft Windows} network software, describing how
	applications can access network services, especially {TCP/IP}.
	Winsock is intended to provide a single {API} to which
	application developers should program and to which multiple
	network software vendors should conform.  For any particular
	version of {Microsoft Windows}, it defines a binary interface
	({ABI}) such that an application written to the Windows
	Sockets API can work with a conformant {protocol}
	implementation from any network software vendor.

	Winsock was conceived at Fall Interop '91 during a {Birds of a
	Feather} session.

	Windows Sockets is supported by {Microsoft Windows}, {Windows
	for Workgroups}, {Win32s}, {Windows 95} and {Windows NT}.  It
	will support protocols other than {TCP/IP}.  Under {Windows
	NT}, {Microsoft} will provide Windows Sockets support over
	{TCP/IP} and {IPX}/{SPX}.  {DEC} will be implementing
	{DECNet}.  {Windows NT} will include mechanisms for multiple
	{protocol} support in Windows Sockets, both 32-bit and 16 bit.

	Mark Towfiq said, "The next rev. of Winsock will not be until
	toward the end of 1993.  We need 1.1 of the {API} to become
	firmly settled and implemented first."

	{Windows Sockets API
	(ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock)}.
	or {(ftp://microdyne.com/pub/winsock)} or send a message
	"help" to either <ftpmail@SunSite.UNC.Edu> or
	<ftpmail@DECWRL.DEC.Com>.

	{Windows Sockets specification (ftp://rhino.microsoft.com)}.

	Currently NetManage (NEWT), Distinct, FTP and Frontier are
	shipping Winsock {TCP/IP} stacks, as is {Microsoft} (Windows
	NT and {TCP/IP} for WFW), Beame & Whiteside Software (v1.1
	compliant), and Sun PC-NFS.  Windows 95 has "dial-up
	networking" which supports Winsock and TCP/IP.

	winsock.dll is available from some {TCP/IP} stack vendors.
	{Novell} has one in beta for their {Lan Workplace} for {DOS}.

	Peter Tattam <peter@psychnet.psychol.utas.edu.au> is
	alpha-testing a shareware Windows Sockets compliant {TCP/IP}
	stack {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winsock.zip)}.
	and {(ftp://ftp.utas.edu.au/pc/trumpet/winsock/winpkt.com)}.

	{The Consummate Winsock App List
	(http://wwwvms.utexas.edu/~Neuroses/cwsapps.html)}.

	[Adapted from: Aboba, Bernard D., comp.protocols.tcp-ip.ibmpc
	Frequently Asked Questions, 1993 {Usenet}: {news:news.answers},
	{(ftp://netcom1.netcom.com/pub/mailcom/IBMTCP/)}].

	[Current status?]

	(1996-06-20)

Windows XP

	<operating system> The version of the {Microsoft Windows}
	{operating system} that, when it was released on 2001-10-25,
	finally merged the {Windows 95} - {Windows ME} strain with the
	{Windows NT} - {Windows 2000} one.  XP comes in two main
	versions: {Windows XP Professional Edition} and a simplified
	subset for home users, {Windows XP Home Edition}.

	{Windows XP home page (http://microsoft.com/windowsxp/)}.

	(2009-08-12)

Windows XP Pro

	{Windows XP Professional Edition}

Windows XP Professional Edition

	<operating system> ("Windows XP Pro", "XP Pro") The version of
	{Microsoft}'s {Windows XP} {operating system} intended for
	businesses and advanced users.  The alternative, {Windows XP
	Home Edition}, is a subset of Pro without {Remote Desktop},
	{Multi-processor support}, {Automated System Recovery},
	{Dynamic Disk Support}, {Fax}, {Internet Information
	Services}, {Encrypting File System}, {File-level access
	control}, {Active Directory}, {Group Policy}, {IntelliMirror},
	{Roaming profiles} and other features.

	{Pro-Home Comparison
	(http://www.winsupersite.com/showcase/windowsxp_home_pro.asp)}.

	(2009-08-12)

window system

	Software which allows a {workstation}'s screen to be divided
	into rectangular areas which act like a separate input/output
	devices under the control of different {application} programs.
	This gives the user the ability to see the output of several
	processes at once and to choose which one will receive input
	by selecting its window, usually by pointing at it with a
	{mouse}.

	Examples are the {X Window System}, and proprietary systems on
	the {Macintosh} and {NeXT}, {NeWS} on {Suns} and {RISC OS} on
	the {Archimedes}.  See also {WIMP}.

Windoze

	{Microsloth Windows}

Wind River Systems

	<company> A company founded in 1981, now a world leader in
	{embedded systems}, providing {real-time operating systems}
	and development tools.  Wind River's development tools enable
	customers to standardise designs across projects and quickly
	develop feature-rich products.

	Wind River Systems employs over 500 people worldwide (1998).
	Service and support is provided through its U.S. headquarters
	and overseas operations in the U.K., France, Germany,
	Scandinavia and Japan.

	{(http://wrs.com/)}.

	Address: Alameda, California, USA.

	(1998-11-06)

winged comments

	<programming> {Comments} set on the same line as code, as
	opposed to {boxed comments}.

	In {C}, for example:

		d = sqrt(x*x + y*y);  /* distance from origin */

	Generally these refer only to the action(s) taken on that
	line.

	[{Jargon File}]

	(1997-07-21)

winkey

	<chat> winkey face.

	See {emoticon}.

	[{Jargon File}]

	(1996-09-08)

WinMaker Pro

	{RoboDemo}

WINS

	{Windows Internet Naming Service}

Winsock

	{Windows sockets}

WinSoft Products Ltd

	<company> The company which produces {EMBLA Pro}.

	{(http://ftech.co.uk/~winsoft)}.

	E-mail: WinSoft Products Ltd <info@winsoft.ftech.co.uk>

	(1996-03-11)

wintel

	<jargon, architecture> A term describing any computer
	{platform} consisting of some version of {Microsoft Windows}
	running on an {Intel 80x86} processor or compatible.

	Despite the dominance of the wintel platform, in its many
	forms, from {MS-DOS} on an {Intel 8088} to {Windows 2000} on a
	{Pentium II Xeon}, there are many "non-wintel" {platforms} in
	use.  These include {Acorn}, {Amiga}, {Apple}, {ARM}, {Atari},
	{A\Box}, {Be}, {Network Computer}, {OS/2}, {PowerPC}, {Psion},
	{Linux} and all other {Unix} systems.

	{Convergence International (http://convergence.org/)}.

	(1999-09-15)

WINZIP

	<tool> A {Microsoft Windows} {archiving} and {compression}
	program, distributed by Nico Mak Computing, Inc.  WINZIP has a
	{graphical user interface} {front end} and is compatible with
	{PKZIP}.  WINZIP can be obtained as {shareware}, on
	evaluation, or as a licenced copy.  It is much easier to use
	then PKZIP for DOS, and includes a helpful, help file.

	{(http://winzip.com/)}.

	(2000-02-27)

wired

	{hard-wired}

wirehead

	<jargon> /wi:r'hed/ (Probably from SF slang for an electrical
	brain-stimulation addict) 1. A hardware hacker, especially one
	who concentrates on communications hardware.

	2. An expert in {local-area networks}.  A wirehead can be a
	network software wizard too, but will always have the ability
	to deal with network hardware, down to the smallest component.
	Wireheads are known for their ability to lash up an {Ethernet}
	{terminator} from spare resistors, for example.

	[{Jargon File}]

	(1995-02-28)

wireless

	<networking> A term describing a computer {network} where
	there is no physical connection (either copper cable or {fibre
	optics}) between sender and receiver, but instead they are
	connected by radio.

	Applications for wireless networks include multi-party
	{teleconferencing}, distributed work sessions, {personal
	digital assistants}, and electronic newspapers.  They include
	the transmission of voice, video, {images}, and data, each
	traffic type with possibly differing {bandwidth} and
	quality-of-service requirements.  The wireless network
	components of a complete source-destination path requires
	consideration of mobility, {hand-off}, and varying
	transmission and {bandwidth} conditions.  The wired/wireless
	network combination provides a severe bandwidth mismatch, as
	well as vastly different error conditions.  The processing
	capability of fixed vs. mobile terminals may be expected to
	differ significantly.  This then leads to such issues to be
	addressed in this environment as {admission control},
	{capacity assignment} and {hand-off} control in the wireless
	domain, flow and error control over the complete end-to-end
	path, dynamic bandwidth control to accommodate bandwidth
	mismatch and/or varying processing capability.

	{Usenet} newsgroup {news:comp.std.wireless}.

	(1995-02-27)

Wireless Application Protocol

	<protocol, standard> (WAP) An open international {standard}
	for applications that use {wireless} communication,
	e.g. {Internet} access from a mobile phone.

	The official body developing WAP is the {WAP Forum}.

	{(http://wapforum.org/)}.

	{Technical data (http://wapforum.org/what/technical.htm)}.

	[More detailed summary?]

	(2000-02-10)

wireless bitmap

	<graphics, file format> (WBMP) A {bitmap} for display on a
	{WAP} mobile phone.

	Currently (2001) the only type of WBMP file defined is a
	simple black-and-white {image} file with one {bit} per {pixel}
	and no {compression}.

	[{WAP Forum (http://wapforum.org/)}, "WAP-190-WAE-Spec" or
	"Wireless Application Protocol, Wireless Application
	Environment Specification"].

	(2001-05-23)

wireless hotspot

	<networking> A public place where you can connect to a
	{wireless local area network}, usually by paying.

	(2009-05-28)

wireless local area network

	<networking> (WLAN /W-lan/, or "LAWN" /lorn/, sometimes
	"WiLAN" /wi-lan/) A communication system that transmits and
	receives data using modulated electromagnetic waves,
	implemented as an extension to, or as an alternative for, a
	{wired} {LAN}.  WLANs are typically found within a small
	{client} {node}-dense locale (e.g. a campus or office
	building), or anywhere a traditional network cannot be
	deployed for logistical reasons.

	Benefits include user mobility in the coverage area, speed and
	simplicity of physical setup, and {scalability}.  Being a
	military spin-off, WLANs also provide security features such
	as {encryption}, {frequency hopping}, and {firewalls}.  Some
	of these are intrinsic to the {protocol}, making WLANs at
	least as secure as wired networks, and usually more so.  The
	drawbacks are high initial cost (mostly {hardware}), limited
	range, possibility of mutual interference, amd the need to
	security-enable clients.

	The established protocols are covered by {IEEE 802.11
	(http://standards.ieee.org/getieee802/)}.  Recent developments
	include the {Bluetooth} project and other WPAN, or {Personal
	Area Network} initiatives, accessible through {IEEE 802.15
	working group (http://grouper.ieee.org/groups/802/15/)}.

	{Wireless Lan Association (http://wlana.org/)}.

	{Usenet} newsgroups: {news:comp.dcom.lans.misc},
	{news:comp.std.wireless}.

	(2003-09-23)

Wireless Local Loop

	<communications> (WLL, radio in the loop, RITL, fixed-radio
	access, FRA) Connecting subscribers to the {public switched
	telephone network} (PSTN) using radio signals instead of
	copper wires.  The wireless link may be all or part of the
	connection between the subscriber and the switch.  WLL
	includes cordless access systems, proprietary fixed radio
	access and fixed cellular systems.

	(2008-03-15)

Wireless Transport Layer Security

	<standard, security> (WTLS) The {WAP} {standard} related to
	security.  WTLS is based upon its {TCP/IP} counterpart,
	{Secure Sockets Layer}.

	[Reference?]

	(2003-06-17)

wirewater

	<jargon> {programming fluid}.  This melds the mainstream slang
	adjective "wired" (stimulated, up, hyperactive) with
	"firewater"; however, it refers to caffeinacious rather than
	alcoholic beverages.

	[{Jargon File}]

	(1995-02-27)

WISCII

	<character, data> A version of {ASCII} used by {Wang} on their
	{personal computers} and {mini computers} in the 1980s.
	WISCII was used on the {Wang PC}, {APC}, {OIS}, {Alliance} and
	{VS}.  The 7-bit characters were the same as ASCII, but the
	extended 8-bit characters were Wang-specific.

	(2008-05-28)

wish list

	<jargon> A list of desired {features} or {bug fixes} that
	probably won't get done for a long time, usually because the
	person responsible for the code is too busy or can't think of
	a clean way to do it.  "OK, I'll add automatic filename
	completion to the wish list for the new interface."

	Compare {tick-list features}.

	[Does anybody call this a "want list"?]

	[{Jargon File}]

	(1998-04-28)

Wisp

	["An Experiment with a Self-Compiling Compiler for a Simple
	List-Processing Language", M.V. Wilkes, Ann Rev Automatic
	Programming 4:1-48.  (1964)].

within delta of

	{delta}

within epsilon of

	{epsilon}

wizard

	1. A person who knows how a complex piece of software or
	hardware works (that is, who {groks} it); especially someone
	who can find and fix bugs quickly in an emergency.  Someone is
	a {hacker} if he or she has general hacking ability, but is a
	wizard with respect to something only if he or she has
	specific detailed knowledge of that thing.  A good hacker
	could become a wizard for something given the time to study
	it.

	2. A person who is permitted to do things forbidden to
	ordinary people; one who has {wheel} privileges on a system.

	3. A Unix expert, especially a Unix systems programmer.  This
	usage is well enough established that "Unix Wizard" is a
	recognised job title at some corporations and to most
	headhunters.

	See {guru}, {lord high fixer}.  See also {deep magic}, {heavy
	wizardry}, {incantation}, {magic}, {mutter}, {rain dance},
	{voodoo programming}, {wave a dead chicken}.

	4. An interactive help utility that guides the user through a
	potentially complex task, such as configuring a {PPP} driver
	to work with a new {modem}.  Wizards are often implemented as
	a sequence of {dialog boxes} which the user can move forward
	and backward through, filling in the details required.  The
	implication is that the expertise of a human wizard in one of
	the above senses is encapsulated in the software wizard,
	allowing the average user to perform expertly.

	[{Jargon File}]

	(1998-09-07)

Wizard Book

	<publication> {Hal Abelson}, {Gerald Sussman} and Julie
	Sussman's "Structure and Interpretation of Computer Programs"
	(MIT Press, 1984; ISBN 0-262-01077-1), an excellent computer
	science text used in introductory courses at MIT.  So called
	because of the wizard on the jacket.  One of the {bibles} of
	the LISP/Scheme world.  Also, less commonly, known as the
	{Purple Book}.

	[{Jargon File}]

	(1995-01-10)

wizardly

	Pertaining to wizards.  A wizardly {feature} is one that only
	a wizard could understand or use properly.

	[{Jargon File}]

wizard mode

	<games> [{rogue}] A special access mode of a program or
	system, usually password protected, that permits some users
	godlike privileges.  Generally not used for {operating
	systems} themselves ("root mode" or "wheel mode" would be used
	instead).  This term is often used with respect to games that
	have editable state.

WizDOM

	Software for distributed {Unix} {system management} from
	{TIVOLI Systems} of Austin, Texas, USA.

	(1995-02-10)

wk1

	<filename extension> (worksheet) The {filename extension} used
	by early versions of the {Lotus 1-2-3} {spreadsheet} program
	including release 2.01 (1987).  All files created by the user
	are given this extension.

	(1995-11-28)

WLAN

	{wireless local area network}

WLL

	{Wireless Local Loop}

WMA

	{Windows Media Audio}

wmf

	<filename extension> The {filename extension} for a {Windows
	Metafile}.

	(1995-04-25)

WMI

	{Windows Management Interface}

WML

	{Wireless Markup Language}

WMV

	{Windows Media Video}

WNPP

	{Work Needed and Prospective Packages}

WO

	{WebObjects}

Wolfram Research, Inc.

	<company> The company founded by Stephen Wolfram in August
	1987 to develop {Mathematica} which was released in June 1988
	for the {Macintosh} and is now available on over 20
	{platforms}.  The company has offices in the United Kingdom
	and Tokyo, Japan.

	{(http://wri.com/)}.

	E-mail: <info@wri.com>.

	(1995-02-10)

WOM

	{write-only memory}

woman

	<tool> A replacement for the {Unix} {man} {documentation}
	browsing command.  Version 1.157 of woman runs under/on
	{386BSD}, {OSF}, {Apollo} {Domain/OS}, {BSD}, {HP-UX}, {IBM}
	{RS-6000}, {Irix}, {Linux}, {Solaris}, {Sony} {NEWS}, {SunOS},
	{Ultrix}, {Unicos}.

	Posted to comp.sources.reviewed Volume 3, Issue 50 on 05 Jul
	1993 by Arne Henrik Juul <arnej@pvv.unit.no>, archive-name
	woman-1.157.

	{FTP USC, USA
	(ftp://usc.edu/archive/usenet/sources/comp.sources.reviewed/volume3/woman-1.157/)}.
	{FTP Imperial, UK
	(ftp://src.doc.ic.ac.uk/usenet/comp.sources.reviewed/volume3/woman-1.157/)}.

	(1995-03-21)

WOMBAT

	Waste Of Money, Brains, And Time.

	Problems which are both profoundly {uninteresting} in
	themselves and unlikely to benefit anyone interesting even if
	solved.  Often used in fanciful constructions such as
	"wrestling with a wombat".

	See also {crawling horror}, {SMOP}.

	[{Jargon File}]

	(1995-03-10)

wombat

	1. <programming> A {metasyntactic variable} in {Commonwealth
	Hackish}.

	2. <computer> {wombat.doc.ic.ac.uk}.

	[{Jargon File}]

	(1995-03-10)

wombat.doc.ic.ac.uk

	<computer> (Named after the Australian marsupial, vombatus
	ursinus).  The {Internet} {host} from which {this dictionary}
	was originally served.  {IP address} 146.169.22.42.
	Formerly a {SPARCstation ELC}.  Kindly provided by the
	Computing Department, {Imperial College}, London.  Replaced by
	foldoc.doc.ic.ac.uk (a {Linux} box}) in June 1999.  Alias
	foldoc.org added 2000-07-18, courtesy of Karl O. Pinc.

	(2000-10-09)

Woodenman

	HOLWG, DoD, 1975.  Second of the series of DoD requirements
	that led to Ada.  "Woodenman Set of Criteria and Needed
	Characteristics for a Common DoD High Order Programming
	Language", David A. Fisher, Inst for Def Anal Working Paper,
	Aug 1975.  (See Strawman, Tinman, Ironman, Steelman).

woofer

	<jargon> (University of Waterloo) Some varieties of wide paper
	for printers have a perforation 8.5 inches from the left
	margin that allows the 3.5 inch excess on the right-hand side
	to be torn off when the print format is 80 columns or less
	wide.  If done with sufficient aplomb this makes a sound like
	the "woof" of a dog.  If the large part is the "woofer" then
	the small part must obviously be the "tweeter", following the
	names for the large and small cones in a hi-fi loudspeaker.

	These terms have been in use at Waterloo since 1972, but are
	unknown elsewhere.

	Compare {chad}.

	[{Jargon File}]

	(1997-03-21)

WOOL

	Window Object Oriented Language.  A small {Common Lisp}-like
	extension language.  It claims to be the fastest interpreted
	language in {C} with {run-time types}.  Colas Nahaboo
	<colas@sophia.inria.fr>.  Version 1 is used as the kernel
	language of the {GWM} window manager.  Version 2 has an object
	system.

	{(ftp://export.lcs.mit.edu/contrib/gwm)}.

Worcester Polytechnic Institute

	(WPI) A well-regarded, small engineering college.

	Address: Worcester, MA, USA.

	(1995-03-01)

Word

	{Microsoft Word}

word

	<storage> A fundamental unit of storage in a computer.  The
	size of a word in a particular computer architecture is one of
	its chief distinguishing characteristics.

	The size of a word is usually the same as the width of the
	computer's {data bus} so it is possible to read or write a
	word in a single operation.  An instruction is usually one or
	more words long and a word can be used to hold a whole number
	of characters.  These days, this nearly always means a whole
	number of {bytes} (eight bits), most often 32 or 64 bits.  In
	the past when six bit {character sets} were used, a word might
	be a multiple of six bits, e.g. 24 bits (four characters) in
	the {ICL 1900} series.

	(1994-11-11)

Word for Windows

	<text, tool, product> The version of {Microsoft Word} which
	runs under {Microsoft Windows}.

	Version 6.0.

	(1995-04-14)

WordNet

	<human language> A large {lexical} database of English,
	developed under the direction of George A. Miller.  Nouns,
	verbs, adjectives and adverbs are grouped into sets of
	{cognitive synonyms} ("synsets"), each expressing a distinct
	concept.  Synsets are interlinked by means of
	conceptual-{semantic} and lexical relations.  The resulting
	network of words and concepts can be navigated with the
	browser.  WordNet is freely available for download.  WordNet's
	structure makes it a useful tool for {computational
	linguistics} and {natural language processing}.

	{WordNet home (http://wordnet.princeton.edu/)}.

	(2007-04-20)

WordPerfect

	1. <text, tool, product> A {word processor} for a wide range
	of computers.  The first version was sold in 1980 for {Data
	General} machines, and by the end of 1993 versions were on
	sale for {MS-DOS}, {Microsoft Windows} and {Macintosh}
	computers.  WordPerfect 6.0 for {Unix} was scheduled for
	introduction in May 1994.

	Versions: WordPerfect 6.1 for Windows, WordPerfect 3.1 for
	Macintosh/Power Macintosh, WordPerfect 6.0 for UNIX,
	WordPerfect 6.0 for DOS, WordPerfect 7.0 for {Windows 95}.

	[Distinguishing features?]

	{(http://corel.com/products/wordperfect/)}.

	2. {WordPerfect Corporation}.

	(1995-07-05)

WordPerfect Corporation

	<company> The original developers of the {WordPerfect} {word
	processor} and a variety of other {applications} for {personal
	computers}.  WordPerfect was founded in Provo, Utah, USA in
	1979 by Alan Ashton and Bruce Bastion as "Satellite Software
	International".  The company name was changed to Wordperfect
	Corporation in 1986.  The company was bought by {Novell, Inc.}
	in 1994, who then sold it to {Corel Corporation} in 1996.

	(1997-03-12)

word processing

	{word processor}

word processor

	<text, tool> A program used to create and print (chiefly
	textual) documents that might otherwise be prepared on a
	typewriter.  The key advantage of word processor is its
	ability to make changes easily, such as correcting spelling,
	changing margins, or adding, deleting, and relocating entire
	blocks of text.  Once created, the document can be printed
	quickly and accurately and saved for later modifications.

	Today most popular word processors, such as {Microsoft Word},
	offer a much greater range of facilities than the first such
	programs.

	Compare {text editor}.

	(1995-04-14)

word size

	<processor> The number of bits that a {CPU} can process at one
	time.  Processors with many different word sizes have existed
	though powers of two (8, 16, 32, 64) have predominated for
	many years.  A processor's word size is often equal to the
	width of its external data bus though sometimes the bus is
	made narrower than the CPU (often half as many bits) to
	economise on packaging and circuit board costs.

	(1995-04-23)

word spamming

	<World-Wide Web, information science> Repeating a word many
	times in a {web page}, in a (usually futile) attempt to
	increase its {relevance} ranking in a {search engine}'s index
	(to "{spam}" the index).

	"Repeating a word over and over in a Web page (known as word
	spamming) has no effect on the [page's] ranking [in the
	index]."  -- {Altavista FAQ
	(http://altavista.digital.com/cgi-bin/query?pg=tmpl&v=faq.html)}.

	See also {spamdex}.

	(1997-04-09)

WordTech

	<company> Manufacturers of {Quicksilver}.

	Address: Orinda, CA, USA.

	(1995-05-11)

word wrap

	<text> A feature of {word processors} and most {text editors}
	where a word which would extend past the right hand margin is
	moved to the following line.  This is more sophisticated than
	character wrap which only moves to the next line for the first
	character past the right margin and thus will break some words
	in the middle.  The program may actually insert a new line in
	the text at the point where it is wrapped or it may only
	display it as though it contained a new line at that point.

	(1996-07-24)

workaround

	<jargon, programming> A temporary {kluge} used to bypass, mask
	or otherwise avoid a {bug} or {misfeature} in some system.
	Customers often find themselves living with workarounds for
	long periods of time rather than getting a {bug fix}.

	[{Jargon File}]

	(1998-06-25)

Work Breakdown Structure

	<project> (WBS) A division of a project into tasks and
	subtasks.  The tasks are numbered to indicate their
	relationship to each other.  WBSs are indespensible for
	project planning, particularly when estimating time and
	resource requirements.  Some industries use established work
	breakdown structure systems for billing and reporting
	purposes.

	(2001-05-09)

workflow

	1. <operating system> The {scheduling} of independent jobs on
	a computer.

	See also {time-sharing}, {WFL}.

	2. <job> The set of relationships between all the activities
	in a project, from start to finish.  Activities are related by
	different types of trigger relation.  Activities may be
	triggered by external events or by other activities.

	3. The movement of documents around an organisation for
	purposes including sign-off, evaluation, performing activities
	in a process and co-writing.

	[Stef Joosten et.al. "An empirical study about the practice of
	workflow management", {WA-12} report, 1994].

	(1995-03-27)

Workflow Management Coalition

	<body> (WfMc) A non-profit, international organisation of
	{workflow} vendors, users, and analysts committed to
	establishing {standards} for {workflow} terminology,
	{interoperability}, and connectivity.

	WfMC was founded in 1993 and now (1999) has over 130 members.

	{(http://aiim.org/wfmc)}.

	(1999-08-01)

workgroup

	{Computer Supported Cooperative Work}

working as designed

	<jargon> (IBM) Conforming to a wrong or inappropriate
	specification; useful, but misdesigned.  Frequently used as a
	sardonic comment on a program's utility or as a bogus reason
	for not accepting a criticism or suggestion.  At {IBM}, this
	sense is used in official documents!

	See {BAD}.

	[{Jargon File}]

	(1995-04-04)

working memory

	<storage, architecture> The parts of {main memory} ({RAM})
	currently in use.

	In a {production system}, working memory contains the facts,
	both initial and generated.

	(2005-06-17)

working set

	<architecture> The set of all pages (in a {paging} {virtual
	memory} system) used by a {process} during some time interval.

	As a result of {locality of reference}, the working set
	frequently consists of a relatively small fraction of a
	process's total virtual memory pages.  While a process's
	entire working set is in {physical memory} the process will
	run without {page faults}.  If the working set is too large
	for available physical memory, the process causes frequent
	{page faults}.

	In a {multitasking} environment, information about which pages
	are in each process's working set allows the memory management
	system to improve {CPU} efficiency by {prepaging} (also called
	the {working set model}).

	["Modern Operating Systems", Andrew S. Tanenbaum, pub.
	Prentice Hall, Inc.  1992].

	(1997-04-09)

working set model

	{prepaging}

Work Needed and Prospective Packages

	<Debian> (WNPP) A document, maintained on the {Debian} {web
	site} {here (http://debian.org/devel/wnpp/)}, providing a
	current list of packages which are either orphaned (withdrawn
	from distribution), maintained but its developer would like to
	find a new person, currently being worked on to include in the
	distribution, or good ideas with no one working on them.

	WNPP is also a pseudo package on the Debian Bug Tracking
	System.  Developers update the WNPP document by filing,
	modifying or closing bugs agains the psuedo package.

	(2000-09-06)

work path

	<graphics> In {Adobe Photoshop}, a temporary {path} that
	appears in the Paths palette and defines the outline of a
	shape.

	(2009-03-02)

worksheet

	{spreadsheet}

workstation

	<computer> A general-purpose computer designed to be used by
	one person at a time and which offers higher performance than
	normally found in a {personal computer}, especially with
	respect to graphics, processing power and the ability to carry
	out several tasks at the same time.

	(1995-05-04)

World Time

	{Coordinated Universal Time}

World-Wide Wait

	<humour> A pejorative expansion of {WWW} reflecting on the
	slowness of some network connections and sites.

	(1997-03-30)

World-Wide Web

	<World-Wide Web, networking, hypertext> (WWW, W3, The Web) An
	{Internet} {client-server} {hypertext} distributed information
	retrieval system which originated from the {CERN} High-Energy
	Physics laboratories in Geneva, Switzerland.

	In the early 1990s, the developers at CERN spread word of the
	Web's capabilities to scientific audiences worldwide.  By
	September 1993, the share of Web traffic traversing the {NSFNET}
	{Internet} {backbone} reached 75 {gigabytes} per month or one
	percent.  By July 1994 it was one {terabyte} per month.

	On the WWW everything (documents, menus, indices) is
	represented to the user as a {hypertext} object in {HTML}
	format.  {Hypertext} {links} refer to other documents by their
	{URLs}.  These can refer to local or remote resources
	accessible via {FTP}, {Gopher}, {Telnet} or {news}, as well as
	those available via the {http} protocol used to transfer
	{hypertext} documents.

	The client program (known as a {browser}), e.g. {NCSA}
	{Mosaic}, {Netscape} {Navigator}, runs on the user's computer
	and provides two basic navigation operations: to follow a
	{link} or to send a query to a server.  A variety of client
	and server software is freely available.

	Most clients and servers also support "forms" which allow the
	user to enter arbitrary text as well as selecting options from
	customisable menus and on/off switches.

	Following the widespread availability of web browsers and
	servers, many companies from about 1995 realised they could
	use the same software and protocols on their own private
	internal {TCP/IP} networks giving rise to the term
	"{intranet}".

	The {World Wide Web Consortium} is the main standards body for
	the web.

	{An article by John December
	(http://sunsite.unc.edu/cmc/mag/1994/oct/webip.html)}.

	{WWW servers, clients and tools
	(http://w3.org/hypertext/WWW/Status.html)}.

	Mailing list: <www-talk@www.w3.org>.

	{Usenet} newsgroups: {news:comp.infosystems.www.misc},
	{news:comp.infosystems.www.providers},
	{news:comp.infosystems.www.users},
	{news:comp.infosystems.announce}.

	The best way to access {this dictionary} is via the Web since
	you will get the latest version and be able to follow
	cross-references easily.  If you are reading a plain text
	version of this dictionary then you will see lots of curly
	brackets and strings like

		{(http://hostname/here/there/page.html)}.

	These are transformed into hypertext links when you access it
	via the Web.

	See also {Java}, {webhead}.

	(2013-11-03)

World-Wide Web browser

	<World-Wide Web> A {browser} for the {World-Wide Web}.

	(1996-11-22)

World Wide Web Consortium

	<World-Wide Web, body> (W3C) The main standards body for the
	{World-Wide Web}.  W3C works with the global community to
	establish international {standards} for {client} and {server}
	{protocols} that enable on-line commerce and communications on
	the {Internet}.  It also produces reference software.

	W3C was created by the {Massachusetts Institute of Technology}
	(MIT) on 25 October 1994.  {Netscape Communications
	Corporation} was a founding member.  The Consortium is run by
	{MIT LCS} and {INRIA}, in collaboration with {CERN} where the
	web originated.  W3C is funded by industrial members but its
	products are freely available to all.  The director is Tim
	Berners-Lee who invented the {World-Wide Web} at the Center
	for European Particle Research (CERN).

	{(http://w3.org/)}.

	(1996-11-03)

World-Wide Web Worm

	<World-Wide Web> (WWWW) One of the first automatic indexing
	tools for the {World-Wide Web}, being developed in September
	1994 by Oliver McBryan <mcbryan@cs.colorado.edu> at the
	{University of Colorado}.  The worm created a database of
	300000 {multimedia} objects which can be obtained or searched
	for keywords via the WWW.

	{(http://cs.colorado.edu/home/mcbryan/WWWW.html)}.

	(1996-05-19)

WORM

	{Write-Once Read-Many}

worm

	<networking, security> (From "Tapeworm" in John Brunner's
	novel "The Shockwave Rider", via {XEROX PARC}) A program that
	propagates itself over a network, reproducing itself as it
	goes.  Compare {virus}.  Nowadays the term has negative
	connotations, as it is assumed that only {crackers} write
	worms.

	Perhaps the best-known example was the {Great Worm}.

	Compare {Trojan horse}.

	[{Jargon File}]

	(1996-09-17)

wormhole

	{back door}

wormhole routing

	<messaging> A property of a {message passing} system in which
	each part of a message is transmitted independently and one
	part can be forwarded to the next {node} before the whole
	message has been received.  All parts of a single message
	follow the same route.

	The independent parts are normally small, e.g. one 32-bit
	word.  This reduces the {latency} and the storage requirements
	on each node when compared with {message switching} where a
	node receives the whole message before it starts to forward it
	to the next node.  It is more complex than message switching
	because each node must keep track of the messages currently
	flowing through it.

	With {cut-through switching}, wormhole routing is applied to
	{packets} in a {packet switching} system so that forwarding of
	a packet starts as soon as its destination is known, before
	the whole packet had arrived.

	(2003-05-15)

WOSA

	{Windows Open Services Architecture}

WOSA Extensions for Financial Systems

	{Extensions for Financial Services}

WOSA/XFS

	{Extensions for Financial Services}

wound around the axle

	{infinite loop}

WPA

	{Wi-Fi Protected Access}

WPA Pre-Shared Key

	{Wi-Fi Protected Access Pre-Shared Key}

WPA-PSK

	{Wi-Fi Protected Access Pre-Shared Key}

WPG

	{Workstation Products Group}

WPI

	{Worcester Polytechnic Institute}

WPL+

	Word-oriented language internal to PRODOS Applewriter 2.1.
	Available on GEnie.

WPOP

	WonderPop.  Robert Rae <rhr@aiai.ed.ac.uk>, Edinburgh 1976.
	An implementation of POP for the PDP-10 that used cages for
	different data types.  Introduced processes, properties, and
	some typed identifiers.

wps

	<unit> (Obsolete) Words per second (mostly used for {Telex}
	and {TWX} transmission).

	(1997-01-07)

WRAM

	{Window Random Access Memory}

wrap around

	(Or "wraparound", "wrap") The action of a counter that starts
	again at zero or at "minus infinity" (see {infinity}) after
	its maximum value has been reached, and continues
	incrementing, either because it is programmed to do so or
	because of an overflow (as when a car's odometer starts again
	at 0).

	[{Jargon File}]

wrapper

	<programming> Code which is combined with another piece of
	{code} to determine how that code is executed.  The wrapper
	acts as an interface between its caller and the wrapped code.
	This may be done for compatibility, e.g. if the wrapped code
	is in a different programming language or uses different
	calling conventions, or for security, e.g. to prevent the
	calling program from executing certain functions.  The
	implication is that the wrapped code can only be accessed via
	the wrapper.

	(1998-12-15)

wrats nest

	<hardware, jargon> (From "wrap" and "rats nest") A
	{wire-wrapping} defect where all of the wire piles up around
	the bottom of the post instead of wrapping smoothly around it.
	It looks like a little bird nest.

	(1997-03-18)

wrb

	{Web Request Broker}

write

	1. <chat> {Unix}'s simple {talk} command and {protocol}.
	write has been largely superseded by {talk} and then {irc}.

	An enhancement, {RWP}, has been proposed.

	2. <tool> A simple {text editor} for {Windows}.

	(1998-04-28)

WRITEACOURSE

	<language> A {CAI} language for {IBM 360}.

	["WRITEACOURSE: An Educational Programming Language", E. Hunt
	et al, Proc FJCC 33(2) 1968].

	(1998-04-28)

write-back

	<memory management> A {cache} architecture in which data is
	only written to main memory when it is forced out of the
	cache.

	Opposite of {write-through}.  See also {no-write allocation}.

	(1996-06-12)

write buffer

	{buffered write-through}

Write-Once Read-Many

	<storage> (WORM) Any type of storage medium to which data can
	be written to only a single time, but can be read from any
	number of times.  Typically this is an {optical disk} whose
	surface is permanently etched using a laser in order to record
	information.  WORM media have a significantly longer shelf
	life than magnetic media and thus are used when data must be
	preserved for a long time.

	(1996-04-01)

write-only code

	[a play on "read-only memory"] Code so arcane, complex, or
	ill-structured that it cannot be modified or even comprehended
	by anyone but its author, and possibly not even by him/her.  A
	{Bad Thing}.

	[{Jargon File}]

write-only language

	A language with syntax (or semantics) sufficiently dense and
	bizarre that any routine of significant size is automatically
	{write-only code}.  A sobriquet applied occasionally to C and
	often to APL, though {INTERCAL} and {TECO} certainly deserve
	it more.

write-only memory

	1. <jargon, humour> (WOM) The obvious antonym to "{read-only
	memory}" (ROM).

	Out of frustration with the long and seemingly useless chain
	of approvals required of component specifications, during
	which no actual checking seemed to occur, an engineer at
	{Signetics} once created a specification for a write-only
	memory and included it with a bunch of other specifications to
	be approved.  This inclusion came to the attention of
	Signetics {management} only when regular customers started
	calling and asking for pricing information.  Signetics
	published a corrected edition of the data book and requested
	the return of the "erroneous" ones.  Later, around 1974,
	Signetics bought a double-page spread in "Electronics"
	magazine's April issue and used the spec as an April Fools'
	Day joke.  Instead of the more conventional characteristic
	curves, the 25120 "fully encoded, 9046 x N, Random Access,
	write-only-memory" data sheet included diagrams of "bit
	capacity vs. Temp.", "Iff vs. Vff", "Number of pins remaining
	vs. number of socket insertions", and "AQL vs. selling price".
	The 25120 required a 6.3 VAC VFF supply, a +10V VCC, and VDD
	of 0V, +/- 2%.

	2. {bit bucket}.

	[{Jargon File}]

	(2007-03-24)

write protect

	<storage> A feature of certain {removable media} storage
	devices that tells the system whether or not it should allow
	the data on the media to be modified.  Write protecting an
	item of media prevents accidental overwriting of valuable
	data.

	For example, the write protect tab on a 3.5-inch {floppy
	disks} is a small sliding plastic square that can either cover
	or expose a hole near the edge of the disk cover.  The drive
	wil only allow the disk to be written to if the hole is
	closed.

	(2007-03-24)

write-through

	<architecture> (Or "write-thru") A {cache} architecture in
	which data is written to main memory at the same time as it is
	cached.

	Opposite of {write-back}.  See also {buffered write-through},
	{posted write-through}, {no-write allocation}.

	(1996-06-12)

write-thru

	{write-through}

writing system

	<human language, character> The set of {glyphs} used for
	representing a given human language in written form, generally
	along with their conventions for use.

	(1998-10-19)

Wrong Thing

	<jargon> A design, action, or decision that is clearly
	incorrect or inappropriate.  Often capitalised; always
	emphasised in speech as if capitalised.  The opposite of the
	{Right Thing}; more generally, anything that is not the Right
	Thing.  In cases where "the good is the enemy of the best",
	the merely good - although good - is nevertheless the Wrong
	Thing. "In C, the default is for module-level declarations to
	be visible everywhere, rather than just within the module.
	This is clearly the Wrong Thing."

	[{Jargon File}]

WRT

	with regard to, with respect to.

ws

	<networking> The {country code} for Samoa.

	(1999-01-27)

WSBPEL

	{Web Services Business Process Execution Language}

WSDL

	{Web Service Definition Language}

WSFN

	{Which Stands For Nothing}

WSL

	Waterloo Systems Language.  A {C}-like systems programming
	language.

	["Waterloo Systems Language: Tutorial and Language Reference",
	F.D.  Boswell, WATFAC Publications Ltd., Waterloo, Canada.
	ISBN 0-919884-00-8].

WTF

	who/what/why the fuck?  The universal interrogative particle.
	Also {WTH}.

WTFPL

	{Do What the Fuck You Want to Public License}

WTH

	who/what/why the hell?  Also {WTF}.

WTLS

	{Wireless Transport Layer Security}

Wumpus

	{Hunt the Wumpus}

WWW

	{World-Wide Web}

WWW browser

	<hypertext, World-Wide Web> A {browser} for use on the
	{World-Wide Web}.

	(1996-10-28)

WWWW

	{World-Wide Web Worm}

WYGIWYNTYH

	{What You Get Is What You Never Thought You Had}

WYSIAYG

	{What You See Is All You Get}

WYSIWYG

	{What You See Is What You Get}

WYSWYG

	{What You See Is What You Get}

X

	1. <convention> Used in various speech and writing contexts
	(also in lowercase) in roughly its algebraic sense of "unknown
	within a set defined by context" (compare {N}).  Thus, the
	abbreviation {680x0} stands for 68000, 68010, 68020, 68030 or
	68040, and {80x86} stands for {Intel 80186}, {Intel 80286},
	{Intel 80386} or {Intel 80486}.  A {Unix} hacker might write
	these as 680[0-4]0 and 80[1-4]86 or 680?0 and 80?86
	respectively; see {glob}.

	2. <graphics> An alternative name for the {X Window System}.

	3. <storage> A suffix for the speed of a {CD-ROM} drive
	relative to standard music CDs (1x).  32x is common in
	September 1999.

	[{Jargon File}]

	(1999-09-15)

X-1

	<language> An early system on the {UNIVAC I} or II.

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

	(1995-05-10)

X11R4

	Version 11 release 4 of the X protocol.  See {X Window
	System}.

X11R5

	Version 11 release 5 of the X protocol.  Released in June
	1994.  See {X Window System}.

X11R6

	<operating system> Version 11 release 6 of the {X Window
	System}.

	[Release date?]

	(1995-01-20)

X.12

	<standard> The American equivalent of UN/{EDIFACT} and various
	other national and industry {EDI} messaging {protocols}.  The
	first {Y2K ready} version of X.12 is version 4010.

	[What's "UN"?  Details?  Differences from EDIFACT?]

	(1999-09-10)

X2

	<protocol> A proprietary modem standard developed by {US
	Robotics} for 56 {kbps} communications.  Not taken up as
	widely as {K56flex} and will shortly be superseded by the
	official {V.90} standard.

	(1998-09-08)

X.208

	{Abstract Syntax Notation 1}

X.209

	{Basic Encoding Rules}

X.21

	<communications, standard> A digital signaling interface
	recommended by {ITU-T} that includes specifications for
	{DTE}/{DCE} physical interface elements, alignment of {call
	control} characters and error checking, elements of the call
	control phase for {circuit switched} services, data transfer
	at up to 2 {Mbps}, and {test loops}.  64 {kbps} is the most
	commonly used transfer rate.

	(2000-02-28)

X.214

	{transport layer}

X.215

	{session layer}

X.216

	{presentation layer}

X.217

	{Association Control Service Element}

X.219

	{Remote Operations Service Element}

X.224

	{transport layer}

X.225

	{session layer}

X.226

	{presentation layer}

X.227

	{Association Control Service Element}

X.229

	{Remote Operations Service Element}

X.25

	<protocol, standard> An {ITU-T} {standard} {protocol} suite
	for the {DTE}-{DCE} interface in a {packet-switched} network,
	approved by {ISO}.  X.25 defines standard {physical layer},
	{data link layer} and {network layers} (layers 1 through 3).
	It was developed to describe how data passes into and out of
	public data communications networks.  X.25 networks are in use
	throughout the world.

	Document: {ISO} 8208.

	Several other {ITU-T} recommendations are relevant to {packet
	switching}: {X.3}, {X.28}, {X.29}, {X.75}.

	(1996-08-10)

X.28

	The {ITU-T} standard specifying how to control a {PAD} from
	{character-mode} {DTE}, approved by {ISO}.

	(1995-01-31)

X.29

	The {ITU-T} {standard}, approved by {ISO}, specifying
	procedures for the exchange of control information and user
	data between a {PAD} and a remote {packet-mode} {DTE}.
	{Character-mode} {DTEs} are often referred to as X.29
	terminals.

	(1995-01-31)

X.3

	The {ITU-T} {standard}, approved by {ISO}, which specifies the
	basic functions and user-selectable capabilities of a {PAD}.

	(1995-01-31)

X3J16

	The {C++} {standard} technical committee.

X3T10

	<body> The {ATA} standards body.

	(1996-10-16)

X.400

	<messaging> The set of {ITU-T} communications standards
	covering {electronic mail} services provided by data networks.
	X.400 was widely used in Europe and Canada.

	X.400 addresses tend to be much longer than {RFC 822} ones.
	They consist of a set of bindings for country (c),
	{administrative domain} (a), {primary management domain} (p),
	surname (s), given name (g).

	For example, the X.400 address,

		c=gb;a=attmail;p=Universal Export;s=Bond;g=James;

	might be equivalent to RFC 822

		James.Bond@UniversalExport.co.uk

	[Reference?]

	(2003-06-24)

X.409

	<standard, messaging> Part of the {X.400} {electronic mail}
	specification which included the original definition of
	{Abstract Syntax Notation 1}.

	[What was it about?]

	(1998-08-06)

X.500

	<standard, networking> The set of {ITU-T} {standards} covering
	electronic directory services such as {white pages},
	{Knowbot}, {whois}.

	Compare: {LDAP}.

	(1994-12-06)

X.680

	<standard>

	[Is it {Coordinated Universal Time} or {Abstract Syntax
	Notation 1}?]

	(1999-12-09)

X.75

	The {ITU-T} {standard} specifying the {protocols} for
	communication between two {PSDNs}.

	(1995-01-31)

x86

	{Intel 80x86}

x86 processor socket

	<hardware, standard> One of the series of standard sockets
	into which you can plug various {x86} {microprocessors}.
	These vary in the number of pins, package, voltages, bus
	speeds, and supported processors.  {Motherboards} often have
	{clock multipliers} so that the processor runs at a multiple
	of the bus speed.

	Socket 1, 169 pin {LIF}/{ZIF} {PGA} (17x17), 5v, 16-33 MHz
	{486 SX}, {486 DX}, {486 DX2}, {DX4 Overdrive}.  Socket 1 was
	the first standard {Intel 486} socket.

	Socket 2, 238 pin LIF/ZIF PGA (19x19), 5v, 25-50 MHz 486 SX,
	486 DX, 486 DX2, 486 DX4, DX4 & {Pentium Overdrive}.  Updated
	Socket 1, added support for Pentium Overdrive processors.

	Socket 3, 237 pin LIF/ZIF PGA (19x19), 3.3/5v, 25-50 MHz 486
	SX, 486 DX, 486 DX2, 486 DX4, DX4 & Pentium Overdrive.
	Supports 5V & 3.3V processors, considered the latest 486
	socket.

	Socket 4, 273 pin LIF/ZIF PGA (21x21), 5v, 60/66 MHz Pentium
	60/66 and Pentium Overdrive, only 5v.

	Socket 5, 296 pin LIF/ZIF, 320 pin LIF/ZIF {SPGA} (19x19 or
	37x37), 3.3v, 50/60/66 MHz Pentium 75 - 133MHz, Pentium
	Overdrive, only 3.3v.

	Socket 6, 235 pin ZIF PGA (19x19), 3.3v, 25-40MHz.  Unpopular
	advanced Socket 3, rarely seen / paper spec 486 DX4, Pentium
	Overdrive, only 3.3v.

	See also {Socket 7}, {Socket 8}, {Super 7}, {Slot 1}, {Slot
	2}, {Slot A}.

	{CPU Sockets chart
	(http://users.erols.com/chare/sockets.htm)}.

	{CPU Sockets (http://webm3308.ntx.net/cpusockets.htm)}.

	(1999-08-05)

XA

	{Extended Architecture}

	A specification for drives which can play {CD-ROMs} in {Green
	book CD-ROM} format.

	(1994-12-06)

Xaw

	The {Athena} {Widget} Set.  A set of widgets distributed with
	the {X Window System}.

	(1994-11-02)

Xbase

	Generic term for the {dBASE} family of {database} languages.
	Coined in response to threatened litigation over use of the
	copyrighted trademark "dBASE."

xbeeb

	A {BBC Microcomputer} {emulator} for {Unix} and {X11} by James
	Fidell <jfid@mfltd.co.uk>.  Posted to {alt.sources}.

	{(ftp://ftp.pipex.net/incoming/xbeeb)}.

	(1994-08-18)

xbm

	<filename extension> X bit map.  The {filename extension} for
	files containing {bitmaps} for use in the {X Window System}.

	These are actually {include files} which can be #include'd
	into {C} program source to define images as initialised data.

	(1995-03-14)

XC

	A {declarative} extension of {C++}.

	["XC - A Language for Embedded Rule Based Systems", E. Nuutila
	et al, SIGPLAN Notices 22(9):23-32 (Sep 1987)].

X client

	An application process in the {X Window System}.  It gains
	access to windowing services via the Xlib library.  These are
	translated by the system into {X protocol} messages to an {X
	server}.

X Consortium

	A vendor consortium supporting development, evolution and
	maintenance of the {X Window System}.  The X Consortium is an
	independent, not-for-profit company.  It was formed in 1993 as
	the successor to the {MIT} X Consortium, a research group of
	the MIT {Laboratory for Computer Science}.

	{(ftp://ftp.x.org)}.  {(http://x.org/)}.

	[Members?]

Xcoral

	A multiwindow mouse-based text editor, for the {X Window
	System} with a built-in browser to navigate through {C}
	functions and {C++} {class}es hierarchies.  Xcoral provides
	variables width {fonts}, menus, {scrollbars}, {buttons},
	search, regions, kill-buffers and 3D look.  Commands are
	accessible from menus or standard key bindings.  Xcoral is a
	direct {Xlib} {client} and runs on colour or monochrome X
	displays.

	{Version 1.72 (ftp://ftp.inria.fr/X/contrib/clients/xcoral*)}.

	(1993-03-14)

xdbx

	<programming, tool> An {X Window System} front end for {dbx}
	developed by Po Cheung at MCC.

	Latest version: 2.1, as of 1992-02-22.

	Posted to comp.sources.x volumes 11, 12, 13, 14, 16.

	(2000-07-12)

X-Designer

	<programming, tool> A {user interface builder} for {Motif}
	from {Imperial Software Technology}.

	{(http://ist.co.uk/xd/)}.

	(1995-10-26)

X.desktop

	A desktop manager for {Unix} from {IXI}.

XDL

	<language> An {object-oriented} extension to {ITU-T}'s {SDL}.

	["XDL: An Object-Oriented Extension to SDL", S.J. Ochuodho et
	al].

	(1995-10-12)

XDR

	{eXternal Data Representation}

XDS 530

	{Xerox Data Systems Model 530}

XDS 940

	{Xerox Data Systems Model 940}

xDSL

	{Digital Subscriber Line}

Xemacs

	<text, tool> (Originally "Lucid Emacs") A text editor for the
	{X Window System}, based on {GNU} {Emacs} version 19, produced
	by a collaboration of {Lucid, Inc.}, {SunPro} (a division of
	{Sun Microsystems, Inc.}), and the {University of Illinois}.

	Lucid chose to build part of {Energize}, their {C}/{C++}
	development environment on top of GNU Emacs.  Though their
	product is commercial, the work on GNU Emacs is {free
	software}, and is useful without having to purchase the
	product.  They needed a version of Emacs with mouse-sensitive
	regions, multiple fonts, the ability to mark sections of a
	buffer as read-only, the ability to detect which parts of a
	buffer has been modified, and many other features.

	The existing version of {Epoch} was not sufficient; it did not
	allow arbitrary {pixmaps} and {icons} in buffers, "undo" did
	not restore changes to regions, regions did not overlap and
	merge their attributes.  Lucid spent some time in 1990 working
	on Epoch but later decided that their efforts would be better
	spent improving Emacs 19 instead.

	Lucid did not have time to get their changes accepted by the
	{FSF} so they released Lucid Emacs as a forked branch of
	Emacs.  Roughly a year after Lucid Emacs 19.0 was released, a
	beta version of the FSF branch of Emacs 19 was released.
	Lucid continued to develop and support Lucid Emacs, merging in
	bug fixes and new features from the FSF branch as appropriate.

	A compatibility package was planned to allow Epoch 4 code to
	run in Lemacs with little or no change.  (As of 19.8, Lucid
	Emacs ran a descendant of the Epoch redisplay engine.)

	[Update?]

	(2000-05-16)

XENIX

	<operating system> A commercial version of {Unix} for
	{microprocessor}-based computers, released by {Microsoft} in
	1980. In 1992, {SCO} became Microsoft's co-development partner
	and the alternate source for the product.

	(1999-12-07)

Xeon

	{Pentium II Xeon}

xerox

	{XEROX Corporation}

XEROX Corporation

	<company> A US company, founded in 1906, specialising in document
	related technology and services including photocopiers, printers
	and office software.  Xerox's acquisition of {Affiliated Computer
	Services} added business process and document management to their
	product range.  In 2013 they have 140,000 employees.

	Their research centre, {XEROX PARC}, prototyped several
	revolutionary advances in computing, which the company failed to
	exploit, including the {WIMP} desktop metaphor and {XEROX Network
	Services}.

	{(http://xerox.com/)}.

	(2013-04-30)

Xerox Data Systems Model 530

	<computer> (XDS 530) A computer from the {Scientific Data
	Systems} range, announced sometime after 1968 when {Xerox}
	bought out SDS.  The XDS 530 was probably under development at
	SDS before the buy-out but only announced afterwards.

	(2004-06-17)

Xerox Data Systems Model 940

	<computer> (SDS 940, XDS 940) A {time-sharing} system,
	announced in February 1966, developed by {Scientific Data
	Systems} with help from The {University of California at
	Berkeley} and {Tymshare}.  SDS 940 was {backward compatible}
	with SDS's previous systems (except the 12-bit {SDS 92}).  It
	had {monitor} and user modes, dynamic program relocation,
	automatic memory fragmentation, and system protection.

	After 1968 {Xerox} bought out SDS and renamed the SDS machines
	"Xerox Data Systems" (XDS).  Xerox then produced the {XDS
	530}.

	(2004-06-17)

XEROX Network Services

	<networking> (XNS)

	[Is this the same as/a misnomer for {Xerox Network System}?]

	(2003-10-05)

Xerox Network System

	<networking> (XNS) A proprietary network architecture
	developed by the Xerox Office Systems Division of {Xerox
	corporation} at {Xerox PARC} in the late 1970s/early 1980s to
	run on {LAN} ({Ethernet}) and {WAN} networks.  The XNS
	{protocol stack} provided {routing} and {packet delivery}.

	Implementations exist for {4.3BSD} derived systems and the
	{Xerox Star} computers.  Novell based much of the lower layers
	of their protocol suite IPX/SPX on XNS.

	The main components are: Internet datagram protocol (IDP),
	Routing information protocol (RIP), Packet Exchange protocol
	(PEP), and Sequences packet protocol (SPP).

	XNS has strong parellels to {TCP/IP} in that the {network
	layer}, IDP, is roughly equivalent to IP.  RIP has the same
	functions (and obviously name) as the routing information
	protocol, RIP.  SPP, a connectionless transport layer
	protocol, is similar to {UDP}.  PEP is also in the transport
	layer but is connection-oriented and similar to TCP.

	XNS specifically is no longer in use due to the all
	pervasiveness of IP.

	XNS denotes not only the protocol stack, but also an
	architecture of standard programming interfaces, conventions,
	and service functions for {authentication}, directory, filing,
	{e-mail}, and {remote procedure call}.  XNS is also the name
	of Xerox's implementation.

	Many PC networking companies, such as {3Com}, {Banyan},
	{Novell}, and {Ungermann-Bass Networks} used or use a
	variation of XNS as their primary transport protocol.  XNS was
	desigined to be used across a variety of communication media,
	processors, and office applications.  UB, (now a part of
	{Tandem Computers}) adopted XNS in developing its {Net/One}
	XNS routing protocol.

	[Or is it "Service(s)"?  Date?]

	(2003-11-10)

XEROX PARC

	/zee'roks park'/ {Xerox Corporation}'s Palo Alto Research
	Center.

	For more than a decade, from the early 1970s into the
	mid-1980s, PARC yielded an astonishing volume of
	ground-breaking hardware and software innovations.  The modern
	mice, windows, and icons ({WIMP}) style of software interface
	was invented there.  So was the {laser printer} and the
	{local-area network}; {Smalltalk}; and PARC's series of D
	machines anticipated the powerful {personal computers} of the
	1980s by a decade.  Sadly, the prophets at PARC were without
	honour in their own company, so much so that it became a
	standard joke to describe PARC as a place that specialised in
	developing brilliant ideas for everyone else.

	The stunning shortsightedness and obtusity of XEROX's
	top-level {suits} has been well described in the reference
	below.

	["Fumbling The Future: How XEROX Invented, Then Ignored, the
	First Personal Computer" by Douglas K. Smith and Robert
	C. Alexander (William Morrow & Co., 1988, ISBN
	0-688-09511-9)].

	[{Jargon File}]

	(1995-01-26)

Xerox Star

	{Xerox 8010}

XFree86 Project, Inc.

	<operating system, graphics> A non-profit organisation that
	produces XFree86, a freely redistributable implementation of
	the {X Window System} that runs on {Unix} and Unix-like
	operating systems and {OS/2}.  The XFree86 Project has
	traditionally focused on {Intel x86} based {platforms} (hence
	the "86"), but the current release supports other platforms.

	{(http://xfree86.org/)}.

	(1999-04-02)

XFS

	{Extensions for Financial Services}

Xfun

	A {polymorphic} {functional language} which is a cross between
	{SML} and {Russell}, developed by S. Dalmas
	<dalmas@sophia.inria.fr> of {INRIA} in 1991, and intended for
	{computer algebra}.

	["A Polymorphic Functional language Applied to Symbolic
	Computation", S. Dalmas, Proc Intl Symp Symb Alg Comp,
	Berkeley 1992].

	(1995-02-03)

XGA

	{eXtended Graphics Array}

XGA-2

	{eXtended Graphics Array}

XHTML

	{Extensible HyperText Markup Language}

Xi

	A {VLSI} design language.

	["The Circuit Design Language Xi", S.I. Feldman, unpublished
	memo, Bell Labs, 1982].

	[Mentioned in Computational Aspects of VLSI, J.D. Ullman, CS
	Press 1984].

	(1995-02-03)

XIE

	{X Image Extension}

Xilinx, Inc.

	<company> The electronics company who invented the {FPGA}.

	Xilinx was founded in San Jose, California, in 1984, and
	invented the {field-programmable gate array}.  They claim to
	command more than half of the world market for these devices
	today.  More recent innovations include {complex programmable
	logic devices}.

	{(http://xilinx.com/)}.

	Address: 2100 Logic Drive, San Jose, CA 95124, USA.

	(1998-09-25)

Xilinx Netlist Format

	<language, electronics> (XNF) A {Hardware Description
	Language} for electronic circuit design, developed by {Xilinx,
	Inc.}.

	{Xilinx}-developed tools use XNF and handle the details of the
	{FPGA} architecture.  Converters are available for a number of
	widely-used {HDLs} - for example {Verilog} ({xnf2ver}) - so
	that designers can use familiar tools to develop Logic Cell
	Array designs.  In addition, XNF can be converted to the input
	language of different {logic simulators}.

	{Specification
	(ftp://ftp.xilinx.com/pub/documentation/xactstep6/xnfspec.pdf)}.

	(1999-03-31)

X Image Extension

	(XIE) Extensions to the {X protocol} to handle {images}.

	(1995-02-03)

Xlib

	X library: program interface to the {X Window System}.

xlisp

	{eXperimental LISP}

xls

	<filename extension> {Excel} {spreadsheet}.

	(1995-10-17)

XML

	{Extensible Markup Language}

XML schema

	<data> {XML} data that describes the relationship between
	elements and attributes in some other class of XML data.  A
	schema may or may not include data type representations.  XML
	schemas are a more advanced alternative to {DTD}s.

	{(http://vbxml.com/conference/wrox/2000_vegas/text/kurt_schema.asp)}

	(2006-08-23)

XML Template Pages

	<World-Wide Web> (XTP) {JSP} transformed by {XSL} stylesheets.
	An XTP page is basically a JSP page which specifies an XSL
	stylesheet.  The XSL specifies how selected tags in the XTP
	page should be rewritten.  All other tags are passed through
	unchanged and so treated as standard JSP.  JSP programmers can
	use XTP used as an easy introduction to XSL, incrementally
	applying styles to their pages.

	{Caucho (http://caucho.com/resin/ref/xtp.xtp)}.

	(2003-07-13)

XML User-Interface Language

	<language> (XUL) An {XML}-based language created for the
	{Mozilla} {browser} for development of {cross-platform} {user
	interfaces}.  XUL supports input {controls} such as
	{textboxes} and {checkboxes}, {toolbars}, {menus}, {dialogs},
	{trees}, {keyboard shortcuts}, and more.

	{XULPlanet (http://xulplanet.com/)}.

	(2003-06-14)

XMM

	{Extended Memory Manager}

XMODEM

	<communications> {Ward Christensen}'s file transfer
	{protocol}, probably the most widely available protocol used
	for file transfer over {serial lines} (e.g. between {modems}).
	XMODEM uses 128-byte {packets} with {error detection},
	allowing the receiver to request retransmission of a corrupted
	packet.  XModem is fairly slow but reliable.

	Several variations have been proposed with increasing packet
	sizes (e.g. {XMODEM-1K}) and different error detection ({CRC}
	instead of {checksum}) to take advantage of faster modems.
	Sending and receiving programs can negotiate to establish the
	best protocol they both support.

	John Mahr wrote the original XMODEM CRC error correction code.
	This implementation was backward compatible with Christensen's
	original checksum code.  It improved the error detection from
	98% to 99.97% and improved the reliability of transmitting
	{binary files}.

	Standard XMODEM specifies a one-second {timeout} during the
	reception of characters in the data block portion of a packet.

	Chuck Forsberg improved upon XMODEM by developing {YMODEM} and
	{ZMODEM}.

	[Chuck Forsberg, "XMODEM/YMODEM Protocol Reference"].

	(2005-09-16)

XMODEM-1K

	A version of {XMODEM} using 1 kilobyte {packets}.

xmosaic

	{Mosaic} for the {X Window System}.

XMS

	<storage> {Extended Memory Specification}.

	(1996-01-10)

XNF

	{Xilinx Netlist Format}

xnf2ver

	An {XNF} to {Verilog} translator by Martin J. Colley
	<martin@essex.ac.uk>.

	This program was written by a postgraduate student as part of
	his M.Sc course.  It was designed to form part a larger system
	operating with the Cadence Edge 2.1 framework.  This should be
	born in mind when considering the construction and/or
	operation of the program.

	{(ftp://punisher.caltech.edu/pub/dank/xnf2ver.tar.Z)}.

XNS

	{Xerox Network System} or Xerox Network Services.

	[Which?]

XOFF

	{control-S}

XON

	{control-Q}

XON/XOFF

	{software handshaking}

Xopen

	{X/Open}

X/Open

	<body> An international consortium of vendors who defined the
	X/Open {Common Applications Environment} to provide
	{applications} {portability}.  They also produced the {X/open
	Portability Guide} (XPG).

	(1994-12-01)

X/open Portability Guide

	(XPG) A document which defines the interfaces of the {X/Open}
	{Common Applications Environment}.

	Version: XPG3.

	(1994-12-01)

X/Open System Interface

	<standard> (XSI) Part of the {X/Open} {Common Applications
	Environment}.

	(1994-11-03)

xor

	{exclusive or}

XP

	{Windows XP}

XPC

	eXplicitly Parallel C.

	A dialect of {Parallel C} which is efficiently compilable to
	both {SIMD} and {MIMD} architectures.  Only research
	implementations exist.

	["Toward Semantic Self-Consistency in Explicitly Parallel
	Languages," M.J. Phillip & H.G. Dietz, Proc 4th Intl Conf on
	Supercomputing, Santa Clara, CA, May 1989, v.1, pp.398-407].

	(1994-12-01)

XperCASE

	A structure diagram editor for developing, re-engineering,
	maintaining and documenting programs, developed by {Siemens}
	AG, Austria.  It runs under {Microsoft Windows}.

	{(ftp://src.doc.ic.ac.uk/computing/systems/ibmpc/simtel/windows3/xperspx1.zip)}.

	E-Mail: <100141.2120@compuserve.com>.

	(1994-12-01)

XPG

	{X/open Portability Guide}

XPG3

	Version 3 of the {X/open Portability Guide}.

XPL

	A small dialect of {PL/I} used for compiler writing from
	Stanford, 1967-69.  XPL has
	one-dimensional {arrays}.  I/O is achieved with character
	pseudo-variable INPUT and OUTPUT, e.g.

		OUTPUT = 'This is a line';

	It has inline {machine code}.  "Programmers are given all the
	rope they ask for.  Novices tend to hang themselves fairly
	frequently."  XPL has been implemented on {IBM 360}, {Univac
	1100}, {ICL System 4}, {CDC 6000} and {Cyber} series, {XDS
	Sigma-5} and {Sigma-7} and {DEC} {PDP-10}.

	An optimising XPL compiler (version 1) by Robin Vowels
	<robin_vowels@rmit.edu.au> is a standard implementation of XPL
	and is based on McKeeman, Horning, and Wortman's improved
	{XCOM} (which employs hashed symbol table generation).  It
	includes the extra built-in function COREHALFWORD.

	The following areas have been optimised: procedures calls when
	the argument and corresponding parameter are of the same type,
	and when the argument is a constant; constant subscripts; use
	of CORELHALFWORD and COREWORD; string constants of length one;
	iterative DO statements by transferring code to the end of the
	loop.

	String constants of length one do not require a descriptor,
	hence more descriptors are available for string variables.
	Comparison operations are treated as commutative, and an
	improved Commute algorithm is used.  Halfword instructions are
	generated for BIT(16) variables.

	These areas have been improved or re-written: calls on OUTPUT,
	catenation, integer-to-string conversion, multiply, divide,
	and MOD.  An emitter for SS-type instructions has been added.
	The compiler achieves an 11% reduction in object code
	compiling itself, an 11% increase in compilation rate, a 55%
	increase in compilation speed when the $E toggle is set.
	Special treatment for catenating a string to an integer
	substantially decreases consumption of the free string area,
	and decreases string moves.  The latter improvement is most
	noticeable on small core machines.

	Core requirements: less than the improved XCOM on which it is
	based (approx. 98000 bytes).  Symbol table size is 468.
	Ported to {IBM} {System 370}.  The compiler is written in XPL.
	The code generators are machine-specific.

	["A Compiler Generator," W.M. McKeeman et al, P-H 1970].

	[JCC, AFIPS 1968].

	(1993-08-07)

xpm

	<file format> X11 Pixmap.

	A {pixmap} image {file format} for the {X Window System}.

	(1995-04-28)

XPOP

	<language> An extensible {macro assembly} language with
	user-redefinable {grammar}, for use with {FAP}.

	["XPOP: A Meta-language Without Metaphysics", M.I. Halpern,
	Proc FJCC 25:57-68, AFIPS (Fall 1964)].

	(1995-04-28)

XP Pro

	{Windows XP Professional Edition}

Xpress Transport Protocol

	<networking, protocol> (XTP) A {transport layer} {protocol}
	for high-speed networks promoted by the {XTP Forum}.  XTP
	provides protocol options for error control, {flow control},
	and rate control.  Instead of separate protocols for each type
	of communication, XTP controls {packet} exchange patterns to
	produce different models, e.g. reliable {datagrams},
	{transactions}, unreliable {streams}, and reliable {multicast}
	connections.

	{XTP Home (http://ca.sandia.gov/xtp/)}.

	Contrast with {Transmission Control Protocol}.  XTP does not
	employ {congestion} avoidance {algorithms}.

	(2003-03-22)

X protocol

	<networking, protocol> A {standard} {protocol} used by
	{clients} (applications) and {servers} in the {X Window
	System} for exchanging requests for window operations.

	(1995-04-28)

xref

	/X'ref/ 1. cross-reference.

	2. A cross-reference generator tool by Jim Leinweber.

	(1985?)

	[{Jargon File}]

XRemote

	A {serial line} protocol for the {X Window System}.

XRN

	A newsreader program for {Usenet} news running under the {X
	Window System}.

XSB

	<logic programming> XSB extends the standard functionality of
	Prolog (being a descendant of PSB- and SB-Prolog) to include
	implementations of OLDT (tabling) and HiLog terms.  OLDT
	resolution is extremely useful for recursive query
	computation, allowing programs to terminate correctly in many
	cases where Prolog does not.  HiLog supports a type of
	higher-order programming in which predicate symbols can be
	variable or structured. This allows unification to be
	performed on the predicate symbols themselves in addition to
	the arguments of the predicates.  Of course, Tabling and HiLog
	can be used together.

	Version 1.2

	ports: Sun, Solaris, NeXT, Linux, 386 BSD, IRIX, HP-UX

	portability:	Generally to 32-bit machines.

	interpreter, preprocessor(HiLog), documentation

	XSB research group / SUNY at Stony Brook

	{(ftp://sbcs.sunysb.edu/pub/XSB/XSB.tar.Z)}.

	(130.245.1.15) E-mail: <xsb-contact@cs.sunysb.edu>.

	(1993-07-28)

XScheme

	<language> {Scheme} in {C} with {object-oriented} extensions
	by David Betz.

	Version 0.28 runs on {IBM PC}, {Macintosh}, {Atari} and
	{Amiga}.

	{(ftp://labrea.stanford.edu/comp.sources.amiga/volume90)}.
	{(ftp://nexus.yorku.ca/pub/scheme/)}.

	{Usenet} newsgroup: {news:comp.lang.lisp.x}.

	(1992-02-02)

x-scm

	<language> An accessory for the {scm} {Scheme} {interpreter},
	by Larry Campbell, that provides an environment for building
	{Motif} and {OpenLook} {application programs}.  There is some
	support as well for raw {Xlib} applications, but not enough
	yet to be useful.

	Posted to {alt.sources}.

	(1992-08-10)

XSD

	{XML Schema Definition}

X server

	<graphics, operating system> A process, in an {X Window
	System} which controls a {bitmap display} device and usually
	also a {keyboard} and {mouse} or other {pointing device}.  The
	X server performs operations on request from {client}
	{applications}, which may be on the same computer or a
	different computer connected via a {network}.

	Note that typical {client-server} architectures do
	{input-output} on the client and processing on the server
	whereas in X the terms are reversed as the X server is serving
	IO rather than processing resources to the application.

	If the two computers are not both {Unix} machines (e.g. one is
	a {Windows} machine running {VNC}) or if a more secure
	connection is required (e.g. tunneling with {ssh}), the
	clients may talk to a {proxy} X server that forwards the
	requests to another machine where the real IO takes place.

	(2006-08-29)

XSI

	{X/Open System Interface}

XSL

	{Extensible Stylesheet Language}

XSLT

	{Extensible Stylesheet Language Transformations}

XT

	{IBM PC XT}

Xt

	The {intrinsics} of the {X Window System} Toolkit.

	[What does that mean?]

XT bus architecture

	<hardware, architecture> (After the {IBM PC XT}) An eight-bit
	{ISA} bus architecture used by {Intel 8086} and {Intel 8088}
	systems in the {IBM PC} and {IBM PC XT} in the 1980s.  It
	predates the 16-bit ISA architecture used on the {Intel 80286}
	based machines.

	The XT bus has four {DMA} channels, of which three are brought
	out to the {expansion slots}.  Of these three, two are
	normally allocated to machine functions:

	 DMA channel  Expansion	 Standard function
	 0	      No	 {dynamic RAM} refresh
	 1	      Yes	 add-on cards
	 2	      Yes	 {floppy disk} controller
	 3	      Yes	 {hard disc} controller

	(1997-09-15)

xterm

	<operating system> A {terminal emulator} program for the {X
	Window System}.  A user can have many different invocations of
	xterm running at once on the same display, each of which
	provides independent input and output for the process running
	in it (normally a {shell}).

	(1996-08-23)

X terminal

	<hardware> An {intelligent terminal} which operates as an {X
	server} directly connected to {Ethernet}.

	Not to be confused with the program {xterm} which is an {X
	client}.

	(1996-08-23)

XTI

	{X/open Transport Interface}

XTP

	{Xpress Transport Protocol}

	{XML template pages}

XTP Forum

	<body> A consortium of for- and non-profit companies and
	research organisations promoting {Xpress Transport Protocol}.

	{XTP Forum Home (http://ca.sandia.gov/xtp/forum.html)}.

	(2003-03-22)

XTRAN

	{Fortran}-like, interactive language.

XUI

	X User Interface: program interface to the {X Window System}
	supported by {DEC}.

XUL

	{XML User-Interface Language}

Xv++

	A library of classes from Interface Engineering, Stevenage,
	providing a C++ Application Programmer's Interface to the
	XView toolkit.

XVGA

	{eXtended Video Graphics Array}

XView

	A toolkit from Sun, derived from SunView, providing an Open
	Look user interface for X applications.

XVT

	eXtensible Virtual Toolkit: a product allowing applications to
	be developed independent of GUI.

X-Windows

	<spelling> A common misnomer for the {X Window System}.

	(1997-06-10)

X Window System

	<operating system, graphics> A specification for
	device-independent windowing operations on {bitmap display}
	devices, developed initially by {MIT}'s Project {Athena} and
	now a {de facto standard} supported by the {X Consortium}.  X
	was named after an earlier window system called "W".  It is a
	window system called "X", not a system called "X Windows".

	X uses a {client-server} protocol, the {X protocol}.  The
	server is the computer or {X terminal} with the screen,
	keyboard, mouse and server program and the clients are
	{application programs}.  Clients may run on the same computer
	as the server or on a different computer, communicating over
	{Ethernet} via {TCP/IP} protocols.  This is confusing because
	{X clients} often run on what people usually think of as their
	server (e.g. a file server) but in X, it is the screen and
	keyboard etc. which is being "served out" to the applications.

	X is used on many {Unix} systems.  It has also been described
	as over-sized, over-featured, over-engineered and incredibly
	over-complicated.  X11R6 (version 11, release 6) was released
	in May 1994.

	{(http://x.org/)}.

	See also {Andrew project}, {PEX}, {VNC}, {XFree86}.

	{Usenet} newsgroups: {news:comp.windows.x}, {news:comp.x},
	{news:comp.windows.x.apps}, {news:comp.windows.x.intrinsics},
	{news:comp.windows.x.announce}, {news:comp.sources.x},
	{news:comp.windows.x.motif}, {news:comp.windows.x.pex}.

	(1999-04-02)

XWIP

	X Window Interface for Prolog.  A package for {Prologs}
	following the {Quintus} {foreign function} interface
	(e.g. {SICStus Prolog}).  XWIP provides a (low-level)
	{Xlib}-style interface to {X}.  The current version was
	developed and tested on SICStus 0.7 and {MIT} {X11} R5 under
	{SunOS} 4.1.1.  It should be adaptable to many other {Unix}
	configurations.  Version 0.6.

	{(ftp://export.lcs.mit.edu/contrib/xwip-0.6.tar.Z)}.  E-mail:
	<xwip@cs.ucla.edu>.

	(1993-02-25)

xxgdb

	An {X11} front end for {gdb} by Pierre Willard
	<pierre@la.tce.com>.  Version 1.06.

	Posted to comp.sources.x volumes 11, 12, 13, 14, & 16.

	(1992-02-22)

XXX

	/X-X-X/ A marker that attention is needed.  Commonly used in
	program comments to indicate areas that are {kluge}d or need
	to be.  Some hackers liken "XXX" to the notional heavy-porn
	movie rating.  Compare {FIXME}.

	[{Jargon File}]

Xy-pic

	<graphics, publication> A package for {typesetting} graphs and
	diagrams using {TeX}.  It is structured as several modules,
	each defining a custom notation for a particular kind of
	graphical object or structure.  Example objects are arrows,
	curves, and frames.  These can be organised in matrix,
	{directed graph}, path, polygon, knot, and 2-cell structure.

	Xy-pic works with {LaTeX}, {AMS-LaTeX}, {AMS-TeX}, and {plain
	TeX}, and has been used to typeset complicated diagrams from
	many application areas including {category theory}, {automata}
	theory, {algebra}, {neural networks} and {database} theory.

	{(http://ens-lyon.fr/~krisrose/Xy-pic.html)}.

	(1997-11-20)

xyzzy

	<games> The {canonical} "magic word" from the {ADVENT}
	adventure game, in which the idea is to explore an underground
	cave with many rooms and to collect the treasures you find
	there.  If you type "xyzzy" at the appropriate time, you can
	move instantly between two otherwise distant points.  If,
	therefore, you encounter some bit of {magic}, you might remark
	on this quite succinctly by saying simply "Xyzzy!"
	"Ordinarily you can't look at someone else's screen if he has
	protected it, but if you type quadruple-bucky-clear the system
	will let you do it anyway."  "Xyzzy!"  Xyzzy has actually been
	implemented as an undocumented no-op command on several OSes;
	in Data General's AOS/VS, for example, it would typically
	respond "Nothing happens", just as {ADVENT} did if the magic
	was invoked at the wrong spot or before a player had performed
	the action that enabled the word.  In more recent 32 bit
	versions, by the way, AOS/VS responds "Twice as much happens".
	See also {plugh}.

	[{Jargon File}]

Y

	1. General purpose language syntactically like {RATFOR},
	semantically like {C}.  Lacks structures and pointers.  Used
	as a source language for Jack W. Davidson and Christopher
	W. Fraser's peephole optimiser which inspired {GCC} {RTL} and
	other optimisation ideas.

	{(ftp://ftp.cs.princeton.edu/pub/y+po.tar.Z)}.  It is a copy
	of the original distribution from the {University of Arizona}
	during the early 80's, totally unsupported.

	["The Y Programming Language", D.R. Hanson, SIGPLAN Notices
	16(2):59-68 (Feb 1981)].

	[Jack W. Davidson and Christopher W. Fraser, "The Design and
	Application of a Retargetable Peephole Optimiser", TOPLAS,
	Apr.  1980].

	[Jack W. Davidson, "Simplifying Code Through Peephole
	Optimisation" Technical Report TR81-19, The University of
	Arizona, Tucson, AZ, 1981].

	[Jack W. Davidson and Christopher W. Fraser, "Register
	Allocation and Exhaustive Peephole Optimisation"
	Software-Practice and Experience, Sep. 1984].

	2. See {fixed point combinator}.

Y2K

	{Year 2000}

YA-

	{Yet Another}

Yaa

	Yet Another Assembler - Macro assembler for GCOS 8 and Mark
	III on Bull DPS-8 machines.  Available from Bull as part of U
	Waterloo Tools package (maintained by <pjf@thinkage.on.ca>).

YABA

	/ya'b*/ [Cambridge] Yet Another Bloody Acronym.  Whenever some
	program is being named, someone invariably suggests that it be
	given a name that is acronymic.  The response from those with
	a trace of originality is to remark ironically that the
	proposed name would then be "YABA-compatible".  Also used in
	response to questions like "What is {WYSIWYG}?"  See also
	{YA-}, {TLA}.

	[{Jargon File}]

yacc

	{Yet Another Compiler Compiler}

YADE

	{Yet Another DSSSL Engine}

YAFIYGI

	<abuse> /yaf'ee-y*-gee/ You asked for it, you got it.

	The command-oriented {ed}/{vi}/{nroff}/{TeX} style of {word
	processing} or other user interfaces which are not {WYSIWYG}.
	What you actually asked for is often not immediately apparent.

	This precise sense of "You asked for it, you got it" seems to
	have first appeared in Ed Post's classic parody "{Real
	Programmers} don't use Pascal"; the acronym is a more recent
	(as of 1993) invention.

	[{Jargon File}]

	(1995-03-13)

YAGNI

	{You aren't gonna need it}

Yahoo

	<World-Wide Web> Yet Another Hierarchical
	Officious/Obstreperous/Odiferous/Organized Oracle.

	(Or a member of a race of brutes in Swift's Gulliver's Travels
	who have the form and all the vices of man, or an uncouth or
	rowdy person).

	Probably the biggest hierarchical index of the {World-Wide
	Web}.  Originally at {Stanford University}, Yahoo moved to its
	own site in April 1995.  It allows you to move up and down the
	heirarchy, to search it and to suggest additions.  It also
	features "What's New", "What's Popular", "What's Cool" and a
	random link.

	{(http://yahoo.com/)}.

	(1995-04-05)

Yale Haskell

	<language> A fully integrated {Haskell} programming
	environment.  It provides tightly coupled interactive editing,
	{incremental compilation} and dynamic execution of Haskell
	programs.  Two major modes of compilation, correspond to
	{Lisp}'s traditional "interpreted" and "compiled" modes.
	Compiled and interpreted modules may be freely mixed in any
	combination.

	Yale Haskell is run using either a command-line interface or
	as an {inferior process} running under the {Emacs} editor.
	Using the Emacs interface, simple two-keystroke commands
	evaluate expressions, run dialogues, compile {modules}, turn
	specific compiler diagnostics on and off and enable and
	disable various {optimisers}.  Commands may be queued up
	arbitrarily, thus allowing, for example, a compilation to be
	running in the background as the editing of a source file
	continues in Emacs in the foreground.

	A "scratch pad" may be automatically created for any module.
	Such a pad is a logical extension of the module, in which
	additional function and value definitions may be added, but
	whose evaluation does not result in recompilation of the
	module.

	A tutorial on Haskell is also provided in the Emacs
	environment.  A {Macintosh} version of Yale Haskell includes
	its own integrated programming environment, complete with an
	Emacs-like editor and {pull-down menus}.

	Yale Haskell is a complete implementation of the Haskell
	language, but also contains a number of extensions, including:

	(1) Instead of stream based I/O, a {monadic I/O} system is
	used.  Although similar to what will be part of the new
	{Haskell 1.3} report, the I/O system will change yet again
	when 1.3 becomes official.

	(2) Haskell programs can call both {Lisp} and {C} functions
	using a flexible foreign function interface.

	(3) Yale Haskell includes a {dynamic typing} system.  Dynamic
	typing has been used to implement {derived instances} in a
	user extensible manner.

	(4) A number of small Haskell 1.3 changes have been added,
	including {polymorphic recursion} and the use of @_@ in an
	expression to denote {bottom}.  Although the 1.3 report is not
	yet complete, these changes will almost certainly be part of
	the new report.

	(5) A complete Haskell level {X Window System} interface,
	based on {CLX}.

	(6) A number of {annotations} are available for controlling
	the optimiser, including those for specifying both function
	and data constructor {strict}ness properties, "{inlining}"
	functions, and specialising {over-loaded} functions.  Many
	standard {prelude} functions have been specialised for better
	performance using these annotations.

	(7) {Separate compilation} (including {mutually recursive}
	{modules}) is supported using a notion of a UNIT file, which
	is a kind of localised {makefile} that tells the compiler
	about compiler options and logical dependencies amongst
	program files.

	(8) Yale Haskell supports both standard and "{literate}"
	Haskell syntax.

	Performance of Yale Haskell's compiled code has been improved
	considerably over previous releases.  Although still not as
	good as the Glasgow ({GHC}) and Chalmers ({HBC}) compilers,
	the flexibility afforded by the features described earlier
	makes Yale Haskell a good choice for large systems
	development.  For some idea of performance, Hartel's latest
	"Nuc" benchmark runs at about the same speed under both Yale
	Haskell and hbc.  (Our experiments suggest, however, that Yale
	Haskell's compiled code is on average about 3 times slower
	than hbc.)

	Binaries are provided for {Sun}/{SPARC} and {Macintosh}, but
	it is possible to build the system on virtually any system
	that runs one of a number of {Common Lisp} implementations:
	{CMU Common Lisp}, {Lucid Common Lisp}, {Allegro Common Lisp}
	or {Harlequin LispWorks}.  {akcl}, {gcl} and {CLisp} do not
	have adaquate performance for our compiler.  The current
	version is 2.1.

	{Yale (ftp://nebula.cs.yale.edu/pub/haskell/yale)}.
	(128.36.13.1).  {UK
	(ftp://ftp.dcs.glasgow.ac.uk/pub/haskell/yale/)}.  {Sweden
	(ftp://ftp.cs.chalmers.se/pub/haskell/yale/)}.  E-mail:
	<haskell-request@cs.yale.edu>,
	<haskell-request@dcs.glasgow.ac.uk>.

	(1993-07-14)

Yamaha

	<company> A Japanese company best known for consumer
	electronics and motorbikes.  They make music synthesizers,
	{CD-Rom Writers} and HiFi sound equipment.

	{(http://yamaha.com/)}.

	(1997-04-29)

YAML

	{YAML Ain't Markup Language}

YAML Ain't Markup Language

	<data, language> (YAML) A data {serialisation} language
	designed to be readable and writable by humans and to work
	well with modern programming languages.

	YAML uses printable {Unicode} characters to represent both
	structure and data.  The structural syntax is simple and
	terse.  For example, indentation is used for structure, colons
	separate pairs, and dashes are used for list items.

	YAML can represent mappings ({hashes} or dictionaries),
	sequences ({arrays} or lists), {scalars} (strings or numbers),
	or any combination of the above.  It has a simple {typing
	system} and {reference} syntax.  Its structures will be
	particularly familiar to programmers using {Perl}, {Python},
	{PHP}, {Ruby}, or {Javascript}, but YAML can be used with any
	programming language.

	YAML is, in some respects, a simpler alternative to XML,
	though it does not share the constraints imposed by XML's
	{SGML} legacy and has somewhat different aims.

	{YAML Home (http://yaml.org/)}.

	(2004-02-02)

yank

	<jargon> (From the colloquial meaning "to pull suddenly") To
	insert a copy of some saved text at the current position in a
	document being edited.

	The term is used in the {Unix} {text editors} {GNU Emacs} and
	{vi} but "{paste}" is more common elsewhere.

	[Used elsewhere?]

	(1998-07-01)

YAPS

	Yet Another Production System?  {College Park Software}.  A
	commercial {production system} rule language, simpler than
	{OPS5}.  YAPS allows {knowledge bases} to be attached to
	instances of {CLOS} {objects}.

	E-mail: Liz Allen <liz@grian.cps.altadena.cs.us>.

YASOS

	{Yet Another Scheme Object System}

YAUN

	/yawn/ Yet Another Unix Nerd.

	Reported from the San Diego Computer Society (predominantly a
	{microcomputer} users' group) as a good-natured punning insult
	aimed at {Unix} zealots.

	[{Jargon File}]

	(1994-11-11)

Yay

	{Yet Another Yacc}

ye

	<networking> The {country code} for Yemen.

	(1999-01-27)

Year 2000

	<programming> (Y2K, or "millennium bug") A common name for all
	the difficulties the turn of the century, or dates in general,
	bring to computer users.

	Back in the 1970s and 1980s, the turn of the century looked so
	remote and memory/disk was so expensive that most programs
	stored only the last two digits of the year.  These produce
	surprising results when dealing with dates after 1999.  They
	may believe that 1 January 2000 is before 31 December 1999
	(00<99), they may miscalculate the day of week, etc.  Some
	programs used the year 99 as a special marker; there are
	rumours that some car insurance policies were cancelled
	because a year of 99 was used to mark deleted records.

	Complete testing of date-dependent code is virtually
	impossible, especially where the system under test relies on
	other systems such as customers' or suppliers' computers.
	Despite this, the predicted "millennium meltdown" never
	occurred.  Various fixes and work-arounds were successfully
	applied, e.g. {time shifting}.

	And yes, the year 2000 was a leap year (multiples of 100
	aren't leap years unless they're also multiples of 400).

	{PPR Corp Y2K FAQ
	(http://pprcorp.com/y2k/y2kfaq_j97.html)}.

	(2003-08-15)

Yellow

	A language from {SRI} proposed to meet the {Ironman}
	requirements which led to {Ada}.

	["On the YELLOW Language Submitted to the DoD", E.W. Dijkstra,
	SIGPLAN Notices 13(10):22-26, Oct 1978].

	(1994-11-09)

Yellow Book

	1. <publication> {Yellow Book, Jargon}.

	2. {Yellow Book CD-ROM}.

	[{Jargon File}]

	(1996-12-03)

Yellow Book CD-ROM

	A {CD-ROM} format which is {ISO 9660} compliant and uses mode
	1 addressing.  Discs of this type can be played on most drives
	and would be appropriate for most {multimedia} {applications}
	which have been developed for {personal computers}.

	(1994-11-02)

Yellow Book, Jargon

	<publication> The print version of the {Jargon File}, titled
	"The New Hacker's Dictionary".  It includes essentially all
	the material the File, plus a Foreword by {Guy L. Steele, Jr.}
	and a Preface by Eric S. Raymond.  Most importantly, the book
	version is nicely typeset and includes almost all of the
	infamous Crunchly cartoons by the Great Quux, each attached to
	an appropriate entry.  The first, second, and third editions
	correspond to versions 2.9.6, 3.0.0, and 4.0.0 of the File,
	respectively.

	["The New Hacker's Dictionary", 3rd edition, MIT Press, 1996
	(ISBN 0-262-68092-0)].

	(1996-12-03)

Yellow Box

	<operating system> {Apple Computer, Inc.}'s new development
	{platform} for building {desktop}, {server}, and {web}
	applications.  Yellow Box is a rich {object-oriented}
	environment that is tightly integrated with {Java} and allows
	you to deploy applications across five platforms: {Rhapsody},
	{Rhapsody for Intel}, {Windows 95}, {Windows NT}, and {Mac OS}.
	All Yellow Box-based products are an evolution of {OpenStep} -
	an operating system-independent, object-oriented application
	platform from {NeXT}.

	Integrating the cross-platform robustness of OpenStep with
	Apple's market-leading digital media and graphics technologies
	will differentiate the Yellow Box from other development
	platforms.

	"Yellow Box for Windows" is the {run-time} software
	(implemented as {dynamically linked libraries}) that allows
	{Yellow Box} applications to run under {Windows 95} and
	{Windows NT}.  Applications that use it will feature a full
	native Windows user interface.

	{(http://wais.sensei.com.au/macarc/appdir/1996/0077.html)}.

	(1997-10-15)

Yellow Pages

	{Network Information Service}

yellow wire

	(IBM) Repair wires used when connectors (especially ribbon
	connectors) got broken due to some schlemiel pinching them, or
	to reconnect cut traces after the field engineer mistakenly
	cut one.  Compare {blue wire}, {purple wire}, {red wire}.

	[{Jargon File}]

Yerk

	<language> (After Yerkes Observatory) An {object-oriented}
	language based on a {Forth} {Kernel} with some major
	modifications.  It was originally known as {Neon}, developed
	and sold as a product by {Kriya Systems} from 1985 to 1989.
	Several people at The {University of Chicago} have maintained
	Yerk since its demise as a product.  Because of possible
	trademark conflict they named it Yerk, which is not an acronym
	for anything, but rather stands for Yerkes Observatory, part
	of the Department of Astronomy and Astrophysics at U of C.

	Version 3.62.

	{(ftp://oddjob.uchicago.edu/pub/Yerk/)}.

	E-mail: Bob Lowenstein <rfl@oddjob.uchicago.edu>.

	(1994-11-23)

Yet Another

	<jargon> (YA-, after {Unix}'s {yacc} - Yet Another
	Compiler-Compiler) A humorous allusion often used in titles to
	acknowledge that the topic is not original, though the content
	is.  As in "Yet Another AI Group" or "Yet Another {Simulated
	Annealing} {Algorithm}".  If used of others' work, it
	describes something of which there are already far too many.

	In hackish acronyms the "YA" prefix almost invariably expands
	to {Yet Another}, e.g. {YABA}, {YAUN}.

	[{Jargon File}]

	(1996-11-26)

Yet Another Compiler Compiler

	<tool, language> (yacc) The {LALR} {parser generator} found on
	most {Unix} systems.  Also, the language used to describe the
	{syntax} of another language to yacc (the program).

	Implementations: {ayacc}, {YAY}, {perln-byacc},

	SASL-Yacc - "Yacc in {SASL} - An Exercise in Functional
	Programming", Simon Peyton-Jones, Software Prac & Exp
	15:807-820 (1985).  Mentions also a BCPL implementation.

	Yacc++ - 1990.  An {object-oriented} rewrite of yacc, supports
	{regular expressions}, produces an {LR1 grammar} parser.

	["YACC Meets C++", S.C. Johnson, USENIX Spring '88 Conf].

	Chris Clark, Compiler Resources Inc, +1 (508) 435-5016.

	MLYACC - Implementation and output in {SML/NJ}.
	{(ftp:research.att.com/dist/ml/75.tools.tar.Z)}.

	A version, by David Poole at Montana University has been
	retargeted to {Turbo Pascal}.

	{(ftp://iecc.com/pub/file/lyprg.zip)}.

	See also {Bison}, {yet another}, {Yet Another Yacc}.

	{Unix manual page}: yacc(1).

	["YACC - Yet Another Compiler Compiler", S.C. Johnson, CS TR
	32, Bell Labs (Jul 1975)].

	[Was there ever an "ACC" - "Another Compiler Compiler"?  If
	so, what was the first compiler compiler called?]

	(2000-11-15)

Yet Another Scheme Object System

	<language> (YASOS) A system for {object-oriented programming}
	in {Scheme}.

	E-mail: Ken Dickey <kend@newton.apple.com>

	(2010-02-28)

Yet Another Yacc

	<tool> (Yay) An extension of {Yacc} with {LALR2} parsing.

	Yay is available from {Bull} as part of the {University of
	Waterloo Tools} package maintained by <pjf@thinkage.on.ca>.

	(1994-11-09)

YGMTPO

	<chat> ({Usenet}) "You Greatly Misunderstood The Purpose Of".

	(1998-03-03)

YLISP

	A variant of {Xlisp} from {Hewlett-Packard} for the HP-95LX
	{palmtop}.

	{(ftp://hpcsos.col.hp.com/mirrors/.scsi5/hp95lx/languages)}.

	(1994-11-23)

YMMV

	{Your mileage may vary}

YMODEM

	A file transfer {protocol} used between {modems}.  YMODEM was
	developed by Chuck Forsberg as the successor to {XMODEM} and
	was itself succeeded by {ZMODEM}.  XMODEM used 128-byte
	{packets}, YMODEM can also use 1 kilobyte packets.  Whereas
	YMODEM is a batch protocol, {YMODEM-G} is a non-stop version.

	File sizes are included in the YMODEM header when sending both
	binary and text files.  Thus files transferred via YMODEM
	should preserve their exact length.  File modification times
	may also be present in the YMODEM header.

	YModem can {fall back} to smaller packets when necessary but
	there is no backward compatibility with XModem's error
	detection.

	[Chuck Forsberg, "XMODEM/YMODEM Protocol Reference"].

	(1995-02-02)

YMODEM-G

	A non-stop "streaming" version of {YMODEM} designed for
	"error-free" connections with proper flow control; the
	transmitting program sends packets to the receiver as fast as
	it can without waiting for acknowledgements.  Any errors cause
	the entire file transfer to abort.

yocto-

	{prefix}

Yoda condition

	<programming> The programming practise of using

	 if (constant == variable)

	e.g.

	 if (4 == foo)

	instead of the more natural

	 if (variable == constant)

	It is named after the Star Wars character Yoda who says things
	like "Strong is Vader".  It may have been invented as a way to
	prevent coding errors like

	 if (count = 5)

	(accidentally using a single "=" ({assignment}) instead of a
	double "==" (comparison)).  The above is syntactically valid
	whereas the Yoda equivalent would give a compile-time error.

	(2012-06-25)

YOL Computers

	<company> A company in London, UK that sells computer and
	network systems, established in 2001.

	{(http://yolc.com/)}.

	(2008-01-28)

yotta-

	{prefix}

yottabyte

	<unit, data> (YB) A unit of {data} equal to 10^24 {bytes} but see
	{binary prefix} for other definitions.  A yottabyte is 1000^8
	bytes or 1000 {zettabytes}.

	It is estimated that the {World-Wide Web} contains about one
	yottabyte of data (2013).

	1000 yottabytes has been called one {brontobyte}.

	See {prefix}.

	(2013-11-04)

You are not expected to understand this

	[Unix] The canonical comment describing something {magic} or
	too complicated to bother explaining properly.  From an
	infamous comment in the context-switching code of the V6
	{Unix} {kernel}.

	[{Jargon File}]

You aren't gonna need it

	<programming> (YAGNI) A motto of {extreme programming} expressing
	the principle that functionality should not be implemented until
	it is needed.  The traditional {waterfall model} makes it
	difficult to add features after the specification has been signed
	off, tempting the specifier to add features that may never be used
	but which take time to program, debug, test and document.

	(2014-03-27)

Yourdon

	1. <programming> The {Yourdon methodology}.

	2. <person> {Edward Yourdon}.

	3. <company> {Yourdon, Inc.}.

	(1995-04-07)

Yourdon/Constantine

	<programming> (Or "Constantine/Yourdon") A {structured design}
	{methodology} involving {structure charts}, developed by Larry
	Constantine.

	(1995-04-07)

Yourdon/Demarco

	<programming> (Or "DeMarco/Yourdon") A {structured analysis}
	{methodology} involving {data flow diagrams}, etc. developed
	by {Edward Yourdon} and Tom DeMarco.

	(1995-04-07)

Yourdon, Inc.

	<company> The company founded in 1974 by {Edward Yourdon} to
	provide educational, publishing, and consulting services in
	state-of-the-art software engineering technology.  Over the
	next 12 years, the company grew to a staff of over 150 people,
	with offices throughout North America and Europe.  As CEO of
	the company, Yourdon oversaw an operation that trained over
	250,000 people around the world; the company was sold in 1986
	and eventually became part of {CGI}, the French software
	company that is now part of {IBM}.  The publishing division,
	Yourdon Press (now part of Prentice Hall), has produced over
	150 technical computer books on a wide range of software
	engineering topics; many of these "classics" are used as
	standard university computer science textbooks.

	(1995-04-16)

Yourdon methodology

	<programming> The {software engineering} {methodology}
	developed by {Edward Yourdon} and colleagues in the 1970s and
	1980s.  "Yourdon methodology" is a generic term for all of the
	following methodologies: {Yourdon/Demarco},
	{Yourdon/Constantine}, {Coad/Yourdon}.

	(1995-04-07)

Your mileage may vary

	<jargon> (YMMV) The disclaimer American car manufacturers
	attached to EPA mileage ratings.  A humourous way of saying
	that the thing under discussion will not necessarily give you
	the same results as the author.  Often used to convey the
	hardware dependence of Unix {freeware} distributions.

	[{Jargon File}]

	(2012-02-16)

youtube.com

	{YouTube, Inc.}

YouTube, Inc.

	<World-Wide Web, video> An on-line {video} {file sharing} {web
	site}, founded on 2005-02-14 by Chad Hurley, Steve Chen, and
	Jawed Karim.  Anyone can upload video clips to the site and
	these can then be viewed by others.  In 2007, many such sites
	exist but YouTube is the best known.

	YouTube is funded by Sequoia Capital.  In November 2006,
	YouTube was bought by {Google Inc.}.  YouTube has partnership
	deals with content providers such as {CBS}, {BBC}, Universal
	Music Group, Sony Music Group, Warner Music Group, NBA, The
	Sundance Channel and many more.

	{YouTube Home (http://youtube.com/)}.

	(2007-09-28)

Yow!

	<exclamation> /yow/ (From "Zippy the Pinhead" comics) A
	favoured hacker expression of humorous surprise or emphasis.
	"Yow!  Check out what happens when you twiddle the foo option
	on this display hack!"

	Compare {gurfle}.

	[{Jargon File}]

	(1995-03-07)

yoyo mode

	<jargon> The state in which a computer is said to be when it
	rapidly alternates several times between being up and being
	down.  Interestingly (and perhaps not by coincidence), many
	hardware vendors give out free yoyos at {Usenix} exhibits.

	{Sun Microsystems} gave out logoised yoyos at SIGPLAN '88.
	Tourists staying at one of Atlanta's most respectable hotels
	were subsequently treated to the sight of 200 of the country's
	top computer scientists testing yo-yo {algorithms} in the
	lobby.

	[Is it "yoyo" or "yo-yo"?]

	[{Jargon File}]

	(1995-03-07)

YP

	Yellow Pages.  The original name for {Sun}'s
	{Network Information Service}.

	(1995-03-07)

YSM

	{Yourdon Structured Method}

yt

	<networking> The {country code} for Mayotte.

	(1999-01-27)

YTalk

	Version: V3.0 Patch Level 1.

	<networking, tool> A multi-user chat program by Britt Yenne
	<yenne@austin.eds.com>.  YTalk works almost exactly like the
	standard {Unix} {talk} program and even communicates with the
	same talk {daemon}(s), but YTalk supports multiple
	connections.

	Multiple user names may be given as command-line arguments, in
	the form "name#tty@host" where the optional "#tty" specifies a
	particular tty.

	YTalk is able to communicate with both existing versions of
	{Unix} talk daemons.  Once connected, typing {escape} gives
	access to a menu of commands to add or delete users, trace
	to a file, or set options.  If run under the {X Window
	System}, YTalk will use separate X windows for each user in
	the conversaton, otherwise it will split the terminal screen
	between them.

	E-mail: <ytalk@austin.eds.com>.

	[FTP?]

	(1995-04-04)

yu

	<networking> The {country code} for the former Yugoslavia.

	(1999-01-27)

Yu-Shiang Whole Fish

	/yoo-shyang hohl fish/ An obsolete name for the Greek
	character gamma ({extended SAIL ASCII} code 9, Unicode glyph
	0x0263) which with a loop in its tail looks like a little fish
	swimming down the page.  The term is actually the name of a
	Chinese dish in which a fish is cooked whole (not {parse}d)
	and covered with Yu-Shiang (or Yu-Hsiang) sauce.  Used
	primarily by people on the {MIT} {LISP Machine}, which could
	display this character on the screen.  Tends to elicit
	incredulity from people who hear about it second-hand.

	[{Jargon File}]

	(1995-01-31)

Z

	/zed/ <language, specification> 1. (After {Zermelo-Fränkel set
	theory}) A {specification language} developed by the
	{Programming Research Group} at Oxford University around 1980.
	Z is used for describing and modelling computing systems.  It
	is based on {axiomatic set theory} and {first order predicate
	logic}.  Z is written using many non-{ASCII} symbols.  It was
	used in the {IBM} {CICS} project.

	See also {Z++}.

	["Understanding Z", J.M. Spivey, Cambridge U Press 1988].

	2. <language, simulation> A {stack}-based, complex arithmetic
	{simulation} language from {ZOLA Technologies}.

	(1995-08-11)

Z++

	<language> An {object-oriented} extension of {Z}.

	["Z++, an Object-Oriented Extension to Z", Lano, Z User
	Workshop, Oxford 1990, Springer Workshops in Computing, 1991,
	pp.151-172].

	(1995-04-22)

Z-1013

	<computer> A {Z80} {clone} home computer running at 1 MHz.
	The Z-1013 computer was introduced in 1986 in East Germany.
	The computer contained a {tape} for storing and loading
	{programs} and had an unusual {keyboard}.

	(2004-03-24)

Z180

	<processor> An 8-bit microprocessor, code compatible with the
	{Zilog Z80} and based on a design from {Hitachi} which is in
	turn based on the Zilog Z80.

	[Manufacturer?]

	(1995-04-22)

Z3

	<computer> The third computer designed and built by {Konrad
	Zuse} and the first {digital computer} to successfully run
	real programs.  The computer was ready in 1941, five years
	before {ENIAC}.

	Zuse began his work on program-driven calculating machines in
	1935.  His two predessors of the Z3, the Z1 and Z2, were
	unsuccessful mechanical calculating machines.  The Z3 was
	delivered to the Deutsche Versuchsanstalt für Luftfahrt
	(German Experimental Department of Aeronautics) in Berlin and
	was used for deciphering coded messages.  A 1960
	reconstruction of the Z3 is in the Deutsche Museum in Munich.

	The Z3 used about 2600 relays of the kind used in
	telecommunications.  Zuse wrote and implemented the language
	{Plankalkül} on the Z3.  Programs were punched into cinefilm.

	Zuse built some more computers after World War II, including
	the Z3's successor, the Z4, which was set up at ETH Zurich,
	Switzerland.

	Of the potential rival claimants to the title of first
	programmable computer, {Babbage} (UK, c1840) planned but was
	not able to build a {decimal}, programmable machine.
	{Atanasoff}'s {ABC}, completed in 1942 was a special purpose
	calculator, like those of {Pascal} (1640) and {Leibniz}
	(1670).  Eckert and Mauchly's {ENIAC} (US), as originally
	released in 1946, was programmable only by manual rewiring or,
	in 1948, with switches.  None of these machines was freely
	programmable.  Neither was {Turing} et al.'s {Colossus} (UK,
	1943-45).  {Aiken}'s {MARK I} (1944) was programmable but
	still decimal, without separation of storage and control.

	[Features?  Where was it designed?  Contemporaries?]

	{(http://cs.tu-berlin.de/~zuse)}.

	{(http://epemag.com/zuse)}.

	(2003-10-01)

Z39.50

	{ANSI Z39.50}

Z8

	{Zilog Z8}

Z80

	{Zilog Z80}

Z8000

	{Zilog Z8000}

za

	<networking> The {country code} for South Africa.

	(1999-01-27)

ZAP

	1. <language> A language for expressing program
	transformations.

	["A System for Assisting Program Transformation",
	M.S. Feather, ACM TOPLAS 4(1):1-20, Jan 1982].

	2. {Zero and Add Packed}.

	(2001-03-25)

zap

	<jargon> 1. To modify, usually to correct; especially used
	when the action is performed with a debugger or binary
	patching tool.  Also implies surgical precision.  "Zap the
	debug level to 6 and run it again."

	In the {IBM} {mainframe} world, binary patches are applied to
	programs or to the {operating system} with a program called
	"{superzap}", whose file name is "IMASPZAP" (possibly
	contrived from I M A SuPerZAP).

	See also {Zero and Add Packed}.

	2. To {fry} a chip with static electricity.  "Uh oh - I think
	that lightning strike may have zapped the disk controller."

	(1998-07-08)

ZAPP

	Zero Assignment Parallel Processor.  A virtual tree machine
	architecture in which a process tree is dynamically mapped
	onto a fixed, strongly connected network of processors
	communicating by message passing.  The basic operation of each
	node is to apply a divide and conquer function which takes
	four arguments: (1) a function 'primitive' which takes a
	problem description (PD) and returns true if it can be solved
	without division, (2) a function 'solve' which takes a
	primitive PD and returns its solution, (3) a function 'divide'
	which takes a PD and returns a list of PDs of smaller problems
	and (4) a function 'combine' which returns the solution to a
	problem by combining a list of solutions of subproblems.

	Each node has a copy of the code and one is given the initial
	problem description.  Task distribution is by process stealing
	in which a process constructs a descriptor for each subtask
	and idle (lightly loaded) processors can steal a descriptor
	from a physically connected neighbour.

Z-buffer

	<graphics> An {array} used to store the maximum Z {coordinate}
	of any feature plotted at a given (X, Y) location on the
	screen, used for {hidden line removal} in a 2D rendering of a
	3D scene.  The Z axis is perpendicular to the screen with
	values increasing toward the viewer so that any point whose Z
	coordinate is less than the corresponding Z-buffer value will
	be hidden behind some feature which has already been plotted.

	(1997-07-18)

ZEBRA

	A data management package in the {CERN Program Library}.

Zed

	1978.  Software Portability Group, U Waterloo.  {Eh}, with
	types added.  Similar to {C}.  Implementation language for the
	{Thoth} realtime operating system.  Added a few simple types
	for greater efficiency on byte-addressed machines.  String
	constants in case statements.  Enforces the naming convention:
	MANIFESTS, Externals and locals.  "Porting the Zed Compiler",
	G.B. Bonkowski et al, SIGPLAN Notices 14(8):92-97 (Aug 1979).

Zen

	[Kehoe, B., "Zen and the Art of the Internet", February 1992.]

	[{Jargon File}]

zen

	<jargon> To figure out something by meditation or by a sudden
	flash of enlightenment.  Originally applied to {bugs}, but
	occasionally applied to problems of life in general.  "How'd
	you figure out the buffer allocation problem?"  "Oh, I zenned
	it."

	Contrast {grok}, which connotes a time-extended version of
	zenning a system.  Compare {hack mode}.  See also {guru}.

	(1996-09-17)

ZENO

	U Rochester 1978.  Euclid with asynchronous message-passing.
	"Preliminary ZENO Language Description", J.E. Ball et al,
	SIGPLAN Notices 14(9):17-34 (Sep 1979).

zepto

	{prefix}

Zermelo Fränkel set theory

	<mathematics> A {set theory} with the {axioms} of {Zermelo set
	theory} (Extensionality, Union, Pair-set, Foundation,
	Restriction, Infinity, Power-set) plus the Replacement {axiom
	schema}:

	If F(x,y) is a {formula} such that for any x, there is a
	unique y making F true, and X is a set, then

		{F x : x in X}

	is a set.  In other words, if you do something to each element
	of a set, the result is a set.

	An important but controversial {axiom} which is NOT part of ZF
	theory is the {Axiom of Choice}.

	(1995-04-10)

Zermelo set theory

	<mathematics> A {set theory} with the following set of
	{axioms}:

	Extensionality: two sets are equal if and only if they have
	the same elements.

	Union: If U is a set, so is the union of all its elements.

	Pair-set: If a and b are sets, so is

		{a, b}.

	Foundation: Every set contains a set disjoint from itself.

	Comprehension (or Restriction): If P is a {formula} with one
	{free variable} and X a set then

		{x: x is in X and P(x)}.

	is a set.

	Infinity: There exists an {infinite set}.

	Power-set: If X is a set, so is its {power set}.

	Zermelo set theory avoids {Russell's paradox} by excluding
	sets of elements with arbitrary properties - the Comprehension
	axiom only allows a property to be used to select elements of
	an existing set.

	{Zermelo Fränkel set theory} adds the Replacement axiom.

	[Other axioms?]

	(1995-03-30)

ZERO

	<language> An {object oriented} extension of {Z}.

	["Object Orientation in Z", S. Stepney et al eds, Springer
	1992].

	[{Jargon File}]

	(1995-03-30)

zero

	1. <character> 0, {ASCI} character 48.  Numeric zero, as
	opposed to the letter "O" (the 15th letter of the English
	alphabet).  In their unmodified forms they look a lot alike,
	and various {kluges} invented to make them visually distinct
	have compounded the confusion.

	If your zero is centre-dotted and letter-O is not, or if
	letter-O looks almost rectangular but zero looks more like an
	American football stood on end (or the reverse), you're
	probably looking at a modern character display (though the
	dotted zero seems to have originated as an option on {IBM
	3270} controllers).  If your zero is slashed but letter-O is
	not, you're probably looking at an old-style {ASCII} graphic
	set descended from the default typewheel on the venerable
	{ASR-33} {Teletype} (Scandinavians, for whom slashed-O is a
	letter, curse this arrangement).

	If letter-O has a slash across it and the zero does not, your
	display is tuned for a very old convention used at {IBM} and a
	few other early mainframe makers (Scandinavians curse *this*
	arrangement even more, because it means two of their letters
	collide).  Some {Burroughs}/{Unisys} equipment displays a zero
	with a *reversed* slash.  And yet another convention common on
	early {line printers} left zero unornamented but added a tail
	or hook to the letter-O so that it resembled an inverted Q or
	cursive capital letter-O.

	[{Jargon File}]

	(1995-01-24)

	2. To set to zero.  Usually said of small pieces of data, such
	as bits or words (especially in the construction "zero out").

	3. To erase; to discard all data from.  Said of disks and
	directories, where "zeroing" need not involve actually writing
	zeroes throughout the area being zeroed.  One may speak of
	something being "logically zeroed" rather than being
	"physically zeroed".

	See {scribble}.

	(1999-02-07)

Zero and Add Packed

	<language> (ZAP) An {IBM 360}/370 {assembly language}
	instruction used when performing {packed arithmatic} to
	initialise an {accumulator}.

	(2001-03-25)

zero assignment

	<programming> A property of a {programming language} in which
	there are no {variables} but only {functions}.

	See also {single assignment}.

	(2003-12-22)

zero-content

	{content-free}

Zero Insertion Force

	<hardware> (ZIF) A kind of socket for {integrated circuits}.
	A ZIF socket can be opened and closed by means of a lever or
	screw.  When open, there the chip may be placed in the socket
	without any pressure at all, the socket is then closed,
	causing its contacts to grip the pins of the chip.  Such
	sockets are used where chips must be inserted and removed
	frequently, such as in test equipment.  They are more
	expensive and usually take up more space than conventional IC
	sockets.

	(1994-12-05)

zeroth

	<jargon> First.

	Since zero is the lowest value of an {unsigned} {integer},
	which is one of the most fundamental types in programming and
	{hardware} design, it is often natural to count from zero
	rather than one, especially when the integer is actually an
	{index} or {offset}, as used when addressing {hardware} and
	{arrays}.

	Hackers, computer scientists and pure mathematicians often
	like to call the first chapter of a publication "Chapter 0",
	especially if it is of an introductory nature (one of the
	classic instances was in the First Edition of {K&R}).

	Zero-based numbering tends to reduce {fencepost errors},
	though it cannot eliminate them entirely.

	Logically, the next item after the zeroth should be the
	"oneth" but this is never used.

	[Dijkstra, "Why Numbering Should Start at Zero"
	{(http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html)}].

	[{Jargon File}]

	(2010-02-28)

ZEST

	An {object-oriented} extension of {Z}.

	["Object Orientation in Z", S. Stepney et al eds, Springer
	1992].

ZetaLisp

	<language> The {Maclisp} dialect used on the {LISP Machine}.
	The many extensions to Maclisp include {vectors}, {closures},
	{flavors}, {stack groups}, {locatives}, and {invisible
	pointers}.  Currently supported by {Lisp Machines, Inc.} and
	{Symbolics}.

	["LISP Machine Manual", D. Weinreb and D. Moon, MIT AI Lab,
	1981].

	(1997-03-18)

zetta-

	{prefix}

zettabyte

	<unit, data> (ZB) A unit of {data} equal to 10^21 {bytes} but see
	{binary prefix} for other definitions.  A zetabyte is 1000^7 bytes
	or 1000 {exabytes}.

	1000 zettabytes are one {yottabyte}.

	See {prefix}.

	(2013-11-04)

Zeus

	{Berkeley Yacc}

ZFC

	<mathematics> {Zermelo Fränkel set theory} plus the {Axiom of
	Choice}.  A favourite {axiomatisation} of {set theory}.

	(1995-03-29)

ZF expression

	<programming> (After {Zermelo Fränkel set theory}).  {David
	Turner}'s name for {list comprehension}.

	(1995-03-27)

ZIF

	{Zero Insertion Force}

zigamorph

	/zig'*-morf/ 1. {Hex} FF (11111111) when used as a {delimiter}
	or {fence} character.  Usage: primarily at {IBM} shops.

	2. [proposed] The {Unicode} non-character +UFFFF
	(1111111111111111), a character code which is not assigned to
	any character, and so is usable as end-of-string.

	[{Jargon File}]

ZIL

	<games> Zork Implementation Language.  Language used by
	{Infocom}'s Interactive Fiction adventure games.  Interpreted
	by the {zmachine}, for {Unix} and {Amiga}.

	{(ftp://plains.nodak.edu/Minix/st.contrib.Infocom.tar.Z)}.

Zilog

	<company> The {microprocessor} manufacturer who produced the
	{Zilog Z80} in July 1976 (as used by {Sinclair} in the
	{ZX-80}, {ZX-81} and {ZX Spectrum} computers) and later the
	{Zilog Z8000}.

	Zilog was founded in 1974 and became a wholly owned subsidiary
	of Exxon Corp. by 1980.  The company's management and
	employees purchased Zilog back from Exxon in 1989.  Zilog
	became a publicly-held company in February, 1991.  In March of
	1998, Zilog was privatised, as a result of the merger and
	recapitalisation transaction by Texas Pacific Group (TPG).

	Zilog now produce a range of 8-bit {microcontrollers}, 8-, 16-
	and 32-bit {microprocessors}, and {digital signal processors},
	covering the home entertainment, communications, and {embedded
	systems} markets.

	{(http://zilog.com/)}.

	Address: 910 East Hamilton Avenue, Suite 110, Campbell,
	CA 95008, USA.

	(1998-09-14)

Zilog Z280

	An enhanced version of the {Zilog Z80} with a 16 bit
	architecture, introduced in July, 1987.  It added an {MMU} to
	expand addressing to 16Mb, features for {multitasking}, a 256
	byte {cache}, and a huge number of new {op codes} (giving a
	total of over 2000!).  Its internal clock runs at 2 or 4 times
	the external clock (e.g. a 16MHz CPU with a 4MHz bus).

	(1994-10-31)

Zilog Z8

	<processor> A family of {microcontrollers} from {Zilog} with
	on-chip {RAM} and {ROM}.  The Z8 is not related to the {Zilog
	Z80}, it uses a totally different architecture and
	{instruction set}.

	Competitors include the {Motorola 6805}/68HC05 family or the
	{Intel 8051}-family (or i51-family or MCS51-family - there is
	no standard family name).

	(1995-04-22)

Zilog Z80

	<processor> An 8-bit {microprocessor}.  It was released in
	July 1976 with a 2.5 MHz {clock rate}.  The Z80 was a much
	improved {Intel 8080} (as was the {Intel 8085}).  It also used
	8-bit data and 16-bit addressing, and could execute all of the
	{8080} {op codes} as well as 80 new ones, instructions that
	included 1, 4, 8 and 16-bit operations and even block move and
	block I/O instructions.  The {register set} was doubled, with
	two banks of registers (including A and F) that could be
	switched between.  This allowed fast {operating system} or
	{interrupt} {context switch}es.  It features 3 types of
	interrupt mode.

	The Z80 also added two {index registers} (IX and IY) and
	relocatable {vectored interrupts} (via the 8-bit IV register).
	Like many processors (including the {8085}), the Z80 featured
	many undocumented op codes.  Chip area near the edge was used
	for added instructions, but fabrication made the failure of
	these high.  Instructions that often failed were just not
	documented, increasing chip yield.  Later fabrication made
	these more reliable.

	The thing that really made the Z80 popular was the memory
	interface - the CPU generated it's own {RAM} {refresh}
	signals, which meant easier design and lower system cost.
	That and its {8080} compatibility and {CP/M}, the first
	standard {microprocessor} {operating system}, made it the
	first choice of many systems.

	In addition to the original Z80 (2.5 MHz) there are the {Zilog
	Z80A} (4 MHz), {Zilog Z80B} (6MHz) and {Zilog Z80H} (8 MHz)
	versions.  The popular {Hitachi HD64180} processor family adds
	peripherals and an {MMU} to the Z80.

	The {Zilog Z280} was an enhanced version with an {MMU} and
	many new {op codes}.

	The Z80 was used in the first {Nintendo} {Game Boy}.  A
	{Sharp} Z80 work-alike was used in the {GameBoy Color},
	running at 4 MHz for GameBoy software or at 8 MHz for Game Boy
	Color software.  The Z80 was used in the {Sega Master System}
	and the {Game Gear}.  It was also used in the {Sega Genesis}
	for hardware reverse compatibility with the Sega Master System
	through a special cartridge.

	{Gaby Chaudry site (http://gaby.de/z80/)}.

	(2004-06-10)

Zilog Z8000

	<processor> A {microprocessor} from {Zilog} introduced not
	long after the {Intel 8086}, but with superior features.  It
	was basically a 16-bit processor, but could address up to 23
	bits in some versions by using {segment registers} (to supply
	the upper 7 bits).  There was also an unsegmented version, but
	both could be extended further with an additional {MMU} that
	used 64 {segment registers}.

	Internally, the Z8000 had sixteen 16-bit {registers}, but
	register size and use were exceedingly flexible.  The Z-8000
	registers could be used as sixteen 8-bit registers (only the
	first half were used like this), sixteen 16-bit registers,
	eight 32-bit registers, or four 64-bit registers, and included
	32-bit multiply and divide.  They were all general purpose
	registers - the {stack pointer} was typically register 15,
	with register 14 holding the stack segment (both accessed as
	one 32-bit register for painless address calculations).

	The Z8000 featured two modes, one for the {operating system}
	and one for user programs.  The user mode prevented the user
	from messing about with {interrupt} handling and other
	potentially dangerous stuff.

	Finally, like the {Zilog Z80}, the Z8000 featured automatic
	{DRAM refresh} circuitry.  Unfortunately it was somewhat slow,
	but the features generally made up for that.  Initial {bugs}
	also hindered its acceptance (partly because it did not use
	{microcode}).  There was a radiation resistant military
	version.

	There was a later 32-bit, {pipelined} version, the {Zilog
	Z80000}.

	(1997-12-16)

Zilog Z80000

	<processor> A later version of the {Zilog Z8000}, expanded to
	32 bits internally and with a 6-stage {pipeline}.

	(1997-12-16)

Zilog Z80A

	<processor> A version of the {Zilog Z80} {microprocessor} with
	a 4 MHz {clock rate}.

	(1995-04-24)

zip

	1. <tool, compression, file format> To create a compressed
	{archive} (a "zip file") from one or more files using
	{PKWare}'s {PKZIP} or a compatible {archiver}.  Its use is
	spreading from {MS-DOS} now that portable implementations of
	the {algorithm} have been written.

	zip is also the name of a {Unix} archiving utility compatible
	with {PKZIP}.  {unzip} is the corresponding de-archiver.

	See also {gzip}, {tar and feather}.

	(1996-08-26)

	2. <storage> {Zip Drive}.

	[{Jargon File}]

	3. <functional programming> {zip function}.

Zipcode

	<language> A parallel language at {Lawrence Livermore}(?).

	(1996-08-26)

Zip disc

	{Zip drive}

Zip disk

	{Zip drive}

Zip Drive

	<hardware, storage> A {disk drive} from {Iomega Corporation}
	which takes removable {hard disks} storig 100 to 750
	{megabytes}.  Both internal and external drives are
	manufactured, making the drive suitable for {backup}, mass
	storage or for moving files between computers.  Software is
	included to help with file organisation.  The internal {SCSI}
	model offers up to 60 MB / minute transfer rate.

	The Zip drive was awarded {Byte}'s Readers' {Hardware Choice
	Award 1996 (http://byte.com/art/9607/sec11/art1.htm)}.  It was
	superceded by the {Jaz} drive which takes one {gigbyte} disks.

	(2008-01-21)

zip file

	{zip}

zip function

	<functional programming> A {function} that takes two lists and
	returns a list of pairs.  The idea can easily be extended to
	take N lists and return a list of N-{tuples}.

	(2008-03-29)

zipped

	{zip}

zipped file

	{zip}

zipperhead

	<abuse> An {IBM} term for a person with a closed mind.

	[{Jargon File}]

	(1994-11-30)

zm

	<networking> The {country code} for Zambia.

	(1999-01-27)

ZMODEM

	<protocol> A file transfer protocol with error checking and
	crash recovery.  Developed by Chuck Forsberg.  Its transfer
	rate is similar to {YMODEM-g}.  Like YMODEM-g, ZMODEM does not
	wait for positive acknowledgement after each block is sent,
	but rather sends blocks in rapid succession.  If a ZMODEM
	transfer is cancelled or interrupted for any reason, the
	transfer can be resurrected later and the previously
	transferred information need not be resent.

	{FTP Oakland
	(ftp://oak.oakland.edu/pub/simtelnet/msdos/zmodem/)}, {FTP PDX
	(ftp://ftp.cs.pdx.edu/pub/zmodem/)}.

	Telephone: +1 900 737 7836.

	(1996-07-02)

ZOG

	<hypertext> A high-performance {hypertext} system developed at
	{Carnegie-Mellon University}.

	(1994-11-30)

ZOLA Technologies

	<company> Producers of the {Z} {simulation} language.

	(1994-11-30)

zombie

	1. <operating system> {zombie process}.

	2. <chat> A {ghost}.

	[{Jargon File}]

	(1997-10-08)

zombie process

	<operating system> (Or "defunct process") A {Unix} {process}
	that has terminated (either because it has been killed by a
	{signal} or because it has called {exit}()) and whose {parent
	process} has not yet received notification of its termination
	by executing (some form of) the {wait}() {system call}.

	A zombie process exists solely as a {process table} entry and
	consumes no other resources.  This entry is retained to hold
	the child's exit status until the parent process wants to
	retrieve it.  The parent can also be notified asynchronously
	via a signal of the child's termination.

	Zombie processes can be seen in "ps" listings occasionally
	(with a status "Z" in some versions).

	Compare {orphan process}.

	(1997-10-08)

zone

	A logical group of {network} devices on {AppleTalk}.

	(1994-11-30)

Zoo

	{Berkeley Yacc}

zoo

	<tool, file format> A data {compression} program and format by
	Rahul Dhesi.  Zoo is reported to use the same {Lempel Ziv}
	algorithm as {LHA}.  It is available for many {platforms} and
	{source} is available.  .zoo archives are handled by many
	other PC archiving programs.

	Version 2.10 was released in 1989.  Search the web for zoo210
	to obtain an executable.

	{Description (http://sources.isc.org/archiver/zoo2.txt)}.

	(2000-07-05)

zoom

	<graphics> To show a smaller area of an {image} at a higher
	magnification ("zoom in") or a larger area at a lower
	magnification ("zoom out"), as though using a zoom lense on a
	camera.

	Unlike in an optical system, zooming in on a computer {image}
	does not necessarily increase the amount of detail displayed
	since this is limited by what is actually stored in the image.
	Similarly, you cannot zoom out beyond the full size of the
	image.

	(1997-10-24)

Zoomer

	<computer> A {PDA} from {Casio}, based on the {GEOS}
	{microkernel} {operating system}.

	{(http://biostat.washington.edu/zoomer.html)}.
	{(http://eit.com/mailinglists/zoomer/resources.html)}.

	{Usenet} newsgroup: {news:comp.sys.pen},
	{news:comp.sys.handhelds}, {news:comp.sys.palmtops}.

	(1995-01-23)

ZOPL

	<language> A {block structured}, untyped low-level language
	used on computers manufactured by {Geac}.

	[Dates?  Reference?  Stands for?]

	(2002-02-24)

zorch

	/zorch/ 1. [TMRC] To attack with an inverse heat sink.

	2. [TMRC] To travel with velocity approaching lightspeed.

	3. [MIT] To propel something very quickly.  "The new comm
	software is very fast; it really zorches files through the
	network."

	4. [MIT] Influence.  Brownie points.  Good karma.  The
	intangible and fuzzy currency in which favours are measured.
	"I'd rather not ask him for that just yet; I think I've used
	up my quota of zorch with him for the week."

	5. [MIT] Energy, drive, or ability.  "I think I'll {punt} that
	change for now; I've been up for 30 hours and I've run out of
	zorch."

	6. [MIT] To flunk an exam or course.

	7. Computing power.

	[{Jargon File}]

	(1997-07-09)

Zork

	<games> /zork/ The second of the great early experiments in
	computer fantasy gaming; see {ADVENT}.  Zork was originally
	written on {MIT-DM} during the late 1970s, later distributed
	with {BSD Unix} as a patched, sourceless {RT-11} {Fortran}
	binary (see {retrocomputing}) and commercialised as "The Zork
	Trilogy" by {Infocom}.  The Fortran source was later rewritten
	for portability and released to {Usenet} under the name
	"Dungeon".

	Both Fortran "Dungeon" and translated {C} versions are
	available from many {FTP archives}.

	[{Jargon File}]

	(1998-09-21)

zorkmid

	<games> /zork'mid/ The canonical unit of currency in
	hacker-written games.  This originated in {Zork} but has
	spread to {nethack} and is referred to in several other games.

	[{Jargon File}]

	(1998-09-21)

z/OS

	<operating system> An {operating system} from {IBM}.
	According to IBM, it is a secure, scalable, high-performance
	enterprise operating system on which to build and deploy
	Internet and {Java}-enabled applications, providing a
	comprehensive and diverse application execution environment.

	{(http://ibm.com/servers/eserver/zseries/zos/)}.

	(2008-01-22)

zr

	<networking> The old {country code} for Zaire.

	"{cd}" is now used instead, since Zaire changed its name to
	the Democratic Republic of the Congo.

	(1999-01-27)

zsh

	{Z shell}

Z shell

	(zsh) 1. {sh} with list processing and {database}
	enhancements.

	Version 2.1.o (before 1995-10-30).

	{(ftp://cs.ucsd.edu/pub/zsh/zsh2.1.0.tar.Z)}.

	2. A {Unix} command interpreter {shell} by Paul Falstad
	<pf@ttisms.com> some time before 1993-03-23.  It is similar
	to, but not completely compatible with, {ksh}, with many
	additions to please {csh} users and some {tcsh} features.  zsh
	supports editing of multi-line commands in a single buffer;
	variable editing; a command buffer stack; {recursive}
	{glob}bing; manipulation of {arrays}; and spelling correction.

	zsh uses {GNU} {autoconf} so should compile and run on any
	modern version of UNIX, and many not-so-modern.

	Latest version: 4.0.6, as of 2002-10-02.

	{zsh home (http://zsh.org/)}.

	(1995-10-31)

ZUG

	A low-level {Awk}(?) from {Geac}.

	(1995-01-23)

Zulu time

	{Coordinated Universal Time}

ZUSE

	<language> An LL(1) {parser generator} by Arthur Pyster of the
	{University of California at Santa Barbara}.  ZUSE requires
	{Pascal}.

	(1986-09-23)

Zuse

	<language> (After {Konrad Zuse}) A descendant of {Ada},
	{Modula-2}, {Mesa} and {Oberon-1}, described by Christian
	Collberg <collberg@dna.lth.se> in his PhD thesis 1991.

	Zuse supports several levels of information hiding.  The Zuse
	type system includes fully hidden types (similar to {Modula-2}
	{opaque types} but without any implementation restriction),
	semi-open pointer types (same as {Modula-2} {opaque types}),
	extensible {record types} (similar to {Oberon-1} public
	projection types but without the compiler hint), {enumeration}
	types, extensible enumeration types, and extensible {subrange
	types}.

	A type can also be protected by specifying the operations that
	particular modules may perform (similar to {C++} {friend
	classes} and {Ada} {private types}).  Zuse also includes
	hidden and extensible constants and hidden inline procedures.
	In order to support the higher levels of information hiding
	the implementation employs partial intermediate code linking.

	A version for {Sun-3} is available.

	(1999-02-18)

Zuse, Konrad

	{Konrad Zuse}

zw

	<networking> The {country code} for Zimbabwe.

	(1999-01-27)

ZX-80

	<computer> {Sinclair}'s cheap {personal computer} with
	built-in {BASIC}, launched at the end of January 1980 at a
	computer fair in Wembley, UK.  The processor was an {NEC
	780-C} running at 3.25 MHz.  It had 1KB of {RAM}, externally
	expandable to 16KB, and 4KB of ROM.  It had RF video output to
	a TV, displaying 24 lines by 32 characters of monochrome text.
	An audio cassette recorder was used to save programs.

	The ZX-80 was sold in kit form for £79.95 or ready-built for
	£99.95.  It was used by many UK hobbyists as a means of learning
	the basics of computing.  Some remember the 1KB ZX-80 for the
	claim in its advertising that you could control a nuclear power
	station with it.

	The ZX-80 was succeeded by the {ZX-81}.

	{(http://home.t-online.de/home/p.liebert/zx80_eng.htm)}.

	{Planet Sinclair (http://nvg.ntnu.no/sinclair/)}.

	{The Sinclair Story
	(http://sincuser.f9.co.uk/046/sstory.htm)}.

	(2002-08-30)

ZX-81

	<computer> An even more successful version of the {Sinclair}
	{ZX-80}, featuring a large {uncommitted logic array} instead
	of much discrete logic, an improved {BASIC}, and rather more
	expandability (it could take 16kb {RAM} packs).  It was
	launched around 1981 and was eventually replaced by the
	{Spectrum}.

	(1995-11-04)

zxnrbl

	<jargon> /sner'b*l/ Incorrect data introduced by transmission
	errors; any corrupted or uninterpretable data.

	The word originated in a 1978 advertisement for a
	Mockingboard, which "makes frogs croak, princesses shriek, and
	martians zxnrbl."

	"It's not misspelled on the original page.  The Internet must
	have zxnrbled it on the way to you."

	(1997-03-16)

ZX Spectrum

	<computer> {Sinclair}'s first personal computer with a colour
	display.  The Spectrum used the {Zilog Z80} processor like its
	predecessors the {ZX-80} and {ZX-81}.  It was originally
	available in 16k and 48k versions using cassette tape and
	later grew to 128k and sprouted {floppy disks}.  It had a
	wider and more solid case and a marginally better "dead flesh"
	keyboard.  Unlike the earlier models, it didn't require the
	presence of a cold carton of milk to prevent it overheating.
	It was possibly the most popular home computer in the UK for
	many years.

	The {TK-90X} was a clone.

	(1995-11-04)

Zynet Ltd.

	<company> A UK {Internet service provider} offering full
	{Internet Protocol} connection by any reasonable means for any
	number of computers from individual {dial-ups} to {leased
	line} connections to entire networks.

	Zynet is a sister company of {Minerva Software} and thus claim
	a better than average understanding of the needs and
	idiosyncracies of {Acorn} systems and will be offering special
	services for education.

	{(http://zynet.co.uk/)}.

	E-mail: <zynet@zynet.co.uk>.

	Telephone: +44 (1392) 426 160.  Fax: +44 (1392) 421 762.

	Address: Minerva House, Baring Crescent, Exeter EX1 1TL, UK.

	(1995-01-31)

ZyXEL

	A {modem} manufacturer.

	{(ftp://ftp.zyxel.com/pub/other/zyxel)}.

	E-mail: <tech@zyxel.com>, <sales@zyxel.com>.

	Telephone: +1 800-255-4101 (Sales), +1 714-693-0808 (tech), +1
	714-693-0762 (BBS), +1 714-693-8811 (fax).

	Address: 4920 E. La Palma, Anaheim, CA 92807, USA.

	(1994-10-31)

|

	{vertical bar}

~

	{tilde}

£

	{pound sign}
