Free On-line Dictionary of Computing
   
      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.
   
      This dictionary is Copyright Denis Howe 1993, 1997.
   
      Permission is granted to make and distribute verbatim copies
      of this dictionary or modified versions or translations into
      another language, provided that every such copy or derived
      work carries the above copyright notice and is distributed
      under terms identical to these.  Individual definitions from
      this dictionary may be used without restriction provided no
      more than twenty are used in any one work.
   
      Please refer to the dictionary as "The Free On-line Dictionary
      of Computing, http://wombat.doc.ic.ac.uk/, Editor Denis Howe"
      or similar.
   
      The dictionary has been growing since 1985 and now contains
      over 11000 definitions totalling more than four megabytes.
      Entries are cross-referenced to each other and to related
      resources elsewhere on the net.  It services around 5000
      queries per day.
   
      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.  Dates after entries
      indicate when that entry was created, updated or first
      date-stamped.  They do not imply that it was up-to-date at
      that time.
   
      You can search the latest version of the dictionary by {WWW}
      (URL http://wombat.doc.ic.ac.uk/).  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.
   
      Denis Howe  +44 (171) 606 7080 x8161
   
      (09 Dec 1996)
   
   Acknowledgements
   
      Many thanks to the hundreds of contributors, 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
      , 13 Oct 1993,
   
      Bill Kinnersley's {Language List
      (http://cuiwww.unige.ch/langlist)} v2.2, 15 Jan 1994,
   
      Mark Hopkins' catalogue of Free Compilers and Interpreters
      v6.4, 28 Feb 1994,
   
      The on-line hacker {Jargon File} v3.0.0, 27 Jul 1993,
   
      Internet Users' Glossary (RFC 1392, FYI 18), Jan 1993.
   
      John Cross's computer glossary, 01 Nov 1994.
   
      John Bayko's Great Microprocessors of the Past and Present,
      v4.0.0, 18 Aug 1994.
   
      {Electronic Commerce Dictionary}.
   
      (01 Aug 1997)
   
   
"

   {double quote}


%

   {percent}


,

   {comma}


0

   {zero}


0/1 knapsack problem

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

   (13 Mar 1995)


100BaseT

    Any of several 100 {MBps} {CSMA/CD} {Ethernet}
   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}.

   (07 Jan 1997)


10base2

    (Or "cheapernet") The variant of {Ethernet} that
   uses thin {coaxial} cable (RG-58 or similar), as opposed to
   "full spec" {10base5} yellow cable.  The "10" means 10 {Mbps},
   "base" means "baseband" as opposed to RF, and "2" means a
   maximum single cable length of 200m.

   (14 Nov 1995)


10base5

    The original "full spec" variant of {Ethernet},
   using a thick {coaxial} cable ("yellow cable").  The "10"
   means 10 {Mbps}, "base" means "baseband" as opposed to RF, and
   "5" means a maximum single cable length of 500m.

   Compare {10base2}, {10baseT}.

   (11 Nov 1995)


10BaseT

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

   (24 Jan 1995)


120 reset

    /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}.

   (23 Nov 1994)


1-2-3

   {Lotus 1-2-3}


1394

   {High Performance Serial Bus}


1541

   {Commodore 1541}


1581

   {Commodore 1581}


16550

    A version of the 16450 {UART} with a 16-byte {FIFO}
   buffer.  Now revised to the 16550A.

   (24 Jan 1995)


16 bit

    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}.

   (13 May 1996)


16-bit application

    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}.

   (06 Apr 1996)


1802

    An 8-bit {microprocessor} currently 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 frequency;
   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}

   (21 Nov 1995)


1TBS

   One True Brace Style.

   See {indent style}.

   (25 Jan 1995)


1.TR.6

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

   (27 Mar 1995)


2

    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}).

   (25 Jan 1995)


20-GATE

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

   (27 Feb 1995)


2780

   {Binary Synchronous Transmission}


2B1D

   {2B+D}


2B1Q

   {two-binary, one-quaternary}


2B+D

    Two {bearer channels}, one {data channel}.

   See {basic rate interface}.  Note that the "B" in "{BRI}"
   stands for "basic", while the "B" in "2B+D" stands for
   "bearer".

   (31 Mar 1997)


2.PAK

    An {artificial intelligence} language with
   {coroutine}s.

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

   (25 Jan 1995)


320xx

    A series of {microprocessors} from {National
   Semiconductor}.  The 320xx processors have a {coprocessor}
   interface which allows coprocessors such as {FPU}s and {MMU}s
   to be attached in a chain.

   The 320xx was the predecessor of the {Swordfish} processor.

   [Details?]

   (17 Nov 1994)


3270

   {IBM 3270}


32-bit application

    {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 system}s 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}.

   (11 Dec 1995)


3780

   {Binary Synchronous Transmission}


386

   {Intel 80386}


386BSD

    A {free software} version of the {BSD Unix}
   {operating system} originally derived from the generally
   available parts of the "{Berkeley Net Release/2}".  William
   Jolitz played a key rôle and there have been many
   contributors.  Many new and innovative features have been
   added to 386BSD since 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} and {NetBSD}.

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

   (15 Feb 1995)


386SPART.PAR

    (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.

   (28 May 1996)


3Com

    A manufacturer of {local area network}
   equipment.  They merged with {Convergent Technologies} in
   March 1986 to become {Convergent, Inc.}.

   (25 Jan 1995)


3DO

    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-CD}s,
   and will eventually be able to play {Video CD}s with a special
   add-on {MPEG}1 {full-motion video} cartridge.  Up to 8
   {controller}s 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.

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

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

   (13 Dec 1994)


3GL

   {third generation language}


3Station

    The archtypal {diskless workstation},
   developed by Bob Metcalfe at {3Com}.

   [Features?  Dates?]

   (27 Mar 1995)


404

    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".

   (17 Apr 1997)


4.2BSD

   {Berkeley System Distribution}


431A

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

   (25 Jan 1995)


4510

    A {65CE02} with two {6526}s.

   Used in the {Commodore 65}.

   (06 Apr 1996)


473L Query

    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].

   (31 Oct 1994)


486

   {Intel 486}


486SX

   {Intel 486SX}


4GL

   {fourth generation language}


51forth

    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)}

   (03 Apr 1993)


56kbps

    (56,000 bit/s) 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 analog signals to digital, minus the
   8000 bit/s used for signalling and supervision.

   There are currently (Oct 1997) two rival {modem} designs
   capable of achieving this rate.  [What are they?]

   (30 Oct 1997)


56k line

    A digital connection (possibly a {leased
   line}, possibly switched) capable of carrying 56,000 bit/s.

   Compare {DS0}.

   (18 Dec 1995)


586

   What {Intel}'s {Pentium} was not called.


5th Glove

    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.

   (06 Feb 1998)


6.001

    /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 function}s,
   {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}.

   (22 Nov 1994)


610

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

   [Other countries?  Full name?]

   (26 Jun 1997)


6309

   {Hitachi 6309}


64 bit

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

   64-bit processors are quite common in 1996, e.g. {Digital}
   {Alpha}, versions of {Sun} {SPARC}, {MIPS}, {IBM} {AS/4000}.
   the {PowerPC} and {Intel} are 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 are 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 1986 there are 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.

   (23 Dec 1996)


6502

    An eight bit {microprocessor} designed by {MOS
   Technologies} around 1975 and made by {Rockwell}.

   Unlike the {Intel 8080} and its kind, the 6502 had very few
   {register}s.  It was an 8-bit processor, with 16-bit {address
   bus}.  Inside was one 8-bit data register ({accumulator}), two
   8-bit {index register}s 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 mode}s,
   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).

   The 6502 also had undocumented instructions.

   Back when the 6502 was introduced, {RAM} was actually faster
   than {CPU}s, so it made sense to optimize 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
   computer}s.  {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 {65816} is an expanded version of the 6502.

   There is a 6502 {assembler} by Doug Jones 
   which supports {macro}s and conditional features and can be
   used for linkage editing of object files.  It requires
   {Pascal}.

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

   (31 Oct 1994)


650x

    A family of {microprocessor}s from {MOS
   Technologies}, based on the design of the {Motorola 6800}
   (introduced around 1975).  The family included the {6502} used
   in several early {personal computer}s.


6510

    An enhanced version of the {6502}.  The 6510 was
   used in the {Commodore 64}.

   [More details?]

   (29 Oct 1995)


65816

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

   (31 Oct 1994)


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

    {Pentium Pro} or possibly {Cyrix 6x86}.

   (26 May 1997)


68HC11

   {Motorola 68HC11}


6x86

   {Cyrix 6x86}


754

   {IEEE Floating Point Standard}


80186

   {Intel 80186} or compatible.


80188

   {Intel 80188} or compatible.


802.2

   {IEEE 802.2}


802.3

   {IEEE 802.3}


80286

   {Intel 80286} or compatible.


8031

   {as31}


80386

   {Intel 80386} or compatible.


80486

   {Intel 486} or compatible.


8051

    See {CAS 8051 Assembler}, {as31}, {51forth}.

   [What is an 8051?]

   (26 Jan 1995)


8080

   {Intel 8080}


8086

   {Intel 8086}


8088

   {Intel 8088}


80x86

   {Intel 80x86} or compatible.


822

   {RFC 822}


82430FX

   {Triton I}


82430HX

   {Triton II}


82430MX

   {Mobile Triton}


82430VX

   {Triton VX}


8514

   {eXtended Video Graphics Array}


88000

   {Motorola 88000}


88open

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

   (26 Jan 1995)


8-bit clean

   {eight bit clean}


8N1

    Common shorthand for "eight data bits, no {parity},
   one {stop bit}", the most common configuration for {serial
   line}s, e.g. {RS-232}.

   (31 Jan 1995)


8 Queens Problem

   {Eight Queens Puzzle}


8 Queens Puzzle

   {Eight Queens Puzzle}


8x86

   {Intel 80x86}


90-90 Rule

   {Ninety-Ninety Rule}


9PAC

    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].

   (07 Feb 1995)


:-)

   {emoticon}


;

   {semicolon}


=

   {equals}


@

   {commercial at}


A#

    /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 {abstraction}s.  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 {primitive}s 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
   system}s: {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.

   (07 Feb 1995)


A-0

    (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].

   (03 Dec 1995)


a1

    Address 1 code.

   An a1 code {interpreter}, by Matthew Newhook
    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)}

   (19 Jul 1994)


A1 security

   {Orange Book}


A20 handler

    {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.

   (10 Jan 1996)


a56

    An {assembler} for the {Motorola} {DSP56000} and
   {DSP56001} {digital signal processor}s by Quinn Jensen
   .  Version 1.1 is available from an
   {alt.sources} archive or {(ftp://wuarchive.wustl.edu/)}.

   (10 Aug 1992)


AADL

   {Axiomatic Architecture Description Language}


AAL

   {ATM Adaptation Layer}


AAP

   {Association of American Publishers}


AAP DTD

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

   (08 Nov 1994)


aard

    A tool to check memory use for {C++} programs.  It
   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 leak}s).

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

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

   E-mail: Steve Reiss .

   [Why "aard"?]

   (13 Oct 1994)


AARP probe packets

    {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.

   [What does AARP stand for?]

   (03 May 1997)


A&B

    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}"?]

   (05 May 1997)


abbrev

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

   (27 Feb 1995)


ABC

   1.  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, {suggestion}s, {persistent variable}s 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 .
   ABC has been ported to {Unix}, {MS-DOS}, {Atari}, {Macintosh}.

   {Home (http://www.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: .

   E-mail: .

   ["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.]

   (09 Feb 1995)

   2.  Argument, Basic value, C?.

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

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

   (09 Feb 1995)


ABC ALGOL

    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].

   (28 Oct 1994)


ABCL/1

    An Object-Based Concurrent Language.

   The language for the {ABCL} {MIMD} system, written by Akinori
   Yonezawa  of Department of
   Information Science, {Tokyo University} in 1986.  ABCL/1 uses
   {asynchronous} {message passing} to {object}s.  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: An Object-Oriented Concurrent System", A. Yonezawa ed,
   MIT Press 1990].  (23 May 1990).

   (09 Feb 1995)


ABCL/c+

    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].

   (08 Nov 1994)


ABCL/R

    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)].

   (08 Nov 1994)


ABCL/R2

    An {object-oriented}, {concurrent}, {reflective}
   language based on {Hybrid Group Architecture}. ABCL/R2 was
   produced by ,
   , ,
   , 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/)}

   (28 Jan 1993)


abduction

    The generation of hypotheses to explain observations
   or conclusions.  Applications include fault diagnosis, plan
   formation and {default reasoning}.

   Both the {semantics} and the implementation of abduction can
   be reduced to those for {deduction}.  {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?]

   (08 Nov 1994)


ABEND

    /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 grinder}s.  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".

   (08 Nov 1994)


ABI

   {Application Binary Interface}


ABLE

    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)].

   (08 Nov 1994)


ABM

   {Asynchronous Balanced Mode}


ABNF

   {Augumented Backus-Naur Form}


abort

    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}.

   (07 Jan 1997)


ABP

    A {data link layer} protocol.

   [What does it stand for?]

   (15 Jun 1996)


ABR

   {automatic baud rate detection}


abscissa

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

   y is the "{ordinate}".

   See {Cartesian coordinates}.

   (08 Jul 1997)


ABSET

    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].

   (08 Nov 1994)


absolute path

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

   (21 Nov 1996)


absolute pathname

    A {pathname} relative to the {root directory}.

   (21 Nov 1996)


abstract class

    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.

   (08 Nov 1994)


abstract data type

    (ADT) A type whose internal form is hidden
   behind a set of {access function}s.  Objects 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.

   Abstract data types are central to {object-oriented
   programming} where every {class} is an ADT.

   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.

   (22 Feb 1995)


abstract interpretation

    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 {domain}s
   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 type}s
   and {product type}s) 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}.

   (08 Nov 1994)


abstraction

   1. Generalisation, ignoring or hiding details.  Examples are
   {abstract data type}s (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.  Parameterisation, making something a function
   of something else.  Examples are {lambda abstraction}s (making
   a term into a function of some variable), {higher-order
   function}s (parameters are functions), {bracket abstraction}
   (making a term into a function of a variable).

   Opposite of {concretisation}.

   (08 Nov 1994)


abstract machine

   1.  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 {platform}s.

   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.  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}.

   (13 Mar 1995)


Abstract Machine Notation

    (AMN) A language for specifying {Abstract Machine}s
   in the {B-Method}, based on the mathematical theory of
   {Generalised Substitution}s.

   (13 Mar 1995)


abstract syntax

    A {compiler}'s internal representation of a program
   will typically be specified by an abstract syntax in terms of
   categories such as "statement", "expression" and "identifier".
   The syntax is abstract in two senses: it is independent of
   machine-oriented structures and encodings and also 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}.

   (08 Nov 1994)


Abstract Syntax Notation 1

    (ASN.1) An {ISO}/{ITU-T} {standard}
   language for the description of data, defined in 1988.  {ITU}
   TS X.208, {ISO} 8824.

   {Basic Encoding Rules} (BER) provide a universal (contiguous)
   {concrete} representation of the data values whose {abstract
   syntax} is described in ASN.1.  ASN.1 and BER facilitate the
   exchange of structured data between {application program}s
   over networks by describing data structures in a way that is
   independent of machine architecture and implementation
   language.

   {OSI} {Application layer} {protocol}s such as {X.400} {MHS}
   {electronic mail}, {X.500} directory services and {SNMP} use
   ASN.1 to describe the {PDU}s they exchange.  ASN.1 is used by
   the {National Center for Biotechnology Information}.

   [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}.

   (30 Nov 1994)


abstract syntax tree

    (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}.

   (08 Nov 1994)


Abstract-Type and Scheme-Definition Language

    (ASDL) A language developed as part of {Esprit}
   project {GRASPIN}, as a basis for generating {language-based
   editor}s 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].

   (19 Feb 1996)


Abstract Windowing Toolkit

    (AWT) {Java}'s {platform}-independent {windowing},
   graphics, and user-interface {toolkit}.

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

   [On-line documentation?]

   (23 Apr 1996)


ABSYS

    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].

   (08 Nov 1994)


ACA

   {Application Control Architecture}


ACAP

   {Application Configuration Access Protocol}


Accelerated Graphics Port

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

   AGP operates at 133 {MHz} compared to PCI's 66 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.

   (09 Nov 1997)


accelerator

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

   (08 Nov 1994)


Accent

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

   (08 Nov 1994)


accept

    {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).

   (08 Nov 1994)


Acceptable Use Policy

    (AUP) Rules applied by many {transit network}s
   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.

   (08 Nov 1994)


acceptance testing

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

   (10 May 1996)


Access

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

   2.  {Microsoft Access}.

   (08 Nov 1994)


Access Control List

    (ACL) A list of the services available on a
   {server}, each with a list of the {host}s permitted to use the
   service.

   (08 Nov 1994)


access method

    Software in an {SNA} processor that controls the
   flow of information through a {network}.  Generally, the way
   that network devices access the network medium.

   [Which {layer}?]

   (05 May 1997)


access permission

   {permission}


access time

    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.

   (14 Jun 1997)


ACCLAIM

    A European Union {ESPRIT} {Basic Research Action}.

   [What's it about?]

   (08 Nov 1994)


Accounting File

    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.

   (08 Dec 1996)


accounting management

    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}.

   (05 May 1997)


ACCU

   {Association of C and C++ Users}


accumulator

    In a {central processing unit}, a {register} in
   which intermediate results are stored.  Without an
   accumulator, it would be necessary to write intermediate
   results 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).

   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.  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."

   (02 Mar 1995)


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

    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.

   (15 May 1997)


ACIS

    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"?].

   (21 Mar 1996)


ACK

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

   2.  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.

   (07 Jan 1997)


ACL

   1. {Access Control List}.

   2. {Association for Computational Linguistics}.

   3. A Coroutine Language.

   A {Pascal}-based implementation of {coroutine}s.

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

   (08 Nov 1994)


ACM

   1.  {Association for Computing Machinery}.

   2.  {addressed call mode}.

   (07 May 1997)


ACME

    /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?]

   (08 Nov 1994)


ACOM

    An early system on the {IBM 705}.

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

   (08 Nov 1994)


Acorn Archimedes

   {Archimedes}


Acorn Computer Group

    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.

   (08 Nov 1994)


Acorn Computers Ltd.

    A UK computer manufacturer, part of the {Acorn
   Computer Group} plc.  Acorn was founded 5th December 1978, 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.  Seven out of ten
   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 {microcomputer}s - 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 is
   the premier supplier of {information technology} products to
   UK education and has been the leading provider of 32-bit RISC
   based {personal computers} since 1987.  Acorn works with
   industry partners, users and software developers to provide
   products for the education, consumer, publishing and
   international markets.

   {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/)}

   E-mail: .

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

   (31 Oct 1994)


Acorn RISC Machine

    The original name of the {Advanced RISC Machine}.

   (07 Mar 1995)


ACOS

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

   (08 Nov 1994)


acoustic coupler

    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.

   (08 Nov 1994)


ACP

   {Algebra of Communicating Processes}


Acrobat

    A product from {Adobe Systems}, 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://www.acropolis.com/acropolis)}.

   (21 Apr 1995)


acronym

    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}.

   (15 Mar 1995)


ACSE

   {Association Control Service Element}


ACT

   {Annual Change Traffic}


ACT++

    A {concurrent} extension of {C++} based on
   {actor}s.

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

   (08 Nov 1994)


Act1

    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].

   (08 Nov 1994)


Act2

    An {actor} language.

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

   (08 Nov 1994)


Act3

    A high-level {actor} language by {Carl Hewitt}.  A
   descendant of {Act2} which provides support for automatic
   generation of {customer}s 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].

   (08 Nov 1994)


Actalk

    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].

   (08 Nov 1994)


Actis

    An approach to integrated {CASE} by {Apollo}.

   (08 Nov 1994)


activation record

    (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}.

   (07 Mar 1995)


active DBMS

    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}.

   (08 Nov 1994)


Active Language I

    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].

   (08 Nov 1994)


active matrix display

    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}.

   (09 Dec 1995)


Active Monitor

    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.

   (18 Jun 1996)


active object

    An {object} that encompasses its own {thread of
   control}.

   [What does this mean?]

   (08 Nov 1994)


Active Reconfiguring Message

    (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?]

   (06 Jun 1997)


Active Server Pages

    (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.

   {ASP (http://www.microsoft.com/iis/guide/whatisasp.asp)}.

   {ASP in IIS 4
   (http://www.microsoft.com/iis/guide/deploy.asp?A=2&B=4)}.

   (10 Feb 1998)


ActiveX

    {Microsoft}'s answer to {Java}.  ActiveX is a
   stripped down implementation of {OLE} designed to run over
   slow {Internet} links.

   [Details?  URL?]

   (09 Apr 1996)


ACT ONE

    A specification language.

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

   (08 Nov 1994)


Actor

    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)].

   (08 Nov 1994)


actor

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

   2.  In {Chorus}, the unit of resource
   allocation.

   (08 Nov 1994)


Actors

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

   ["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 , Cambridge Press, MA,
   1986].

   (12 Jun 1995)


Actra

    A {multi-processor} {exemplar}-based {Smalltalk}.

   [LaLonde et al, OOPSLA '86].

   (08 Nov 1994)


Actus

    {Pascal} with parallel extensions, similar to the
   earlier {Glypnir}.  It has parallel constants and {index
   set}s.  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)].

   (08 Nov 1994)


AD

   {Administrative Domain}


Ada

    (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 {subtype}s and {derived type}s.
   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 {exception}s and {exception handler}s.

   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 package}s and subroutines, possibly parametrised.

   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: .

   {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:
   ,
   .

   Another {yacc} {grammar} and {parser} for {Ada} by Herman
   Fischer is {here
   (ftp://wsmr-simtel20.army.mil/PD2:GRAM2.SRC)}.

   An {LR parser} and {pretty-printer} for {Ada} from NASA is
   available from the {Ada Software Repository}.  Michael Feldman
    referred to this package in
   comp.compilers, he also has a yacc grammar for ada.

   {Adamakegen} generates {makefile}s 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.

   (23 Jan 1995)


Ada++

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

   (19 Sep 1995)


Ada 83

    The original {Ada}, as opposed to {Ada 95}.

   (13 Mar 1995)


Ada 95

    A revision and extension of {Ada} (Ada 83) begun in
   1988 and completed in 1 Dec 1994 by a team lead by Tucker Taft
   of {Intermetrics}.  The printed standard was expected to be
   available around 15 Feb 1995.

   Additions include {object-orientation} ({tagged type}s,
   {abstract type}s and {class-wide type}s), 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 {generic}s and {type
   composition}.

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

   You can get the standard from the {Ada Joint Program Office
   (ftp://ajpo.sei.cmu.edu/public/)}, {Ada Information
   Clearinghouse (ftp://sw-eng.falls-church.va.us/public/)}.

   E-mail: Chris Anderson  (Ada 95
   Project Manager).

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

   (19 Jan 1995)


Ada 9X

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

   (19 Jan 1995)


ADABAS

    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 {platform}s 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 value}s and {periodic group}s.

   (30 Oct 1995)


Ada/Ed

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

   AdaEd runs on {Unix}, {MS-DOS}, {Atari ST} and {Amiga}.
   Version 1.11.0a+.  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
   clause}s and thus does not support systems programming close
   to the machine level.

   A later version is known as {GW-Ada}.

   E-mail: Michael Feldman .

   {(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 (ftp://micros.hensa.ac.uk/micros/arch/riscos/c/c052)}
   (E-mail: ).

   (18 Aug 1994)


Adaline

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

   (14 Mar 1995)


Ada Lovelace

    (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.

   (20 Sep 1995)


ADAM

   {A Data Management system}


Adamakegen

    A program that generates {makefile}s for {Ada}
   programs.  Adamakegen was written by Owen O'Malley
   .  It requires {Icon}
   and runs under {Verdix} and {SunAda}.  The current version is
   2.6.3.

   {(ftp://spare.ics.uci.edu/ftp/pub/arcadia/)}

   (02 Mar 1993)


ADAMO

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

   (14 Mar 1995)


Ada-O

    An {Ada} subset developed at the {University of
   Karlsruhe} in 1979, used for {compiler} {bootstrapping}.  It
   lacks {overloading}, {derived type}s, {real number}s, tasks
   and {generic}s.

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

   (14 Feb 1995)


Adaplan

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

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

   (07 May 1995)


Adaplex

    An extension of {Ada} for {functional
   database}s.

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

   (14 Feb 1995)


Ada Programming Support Environment

    (APSE) A program or set of programs to support
   software development in the Ada language.

   [Examples?]

   (30 Jun 1997)


ADAPT

    A subset of {APT}.

   [Sammet 1969, p. 606].

   (14 Feb 1995)


Adaptable User Interface

    (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" {GUI}s, including {Macintosh},
   {Microsoft Windows} and the {X Window System}.

   (16 Mar 1995)


adaptive answering

    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.

   (16 Mar 1995)


Adaptive Communication Environment

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

   (16 Mar 1995)


Adaptive Digital Pulse Code Modulation

    (ADPCM) A {compression} technique.

   ADPCM is used on the {Sony} minidisk.

   [Details?]

   (02 Nov 1994)


adaptive learning

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

   (16 Mar 1995)


adaptive routing

   {dynamic routing}


Adaptive Simulated Annealing

    (ASA) A language interface to a {neural net}
   simulator(?) by Lester Ingber .
   Version 1.53.

   {(ftp://ftp.caltech.edu/pub/ingber/)}

   Mailing list: .

   (14 Nov 1993)


Adaptor

    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 {Sun}s or {RS/6000}s.

   {(ftp://ftp.gmd.de/gmd/adaptor/adp_1.0.tar.Z)}.  E-mail:
   Thomas Brandes .

   (01 Jun 1993)


Ada Semantic Interface Specification

    (ASIS) An intermediate representation for {Ada}.

   E-mail: .

   See also {Diana}.

   (15 Feb 1995)


Ada Software Repository

    A collection of {Ada} programs?

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

   (06 Jan 1995)


ADC

   {Analog to Digital Converter}


ADCCP

   {Advanced Data Communications Control Protocol}


A/D converter

   {Analog to Digital Converter}


AD/Cycle

    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 system}s as well as languages
   and debuggers.

   (24 Oct 1994)


ADD 1 TO COBOL GIVING COBOL

    (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)].

   (17 Mar 1995)


ADDD

    A Depository of Development Documents.

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

   (03 Feb 1995)


additive

    A function f : X -> Y is additive if

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

   (f "preserves {lub}s").  All additive functions defined over
   {cpo}s are {continuous}.

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

   (03 Feb 1995)


address

   1.  {e-mail address}.

   2.  {Internet address}.

   3.  {MAC address}.

   4.  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.

   (01 Jul 1997)


address bus

    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}.

   (22 Mar 1995)


addressed call mode

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

   (07 May 1997)


addressing mode

   1.  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 {stack}s 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].

   (30 Mar 1995)


address mask

    (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.

   (21 Mar 1996)


address resolution

    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}.

   (09 Apr 1996)


Address Resolution 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}.

   (20 Mar 1995)


address space

    1. The range of addresses which a processor
   can access.  This usually depends on the width of the
   processor's {address bus} and address {register}s.  Address
   space may refer to either {physical address} or {virtual
   address}.

   2. The range of {physical address}es or {virtual address}es
   allocated to a process.

   (12 May 1995)


Address Strobe

    (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}.

   (02 Oct 1996)


ADELE

    A language for specification of {attribute
   grammar}s, 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].

   (23 Jan 1995)


ADES

    An early system on the {IBM 704}.

   Version: ADES II.

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

   (20 Mar 1995)


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".

   (25 Mar 1995)


ad-hockery

    /ad-hok'*r-ee/ (Purdue) 1. Gratuitous assumptions
   made inside certain programs, especially {expert system}s,
   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}.

   (05 Jan 1995)


ad-hoc polymorphism

   {overloading}


Aditi

    The Aditi Deductive Database System.  A
   multi-user {deductive database} system from the Machine
   Intelligence Project at the {University of Melbourne}.  It
   supports base {relation}s defined by {fact}s (relations in the
   sense of {relational database}s) and {derived relation}s
   defined by {rule}s 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-tree}s 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: .

   (17 Dec 1992)


adjacency

    A relationship between selected neighboring
   {routers} and {end nodes} for the purpose of exchanging
   routing information.  Adjacency is based upon the use of a
   common media segment.

   [Better explanation?]

   (07 May 1997)


adjacent

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

   (07 May 1997)


ADL

   1.  {Adventure Definition Language}.

   2.  {Ada} Development Language.

   R.A. Lees, 1989.

   3.  {API} Definition Language.

   A project for Automatic Interface Test Generation.

   (17 Nov 1995)


AdLog

    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].

   (21 Mar 1995)


ADM

    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].

   (21 Mar 1995)


ADMD

   {Administration Management Domain}


admin

   {system administrator}


Administration Management Domain

    (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].

   (07 May 1997)


administrative distance

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

   [Algorithm?]

   (07 May 1997)


Administrative Domain

    (AD) A collection of {host}s and {router}s, and
   the interconnecting network(s), managed by a single
   administrative authority.

   (24 Nov 1994)


Adobe

   {Adobe Systems, Inc.}


Adobe Systems, Inc.

    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.

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

   E-mail: .

   Address: Silicon Valley, California, USA.

   (13 Dec 1996)


Adobe Type Manager

    (ATM) Software that produces
   {PostScript} {outline font}s on screen and paper.  There are
   version s that run under {Microsoft Windows} and on the
   {Macintosh}.

   [What font features does it support?]

   (01 Feb 1995)


ADPCM

   {Adaptive Digital Pulse Code Modulation}


ADS

   An {expert system}.


ADSL

   {Asymmetric Digital Subscriber Line}


ADSP

   {AppleTalk Data Stream Protocol}


ADSU

   {ATM Data Service Unit}


ADT

   {abstract data type}


Advanced Communication Function/Network Control Program

    (ACF/NCP) The primary {SNA} {network control
   program}.  ACF/NCP rides in the {communications controller}
   and interfaces with the SNA {access method} in the {host
   processor} to control network communications.

   [Communication or Communications?  Is ACF/NCP one of the {ACF}
   products?]

   (07 May 1997)


Advanced Communications Function

    (ACF) A group of {SNA} products that provide
   {distributed processing} and resource sharing.

   [Communication or Communications?]

   (07 May 1997)


Advanced Computing Environment

    (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.

   (03 Feb 1995)


Advanced Data Communications Control Protocol

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

   (07 May 1997)


Advanced Interactive eXecutive

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

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

   (24 Nov 1994)


Advanced Micro Devices, Inc.

    (AMD) The fifth-largest, US manufacturer of
   {integrated circuit}s, founded in 1969.  AMD focuses on the
   personal and networked computation and communications market.
   They produce {microprocessor}s, {embedded processor}s and
   related peripherals, memories, {programmable logic device}s,
   circuits for telecommunications and networking applications.

   AMD has 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 make clones of the {Intel 80386} and {Intel 486}
   {microprocessor}s.

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

   Address: Sunnyvale, CA, USA.

   (27 Feb 1995)


Advanced Network Systems Architecture

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

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

   (01 Apr 1996)


Advanced Peer-to-Peer Networking

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

   (03 Feb 1995)


Advanced Power Management

    (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}.

   (25 Aug 1997)


Advanced Program-to-Program Communications

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

   (03 Feb 1995)


Advanced Research Projects Agency

    (ARPA) An agency of the US Department of Defense
   responsible for the development of new technology for use by
   the military.  ARPA was its original name, then it was known
   as DARPA (for Defense) and now it is ARPA again.  It was
   responsible for funding development of {ARPANET} (which grew
   into the {Internet}), the {Berkeley} version of {Unix} and
   {TCP/IP}.

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

   [When was it renamed?]

   (18 Jan 1995)


Advanced Research Projects Agency Network

    (ARPANET) A pioneering longhaul {wide area
   network} funded by {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 line}s.  {Protocol}s used
   include {FTP} and {telnet}.  It has now been replaced by
   {NSFnet}.

   [1968 or 1969?]

   (17 Nov 1994)


Advanced Revelation

    (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.

   (12 Dec 1996)


Advanced RISC Computing Specification

    (ARC) The baseline hardware requirements
   for an {ACE}-compatible system.

   (16 Jan 1995)


Advanced RISC Machine

    (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}.

   (05 Aug 1997)


Advanced RISC Machines Ltd.

    (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.

   {Home (http://www.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.

   (03 Nov 1994)


Advanced Software Environment

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

   (12 Sep 1995)


Advanced Technology Attachment

    (ATA, AT Attachment) {ANSI}
   group X3T10's official name for the {disk drive} interface
   {standard} commonly known as {Integrated Drive Electronics}
   (IDE).

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

   (21 Mar 1996)


Advanced Technology Attachment Interface with Extensions

    (ATA-2) A proposed (May 1996 or earlier?)
   {standard} from {X3T10} (document 948D rev 3) which extends
   the {AT Attachment} interface while maintaining compatibility
   with current {IBM PC} {BIOS} designs.

   {Marketroids} call ATA-2 "Fast ATA" or "Fast ATA-2" since the
   main changes are increased interface speed.  Optional support
   for power saving modes and removable devices is also in the
   standard.

   (16 Oct 1996)


Advanced WavEffect

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

   (15 Dec 1996)


ADVENT

    /ad'vent/ The prototypical computer {Adventure} game,
   first implemented by Will Crowther for a {CDC} computer
   (probably the 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
   {DEC20}s 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?]

   (01 Apr 1996)


Adventure Definition Language

    (ADL) An {adventure} game language
   {interpreter} designed by Ross Cunniff  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)}.

   (20 Mar 1995)


ADVSYS

    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)}

   (20 Mar 1995)


AE

   {Application Executive}


AED

   {Automated Engineering Design}


AEGIS

    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.

   (25 Feb 1997)


Aegis

    A {CASE} tool for project change
   management, from the {GNU} project.

   (27 Mar 1995)


Aeolus

    A {concurrent} language with {atomic transaction}s.

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

   (27 Mar 1995)


AEP

   {Application Environment Profile}


aeroplane rule

   "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 rule that
   simplicity increases robustness.  It is correspondingly argued
   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.

   See also {KISS Principle}.

   (04 Apr 1995)


AES

   {Application environment specification}


AESOP

   {An Evolutionary System for On-line Programming}


AFAC

    An early system on the {IBM 704}.

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

   (04 Apr 1995)


AFAIK

    as far as I know.


affine transformation

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

     A(x) = Mx + v

   is a typical affine transformation.

   (10 Apr 1995)


AFIPS

   {American Federation of Information Processing Societies}


AFJ

   {April Fool's Joke}


AFK

    away from keyboard.


aflex

    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: .

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

   (06 Jan 1993)


AFNOR

    Association Francaise pour la Normalisation.

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

   (14 Dec 1994)


AFP

   {Appletalk Filing Protocol}


AFS

   {Andrew File System}


AFUU

   {Association Française des Utilisateurs d'Unix}


agent

    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.

   (09 Apr 1995)


aggregate type

    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}.

   (23 Mar 1996)


aggregation

    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.

   (07 Jan 1996)


AGL

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

   (07 Jan 1997)


AGM Theory for Belief Revision

    (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?]

   (20 Mar 1995)


AGORA

    A distributed {object-oriented language}.


AGP

   {Accelerated Graphics Port}


AGP graphics

   {Accelerated Graphics Port}


A Hardware Programming 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].

   (26 Jan 1995)


AHDL

   {Analog Hardware Design Language}


AHPL

   {A Hardware Programming Language}


AI

   {artificial intelligence}


AIA

   {Application Integration Architecture}


AI-complete

    /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}.

   (12 Apr 1995)


AID

   {Algebraic Interpretive Dialogue}


AIDA

    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].

   (12 Apr 1995)


AIDS

    /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}.

   (13 Apr 1995)


AIDX

    /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}.

   (13 Apr 1995)


AIFF

   {Audio IFF}


AI koan

    /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."

   (08 Feb 1995)


AIMACO

   {AIr MAterial COmmand compiler}


Aimnet

    An {Internet} {access provider} for
   individuals and corporations.  They provide {dial-up}, {SLIP},
   {PPP} and {shell account}s as well as {ISDN}.

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

   Address: Cupertino, CA 95014, USA.

   Telephone: +1 (408) 253 0900

   (08 Feb 1995)


AIr MAterial COmmand compiler

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

   [Sammet 1969, p. 378].

   (20 Feb 1995)


AIX

   {Advanced Interactive eXecutive}


AKC

   {Ascending Kleene Chain}


AKCL

   {Austin Kyoto Common Lisp}


AKL

   {Andorra Kernel Language}


AL

   1. {Assembly Language}.

   2. {artificial life}.


Aladdin Systems

    The developers of the {stuffit} file archiving and
   {compression} utility for the {Macintosh}.

   (01 Mar 1995)


ALADIN

   1.  {A Language for Attributed Definitions}.

   2.  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].

   (13 Apr 1995)


ALAM

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

   See also {CLAM}.

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

   (28 Oct 1994)


A-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].

   (28 Oct 1994)


A Language Encouraging Program Hierarchy

    (ALEPH) A language developed in about 1975.

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

   (27 Feb 1997)


A Language for Attributed Definitions

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

   ["GAG: A Practical Compiler Generator", Uwe Kastens
    et al, LNCS 141, Springer 1982].

   (14 Apr 1995)


A Language with an Extensible Compiler

    (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].

   (19 Apr 1995)


Alan Kay

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

   (24 Nov 1994)


Alan M. Turing

   {Alan Turing}


Alan Turing

    Alan M. Turing, 22/3? June 1912 - 7 June 1954.  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 studied at {King's College London} 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, not for the reason
   that's common today, but 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".

   (10 May 1995)


A-law

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

   [Equation?]

   (21 Feb 1995)


ALC

   1. {Assembly Language Compiler}.

   2. {Airline Line Control}.

   (05 Feb 1997)


Alcool-90

    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: .

   (18 Apr 1995)


ALCOR

    A subset of {ALGOL}.

   [Sammet 1969, p. 180].

   (18 Apr 1995)


Aldat

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

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

   (19 Apr 1995)


ALDES

   {ALgorithm DEScription}


ALDiSP

   {Applicative Language for Digital Signal Processing}


ALEC

   {A Language with an Extensible Compiler}


ALEF

    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.

   (13 Feb 1997)


ALEPH

   1.  {A Language Encouraging Program Hierarchy}.

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

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

   (15 Dec 1994)


Aleph

    ["Aleph: A language for typesetting", Luigi
   Semenzato  and Edward Wang
    in Proceedings of Electronic
   Publishing, 1992 Ed. Vanoirbeek & Coray Cambridge University
   Press 1992].

   (15 Dec 1994)


aleph 0

    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.

   (29 Mar 1995)


Alex

    1. A {polymorphic} language being developed by
   Stephen Crawley  of Defence Science & Tech
   Org, Australia.  Alex has {abstract data type}s, {type
   inference} and {inheritance}.

   2.  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.  A {scanner generator}.  {Alexis} is its input
   language.

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

   (15 Dec 1994)


Alexis

    Alex Input Specification.

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

   (23 Apr 1995)


ALF

   {Algebraic Logic Functional language}


Alfl

    A lazy function language.  A {weakly typed}, {lazy}
   {functional language} developed by Paul Hudak
    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}.

   (24 Apr 1995)


algebra

   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 (see below).

   For example, 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"].

   (28 Feb 1997)


ALGEBRAIC

    An early system on {MIT}'s {Whirlwind}.

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

   (24 Jan 1995)


algebraic

    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?]

   (25 Apr 1995)


algebraic data type

    (Or "sum of products type") In {functional
   programming}, new types can be defined, each of which has one
   or more {constructor}s.  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 type}s (only one
   constructor) and {enumeration type}s (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).

   (23 Nov 1994)


Algebraic Interpretive Dialogue

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

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

   (12 Apr 1995)


Algebraic Logic Functional language

    (ALF) A language by Rudolf Opalla
    which combines
   {functional programming} and {logic programming} techniques.

   ALF is based on {Horn clause} logic with equality which
   consists of {predicate}s 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].

   (08 Oct 1992)


Algebraic Manipulation Package

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

   (19 Oct 1994)


Algebraic Specification Language

   1.  (ASL)

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

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

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

   (13 Dec 1995)


algebraic structure

    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?]

   (25 Feb 1997)


Algebra of Communicating Processes

    (ACP)

   Compare {CCS}.

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

   [Summary?]

   (08 Nov 1994)


ALGOL

   {ALGOL 60}


ALGOL 58

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

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

   [Details?  Relationship to ALGOL 60?]

   (05 Mar 1997)


ALGOL 60

    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].

   (25 Jan 1995)


ALGOL 60 Modified

   

   ["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.

   (25 Jan 1995)


ALGOL 60 Revised

    (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].

   (25 Jan 1995)


ALGOL 68

    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 complex, and posed difficulties for both
   implementors and users.  It featured {structural equivalence};
   automatic type conversion ("{coercion}") including
   {dereferencing}; {flexible arrays}; generalised loops
   (for-from-by-to-while-do-od), if-then-elif-fi, an integer case
   statement with an 'out' clause; {skip} and {goto} statements;
   blocks; procedures; user-defined operators; {procedure
   parameters}; {concurrent} execution (cobegin/coend);
   {semaphores}; generators "heap" and "loc" for {dynamic
   allocation}.  It had no {abstract data types} or {separate
   compilation}.

   (01 May 1995)


ALGOL 68C

    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}.

   (02 May 1995)


ALGOL 68-R

    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].

   (03 May 1995)


ALGOL 68 Revised

    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].

   (03 May 1995)


ALGOL 68RS

    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}.

   (04 May 1995)


ALGOL 68S

    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
   .

   Version 2.3 runs on {Sun3} 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].

   (04 May 1995)


ALGOL C

    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.

   (24 Nov 1994)


ALGOL D

   

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


ALGOL N

    A successor to {ALGOL 60} proposed by Yoneda.

   (24 Nov 1994)


ALGOL W

    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].

   (24 Nov 1994)


ALGOL X

    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].

   (07 May 1995)


ALGOL Y

    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}.

   (09 May 1995)


algorithim

    Misspelling of "{algorithm}".

   (25 Feb 1997)


algorithm

    A detailed sequence of actions to
   perform to accomplish some task.  Named after an Iranian
   mathematician, Al-Khawarizmi.

   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).

   (06 Apr 1996)


ALgorithm DEScription

    (ALDES) ["The Algorithm Description Language
   ALDES", R.G.K. Loos, SIGSAM Bull 14(1):15-39 (Jan 1976)].

   (19 Apr 1995)


ALgorIthmic ASsembly 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].

   (13 Mar 1997)


Algorithmic Language

   {Algol 60}


Algorithmic Model

    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}.

   (28 May 1996)


Algorithmic Processor Description 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].

   (26 Nov 1995)


Algorithmic Test Case Generation

    A computational method for identifying test
   cases from data, logical relationships or other software
   {requirements} information.

   (10 May 1996)


ALGY

    An early language for {symbolic mathematics}.

   [Sammet 1969, p. 520].

   (12 Apr 1995)


ALIAS

   {ALgorIthmic ASsembly language}


alias

   1.  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.  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 hosts 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.  The name used by {Apple computer, Inc.} for
   {symbolic links} when they added them to the {System 7}
   {operating system} in 1991.

   (22 Oct 1997)


aliasing bug

   {stale pointer bug}


Alice

    A parallel {graph rewriting} computer
   developed by {Imperial College}, {University of Edinburgh} and
   {ICL}.

   (19 Jan 1995)


alife

   {artificial life}


A-Life

   {artificial life}


ALJABR

    An implementation of {MACSYMA} for the {Macintosh} by
   {Fort Pond Research}.

   E-mail: .

   (21 Feb 1995)


Allegro

    The code name for the major {Mac OS}
   release due in mid-1998.

   {(http://devworld.apple.com/mkt/informed/appledirections/mar97/roadmap.html)}.

   (15 Oct 1997)


all-elbows

    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.

   (21 Feb 1995)


ALLIANCE

    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 {Sun4}, not well supported: {MIPS}/{Ultrix},
   {386}/{SystemV}.

   Current version: 1.1 (as of 16 Feb 1993).

   {(ftp://ftp-masi.ibp.fr/pub/cao-vlsi/alliance)}.

   Mailing list: .

   E-mail: .

   (16 Feb 1993)


ALLOY

    A language by Thanasis Mitsolides
    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
   , PhD Thesis NYU 1990].

   (11 Jun 1991)


ALM

   {Assembly Language for Multics}


Aloha

    (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.

   (10 Dec 1995)


Aloha Net

    (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.

   (10 Dec 1995)


Alonzo Church

    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}.

   (25 Mar 1995)


ALP

    A {list processing} extension of {Mercury
   Autocode}.

   ["ALP, An Autocode List-Processing Language", D.C. Cooper et
   al, Computer J 5:28-31, 1962].

   (24 Jan 1995)


ALPAK

    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].

   (10 May 1995)


ALPHA

    (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].

   (10 May 1995)


Alpha

   1.  A {compiler generator} written by Andreas Koschinsky
    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.

   (16 Feb 1993)

   2.  {DEC Alpha}.

   (10 May 1995)


Alpha AXP 21164

    A 1 {GIPS} version of the {DEC Alpha} processor.
   The first commercially available sequential 1 GIPS processor.
   Announced 7 Sep 1994.

   {(http://www.digital.com/info/semiconductor/dsc-21164.html)}

   (10 May 1995)


alpha/beta pruning

    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.

   (05 May 1997)


alpha conversion

    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}.

   (10 May 1995)


Alpha Geek

    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.

   (25 Jun 1997)


alphanumeric

    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.

   (11 Sep 1997)


alpha particle

   {bit rot}


Alphard

    (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].

   (10 May 1995)


alpha testing

    Testing of software at the developer's site by
   the customer.  The stage before {beta testing}.

   (10 May 1996)


ALPS

    1. An early interpreted {algebraic language} for
   the {Bendix G15} by Richard V. Andree of the {University of
   Oklahoma}.  ALPS is said to have preceded and influenced
   development of {BASIC}.

   Dale Peters  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.  Richard Andree taught the computing
   class which mostly used the language GO-GO which was later
   renamed ALPS.  Andree, Harold Wiebe, Ralph Howenstein, and
   another grad student were changing the language frequently
   during the class, which was occasionally a little
   disorienting.  Dale believes it was used in the previous
   summer as well and that it was about this time that Kemeny
   (one of the designers of BASIC) saw it during a visit.

   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].

   (24 Nov 1994)


alt

    /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.  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".

   (12 Apr 1997)


ALTAC

    An extended {FORTRAN II} for the {Philco 2000},
   built on {TAC}.

   [Sammet 1969, p.146].

   (16 Mar 1995)


Altair 8800

   An {Intel 8080}-based machine made by {MITS}.  The Altair was
   the first popular {microcomputer} kit.

   It appeared on the cover of the January 1974 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 realized 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.

   [Relation to {Altair 9000}?]

   (30 Jun 1997)


Altair 9000

    An early {microcomputer}.  It was developed in the
   USA in the 1970s by {Forrest Mimms} and his colleagues.

   [Forrest M. Mimms, article in "Computers and Electronics",
   (formerly "Popular Electronics") mid 1980s].

   [Did it really exist?  Where?  Features?  Relation to {Altair
   8800}?]

   (14 Mar 1995)


Alta Vista

    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.

   {Home (http://www.altavista.digital.com/)}.

   (10 Jun 1996)


alt bit

   /awlt bit/ alternate bit.  See {meta bit}.


altmode

   {alt}


ALTRAN

    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)].

   (01 Jun 1995)


alt.sources

    A {Usenet} {newsgroup} for posting
   program {source code}.

   {Archive (ftp://wuarchive.wustl.edu/usenet/alt.sources/)}.

   (18 Oct 1995)


ALU

   1.  {Arithmetic and Logic Unit}.

   2.  {Association of Lisp Users}.


Aluminum Book

   

   ["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://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html)}.

   See also {book titles}.

   (25 Jun 1997)


Alvey

    A funding programme for collaborative research
   in the UK.

   (01 Jun 1995)


AM

   {Amplitude Modulation}


A Manufacturing Language

    (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].

   (25 Sep 1995)


Amber

    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.

   (08 Dec 1994)


AMBIT

    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].

   (08 Dec 1994)


AMBIT/G

    {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].

   (08 Dec 1994)


AMBIT/L

    {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)].

   (08 Dec 1994)


AMBIT/S

    {AMBIT} for strings.


AMBUSH

    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)].

   (19 Jun 1995)


AMD

   1.  {Advanced Micro Devices}.

   2.  According to Don Olivier
   , his system manager came in to work one
   morningn 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".

   (16 Jan 1995)


AMD 29000

    A {RISC} {microprocessor} descended from the
   {Berkley RISC} design.  Like the {SPARC} design that was
   introduced shortly afterwards, 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.  Branches to another stream can
   cause a delay, so the first four new instructions are cached -
   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}.

   (19 Jun 1995)


AMD 29027

    The {FPU} for the {AMD 29000}.

   (16 Jan 1995)


Amdahl

   1.  {Amdahl Corporation}.

   2.  {Gene Amdahl}.


Amdahl Corporation

    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).

   {Home (http://www.amdahl.com/)}

   (23 May 1995)


Amdahl's Law

    (Named after {Gene Amdahl}) If F is the fraction of
   a calucation 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).

   (23 May 1995)


AMD Am2901

    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}.

   (16 Nov 1994)


AMD Am2903

    A {bit-slice} prcessor from {Advanced Micro
   Devices} which featured hardware multiply.

   (16 Nov 1994)


AMD Am2910

    An {address sequencer} from {Advanced Micro
   Devices}.

   (16 Nov 1994)


American National Standards Institute

    (ANSI) The United States government body
   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.

   {Home (http://www.ansi.org/)}.

   Address: New York, NY 10036, USA.  Sales: 1430 Broadway, NY NY
   10018.  Telephone: +1 (212) 642 4900.

   (03 Nov 1996)


American Society of Mechanical Engineers

    (ASME) A group involved in {CAD} standardisation.

   (21 Apr 1995)


American Standard Code for Information Interchange

    (ASCII) The predominant {character set}
   encoding of present-day computers.  The modern version uses
   seven {bits} for each character, whereas most earlier codes
   (including an early version of ASCII) used fewer.  The change
   to seven bits allowed the inclusion of lowercase letters - a
   major {win} - but it did not provide for accented letters or
   any other letterforms not used in English (such as the German
   sharp-S or the ae-ligature which is a letter in, for example,
   Norwegian).  It could be worse though.  It could be much
   worse.  See {EBCDIC} to understand how.

   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}, {percent}, {plus},
   {question mark}, {right brace}, {right brace}, {right
   bracket}, {right parenthesis}, {semicolon}, {single quote},
   {slash}, {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 ASCII text to correctly represent any of the
   world's other major languages makes the designers' choice of
   seven bits look more and more like a serious {misfeature} as
   the use of international networks continues to increase (see
   {software rot}, {ISO 8859}).  Hardware and software from the
   US still tends to embody the assumption that ASCII is the
   universal character set and that characters have seven bits;
   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} produce an evolutionary pressure to use
   a *smaller* subset common to all those in use.  Software is
   described as "{eight bit clean}" if it correctly handles
   characters sets which use all eight bits.

   {ASCII character table}

   See also {Yu-Shiang Whole Fish}.

   (06 Mar 1995)


America On-Line, Inc.

    (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}.

   {Home (http://www.aol.com/)}.

   (26 Aug 1997)


Amiga

    A range of home computers first released by
   {Commodore Business Machines} in 1985 (though they did not
   design the original - see below).  Amigas are 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.

   Most components within the machine were known by nicknames.
   The {coprocessor} that we commonly call 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.  Thus, there is no such things as the "Copper
   Chip".

   "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 {resoloution}
   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, {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 controller} used in the
   A3000 and on the A2091/A2092 SCSI controller 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
   pallette, 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}.  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".

   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.  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.

   Commodore Bussines Machines went bankrupt on 29 April 1994,
   the German company {Escom AG} bought the rights to the Amiga
   on 21 April 1995 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} bought the Amiga brand on 15 May 1997.

   A company known as Phase5 has been working on their own
   {PowerPC} based Amiga {clone} with a reverse-engineered {OS}
   and planned to release it at the end of 1997.

   {Home (http://www.amiga.de/)}.

   {Amiga Web Directory (http://www.cucug.org/amiga.html)}.

   {amiCrawler (http://www.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}.

   [Did the Amiga company ever sell any computers?]

   (06 Jan 1998)


Amiga E

    An {Amiga} {E} {compiler} by Wouter van Oortmerssen
   .

   Amiga E is very fast - 20000 lines/minute on a 7 Mhz Amiga.
   It allows inline {assembly code} and has an integrated
   {linker}.  It has a large set of integrated functions, a
   {module} concept with 2.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)}.

   Mailing list: .

   {Usenet} newsgroup: {news:comp.sys.amiga.programmer}.

   (26 Aug 1997)


Aminet

    (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)}.

   (31 Aug 1997)


AML

   {A Manufacturing Language}


AML/E

    (AML Entry) A simple version of {AML}, implemented
   on the {IBM PC}, with a graphic display of the robot position.

   (03 Oct 1995)


Amoeba

   1.  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.

   {Home (http://www.am.cs.vu.nl/)}.

   [Features?]

   2.  A derogatory term for {Commodore}'s
   {Amiga} {personal computer}.

   (07 May 1997)


AMP

   {Algebraic Manipulation Package}


amper

   {ampersand}


ampersand

    "&" {ASCII} character 38.

   Common names: {ITU-T}: ampersand; amper; and.  Rare: address
   (from {C}); reference (from C++); andpersand; bitand;
   background (from {sh}); pretzel; amp.  {INTERCAL} called this
   "ampersand"; what could be sillier?

   [Why "ampersand"?]

   (06 Mar 1995)


AMPL

    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?]

   (01 Nov 1995)


AMPLE

    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.

   (01 Nov 1995)


Amplitude Modulation

    (AM) A method of encoding data by varying the
   {amplitude} of a constant frequency {carrier}.

   (18 Jun 1996)


amp off

    (Purdue) To run in {background}.  From the {Unix}
   {shell} "&" (ampersand) operator.

   (14 Nov 1995)


AMPPL-II

   {Associative Memory Parallel Processing Language}


AMS

   {Andrew Message System}


AMTRAN

   {Automatic Mathematical TRANslation}


Amulet

    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:
   backwards {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}.

   {Home (http://www.cs.man.ac.uk/amulet)}

   (08 Dec 1994)


analog

    American spelling of {analogue}.

   (14 Nov 1995)


Analog Hardware Design Language

    (AHDL) A language under development by the US Air
   Force.

   (09 Apr 1995)


analogue

    Used to describe a continuously variable signal,
   as opposed to a discrete or "digital" one, or a circuit
   designed to handle such signals.

   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}.

   (14 Nov 1995)


analogue computer

    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.

   (01 May 1995)


Analogy Model

    A method of estimating the cost of a proposed
   software project by extrapolating from the costs and schedules
   of similar completed projects.

   (28 May 1996)


anchor

    (Or "span", "region", "button", "extent") An area
   within the content of a {hypertext} {node} (e.g. a {web page})
   which is the source or destination of a {link}.  A source
   anchor may be a word, phrase, image, or possibly the whole
   node.  A destination anchor may be a whole node or some
   position within the node.

   Typically, clicking with the {mouse} on a source anchor causes
   the link to be followed and the anchor at the opposite end of
   the link to be displayed.  Anchors are highlighted in some way
   (either always, or when the mouse is over them), or they may
   be marked by a special symbol.

   In {HTML} anchors are created with the .. construct.
   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 node or "page".  E.g.

   	
   	Free On-line Dictionary of Computing

   Destination anchors are only used in HTML to name a position
   within a page using a NAME attribute.  E.g.

   	

   The name or "fragment identifier" is appended to the URL of
   the page with a "#":

   	http://www.fairystory.com/goldilocks.html#chapter3

   (Though it is generally better to break pages into smaller
   units than to have large pages with named sections).

   (15 Nov 1997)


ANCP

    An early system on the {Datatron 200} series.

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

   (15 Nov 1995)


AND

    (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}.

   (15 Nov 1997)


ANDF

   {Architecture Neutral Distribution Format}


Andorra-I

    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?]

   (24 Nov 1995)


Andorra Kernel Language

    (AKL) The successor to {KAP} by S. Janson
   .

   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].

   (24 Nov 1994)


Andorra-Prolog

   

   ["Andorra-Prolog: An Integration of Prolog and Committed
   Choice Languages", S. Haridi et al, Intl Conf Fifth Gen Comp
   Sys 1988, ICOT 1988].

   (24 Nov 1995)


Andrei Markov

    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?]

   (06 Oct 1995)


Andrew File System

    (AFS) The distributed {file
   system} of the {Andrew Project}, adopted by the {OSF} as part
   of their {Distributed Computing Environment}.

   {Frequently Asked Questions
   (http://www.transarc.com/Product/AFS/FAQ/faq.html)}.

   (24 Nov 1994)


Andrew Fluegelman

    The author of the {MS-DOS} communications program
   {PC-TALK III}.  He once owned the trademark "{freeware}" but
   it wasn't enforced after his mysterious disappearance and
   presumed death in 1984.

   (25 Aug 1997)


Andrew Message System

    A {multimedia} interface to {electronic mail} and
   {bulletin boards}, developed as part of the {Andrew Project}.

   (24 Nov 1994)


Andrew 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?]

   (17 Nov 1997)


Andrew S. Tanenbaum

   {Andrew Tanenbaum}


Andrew Tanenbaum

    Professor Andrew S. Tanenbaum (1941-) of the {Vrije
   Universiteit, Amsterdam} in Holland.  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.

   E-mail: Andrew Tanenbaum .

   See {Amoeba}, {Mac-1}, {Mic-1}, {Mic-2}, {Micro Assembly
   Language}, {MINIX}, {MicroProgramming Language}, {standard}.

   (23 Apr 1996)


Andrew Toolkit

    A {portable} {user interface} toolkit developed as part
   of the {Andrew project}, running on the {X Window System} and
   distributed with {X11R5}.

   (24 Nov 1995)


An Evolutionary System for On-line Programming

    (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].

   (04 Apr 1995)


Angel

    A single {address space}, {micro-kernel}
   {operating system} for {multiprocessor} computers, developed
   at {Imperial College} and {City University}, London, UK.

   [Ariel Burton]

   (24 Nov 1995)


angle bracket

    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}.

   (24 Nov 1995)


angry fruit salad

    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.

   (24 Nov 1995)


ANI

   {Automatic Number Identification}


animation

    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)}.

   (24 Nov 1995)


Animus

   ["Constraint-Based Animation: The Implementation of Temporal
   Constraints in the Animus System", R. Duisberg, PhD Thesis U
   Washington 1986].

   (24 Nov 1995)


ANL

   {Argonne National Laboratory}


Anna

   {ANNotated Ada}


annealing

   {simulated annealing}


annotate

   {annotation}


ANNotated Ada

    (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].

   (01 Nov 1994)


annotation

   1.  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.  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.

   (26 Nov 1995)


annoybot

    /*-noy-bot/ An irksome {IRC} {robot}.

   (23 Dec 1997)


Annual Change Traffic

    (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.

   (29 May 1996)


anonymous FTP

    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 {username}
   "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}.

   (26 Nov 1995)


ANR

   {Automatic Network Routing}


ANSA

   {Advanced Network Systems Architecture}


ANSI

   {American National Standards Institute}


ANSI C

    (American National Standards Institute C)
   A revision of {C}, adding {function prototypes}, {structure
   passing}, {structure assignment} and standardised library
   functions.  {ANSI} X3.159-1989.

   {(ftp://princeton.edu/pub/lcc/)}.

   {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.

   (26 Nov 1995)


ANSI Minimal BASIC

    ANS X3.60-1978.

   [Details?]

   (29 Nov 1995)


ANSI/SPARC Architecture

    A layered model of {database} architecture
   comprising a {physical schema}, a {conceptual schema} and
   user {views}.

   [Reference?]

   (26 Nov 1995)


ANSI Z39.50

    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 {web site} explains the relevant {ISO}
   {standards} and how they are amicably converging in Z39.50
   version 4.0.

   {Overview (http://www.nlc-bnc.ca/ifla/VI/5/op/udtop3.htm)}.

   {Z39.50 resources
   (http://lamp.cs.utas.edu.au/net.html#Z3950)}.

   (22 Jul 1996)??


anti-aliasing

    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.

   [Why (anti-) "aliasing"?]

   (30 Aug 1997)


antichain

    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}).

   (03 Feb 1995)


antisymmetric

    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 order}s and {total order}s are antisymmetric.  If R
   is also {symmetric} (x R y => y R x) then x R y => x == y.
   I.e.  different elements are not related.

   (18 Apr 1995)


anti-virus software

    Programs to detect and remove computer {virus}es.

   (14 Mar 1995)


ANTLR

   ANother Tool for Language Recognition.

   The {parser generator} in the {Purdue Compiler-Construction
   Tool Set}.

   (26 Oct 1995)


ANU

   {Australian National University}


ANU ML

    An implementation of {SML} by the {Australian
   National University} for {Motorola 68020}, {Vax} and
   {Pyramid}.

   (26 Nov 1995)


anytime algorithm

    An {algorithm} that returns the best answer
   possible even if it is not allowed to run to completion, and
   may improve on the answer if it is allowed to run longer.  For
   example, a program displaying an image downloaded over a slow
   link could display it top to bottom, but an anytime program
   would show a low-resolution (fuzzy or grainy) picture
   immediately, then gradually sharpen it as more details are
   downloaded.  Another example is an {iterative deepening}
   search.

   (26 Nov 1995)


AOCE

   {Apple Open Collaboration Environment}


AOL

   {America On-Line}


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} instead of {postfix} (reverse
   Polish) notation.

   (26 Nov 1995)


APA

   {Application Portability Architecture}


Apache

    A {public domain} {HTTP} server for
   {Unix}.  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.  In August 1996 Apache was the most
   popular HTTP server on the {Internet}, running on 36% of all
   web servers.

   It features highly configurable error messages, {DBM}-based
   {authentication} {databases}, and {content negotiation}.  It
   also offers improved performance, and fixes many bugs in the
   NCSA 1.3 code.

   Version: 1.1.1 (Aug 1996).

   {Home (http://www.apache.org)}.

   {FAQ (http://www.teaser.fr/apache/docs/FAQ.html)}.

   (25 Aug 1996)


APAL

   Array Processor Assembly Language.

   The {assembly language} for the {DAP} parallel computer.

   (28 Nov 1994)


APAREL

   A PArse REquest Language.  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)].

   (26 Nov 1995)


APC

   {Association for Progressive Communications}


APDL

   {Algorithmic Processor Description Language}


apE

    A graphics package from the Ohio Supercomputer
   Centre.

   (29 Nov 1995)


API

   {Application Program Interface}


APIC

   {Advanced Programmable Interrupt Controller}


APL

   {A Programming Language}


APL2

    An {APL} extension with nested {array}s from {IBM}.

   ["APL2 Programming: Language Reference", IBM Aug 1984.  Order
   No. SH20-9227-0].

   (29 Nov 1995)


APLGOL

    An {APL} variant with {ALGOL}-like control
   structure, from {Hewlett-Packard}(?).

   (29 Nov 1995)


APLWEB

    A {Web} to {APL} and {Web} to {TeX} translator by
   Dr. Christoph von Basum .

   {(ftp://watserv1.uwaterloo.ca/languages/apl/aplweb/)}

   (27 Dec 1992)


APM

   {Advanced Power Management}


Apollo Computer

    A company making {workstations}, now a division of
   {Hewlett-Packard}.

   (29 Nov 1995)


app

   {application program}


APPC

   {Advanced Program-to-Program Communications}


AppKit

    A set of objects used by the {application builder} for
   the {NEXTSTEP} environment.

   (13 Mar 1995)


APPLE

    A revision of {APL} for the {Illiac IV}.

   (28 Apr 1995)


Apple Computer, Inc.

    Manufacturers of the {Macintosh} range of {personal
   computer}s 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 {microcomputer}s.  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.

   Quarterly sales $2150M, profits $138M (Aug 1994).

   {Home (http://www.apple.com/)}.

   (16 Jun 1996)


Apple II

    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 PC}s.

   (12 Jan 1995)


Apple Macintosh

   {Macintosh}


Apple Newton

    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 now 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} currenlty competes with {Microsoft
   Corporation}'s {Windows CE}, and will be compatible with
   {DEC}'s new {StrongARM} SA-1100, an embedded 200MHz
   {microprocessor}, due in 1998.

   {Home (http://www.newton.apple.com/)}.

   {Handwriting recognition example
   (http://www-personal.engin.umich.edu/~jxm/tablespoons.html)}.

   (12 Sep 1997)


Apple Open Collaboration Environment

    (AOCE) Software for {electronic mail} and directory
   services.

   (08 Mar 1995)


AppleScript

    An {object-oriented} {shell} language for the
   {Macintosh}, approximately a superset of {HyperTalk}.

   (10 Dec 1995)


Applesoft BASIC

    A version of {BASIC} for {Apple} computers.

   (10 Dec 1995)


applet

    A program written in {Java} which can be
   distributed as an attachment in a {World-Wide Web} document
   and executed either by Sun's {HotJava} {browser} or {Netscape
   Navigator} version 2.0 or later.

   Navigator severely restricts what an applet can do in terms of
   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.

   Compare {Plug-in}.

   (07 Jan 1997)


Appletalk

    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.

   (08 Mar 1995)


AppleTalk Data Stream Protocol

    (ADSP) A {protocol} which provides a simple
   transport method for data accross a network.

   (18 Jun 1996)


application

   1. {application program}.

   2. {function application}.


Application Binary Interface

    (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}.

   (08 Nov 1994)


Application Configuration Access 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].

   (03 May 1997)


Application Control Architecture

    (ACA) {DEC}'s implementation of {ORB}.

   (08 Nov 1994)


Application environment specification

    (AES) A set of specifications from {OSF} for
   programming and {user interface}s, 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.

   (07 Dec 1994)


Application Executive

    (AE) An {embeddable language}, written as a {C}
   {interpreter} by Brian Bliss .  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)}.

   (21 Apr 1992)


Application Integration Architecture

   (AIA) {DEC}'s "open standards" specifications.


application layer

    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.

   (28 Nov 1994)


Application Portability Architecture

    (APA) {DEC}'s plan for portable applications
   software.

   (28 Nov 1994)


application program

   (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 and libraries which
   exists to support application programs.

   Editors, {spreadsheet}s, and text formatters are common
   examples of applications.  Network applications include
   clients such as those for {FTP}, {electronic mail} and
   {telnet}.  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 tools 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}.

   (28 Nov 1994)


Application Program Interface

    (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 convention}s
   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.

   (15 Feb 1995)


Application Programming Interface

   {Application Program Interface}


Application Protocol Data Unit

    (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.

   (19 Dec 1995)


Application Service Element

    (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 {network}s 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.

   (19 Dec 1995)


application software

   {application programs}


Application-Specific Integrated Circuit

    (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.

   (15 Feb 1995)


Applications Programming Interface

   {Application Programming Interface}


Application Visualisation System

    (AVS) A portable, modular, {Unix}-based
   graphics package supported by a consortium of vendors
   including {Convex}, {DEC}, {IBM}, {HP}, {SET Technologies},
   {Stardent} and {WaveTracer}.

   (28 Nov 1994)


applicative language

    A {functional language}.  Sometimes used loosely
   for any {declarative language} though {logic programming}
   languages are declarative but not applicative.

   (24 Dec 1995)


Applicative Language for Digital Signal Processing

    (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
    in Microprocessing and Microprogramming
   32, N-H 1991].

   (19 Apr 1995)


applicative order reduction

    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 language}s such as {C} and {Pascal}.

   See also {normal order reduction}, {parallel reduction}.

   (25 Jan 1995)


APPLOG

    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].

   (25 Jan 1995)


APPN

   {Advanced Peer-to-Peer Networking}


approximation 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.

   (28 Oct 1997)


April Fool's Joke

    (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.

   (25 Jan 1995)


A Programming Language

    (APL) A language designed originally by Ken Iverson
   at {Harvard University} in 1957-1960 as a notation for the
   concise expression of mathematical {algorithm}s.  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 with many
   innovative features.  It was originally written using a
   non-standard {character set} but now can use {ISO8485}.  It is
   {dynamically typed} with {dynamic scope}.  APL introduced
   several functional forms but is not {purely functional}.

   {Dijkstra} got the size of it when he said that APL was a
   language designed to perfection - in the wrong direction.
   {IBM} once adopted APL - can one be ruder?

   Versions: APL\360, APL SV, VS APL, Sharp APL, Sharp APL/PC,
   APL*PLUS, APL*PLUS/PC, APL*PLUS/PC II, MCM APL, Honeyapple,
   and DEC APL.

   See also {Kamin's interpreters}.

   {APLWEB} translates {WEB} to {APL}.

   ["A Programming Language", Kenneth E. Iverson, Wiley, 1962].

   (29 Nov 1995)


APSE

   {Ada Programming Support Environment}


APT

   1.  {Automatically Programmed Tools}.

   2.  {Audio Processing Technology}.

   (15 Jan 1996)


APX III

    An early system on the {Datatron 200} series.

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

   (04 May 1995)


AQL

    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].

   (04 May 1995)


arbitrary precision calculator

    An arbitrary precision {C}-like calculator.
   {Interpreter} version 1.26.4 by David I. Bell
   .  Ported to {Linux}.

   {(ftp://ftp.uu.net/pub/calc)}

   (15 Jun 1993)


ARC

    (Previously ARCS) {Advanced RISC Computing
   Specification}.

   (28 Dec 1995)


arc

    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}.

   (03 Nov 1996)


Arcade

    A {BBS} for the {Acorn} {Archimedes}.  Also has
   links with {Demon Internet}.

   Telephone: +44 (181) 654 2212 (24hrs, most speeds).

   (08 Nov 1994)


ArchBSD

    4.4 {BSD-Lite} for the {Acorn}
   {Archimedes}.

   (08 Nov 1994)


archie

    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}.

   (28 Dec 1995)


Archimedes

    A family of {microcomputer}s 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 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}.

   There is a {Usenet} {FAQ} {here
   (ftp://rtfm.mit.edu/pub/usenet/news.answers/acorn/)} and a
   list of {archive site}s for the Archimedes {here
   (http://www.cs.vu.nl/~gerben/acorn/acorn-archives.txt)}.  The
   main archive is {HENSA}, accessible via
   {(ftp://micros.hensa.ac.uk/)} and {Gopher
   (gopher://micros.hensa.ac.uk/11/%2bgopher/%2bmicros/%2barch/%2briscos)}
   and another is in {Stuttgart
   (ftp://ftp.uni-stuttgart.de/pub/systems/acorn)}.  {Acorn also
   run an FTP server (ftp://ftp.acorn.co.uk/)}.

   See also {Crisis Software}, {Warm Silence Software}.

   (01 Nov 1994)


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".

   (02 May 1995)


Architecture Neutral Distribution Format

    (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}.

   Mailing list: .

   ["Architecture Neutral Distribution Format: A White Paper",
   Open Software Foundation, Nov 1990].

   (20 Oct 1995)


archive

   1.  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
   {back up}.  {tar} is a common format for {Unix} archives, and
   {arc} or {pkzip} for {MS-DOS} and {Microsoft Windows}.

   2.  To transfer files to slower, cheaper
   media (usually {magnetic tape}) to free the 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.  {archive site}.

   (08 Dec 1996)


archive site

    (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 for e.g. a
   {Usenet} {newsgroup} though one may be recognised as the main
   one.

   Some well-known archive sites include {Imperial College, UK
   (ftp://src.doc.ic.ac.uk/)}, {UUNET, USA	(ftp://ftp.uu.net/)}.

   See also {archie}, {GNU archive site}, {mirror}.

   (16 Jan 1995)


ARCnet

    A {network} developed by {DataPoint}.  Originally
   {proprietary}, by the late 1980s it was no longer proprietary
   and had about as large a marketshare as {Ethernet} among small
   businesses.  It was almost as fast and was considerably
   cheaper at the time.

   (16 Jan 1995)


ARCS

   {ARC}


Arctic

    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].

   (16 Jan 1995)


arena

    The area of memory attached to a {Unix} process
   by the {brk} and {sbrk} {system call}s 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}.

   (28 Dec 1995)


ARES

    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].

   (10 Oct 1995)


AREV

   {Advanced Revelation}


AREXX

    {REXX} for the {Amiga}.

   {ARexxGuide
   (http://www.halcyon.com/robin/www/arexxguide/main.html)}

   (06 Feb 1996)


arg

   {argument}


argument

    ("arg" or parameter) A value or reference passed
   to a {function}, {procedure}, {subroutine}, command, or
   program, by the caller.  For example, in the function:

   	square(x) = x * x

   x is the {formal argument} and in the call

   	y = square(3+3)

   3+3 is the {actual argument}.  This will execute the function
   square with x having the value 6.

   There are many different conventions for passing arguments to
   functions and procedures including {call-by-value},
   {call-by-name}, {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 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.

   (24 Jan 1995)


Argus

    A successor to {CLU}, from LCS {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  et al,
   TOPLAS 5(3):381-404 (1983)].

   (28 Dec 1995)


Ariel

    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?]

   (29 Dec 1995)


ARITH-MATIC

   An alternate name for {A-3}.


Arithmetic and Logic Unit

    (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 the {operand}s
   and the destination of the result.  The width in {bit}s 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 be
   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.

   (24 Mar 1995)


arity

    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.

   (21 Jul 1997)


arj

    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?]

   (03 Nov 1996)


Arjuna

    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
   system}s.  Arjuna provides the programmer with {class}es that
   implement {atomic transaction}s, {object level recovery},
   {concurrency} control and {persistence}.  The system is
   portable, modular and flexible; the system software has been
   available to users via ftp since 1992.

   {Home (http://arjuna.ncl.ac.uk/)}

   E-mail: .

   (06 Mar 1995)


ARL

   {ASSET Reuse Library}


ARM

   1.  {Advanced RISC Machine}.

   Originally {Acorn} RISC Machine.

   2.  {Advanced RISC Machines} Ltd.

   3.  ["The Annotated C++ Reference Manual",
   Margaret A. Ellis and Bjarne Stroustrup, Addison-Wesley,
   1990].

   4.  {Active Reconfiguring Message}.

   (03 Oct 1997)


ARM610

    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.

   (29 Dec 1995)


ARM7

    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://www.systemv.com/armltd/arm7.html)}

   (05 Jan 1995)


ARM710

    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.

   (21 Apr 1995)


ARM7500

    An {ARM7} core with I/O and {VIDC20} all on one
   {integrated circuit}.

   (23 Sep 1994)


ARM8

    A {RISC} {microprocessor} {core} designed by
   {Advanced RISC Machines} Ltd. with 50000 {transistor}s.  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}.

   (03 Mar 1995)


ARM800

    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}).

   (07 Feb 1995)


ARM Ltd

   {Advanced RISC Machines Ltd.}


ARMM

   {Automated Retroactive Minimal Moderation}


armour-plated

   {bulletproof}


ARP

   {Address Resolution Protocol}


ARPA

   {Advanced Research Projects Agency}


ARPANET

   {Advanced Research Projects Agency Network}


ARQ

   {Automatic Repeat Request}


array

   1.  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.

   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.  See also {associative array}.

   2.  A {processor array}, not to be confused with
   an {array processor}.

   (25 Jan 1995)


array 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.

   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.

   {Vector processors} and {math coprocessors} are other examples
   of array processors.

   {Array presentation
   (http://www.cs.njit.edu/leon/105/c5/index.htm)}.

   [What sort of computations?  How much parallelism?  Example
   brands?  Same as vector processor?]

   (21 Oct 1997)


Array 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.

   (25 Jan 1995)


ART

    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].

   (15 Jan 1996)


Artemis microkernel

    A {microkernel} currently under development
   by Dave Hudson , scheduled for
   release under {GPL} in May 1995.  It is targeted at
   {embedded} applications on {Intel 80386}, {Intel 486} and
   {Pentium} based systems.

   (29 Mar 1995)


Artifex

    A {CASE} environment from {ARTIS} of Turin
   for the development of large {event-driven} distributed
   systems.  It has code-generation and rapid prototyping
   features.

   (24 Jan 1996)


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.

   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.

   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://www.cs.cmu.edu/Web/Groups/AI/html/repository.html)}.

   (29 Oct 1995)


Artificial Intelligence Lab

   {MIT AI Lab}


Artificial Life

    (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].

   {Mark Smucker's Page
   (http://www.cs.wisc.edu/~smucker/gp-list.html)}

   {Santa Fe Institute (http://alife.santafe.edu/)}

   {The Avida Group
   (http://www.krl.caltech.edu/avida/Avida.html)}

   (21 Feb 1995)


artificial neural network

    (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
   generalization.

   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}.

   (13 Oct 1997)


Artisoft, Inc.

    A company, known for the {LANtastic}
   range of networking products.  Originally providers of
   easy-to-use, proprietary, {peer-to-peer} network hardware and
   software for small installations, Artisoft now also sells
   {Ethernet} and {Novell}-compatible hardware and software.

   {Home (http://www.artisoft.com/)}

   Telephone: +1 (800) 809 1257.

   Address: Tucson, Arizona, USA; Phoenix, Arizona, USA.

   (24 Apr 1995)


ARTSPEAK

    An early simple language for {plotter} graphics.

   ["The Art of Programming, ARTSPEAK", Henry Mullish, Courant
   Inst (Nov 1974)].

   (21 Feb 1995)


AS

   1.  {Autonomous System}.

   2.  {Address Strobe}.


as31

    An {8031}/{8051} {assembler} which produces a variety
   of object output formats.  Assembler, {yacc} parser and
   documentation, version 1 by Ken Stauffer
   .  Theo Deraadt wrote {S-record}
   output routines.  Ported to {Sun 3}, {Sun 4}, {SunOS 4.0},
   {Tandy 6000}, {Xenix}.

   {Washington
   (ftp://wuarchive.wustl.edu/usenet/comp.sources.misc/volume10/asm.8051.Z)},
   {UUNET
   (ftp://ftp.uu.net/usenet/comp.sources.misc/volume10/asm.8051.Z)}.

   (26 Jan 1990)


AS400

   Normally written "{AS/400}".


AS/400

    An {IBM} {minicomputer} for small business and
   departmental users released in 1988 and still in production in
   February 1997.

   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}.
   Programming languages include {RPG}, {assembly language}, {C},
   {COBOL}, {SQL}, {BASIC}, and {REXX}.  Several {CASE} tools are
   available: {Synon}, {AS/SET}, {Lansa}.

   Mailing list:  (list),
    (subscription requests).

   (10 Feb 1997)


ASA

   {Adaptive Simulated Annealing}


asbestos

    Used as a modifier to anything intended to protect
   one from {flame}s; also in other highly {flame}-suggestive
   usages.  E.g., {asbestos longjohns}, {asbestos cork award}.

   (06 Feb 1996)


asbestos cork award

    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.

   (06 Feb 1996)


asbestos longjohns

    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.

   (04 Jul 1997)


ASCII

   {American Standard Code for Information Interchange}


ASCII art

    The fine art of drawing diagrams using the {ASCII}
   character set (mainly "|-/\+").  Also known as "character
   graphics" or "ASCII graphics"; 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)}

   (06 Feb 1996)


ASCIIbetical order

    /as'kee-be'-t*-kl or'dr/ Used to
   indicate that data is sorted in {ASCII} collated order rather
   than alphabetical order.

   (27 Mar 1995)


ASCIIbonics

    (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 (although use of sentence-final
   "??????????" and "!!!!!!!!!!" is not uncommon).

   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".

   (21 Jun 1997)


ASCII character table

    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
     002   2 0x02 STX
     003   3 0x03 ETX, Control-C
     004   4 0x04 EOT
     005   5 0x05 ENQ
     006   6 0x06 ACK
     007   7 0x07 BEL
     010   8 0x08 BS, backspace
     011   9 0x09 HT, tab
     012  10 0x0a LF, line feed, newline
     013  11 0x0b VT
     014  12 0x0c FF, form feed, NP
     015  13 0x0d CR, carriage return
     016  14 0x0e SO
     017  15 0x0f SI
     020  16 0x10 DLE
     021  17 0x11 DC1, XON, Control-Q
     022  18 0x12 DC2
     023  19 0x13 DC3, XOFF, Control-S
     024  20 0x14 DC4
     025  21 0x15 NAK
     026  22 0x16 SYN
     027  23 0x17 ETB
     030  24 0x18 CAN
     031  25 0x19 EM
     032  26 0x1a SUB
     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
     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}.

   (24 Jun 1996)


ASDIMPL

   {ASDO IMPlementation Language}


ASDL

   {Abstract-Type and Scheme-Definition Language}


ASDO IMPlementation Language

    (ASDIMPL) A {C}-like language, run on {Burroughs}'
   {mainframes} in the early 1980s, and {cross-compile}d to
   {x86}-based {embedded processor}s.

   (06 Feb 1996)


ASE

   1. {Advanced Software Environment}.

   2. {Application Service Element}.

   (19 Feb 1996)


A* search

    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.

   (31 Mar 1995)


ASF

   {Algebraic Specification Language}


ash

    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} or {FreeBSD} and {Linux}.

   {FTP Linux version
   (ftp://ftp.win.tue.nl/pub/linux/ports/ash-linux-0.1.tar.gz)}.

   (20 Jul 1995)


Ashmedai

    A {symbolic mathematics} package by Michael Levine
    that influenced {SMP} and {FORM}.
   There are versions for the {Univac 1108} and {VAX}/{VMS}.

   (21 Mar 1995)


Ashton-Tate Corporation

    The original developer and vendor of the {dBASE}
   {relational database} and application development tool.  In
   the early 1990s it was taken over by {Borland International,
   Inc.}

   [Dates?  Address?]

   (09 Mar 1996)


ASIC

   {Application-Specific Integrated Circuit}


A Simulation Process-Oriented Language

    (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)].

   (25 Mar 1996)


ASIS

   1. {Application Software Installation Server}.

   At {CERN}.

   2. {Ada Semantic Interface Specification}.


ASK

   {Amplitude Shift Keying}


ASL

   {Algebraic Specification Language}


ASL+

    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.

   (14 Sep 1994)


ASM

   {assembly language}


ASME

   {American Society of Mechanical Engineers}


ASN

   {Autonomous System Number}


ASN.1

   {Abstract Syntax Notation 1}


ASP

   1.  {Active Server Pages}.

   2.  A {query language}(?).

   [Sammet 1969, p.702].

   (10 Feb 1998)


ASPECT

    An {IPSE} developed by an {Alvey} project,
   using {Z} to specify the {object-management system} and tool
   interface.

   (25 Mar 1996)


ASpecT

    Algebraic specification of {abstract data types}.
   A {strict} {functional language} that compiles to {C}.
   Versions are available for {Sun}, {Ultrix}, {NeXT},
   {Macintosh}, {OS/2} 2.0, {Linux}, {RS/6000}, {Atari}, {Amiga}.

   {(ftp://wowbagger.uni-bremen.de/pub/programming/languages)}

   (25 Mar 1996)


aspect ratio

    The ratio of width to height of a {pixel} or a
   display screen.  Square pixels (1:1) are considered preferable
   but displays are usually about 5:4.

   (30 Nov 1994)


ASPEN

    A {toy language} for teaching {compiler}
   construction.

   ["ASPEN Language Specifications", T.R. Wilcox, SIGPLAN Notices
   12(11):70-87 (Nov 1977)].

   (30 Nov 1994)


ASPIK

    A multiple-style specification
   language.

   ["Algebraic Specifications in an Integrated Software
   Development and Verification System", A. Voss, Diss, U
   Kaiserslautern, 1985].

   (30 Nov 1994)


Aspirin

    A {freeware} language from {MITRE Corp} for
   the description of {neural network}s.  A compiler, bpmake, is
   included.  Aspirin is designed for use with the {MIGRAINES}
   interface.

   {Version: 6.0 (ftp://ftp.cognet.ucla.edu/alexis/)}

   (08 Mar 1995)


ASPLE

    A {toy language}.

   ["A Sampler of Formal Definitions", M. Marcotty et al,
   Computing Surveys 8(2):191-276 (Feb 1976)].

   (08 Feb 1995)


ASPOL

   {A Simulation Process-Oriented Language}


ASQC

   {American Society for Quality Control}


ASR

   {Automatic Send Receive}


assembler

    A program which converts {assembly language}
   into {machine code}.

   (25 Mar 1996)


ASSEMBLY

    An early system on the {IBM 702}.

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

   (27 Jun 1996)


assembly code

   {assembly language}


Assembly Language

    (AL) A language for industrial {robot}s 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)].

   (24 Nov 1994)


assembly language

    (Or "assembly code") A symbolic representation of
   the {machine language} of a specific computer.  Assembly
   language is converted to {machine code} by an {assembler}.
   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}.

   (17 Sep 1996)


Assembly Language Compiler

    (ALC) An alternative name for {IBM 360} {assembly
   language}.

   Compare {BAL}.

   (04 Jan 1995)


Assembly Language for Multics

    (ALM) The {assembly language} of the {GE645} in
   which critical portions of the {Multics} {kernel} were
   written.

   (24 Nov 1994)


assertion

    1. An expression which, if false, indicates an
   error.  Assertions can be 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.

   (30 Jun 1997)


ASSET

   {Asset Source for Software Engineering Technology}


Asset Management

    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.

   (30 Mar 1997)


Asset Source for Software Engineering Technology

    (ASSET) A programme to promote software {reuse} by
   the US {DoD}.

   See also {ASSET Reuse Library}.

   (19 Aug 1996)


assigned numbers

    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.

   (19 Aug 1996)


assignment

    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 language}s, where an
   identifier always has the same value.

   See also {referential transparency}, {single assignment},
   {zero assignment}.

   (19 Aug 1996)


Association Control Service Element

    (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)

   (07 Dec 1997)


Association for Computational Linguistics

    (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 is in its 31st year; there are more
   than 2000 members worldwide.

   E-mail: .

   (ACL) {Home (http://www.cs.columbia.edu/~acl/)}.

   (17 Jan 1995)


Association for Computing Machinery

    (ACM) 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 90000 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 and Video,
   and specialized publications such as curricula recommendations
   and self-assessment procedures.

   {Home (http://info.acm.org/)}.

   (17 Oct 1996)


Association for Progressive Communications

    (APC) A world-wide organisation of
   like-minded computer {networks} providing a global
   communications network dedicated to the free and balanced flow
   of information.  APC's partner organisations, include The
   {Institute for Global Communications} (San Francisco),
   Alternex (Brazil), Nicarao (Nicaragua) and GlasNet (Russia).
   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,
   nonviolent conflict resolution, and the promotion of
   sustainable development.

   {Home (http://www.apc.org/)}.

   E-mail: .

   (06 Nov 1996)


Association for SIMULA Users

     See {SIMULA}.

   Address: Royal Institute of Technology, S-100 44 Stockholm,
   Sweden.

   [Details?]

   (29 Mar 1995)


Association Française des Utilisateurs d'Unix

    (et des systèmes ouverts, AFUU) French Association of
   {Unix} Users.

   {Home (http://www.afuu.fr/)}.

   (07 Jun 1996)


Association of American Publishers

    (AAP) A group engaged in standardisation efforts in
   document preparation.


Association of C and C++ Users

    (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 PC}s, {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: , ,
    (Academic Liaison Officer).

   Address: The Membership Secretary, 64 Southfield Road, Oxford
   OX4 1PA, United Kingdom.

   (02 Dec 1996)


Association of Lisp Users

    (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.

   {Usenet} {newsgroups}: {news:comp.org.lisp-users}
   {news:comp.std.lisp}.  Mailing list: .

   {Home (http://www.cs.rochester.edu/u/miller/ALU/home.html)}

   (07 Dec 1996)


associative array

    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 tables}.

   (16 Feb 1995)


associative memory

   {content addressable memory}


Associative Memory Parallel Processing Language

    (AMPPL-II) A language from the early 1970s.

   (14 Nov 1995)


ASTAP

   Advanced STatistical Analysis Program.  Analysing electronic
   circuits and other networks.  ["Advanced Statistical Analysis
   Program (ASTAP) Program Reference Manual", SH-20-1118, IBM,
   1973].


asterisk

    "*".  Common names include: star; {INTERCAL}:
   {splat}; {ITU-T}: asterisk.  Rare: {wild card}; gear; dingle;
   mult; spider; aster; times; twinkle; glob (see {glob});
   {Nathan Hale}.

   Asterix was a fictional Gaul.

   (06 Mar 1995)


asterix

    Do you mean "{asterisk}"?

   (01 Mar 1997)


Astral

   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].


AST Research

   Computer manufacturer.

   Quarterly sales $409M, profits $14M (Aug 1994).


asymmetrical modulation

    A scheme to maximise use of a communications
   line by giving a larger share of the {bandwidth} to the
   {modem} which is transmitting the most information.

   [Better explanation?]

   (04 Apr 1995)


Asymmetric Digital Subscriber Line

    (ADSL, or "Asymmetric Digital Subscriber
   Loop") A variation of {Digital Subscriber Line} designed for
   an upstream data flow ({client}-to-{server}) which is a
   fraction of the downstream data flow (server-to-client).
   Typically the upstream data flow is measured in {kilobits} per
   second while the downstream data flow is measured in
   {megabits} per second (e.g. 6 megabits per second over
   standard phone lines).

   ADSL is appropriate for applications such as {Video on Demand}
   or {World-Wide Web} where a request from the user is far less
   data than the response.

   ["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}.

   (13 Oct 1996)


Asymmetric Digital Subscriber Loop

   {Asymmetric Digital Subscriber Line}


asynchronous

   Not synchronised by a shared signal such as {clock} or
   {semaphore}, proceeding independently.

   Opposite: {synchronous}.

   1.  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.  A communications system in which data
   transmission may start at any time and is indicated by a
   {start bit}, e.g. {RS-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.

   (08 Dec 1995)


Asynchronous Balanced Mode

    A communication mode of {HDLC} and derivative
   protocols, supporting {peer-oriented} {point-to-point}
   communications between two nodes, where either node can
   initiate transmission.

   (07 May 1997)


Asynchronous Communications Interface Adapter

    (ACIA) A kind of {integrated
   circuit} that provides data formatting and control to {RS-232}
   serial interfaces.

   [Is this the same as a {UART}?]

   (07 May 1997)


asynchronous logic

   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://www.cs.man.ac.uk/amulet/async/)}

   (18 Jan 1995)


Asynchronous Transfer Mode

    (ATM, or "fast packet") A method for the
   dynamic allocation of {bandwidth} using a fixed-size {packet}
   (called a cell).

   See also {Wideband ATM}.

   {ATM Forum (http://www.atmforum.com/)}

   {ATM Forum acronyms
   (http://www.atmforum.com/atmforum/acronym_index.html)}.

   {Indiana acronyms
   (http://cell-relay.indiana.edu/cell-relay/FAQ/ATM-Acronyms.html)}.

   [Data rate(s)?]

   (01 Apr 1996)


asyncronous

    Misspelling of "{asynchronous}".

   (13 Dec 1996)


AT

   {IBM PC AT}


at

   {commercial at}


AT-3

   Original name of {MATH-MATIC}.  [Sammet 1969, p.135].


ATA

   {Advanced Technology Attachment}


ATA-2

   {Advanced Technology Attachment Interface with Extensions}


ATA-4

   {Ultra DMA}


ATAPI

    The {API} used on the {IBM PC AT} for accessing
   {CD-ROM}s.

   (06 Aug 1995)


Atari

   1.  A maker of arcade games, home video game systems,
   and home computers, especially during the 1970s and 1980s.

   {Home (http://www.atarigames.com/)}.

   2.  A range of 16- and 32-bit {microcomputers},
   notable for having a built-in {MIDI} interface.  At present
   (Feb 1994) it includes the Atari 520ST, 1040ST, Mega ST, STe,
   STacy, Mega STe, TT, and Falcon.  There are also emulators for
   the Apple {Macintosh} and IBM PC/XT/AT available.

   {Usenet} newsgroups: {news:comp.binaries.atari.st},
   {news:comp.sys.atari.st.tech}, {news:comp.sources.atari.st}.

   {Michigan U (ftp://atari.archive.umich.edu)} [141.211.164.8],
   {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)}.

   (23 Nov 1997)


AT Attachment

   {Advanced Technology Attachment}


AtFS

   Attributed File System: 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 synchronizing 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.


Athena

   Project Athena: 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


Atherton

   Atherton Technology developed the Software BackPlane CASE
   framework.  Their Atherton Tool Integration Services were the
   basis for the ATIS standard.


ATIS

   A Tools Integration Standard


ATK

   The Andrew Toolkit


ATLAS

   Abbreviated Test Language for Avionics Systems.  MIL-spec
   language for automatic testing of avionics equipment.
   Replaced/upgraded Gaelic and several other test languages.
   "IEEE Standard ATLAS Test Language", IEEE Std 416-1976.


Atlas Autocode

   Autocode for the {Ferranti} {Atlas}, which may have been the
   first commercial computer with {hardware-paged} {virtual
   memory}.  Whereas other {autocode}s were basically symbolic
   {assembly language}s, 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 array}s and extensible {syntax}.


ATM

   1.  {Asynchronous Transfer Mode}.

   2. Automatic Teller Machine.

   A cash dispenser.

   3.  At the moment.

   4.  {Adobe Type Manager}.

   (04 Dec 1995)


atob

    /A too B/ A utility that does {ASCII} to {binary}
   conversion.  The reverse process is {btoa}.

   (08 Aug 1997)


ATOLL

   Acceptance, Test Or Launch Language.  Language used for
   automating the checkout and launch of Saturn rockets.

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


atomic

   [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.


A Tools Integration Standard

   (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}, now proposed as an industry standard.

   (25 Oct 1994)


ATS

   {Attribute Translation System}


at sign

   {commercial at}


AT&T

   American Telephone and Telegraph, Inc.  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.  Today, AT&T
   operates worldwide in competitive, high-technology markets,
   with only its long distance services remaining under
   government regulation.  With 2.4 million registered
   shareowners, AT&T's is the most widely held stock in America.

   See also {3DO}, {Advanced RISC Machine}, {Berkeley System
   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}.

   {Home (http://www.att.com/)}.
   {Research (http://www.research.att.com/)}.

   [Would someone write a story around those "see also"s?]

   (07 Dec 1994)


Attachment Unit Interface

    (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.

   (08 Dec 1996)


AT&T Bell Labs

   {Bell Laboratories}


atto-

   {prefix}


attoparsec

    About 3.1 cm (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.

   (08 Dec 1996)


Attribute Translation System

    (ATS) A {BNF}-based {parser generator} from
   the {University of Saskatchewan}(?).  It generates
   table-driven {LL1} {parser}s 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.

   E-mail: Dave Bocking ?

   (29 Nov 1988)


ATX

    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.

   {Intel Home
   (http://developer.intel.com/design/motherbd/atx.htm)}.
   {Teleport Home (http://www.teleport.com/~atx/)}.

   (10 Dec 1996)


au

   1.  The two character {country code} for Australia
   used in {Internet} {domain names}.

   2.  {audio}.

   (15 Feb 1995)


aubergine

   A secret term used to refer to computers in the presence of
   computerphobic third parties.

   (24 Jan 1995)


audio

    Sound.  Computers (and audio compact discs and
   digital audio tape) handle sound by storing a sequence of
   discrete samples.  The continuous sound waveform from the
   original source is sampled tens of thousands of times a
   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}.

   Sound is one component of {multimedia}.

   {Filename extension}: .au ({Unix}), .snd ({MS-DOS}, {MS
   Windows}).

   See also {Audio IFF}.

   {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)}.


audiographics

   {Audiographic Teleconferencing}


audiographic teleconferencing

    (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.

   (06 Oct 1995)


Audio IFF

    (AIFF) A format developed by {Apple Computer}
   Inc. for storing high-quality sampled {audio} and musical
   instrument information.  It is also used by {SGI} and several
   professional audio packages.

   (10 Oct 1994)


AudioOne

    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.

   (28 Sep 1996)


Audio Processing Technology

    (APT) A company that produces {codecs} based on
   {predictive analysis} rather than {frequency coding}.

   (15 Jan 1996)


Audio Video Interleave

    (AVI) An {audio}-{video} {standard} designed by
   {Microsoft}.  Apparently proprietary and {Microsoft
   Windows}-specific.

   {(http://www2.echo.lu/oii/en/video.html#AVI)}.

   [Details?]

   (08 Sep 1996)


Augumented Backus-Naur Form

    An extension of {Backus-Naur Form} documented in
   {RFC 2234}.

   [Summary?]

   (23 Nov 1997)


AUI

   1.  {Adaptable User Interface}.

   2.  {Attachment Unit Interface}.

   (08 Dec 1996)


A'UM

    A {stream}-based, {concurrent}, {logic},
   {object-oriented} language by K. Yoshida and T. Chikayama
   , 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].

   (08 Dec 1996)


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

    (AKCL) A collection of ports, bug fixes, and
   performance improvements to {KCL} by William Schelter
   , , 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)}

   (29 Apr 1992)


authentication

   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.


authoring

    Creating a {hypertext} or {hypermedia} document.

   (07 Nov 1994)


autobaud

   {automatic baud rate detection}


autobogotiphobia

   /aw'toh-boh-got`*-foh'bee-*/  See {bogotify}.


AutoCAD

   A {CAD} {software} package for mechanical engineering marketed
   by {Autodesk, Inc.}

   (09 Nov 1994)


Autocode

   1. The name given to 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}.


AUTOCODER

   Possibly the first primitive {compiler}.  It 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.

   (07 Nov 1994)


Autodesk, Inc.

   The distributors of the {AutoCAD} {CAD} package.

   Address: Sausalito, CA, USA.

   (09 Nov 1994)


AUTOEXEC.BAT

    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
   program}s.

   (18 Mar 1995)


AUTOGRAF

   A system for describing {bar chart}s.

   ["User's Manual for AUTOGRAF", Cambridge Computer Assoc (Dec
   1972)].


AUTOGRP

   AUTOmated GRouPing system.  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)].

   (07 Nov 1994)


Auto Idle

   A facility provided by some {Intel} {clock doubled}
   {microprocessor}s 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}.

   (09 Nov 1994)


Autolisp

   A dialect of {Lisp} used by the {Autocad} {CAD} package from
   {Autodesk}.

   (09 Nov 1994)


autoloader

   {stack loader}


automagically

   /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.  See {magic}.
   "The C-INTERCAL compiler generates C, then automagically
   invokes {cc} to produce an executable."


automata

   {automaton}


automata theory

   {automaton}


Automated Engineering Design

    (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
   {record}s ("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].

   (26 Mar 1995)


Automated Retroactive Minimal Moderation

    (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
   March 31, 1993 and proceeded to {spam} {news:news.admin.policy}
   with a recursive explosion of over 200 messages.

   ARMM's bug produced a recursive {cascade} of messages each of
   which mechanically added text to the ID and Subject and some
   other headers of its parent.  This produced a flood of
   messages in which each header took up several screens and each
   message ID and subject line got longer and longer and longer.

   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}.

   (08 Jan 1996)


automated testing

    Software testing assisted with software tools
   that require no operator input, analysis, or evaluation.

   (10 May 1996)


AUTOMATH

   Eindhoven, Netherlands.  A very high level language for
   writing proofs.  "The Mathematical Language AUTOMATH, Its
   Usage and Some of its Extensions", N.G. deBruijn, in Symp on
   Automatic Demonstration, LNM 125, Springer 1970.


Automatically Programmed Tools

    (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].

   (04 May 1995)


automatic baud rate detection

   (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.

   (18 Jun 1996)


automatic hyphenation

    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.

   (02 Aug 1996)


Automatic Mathematical TRANslation

    (AMTRAN) A system developed by NASA
   Huntsville in 1966 for {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)].

   (14 Nov 1995)


Automatic Network Routing

    (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}?]

   (08 May 1997)


Automatic Number Identification

    (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}.

   (08 Dec 1996)


Automatic Repeat Request

    (ARQ) A {modem} error control {protocol} in
   which the receiver asks the transmitter to resend corrupted
   data.

   (14 Nov 1995)


Automatic Send Receive

    (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.

   (23 Nov 1995)


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}.

   (21 Oct 1994)


Automatische Rechenplanfertigung

   A programming language published in 1952 by Heinz Rutishauser
   (1918-70).


automaton

    (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}.

   (23 Apr 1996)


Automatrix, Inc.

    The company which produced {CAM-PC}.

   Address: Ballston Spa, NY, USA.

   {Home (http://www.automatrix.com/)}

   (21 Apr 1995)


Autonomous System

   (AS) A collection of {router}s under a single administrative
   authority using a common {Interior Gateway Protocol} for
   routing packets.


Autonomous System Number

   (ASN) Used for {routing} on {Internet}.  See {Autonomous
   System}.


Autopass

   ["Autopass: An Automatic Programming System for
   Computer-Controlled Mechanical Assembly", L.I. Lieberman et
   al, IBM J Res Dev 21(4):321-333 (1979)].


autoprojector

   A self-applicable {partial evaluator}.


AUTO-PROMPT

   Numerical control language from IBM for 3d milling.

   [Sammet 1969, p.606].


Autostat

   ["Autostat: A Language for Statistical Programming",
   A.S. Douglas et al, Computer J 3:61 (1960)].


autostereogram

   {SIRDS}


A/UX

    (Apple's UniX) {Apple}'s 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 {Power Macintoshes}.

   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)}.

   (13 Dec 1997)


auxiliary storage

    An obsolete term for a {hard disk} {drive}.

   (14 Apr 1997)


av

   {avatar}


Avalon/C++

   1986.  Fault-tolerant distributed systems, influenced by
   {Argus}.  A concurrent extension of {C++} with servers and
   transactions.  "Camelot and Avalon: A Distributed Transaction
   Facility", J.L. Eppinger et al, Morgan Kaufmann 1990.


Avalon/Common LISP

   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.


avatar

   1.  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}.

   (14 Sep 1997)


average seek time

    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.

   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}.

   (22 Jul 1997)


AVI

   {Audio Video Interleave}


Avon

   A {dataflow} language.

   ["AVON: A Dataflow Language", A. Deb, ICS 87, Second Intl Conf
   on Supercomputing, v.3, pp.9-19 (ISI 1987)].

   (28 Nov 1994)


AVS

   {Application Visualisation System}


AWE

   {Advanced WavEffect}


awk

   1.  (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 array}s, 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.  An expression which is awkward to manipulate
   through normal {regexp} facilities, for example, one
   containing a {newline}.

   (06 Oct 1995)


AWT

   {Abstract Windowing Toolkit}


aXe

    A {text editor} for the {X Window System}.

   [Features?  FTP?]

   (06 Apr 1996)


AXIOM

   A commercially available subset of {Scratchpad}, from {IBM}.

   ["Axiom - The Scientific Computing System", R. Jenks et al,
   Springer 1992].

   (21 Feb 1995)


axiom

    A {well-formed formula} which is taken to be true
   without proof in the construction of a {theory}.

   (31 Mar 1995)


AXIOM*

   A {symbolic mathematics} system.

   {A#} is one component of AXIOM*.

   Version: 2.

   (21 Feb 1995)


Axiomatic Architecture Description Language

   ["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].

   (07 Feb 1995)


axiomatic semantics

    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}.

   (09 Nov 1995)


axiomatic set theory

    {Set theory}, if approached naively, leads to all
   sorts of problems, the most famous being {Russell's paradox}.
   For this reason mathematicians do set theory axiomatically:
   that is, there is a {formal language} for talking about sets,
   and a collection of {axioms} describing how they behave, and
   the only legitimate way of drawing conclusions about sets is
   to use the axioms.

   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 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.idbsu.edu/faculty/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.

   (11 May 1997)


Axiom of Choice

    (AC, or "Choice") An {axiom} of {set theory}:

   If X is a set, 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
   set}s 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 number}s, Q, namely Q,
   Q+a, Q+b, and infinitely (in fact uncountably) many more,
   where a, b, etc. are {irrational number}s 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.  This requires AC 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.

   (12 Apr 1995)


Axiom of Comprehension

    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.

   (31 Mar 1995)


AXLE

   An early string processing language.  Program consists of an
   assertion table which specifies patterns, and an imperative
   table which specifies replacements.  "AXLE: An Axiomatic
   Language for String Transformations", K. Cohen et al, CACM
   8(11):657-661 (Nov 1965).


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: .

   (06 Jan 1993)


AYT

    Are you there?

   (09 Mar 1996)


AZERTY

   {QWERTY}


B

   1. {byte}.

   2.  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?]

   (02 Feb 1997)

   3.  A simple interactive programming language by
   Lambert Meertens and Steven Pemberton.  B was the predecessor
   of {ABC}.

   {(ftp://ftp.uni-kl.de/pub/languages/B.tar.Z)}

   ["Draft Proposal for the B Language", Lambert Meertens, CWI,
   Amsterdam, 1981].

   4.  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: .

   (24 Apr 1995)


b

   {bit} or maybe {byte} (B).

   (03 Nov 1996)


B-0

    The original name of {FLOW-MATIC} from {Remington
   Rand}.  B-0 was used on the {UNIVAC} I or II about 1958.

   (09 Jan 1997)


B1FF

   {BIFF}


B1 security

   {Orange Book}


B2 security

   {Orange Book}


B3 security

   {Orange Book}


b4

    before.


Babbage

   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.

   [1980's article in Datamation].


Babbage, Charles

   {Charles Babbage}


babbling error

   An {Ethernet} node attempting to transmit more than 1518 data
   bytes.

   [What's significant about 1518?]


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 function}s 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)].

   (28 Nov 1994)


BABT

   {British Approval Boards for Telecommunications}


Baby AT

    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}.

   (20 Feb 1997)


BABYLON

   A development environment for {expert system}s.  It includes
   {frame}s, {constraint}s, a {prolog}-like logic formalism, and
   a description language for diagnostic applications.  It
   requires {Common Lisp}.

   {(ftp://ftp.gmd.de/gmd/ai-research/Software/)}

   (08 Feb 1995)


BACAIC

   Boeing Airplane Company Algebraic Interpreter Coding system.

   A pre-{FORTRAN} system on the {IBM 701} and {IBM 650}.

   (08 Feb 1995)


Bachman

   A proposed a style of {Entity-Relationship model} which
   differs from Chen's.

   (08 Feb 1995)


Bachman Information Systems

    The company which merged with {CADRE} to form
   {Cayenne Software} in July 1996.

   (06 Feb 1998)


Backbone

   The top level in a hierarchical network.  Stub and transit
   networks which connect to the same backbone are guaranteed to
   be interconnected.


backbone cabal

    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.

   (28 Nov 1994)


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}.

   (28 Nov 1994)


back door

    (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 system}s, 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].

   (25 Apr 1995)


back-end

    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}.

   (09 Apr 1996)


Back End Generator

    (BEG) A {code generator}.  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?]

   (14 Dec 1994)


Back End Generator Language

   {Back End Generator}


backgammon

   See {bignum}, {moby}, {pseudoprime}.


background

   1.  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.  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).

   (28 May 1996)


backing store

    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].

   (28 May 1996)


back link

    A {link} in one direction implied by the existence
   of an explicit link in the other direction.

   (28 May 1996)


backoff

    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}.

   (28 May 1996)


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

    "`" {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}.

   (26 Nov 1996)


backslash

    "\" {ASCII} code 92.  Common names: escape (from
   C/Unix); reverse slash; slosh; backslant; backwhack.  Rare:
   bash; {ITU-T}: reverse slant; reversed virgule; {INTERCAL}:
   backslat.

   (17 Nov 1995)


backtick

   {back quote}


backtracking

    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}.

   (13 Apr 1995)


backup

    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 is most commonly used to refer to a copy of all the
   files on a computer's disks which is made periodically and
   kept on {magnetic tape} or other removable medium (also called
   a "{dump}").

   This essential precaution is often neglected by 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.  It is estimated that only
   5% of {personal computer} owners regularly backup their
   systems, which is a truly frightening statistic.

   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 {incremental backup}.

   (03 Feb 1996)


Backus-Naur Form

    (BNF, originally "Backus Normal Form") A formal
   {meta-syntax} 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:

     ::=   

     ::=  |  "."

     ::=   [] 
   	       |  

     ::= []   

     ::=  ","   

   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.

   (23 Nov 1997)


Backus Normal Form

   {Backus-Naur Form}


backward analysis

    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}.

   (23 Nov 1997)


backward chaining

    An {algorithm} for proving a goal by recursively
   braking 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}.

   (14 Jul 1997)


backward combatability

    /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 backwards compatible change, on the
   other hand, allows old versions to coexist without crashes or
   error messages, but too many major changes incorporating
   elaborate backwards compatibility processing can lead to
   extreme {software bloat}.

   See also {flag day}.

   (01 Mar 1997)


backward compatible

    A system is backward compatible if it is {compatible}
   with (e.g. can share data with) earlier versions of itself, or
   sometimes other earlier systems, particularly systems it
   intends to supplant.

   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}.

   (15 Jan 1998)


backwards compatibility

   {backward compatible}


backwards compatible

   {backward compatible}


BAD

   /B-A-D/ [IBM: acronym, "Broken As Designed"] Said of a program
   that is {bogus} because of bad design and misfeatures rather
   than because of bugginess.  See {working as designed}.


Bad command or file name

    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.

   (07 Apr 1996)


Bad Thing

    (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.


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."


BAL

   {Basic Assembly Language}


balanced computing

    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://www.moultonco.com/balanced.htm)}

   (15 Apr 1996)


balanced tree

    (B-tree) An optimisation of a {binary tree} which
   aims to keep equal numbers of items on each side of each node
   so as to minimise the maximum path from the root to any {leaf
   node}.  As items are inserted and deleted, the B-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 (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.

   (15 Apr 1996)


BALGOL

    {ALGOL} on {Burroughs 220}.

   [Sammet 1969, p. 174].

   (15 Apr 1996)


BALITAC

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


BALM

   Block And List Manipulation.  Harrison, 1970.  Extensible
   language with LISP-like features and ALGOL-like syntax, for
   CDC 6600.  "The Balm Programming Language", Malcolm Harrison,
   Courant Inst (May 1973).


balun

    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.

   (17 Oct 1996)


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}.


Banach algebra

    An {algebra} in which the {vector space} is a
   {Banach space}.

   (25 Feb 1997)


Banach-Tarski paradox

    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}.

   (29 Mar 1995)


banana label

   The labels often used on the sides of {macrotape} reels, so
   called because they are shaped roughly like blunt-ended
   bananas.  This term, like macrotapes themselves, is still
   current but visibly headed for obsolescence.


banana problem

   (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}).  See item 176 under {HAKMEM}, which
   describes a banana problem in a {Dissociated Press}
   implementation.  Also, see {one-banana problem} for a
   superficially similar but unrelated usage.

   (31 Jan 1995)


bandwidth

    1. The difference between the highest and
   lowest frequencies of a transmission channel.

   2. The amount of {data} that can be sent through a given
   communications circuit per second.

   3. On {Usenet}, a measure of network capacity that is often
   wasted by people complaining about how items posted by others
   are a waste of bandwidth.

   (28 Nov 1994)


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.

   (31 Jan 1995)


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."


bang path

    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 mailer}s 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.

   (16 Mar 1995)


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. On interactive software, a first screen containing a logo
   and/or author credits and/or a {copyright} notice.

   (28 Nov 1994)


Banyan

    A personal computer networking company, best known
   for its "{Vines}" {local area network}ing products.

   Address: Westborough MA, USA.

   (01 Mar 1995)

   [Is it also a network topology?]


BAP

   1.  An early system used on the {IBM 701}.

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

   (28 Nov 1994)

   2.  {Brain Aid Prolog}.

   (07 Mar 1995)


bar

   1.  /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}.

   (07 Mar 1995)


bar code

    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?]

   (18 Jul 1997)


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
   PROM}s and {BIOS} chips, implementing basic {monitor}s used to
   test {device driver}s, 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.


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}.

   (26 Feb 1996)


barfmail

    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.

   (05 Jan 1996)


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?"


barfulous

   /bar'fyoo-l*s/ (Or "barfucious", /bar-fyoo-sh*s/) Said of
   something that would make anyone barf, if only for aesthetic
   reasons.

   (22 Feb 1995)


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.

   (28 Nov 1994)


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].

   (22 Feb 1995)


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}.

   (22 Feb 1995)


barrel shifter

    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.

   (28 Mar 1995)


base

    {radix}.


base 64

    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}, though {uuencode}
   is more common.

   (21 Mar 1995)


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}.

   (22 Feb 1995)


base class

    (Or "superclass") The {class} from which another
   class (a "subclass") inherits.

   "base class" is the term used in {C++}.  The term "superclass"
   is perhaps confusing since objects of the subclass have a
   superset of the fields of objects in the superclass.

   See {inheritance}.

   (04 Aug 1996)


baseline

   {released version}


base memory

    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}.

   (30 May 1997)


basename

    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}.

   (23 Nov 1996)


Base Technology

    The company which developed and distributes {Liana}.

   E-mail: Jack Krupansky <70642.2662@compuserve.com> (owner).

   Address: 1120 Avenue of the Americas, 4th Floor, New York, NY
   10036, USA.  Telephone: +1 (212) 626 6630.  Fax: +1 (212) 626
   6632.

   (09 Mar 1995)


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
   .

   The latest version is 1.14.1.  It includes a {yacc} parser,
   the interpreter and documentation.

   {(ftp://prep.ai.mit.edu/bash-1.14.1.tar.gz)} or from a
   {GNU archive site}.  E-mail: .
   {Usenet} newsgroup: {news:gnu.bash.bug}.

   (15 Jul 1994)


BASIC

    Beginner's All-purpose Symbolic Instruction Code.

   A simple language designed by John G. Kemeny and Thomas
   E. Kurtz at Dartmouth College in 1963.  It first ran on an
   {IBM 704} on 01 May 1964.  It was designed for quick and easy
   programming by students and beginners.  BASIC exists in many
   dialects, and is popular on {microcomputer}s with sound and
   graphics support.  Most micro versions are interactive and
   interpreted, but the original Dartmouth BASIC was compiled.

   BASIC was originally designed for Dartmouth's experimental
   {time-sharing} system and has since 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 (a) very painful, and (b) encourages bad habits that
   will make it harder to use more powerful languages well.  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 editor}s were considered an essential tool on
   every computer.  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 {interpreter}s became standard
   features in {mainframe}s and {minicomputer}s.  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.

   Mailing list: .

   See also {ANSI Minimal BASIC}, {bournebasic}, {bwBASIC},
   {ubasic}.

   (15 Mar 1995)


Basic Assembly Language

   (BAL) What most people called {IBM 360} {assembly language}.

   See {ALC}.

   (13 Apr 1995)


BASIC AUTOCODER

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


Basic COBOL

    A subset of {COBOL} from {COBOL-60} standards.

   [Sammet 1969, p. 339].

   (07 Dec 1997)


Basic Encoding Rules

    (BER) Standard rules for encoding data units
   described in {Abstract Syntax Notation 1} (ASN.1).  The BER
   provide a universal (contiguous) representation of data
   values.  They are sometimes incorrectly lumped under the term
   ASN.1, which properly refers only to the {abstract syntax}
   description language, not the encoding technique.

   Huw Rogers  described BER as "a
   triumph of bloated theory over clean implementation".  He also
   criticises it is designed around bitstreams with arbitrary
   boundaries between data which can only be determined at a high
   level.

   Documents: {ISO} 8825; {ITU} X.209.

   (07 Dec 1997)


Basic FORTRAN

   Subset of FORTRAN.  Sammet 1969, p.150.


Basic Input/Output System

   (BIOS) The part of the {operating system} of the {IBM PC} that
   provides the lowest level interface to peripheral devices.
   The BIOS is stored in {ROM} in every IBM PC.  In order to
   provide acceptable performance (e.g. for screen display),
   software vendors directly access the routines in the BIOS,
   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 program}s
   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.


Basic JOVIAL

    A subset of {JOVIAL} written ca. 1965.

   [Sammet 1969, p.529].

   (19 Apr 1995)


Basic Language for Implementation of System Software

    (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.

   Versions: CMU {BLISS-10} for the PDP-10; CMU {BLISS-11}, DEC
   {BLISS-32} for {VAX}/{VMS}.

   ["BLISS: A Language for Systems Programming", CACM
   14(12):780-790, Dec 1971].

   (01 Mar 1997)


Basic Multilingual Plane

    The first, and to date the only, {UCS-2}
   plane defined.  It was developed by merging the ISO draft for
   16-bit character codes with the code used by {Unicode}.  It
   inherited features from both, compatibility with other
   standards (such as {ISO Latin 1}) from the ISO draft,
   character combining (such as writing the letter "á" as a
   combination of "a" and "'") from Unicode.

   Presently the BMP is half empty, although it covers all major
   languages, including Roman, Greek, Cyrillic, Chinese,
   hiragana, katakana, Devanagari, Easter Island "rongo-rongo",
   and even {Elvish} (but leaves out {Klingon}).

   (04 Jul 1997)


Basic Rate Interface

   (BRI) A kind of {Integrated Services Digital Network} channel
   consisting of two 64 Kbit per second "bearer" (B) channels for
   user-data transfer plus a 16 kbps "delta" (D) channel for
   control and signalling information.  A BRI provides a total
   data rate of 144 kilobits per second.  The B channels are used
   for voice or data, and the D channel is used for signalling
   and/or {X.25} {packet} networking.  BRI is the kind of ISDN
   interface most likely to be found in residential service.

   (28 Nov 1994)


BASIC V

   The version of the {Basic} programming language which comes on
   {ROM} in {Acorn}'s {RISC} computers: the {Archimedes} range
   and the {Risc PC}.  It features REPEAT and WHILE loops,
   multi-line IF statements, procedures and functions, local
   variables, error handling, {system call}s and a built-in
   {assembler}.

   (05 Jan 1995)


Bastard Operator From Hell

   (BOFH) A rogue network operator character invented by Simon
   Travaglia , regularly featured in
   "Computing"/"Datamation"(?) magazine.

   {Home (http://prime-mover.cc.waikato.ac.nz/Bastard.html)}

   (21 Mar 1996)


bastion host

   {proxy gateway}


batch

    A term describing a system that takes a set (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 card}s in the old 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.

   Hackers use this somewhat more loosely than the traditional
   technical definitions justify; in particular, switches on a
   normally interactive program that prepare it to receive
   non-interactive command input are often referred to as "batch
   mode" switches.  A "batch file" is a series of instructions
   written to be handed to an interactive program running in
   batch mode.

   (19 Jan 1995)


batch file

    (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.

   {autoexec.bat} is the best known example of an {MS-DOS} batch
   file.

   (07 Jan 1996)


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}.


baud

    /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.

   (14 Feb 1998)


baud barf

    /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.

   (22 Feb 1996)


Baudot

   {Baudot code}


Baudotbetical order

    /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.

   (11 Feb 1997)


Baudot code

    (For etymology, see {baud}) A {character set}
   predating {EBCDIC} and used originally and primarily on {paper
   tape}.  Use of Baudot reportedly survives in {TTD}s and some
   HAM radio applications.

   In Baudot, characters are expressed using five {bit}s.  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 '.

   (30 Jan 1997)


baud rate

   {baud}


bawk

   An {Awk}-like pattern-matching language by Bob Brodt,
   distributed with {MINIX}.

   (28 Nov 1994)


bay

    The place in a {docking station} where you insert a
   {notebook computer} or {laptop computer} to work in desktop
   mode or to charge their batteries, print, or connect to the
   office network, etc.

   [Is this really distinct from "docking station"?]

   (03 Aug 1997)


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)."


BBC

   {British Broadcasting Corporation}


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

    A {bulletin board} run by the {British Broadcasting
   Corporation} Education department from April 1994 to 30 Nov
   1995.

   (20 Jan 1997)


BBL

    (I will) be back later.


BBN

   {Bolt, Beranek and Newman}


bboard

   /bee'bord/ {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}.

   (05 Feb 1997)


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

    (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
   .

   (26 Mar 1995)


BCS

   1. {British Computer Society}.

   2. {Binary Compatibility Standard}.


BDL

   Block Diagram Compiler.  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).


BDPA

   {Black Data Processing Associates}


BEA

   Basic programming Environment for interactive-graphical
   Applications, from Siemens-Nixdorf.


beam

   [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}.


beam search

   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.


bean

   {JavaBeans}


beanie key

   {feature key}


bearer channel

    Originally, a channel suited for carrying one
   voice-grade connection.  Typically a {DS0} channel.

   Compare {data channel}.

   (7 Mar 1997)


bear paw

    The {Vulcan nerve pinch} for {SGI} computers.  The
   five key keyboard combination  resets the graphics subsystem,
   including the {window manager}.

   (28 Oct 1996)


BeBOP

    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 .

   (27 Oct 1996)


BeBox

    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}.

   {Home (http://www.be.com/)}.

   [Dates?]

   (05 Oct 1996)


BEDO

   {Burst Extended Data Out DRAM}


Bedrock

   A {C++} {class} library for {Macintosh} user interface
   portability.


beep

   {bell}


BEG

   {Back End Generator}


@Begin

    The {Scribe} equivalent of {\begin}.


\begin

   " and "", or "#ifdef FLAME" and "#endif
   FLAME".

   (01 Jun 1996)


BEGL

   {Back End Generator}


beige toaster

   {Macintosh}


Be Inc

    The company that produced the {BeBox}, founded by
   Jean-Louis Gassee, former product chief at {Apple}.

   (05 Oct 1996)


BEL

   {bell}


belief revision

    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?]

   (20 Mar 1995)


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?]

   (06 Dec 1994)


Bell

    {Bell Telephone} or {Bell Laboratories}.

   (07 Apr 1997)


bell

    {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}.

   (08 Apr 1997)


Bell 103

    The original variant of {V.21} created by {AT&T}
   when they had a telephone system monopoly in the USA.

   (02 Feb 1995)


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.

   (06 Dec 1994)


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://www.research.att.com/)}

   {(ftp://ftp.research.att.com/)}

   {netlib} sources {(ftp://netlib.att.com)}.

   (17 Nov 1994)


Bell Labs

   {Bell Laboratories}


bells and whistles

   [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.


bells, whistles, and gongs

   A standard elaborated form of {bells and whistles}; typically
   said with a pronounced and ironic accent on the "gongs".


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} {Lisp} benchmarks, the
   {SPECmark} suite, and {LINPACK}.

   See also {machoflops}, {MIPS}, {smoke and mirrors}.

   {Usenet} newsgroup: {news:comp.benchmarks}.

   {A database of some benchmark results
   (http://netlib2.cs.utk.edu/performance/html/PDSreports.html)}.

   (14 Nov 1994)


benchmarks

   {benchmark}


Bend Over, Here It Comes Again

    (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.

   (20 Sep 1995)


Benoit B. Mandelbrot

   {Benoit Mandelbrot}


Benoit Mandelbrot

    /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".

   (02 Jul 1997)


BeOS

    The {operating system} 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.

   (05 Oct 1996)


BER

   {Basic Encoding Rules}


Berkeley

   {University of California at Berkeley}


Berkeley 4.2

   {Berkeley System 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)}

   (01 Jul 1990)


Berkeley FP

    A version of {Backus}'s {FP} distributed with
   {4.2BSD} {Unix}.

   {(ftp://apple.com/ArchiveVol1/Unix_lang)}

   (15 Dec 1997)


Berkeley Internet Name Domain

    (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.

   (15 Dec 1997)


Berkeley Logo

    A {Logo} {interpreter} by Brian Harvey
   .  Berkeley Logo programs will run on
   {Unix}, {IBM PC} and {Macintosh}.  It doesn't do anything
   fancy about graphics and only allows one {turtle}.

   Version: 4.2, 4.3 "in the works" (26 Nov 1997).

   {MswLogo} is a {Microsoft Windows} {front end}.

   {(ftp://anarres.cs.berkeley.edu/pub/ucblogo)}.

   (26 Nov 1997)


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
   tty}s, {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

    (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}.

   (15 Jan 1996)


Berkeley Software Design, Inc

    (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.

   {Home (http://www.bsdi.com/)}

   E-mail: .

   Address: 5575 Tech Center Drive, #110, Colorado Springs, CO
   80918, USA.  Telephone: +1 (719) 593 9445.  Fax: +1 (719) 598
   4238.

   (13 Jan 1996)


Berkeley Softworks

   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}).

   (24 Jan 1995)


Berkeley System Distribution

    (BSD) A family of {Unix} versions for the
   {DEC} {VAX} and {PDP-11}, developed by {Bill Joy} and others
   at the {University of California at Berkeley}.  BSD Unix
   incorporates {paged} {virtual memory}, {TCP/IP} networking
   enhancements, and many other features.

   BSD UNIX 4.0 was released on 19 October 1980.  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}.

   (23 Nov 1994)


Berkeley Unix

   {Berkeley System Distribution}


berklix

   /berk'liks/ (From {Berkeley Unix}) {Berkeley System
   Distribution}.  Not used at {Berkeley} itself.  May be more
   common among {suit}s attempting to sound like cognoscenti than
   among hackers, who usually just say "BSD".

   (23 Feb 1995)


Bernoulli Box

    A high capacity storage device, {Iomega
   Corporation}'s first popular product, that spins a mylar disk
   over a read-write head using the {Bernoulli prinicple}.

   (15 Apr 1997)


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}.

   (15 Apr 1997)


Bernstein condition

    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.

   (23 Feb 1995)


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.

   (01 Mar 1995)


Bertrand Russell

    (1872-1970) A British mathematician, the discoverer
   of {Russell's paradox}.

   (27 Mar 1995)


Berzerkeley

    /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.

   (01 Jun 1996)


Berzerkley

   {Berzerkeley}


best effort

    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].

   (04 Apr 1995)


best first search

    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}.

   (09 Dec 1995)


Best Fit

    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}.

   (02 Jun 1997)


BETA

   Kristensen, Madsen , 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: .

   Mailing list: .

   ["Object-Oriented Programming in the BETA Programming
   Language", Ole Lehrmann et al, A-W June 1993, ISBN
   0-201-62430-3].

   (31 Oct 1995)


beta

   /bay't*/, /be't*/ or (Commonwealth) /bee't*/

   See {beta conversion}, {beta test}.


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

   [{lambda-calculus}] {beta reduction} or {beta abstraction}.


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 testing

    Testing a pre-release (potentially unreliable)
   version of a piece of software by making it available to
   selected users.  This 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, module, 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.

   An item "in beta test" is thus mostly working but still under
   test.  In the {Real World}, systems (hardware or software)
   often go through two stages of release testing: Alpha
   (in-house) and Beta (out-house?).  Beta releases are generally
   made available to a small number of lucky (or unlucky),
   trusted customers.

   (05 Nov 1996)


beta version

   {beta testing}


Bezier

    (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].

   (04 Apr 1995)


Bezier curve

    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?]

   (12 Jun 1996)


Bezier surface

    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.

   (12 Jun 1996)


BFI

   {brute force and ignorance}


BGP

   {Border Gateway Protocol}


BHC Code

   {Bose-Chaudhuri-Hocquenghem Code}


bib

   {BibTeX}


bible

    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}.

   (03 Dec 1996)


BIBOP

   {Big bag of pages}


BibTeX

    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}.

   (23 Feb 1995)


BiCMOS

    A manufacturing process for semiconductor devices
   that combines {bipolar} and {CMOS} to give the best balance
   between available output current and power consumption.

   (28 Mar 1995)


bidirectional printing

    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}".

   (13 Apr 1995)


bi-endian

   Silicon schizophrenia.  Processors and other chips that have
   can be switched to work in 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}.

   (23 Feb 1995)


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}: .

   [1993: Now It Can Be Told!  My spies inform me that BIFF was
   originally created by Joe Talmadge , 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]

   (22 Sep 1997)


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}.


\big

   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.

   (03 Feb 1995)


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].

   (29 Nov 1994)


big blue

   {International Business Machines}


big-endian

   (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, dated April 1, 1980)

   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.

   1.  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 {NUXI problem}, {swab}.

   2.  An {electronic mail address} the
   wrong way round.  Most of the world 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. dbh@doc.ic.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 site}s have
   {ad-hockery} in their {mailer}s to handle this, but can still
   be confused.  In particular, the address above could be in the
   U.K. (domain "uk") or Czechoslovakia (domain "cs").

   There are signs at last (July 1994) that this parochial
   idiosyncracy may be abolished, at least in the .ac.uk domain,
   and mailers may start to reject big-endian addresses.  Maybe
   one day Americans will start to use the .us {country code}
   {domain} instead of .com, .edu, .mil, .gov etc.  By that time
   the net will probably reach other planets and we'll have a
   whole new set of problems.

   See also {little-endian}, {middle-endian}.

   (07 Mar 1995)


Big Gray Wall

    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 {compiler}s, {database}s, 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".

   (07 Mar 1995)


big iron

   Large, expensive, ultra-fast computers.  Used generally of
   {number crunching} supercomputers such as {Cray}s, but can
   include more conventional big commercial {IBM}ish
   {mainframe}s.  Term of approval; compare {heavy metal}, oppose
   {dinosaur}.


BIG-LAN

   ["BIG-LAN Frequently Asked Questions Memo", BIG-LAN DIGEST
   V4:I8, February 14, 1992.]


Bigloo

   A {Scheme} {interpreter}, compiler and {run-time system} by
   Manuel Serrano  which aims to deliver
   small, fast stand alone {application}s.  The compiler produces
   {ANSI C} and supports optimisation.  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.
   Version 1.4.

   {(ftp://ftp.inria.fr/INRIA/Projects/icsla/Implementations/)}

   (08 Sep 1993)


bignum

    /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.

   (27 Jun 1996)


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}.


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 {TLA}s, 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

    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."

   (04 Mar 1996)


big win

    An {MIT} term for a {Good Thing} or a lucky accident.

   (06 Mar 1996)


bijection

   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.  Only bijective
   functions have inverses f' where f(f'(x)) = f'(f(x)) = x.

   See also {injection}, {surjection}.

   (02 Nov 1994)


Bill Gates

    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).

   (02 Mar 1995)


Bill Joy

   {William Joy}


binaries

   {binary file}


binary

   1.  Base two.  A number representation consisting
   of 0's and 1's used by practically all computers because of
   its ease of implementation using digital electronics and
   {Boolean algebra}.

   2.  Any file format for {digital} {data} encoded
   as a sequence of {bit}s but not consisting of a sequence of
   printable {characters} ({text}).  The term is often used for
   executable {machine code}.

   Of course 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.

   (20 Feb 1997)


binary coded decimal

   (BCD) 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.  E.g. decimal 92 would be
   encoded as the eight bit sequence 1001 0010.  It is easier to
   convert decimal numbers to and from BCD than binary and it is
   possible to build hardware which operates directly on BCD
   though it is often converted to binary for arithmetic
   processing.


Binary Compatibility Standard

    (BCS) The {ABI} of {88open}.

   (03 Jul 1997)


binary counter

    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}.

   (03 Jul 1997)


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 {slot}s.
   If a {collision} occurs, it doubles L and repeats.


binary file

    A file containing arbitrary bytes
   or words, as opposed to a {text file} containing only
   printable characters (e.g. {ASCII} characters with codes 10,
   13, and 32-126).

   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, though as of 1995 this is
   changing slowly.  The {Unix} utility {uuencode} can be used to
   convert binary data to text for transmission by e-mail.  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 text line terminator characters used on
   the sending and receiving computers.

   Confusingly, some files produced by {wordprocessors}, and
   {rich text} files, are actually binary files because they
   contain non-printable characters and require special programs
   to view, edit, and print them.

   (14 Dec 1995)


binary large object

    (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.

   (04 Nov 1997)


binary search

    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])
        last = mid;
      else if (target > thing[mid])
        first = mid+1;
      else
        return mid;
    }
    if (target == thing[last])
      return last;
    return NOT_FOUND;

   (10 Apr 1995)


Binary Synchronous Transmission

    (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.

   (07 Jan 1997)


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}.

   (29 Nov 1994)


BIND

   {Berkeley Internet Name Domain}


bindery

    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)].

   (07 Mar 1996)


binding handle

    An identifier representing the connection between
   a {client} and {server}.  An association between client/server
   end-points and {protocols}.

   (18 Mar 1997)


binding-time analysis

    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}.

   (28 Mar 1995)


BinHex

    A {Macintosh} format for representing a {binary
   file} using only {printable character}s.  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?]

   (30 Nov 1994)


Binhex 4.0

    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?]

   (17 Sep 1996)


BinProlog

    Probably the fastest freely available {C}-emulated
   {Prolog}.  BinProlog features:

   logical and permanent {global variable}s; backtrackable
   {destructive assignment}; circular term {unification};
   extended {DCG}s (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}, {Sun3}; {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 .

   (04 Apr 1995)


BIOR

   An early system on {UNIVAC} I or II.

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

   (01 Apr 1995)


BIOS

   {Basic Input/Output System}


BIP

   An incorrect singular of {BIPS}.  One billion instructions per
   second is 1 BIPS, not 1 BIP.


bipartite graph

   See {complete graph}.


bipolar

   1.  See {bipolar transistor}.

   2.  In digital transmission, an electrical
   line signalling method where the mark value alternates between
   positive and negative polarities.

   See also {AMI}.

   (02 Mar 1995)


bipolar transistor

    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}.

   (04 Oct 1995)


BIPS

   Billion (10^9) instructions per second.  Same as {GIPS}.


Bird-Meertens Formalism

    (BMF) (Or "Squiggol") A calculus for
   derivation of {functional program}s from a specification.  It
   consists of a set of {higher-order function}s 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].

   (01 May 1995)


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.

   (11 Oct 1994)


BISDN

   Broadband {Integrated Services Digital Network}.


Bison

   {GNU}'s replacement for the {yacc} {parser generator}.  Runs
   under {Unix} and {Atari}.  Author: Robert Corbett.  Version:
   1.22.  Bison will apply the {GNU} {General Public License} to
   your code.

   FTP from your nearest {GNU archive site}.
   {(ftp://prep.ai.mit.edu/pub/gnu/bison-1.21.tar.Z)}.  E-mail:
   .

   {Bison++} is a version which produces {C++} output.

   (14 Sep 1993)


Bison++

   GNU's Yacc parser generator retargeted to C++ by Alain
   Coetmeur .  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)}.

   (08 Jul 1993)


BIST

   {Built-in Self Test}


bisync

   {Binary Synchronous Transmission}


bit

    (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 true and false 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 early computer
   scientist 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}.

   (03 Nov 1996)


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
   {wannabee}s.

   Bit bang was used on certain early models of {Prime}
   computers, presumably when {UART}s 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}.


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}.


bit bucket

    1. 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 ?].

   (20 Nov 1996)


bit decay

   See {bit rot}.  People with a physics background tend to
   prefer this variant for the analogy with particle decay.  See
   also {computron}, {quantum bogodynamics}.


bit diddling

   See {bit bashing}.


bite

    It's spelled "{byte}" to avoid confusion with
   "{bit}".

   (13 Dec 1996)


bitmap

    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}.

   (21 Sep 1996)


bitmap display

    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 {graphic
   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?]

   (16 Feb 1995)


bitmap font

    A {font} where each character is stored as an {array}
   of {pixel}s (a {bitmap}).  Such fonts are not easily scalable,
   in contrast to {vectored font}s (like those used in
   {PostScript}).

   [Examples?]

   (16 Feb 1995)


bitmapped display

   {bitmap display}


bit mask

    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}.

   (12 May 1995)


BITNET

    /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}
   {packet}s 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} {dinosaur}s and
   {VAXen} (the latter with lobotomised communications hardware)
   that communicate using 80-character {EBCDIC} card images (see
   {eighty-column mind}); thus, they tend to mangle the {header}s
   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}.

   (29 Nov 1994)


bit-paired keyboard

   (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.

   (20 Feb 1995)


bit pattern

    A sequence of {bit}s, 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}.

   (03 Jul 1997)


bit plane

    (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.

   (16 Mar 1997)


bit rot

   (Or {bit decay}) 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.

   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-detecting
   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; see the {cosmic rays} entry for
   details.

   Bit rot is the notional cause of {software rot}.

   (29 Nov 1994)


bit slice

   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.

   (15 Nov 1994)


bits per inch

    (BPI) A measure of the recording density of a {magnetic
   tape} or {disk}.

   (13 Apr 1995)


bits per second

    (bps) The rate at which data is sent over
   some communication line.

   For example, a {modem}'s data rate is usually measured in
   {kilobits} per second.  In 1996, the maximum modem speed for
   use on public telephone lines is 33.6 kbps, but this is set to
   rise to 56 kbps next year.

   (08 Dec 1996)


bit stuffing

    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.

   (23 Apr 1996)


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.


bitty box

   /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 computer}s 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}.

   (29 Nov 1994)


bitwise

    A bitwise operator treats its operands as a
   {vector} of {bit}s 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.

   (12 May 1995)


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.

   (14 Nov 1994)


bixie

   /bik'see/ Variant {emoticon}s 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.

   (29 Nov 1994)


Bjarne Stroustrup

   The father of {C++} and author of the C++ {bible}.

   E-mail: .

   ["The C++ Programming Language", Bjarne Stroustrup,
   Addison-Wesley, 1986].

   (14 Feb 1995)


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.

   (29 Nov 1994)


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}.


black box

    An abstraction of a device or system in which only
   its extenally visible behaviour is considered and not its
   implementation or "inner workings".

   See also {functional testing}.

   (03 Jul 1997)


black-box testing

   {functional testing}


Black Data Processing Associates

    (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.

   {Home (http://www.bdpa.org/conf96)}

   E-mail: .

   Telephone: Ms. Pat Drumming, +1 (800) 727-BDPA.

   (07 Apr 1996)


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}.


black magic

   A technique that works, though nobody really understands why.
   More obscure than {voodoo programming}, which may be done by
   cookbook.  Compare also {black art}, {deep magic}, and {magic
   number} (sense 2).


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}.


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}.


BLAZE

   A {single assignment} language for {parallel processing}.

   ["The BLAZE Language: A Parallel Language for Scientific
   Programming", P. Mehrotra  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

    To transmit or send data.

   "Bleam that binary to me in an e-mail".

   [Origin?  Used where?]

   (14 May 1997)


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.


Bletchley Park

   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.

   There is an exhibition of wartime code-breaking memorabilia
   including fragments of a {Colossus}, a wartime
   semi-fixed-program {vacuum tube} calculator at Bletchley Park
   on alternate weekends.

   The {Computer Conservation Society} (CCS), a specialist group
   of the {British Computer Society}, has been asked to help the
   planning and preparation of a Historical Computer Exhibition
   there.  It is hoped that the CCS will have substantial
   facilities for storage of old artifacts and for restoration
   workshops, as well as archive, library and research
   facilities.

   Telephone: Bletchley Park Trust office +44 (908) 640 404
   (office hours and open weekends).

   (17 Nov 1994)


Blind Carbon Copy

    (Bcc) An {electronic mail} {header} which lists
   addresses to which a message should be sent, but which will
   not be seen by some or all recipients.

   Bcc is defined in {RFC 822} and supported by most 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 "To" and "Cc" recipients but they may or
   may not appear in the copy sent to "Bcc" recipients
   themselves.

   [Does any mailer send Bcc headers to any recipients?]

   (05 Feb 1997)


B-LINE

   An early {CAD} language.

   ["B-LINE, Bell Line Drawing Language", A.J. Frank, Proc Fall
   JCC 33 1968].

   (17 Nov 1994)


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}.


BLISS

   {Basic Language for Implementation of System Software}


BLISS-10

   A version of {BLISS} from {CMU} for the {PDP-10}.


BLISS-11

   A {cross-compiler} for the {PDP-11} running on a {PDP-10}.
   Written at {CMU} to support the {C.mmp}/{Hydra} project.


BLISS-32

   A version of {BLISS} from DEC for {VAX}/{VMS}.


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).

   (16 Nov 1994)


blitter

    /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}).

   (30 Apr 1996)


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.


bloat

   {software bloat}


bloatware

    {Software} suffering from {software bloat}.

   (14 Oct 1995)


BLOB

   1. {binary large object}.

   2.  {blitter object}.


block

   1.  A unit of data or memory, often, but not
   exclusively, on a disk.

   Compare {record}, {sector}.

   2.  To delay or sit idle while waiting for
   something.

   Compare {busy-wait}.


blocked records

    Several {record}s 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 gap}s.
   It requires that the tape drive or processor have a
   sufficiently large buffer to store the whole block.

   (13 Apr 1995)


Block Started by Symbol

   (BSS) The uninitialised data segment produced by Unix linkers.
   The other segments are the "text" segment which contains the
   program code and the "data" segment contains initialised data.
   Objects in the bss segment have only a name and a size but no
   value.


block transfer computations

   [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.


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}.


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.

   (29 Nov 1994)


blow away

    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}.

   (05 Jan 1996)


blow out

    (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}.

   (29 Nov 1994)


blow past

   To {blow out} despite a safeguard.  "The server blew past the
   5K reserve buffer."

   (29 Nov 1994)


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}.


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).


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.  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.  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.  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}.

   (12 Oct 1995)


Blue Box

    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.

   (15 Oct 1997)


Blue Glue

   [IBM] IBM's SNA (Systems Network Architecture), an incredibly
   {losing} and bletcherous communications protocol widely
   favoured at commercial shops that don't know any better.  The
   official IBM definition is "that which binds blue boxes
   together."  See {fear and loathing}.  It may not be irrelevant
   that {Blue Glue} is the trade name of a 3M product that is
   commonly used to hold down the carpet squares to the removable
   panel floors common in {dinosaur pen}s.  A correspondent at
   U. Minn. reports that the CS department there has about 80
   bottles of the stuff hanging about, so they often refer to any
   messy work to be done as "using the blue glue".


Blue Sky Software

    A vendor of {Microsoft} {Windows} application
   development tools such as {RoboHELP} and {WinMaker Pro}.

   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.
   (19 Jan 1997)


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}.

   (29 Nov 1994)


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}.


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.

   A statistical language developed at {UCB} in 1961, first
   implemented in {FORTRAN} for the {IBM 7090}.

   (13 Mar 1995)


B-Method

    A system for rigorous or formal
   development of software using the notion of {Abstract
   Machine}s 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 Substitution}s.

   (13 Mar 1995)


BMF

   {Bird-Meertens Formalism}


BMP

   {Basic Multilingual Plane}


bmp

   {Microsoft Windows} {Bitmap} format.  Bmp files may use
   {run-length encoding}.

   [Format?]

   (05 Jan 1995)


BMWF

   Austrian Ministry of Science.


BNC

    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.

   (18 Sep 1995)


BNF

   {Backus-Naur Form}.  Originally Backus Normal Form.


BNR Pascal

   ["Remote Rendezvous", N. Gammage et al, Soft Prac & Exp
   17(10):741-755 (Oct 1987)].

   (21 Dec 1994)


BNR Prolog

   A {constraint logic} language.

   [Details?]

   (21 Dec 1994)


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".


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.


Bob

   David Betz.  A tiny object-oriented language.

   {(ftp://ftp.mv.com/pub/ddj/packages/bob15.arc)}

   [Dr Dobbs J, Sep 1991, p.26].


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

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


BOF

   /B-O-F/ or /bof/ 1. {Birds Of a Feather}.

   2. Boring Old Fart.


BOFH

   {Bastard Operator From Hell}


bogometer

   /boh-gom'-*t-er/  A notional instrument for
   measuring {bogosity}.  Compare the "wankometer" described in
   the {wank} entry; see also {bogus}.


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}, {bogus}; 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.


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}, {bogus}.


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}.


bogosity

   /boh-go's*-tee/ 1. The degree to which something is {bogus}.
   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}.

   2. The potential field generated by a {bogon flux}; see
   {quantum bogodynamics}.  See also {bogon flux}, {bogon
   filter}, {bogus}.


bogo-sort

   /boh"goh-sort"/ (variant "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."
   Compare {bogus}, {brute force}, {Lasherism}.


bogotify

   /boh-go't*-fi:/ To make or become bogus.  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 and you had better not use it any more.  This
   coinage led to the notional "autobogotiphobia" defined as "the
   fear of becoming bogotified"; but is not clear that the latter
   has ever been "live" jargon rather than a self-conscious joke
   in jargon about jargon.  See also {bogosity}, {bogus}.


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}
   afterwards."  See also {bogosity}, {bogus}.


bogus

   1. Non-functional.  "Your patches are bogus."

   2. Useless.  "OPCON is a bogus program."

   3. False.  "Your arguments are bogus."

   4. Incorrect.  "That algorithm is bogus."

   5. Unbelievable.  "You claim to have solved the halting
   problem for Turing Machines?  That's totally bogus."

   6. Silly.  "Stop writing those bogus sagas."

   Astrology is bogus.  So is a bolt that is obviously about to
   break.  So is someone who makes blatantly false claims to have
   solved a scientific problem.  (This word seems to have some,
   but not all, of the connotations of {random} - mostly the
   negative ones.)

   It is claimed that "bogus" was originally used in the hackish
   sense at {Princeton} in the late 1960s.  It was spread to
   {CMU} and {Yale} by Michael Shamos, a migratory Princeton
   alumnus.  A glossary of bogus words was compiled at Yale when
   the word was first popularised (see {autobogotiphobia} under
   {bogotify}).  The word spread into hackerdom from CMU and
   {MIT}.  By the early 1980s it was also current in something
   like the hackish sense in West Coast teen slang, and it had
   gone mainstream by 1985.  A correspondent from {Cambridge}, UK
   reports, by contrast, that these uses of "bogus" grate on
   British nerves; in Britain the word means, rather
   specifically, "counterfeit", as in "a bogus 10-pound note".


BOHICA

    /bo-hee-ka/ {Bend Over, Here It Comes
   Again}.


Bohr bug

    /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}.

   (28 Feb 1995)


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}.


Bolt, Beranek and Newman, Inc.

   (BBN) A company in Cambridge, Massachusetts, USA.  They 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}.

   (07 Oct 1994)

   [Butterfly?]


bomb

   1.  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.  {Atari ST} and {Macintosh} equivalents
   of a {Unix} "{panic}" or {Amiga} {guru}, in which {icon}s 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.  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.

   (08 Dec 1996)


bon

    (From "Bonnie", {Ken Thompson}'s wife) A language
   designed by {Ken Thompson} and later revised by him to produce
   {B}.

   [When?  Features?]

   (04 Feb 1997)


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}.

   (05 Jan 1996)


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.

   (18 Jan 1998)


Booch

   {(http://www.itr.ch/tt/case/BoochReferenz/)}

   [What is it?]

   (18 Jan 1995)


bookmark

    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.

   (09 Jun 1997)


Bookreader

   {DEC}'s {CD-ROM}-based on-line documentation browser.


book titles

    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}.

   (03 Dec 1996)


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

    1. {Boolean algebra}.

    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}.

   (01 Dec 1997)


Boolean algebra

    (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 {set}s, 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.

   (27 Feb 1997)


Boolean logic

    A {logic} based on {Boolean algebra}.

   (25 Mar 1995)


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

    (from "{bootstrap}" or "to pull oneself up
   by one's bootstraps") To load and initialise the {operating
   system} on a computer.

   See {reboot}, {cold boot}, {warm boot}, {soft boot}, {hard
   boot}, {bootstrap}, {bootstrap loader}.

   (27 Nov 1995)


boot block

    A program at some fixed location 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}.

   (03 Jul 1997)


boot disk

    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}.

   (09 Jun 1997)


BOOTP

   The Bootstrap Protocol.

   A {protocol} described in {RFC}s 951 and 1084 and used for
   booting {diskless workstation}s.

   See also {Reverse Address Resolution Protocol}.

   (16 Feb 1995)


bootstrap

   1.  (From "to pull oneself up by one's
   bootstraps") To load and initialise the {operating system} on
   a computer.  Normally abbreviated to "{boot}".

   See {bootstrap loader}.

   2.  (From "to pull oneself up by one's bootstraps")
   to use a {compiler} to compile itself.

   The usual process is to write an {interpreter} for a language,
   L, in an existing language, M.  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}.

   (27 November 1995)


bootstrap loader

    (from "{bootstrap}" or "to pull oneself up
   by one's bootstraps") A short {program} that was read in from
   {card}s or {paper tape}, or {toggle}d in from the {front
   panel} switches, which read in a more complex {program} to
   which it gave control.

   On early computers the bootstrap loader was always very short
   (great efforts were expended on making it short in order to
   minimise the labour and chance of error involved in toggling
   it in), but was just smart enough to read in a slightly more
   complex {program} (usually from a card or {paper tape}
   reader), to which it handed control; this {program} in turn
   was smart enough to 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 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.

   See {boot}.

   (27 November 1995)


boot virus

   An {MS-DOS} {virus} that infects the {boot record} program on
   {hard disk}s and {floppy disk}s 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.

   (16 Feb 1995)


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.

   (29 Nov 1994)


borf

    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.

   (21 Mar 1997)


Borland International, Inc.

    A company selling a variety of {IBM 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 products include the {Borland C++} C++ and C
   developement environment, the {Paradox} and {dBASE}
   {databases}, {Delphi}, 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.

   Quarterly sales $69M, profits $61M (Aug 1994).

   {Home (http://www.borland.com/)}.

   Headquarters: 100 Borland Way, Scotts Valley, CA, 95066, USA.
   Telephone: +1 (408) 431 1000.

   (27 May 1996)


BOS

   1. A data management system written at {DESY} and used in some
   high energy physics programs.

   2. The Basic Object System.

   A {C}-callable library that implements the notion of object
   and which uses {Tcl} as its {interpreter} for interpreted
   {method}s (you can have "compiled" methods in C, and mix
   compiled and interpreted methods in the same object, plus lots
   more stuff).  I regularly (a) subclass and (b) mixin existing
   objects using BOS to extend, among other things, the set of
   {tk} {widget}s (I have all tk widgets wrapped with BOS
   "classes").  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}.  (21 Aug 1992).

   Version 1.31 by Sean Levy .

   {(ftp://barkley.berkeley.edu/tcl)}


Bose-Chaudhuri-Hocquenghem Code

   (BHC Code) An {error detection and correction} technique based
   on {Cyclic Redundancy Code}, used in telecommunications
   applications.

   (16 Jan 1995)


BOSS

   Bridgport Operating System Software.  A derivative of the {ISO
   1054} numerical machine control language for milling, etc.


bot

    (robot) A program (often written in a scripting
   language) that lives on an {IRC} {channel}, often pretending
   to be human.  Whilst most bots are useful, serving only to
   administer or police a channel, some are designed to cause
   trouble (e.g. by attempting to "take over" and {kick} the
   other {CHOP}s).  Most bots are derivatives of a few standard
   programs, e.g. {CloneBots} or {GuardBots}.

   (07 Jan 1997)


botmaster

    The owner of a {bot}.

   (07 Apr 1997)


bottom

    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).

   (07 Jan 1997)


bottom feeder

   Synonym for {slopsucker}, derived from the fishermen's and
   naturalists' term for finny creatures who subsist on the
   primordial ooze.


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

    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.

   (10 May 1996)


bottom-up model

    A method for estimating the cost of a complete
   software project by combining estimates for each component.

   (28 May 1996)


bottom-up testing

    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}.

   (10 May 1996)


botwar

    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}.

   (08 Apr 1997)


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.

   (29 Nov 1994)


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 username 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.

   (29 Nov 1994)


boundary scan

   The use of {scan register}s 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).

   (14 Feb 1995)


boundary value analysis

    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.

   (10 May 1996)


bounded

   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}).

   (03 Feb 1995)


boundedly complete

   In domain theory, a complete partial order is boundedly
   complete if every bounded subset has a least upper bound.
   Also called consistently complete.


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 script}s.

   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

    (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.

   (29 Nov 1994)


box

    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}.

   (29 Nov 1994)


boxed comments

    {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}.

   (21 Jul 1997)


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.

   (29 Nov 1994)


Boxer

    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}.

   (02 May 1995)


boxology

    /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}.

   (02 Dec 1994)


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?]

   (18 Apr 1995)


bozotic

    (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.

   (05 Jan 1996)


BPI

   {bits per inch}


BPS

   {bits per second}


BQS

   {Berkeley Quality Software}


brace

    {left brace} or {right brace}.


bracket

    (Or square bracket) A {left bracket} or {right
   bracket}.

   Often used losely for {parentheses}, {square brackets},
   {braces}, {angle brackets}, or any other kind of unequal
   paired {delimiters}.

   (08 Sep 1996)


bracket abstraction

    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 variable}s in which the only operation is
   {monadic} function application.

   See {combinator}.

   (07 Mar 1995)


Brain Aid Prolog

    (BAP) A parallel {Prolog} environment for
   {transputer} systems by Frank Bergmann
   , Martin Ostermann
   , and Guido von Walter
    of {Brain Aid Systems} GbR.  It is based
   on a model of communicating sequential Prolog processes.  The
   {runtime system} consists of a multi-process {operating
   system} with support for several applications running
   concurrently.

   {Home (http://www.cs.tu-berlin.de/~fraber/bap.html)}

   {Berlin FTP (ftp://unlisys.in-berlin.de/pub/brainaid/)}, {CMU
   FTP
   (ftp://ftp.cs.cmu.edu/user/ai/lang/prolog/impl/parallel/bap/)}.

   (07 Mar 1995)


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}.


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).


brain fart

    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?"

   (29 Apr 1997)


braino

   {thinko}


Branch and Hang

    (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).

   Comapre {HCF}.

   (12 Feb 1997)


branch coverage testing

    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.

   (10 May 1996)


branch delay slot

   {delayed control-transfer}


Branch on Chip Box Full

    (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.

   (12 Feb 1997)


branch prediction

    A technique used in some processors
   with {instruction prefetch} to guess whether a branch will be
   taken or not and prefetch code from the appropriate location.

   When a branch instruction is executed, it and the next
   instruction executed 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.  When the prediction
   is correct (and it is over 90% of the time), executing a
   branch does not cause a {pipeline break}.

   [Does it store instructions or their addresses?]

   (05 May 1995)


Branch Target Buffer

    (BTB) A {register} used to store the predicted
   destination of a branch in a processor using {branch
   prediction}?

   [Is this correct?  Examples?]

   (05 May 1995)


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}.


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}(?).

   (05 Dec 1994)


BRB

    (I will) be right back.

   (18 Jan 1998)


bread crumbs

   Debugging statements inserted into a program that emit output
   or log indicators of the program's {state} to a file so you
   can see where it dies or pin down the cause of surprising
   behaviour.  The term is probably a reference to the Hansel and
   Gretel story from the Brothers Grimm; in several variants, a
   character leaves a trail of bread crumbs so as not to get lost
   in the woods.


breadth first search

    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}.

   (05 Jan 1996)


break

   1. To cause to be {broken} (in any sense).  "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 {RS-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 a few years ago.

   6. {pipeline break}.


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}].


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.

   (26 Jan 1995)


breedle

   {feep}


BRH

   {Branch and Hang}


BRI

   {Basic Rate Interface}, {2B1D} {Integrated Services Digital
   Network}.

   Basic Rate ISDN?


Brian Reid

    The person who cofounded {Usenet}'s anarchic alt.*
   {newsgroup} {hierarchy} with {John Gilmore}.

   (12 Apr 1997)


BRIDGE

   A component of {ICES} for civil engineers.

   [Sammet 1969, p. 616].


bridge

   A device which forwards traffic between network segments based
   on {data link layer} information.  These segments would have a
   common {network layer} address.

   See also {gateway}, {router}.


Bridgetalk

   A visual language.


Brilliant

   One of five pedagogical languages based on {Markov}
   {algorithm}s, 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}.


British Broadcasting Corporation

    (BBC) The UK state television and radio company.
   They commissioned the "{BBC Micro}" from {Acorn Computers} for
   use in a television series about using computers.  They also
   run the {BBC Networking Club}.

   (28 Feb 1995)


British Standards Institute

    (BSI) The British member of {ISO}.

   (12 Jun 1996)


British Telecom

    (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.

   {Home (http://www.intervid.co.uk/)}

   (09 May 1995)


British Telecom Research Laboratories

    (BTRL) The laboratories where {British Telecom}
   develops many of its new Network services.

   {Home (http://www.labs.bt.com/)}

   Address: Martlesham Heath, near Ipswich, Suffolk, UK.

   (25 Apr 1995)


brittle

    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}.

   (09 May 1995)


broadband

    A transmission medium capable of supporting a
   wide range of frequencies, typically from audio up to video
   frequencies.  It can carry multiple signals by dividing the
   total capacity of the medium into multiple, independent
   bandwidth channels, where each channel operates only on a
   specific range of frequencies.

   See also {baseband}.

   (09 May 1995)


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

    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.

   (04 Jul 1997)


broadcast storm

    An {broadcast} on a {network} that causes
   multiple {hosts} to respond by broadcasting themselves,
   causing the storm to grow exponentially in severity.

   See {network meltdown}.

   (07 Feb 1995)


Broadway

    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.

   {Home (http://www.x.org/consortium/broadway.html)}.

   (15 May 1997)


brochureware

   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 as a strategic weapon; the idea is to con
   customers into not committing to an existing product of the
   competition's.  It is a safe bet that when a brochureware
   product finally becomes real, it will be more expensive than
   and inferior to the alternatives that had been available for
   years.


broken

   Not working properly (of programs).


broken arrow

    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.

   (07 Feb 1995)


broket

    /broh'k*t/ or /broh'ket/ (From broken bracket)
   Either of the characters "<" or ">" when used as paired
   enclosing {delimiters} ({angle brackets}).

   (21 Jul 1997)


Brooks's Law

    "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}.

   (17 Sep 1996)


brouter

   A device which bridges some {packet}s (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.


browser

    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}.

   (31 May 1996)


BRS

   {Big Red Switch}.  This abbreviation is fairly common on-line.


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].

   (14 Feb 1995)


brute force

   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.

   {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 {algorithm}s 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.

   (14 Feb 1995)


brute force and ignorance

    (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}.

   (12 Jun 1996)


BS

    Backspace, the {mnemonic} for {ASCII} 8.

   (24 Jun 1996)


BS2000

    An {operating system} from {SNI} for
   {mainframes}.

   {Home (http://www.mch.sni.de.public/bs2000/server.htm)}.

   (13 Jun 1997)


BSA

   {Business Software Alliance}


BSD

   {Berkeley System Distribution}


BSD386

   {386BSD}


BSDI

   {Berkeley Software Design, Inc.}


BSD/OS

    {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.

   (13 Jan 1996)


BSD Unix

   {Berkeley System Distribution}


BSI

   {British Standards Institute}


BSL

   Variant of IBM's PL/S systems language.  Versions: BSL1, BSL2.


BSP method

   A CASE method from IBM.


BSS

   {Block Started by Symbol}


BTB

   {Branch Target Buffer}


btoa

    /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.

   (08 Aug 1997)


B-Toolkit

    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.

   (13 Mar 1995)


BTOS

   {Convergent Technologies Operating System}


B-tree

   1. {binary tree}.

   2. {balanced tree}.


BTRIEVE

   1.  {BTRIEVE Technologies, Inc.}.

   2.  A trademark of {BTRIEVE Technologies, Inc.} for
   their {ISAM} {index file} manager for {IBM PC}s.

   (28 Mar 1995)


BTRIEVE Technologies, Inc.

    /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.

   {Home (http://www.btrieve.com/)}

   Address: Austin, Texas, USA.

   (14 Dec 1995)


BTRL

    {British Telecom Research Laboratories}.


BTW

   by the way.


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}.


BUAG

   [alt.fan.warlord] Big Ugly ASCII Graphic.  Pejorative term for
   ugly {ASCII ART}, especially as found in {sig block}s.  For
   some reason, mutations of the head of Bart Simpson are
   particularly common in the least imaginative {sig block}s.

   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 , Appendix C]

   (03 Feb 1995)


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.


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}.


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

   When a {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 consecutive
   writes must wait for first to complete.  Most accesses are
   reads so buffered write-through is only useful for very slow
   main memory.


buffer overflow

    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}.

   (13 May 1996)


bug

    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 backwards."

   Historical note: 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 game}s.

   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]


bug-compatible

   Said of a design or revision that has been badly compromised
   by a requirement to be compatible with {fossil}s or
   {misfeature}s 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."


bug fix release

    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.

   (04 Aug 1996)


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.


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}.


BUGSYS

   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)].

   (14 Feb 1995)


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.

   (14 Feb 1995)


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.

   (14 Feb 1995)


bulletin board

   {bulletin board system}


bulletin boards

   {bulletin board system}


bulletin board system

    (BBS, bboard) (After a physical
   piece of board on which people can pin messages written on
   paper for general consumption - a "physical bboard").  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 group}s
   similar to the {newsgroup}s on {Usenet} (which is like a
   distributed BBS).  Any user may submit or read any message in
   these public areas.

   Apart from public message areas, a BBS may provide archives of
   files, personal {electronic mail} and any other services or
   activities of interest to the bulletin board system's operator
   (the "{sysop}").  Thousands of local BBSes are in operation
   throughout the world, typically run by amateurs for fun out of
   their homes on {MS-DOS} boxes with a single {modem} line each.
   Although BBSes have traditionally been the domain of
   hobbyists, an increasing number of BBSes are connected
   directly to the {Internet}, and many BBSes are currently
   operated by government, educational, and research
   institutions.  Fans of {Usenet} and {Internet} or the big
   commercial {time-sharing} bboards such as {CompuServe}, {CIX}
   and {GEnie} tend to consider local BBSes the low-rent district
   of the hacker culture, but they serve a valuable function by
   knitting together lots of hackers and users in the
   personal-{micro} world who would otherwise be unable to
   exchange code at all.

   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}.


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}.


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".


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.

   (29 Nov 1994)


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.


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!"


burn-in

   1.  {screen saver}.

   2.  {burn-in period}.

   (23 Nov 1997)


burn-in period

   1. A factory test designed to catch systems with {marginal}
   components before they get out the door; the theory is that
   burn-in will protect customers by outwaiting the steepest part
   of the {bathtub curve} (see {infant mortality}).

   2. A period of indeterminate length in which a person using a
   computer is so intensely involved in his project that he
   forgets basic needs such as food, drink, sleep, etc.  Warning:
   Excessive burn-in can lead to burn-out.  See {hack mode},
   {larval stage}.


Burroughs Corporation

   A company which merged with {Sperry Univac} to form {Unisys
   Corporation}.

   (22 Nov 1994)


Burst EDO

   {Burst Extended Data Out DRAM}


Burst Extended Data Out DRAM

    (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.

   (25 Jun 1996)


burst page

   {banner}


bus

    A set of conductors (wires, PCB tracks or
   connections in an {integrated circuit}) connecting the various
   {functional units} in a computer.  There are busses both
   within the {CPU} and connecting it to external memory and
   {peripheral} devices.  The width of the bus, i.e. the number of
   parallel connectors, determines the size in bits of the
   largest data item which it can carry.  The bus width and the
   number of data items per second which it can transmit are one
   of the factors limiting a computer's performance.  Most
   current {microprocessors} have 32-bit busses both internally
   and externally.

   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.

   [Origin: from electrical "bus bar", from trams?]

   (01 Nov 1995)


Business Software Alliance

    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.

   {Home (http://www.bsa.org/bsa)}

   UK Office: Business Software Alliance, 1st Floor, Leaconfield
   House, Curzon Street, London W1Y 8AS, United Kingdom.

   See also {software audit}.

   (19 May 1996)


bus master

    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}.

   (26 Aug 1996)


bus mastering

   {bus master}


Busy Beaver

    (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.

   (24 Oct 1994)


busy-wait

   To wait for an {event} by {spin}ning through a {tight loop} or
   timed-delay loop that {poll}s 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.


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.  {push-button}.

   2.  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}.

   (07 Jul 1997)


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."


bwBASIC

   Bywater BASIC interpreter.

   A {BASIC} {interpreter} by Ted A. Campbell 
   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}
   {compiler}s on varying {platform}s including {MS-DOS}, {Unix},
   and {Acorn} {RISC OS}.

   Version 2.10 was posted to {news:comp.sources.misc}, volume
   40.

   (29 Oct 1993)


BWQ

   [IBM] Buzz Word Quotient.  The percentage of buzzwords in a
   speech or documents.  Usually roughly proportional to
   {bogosity}.  See {TLA}.


byacc

    Berkeley Yacc.

   Probably the best variant of the {Yacc} {parser generator}.
   Written by Robert Corbett .  byacc
   was previously known as {Zoo}, and before that, as {Zeus}.
   Version: 1.9.

   {(ftp://ftp.cs.berkeley.edu/~ftp/ucb/4bsd/byacc.tar.Z)}

   (19 Jun 1995)


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."


Byte

    A popular computing magazine.

   {Home (http://www.byte.com)}.

   (27 Mar 1997)


byte

    /bi:t/ (B) A component in the machine {data hierarchy}
   usually larger than a {bit} and smaller than a {word}; now
   most often 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 bitfields 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  adds:

   I am sure I read in some historical brochure by IBM some 15-20
   years ago 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).

   [True origin?  First 8-bit byte architecture?]

   See also {nibble}, {octet}.

   (25 Aug 1996)


byte-code compiler

    A {compiler} which outputs a program in
   some kind of {byte-code}.  This program is then interpreted by
   a {byte-code interpreter}.  The advantage of this technique
   compared with outputing {machine code} for a particular
   processor is that the same byte-code can be executed on any
   processor on which the byte-code interpreter runs.

   (04 Nov 1995)


byte compiler

   {byte-code compiler}


bytesexual

   /bi:t"sek"shu-*l/ Said of 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}.


Byzantine

    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 superluous levels
   and officials with high flown titles unrelated to their actual
   function, if any.

   (17 Nov 1997)


bzzzt, wrong

   /bzt rong/ ({Usenet}, {Internet}) From a Robin Williams
   routine in the movie "Dead Poets Society" spoofing radio or TV
   quiz programs, such as *Truth or Consequences*, where an
   incorrect answer earns one a blast from the buzzer and
   condolences from the interlocutor.  A way of expressing
   mock-rude disagreement, usually immediately following an
   included quote from another poster.  The less abbreviated
   "*Bzzzzt*, wrong, but thank you for playing" is also common;
   capitalisation and emphasis of the buzzer sound varies.

   (11 Nov 1994)


C

    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}.

   (01 Jun 1996)


(c)

   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).

   (03 Feb 1995)


C*

   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.  The current version is 6.x.

   E-mail: ,
   .

   ["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].


C++

    One of the most used {object-oriented} languages, a
   superset of {C} developed primarily by Bjarne Stroustrup
    at {AT&T} {Bell Laboratories} in 1986.

   In C++ a {class} is a user-defined type, syntactically a
   struct with {member function}s.  {Constructor}s and
   {destructor}s are member functions called to create or destroy
   {instance}s.  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
   argument}s.  It has {stream}s 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://prep.ai.mit.edu/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].

   (06 Jun 1996)


C+@

   (Formerly Calico).  An {object-oriented language} from {Bell
   Laboratories} which uniformly represents all data as a pointer
   to a self-described object.  C+@ provides {multiple
   inheritance} with {delegation} and with control over which
   {method}s 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.

   It runs under {SunOS} and compiles to {Vcode}.  Unir Tech,
   (800) 222-8647.

   E-mail: Jim Vandendorpe .

   ["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].

   (31 Oct 1994)

   [What has "Unir Tech" got to do with it?]


C-10

   An improved version of {COLINGO}.

   [Sammet 1969, p.702].

   (28 Oct 1994)


C1 security

   {Orange Book}


c2man

    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 that the programmer use a typesetting language.
   Acceptable documentation can often be generated from existing
   code with no modifications.

   It 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 (25 Oct 1995).

   {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/)}.

   Mailing list:  ("subscribe
   c2man " in the message body).

   Patches posted to {Usenet} newsgroups {news:comp.sources.bugs}
   and {news:comp.sources.reviewed}.

   (21 Feb 1994)


C2 security

   {Orange Book}


c386

   A compiler for {K&R C} plus {prototype}s and other {ANSI C}
   features by Matthew Brandt, Christoph van Wuellen, Keith and
   Dave Walker.  c386 is targetted to several {68000} and {Intel
   80386} {assembler}s, 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)}.

   c386 has been ported to {Intel 80386} and {68000} {MINIX} and
   should work on any Unix.  It is actively worked on by the
   Walkers.  {Usenet} newsgroup: {news:comp.os.minix}.


C5

   An {OPS5} implementation in {C}.


C64

   {Commodore 64}


c68

   {c386} also produces {68000} code.


CA

   1.  {cellular automaton}.

   2.  {Computer Associates}.

   3.  {Certificate Authority}.

   (28 Sep 1996)


ca

    The {coutry code} for Canada.

   (19 Apr 1995)


cable modem

    A type of {modem} that allows
   people to access the Internet via their cable television
   service.  However, 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.

   A cable modem can transfer data at 500 {kbps} or higher,
   comapred with 28.8 kbps for common telephone line modems, but
   the actual transfer rates in practice may be lower depending
   on the number of other simultaneous users on the same cable.

   (29 Jun 1997)


cache

    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}.

   (25 Jun 1997)


cache block

   {cache line}


cache conflict

    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 A request to read from memory which can satisfied
   from the {cache} without using the {main memory}.

   Opposite: {cache miss}.

   (21 Jan 1997)


cache line

    (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 afterwards.  It can also take advantage
   of {page-mode} {DRAM} which allows faster access to
   consecutive locations.

   (21 Jan 1997)


cache memory

   {cache}


cache miss

    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}.

   (21 Jan 1997)


Cache On A STick

    (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.

   (10 Jun 1996)


caching

   {cache}


CACI

   A company developing and marketing {SIMSCRIPT}, {MODSIM} and
   other {simulation} software products.

   Telephone: +1 (619) 457-9681.

   (22 Sep 1994)


CACM

   {Communications of the ACM}


CAD

   {Computer Aided Design}


CAD/CAM

   Computer Aided Design/Computer Aided Manufacturing.(see CAD)


CADD

   Computer Aided Detector Design: a project to develop standards
   and methods to allow cooperation between HEP detector
   designers working in different institutes.


Cadence Design Systems

   The "world leader" in {design automation} software and
   services that accelerate and advance the process of designing
   electronic systems.

   {Home (http://www.cadence.com)}


CADET

   Computer Aided Design Experimental Translator.

   [Sammet 1969, p. 683].

   (29 Nov 1994)


CADRE

    The US {software engineering} vendor which merged
   with {Bachman Information Systems} to form {Cayenne Software}
   in July 1996.

   (08 Feb 1998)


CAE

   1. {Common Applications Environment}.

   2. {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].

   (28 Oct 1994)


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

    (Chris And John's Own LanguagE) A {dataflow}
   language developed by Chris Hankin  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)].

   (08 Nov 1994)


CAL

   1. {Computer Assisted Learning}.

   2. {Course Author Language}.

   (21 Mar 1997)


Calc

   An extensible, advanced desk calculator and mathematical tool
   written in {Emacs Lisp} by Dave Gillespie
   .  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.

   Version: 2.02.

   FTP calc-2.02.tar.z from your nearest {GNU archive site}.

   (08 Nov 1994)


calculator

   (Cambridge) {bitty box}.

   (22 Feb 1995)


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].

   (29 Nov 1994)


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.

   (11 Jan 1995)


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
   , {Imperial College}.

   ["Functional Programming for Loosely-coupled Multiprocessors",
   P. Kelly, Pitman/MIT Press, 1989].

   (11 Jan 1995)


Calico

   {C+@}


California State University San Marcos

   (CSUSM)

   {Home (http://coyote.csusm.edu/)}

   (21 Dec 1994)


callback

   1. A scheme used in {event-driven} programs where the program
   registers a callback handler for a certain {event}.  The
   program does not call the handler directly but when the event
   occurs, the handler is called, possibly with arguments
   describing the event.

   2. A user authentication scheme used by some computers running
   {dial-up} services.  The user dials in to the computer and
   gives his login ID 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 {PABX}s 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.


call-by-name

   (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 some code which
   will return the value of the argument and an environment
   giving the values of its {free variable}s.  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 {macro}s
   are usually passed using call-by-name.

   (29 Nov 1994)


call-by-need

    A {reduction strategy} which delays evaluation of
   function arguments until they are needed because they are
   arguments to a {primitive} function or a conditional.
   Call-by-need is one part 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).

   (27 May 1995)


call-by-reference

   An argument passing convention where the address of an
   argument variable is passed to a function or procedure, as
   opposed to where the value of the argument expression is
   passed.  Execution of the function or procedure may have
   {side-effect}s 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}.


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}


Caller ID

   (CID) A feature of some {modem}s.


calling convention

    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.

   (11 Nov 1995)


Call-Level Interface

    (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://www.jcc.com/sql_cli.html)}.

   (27 Oct 1996)


Call Unix

    (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).

   (01 Dec 1997)


Callware

    The developers of {Phonetastic}.

   (08 Dec 1996)


Call-with-current-continuation

   (call/cc) A {Lisp} control function.  call/cc takes a function
   f as its argument.  It calls f and passes it the current
   {continuation}, which is itself a function, k.  The
   continuation represents the context of the call to call/cc.
   It is a function which 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:

   	(defun f (k)
   	  (apply k 1)
   	  (apply k 2)
   	  3)

   	(print (call/cc f))

   Will print 1 2 3.

   (29 Nov 1994)


CALS

   Computer-Aided Acquisition and Logistics Support: a DoD
   standard for electronic exchange of data with commercial
   suppliers.


CAM

   {content addressable memory}


CAM-6

   Software for running {cellular automata}.  CAM-6 has been
   implemented in hardware as {CAM-PC}.

   (21 Apr 1995)


CAMAL

    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].

   (16 Feb 1995)


Cambridge Lisp

   A flavour of Lisp using BCPL.  Sources owned by Fitznorman
   partners.


Camelot 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?]

   (19 Apr 1995)


camera ready

    A final editon 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.

   (15 Nov 1996)


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)].

   (09 Nov 1994)


CAML

   1. A language for preparation of animated movies.  1976.

   (09 Nov 1994)

   2. 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}.  CAML has
   {first-class} functions, {static type inference} with
   {polymorphic} types, user-defined {variant type}s and {product
   type}s, and {pattern matching}.

   The CAML V3.1 implementation adds {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 runs on {Sun-3}, {Sun-4}, {Sony} {68000}, {Sony} {R3000},
   {Decstation}, {Macintosh} {A/UX} and {Apollo}.  It is built on
   a proprietary run-time system.

   See also {CAML Light}.

   {(ftp://ftp.inria.fr/lang/caml/)}.
   {(ftp://ftp.inria.fr/INRIA/caml/V3.1)}.

   E-mail: Pierre Weis ,
    (bugs).

   Mailing list: .

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

   ["The CAML Reference Manual", P. Weis et al, TR INRIA-ENS,
   1989].

   (20 Oct 1991)


Caml Light

   A small portable implementation of a version of {CAML} by
   Xavier Leroy  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 stream}s 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.

   {(ftp://ftp.inria.fr/lang/caml-light/)}

   E-mail: .

   Mailing list: .

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

   (06 Oct 1993)


CAM-PC

    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.

   {Home (http://www.automatrix.com/campc/index.html)}

   (21 Apr 1995)


Campus Wide Information System

   (CWIS) Information and services made publicly available at
   university sites via {kiosk}s running interactive computing
   systems, possibly via campus networks.  Services routinely
   include directory information, calendars, {bulletin board}s
   and {database}s.

   (09 Nov 1994)


CAN

   {Cancel}


can

   To abort a job on a {time-sharing} system.  Used especially
   when the person doing the deed is an operator, as in "canned
   from the {console}".  Frequently used in an imperative sense,
   as in "Can that print job, the LPT just popped a sprocket!"
   Synonymous with {gun}.  It is said that the ASCII character
   with {mnemonic} CAN (0011000) was used as a kill-job character
   on some early OSes.  Alternatively, this term may derive from
   mainstream slang "canned" for being laid off or fired.


Canada

   Country with {domain} "ca".

   (06 Apr 1995)


Cancel

    (CAN, Control-X) {ASCII} character 24.

   (28 Jun 1996)


Cancelm00se

   {Cancelmoose}


Cancelmoose

    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.

   (14 Sep 1997)


candidate key

    One of several possible attributes or combinations
   of attributes which can be used to uniquely identify a body of
   information (a "{record}").

   (26 Apr 1997)


Candle

   Part of the {Scorpion} environment development system.

   (09 Nov 1994)


candygrammar

   A programming-language grammar that is mostly {syntactic
   sugar}; the term is also a play on "candygram".  {COBOL},
   {Apple Computer}'s {Hypertalk} language, and a lot of the
   so-called "{4GL}" database languages share this property.  The
   usual intent of such designs is that they be as English-like
   as possible, on the theory that they will then be easier for
   unskilled people to program.  This intention comes to grief on
   the reality that syntax isn't what makes programming hard;
   it's the mental effort and organisation required to specify an
   algorithm precisely that costs.  Thus the invariable result is
   that "candygrammar" languages are just as difficult to program
   in as terser ones, and far more painful for the experienced
   hacker.

   [The overtones from the old Chevy Chase skit on Saturday Night
   Live should not be overlooked.  This was a "Jaws" parody.
   Someone lurking outside an apartment door tries all kinds of
   bogus ways 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.  Note that, in many circles,
   pretty much the same ones who remember Monty Python sketches,
   all it takes is the word "Candygram!", suitably timed, to get
   people rolling on the floor. - GLS]


canonical

   (Historically, "according to religious law")

   1.  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.  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".

   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".

   (22 Dec 1994)


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.

   (29 Nov 1994)


canonicity

    The extent to which something is {canonical}.

   (03 Mar 1995)


C (ANSI)

   {ANSI C}


can't happen

    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}.

   (10 May 1996)


Cantor

   1.  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.  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)].

   (14 Mar 1997)


CAP

   1.  {Columbia AppleTalk Package}.

   2.  {Carrierless Amplitude/Phase Modulation}.

   3.  {Competitive Access Provider}


capacitor

    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.

   (12 Apr 1995)


CAPI

   1. {Calendar Application Programming Interface}.

   2.  {Cryptographic Application Programming
   Interface}.

   (11 Feb 1997)


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}.

   (22 Nov 1994)


Captain Crunch

   1.  ("Cap'n Crunch") An early 1970s
   {hacker}/{phreaker}.  Named after the "Cap'n Crunch" breakfast
   cereal, but alluding to "{crunch}".

   {Home (http://www.well.com/user/crunch/)}.

   2. (After the above) {wardialer}.

   3. Reportedly, a program which {crash}es a computer by
   overloading the {interrupt} {stack}.

   (16 Mar 1997)


card

   1. A circuit board.

   2. A {punched card}.

   3.  An alternative term for a {node} in a system
   (e.g. {HyperCard}, {Notecards}) in which the node size is
   limited.


Cardbox for Windows

    A database handling program, especially useful for
   scholars and librarians.

   [Details?  Features?  Developer?  URL?]

   (14 May 1997)


Cardbus

    The 32-bit version of the {PCMCIA} (PC Card) {bus}.

   [Spec?]

   (20 Aug 1996)


cardinality

    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
   number}s).

   (29 Mar 1995)


cardinal number

   The {cardinality} of some set.


CARDS

   Central Archive for Reusable Defense Software of the DoD.


card walloper

   An {EDP} programmer who grinds out {batch program}s that do
   stupid things like print people's paychecks.  Compare {code
   grinder}.  See also {punched card}, {eighty-column mind}.


Career Limiting Move

   (CLM, Sun) 1. An action endangering one's future prospects of
   getting plum projects and raises and possibly one's job: "His
   Halloween costume was a parody of his manager.  He won the
   prize for "best CLM"."

   2. Denotes extreme severity of a bug, discovered by a customer
   and obviously missed earlier because of poor testing: "That's
   a CLM bug!"

   (16 Dec 1994)


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}.

   (16 Dec 1994)


cargo cult programming

   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).


Caribou CodeWorks

    The company which sells {QTRADER}.

   Director of Marketing: Norm Larsen .

   (05 Nov 1995)


Carl Friedrich Gauss

    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}.

   (10 Apr 1995)


Carnegie Mellon University

    (CMU) A university in Pittsburgh,
   Pennsylvania.  {School of Computer Science
   (http://www.cs.cmu.edu/Web/FrontDoor.html)}.

   (23 Jun 1997)


Carriage Return

    (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".

   (24 Jun 1996)


Carrierless Amplitude/Phase Modulation

    (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.

   (08 Oct 1997)


carrier scanner

    (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.

   (16 Mar 1997)


carrier signal

    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}.

   (01 Mar 1995)


Cartesian coordinates

    (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}.

   (08 Jul 1997)


Cartesian product

    (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}.

   (01 Mar 1995)


CAS

   {Column Address Strobe}


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 {macro}s (soon to be added).
   Requires an {ANSI-C} compiler.  Ported to {MS-DOS}, {Ultrix},
   {Sun4}.  (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/)}.

   (26 Jan 1995)


cascade

   1.  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.  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.  A collection of interconneced networking
   devices, typically {hub}s, that allows those devices to act
   together as a {logical} {repeater}.

   (17 Jul 1997)


CASE

   1. {Computer Aided Software Engineering}.

   2. {Common Application Service Element}.


case

   1.  {switch statement}.

   2.  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.

   (01 Mar 1996)


case and paste

    (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.  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.

   (01 Mar 1996)


case based reasoning

    (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.

   (28 May 1996)


CASE Data Interchange Format

   (CDIF) An emerging standard for interchange of data between
   {CASE} tools.

   (03 Nov 1994)


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

   (CIS) A committee formed to discuss {CASE} tool integration
   standards related to {ATIS}.

   (25 Oct 1994)


CASE*Method

   An analysis and design method from {Oracle} targeted at
   information management applications.

   (28 Oct 1994)


case sensitive

   {case sensitivity}


case sensitivity

    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".

   (09 Jul 1997)


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

    Misspelling of "{cache}".

   (13 Dec 1996)


CAST

   {Computer Aided Software Testing}


cast

   An {explicit type conversion} in {C}.  For example, 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)" casts i 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.

   (16 Feb 1995)


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).


casting the runes

    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.

   (26 Dec 1997)


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).


cat

    (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.

   (29 Nov 1994)


Cat 5

   {Category 5}


catatonic

   Describes a condition of suspended animation in which
   something is so {wedged} or {hung} that it makes no response.
   If you are typing on a {terminal} and suddenly the computer
   doesn't even echo the letters back to the screen as you type,
   let alone do what you're asking it to do, then the computer is
   suffering from catatonia (possibly because it has crashed).
   Compare {buzz}.


CATE

   Computer Aided Test Engineering: CASE methods applied to
   electronics testing and linked to CAE


category

    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.

   (06 Oct 1997)


Category 5

    (Cat 5) An American Standards Institute standard
   for cables.

   [Details?  What kind of cables?]

   (06 Oct 1997)


cathode ray tube

    (CRT) An electrical device for displaying images by
   exciting phosphor dots with a scanned electron beam.  CRTs are
   found in computer {VDU}s 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 towards 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.

   (17 Nov 1994)


CATIA

    An {IBM} CAD/CAM product used heavily in the auto and
   aerospace industries.  It runs on the IBM {RS/6000} and {HP}
   platforms.

   (13 Jan 1996)


C/ATLAS

    A DoD test language.  It is a variant of {ATLAS}.

   (01 May 1995)


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.


cause-effect graphing

    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.

   (10 May 1996)


Cayenne Software

    The company formed when {CADRE} merged with {Bachman
   Information Systems} in July 1996.

   {Home (www.cayennesoft.com)}.

   [Details?]

   (06 Feb 1998)


CAYLEY

    A {symbolic mathematics} system for {group
   theory} written by John Cannon of the {University of Sydney},
   Australia in 1976.

   ["An Introduction to the Group Theory Language CAYLEY", J.
   Cannon, Computational Group Theory, M.D. Atkinson ed, Academic
   Press 1984, pp. 148-183].

   Current version: V3.7 for Sun, Apollo, VAX/VMS.

   E-mail: .

   (12 Apr 1995)


cb

   {C Beautifier}


CBASIC

   A {BASIC} compiler by Gordon Eubanks, now at {Symantec}.  It
   evolved from/into {EBASIC}.

   (29 Nov 1994)


C-BC

   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 and
   {ANSI-C} compiler and runs under {MS-DOS} or {Unix}.

   Version 1.1.

   Posted to {alt.sources} 10 Apr 1993.

   (23 Aug 1993)


C Beautifier

   (cb) A {Unix} tool for reformatting {C} {source} code.

   {Unix manual page}: cb(1).


CBIR

    {content-based information retrieval}.

   (23 Nov 1995)


CBN

   {call-by-name}


CBR

   {case based reasoning}


CBT

   {Computer-Based Training}


CBV

   {call-by-value}


cbw

   {Crypt Breakers Workbench}


CC++

   {Compositional C++}


C/C++

   1. {Borland C/C++}.

   2. {Watcom C/C++}.

   3. Either {C} or {C++}.

   (06 Apr 1996)


CCalc

   A {symbolic mathematics} system for {MS-DOS}, available from
   {Simtel}.

   (12 Apr 1995)


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.

   (03 Nov 1994)


CCITT HIgh-Level 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?)].

   (20 Jan 1997)


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 .

   (13 Oct 1994)


ccmail

   It's written {cc:mail}.


cc:mail

    Commercial {electronic mail} software by
   {Lotus Corporation} for {Microsoft Windows}.

   (14 Mar 1995)


CCP

   {Concurrent Constraint Programming}

   Not a language, but a general approach.


CCR

   1. {condition code register}.

   2. (Database) {concurrency control and recovery}.


CCS

   1.  {Common Communication Services}.

   2.  {Calculus of Communicating Systems}.

   3.  {Computer Conservation Society}.

   4.  {Common Command Set}.

   5.  {Centi-Call Second}.

   (22 Oct 1997)


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.

   {Home (http://www.open.gov.uk/)}

   E-mail: .

   Address: Norwich, UK.

   (18 Jan 1995)


CD

   {Compact Disc}


cd

   {change directory}


CDA

   1.  {Compound Document Architecture}.

   2.  {Communications Decency Act}.


CDC

   {Control Data Corporation}


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}.

   (11 Jul 1996)


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

   {Content Data Model}


CDMA

   {Code Division Multiple Access}


CDP1802

   {RCA 1802}


CDPD

   {Cellular Digital Packet Data}


cdr

   /ku'dr/ or /kuh'dr/ [LISP] To skip past the first item from a
   list of things (generalised from the LISP operation on binary
   tree structures, which returns a list consisting of all but
   the first element of its argument).  In the form "cdr down",
   to trace down a list of elements: "Shall we cdr down the
   agenda?"  Usage: silly.  See also {loop through}.

   Historical note: 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".

   The cdr and car operations have since become bases for
   formation of compound metaphors in non-LISP contexts.  GLS
   recalls, for example, a programming project in which strings
   were represented as linked lists; the get-character and
   skip-character operations were of course called CHAR and CHDR.


CD-R

   {Compact Disc Recordable}


CD-ROM

   {Compact Disc Read-Only Memory}


CD-ROM drive

   {Compact Disc Read-Only Memory}


CD-RW

   {Compact Disc Read-Write}


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.

   (28 Oct 1994)


Cecil

   AN {object-oriented} language combining {multi-method}s 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)].

   (28 Oct 1994)


Cedar

   A superset of {Mesa}, from {Xerox PARC}, adding {garbage
   collection}, {dynamic type}s 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 {atom}s, lists, ropes ("industrial strength"
   strings), conditions.  Multi-processing features include
   {thread}s, {monitor}s, {signal}s 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)].

   (26 Jan 1995)


CEEMAC+

   Graphics language for DOS 3.3 on {Apple II}.


CEI-PACT

   Central European Initiative on Parallel Computation.


CELIP

   A cellular language for {image processing}.

   ["CELIP: A cellular Language for Image Processing",
   W. Hasselbring , Parallel
   Computing 14:99-109 (1990)].

   (05 Dec 1994)


cell

    {ATM}'s term for a {packet}.

   (21 Aug 1996)


Cellang

   See {Cellular}.


CELLAS

   CELLular ASsemblies.

   A {concurrent} {block-structured} language.

   [Mentioned in "Attribute Grammars", LNCS 323, p.97].

   (05 Dec 1994)


Cello

   {World-Wide Web} {browser} {client} for {IBM PC}s.  Runs under
   {Microsoft Windows}.


CELLSIM

   A program for modeling populations of biological cells.

   ["CELLSIM II User's Manual", C.E. Donaghey, U Houston (Sep
   1975)].

   (05 Dec 1994)


Cellular

   A system for {cellular automata} programming by J Dana Eckart
    Version 2.0 includes a
   {byte-code compiler}, {run-time system} and a viewer.

   Posted to comp.sources.Unix, volume 26.

   See also {Cellang}.

   (03 Apr 1993)


cellular automata

   {cellular automaton}


cellular automaton

    (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}.

   (03 Mar 1995)


Cellular Digital Packet Data

   (CDPD) A wireless standard providing two-way, 19.2 kbps
   {packet} data transmission over exisiting {cellular telephone}
   channels.

   (05 Dec 1994)


Cellular Neural Network

    (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 {algorithm}s 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].

   (27 Apr 1995)


CELP

    Computationally Extended Logic
   Programming.

   ["Computationally Extended Logic Programming", M.C. Rubenstein
   et al, Comp Langs 12(1):1-7 (1987)].

   (27 Apr 1995)


CEN

   Conseil Européen pour la Normalisation.

   A body coordinating {standard}isation activities in the EEC
   and EFTA countries.

   (14 Dec 1994)


CENELEC

   CEN-electricite.


Centi-Call Second

    (CCS) A unit used (in North America) to quantify the
   aggregate of 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.

   (22 Oct 1997)


central office

    The place where telephone companies terminate
   customer lines and locate switching equipment to interconnect
   those lines with other networks.

   (20 Mar 1995)


central processing unit

    (CPU, processor) The part of a
   computer which controls all the other parts.  The CPU fetches
   instructions from memory and decodes them.  This may cause it
   to transfer data to or from memory or to activate
   {peripherals} to perform input or output.

   A {parallel computer} has several CPUs which may share other
   resources such as memory and peripherals.

   The {CPU Info Center} lists many kinds of CPU.

   (30 Oct 1996)


Centronics

   A parallel interface for printers, found on many
   {microcomputer}s.

   [Pin-out?  Origin?]

   (16 Feb 1995)


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.

   {Home (http://www.cwi.nl/)}

   {(ftp://ftp.cwi.nl/pub/)}.


century meltdown

   {Year 2000}


cepstra

   {cepstrum}


cepstrum

    (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 {speach 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?]

   (07 Jan 1997)


CEPT

   {Comite Europeen des Postes et Telecommunications}


Ceres workstation Oberon System

   A complete {Oberon} compiler written in {Oberon}.  Source to
   most of the complete Ceres workstation Oberon System,
   including the {NS32032} {code generator} is available.  Less
   of the low level system specific code is available.

   {(ftp://neptune.ethz.ch/Oberon/)}

   (14 Dec 1994)


CERN

   The European Laboratory for Particle Physics.


CERNLIB

   The CERN Program Library.


CERT

   {Computer Emergency Response Team}


Certificate Authority

    (CA) An entity that attests to the
   identity of a person or an organisation.  A Certificate
   Authority might be an external company such as {VeriSign} that
   offers 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.

   {Netscape Certificate Server} enables an organisation to act
   as its own Certificate Authority.

   {(http://home.netscape.com/comprod/server_central/support/faq/certificate_faq.html#11)}.

   [Connection with cryptography?]

   (29 Sep 1996)


CESP

   Common ESPECIALLY AI Language Inst, Mitsubishi -
   {object-oriented} extension of {Prolog}, a {Unix}-based
   version of {ESP}.

   E-mail: .

   (14 Dec 1994)


CESSL

   CEll Space Simulation Language.

   A language for simulating cellular space models.

   ["The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS
   Dept, U Michigan (Sept 1971)].

   (14 Dec 1994)


cextract

    A {C} {prototype} extractor by Adam Bryant
   .  It 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.

   (03 Nov 1992)


CFD

   Computational Fluid Dynamics.

   A {FORTRAN}-based parallel language for the {Illiac IV}.

   (29 Nov 1994)


cforth

   A {Forth} {interpreter}.

   Posted to comp.sources.unix volume 1.

   (29 Nov 1994)


cfortran.h

   A transparent, machine independent interface between {C} and
   {FORTRAN} routines and global data by Burkhard Burow
   . It provides {macro}s 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/)}

   It 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.

   (12 Apr 1992)


CFP

   1. {Constraint Functional Programming}.

   2. {Communicating Functional Processes}.

   3. Call For Papers (for a conference).


CFP92

   {SPEC CFP92}


CGA

   {Color Graphics Adapter}


CGGL

   ("seagull") Code-Generator Generator Language.  A machine
   description language based on modeling 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)].

   (24 Oct 1994)


CGI

   1. {Common Gateway Interface}.

   2. A French software engineering vendor in the US.

   3. {Computer Generation Incorporated}

   (11 Feb 1997)


cgi-bin

   {Common Gateway Interface}


CGI Joe

    (From "GI Joe") A hard-core {CGI} script
   programmer with all the social skills and charisma of a
   plastic action figure.

   (30 Mar 1997)


CGM

   {Computer Graphics Metafile}


CGOL

   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].


cgram

   An {ANSI C} {LL1} or {LL2} {grammar} written in {Scheme} by
   Mohd Hanafiah Abdullah .  A program
   (f-f-d.s) extracts the FIRST/FOLLOW/DIRECTOR sets.

   {(ftp://primost.cs.wisc.edu/pub/comp.compilers/cgram-ll1.Z)}


chad

    /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 correspondent believes "chad" derives from the {Chadless
   keypunch}.

   (18 Jul 1997)


chad box

    ({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.

   (20 Nov 1996)


Chadless keypunch

    (Named after its inventor) 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.
   It was clear that if the Chadless keypunch didn't make them,
   then the stuff that other keypunches made had to be "{chad}".

   (12 Feb 1997)


chain

   1.  (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.  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.  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}).

   (03 Feb 1995)


Challenge-Handshake Authentication 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 grater security then {PAP}.

   CHAP is defined in {RFC} 1334.

   (05 Mar 1996)


Chalmers University of Technology

   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.

   {Home (http://www.chalmers.se/Home-E.html)}

   Address: S-412 96 Göteborg, SWEDEN.

   Telephone: +46 (31) 772 10 00.  Fax: +46 (31) 772 38 72.

   (16 Feb 1995)


change management

   A set of techniques that aid in evolution, composition and
   policy management of the design and implementation of an
   object or system.

   (16 Feb 1995)


channel


    (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).

   (25 Jan 1998)


channel hopping

   To rapidly switch channels on {IRC}, or a {GEnie} chat board,
   just as a social butterfly might hop from one group to another
   at a party.  This term may derive from the TV idiom, "channel
   surfing".

   (29 Nov 1994)


channel op

    /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.

   (08 Jan 1998)


channel service unit

   (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.

   (30 Jan 1995)


channel service unit/data service unit

    (CSU/DSU) 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.

   (28 Feb 1995)


chan op

   {channel op}


chaos

   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
    and D. Lynn Holt
   .
   {(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).

   (07 Feb 1995)


CHAP

   {Challenge-Handshake Authentication Protocol}


char

    /keir/ or /char/; rarely, /kar/ character.
   Especially used by {C} programmers, as "char" is {C}'s
   typename for character data.

   (29 Nov 1994)


character

    A component of a natural {data hierarchy} which
   represents one letter or symbol of input-output with the user.
   On modern architectures, letters are usually represented in a
   {character set} such as {ASCII} using the least significant
   seven bits of a {byte} or {word}.

   (30 Oct 1995)


character encoding

    Generally treated as synonymous with {character
   set}, although D. Connolly's "{'Character Set' Considered
   Harmful
   (http://www.w3.org/pub/WWW/MarkUp/html-spec/charset-harmful.html)}"
   draws a fine distiction between the two terms.

   [What distiction?]

   (09 Apr 1997)


characteristic function

    The characteristic function of set returns True
   if its argument is an element of the set and False otherwise.

   (13 Apr 1995)


character set

    One of several standard collections of
   characters, or a non-standard collection selected for a
   particular need.  The most widely used character set is
   {ASCII}; others such as {ISO Latin 1} and {Kanji} are becoming
   more common while {EBCDIC} and {Unicode} are less common.

   A character set may include letters, digits, punctuation,
   {control codes}, graphics, mathematical symbols, and other
   signs.  Each character in the set is represented by a unique
   character code, which is a {binary} number used for storage
   and transmission.  For example, the letter "A" has code 65 in
   the ASCII set.  Different sets have different mappings between
   codes and characters.

   Some but not all character sets include an {escape character}
   which indicates that the following character(s) are to be
   treated specially.  Escape sequences can be used to extend a
   character set to include non-standard meanings within the
   domain where they are defined and used, but lead to problems
   when transmitted to equipment without the appropriate
   software.

   In order for a computer to handle a particular character set,
   it must be possible to enter all the characters from the
   keyboard and to display them on the screen or printer.  Some
   computers are able to switch between several character sets,
   which allows both compatibility with other systems and the
   representation of multiple languages.  A few systems are
   unable to use sets with more than 128 characters (see
   {eight bit clean}).

   A character set defines the representation of characters as
   binary data whereas a {font} defines how characters appear on
   the screen or printer.

   (21 Jun 1996)


character set identifier

    (CSID) (IBM) A number that identifies a {character
   set}.

   (21 Mar 1995)


Charge-Coupled Device

   (CCD) A semiconductor technology used to build light-sensitive
   electronic devices such as cameras and image scanners.  Such
   devices may 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.

   (04 Jan 1995)


CHARITY

   A {functional language} based purely on {category theory} by
   Cockett, Spencer and Fukushima, 1990-1991.

   A version for {Sun4} is available from Tom Fukushima
   .

   ["About Charity", J.R.B. Cockett  et
   al].

   (29 Nov 1994)


charityware

   /cha'rit-ee-weir`/  Synonym {careware}.


Charles Babbage

    The british inventor known to some as the "Father of
   Computing" for his contributions to the basic design of the
   computer through his {Analytical machine}.  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].

   (22 Feb 1996)


CHARM

   An explicitly parallel programming language based on {C}, for
   both shared and nonshared {MIMD} computers.

   {(ftp://a.cs.uiuc.edu/pub/CHARM)}

   Mailing list: .

   ["The CHARM(3.2) Programming Language Manual", UIUC (Dec
   1992)].


CHARM++

   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 .

   [TR 1796, UIUC].

   (29 Nov 1994)


Charme

   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}.

   E-mail: .

   ["Charme Reference Manual", AI Development Centre, Bull,
   France 1990].

   (15 Nov 1994)


CHARYBDIS

   A {Lisp} program to display mathematical expressions.  It is
   related to {MATHLAB}.

   [Sammet 1969, p. 522].

   (15 Nov 1994)


chase pointers

   1. To go through multiple levels of indirection, as in
   traversing a linked list or graph structure.  Used especially
   by programmers in {C}, where explicit pointers are a very
   common data type.

   See {dangling pointer} and {snap}.

   2. (Cambridge) "pointer chase" or "pointer hunt": The process
   of going through a {core dump}, interactively or on a large
   piece of paper printed with {hex} {runes}, following dynamic
   data-structures.  Used only in {debugging}.

   (11 May 1995)


CHASM

   CHeap ASseMbler.

   A {shareware} {assembler} for {MS-DOS}.

   (15 Nov 1994)


chat

    Any system that allows any
   number of logged-in users to have a typed, real-time, on-line
   conversation, either by all users logging into the same
   computer, or more commonly nowadays, 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 well known chat systems to date (1998) include {IRC},
   {ICQ} and {Palace}.

   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., {re}, {BCNU}, {BBL}, {BTW}, {CUL},
   {FWIW}, {FYA}, {FYI}, {IMHO}, {OTT}, {TNX}, {WRT}, {WTF},
   {WTH}, {}, {}, {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 jargan 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; specifically, MUD
   respondents report use of {BBL}, {BRB}, {LOL}, {b4}, {BTW},
   {WTF}, {TTFN}, and {WTH}.  The use of "{re}" or "rehi" is also
   common; in fact, MUDders are fond of "re-" compounds and will
   frequently "rehug" or "rebonk" (see {bonk/oif}) people.  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://www.suck.com/daily/96/10/23/)}.

   (25 Jan 1998)


chat room

   {channel}


cheapernet

    (Or "thinnet") A colloquial term for thin-wire
   {Ethernet} ({10base2}) that uses {RG58} {coaxial cable}
   instead of the full-spec "Yellow Cable".

   (28 Mar 1995)


checkdigit

   A one-digit {checksum}.


Checkout Test language

   (CTL)

   ["Checkout Test Language: An Interpretive Language Designed
   for Aerospace Checkout Tasks", G.S. Metsker, Proc FJCC 33(2)
   (1968)].

   (14 Nov 1994)


checkpoint

   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 systems}s 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.

   (07 Feb 1995)


checksum

    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}.

   (01 Mar 1996)


chemist

   (Cambridge) Someone who wastes computer time on {number
   crunching} when you'd far rather the computer were doing
   something more productive, such as 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.

   (07 Feb 1995)


Chen

   {Peter Chen}


CHEOPS

   A satellite-based batch data dissemination project between
   {CERN} and member state institutes.


Chernobyl packet

   /cher-noh'b*l pak'*t/ A network packet that induces a
   {broadcast storm} and/or {network meltdown}, 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 Ether and
   IP address set as the respective broadcast addresses for the
   subnetworks being gated between.  Compare {Christmas tree
   packet}.


chess

    A two-player {game} with {perfect information}.

   {Usenet} newsgroup: {news:rec.games.chess}.

   See also {Internet Chess Server}.

   (25 Mar 1995)


CHI

   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).


Chicago

   {Windows 95}


chicken head

   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.


chicklet keyboard

    It's spelled "{chiclet keyboard}".

   (16 May 1997)


chiclet keyboard

    A {keyboard} with a small, flat rectangular or
   lozenge-shaped rubber or plastic keys that look like pieces of
   chewing gum.  (Chiclets is the brand name of a variety of
   chewing gum that does in fact resemble the keys of chiclet
   keyboards).  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.

   (16 May 1997)


child process

    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.

   (22 Nov 1997)


child record

    A {record} lower in the hierarchical tree than a
   parent record; it is also directly liked to the parent and
   hierarchical {database}s.

   (13 Apr 1995)


child version

   A version of a version.  See {change management}.


CHILI

   D.L. Abt.  Language for systems programming, based on ALGOL 60
   with extensions for structure and type declarations.  "CHILI,
   An Algorithmic Language for Systems Programming", CHI-1014,
   Chi Corp (Sep 1975).


CHILL

   {CCITT HIgh-Level Language}


Chimera

   A modular, {X Window System}-based {World-Wide Web} {browser}
   for {Unix}.  Chimera uses the {Athena} {widget} set so {Motif}
   is not needed.  Chimera supports forms, inline images, {TERM},
   {SOCKS}, {proxy server}s, {Gopher}, {FTP}, {HTTP} and local
   file accesses.  Chimera can be extended using external
   programs.  New {protocol}s 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)}.

   {Home (http://www.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.

   (08 Nov 1994)


chine nual

   /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.

   (02 Dec 1994)


Chinese Army technique

   {Mongolian Hordes technique}


CHIP

   1. A early system on the {IBM 1103} or 1103A.

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

   (15 Nov 1994)

   2. {Constraint Handling In Prolog}.


chip

   {integrated circuit}


CHIP-48

   A reimplementation of {CHIP-8} for the {HP-48} calculator by
   Andreas Gustafson .

   Posted to {news:comp.sys.handhelds} in Sep 1990.

   {(ftp://vega.hut.fi/pub/misc/hp48sx/asap)}

   (02 Dec 1994)


CHIP-8

   

   A low-level language (really a high-level {machine code})
   developed at {RCA} in the late 1970s for video games on
   computers using {RCA}'s {CDP1802} processor.

   An {interpreter} for the {Amiga} is available by
   {(ftp://ftp.cso.uiuc.edu/pub/amiga/fish/f5/ff537/CHIP8.lzh)}.

   (02 Dec 1994)


chip box

   {chad box}


Chip Jewelry

    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."

   (30 Mar 1997)


Chip Scale Packaging

    (CSP) Surface Mount International attendees debated
   chip scale technologies as system manufacturers seek new
   levels of package miniaturization for chip-on-board, flip chip
   and multichip modules.  Technical and marketing gurus
   furthered the technical debate by focussing on which chip
   scale packaging schemes would be the most cost-effective for
   future packages designated for high volume consumer
   applications.  Bare chip package supporters noted that
   mainstream circuitry is readily available in known good die
   (KGD) from a number of suppliers. Traditional ball grid array
   packages received strong support for current high volume and
   high density manufacturing needs. Chip scale packages (CSP)
   provide pre-speed-sorted,pre-tested and pre-packaged die
   without requiring specialized testing. CSP supporters improved
   their position with ChipScale's announcement that Motorola
   will license its Micro SMT packaging technology.

   ["Chip scale packaging gains at SMI. (Surface Mount
   International)", Bernard Levine, Electronic News (1991), Sept
   4, 1995 v41 n2081 p1(2)].

   [But what is it?]

   (09 Jul 1996)


chip set

    A collection of {integrated circuit}s that are
   designed to be used together for some specific purpose.
   E.g. control circuitry in an {IBM PC}.

   (27 Mar 1995)


Chips & Technologies

    An {integrated circuit} design company.  They
   produce {IBM PC} {chipset}s, among other things.

   Address: Silicon Valley, California, USA.

   (08 Apr 1995)


CHISEL

   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].


chmod

    ("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

   (31 Jan 1995)


CHOCS

   A generalisation of {CCS}.

   ["A Calculus of Higher-Order Communicating Systems",
   B. Thomsen, 16th POPL pp.143-154 (1989)].


choke

   1. To reject input, often ungracefully.  "NULs make System V's
   "lpr(1)" choke."  "I tried building an {EMACS} binary to use
   {X}, but "cpp(1)" choked on all those "#define"s."  See
   {barf}, {gag}.

   2. [MIT] More generally, to fail at any endeavor, but with
   some flair or bravado; the popular definition is "to snatch
   defeat from the jaws of victory."


chomp

    To {lose}; specifically, to chew on something of
   which more was bitten off than one can.  Probably related to
   gnashing of teeth.

   See {bagbiter}.

   A hand gesture commonly accompanies this.  To perform it, hold
   the four fingers together and place the thumb against their
   tips.  Now open and close your hand rapidly to suggest a
   biting action (much like what Pac-Man does in the classic
   video game, though this pantomime seems to predate that).  The
   gesture alone means "chomp chomp" (see {Verb Doubling}).  The
   hand may be pointed at the object of complaint, and for real
   emphasis you can use both hands at once.  Doing this to a
   person is equivalent to saying "You chomper!"  If you point
   the gesture at yourself, it is a humble but humorous admission
   of some failure.  You might do this if someone told you that a
   program you had written had failed in some surprising way and
   you felt dumb for not having anticipated it.

   (01 Jun 1996)


CHOP

   {channel op}


Chop

   A {code generator} by Alan L. Wendt 
   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}.  Chop can currently compile and run
   small test programs on the {VAX}.  The {NS32k} and {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].

   (28 Apr 1993)


Chorus

   A distributed {operating system} developed at {INRIA}.


Christmas tree

   A kind of RS-232 line tester or breakout box featuring rows of
   blinking red and green LEDs suggestive of Christmas lights.


Christmas tree packet

   A packet with every single option set for whatever protocol is
   in use.  See {kamikaze packet}, {Chernobyl packet}.  (The term
   doubtless derives from a fanciful image of each little option
   bit being represented by a different-coloured light bulb, all
   turned on.)


chrome

    (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".

   (19 Sep 1997)


chroot

    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.

   (08 Dec 1996)


CHRP

   {PowerPC Platform}


chug

    To run slowly; to {grind} or {grovel}.  "The disk is
   chugging like crazy."

   (25 Mar 1995)


Church, Alonzo

   {Alonzo Church}


Church integer

   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}.

   (29 Nov 1994)


Church of the SubGenius

    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}.

   {Home (http://sunsite.unc.edu/subgenius/slack.html)}

   (02 Jan 1996)


Church-Rosser Theorem

   This property of a {reduction} system 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.

   (25 Jan 1995)


CI$

   CIS, {CompuServe Information Service}.  Also {Compu$erve}.
   The dollar sign refers to CompuServe's rather steep line
   charges.  Often used in {sig block}s just before a CompuServe
   address.

   (25 Jan 1995)


CICERO

   Control Information system Concepts based on Encapsulated
   Real-time Objects.

   A {CERN} {DRDC} proposal.

   (25 Jan 1995)


CICS

   {Customer Information Control System}


CID

   {Caller ID}


CIDR

   {Classless Inter-Domain Routing}


CIEL

   An {object-oriented} {Prolog}-like language.

   ["CIEL: Classes et Instances En Logique", M. Gandriau, Thesis
   ENSEEIHT (1988)].

   (25 Jan 1995)


CIF

   Caltech Intermediate Form.

   Geometry language for VLSI design, in which the primitives are
   coloured rectangles.

   ["Introduction to VLSI Systems", Mead & Conway, A-W 1980,
   Section 4.5].

   (25 Jan 1995)


Cigale

   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).


CIL

   1. {Component Integration Laboratories}.

   2. Common Intermediate Language.

   ["Construction of a Transportable, Milti-Pass Compiler for
   Extended Pascal", G.J. Hansen et al, SIGPLAN Notices
   14(8):117-126 (Aug 1979)].

   (24 Oct 1994)


CIM

   {Computer Integrated Manufacturing}


CIMS PL/I

    A {PL/I} subset from the Courant Institute of
   Mathematical Sciences.

   ["CIMS PL/I", P.W. Abrahams, Courant Inst].

   (15 Dec 1997)


Cinderella Book

    "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}.

   (03 Dec 1996)


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 .

   (14 May 1993)


ciphertext

    Text which has been encrypted by some
   {encryption} system.

   Opposite: {plaintext}.

   (27 Oct 1994)


CIP-L

   CIP Language.  (CIP stands for Computer-aided Intuition-guided
   Programming.)  Wide-spectrum language for incremental program
   transformation.  There are ALGOL-like and Pascal-like
   variants.

   ["The Munich Project CIP, v.I: The Wide Spectrum Language
   CIP-L", LNCS 183, Springer 1984.  Version: CIP85].


CIR

   {Committed Information Rate}


CIRCAL

   ["CIRCAL and the Representation of Communication, Concurrency
   and TIme", G.J. Mitre, ACM TOPLAS 7(2):270-298 (1985)].


circuit switched

   Using {circuit switching}.


circuit switching

   A communications paradigm in which a dedicated communication
   path is established between the sender and receiver along
   which all {packet}s travel.  The telephone system is an
   example of a circuit switched network.  Also called
   {connection-oriented}.  Contrast {connectionless}, {packet
   switching}.


Cirrus Logic

    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).

   {Home (http://www.cirrus.com/)}.

   [Other products?]

   (13 Oct 1996)


CIS

   1.  {Case Integration Services}.

   2.  {Cooperative Information System}.


CISC

   {Complex Instruction Set Computer}


Cisco Systems, Inc.

    {Ethernet} hardware manufacturers.

   {Home (http://www.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.

   (19 Apr 1995)


CISI

   A French software house.


CITRAN

   {Caltech}'s answer to {MIT}'s {JOSS}.

   [Sammet 1969, p.217].


CityScape

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

   E-Mail: .

   Address: CityScape Internet Services, 59 Wycliffe Rd.,
   Cambridge, CB1 3JE, England.  Telephone: +44 (1223) 566 950.

   (08 Nov 1994)


CIX

   1.  {Commercial Internet Exchange}.

   2.  {Compulink Information eXchange}.

   (16 Jul 1997)


CJK

    In {internationalisation}, a collective term for
   Chinese, Japanese, and Korean.

   These languages all share the fact that their writing systems
   are based partly on {Han characters} (i.e., "hanzi" or
   "{kanji}"), which are complex enough of a system to 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.

   {(ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/cjk.inf)}.

   (16 Jul 1997)


CJKV

    {CJK} plus Vietnamese, which, like the other three
   Asian languages, requires 16-bit {character encodings}.
   Vietnamese, however, does not use {Han characters}.

   (16 Jul 1997)


CL

   Control Language.

   The batch language for {IBM RPG}/38, used in conjunction with
   {RPG III}.

   See also {OCL}.

   (08 Nov 1994)


CLAM

    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].

   (08 Nov 1994)


C Language Integrated Production System

    (CLIPS) A language produced by Gary Riley of NASA
   {JSC} in Houston, Texas, for developing {expert system}s, 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
    (512) 258-0785.

   Versions include CLIPS 5.1, CLIPS/Ada 4.3 and CLIPS6.0 (see
   {PCLIPS}).

   {Home (http://www.jsc.nasa.gov/~clips/CLIPS.html)}

   E-mail: .

   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/)}.

   Mailing list: .

   ["Expert Systems: Principles and Programming", Joseph
   Giarratano and Gary Riley, PWS Publ 1994, ISBN 0-534-93744-6].

   (16 Dec 1994)


Clarion

   A {fourth generation language} for {MS-DOS}.

   (09 Nov 1994)


CLASP

   Computer Language for AeronauticS and Programming.

   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].

   (13 Oct 1994)


class

   1.  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.  See {type class}.

   3.  One of three types of {Internet addresses}
   distinguished by their most significant bits.

   3.  A language developed by the {Andrew Project}.
   It was one of the first attempts to add {object-oriented}
   features to {C}.

   (01 May 1995)


class hierarchy

    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}.

   (06 Aug 1997)


classic

    An adjective used before or after a noun to describe
   the original version of something.  This construction is
   especially used of product series in which the newer versions
   are considered worse than the older ones.

   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.

   (27 Oct 1996)


Classic-Ada

   An {object-oriented} extension to {Ada}, said to be like
   {Smalltalk}.  It is implemented as an {Ada} {preprocessor}.

   (05 Dec 1994)


classical logic

    Non-{intuitionist logic}.

   (13 Apr 1995)


Classic C

   /klas'ik C/ (Or "C Classic", a play on "Coke Classic") The {C}
   programming language as defined in the first edition of {K&R},
   with some small additions.  It is usually known as "{K&R C}".
   The name came into use while C was being standardised by the
   {ANSI X3J11} committee.

   See also {classic}.


Classless Inter-Domain Routing

    (CIDR) /sid*r/ A scheme which allocates blocks of
   {Internet addresses} in a way that allows summarisation into a
   smaller number of {routing table} entries.

   A CIDR block is a block of {Internet addresses} assigned to an
   {Internet Service Provider} (ISP) by the {Internic}.

   CIDR was introduced to enable the use of more sophisticated
   {routing} protocols such as {OSPF}.

   See {RFC 1467}, {RFC 1518}, {RFC 1519} and {RFC 1520}.

   [Is this true?  Relation to classes?]

   (06 Mar 1997)


class library

   A library of reusable {class}es for use with an
   {object-oriented programming} system.

   (05 Dec 1994)


Class Oriented Ring Associated 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].

   (30 Nov 1994)


Class-Relation Method

   A design technique based on the concepts of {object-oriented
   programming} and the {Entity-Relationship model} from the
   French company {Softeam}.

   (05 Dec 1994)


Clean

    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}.

   {Home (http://www.cs.kun.nl/~clean/)}.  E-mail:
   .  Mailing list: .

   ["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].

   (08 Nov 1995)


clean

   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."

   (12 Dec 1994)


Cleanroom

   A software development approach aimed at producing software
   with the minimum number of errors.

   (12 Dec 1994)


CLEAR

   A {specification language} based on {initial algebra}s.

   ["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].

   (03 Nov 1994)


clear box testing

   {white box testing}


CLEO

   Clear Language for Expressing Orders.

   A language developed by {ICL} in the 1960s and used until
   early 1972 on {Leo} III {mainframe}s.

   (03 Nov 1994)


CLHEP

   A {C++} {class library} for high energy physics
   {application}s.

   (12 Dec 1994)


CLI

   1.  {Command Line Interface}.

   2.  {Call-Level Interface}.

   (04 Mar 1997)


CLiCC

   A {Common Lisp} to {C} compiler by Heinz Knutzen
   , Ulrich Hoffman
    and Wolfgang Goerigk
   .  CLiCC is meant to be used as a
   supplement to existing {CLISP} systems for generating portable
   applications.  Target {C} code must be linked with 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/)}

   (04 Jan 1994)


click

   What the user does when he presses 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}.

   (14 Mar 1995)


client

    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.

   (27 Oct 1997)


client-server

    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].

   (25 Jan 1998)


client/server

   {client-server}


client-server model

   {client-server}


Client To Client Protocol

    (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.

   (12 Apr 1995)


C++Linda

   ["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].

   (12 Dec 1994)


C-Linda

   The most widely used variant of {Linda}, with {C} as the base
   language.  It is available from Sci Comp Assocs
   .

   (12 Dec 1994)


CLIP

   1. {Compiler Language for Information Processing}.

   2. {Common LISP in Parallel}.


CLiP

   A documentation extractor by Eric W. van Ammers
   .  CLiP recognises a particular style of
   comments.  This style can be adjusted to suit virtually any
   source 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/)}

   (18 Nov 1993)


clipboard

    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.

   (23 Aug 1996)


Clipper

   1.  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://www.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.

   (25 Mar 1995)


CLIPS

    {C Language Integrated Production System}.


clique

    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?]

   (22 Sep 1996)


CLISP

   1. {Conversational LISP}.

   2. A {Common Lisp} implementation by Bruno Haible
    of {Karlsruhe
   University} and Michael Stoll 
   of {Munich University}, both in Germany.  CLISP includes an
   {interpreter}, {bytecode compiler}, {run-time library} and
   editor and needs only 1.5 MB of {RAM}.  German and English
   versions are available, French soon.

   Packages running in CLISP include {PCL} and {CLX} on {Unix}
   machines.  A native subset of {CLOS} is included.

   Version 1993/10/06 conforms to {CLtL1} and parts of {CLtL2}
   and is distributed under the {GNU} {General Public License}.

   CLISP runs on {Atari}, {Amiga}, {MS-DOS}, {OS/2}, {Linux},
   {Sun4}, {Sun386i}, {HP90000}/800 and others.

   {(ftp://ma2s2.mathematik.uni-karlsruhe.de/pub/lisp/clisp)}

   Mailing list: 
   (send "subscribe clisp-list").

   (06 Oct 1993)


CLIX

   ["Overview of a Parallel Object-Oriented Language CLIX",
   J. Hur et al, in ECOOP '87, LNCS 276, Springer 1987,
   pp.265-273].

   (16 Dec 1994)


CLM

   {Career Limiting Move}


CLNP

   {ConnectionLess Network Protocol}


clobber

   To overwrite, usually unintentionally: "I walked off the end
   of the array and clobbered the stack."

   Compare {mung}, {scribble}, {trash}, and {smash the stack}.

   (16 Dec 1994)


clock

   A processor's clock or one {cycle} thereof.  The relative
   execution times of instructions on a computer are usually
   measured by number of clock cycles rather than seconds.  One
   good reason for this is that {clock rate}s 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}.

   (16 Dec 1994)


clock rate

   The fundamental rate in {cycle}s 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.

   (12 Jan 1995)


clock speed

   {clock rate}


clone

   1. An exact duplicate: "Our product is a clone of their
   product."  Implies a legal reimplementation from documentation
   or by reverse-engineering.  Also connotes lower price.

   2. A shoddy, spurious copy: "Their product is a clone of our
   product."

   3. A blatant ripoff, most likely violating copyright, patent,
   or trade secret protections: "Your product is a clone of my
   product."  This use implies legal action is pending.

   4. "PC clone:" a PC-BUS/{ISA} or {EISA}-compatible 80x86-based
   microcomputer (this use is sometimes spelled "klone" or
   "PClone").  These invariably have much more bang per buck than
   the {IBM} archetypes they resemble.

   5. In the construction "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.

   6.   A {clonebot}.

   (16 Dec 1994)


clone-and-hack coding

   A {DEC}ism for {case and paste}.

   (16 Dec 1994)


clonebot

    (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}.

   (07 Apr 1997)


CLOS

   {Common LISP Object System}


closed-box testing

   {functional testing}


closed set

    A set S is closed under an operator * if x*y is
   in S for all x, y in S.

   (16 Dec 1994)


closed term

    A term with no {free variable}s.

   (16 Dec 1994)


Clos network

   A {network} topology.

   [What topology?]

   (16 Dec 1994)


closure

   1.  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.  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. there is
   no d greater than an element which is not an element.  The
   downward closure (or "left closure") is similar but with d <=
   x and a downward closed set is one for which there is no d
   less than an element which is not an element.

   ("<=" is written in {LaTeX} as {\subseteq} and the upward
   closure of X in D is written \uparrow_{D} X).

   (16 Dec 1994)


closure conversion

   The transformation of {continuation passing style} code so
   that the only {free variables} of functions are names of other
   functions.

   See also Lambda lifting.

   (16 Dec 1994)


Clover

    A {protocoll} similar to {packet
   radio} or {AMTOR}.

   (03 Mar 1995)


clover key

   The {Macintosh} {feature key}.

   (16 Dec 1994)


CLP

   1. {Cornell List Processor}.

   2. {Constraint Logic Programming}.


CLP*

   A derivative of {Constraint Logic Programming} (CLP).

   ["CLP* and Constraint Abstraction", T. Hickey, 16th POPL,
   pp. 125-133, 1989].

   (01 Nov 1994)


CLP(R)

   Constraint Logic Programming (Real).

   A {constraint logic programming} language with {real}
   arithmetic {constraint}s developed by Joxan Jaffar
    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 superse 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 .

   ["The CLP(R) Language and System", J. Jaffar et al, IBM RR
   RC16292 (#72336) (Nov 1990)].

   (14 Oct 1992)


CLP(sigma*)

   A {constraint logic programming} language with {regular set}s.

   ["CLP(sigma*): Constraint Logic Programming with Regular
   Sets", C. Walinsky, Proc ICLP, 1989, pp.181-190].

   (16 Dec 1994)


CLR

   {Consortium for Lexical Research}


CLtL1

   A report on {Common LISP}:

   ["Common LISP: The Language", Guy L. Steele, Digital Press
   1984, ISBN 0-932376-41-X].

   (16 Dec 1994)


CLtL2

   {Aluminum Book}


CLU

   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,
   {cluster}s 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 conversion}s.  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}.

   {Exception}s 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 variable}s and multiple assignment.

   See also {Kamin's interpreters}, {clu2c}.

   ["CLU Reference Manual", Barbara Liskov et al, LNCS 114,
   Springer 1981].

   E-mail: Paul R. Johnson .

   {Versions for Sun and VAX/VMS
   (ftp://pion.lcs.mit.edu/pub/clu/)}.  {Portable version
   (ftp://mintaka.lcs.mit.edu/pub/dcurtis/)}.

   (16 Dec 1994)


clu2c

   A {CLU} to {C} compiler.

   {(ftp://ftp.is.titech.ac.jp:/pub/clu2c/)}

   E-mail: .

   (16 Dec 1994)


cluster

    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}.

   (04 Nov 1996)


Cluster 86

   A distributed {object-oriented} language by L. Shang
    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)].

   (21 Dec 1994)


clustergeeking

    /kluh'st*r-gee"king/ ({CMU}) Spending more time at a
   computer cluster doing CS homework than most people spend
   breathing.

   (21 Dec 1994)


clustering

   {cluster}


CLUT

   {colour palette}


CLX

    The {Common Lisp} library providing an
   interface to the {X Window System}, equivalent to {Xlib}.  It
   works with {CMU Common Lisp}.

   Version 5.01

   {(ftp://export.lcs.mit.edu/contrib/CLX.R5.01.tar.Z)}

   E-mail:  (bug reports).

   (26 Aug 1992)


CM

   {Configuration Management}


CMA

   {Concert Multithread Architecture} from {DEC}.


CMAY

   ["A Microkernel for Distributed Applications", R. Bagrodia et
   al, Proc 5th Intl Conf Distrib Comp Sys IEEE 1985,
   pp. 140-149].

   (21 Dec 1994)


CMC

   1.  {Computer Mediated Communication}.

   2.  {Common Mezzanine Card}.


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}.

   (21 Dec 1994)


CMOS

   Complementary metal oxide semiconductor.

   A semiconductor fabrication technology using a combination of
   n- and p-doped semiconductor material to achieve low power
   dissipation.  The idea is that 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 gates
   switches in order to charge the parasitic capacitance.

   (21 Dec 1994)


CMS

   A {code management} system from {DEC}.

   (21 Dec 1994)


CMS-2

   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)].

   (21 Dec 1994)


CMU

   {Carnegie Mellon University}


CMU CL

   {CMU Common Lisp}


CMU Common Lisp

   (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: .

   (18 Nov 1993)


CMVC

   {Configuration Management Version Control} from {IBM}.


CMYK

    cyan, magenta, yellow, key.

   A system for describing colours by giving the quantity of each
   secondary colour (cyan, magenta, yellow), along with the "key"
   (black).  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 systems are {RGB} and {HSV}.

   (22 Dec 1994)


CMZ

   A portable interactive {code management} system from {CodeME}
   S.A.R.L in use in the high-energy physics community.

   (22 Dec 1994)


CNAME

   The {canonical name} query type for {Domain Name System}.
   This query asks a DNS {server} for a {host}'s official
   {hostname}.

   (22 Dec 1994)


CNC

   {Collaborative Networked Communication}


CNET

   Centre national d'Etudes des Telecommunications.  The French
   national telecommunications research centre at Lannion.

   (22 Dec 1994)


CNI

   {Coalition for Networked Information}


CNN

    {Cellular Neural Network}.


CNRI

   Corporation for National Research Initiatives.

   A US research and development organisation in information
   processing technology.

   Address: Reston, VA, USA.

   (22 Dec 1994)


CO2

   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].

   (22 Dec 1994)


Coad/Yourdon

    An {object-oriented analysis} and design
   {methodology}, developed by {edward Yourdon} and Peter Coad.

   (07 Apr 1995)


COALA

   ["COALA: The Object Code of the Compiler Producing System", S.
   Kruszewski et al, MERA, Warsaw 1974].

   (22 Dec 1994)


coalesced sum

    (Or "smash sum") In {domain theory}, the coalesced
   sum of {domain}s 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.

   (22 Dec 1994)


Coalition for Networked Information

   (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.

   (22 Dec 1994)


coarse grain

   {granularity}


COAST

   {Cache On A STick}


coax

   {coaxial cable}


coaxial cable

    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.

   (28 Mar 1995)


COBOL

   {COmmon Business Oriented Language}


COBOL-1961 Extended

   A short-lived separation of {COBOL} specifications.

   [Sammet 1969, p. 339].

   (28 Oct 1994)


COBOL fingers

   /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.

   (22 Dec 1994)


COBRA

   Do you mean {CORBA}?  Or is there a COBRA?

   (10 May 1996)


cobweb site

    A {World-Wide Web} site that hasn't
   been updated for a long time.  A dead {web page}.

   (29 Apr 1997)


Cocktail

   {GMD Toolbox for Compiler Construction}


CoCo

    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}.

   (12 Feb 1997)


Cocol

   {Coco Language}


Coco 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].

   (09 Dec 1997)


Cocol/R

    (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].

   (09 Dec 1997)


COCOMO

   {Constructive Cost Model}


Coco/R

    A program by Hanspeter Moessenboeck
    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, and a {Java} implementation is about to
   be released.  Modula-2 versions exist as self extracting .EXE
   files for {MS-DOS}, and as tar.Z files for {Unix}.

   Version: 1.34 (13 Oct 1994)

   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:  (Subject: send
   pub/modula-2/coco/).

   E-mail: Pat Terry  (Modula/Pascal versions),
   Hanspeter Moessenboeck 
   (Oberon, Java versions), Frankie Arzu  (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].

   (09 Dec 1997)


CODASYL

   {Conference On DAta SYstems Languages}

   {Home (http://www.cbi.umn.edu/inv/codasyl.html)}.

   [Summary?]

   (18 Jun 1997)


Codd's First Normal Form

   {Normal Form}


code

    Programs, either {source code} or
   {machine code}.

   (13 Jan 1996)


Code 2.0

    A large-grain {dataflow} language with a graphical
   interface for users to draw communication structure.

   {Home (http://www.cs.utexas.edu/users/code)}

   E-mail: Emery Berger .

   ["The CODE 2.0 Parallel Programming Language", P. Newton et
   al, Proc ACM Intl Conf on Supercomput, Jul 1992].

   (13 Jan 1996)


CODEC

   {coder/decoder}


CodeCenter

   (Formerly {Saber-C}) A proprietary software development
   environment for {C} programs, offering an integrated toolkit
   for developing, testing, debugging and maintainance.

   (23 Dec 1994)


Code Division Multiple Access

   (CDMA) (Or "spread spectrum") A form of {multiplexing} where
   the transmitter encodes the signal using a {pseudo-random}
   sequence which the reciever 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.

   (15 Feb 1995)


code division multiplexing

   {Code Division Multiple Access}


code grinder

   A {suit}-wearing minion of the sort hired in legion strength
   by banks and insurance companies 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.

   See {Real World}.  Compare {card walloper}.  Contrast {real
   programmer}.

   (11 Nov 1994)


code management

   A source code management system helps program developers keep
   track of version history, releases, parallel versions etc.
   There are several in popular use.

   (23 Dec 1994)


code police

   (By analogy with George Orwell's "Thought Police" in "1984") A
   mythical team of Gestapo-like storm troopers that might burst
   into one's office and arrest one for violating programming
   style rules.  May be used either seriously, to underline a
   claim that a particular style violation is dangerous, or
   ironically, to suggest that the practice under discussion is
   condemned mainly by anal-retentive {weenie}s.  "Dike out that
   {goto} or the code police will get you!"  The ironic usage is
   perhaps more common.

   (08 Dec 1994)


coder/decoder

    (CODEC) An {integrated circuit} or other
   electronic device combining the circuits needed to convert
   digital signals to and from analog ({Pulse Code Modulation})
   form.

   (22 Jul 1997)


codes

   1.  Programs.  This usage is common among scientific
   computing people who use {supercumputer}s for heavy-duty
   {number crunching}.

   2.  Something to do with {cryptography}.

   (28 Oct 1994)


C-odeScript

    A {Liana} interpreter, embeddable in {C} and {C++}
   programs.

   (09 Mar 1995)


code segment

    ({Intel 8086} CS) The area of
   memory containing the {machine code} instructions of an
   executing {program}.  {Unix}, confusingly, calls this the
   {text segment}.  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.

   Other segments are the {data segment} and, in Unix, the {bss
   segment}.

   (21 Dec 1996)


code walk

    Stepping through {source code} as part of a
   review.

   (02 Apr 1997)


codewalker

    A program component that traverses other
   programs for a living.  {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."

   (23 Dec 1994)


CODIL

   COntext Dependent Information Language.

   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)].

   (23 Dec 1994)


codomain

   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.

   (23 Dec 1994)


coefficient of X

   Hackish speech makes heavy use of pseudo-mathematical
   metaphors.  Four particularly important ones involve the terms
   "coefficient", "factor", "index", and "quotient".  They are
   often loosely applied to things you cannot really be
   quantitative, but there are subtle distinctions among them
   that convey information about the way the speaker mentally
   models whatever he or she is describing.

   "Foo factor" and "foo quotient" tend to describe something for
   which the issue is one of presence or absence.  The canonical
   example is {fudge factor}.  It's not important how much you're
   fudging; the term simply acknowledges that some fudging is
   needed.  You might talk of liking a movie for its silliness
   factor.  Quotient tends to imply that the property is a ratio
   of two opposing factors: "I would have won except for my luck
   quotient."  This could also be "I would have won except for
   the luck factor", but using *quotient* emphasises that it was
   bad luck overpowering good luck (or someone else's good luck
   overpowering your own).

   "Foo index" and "coefficient of foo" both tend to imply that
   foo is, if not strictly measurable, at least something that
   can be larger or smaller.  Thus, you might refer to a paper or
   person as having a "high bogosity index", whereas you would be
   less likely to speak of a "high bogosity factor".  "Foo index"
   suggests that foo is a condensation of many quantities, as in
   the mundane cost-of-living index; "coefficient of foo"
   suggests that foo is a fundamental quantity, as in a
   coefficient of friction.  The choice between these terms is
   often one of personal preference; e.g. some people might feel
   that bogosity is a fundamental attribute and thus say
   "coefficient of bogosity", whereas others might feel it is a
   combination of factors and thus say "bogosity index".

   (29 Nov 1994)


coercion

   {implicit type conversion}


COFF

   {Common Object File Format}


COGENT

   COmpiler and GENeralized Translator.

   A {compiler} writing language with pattern-directed string and
   list processing features, for {CDC 3600} and {CDC} 3800.  A
   program consists of {production}s 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].

   (23 Dec 1994)


Cogent Prolog

   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}.

   E-mail: Dennis C Merritt .


Cognitech

   A French software house specialising in {artificial
   intelligence}.

   (04 Jan 1995)


cognitive 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?]

   (29 Nov 1995)


COGO

   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)].

   (04 Jan 1995)


Coherent Parallel C

   A {data parallel} language.

   ["Coherent Parallel C", E.  Felten et al in Third Conf on
   Hypercube Concurrent Computers and Appls, ACM, 1988,
   pp.440-450].

   (04 Jan 1995)


COHESION

   {DEC}'s {CASE} environment.

   [Details?].

   (04 Jan 1995)


COIF

   {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)].

   (04 Jan 1995)


cokebottle

   /kohk'bot-l/ Any very unusual character, particularly one you
   can't type because it 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" faded away
   as serious usage, but was often invoked humorously to
   describe an (unspecified) weird or non-intuitive keystroke
   command.  It may be due for a second inning, however.  The
   {OSF}/{Motif} {window manager}, "{mwm}", has a reserved
   keystroke for switching to the default set of keybindings and
   behaviour.  This keystroke is (believe it or not)
   "control-meta-bang" (see {bang}).  Since the exclamation point
   looks a lot like an upside down Coke bottle, {Motif} hackers
   have begun referring to this keystroke as "cokebottle".

   See also {quadruple bucky}.

   (04 Jan 1995)


COLASL

   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].

   (04 Jan 1995)


COLD

   1.  A {sugar}ed version of {COLD-K}.

   2.  {Computer Output to Laser Disc}.

   (04 Jan 1995)


cold boot

    A {boot} from {power off}.

   Contrast {warm boot}.

   (27 Nov 1995)


COLD-K

   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].

   (04 Jan 1995)


COLINGO

   Compile On-LINe and GO.

   An english-like query system from {MITRE Corp}.  for the {IBM
   1401}.

   ["The COLINGO System Design Philosophy", Information System
   Sciences, Proc Second Congress, 1965].

   [Sammet 1969, p. 664].

   (04 Jan 1995)


collision

   1.  When two {hosts} transmit on a {network} at
   once causing their {packets} to collide and corrupt each
   other.

   See {collision detection}.

   2.  {hash collision}.

   (06 Jan 1995)


collision detection

    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}.

   (18 Mar 1997)


colon

    ":".  {ASCII} character 58.  Common names:
   {ITU-T}: colon.  Rare: dots; {INTERCAL}: two-spot.

   (25 Sep 1995)


color

    American spelling of {colour}.

   (13 Dec 1996)


Color Graphics Adapter

    (CGA) One of {IBM}'s earliest hardware
   video {display standards} for use in {IBM PC}s.  CGA can
   display 80*25 or 40*25 text in 16 colors, 640*200 {pixels}
   graphics in 2 colors or 320*200 in 4 colors (IBM PC video
   modes 0-6).  It is now obsolete.

   (11 Nov 1995)


color model

   {colour model}


Colossus

   (A huge and ancient statue on the Greek island of Rhodes).

   1. The Colossus and Colussus 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.

   ["Breaking the enemy's code", Glenn Zorpette, IEEE Spectrum,
   September 1987, pp. 47-51.]

   2. The computer in the film "Colossus: The Forbin Project".
   Forbin is the designer of an incredibly sophisticated 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, and after taking
   safeguards to preserve confidential material, each side agrees
   to allow it.  As soon as the link is established 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 it's guidance.  Forbin and the other scientists
   form a technological resistance to Colossus which must operate
   underground.

   [John L. Vogel ]

   {The Internet Movie Database
   (http://www.msstate.edu/M/title-exact?Colossus:%20The%20Forbin%20Project)}.

   [Date?]

   (24 Mar 1996)


colour

    (US "color") Colours are usually represented as
   {RGB} triples.  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 {bitfield}s 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.

   (24 Mar 1996)


colour look-up table

   {colour palette}


colour palette

    (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.

   (03 Jun 1997)


Columbia AppleTalk Package

   (CAP) An implementation of {Apple Computer}'s {AppleTalk}
   {protocol}s 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} {protocol}s: {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.

   (10 Jan 1995)


Column Address Strobe

    (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.

   (17 Oct 1996)


COM

   1.  {Component Object Model}.

   2.  {Common Object Model}.

   3.  {Computer Output on Microfilm}.

   (08 Jan 1998)


COMAL

   {COMmon Algorithmic Language}


combination

   1.  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.  In the theory of {combinator}s, a combination
   denotes an expression in which {function application} is the
   only operation.

   (10 Apr 1995)


combinator

   A function with no {free variable}s.  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

   {Combinatory logic} is equivalent to the {lambda-calculus} but
   a lambda expression of size O(n) is equivalent to a
   combinatorial expression of size O(n^2).

   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},
   {supercombinator}s.

   (06 Dec 1994)


combinatory 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}.

   (05 Jan 1995)


Comdex

   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.

   (11 Jan 1995)


COME FROM

   A semi-mythical language construct dual to the "go to"; "COME
   FROM" foo

   where "A", "/A" delimit an "anchor", "HREF" introduces a
   hypertext reference, which in this case is a {Uniform Resource
   Locator} (URL) (the thing in double quotes in the example
   above).  The text "foo" will be the label appearing on the
   link in the browser.

   A certain place within an HTML document can be marked with a
   named anchor, e.g.:

    

   The "fragment identifier", "baz", can be used in an HREF by
   appending "#baz" to the document name.

   Other common tags include 

for a new paragraph, .. for bold text,